Merge branch 'master' of https://github.com/osmandapp/Osmand
This commit is contained in:
commit
657cb6fc61
101 changed files with 2969 additions and 2513 deletions
|
@ -135,7 +135,6 @@ public class BinaryRoutePlanner {
|
||||||
checkIfGraphIsEmpty(ctx, ctx.getPlanRoadDirection() >= 0, graphDirectSegments, start, visitedDirectSegments,
|
checkIfGraphIsEmpty(ctx, ctx.getPlanRoadDirection() >= 0, graphDirectSegments, start, visitedDirectSegments,
|
||||||
"Route is not found from selected start point.");
|
"Route is not found from selected start point.");
|
||||||
if (ctx.planRouteIn2Directions()) {
|
if (ctx.planRouteIn2Directions()) {
|
||||||
if(!graphDirectSegments.isEmpty() && !graphReverseSegments.isEmpty())
|
|
||||||
forwardSearch = (nonHeuristicSegmentsComparator.compare(graphDirectSegments.peek(), graphReverseSegments.peek()) < 0);
|
forwardSearch = (nonHeuristicSegmentsComparator.compare(graphDirectSegments.peek(), graphReverseSegments.peek()) < 0);
|
||||||
// if (graphDirectSegments.size() * 2 > graphReverseSegments.size()) {
|
// if (graphDirectSegments.size() * 2 > graphReverseSegments.size()) {
|
||||||
// forwardSearch = false;
|
// forwardSearch = false;
|
||||||
|
|
|
@ -226,7 +226,6 @@
|
||||||
|
|
||||||
<activity android:name="net.osmand.plus.development.TestVoiceActivity" />
|
<activity android:name="net.osmand.plus.development.TestVoiceActivity" />
|
||||||
<activity android:name="net.osmand.plus.download.DownloadActivity" android:label="@string/local_index_descr_title" />
|
<activity android:name="net.osmand.plus.download.DownloadActivity" android:label="@string/local_index_descr_title" />
|
||||||
<activity android:name="net.osmand.core.android.GLActivity" android:label="Sample" />
|
|
||||||
<activity android:name="net.osmand.plus.osmedit.LocalOpenstreetmapActivity" android:label="@string/local_openstreetmap_act_title" />
|
<activity android:name="net.osmand.plus.osmedit.LocalOpenstreetmapActivity" android:label="@string/local_openstreetmap_act_title" />
|
||||||
|
|
||||||
<!-- keep android:process on a separate line !! -->
|
<!-- keep android:process on a separate line !! -->
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
tools:context="net.osmand.core.samples.android.sample1.GLActivity">
|
|
||||||
|
|
||||||
<android.opengl.GLSurfaceView
|
|
||||||
android:id="@+id/glSurfaceView"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent" />
|
|
||||||
|
|
||||||
</FrameLayout>
|
|
6
OsmAnd/res/layout/atlas_map_renderer_view.xml
Normal file
6
OsmAnd/res/layout/atlas_map_renderer_view.xml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<net.osmand.core.android.AtlasMapRendererView
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:id="@+id/atlasMapRendererView"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent" />
|
37
OsmAnd/res/layout/dash_error_fragment.xml
Normal file
37
OsmAnd/res/layout/dash_error_fragment.xml
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:background="@drawable/bg_cardui"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
<TextView android:id="@+id/error_header"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:padding="12dp"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
android:textColor="@color/dashboard_black"
|
||||||
|
android:layout_gravity="center_horizontal"/>
|
||||||
|
<View android:layout_width="match_parent"
|
||||||
|
android:background="@color/dashboard_divider"
|
||||||
|
android:layout_height="1dp"/>
|
||||||
|
<LinearLayout android:layout_width="fill_parent"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:layout_height="40dp">
|
||||||
|
<Button android:id="@+id/error_btn"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:text="@string/send_report"
|
||||||
|
style="@style/DashboardGeneralButton"/>
|
||||||
|
<View android:layout_width="1dp"
|
||||||
|
android:background="@color/dashboard_divider"
|
||||||
|
android:layout_height="match_parent"/>
|
||||||
|
<Button android:id="@+id/error_cancel"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/dismiss"
|
||||||
|
style="@style/DashboardGeneralButton"/>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
|
@ -3,6 +3,7 @@
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:id="@+id/main_fav"
|
android:id="@+id/main_fav"
|
||||||
android:background="@drawable/bg_cardui"
|
android:background="@drawable/bg_cardui"
|
||||||
|
android:layout_marginBottom="4dp"
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="fill_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
|
@ -17,13 +17,36 @@
|
||||||
style="@style/DashboardGeneralButton"/>
|
style="@style/DashboardGeneralButton"/>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<net.osmand.plus.views.OsmAndMapSurfaceView
|
<RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content">
|
||||||
android:id="@+id/MapView"
|
<LinearLayout android:id="@+id/loading"
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="fill_parent"
|
||||||
android:layout_height="110dp"
|
android:layout_height="110dp"
|
||||||
android:layout_marginLeft="2dp"
|
android:gravity="center_vertical|center_horizontal"
|
||||||
android:layout_marginRight="2dp"
|
android:orientation="horizontal">
|
||||||
android:layout_marginBottom="2dp"
|
|
||||||
android:contentDescription="@string/map_view"
|
<ProgressBar
|
||||||
android:visibility="gone"/>
|
android:id="@+id/ProgressBar"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/ProgressMessage"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:maxLines="3"
|
||||||
|
android:text="@string/loading_data"
|
||||||
|
android:textSize="18sp" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<net.osmand.plus.views.OsmAndMapSurfaceView
|
||||||
|
android:id="@+id/MapView"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="110dp"
|
||||||
|
android:layout_marginLeft="2dp"
|
||||||
|
android:layout_marginRight="2dp"
|
||||||
|
android:layout_marginBottom="2dp"
|
||||||
|
android:contentDescription="@string/map_view"
|
||||||
|
android:visibility="gone"/>
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
|
@ -7,12 +7,16 @@
|
||||||
android:background="@drawable/bg_cardui"
|
android:background="@drawable/bg_cardui"
|
||||||
android:orientation="vertical" >
|
android:orientation="vertical" >
|
||||||
|
|
||||||
<TextView
|
<LinearLayout
|
||||||
android:id="@+id/search_for"
|
android:layout_width="match_parent"
|
||||||
style="@style/DashboardSubHeader"
|
android:layout_height="wrap_content">
|
||||||
android:layout_width="wrap_content"
|
<TextView
|
||||||
android:layout_height="40dp"
|
android:id="@+id/search_for"
|
||||||
android:text="@string/search_for" />
|
style="@style/DashboardSubHeader"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="40dp"
|
||||||
|
android:text="@string/search_for" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
<View
|
<View
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|
|
@ -20,9 +20,17 @@
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
android:textColor="@color/dashboard_black"/>
|
android:textColor="@color/dashboard_black"/>
|
||||||
<TextView android:id="@+id/update_count"
|
<TextView android:id="@+id/update_count"
|
||||||
|
android:layout_marginLeft="2dp"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:textColor="@color/dashboard_blue"
|
android:textColor="@color/dashboard_blue"
|
||||||
android:layout_height="wrap_content"/>
|
android:layout_height="wrap_content"/>
|
||||||
|
<ProgressBar android:id="@+id/main_progress"
|
||||||
|
android:visibility="visible"
|
||||||
|
android:layout_marginLeft="2dp"
|
||||||
|
android:indeterminate="true"
|
||||||
|
android:indeterminateOnly="true"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"/>
|
||||||
<View android:layout_width="0dp"
|
<View android:layout_width="0dp"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:layout_height="wrap_content"/>
|
android:layout_height="wrap_content"/>
|
||||||
|
|
|
@ -6,22 +6,22 @@
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="match_parent"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:padding="6dp" >
|
android:padding="6dp" >
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:id="@+id/content"
|
android:id="@+id/content"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="match_parent"/>
|
||||||
|
|
||||||
</LinearLayout>
|
<LinearLayout android:id="@+id/credentials"
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="fill_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
android:padding="6dp" >
|
android:visibility="gone"
|
||||||
|
android:padding="6dp"
|
||||||
|
android:baselineAligned="false">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="fill_parent"
|
||||||
|
@ -33,7 +33,7 @@
|
||||||
android:id="@+id/About"
|
android:id="@+id/About"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="left|bottom"
|
android:layout_gravity="start|bottom"
|
||||||
android:text="@string/about_settings"
|
android:text="@string/about_settings"
|
||||||
android:textSize="20sp" />
|
android:textSize="20sp" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
@ -48,17 +48,17 @@
|
||||||
android:id="@+id/Copyright"
|
android:id="@+id/Copyright"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="right"
|
android:layout_gravity="end"
|
||||||
android:gravity="right"
|
android:gravity="end"
|
||||||
android:textSize="14sp" />
|
android:textSize="14sp" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/OpenStreetMaps"
|
android:id="@+id/OpenStreetMaps"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="right"
|
android:layout_gravity="end"
|
||||||
android:layout_marginTop="5dp"
|
android:layout_marginTop="5dp"
|
||||||
android:gravity="right"
|
android:gravity="end"
|
||||||
android:text="@string/openstreetmap_copyright"
|
android:text="@string/openstreetmap_copyright"
|
||||||
android:textSize="14sp" />
|
android:textSize="14sp" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<android.opengl.GLSurfaceView xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:id="@+id/glSurfaceView"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent">
|
|
||||||
|
|
||||||
</android.opengl.GLSurfaceView>
|
|
|
@ -12,9 +12,9 @@
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<ViewStub
|
<ViewStub
|
||||||
android:id="@+id/glSurfaceStub"
|
android:id="@+id/atlasMapRendererViewStub"
|
||||||
android:inflatedId="@+id/glSurfaceView"
|
android:inflatedId="@+id/atlasMapRendererView"
|
||||||
android:layout="@layout/gl_surface"
|
android:layout="@layout/atlas_map_renderer_view"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent" />
|
android:layout_height="match_parent" />
|
||||||
|
|
||||||
|
|
|
@ -1520,7 +1520,7 @@ OsmAnd мае адкрыты зыходны код і актыўна разві
|
||||||
<string name="routing_attr_avoid_motorway_description">Пазьбягаць аўтамагістралі</string>
|
<string name="routing_attr_avoid_motorway_description">Пазьбягаць аўтамагістралі</string>
|
||||||
<string name="routing_attr_weight_name">Абмежаваньне вагі</string>
|
<string name="routing_attr_weight_name">Абмежаваньне вагі</string>
|
||||||
<string name="routing_attr_weight_description">Задайце вагу аўтамабіля для пракладаньня маршрутаў</string>
|
<string name="routing_attr_weight_description">Задайце вагу аўтамабіля для пракладаньня маршрутаў</string>
|
||||||
<string name="application_dir_change_warning2">Вы хочаце каб OsmAnd паспрабаваў скапіяваць свае зьвесткі ў новае месца?</string>
|
<string name="application_dir_change_warning2">Вы хочаце каб OsmAnd таксама скапіяваў свае зьвесткі ў новае месца?</string>
|
||||||
<string name="copying_osmand_one_file_descr">Капіраваньне файла (%s) у новае месца...</string>
|
<string name="copying_osmand_one_file_descr">Капіраваньне файла (%s) у новае месца...</string>
|
||||||
<string name="copying_osmand_files_descr">Капіяваньне дадзеных OsmAnd у новае месца (%s)</string>
|
<string name="copying_osmand_files_descr">Капіяваньне дадзеных OsmAnd у новае месца (%s)</string>
|
||||||
<string name="copying_osmand_files">Капіяваньне дадзеных OsmAnd</string>
|
<string name="copying_osmand_files">Капіяваньне дадзеных OsmAnd</string>
|
||||||
|
@ -1915,7 +1915,6 @@ OsmAnd мае адкрыты зыходны код і актыўна разві
|
||||||
<string name="speed_limit_exceed_message">Задаць дапушчальнае значэньне перавышэньня хуткасьці, пры якім вы атрымаеце галасавое паведамленьне.</string>
|
<string name="speed_limit_exceed_message">Задаць дапушчальнае значэньне перавышэньня хуткасьці, пры якім вы атрымаеце галасавое паведамленьне.</string>
|
||||||
<string name="fav_point_emoticons_message">Назва ўлюбёнай кропкі была зьменена на %1$s для магчымасьці захаваньня радка з эматыконам ў файл.</string>
|
<string name="fav_point_emoticons_message">Назва ўлюбёнай кропкі была зьменена на %1$s для магчымасьці захаваньня радка з эматыконам ў файл.</string>
|
||||||
<string name="print_route">Паказаць маршрут</string>
|
<string name="print_route">Паказаць маршрут</string>
|
||||||
<string name="test_native_render">Тэст натыўнай візуалізацыі</string>
|
|
||||||
<string name="fav_point_dublicate">Дубляваньне назвы ўлюбёнага пункту</string>
|
<string name="fav_point_dublicate">Дубляваньне назвы ўлюбёнага пункту</string>
|
||||||
<string name="fav_point_dublicate_message">Назва ўлюбёнага пункту %1$s была зьменена для прадухіленьня дубляваньня імёнаў.</string>
|
<string name="fav_point_dublicate_message">Назва ўлюбёнага пункту %1$s была зьменена для прадухіленьня дубляваньня імёнаў.</string>
|
||||||
<string name="use_native_render">Выкарыстоўваць натыўную візуалізацыю</string>
|
<string name="use_native_render">Выкарыстоўваць натыўную візуалізацыю</string>
|
||||||
|
@ -1926,7 +1925,6 @@ OsmAnd мае адкрыты зыходны код і актыўна разві
|
||||||
<string name="logged_as">Вы ўвайшлі як %1$s</string>
|
<string name="logged_as">Вы ўвайшлі як %1$s</string>
|
||||||
<string name="osmo_no_connection_msg">Сэрвіс OsMo не даступны:\n- Праверце спалучэньне;\n- Праверце налады;\n- Праверце наш Twitter: https://twitter.com/OsMomobi</string>
|
<string name="osmo_no_connection_msg">Сэрвіс OsMo не даступны:\n- Праверце спалучэньне;\n- Праверце налады;\n- Праверце наш Twitter: https://twitter.com/OsMomobi</string>
|
||||||
<string name="anonymous_user_hint">Ананімнаму карыстальніку недаступныя:\n- Вытварэньне груп;\n- Сінхранізацыя груп і прыстасаваньняў з серверам;\n- Кіраваньне групамі і прыстасаваньнямі ў асабістым кабінеце.</string>
|
<string name="anonymous_user_hint">Ананімнаму карыстальніку недаступныя:\n- Вытварэньне груп;\n- Сінхранізацыя груп і прыстасаваньняў з серверам;\n- Кіраваньне групамі і прыстасаваньнямі ў асабістым кабінеце.</string>
|
||||||
<string name="test_native_render_msg">Пачаць працу з натыўнай візуалізацыяй</string>
|
|
||||||
<string name="configure_map">Настройка мапы</string>
|
<string name="configure_map">Настройка мапы</string>
|
||||||
<string name="search_radius_proximity">Паблізу ад</string>
|
<string name="search_radius_proximity">Паблізу ад</string>
|
||||||
<string name="rendering_category_details">Падрабязнасьці</string>
|
<string name="rendering_category_details">Падрабязнасьці</string>
|
||||||
|
@ -1961,4 +1959,9 @@ OsmAnd мае адкрыты зыходны код і актыўна разві
|
||||||
<string name="show_map">ПАКАЗАЦЬ МАПУ</string>
|
<string name="show_map">ПАКАЗАЦЬ МАПУ</string>
|
||||||
<string name="show_all">ПАКАЗАЦЬ УСЁ</string>
|
<string name="show_all">ПАКАЗАЦЬ УСЁ</string>
|
||||||
<string name="coordinates">Каардынаты</string>
|
<string name="coordinates">Каардынаты</string>
|
||||||
</resources>
|
<string name="error_avoid_specific_road">Бліжэйшая дарога не была знойдзена</string>
|
||||||
|
<string name="use_opengl_render">Выкарыстоўваць OpenGL</string>
|
||||||
|
<string name="use_opengl_render_descr">Выкарыстоўваць апаратнае паскарэньне OpenGL (можа не працаваць на некаторых прыстасаваньнях)</string>
|
||||||
|
<string name="everything_up_to_date">Усё ў актуальным стане</string>
|
||||||
|
<string name="dismiss">Скасаваць</string>
|
||||||
|
</resources>
|
||||||
|
|
|
@ -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:
|
<resources><string name="tip_recent_changes_1_5_t">Промени в 1.5:
|
||||||
\n\t* Гласови предупреждения за пътни ограничения и камери
|
\n\t* Гласови предупреждения за пътни ограничения и камери
|
||||||
\n\t* Гласово обявяване имената на улиците
|
\n\t* Гласово обявяване имената на улиците
|
||||||
|
|
|
@ -793,7 +793,7 @@
|
||||||
\n\t* S\'ha corregit Arabic, Kannada scripting i llenguatges RTL "</string>
|
\n\t* S\'ha corregit Arabic, Kannada scripting i llenguatges RTL "</string>
|
||||||
<string name="gpxup_trackable">Seguible</string>
|
<string name="gpxup_trackable">Seguible</string>
|
||||||
<string name="search_offline_geo_error">No s\'ha pogut analitzar la geo intenció «%s»</string>
|
<string name="search_offline_geo_error">No s\'ha pogut analitzar la geo intenció «%s»</string>
|
||||||
<string name="amenity_type_geocache">Geoenmegatzament</string>
|
<string name="amenity_type_geocache">Geocerca</string>
|
||||||
<string name="use_osmand_routing_service_descr">L\'us de la navagacio fora de línia d\'OsmAnd s\'aplica nomes a rutes > 20km (experimental)</string>
|
<string name="use_osmand_routing_service_descr">L\'us de la navagacio fora de línia d\'OsmAnd s\'aplica nomes a rutes > 20km (experimental)</string>
|
||||||
<string name="btn_advanced_mode">Mode avançat…</string>
|
<string name="btn_advanced_mode">Mode avançat…</string>
|
||||||
<string name="poi_filter_parking">Aparcament</string>
|
<string name="poi_filter_parking">Aparcament</string>
|
||||||
|
@ -896,7 +896,7 @@
|
||||||
<string name="show_transport_over_map_description">Mostra les parades del transport públic al mapa</string>
|
<string name="show_transport_over_map_description">Mostra les parades del transport públic al mapa</string>
|
||||||
<string name="search_history_int_streets">Intersecció: {0} x {1} a {2}</string>
|
<string name="search_history_int_streets">Intersecció: {0} x {1} a {2}</string>
|
||||||
<string name="favorite">Preferit</string>
|
<string name="favorite">Preferit</string>
|
||||||
<string name="history">Història</string>
|
<string name="history">Historial</string>
|
||||||
<string name="uploading">Enviant…</string>
|
<string name="uploading">Enviant…</string>
|
||||||
<string name="search_osm_nominatim">Cerca una adreça utilitzant OSM Nominatim</string>
|
<string name="search_osm_nominatim">Cerca una adreça utilitzant OSM Nominatim</string>
|
||||||
<string name="hint_search_online">Núm. de la casa, carrer, ciutat</string>
|
<string name="hint_search_online">Núm. de la casa, carrer, ciutat</string>
|
||||||
|
@ -1349,7 +1349,7 @@
|
||||||
<string name="android_19_location_disabled">"Des de la versió 4.4 d\'Android (KitKat) no es pot descarregar i actualitzar després els mapes a la mateixa carpeta (%s). Voleu canviar-la a un altre lloc permès i copiar-hi tots els arxius OsmAnd?
|
<string name="android_19_location_disabled">"Des de la versió 4.4 d\'Android (KitKat) no es pot descarregar i actualitzar després els mapes a la mateixa carpeta (%s). Voleu canviar-la a un altre lloc permès i copiar-hi tots els arxius OsmAnd?
|
||||||
\n Nota 1: Els vostres arxius obsolets quedaran intactes (els podeu esborrar manualment).
|
\n Nota 1: Els vostres arxius obsolets quedaran intactes (els podeu esborrar manualment).
|
||||||
\n Nota 2: En el nou lloc d\'emmagatzemament no serà possible compartir arxius entre l\'OsmAnd i l\'OsmAnd+."</string>
|
\n Nota 2: En el nou lloc d\'emmagatzemament no serà possible compartir arxius entre l\'OsmAnd i l\'OsmAnd+."</string>
|
||||||
<string name="application_dir_change_warning2">Voleu que l\'OsmAnd intenti copiar els seus arxius de dades a la nova destinació?</string>
|
<string name="application_dir_change_warning2">Voleu que l\'OsmAnd també copiï els seus arxius de dades a la nova destinació?</string>
|
||||||
<string name="copying_osmand_one_file_descr">S\'està copiant el fitxer (%s) a la nova destinació...</string>
|
<string name="copying_osmand_one_file_descr">S\'està copiant el fitxer (%s) a la nova destinació...</string>
|
||||||
<string name="copying_osmand_files_descr">S\'estan copiant els fitxers de dades de l\'OsmAnd a la nova destinació (%s)</string>
|
<string name="copying_osmand_files_descr">S\'estan copiant els fitxers de dades de l\'OsmAnd a la nova destinació (%s)</string>
|
||||||
<string name="copying_osmand_files">S\'estan copiant fitxers de dades de l\'OsmAnd</string>
|
<string name="copying_osmand_files">S\'estan copiant fitxers de dades de l\'OsmAnd</string>
|
||||||
|
@ -1702,7 +1702,7 @@ La llista de països inclosos (bàsicament tot el món!): Afganistan, Albània,
|
||||||
<string name="selected_track">Traces seleccionades</string>
|
<string name="selected_track">Traces seleccionades</string>
|
||||||
<string name="my_tracks">Totes les traces</string>
|
<string name="my_tracks">Totes les traces</string>
|
||||||
<string name="my_favorites">Preferits</string>
|
<string name="my_favorites">Preferits</string>
|
||||||
<string name="my_data_Button">Llocs personals</string>
|
<string name="my_data_Button">Preferits</string>
|
||||||
<string name="my_data_activity">Llocs personals</string>
|
<string name="my_data_activity">Llocs personals</string>
|
||||||
<string name="osmo_user_joined">L\'usuari %1$s s\'ha unit al grup %2$s</string>
|
<string name="osmo_user_joined">L\'usuari %1$s s\'ha unit al grup %2$s</string>
|
||||||
<string name="osmo_user_left">L\'usuari %1$s ha deixat el grup %2$s</string>
|
<string name="osmo_user_left">L\'usuari %1$s ha deixat el grup %2$s</string>
|
||||||
|
@ -1856,8 +1856,6 @@ La llista de països inclosos (bàsicament tot el món!): Afganistan, Albània,
|
||||||
<string name="text_size">Mida del text</string>
|
<string name="text_size">Mida del text</string>
|
||||||
<string name="fav_point_dublicate">Nom de punt preferit duplicat</string>
|
<string name="fav_point_dublicate">Nom de punt preferit duplicat</string>
|
||||||
<string name="fav_point_dublicate_message">S\'ha canviat el nom del vostre punt preferit a %1$s per evitar duplicitats.</string>
|
<string name="fav_point_dublicate_message">S\'ha canviat el nom del vostre punt preferit a %1$s per evitar duplicitats.</string>
|
||||||
<string name="test_native_render">Prova de renderització nativa</string>
|
|
||||||
<string name="test_native_render_msg">Inicia l\'activitat amb renderització nativa</string>
|
|
||||||
<string name="use_native_render">Utilitza la renderització nativa</string>
|
<string name="use_native_render">Utilitza la renderització nativa</string>
|
||||||
<string name="use_native_render_descr">Ús de renderització C++ en comptes de Java</string>
|
<string name="use_native_render_descr">Ús de renderització C++ en comptes de Java</string>
|
||||||
<string name="fav_point_emoticons_message">El nom del vostre punt preferit s\'ha canviat a %1$s per facilitar el desar bé la cadena amb emoticones en un fitxer.</string>
|
<string name="fav_point_emoticons_message">El nom del vostre punt preferit s\'ha canviat a %1$s per facilitar el desar bé la cadena amb emoticones en un fitxer.</string>
|
||||||
|
@ -1897,10 +1895,15 @@ La llista de països inclosos (bàsicament tot el món!): Afganistan, Albània,
|
||||||
<string name="advanced_settings">Avançat</string>
|
<string name="advanced_settings">Avançat</string>
|
||||||
<string name="osmo_use_https_descr">Utilitzeu una connexió segura amb el servidor</string>
|
<string name="osmo_use_https_descr">Utilitzeu una connexió segura amb el servidor</string>
|
||||||
<string name="osmo_use_https">Utilitzeu https</string>
|
<string name="osmo_use_https">Utilitzeu https</string>
|
||||||
<string name="home_button">Casa</string>
|
<string name="home_button">Inici</string>
|
||||||
<string name="search_for">Recerca de</string>
|
<string name="search_for">Cerca per</string>
|
||||||
<string name="show_map">VEURE EL MAPA</string>
|
<string name="show_map">MOSTRA EL MAPA</string>
|
||||||
<string name="show_all">VEURE TOT</string>
|
<string name="show_all">MOSTRA\'LS TOTS</string>
|
||||||
<string name="coordinates">Coordenades</string>
|
<string name="coordinates">Coordenades</string>
|
||||||
<string name="map_update">Mapes</string>
|
<string name="map_update">Mapes</string>
|
||||||
</resources>
|
<string name="error_avoid_specific_road">No s\'ha trobat cap ruta a prop</string>
|
||||||
|
<string name="use_opengl_render">Ús de renderització OpenGL</string>
|
||||||
|
<string name="use_opengl_render_descr">Ús de renderitació OpenGL per accelerador gràfic (no funciona a tots els dispositius)</string>
|
||||||
|
<string name="everything_up_to_date">Tot actualitzat</string>
|
||||||
|
<string name="dismiss">Descarta</string>
|
||||||
|
</resources>
|
||||||
|
|
|
@ -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 (Spravovat mapové soubory), nebo se přepněte na online mapy.</string>
|
<resources><string name="switch_to_raster_map_to_see">Vektorové mapy toto místo neobsahují. Mapová data můžete stáhnout v Nastaveních (Spravovat mapové soubory), 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 :
|
<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í
|
\n\t- Native rendering pro všechna zařízení
|
||||||
|
@ -1381,9 +1381,8 @@ s často kladenými otázkami.</string>
|
||||||
<string name="routing_attr_avoid_motorway_description">Vyhnout se dálnicím</string>
|
<string name="routing_attr_avoid_motorway_description">Vyhnout se dálnicím</string>
|
||||||
<string name="routing_attr_weight_name">Hmotnostní limit</string>
|
<string name="routing_attr_weight_name">Hmotnostní limit</string>
|
||||||
<string name="routing_attr_weight_description">Zadejte hmotnost vozidla, která musí být povolená na cestách</string>
|
<string name="routing_attr_weight_description">Zadejte hmotnost vozidla, která musí být povolená na cestách</string>
|
||||||
<string name="android_19_location_disabled">Od verze KitKat není možné stahovat a aktualizovat mapy v předchozím úložišti (%s). Chcete ho změnit na vhodné nové a zkopírovat do něj všechny soubory.
|
<string name="android_19_location_disabled">Od verze Androidu 4.4 (KitKat) není možné stahovat a aktualizovat mapy v předchozím úložišti (%s). Chcete ho změnit na vhodné nové úložiště a zkopírovat do něj všechny soubory?\n Poznámka 1: Původní soubory zůstanou nedotčeny a mohou být smazány ručně.
|
||||||
\n Poznámka: původní soubory zůstanou nedotčeny.
|
\n Poznámka 2: V novém úložišti nebude možné sdílet soubory mezi OsmAnd a OsmAnd+.</string>
|
||||||
\n Poznámka: nebude možné sdílet soubory mezi OsmAnd a OsmAnd+. </string>
|
|
||||||
<string name="application_dir_change_warning2">OsmAnd může zkusit přesunout data do nového cíle. Souhlasíte?</string>
|
<string name="application_dir_change_warning2">OsmAnd může zkusit přesunout data do nového cíle. Souhlasíte?</string>
|
||||||
<string name="copying_osmand_one_file_descr">Kopírování souboru (%s) do nového umístění...</string>
|
<string name="copying_osmand_one_file_descr">Kopírování souboru (%s) do nového umístění...</string>
|
||||||
<string name="copying_osmand_files_descr">Kopírování souborů OsmAnd do nového umístění (%s)</string>
|
<string name="copying_osmand_files_descr">Kopírování souborů OsmAnd do nového umístění (%s)</string>
|
||||||
|
@ -1733,8 +1732,6 @@ s často kladenými otázkami.</string>
|
||||||
<string name="text_size_descr">Nastavit velikost písma na mapě.</string>
|
<string name="text_size_descr">Nastavit velikost písma na mapě.</string>
|
||||||
<string name="fav_point_dublicate">Název oblíbeného bodu je již použit</string>
|
<string name="fav_point_dublicate">Název oblíbeného bodu je již použit</string>
|
||||||
<string name="fav_point_dublicate_message">Aby nevznikla duplicita, oblíbený bod byl uložen jako %1$s.</string>
|
<string name="fav_point_dublicate_message">Aby nevznikla duplicita, oblíbený bod byl uložen jako %1$s.</string>
|
||||||
<string name="test_native_render">Test nativního vykreslování</string>
|
|
||||||
<string name="test_native_render_msg">Spustí činnost s nativním vykreslováním</string>
|
|
||||||
<string name="use_native_render">Použít nativní vykreslování</string>
|
<string name="use_native_render">Použít nativní vykreslování</string>
|
||||||
<string name="use_native_render_descr">Použít C++ vykreslování místo Javy</string>
|
<string name="use_native_render_descr">Použít C++ vykreslování místo Javy</string>
|
||||||
<string name="print_route">Vytisknout trasu</string>
|
<string name="print_route">Vytisknout trasu</string>
|
||||||
|
@ -1774,4 +1771,12 @@ s často kladenými otázkami.</string>
|
||||||
<string name="lock_screen_request_explanation">%1$s potřebuje tato oprávnění pro vypnutí obrazovky při režimu šetření energie.</string>
|
<string name="lock_screen_request_explanation">%1$s potřebuje tato oprávnění pro vypnutí obrazovky při režimu šetření energie.</string>
|
||||||
<string name="wake_on_voice_never">Nikdy</string>
|
<string name="wake_on_voice_never">Nikdy</string>
|
||||||
<string name="advanced_settings">Pokročilé</string>
|
<string name="advanced_settings">Pokročilé</string>
|
||||||
|
<string name="home_button">Domov</string>
|
||||||
|
<string name="show_map">ZOBRAZIT MAPU</string>
|
||||||
|
<string name="osmo_use_https_descr">Použít zabezpečené spojení se serverem</string>
|
||||||
|
<string name="osmo_use_https">Použít HTTPS</string>
|
||||||
|
<string name="map_update">Mapy</string>
|
||||||
|
<string name="search_for">Hledat</string>
|
||||||
|
<string name="show_all">ZOBRAZIT VŠE</string>
|
||||||
|
<string name="coordinates">Souřadnice</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -24,8 +24,8 @@
|
||||||
<string name="poi_art_shop">Kunsthandler</string>
|
<string name="poi_art_shop">Kunsthandler</string>
|
||||||
<string name="poi_baby_goods">Babyudstryr</string>
|
<string name="poi_baby_goods">Babyudstryr</string>
|
||||||
<string name="poi_bag_shop">Tasker</string>
|
<string name="poi_bag_shop">Tasker</string>
|
||||||
<string name="poi_bathroom_furnishing_shop">Badeværelser</string>
|
<string name="poi_bathroom_furnishing_shop">Badeværelsesmøbler</string>
|
||||||
<string name="poi_bed_shop">Senge</string>
|
<string name="poi_bed_shop">Soveværelsesmøbler</string>
|
||||||
<string name="poi_boutique">Modebutik</string>
|
<string name="poi_boutique">Modebutik</string>
|
||||||
<string name="poi_carpet_shop">Tæppeforretning</string>
|
<string name="poi_carpet_shop">Tæppeforretning</string>
|
||||||
<string name="poi_chemist_shop">Materialist</string>
|
<string name="poi_chemist_shop">Materialist</string>
|
||||||
|
@ -52,7 +52,7 @@
|
||||||
<string name="poi_hardware_shop">Værktøj</string>
|
<string name="poi_hardware_shop">Værktøj</string>
|
||||||
<string name="poi_hearing_aids_shop">Høreapparater</string>
|
<string name="poi_hearing_aids_shop">Høreapparater</string>
|
||||||
<string name="poi_herbalist">Urter</string>
|
<string name="poi_herbalist">Urter</string>
|
||||||
<string name="poi_hifi_shop">HiFi</string>
|
<string name="poi_hifi_shop">HiFi butik</string>
|
||||||
<string name="poi_houseware_shop">Husholdningsartikler</string>
|
<string name="poi_houseware_shop">Husholdningsartikler</string>
|
||||||
<string name="poi_hunting_shop">Jagtudstyr</string>
|
<string name="poi_hunting_shop">Jagtudstyr</string>
|
||||||
<string name="poi_interior_decoration_shop">Boligindretning</string>
|
<string name="poi_interior_decoration_shop">Boligindretning</string>
|
||||||
|
@ -66,11 +66,11 @@
|
||||||
<string name="poi_optician_shop">Optiker</string>
|
<string name="poi_optician_shop">Optiker</string>
|
||||||
<string name="poi_organic_shop">Økologiske fødevarer</string>
|
<string name="poi_organic_shop">Økologiske fødevarer</string>
|
||||||
<string name="poi_outdoor_shop">Fritidsbeklædning</string>
|
<string name="poi_outdoor_shop">Fritidsbeklædning</string>
|
||||||
<string name="poi_paint_shop">Maling</string>
|
<string name="poi_paint_shop">Malerværksted</string>
|
||||||
<string name="poi_pet_shop">Dyrehandel</string>
|
<string name="poi_pet_shop">Dyrehandel</string>
|
||||||
<string name="poi_radiotechnics_shop">Radiodele</string>
|
<string name="poi_radiotechnics_shop">Radiodele</string>
|
||||||
<string name="poi_second_hand">Genbrugsbutik</string>
|
<string name="poi_second_hand">Genbrugsbutik</string>
|
||||||
<string name="poi_ship_chandler">Skibsproviantere</string>
|
<string name="poi_ship_chandler">Skibsproviant</string>
|
||||||
<string name="poi_sports_shop">Sportsforretning</string>
|
<string name="poi_sports_shop">Sportsforretning</string>
|
||||||
<string name="poi_stationery_shop">Papirvare</string>
|
<string name="poi_stationery_shop">Papirvare</string>
|
||||||
<string name="poi_tableware_shop">Isenkræmmer</string>
|
<string name="poi_tableware_shop">Isenkræmmer</string>
|
||||||
|
@ -118,7 +118,7 @@
|
||||||
<string name="poi_traffic_calming_rumble_strip">Rumlestriber</string>
|
<string name="poi_traffic_calming_rumble_strip">Rumlestriber</string>
|
||||||
<string name="poi_traffic_calming_table">Trafikdæmpning, bord</string>
|
<string name="poi_traffic_calming_table">Trafikdæmpning, bord</string>
|
||||||
<string name="poi_traffic_calming_choker">Indsnævring</string>
|
<string name="poi_traffic_calming_choker">Indsnævring</string>
|
||||||
<string name="poi_traffic_signals">Trafiksignal</string>
|
<string name="poi_traffic_signals">Trafiklys</string>
|
||||||
|
|
||||||
<string name="poi_car_repair">Autoværksted</string>
|
<string name="poi_car_repair">Autoværksted</string>
|
||||||
<string name="poi_service_tyres">Dækservice</string>
|
<string name="poi_service_tyres">Dækservice</string>
|
||||||
|
@ -130,16 +130,16 @@
|
||||||
<string name="poi_compressed_air">Trykluft</string>
|
<string name="poi_compressed_air">Trykluft</string>
|
||||||
<string name="poi_parking">Parkering</string>
|
<string name="poi_parking">Parkering</string>
|
||||||
<string name="poi_motorcycle_parking">Motorcykelparkering</string>
|
<string name="poi_motorcycle_parking">Motorcykelparkering</string>
|
||||||
<string name="poi_parking_entrance">Parkering indgang</string>
|
<string name="poi_parking_entrance">Indgang til parkering</string>
|
||||||
<string name="poi_garages">Garager</string>
|
<string name="poi_garages">Garage</string>
|
||||||
|
|
||||||
<string name="poi_public_transport_platform">Offentlig transport stoppested</string>
|
<string name="poi_public_transport_platform">Offentlig transport stoppested</string>
|
||||||
<string name="poi_public_transport_platform_bus">Busstoppested</string>
|
<string name="poi_public_transport_platform_bus">Busstoppested</string>
|
||||||
<string name="poi_public_transport_platform_trolleybus">Trolley busstoppested</string>
|
<string name="poi_public_transport_platform_trolleybus">Trolleybus stoppested</string>
|
||||||
<string name="poi_bus_stop">Busstoppested (forældet)</string>
|
<string name="poi_bus_stop">Busstoppested (forældet)</string>
|
||||||
<string name="poi_public_transport_platform_tram">Sporvognsstoppested</string>
|
<string name="poi_public_transport_platform_tram">Sporvognsstoppested</string>
|
||||||
<string name="poi_tram_stop">Sporvognsstoppestedet (forældet)</string>
|
<string name="poi_tram_stop">Sporvognsstoppestedet (forældet)</string>
|
||||||
<string name="poi_public_transport_station">Offentlig transport station</string>
|
<string name="poi_public_transport_station">Offentligtransport station</string>
|
||||||
<string name="poi_bus_station">Busstation (forældet)</string>
|
<string name="poi_bus_station">Busstation (forældet)</string>
|
||||||
<string name="poi_railway_station">Banegård (forældet)</string>
|
<string name="poi_railway_station">Banegård (forældet)</string>
|
||||||
<string name="poi_railway_platform">Perron (forældet)</string>
|
<string name="poi_railway_platform">Perron (forældet)</string>
|
||||||
|
@ -182,7 +182,7 @@
|
||||||
|
|
||||||
<string name="poi_water_well">Brønd</string>
|
<string name="poi_water_well">Brønd</string>
|
||||||
<string name="poi_standpipe">Standrør</string>
|
<string name="poi_standpipe">Standrør</string>
|
||||||
<string name="poi_water_works">Vandværker</string>
|
<string name="poi_water_works">Vandværk</string>
|
||||||
<string name="poi_boatyard">Værft</string>
|
<string name="poi_boatyard">Værft</string>
|
||||||
<string name="poi_wastewater_plant">Renseanlæg</string>
|
<string name="poi_wastewater_plant">Renseanlæg</string>
|
||||||
<string name="poi_water_tower">Vandtårn</string>
|
<string name="poi_water_tower">Vandtårn</string>
|
||||||
|
@ -214,7 +214,7 @@
|
||||||
<string name="poi_mineshaft">Mineskakt</string>
|
<string name="poi_mineshaft">Mineskakt</string>
|
||||||
<string name="poi_adit">Stoll</string>
|
<string name="poi_adit">Stoll</string>
|
||||||
<string name="poi_petroleum_well">Oliebrønd</string>
|
<string name="poi_petroleum_well">Oliebrønd</string>
|
||||||
<string name="poi_survey_point">Trianguleringspunkt</string>
|
<string name="poi_survey_point">Geodætisk punkt</string>
|
||||||
<string name="poi_windmill">Vindmølle</string>
|
<string name="poi_windmill">Vindmølle</string>
|
||||||
<string name="poi_quarry">Stenbrud</string>
|
<string name="poi_quarry">Stenbrud</string>
|
||||||
<string name="poi_vineyard">Vingård</string>
|
<string name="poi_vineyard">Vingård</string>
|
||||||
|
@ -244,7 +244,7 @@
|
||||||
|
|
||||||
<string name="poi_pharmacy">Apotek</string>
|
<string name="poi_pharmacy">Apotek</string>
|
||||||
<string name="poi_hospital">Hospital</string>
|
<string name="poi_hospital">Hospital</string>
|
||||||
<string name="poi_doctors">Læger</string>
|
<string name="poi_doctors">Læge</string>
|
||||||
<string name="poi_clinic">Klinik</string>
|
<string name="poi_clinic">Klinik</string>
|
||||||
<string name="poi_first_aid">Førstehjælp</string>
|
<string name="poi_first_aid">Førstehjælp</string>
|
||||||
<string name="poi_dentist">Tandlæge</string>
|
<string name="poi_dentist">Tandlæge</string>
|
||||||
|
@ -270,7 +270,7 @@
|
||||||
<string name="poi_insurance">Forsikring</string>
|
<string name="poi_insurance">Forsikring</string>
|
||||||
<string name="poi_estate_agent">Ejendomsmægler</string>
|
<string name="poi_estate_agent">Ejendomsmægler</string>
|
||||||
<string name="poi_lawyer">Advokat</string>
|
<string name="poi_lawyer">Advokat</string>
|
||||||
<string name="poi_telecommunication_office">Teleselvskab</string>
|
<string name="poi_telecommunication_office">Telekommunikation selskab</string>
|
||||||
<string name="poi_ngo">NGO</string>
|
<string name="poi_ngo">NGO</string>
|
||||||
<string name="poi_town_hall">Rådhus</string>
|
<string name="poi_town_hall">Rådhus</string>
|
||||||
<string name="poi_employment_agency">Arbejdsformidling</string>
|
<string name="poi_employment_agency">Arbejdsformidling</string>
|
||||||
|
@ -280,14 +280,14 @@
|
||||||
<string name="poi_architect_office">Arkitekt</string>
|
<string name="poi_architect_office">Arkitekt</string>
|
||||||
<string name="poi_advertising_agency">Reklamebureau</string>
|
<string name="poi_advertising_agency">Reklamebureau</string>
|
||||||
<string name="poi_educational_institution">Uddannelsesinstitution</string>
|
<string name="poi_educational_institution">Uddannelsesinstitution</string>
|
||||||
<string name="poi_studio">Studio</string>
|
<string name="poi_studio">Lydstudio</string>
|
||||||
<string name="poi_bookmaker">Bookmaker</string>
|
<string name="poi_bookmaker">Bookmaker</string>
|
||||||
|
|
||||||
<string name="poi_stadium">Stadium</string>
|
<string name="poi_stadium">Stadium</string>
|
||||||
<string name="poi_sports_centre">Sportscenter</string>
|
<string name="poi_sports_centre">Sportscenter</string>
|
||||||
<string name="poi_golf_course">Golfbane</string>
|
<string name="poi_golf_course">Golfbane</string>
|
||||||
<string name="poi_ice_rink">Skøjtebane</string>
|
<string name="poi_ice_rink">Skøjtebane</string>
|
||||||
<string name="poi_pitch">Boldbane</string>
|
<string name="poi_pitch">Sportsplads</string>
|
||||||
<string name="poi_running_track">Løbebane</string>
|
<string name="poi_running_track">Løbebane</string>
|
||||||
<string name="poi_bicycle_track">Cykelbane</string>
|
<string name="poi_bicycle_track">Cykelbane</string>
|
||||||
<string name="poi_horse_track">Travbane</string>
|
<string name="poi_horse_track">Travbane</string>
|
||||||
|
@ -434,7 +434,7 @@
|
||||||
<string name="poi_stripclub">Stripklub</string>
|
<string name="poi_stripclub">Stripklub</string>
|
||||||
<string name="poi_beach_resort">Badeby</string>
|
<string name="poi_beach_resort">Badeby</string>
|
||||||
<string name="poi_dog_park">Hundeskov</string>
|
<string name="poi_dog_park">Hundeskov</string>
|
||||||
<string name="poi_fishing_place">Fiskested</string>
|
<string name="poi_fishing_place">Fiskeplads</string>
|
||||||
<string name="poi_hunting_stand">Jagtstand</string>
|
<string name="poi_hunting_stand">Jagtstand</string>
|
||||||
<string name="poi_marina">Marina</string>
|
<string name="poi_marina">Marina</string>
|
||||||
<string name="poi_miniature_golf">Minigolf</string>
|
<string name="poi_miniature_golf">Minigolf</string>
|
||||||
|
@ -449,7 +449,7 @@
|
||||||
<string name="poi_fast_food">Fastfood</string>
|
<string name="poi_fast_food">Fastfood</string>
|
||||||
<string name="poi_bar">Bar</string>
|
<string name="poi_bar">Bar</string>
|
||||||
<string name="poi_pub">Pub</string>
|
<string name="poi_pub">Pub</string>
|
||||||
<string name="poi_food_court">Fødevaremarked</string>
|
<string name="poi_food_court">Madmarked</string>
|
||||||
<string name="poi_drinking_water">Drikkevand</string>
|
<string name="poi_drinking_water">Drikkevand</string>
|
||||||
<string name="poi_barbecue">Barbecue</string>
|
<string name="poi_barbecue">Barbecue</string>
|
||||||
|
|
||||||
|
@ -474,7 +474,7 @@
|
||||||
<string name="poi_jeweller">Juvelér</string>
|
<string name="poi_jeweller">Juvelér</string>
|
||||||
<string name="poi_locksmith">Låsesmed</string>
|
<string name="poi_locksmith">Låsesmed</string>
|
||||||
<string name="poi_key_cutter">Nøglebar</string>
|
<string name="poi_key_cutter">Nøglebar</string>
|
||||||
<string name="poi_metal_construction_craft">Metalarbejder</string>
|
<string name="poi_metal_construction_craft">Metalarbejde</string>
|
||||||
<string name="poi_optician">Optiker</string>
|
<string name="poi_optician">Optiker</string>
|
||||||
<string name="poi_painter">Maler</string>
|
<string name="poi_painter">Maler</string>
|
||||||
<string name="poi_parquet_layer">Gulvlægger</string>
|
<string name="poi_parquet_layer">Gulvlægger</string>
|
||||||
|
@ -496,7 +496,7 @@
|
||||||
<string name="poi_sun_protection_craft">Solafskærmning</string>
|
<string name="poi_sun_protection_craft">Solafskærmning</string>
|
||||||
<string name="poi_sweep">Skorstensfejer</string>
|
<string name="poi_sweep">Skorstensfejer</string>
|
||||||
<string name="poi_tailor">Skrædder</string>
|
<string name="poi_tailor">Skrædder</string>
|
||||||
<string name="poi_tiler">Fliselægger</string>
|
<string name="poi_tiler">Brolægger</string>
|
||||||
<string name="poi_tinsmith">Blikkenslager</string>
|
<string name="poi_tinsmith">Blikkenslager</string>
|
||||||
<string name="poi_upholsterer">Møbelpolstrer</string>
|
<string name="poi_upholsterer">Møbelpolstrer</string>
|
||||||
<string name="poi_watchmaker">Urmager</string>
|
<string name="poi_watchmaker">Urmager</string>
|
||||||
|
@ -592,11 +592,11 @@
|
||||||
<string name="poi_seamark_wreck">Vrag, sømærke</string>
|
<string name="poi_seamark_wreck">Vrag, sømærke</string>
|
||||||
|
|
||||||
<string name="poi_military_airfield">Militærflyveplads</string>
|
<string name="poi_military_airfield">Militærflyveplads</string>
|
||||||
<string name="poi_military_bunker">Militærbunker</string>
|
<string name="poi_military_bunker">Bunker</string>
|
||||||
<string name="poi_military_barracks">Kaserne</string>
|
<string name="poi_military_barracks">Kaserne</string>
|
||||||
<string name="poi_military_danger_area">Farezone</string>
|
<string name="poi_military_danger_area">Farezone</string>
|
||||||
<string name="poi_military_range">Militærsøvelsesområde</string>
|
<string name="poi_military_range">Militærsøvelsesområde</string>
|
||||||
<string name="poi_military_naval_base">Militærflådebase</string>
|
<string name="poi_military_naval_base">Flådebase</string>
|
||||||
<string name="poi_military_nuclear_explosion_site">Nuklear eksplosionsområde</string>
|
<string name="poi_military_nuclear_explosion_site">Nuklear eksplosionsområde</string>
|
||||||
<string name="poi_city">Storby</string>
|
<string name="poi_city">Storby</string>
|
||||||
<string name="poi_town">By</string>
|
<string name="poi_town">By</string>
|
||||||
|
@ -610,7 +610,7 @@
|
||||||
<string name="poi_healthcare_alternative">Alternativ medicin</string>
|
<string name="poi_healthcare_alternative">Alternativ medicin</string>
|
||||||
<string name="poi_audiologist">Audiolog</string>
|
<string name="poi_audiologist">Audiolog</string>
|
||||||
<string name="poi_blood_bank">Blodbank</string>
|
<string name="poi_blood_bank">Blodbank</string>
|
||||||
<string name="poi_healthcare_centre">Medicinskcenter</string>
|
<string name="poi_healthcare_centre">Medicinsk center</string>
|
||||||
<string name="poi_midwife">Jordemoder</string>
|
<string name="poi_midwife">Jordemoder</string>
|
||||||
<string name="poi_occupational_therapist">Ergoterapeut</string>
|
<string name="poi_occupational_therapist">Ergoterapeut</string>
|
||||||
<string name="poi_optometrist">Optiker</string>
|
<string name="poi_optometrist">Optiker</string>
|
||||||
|
@ -623,4 +623,17 @@
|
||||||
|
|
||||||
<string name="poi_palaeontological_site">Palæontologisk område</string>
|
<string name="poi_palaeontological_site">Palæontologisk område</string>
|
||||||
|
|
||||||
|
<string name="poi_motorway_junction">Motorvejskryds</string>
|
||||||
|
|
||||||
|
<string name="poi_pier">Mole</string>
|
||||||
|
<string name="poi_leisure_track">Sportsbane</string>
|
||||||
|
<string name="poi_ridge">Højderyg</string>
|
||||||
|
<string name="poi_glacier">Gletscher</string>
|
||||||
|
<string name="poi_river">Flod</string>
|
||||||
|
<string name="poi_stream">Vandløb</string>
|
||||||
|
<string name="poi_military">Militærområde</string>
|
||||||
|
<string name="poi_observatory">Observatorium</string>
|
||||||
|
<string name="poi_astronomical_observatory">Astronomisk observatorium</string>
|
||||||
|
<string name="poi_hot_spring">Varm kilde</string>
|
||||||
|
<string name="poi_geyser">Gejser</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -1455,7 +1455,7 @@
|
||||||
<string name="routing_preferences_descr">Indstillinger for ruteplanlægning</string>
|
<string name="routing_preferences_descr">Indstillinger for ruteplanlægning</string>
|
||||||
<string name="app_mode_truck">Lastbil</string>
|
<string name="app_mode_truck">Lastbil</string>
|
||||||
<string name="calculate_osmand_route_gpx">Beregn OsmAnd offline rute</string>
|
<string name="calculate_osmand_route_gpx">Beregn OsmAnd offline rute</string>
|
||||||
<string name="application_dir_change_warning2">OsmAnd kan forsøge at flytte data til ny destination . Vil du det?\n\nSkal OsmAnd forsøge at kopiere datafiler til den nye placering?</string>
|
<string name="application_dir_change_warning2">"Skal OsmAnd også kopiere datafiler til den nye placering?"</string>
|
||||||
<string name="copying_osmand_one_file_descr">Kopierer fil (%s) til den ny placering...</string>
|
<string name="copying_osmand_one_file_descr">Kopierer fil (%s) til den ny placering...</string>
|
||||||
<string name="copying_osmand_files_descr">Kopierer OsmAnd datafiler til ny destination (%s)</string>
|
<string name="copying_osmand_files_descr">Kopierer OsmAnd datafiler til ny destination (%s)</string>
|
||||||
<string name="copying_osmand_files">Kopierer OsmAnd datafiler</string>
|
<string name="copying_osmand_files">Kopierer OsmAnd datafiler</string>
|
||||||
|
@ -1805,8 +1805,6 @@
|
||||||
<string name="text_size">Tekststørrelse</string>
|
<string name="text_size">Tekststørrelse</string>
|
||||||
<string name="fav_point_dublicate">Favoritnavn dublet</string>
|
<string name="fav_point_dublicate">Favoritnavn dublet</string>
|
||||||
<string name="fav_point_dublicate_message">Favoritnavn er ændret til %1$s for at undgå dubletter.</string>
|
<string name="fav_point_dublicate_message">Favoritnavn er ændret til %1$s for at undgå dubletter.</string>
|
||||||
<string name="test_native_render">Test indbygget optegning</string>
|
|
||||||
<string name="test_native_render_msg">Start aktivitet med indbygget optegning</string>
|
|
||||||
<string name="use_native_render">Brug indbygget optegning</string>
|
<string name="use_native_render">Brug indbygget optegning</string>
|
||||||
<string name="use_native_render_descr">Brug C++ optegning i stedet for Java</string>
|
<string name="use_native_render_descr">Brug C++ optegning i stedet for Java</string>
|
||||||
<string name="print_route">Udskriv rute</string>
|
<string name="print_route">Udskriv rute</string>
|
||||||
|
@ -1852,4 +1850,9 @@
|
||||||
<string name="show_all">VIS ALLE</string>
|
<string name="show_all">VIS ALLE</string>
|
||||||
<string name="coordinates">Koordinater</string>
|
<string name="coordinates">Koordinater</string>
|
||||||
<string name="map_update">Kort</string>
|
<string name="map_update">Kort</string>
|
||||||
</resources>
|
<string name="error_avoid_specific_road">Nærmeste vej blev ikke fundet</string>
|
||||||
|
<string name="use_opengl_render">Brug OpenGL optegning</string>
|
||||||
|
<string name="use_opengl_render_descr">Brug hardware accelereret OpenGL optegning (virker muligvis ikke på alle enheder)</string>
|
||||||
|
<string name="everything_up_to_date">Alt er opdateret</string>
|
||||||
|
<string name="dismiss">Afvis</string>
|
||||||
|
</resources>
|
||||||
|
|
|
@ -2,5 +2,5 @@
|
||||||
<resources>
|
<resources>
|
||||||
<string name="bidforfix_loading">Lädt gerade</string>
|
<string name="bidforfix_loading">Lädt gerade</string>
|
||||||
<string name="bidforfix_supporters">%1$d Unterstützer</string>
|
<string name="bidforfix_supporters">%1$d Unterstützer</string>
|
||||||
<string name="bidforfix_funded">bereits gespendet: %d%%</string>
|
<string name="bidforfix_funded">Bereits gespendet: %d%%</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
<string name="poi_hospital">Krankenhaus</string>
|
<string name="poi_hospital">Krankenhaus</string>
|
||||||
<string name="poi_hostel">Jugendherberge</string>
|
<string name="poi_hostel">Jugendherberge</string>
|
||||||
<string name="poi_hotel">Hotel</string>
|
<string name="poi_hotel">Hotel</string>
|
||||||
<string name="poi_mine_historic">Historisches bergwerk</string>
|
<string name="poi_mine_historic">Historisches Bergwerk</string>
|
||||||
<string name="poi_monastery">Kloster</string>
|
<string name="poi_monastery">Kloster</string>
|
||||||
<string name="poi_motel">Motel</string>
|
<string name="poi_motel">Motel</string>
|
||||||
<string name="poi_monument">Monument</string>
|
<string name="poi_monument">Monument</string>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
<resources>
|
<resources>
|
||||||
<string name="traffic_warning_speed_limit">Geschwindigkeitsbegrenzung</string>
|
<string name="traffic_warning_speed_limit">Geschwindigkeitsbegrenzung</string>
|
||||||
<string name="traffic_warning_border_control">Grenzkontrolle</string>
|
<string name="traffic_warning_border_control">Grenzkontrolle</string>
|
||||||
|
@ -999,7 +999,7 @@
|
||||||
<string name="route_general_information">Gesamtentfernung: %1$s\nReisezeit: %2$d h %3$d min</string>
|
<string name="route_general_information">Gesamtentfernung: %1$s\nReisezeit: %2$d h %3$d min</string>
|
||||||
<string name="router_service_descr">Online- oder Offline-Dienst zur Routenberechnung wählen</string>
|
<string name="router_service_descr">Online- oder Offline-Dienst zur Routenberechnung wählen</string>
|
||||||
<string name="router_service">Navigationsdienst</string>
|
<string name="router_service">Navigationsdienst</string>
|
||||||
<string name="sd_dir_not_accessible">Auf den Daten-Ordner auf der SD-Karte kann nicht zugegriffen werden</string>
|
<string name="sd_dir_not_accessible">Auf den Daten-Ordner auf der SD-Karte kann nicht zugegriffen werden!</string>
|
||||||
<string name="download_question">Herunterladen {0} - {1}?</string>
|
<string name="download_question">Herunterladen {0} - {1}?</string>
|
||||||
<string name="download_question_exist">Offline Daten für {0} existieren schon ({1}). Wollen Sie die überschreiben ({2})?</string>
|
<string name="download_question_exist">Offline Daten für {0} existieren schon ({1}). Wollen Sie die überschreiben ({2})?</string>
|
||||||
<string name="address">Adresse</string>
|
<string name="address">Adresse</string>
|
||||||
|
@ -1535,10 +1535,10 @@
|
||||||
<string name="routing_attr_avoid_motorway_description">Autobahnen vermeiden</string>
|
<string name="routing_attr_avoid_motorway_description">Autobahnen vermeiden</string>
|
||||||
<string name="routing_attr_weight_name">Gewichtsbeschränkung</string>
|
<string name="routing_attr_weight_name">Gewichtsbeschränkung</string>
|
||||||
<string name="routing_attr_weight_description">Angabe eines Fahrzeuggewichts für die Zulässigkeit Route</string>
|
<string name="routing_attr_weight_description">Angabe eines Fahrzeuggewichts für die Zulässigkeit Route</string>
|
||||||
<string name="android_19_location_disabled">"Seit Android 4.4 (KitKat) können neue Karten-Downloads nicht mehr am Speicherort früherer Android-Versionen gespeichert werden (%s). Jetzt den zulässigen Speicherort wählen und alle OsmAnd Dateien dorthin kopieren?
|
<string name="android_19_location_disabled">"Seit Android 4.4 (KitKat) können neue Karten-Downloads nicht mehr am Speicherort früherer Android-Versionen gespeichert werden (%s). Jetzt den zulässigen Speicherort wählen und alle OsmAnd-Dateien dorthin kopieren?
|
||||||
\n Hinweis 1: Die ursprünglichen Dateien bleiben hiervon unberührt, können aber nachfolgend manuell gelöscht werden.
|
\n Hinweis 1: Die ursprünglichen Dateien bleiben hiervon unberührt, können aber nachfolgend manuell gelöscht werden.
|
||||||
\n Hinweis 2: Die Dateien können dann nicht mehr von OsmAnd und OsmAnd+ gemeinsam genutzt werden."</string>
|
\n Hinweis 2: Die Dateien können dann nicht mehr von OsmAnd und OsmAnd+ gemeinsam genutzt werden."</string>
|
||||||
<string name="application_dir_change_warning2">Soll Osmand versuchen, die Dateien an den neuen Speicherort zu verschieben?</string>
|
<string name="application_dir_change_warning2">Soll Osmand auch die Dateien an den neuen Speicherort verschieben?</string>
|
||||||
<string name="copying_osmand_one_file_descr">Kopieren der Datei (%s) an den neuen Speicherort…</string>
|
<string name="copying_osmand_one_file_descr">Kopieren der Datei (%s) an den neuen Speicherort…</string>
|
||||||
<string name="copying_osmand_files_descr">Kopieren der Osmand-Dateien zum neuen Speicherort (%s)</string>
|
<string name="copying_osmand_files_descr">Kopieren der Osmand-Dateien zum neuen Speicherort (%s)</string>
|
||||||
<string name="copying_osmand_files">Kopiere Osmand-Dateien</string>
|
<string name="copying_osmand_files">Kopiere Osmand-Dateien</string>
|
||||||
|
@ -1950,7 +1950,7 @@ Afghanistan, Ägypten, Albanien, Algerien, Andorra, Angola, Anguilla, Antigua an
|
||||||
<string name="gpx_option_reverse_route">GPX-Route umkehren</string>
|
<string name="gpx_option_reverse_route">GPX-Route umkehren</string>
|
||||||
<string name="gpx_option_destination_point">Derzeitiges Ziel verwenden</string>
|
<string name="gpx_option_destination_point">Derzeitiges Ziel verwenden</string>
|
||||||
<string name="gpx_option_from_start_point">Gesamten Track durchlaufen</string>
|
<string name="gpx_option_from_start_point">Gesamten Track durchlaufen</string>
|
||||||
<string name="gpx_files_not_found">Keine GPX-Dateien gefunden in /tracks-Ordner</string>
|
<string name="gpx_files_not_found">Keine GPX-Dateien gefunden im /tracks-Ordner</string>
|
||||||
<string name="gpx_file_name">GPX-Dateiname</string>
|
<string name="gpx_file_name">GPX-Dateiname</string>
|
||||||
<string name="gpx_saved_sucessfully">GPX-Datei erfolgreich gespeichert unter {0}</string>
|
<string name="gpx_saved_sucessfully">GPX-Datei erfolgreich gespeichert unter {0}</string>
|
||||||
<string name="gpx_option_calculate_first_last_segment">Berechnen des ersten und letzten Abschnitts der OsmAnd-Route</string>
|
<string name="gpx_option_calculate_first_last_segment">Berechnen des ersten und letzten Abschnitts der OsmAnd-Route</string>
|
||||||
|
@ -1975,8 +1975,6 @@ Afghanistan, Ägypten, Albanien, Algerien, Andorra, Angola, Anguilla, Antigua an
|
||||||
<string name="text_size">Schriftgröße</string>
|
<string name="text_size">Schriftgröße</string>
|
||||||
<string name="fav_point_dublicate">Doppelung beim Favoriten-Namen</string>
|
<string name="fav_point_dublicate">Doppelung beim Favoriten-Namen</string>
|
||||||
<string name="fav_point_dublicate_message">Name des Favoriten bereits vergeben, er wurde auf %1$s geändert.</string>
|
<string name="fav_point_dublicate_message">Name des Favoriten bereits vergeben, er wurde auf %1$s geändert.</string>
|
||||||
<string name="test_native_render">Nativen Renderer testen</string>
|
|
||||||
<string name="test_native_render_msg">Nutzt den nativen Renderer</string>
|
|
||||||
<string name="use_native_render">Nativen Renderer benutzen</string>
|
<string name="use_native_render">Nativen Renderer benutzen</string>
|
||||||
<string name="use_native_render_descr">C++ Renderer statt Java-Renderer nutzen</string>
|
<string name="use_native_render_descr">C++ Renderer statt Java-Renderer nutzen</string>
|
||||||
<string name="fav_point_emoticons_message">Der Name des Favoriten wurde auf %1$s geändert, denn Zeichenketten mit Emoticons können nicht gespeichert werden.</string>
|
<string name="fav_point_emoticons_message">Der Name des Favoriten wurde auf %1$s geändert, denn Zeichenketten mit Emoticons können nicht gespeichert werden.</string>
|
||||||
|
@ -2005,7 +2003,7 @@ Afghanistan, Ägypten, Albanien, Algerien, Andorra, Angola, Anguilla, Antigua an
|
||||||
<string name="wake_on_voice_descr">Bildschirm bei Navigationsanweisung aktivieren</string>
|
<string name="wake_on_voice_descr">Bildschirm bei Navigationsanweisung aktivieren</string>
|
||||||
<string name="wake_on_voice_never">Niemals</string>
|
<string name="wake_on_voice_never">Niemals</string>
|
||||||
<string name="select_impassable_road">Auswählen auf der Karte</string>
|
<string name="select_impassable_road">Auswählen auf der Karte</string>
|
||||||
<string name="impassable_road">Straße blockieren …</string>
|
<string name="impassable_road">Straße blockieren…</string>
|
||||||
<string name="rendering_attr_tramTrainRoutes_name">Straßen- und Eisenbahnlinien</string>
|
<string name="rendering_attr_tramTrainRoutes_name">Straßen- und Eisenbahnlinien</string>
|
||||||
<string name="rendering_attr_trainLightrailRoutes_name">Eisenbahn-Strecken</string>
|
<string name="rendering_attr_trainLightrailRoutes_name">Eisenbahn-Strecken</string>
|
||||||
<string name="rendering_attr_shareTaxiRoutes_name">Sammeltaxi-Routen</string>
|
<string name="rendering_attr_shareTaxiRoutes_name">Sammeltaxi-Routen</string>
|
||||||
|
@ -2014,6 +2012,14 @@ Afghanistan, Ägypten, Albanien, Algerien, Andorra, Angola, Anguilla, Antigua an
|
||||||
<string name="rendering_category_hide">Ausblenden</string>
|
<string name="rendering_category_hide">Ausblenden</string>
|
||||||
<string name="lock_screen_request_explanation">%1$s benötigt diese Berechtigung, um den Bildschirm auszuschalten (Energiesparfunktion).</string>
|
<string name="lock_screen_request_explanation">%1$s benötigt diese Berechtigung, um den Bildschirm auszuschalten (Energiesparfunktion).</string>
|
||||||
<string name="advanced_settings">Erweitert</string>
|
<string name="advanced_settings">Erweitert</string>
|
||||||
|
<string name="home_button">Start</string>
|
||||||
|
<string name="coordinates">Koordinaten</string>
|
||||||
|
<string name="error_avoid_specific_road">Nächstgelegene Straße konnte nicht gefunden werden</string>
|
||||||
<string name="osmo_use_https_descr">Sichere Verbindung zum Server</string>
|
<string name="osmo_use_https_descr">Sichere Verbindung zum Server</string>
|
||||||
<string name="osmo_use_https">Nutze https</string>
|
<string name="osmo_use_https">Nutze https</string>
|
||||||
</resources>
|
<string name="map_update">Karten</string>
|
||||||
|
<string name="show_map">KARTE ANZEIGEN</string>
|
||||||
|
<string name="show_all">ALLES ANZEIGEN</string>
|
||||||
|
<string name="coordinates">Koordinaten</string>
|
||||||
|
<string name="search_for">Suche nach</string>
|
||||||
|
</resources>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources><string name="btn_add_tag">Προσθήκη Ετικέτας</string>
|
<resources><string name="btn_add_tag">Προσθήκη Ετικέτας</string>
|
||||||
<string name="btn_advanced_mode">Λειτουργία για προχωρημένους…</string>
|
<string name="btn_advanced_mode">Λειτουργία για προχωρημένους…</string>
|
||||||
<string name="poi_filter_parking">Στάθμευση</string>
|
<string name="poi_filter_parking">Στάθμευση</string>
|
||||||
|
|
|
@ -1484,7 +1484,7 @@ Afganistán, Albania, Alemania, Andorra, Angola, Anguila, Antigua y Barbuda, Ant
|
||||||
<string name="routing_preferences_descr">Preferencias de ruteo</string>
|
<string name="routing_preferences_descr">Preferencias de ruteo</string>
|
||||||
<string name="speech_rate_descr">Especifica la velocidad en el habla sintetizada (TTS)</string>
|
<string name="speech_rate_descr">Especifica la velocidad en el habla sintetizada (TTS)</string>
|
||||||
<string name="speech_rate">Velocidad del habla sintetizada (TTS)</string>
|
<string name="speech_rate">Velocidad del habla sintetizada (TTS)</string>
|
||||||
<string name="application_dir_change_warning2">¿Quieres que OsmAnd intente mover sus archivos de datos al nuevo destino?</string>
|
<string name="application_dir_change_warning2">¿Quieres que OsmAnd copie sus archivos de datos al nuevo destino?</string>
|
||||||
<string name="copying_osmand_one_file_descr">Copiando archivo (%s) al nuevo destino...</string>
|
<string name="copying_osmand_one_file_descr">Copiando archivo (%s) al nuevo destino...</string>
|
||||||
<string name="copying_osmand_files_descr">Copiando archivos de OsmAnd al nuevo destino (%s)</string>
|
<string name="copying_osmand_files_descr">Copiando archivos de OsmAnd al nuevo destino (%s)</string>
|
||||||
<string name="copying_osmand_files">Copiando archivos de datos de OsmAnd</string>
|
<string name="copying_osmand_files">Copiando archivos de datos de OsmAnd</string>
|
||||||
|
@ -1839,8 +1839,6 @@ Afganistán, Albania, Alemania, Andorra, Angola, Anguila, Antigua y Barbuda, Ant
|
||||||
<string name="text_size">Tamaño de texto</string>
|
<string name="text_size">Tamaño de texto</string>
|
||||||
<string name="fav_point_dublicate">Nombre de punto favorito duplicado</string>
|
<string name="fav_point_dublicate">Nombre de punto favorito duplicado</string>
|
||||||
<string name="fav_point_dublicate_message">Hemos cambiado el nombre de tu punto favorito a %1$s para evitar nombres duplicados.</string>
|
<string name="fav_point_dublicate_message">Hemos cambiado el nombre de tu punto favorito a %1$s para evitar nombres duplicados.</string>
|
||||||
<string name="test_native_render">Probar renderización nativa</string>
|
|
||||||
<string name="test_native_render_msg">Iniciar la actividad con renderización nativa</string>
|
|
||||||
<string name="use_native_render">Usar renderización nativa</string>
|
<string name="use_native_render">Usar renderización nativa</string>
|
||||||
<string name="use_native_render_descr">Usar el renderizado C++ en lugar de Java</string>
|
<string name="use_native_render_descr">Usar el renderizado C++ en lugar de Java</string>
|
||||||
<string name="print_route">Imprimir ruta</string>
|
<string name="print_route">Imprimir ruta</string>
|
||||||
|
@ -1886,4 +1884,8 @@ Afganistán, Albania, Alemania, Andorra, Angola, Anguila, Antigua y Barbuda, Ant
|
||||||
<string name="show_map">MOSTRAR MAPA</string>
|
<string name="show_map">MOSTRAR MAPA</string>
|
||||||
<string name="show_all">MOSTRAR TODO</string>
|
<string name="show_all">MOSTRAR TODO</string>
|
||||||
<string name="coordinates">Coordenadas</string>
|
<string name="coordinates">Coordenadas</string>
|
||||||
</resources>
|
<string name="use_opengl_render">Usar renderizado opengl</string>
|
||||||
|
<string name="use_opengl_render_descr">Usar renderizado opengl acelerado por hardware (podría no funcionar en algunos dispositivos)</string>
|
||||||
|
<string name="error_avoid_specific_road">No se ha encontrado la carretera más cercana</string>
|
||||||
|
<string name="everything_up_to_date">Todo actualizado</string>
|
||||||
|
</resources>
|
||||||
|
|
|
@ -46,7 +46,7 @@
|
||||||
<string name="poi_bicycle_shop">Magasin de vélos</string>
|
<string name="poi_bicycle_shop">Magasin de vélos</string>
|
||||||
<string name="poi_bicycle_parking">Parking à vélos</string>
|
<string name="poi_bicycle_parking">Parking à vélos</string>
|
||||||
<string name="poi_bicycle_rental">Location de vélos</string>
|
<string name="poi_bicycle_rental">Location de vélos</string>
|
||||||
<string name="poi_biergarten">Biergarten</string>
|
<string name="poi_biergarten">Brasserie en plein air</string>
|
||||||
<string name="poi_bitcoin_yes">Paiement par bitcoins</string>
|
<string name="poi_bitcoin_yes">Paiement par bitcoins</string>
|
||||||
<string name="poi_boat_sharing">Partage de voiliers</string>
|
<string name="poi_boat_sharing">Partage de voiliers</string>
|
||||||
<string name="poi_boatyard">Cale sèche</string>
|
<string name="poi_boatyard">Cale sèche</string>
|
||||||
|
@ -246,7 +246,7 @@
|
||||||
<string name="poi_orienteering">Course d\'orientation</string>
|
<string name="poi_orienteering">Course d\'orientation</string>
|
||||||
<string name="poi_outdoor_shop">Magasin d\'activités de plein air</string>
|
<string name="poi_outdoor_shop">Magasin d\'activités de plein air</string>
|
||||||
<string name="poi_paddle_tennis">Padel</string>
|
<string name="poi_paddle_tennis">Padel</string>
|
||||||
<string name="poi_parking">Parking</string>
|
<string name="poi_parking">Parc de stationnement</string>
|
||||||
<string name="poi_parking_entrance">Entrée de parking</string>
|
<string name="poi_parking_entrance">Entrée de parking</string>
|
||||||
<string name="poi_pawnbroker">Mont-de-piété</string>
|
<string name="poi_pawnbroker">Mont-de-piété</string>
|
||||||
<string name="poi_peak">Sommet</string>
|
<string name="poi_peak">Sommet</string>
|
||||||
|
@ -304,7 +304,7 @@
|
||||||
<string name="poi_shoes">Magasin de chaussures</string>
|
<string name="poi_shoes">Magasin de chaussures</string>
|
||||||
<string name="poi_place_of_worship_sikh">Sikhisme</string>
|
<string name="poi_place_of_worship_sikh">Sikhisme</string>
|
||||||
<string name="poi_sinkhole">Doline</string>
|
<string name="poi_sinkhole">Doline</string>
|
||||||
<string name="poi_skateboard">Skateboard</string>
|
<string name="poi_skateboard">Planche à roulettes</string>
|
||||||
<string name="poi_skating">Patin à glace</string>
|
<string name="poi_skating">Patin à glace</string>
|
||||||
<string name="poi_skiing">Ski</string>
|
<string name="poi_skiing">Ski</string>
|
||||||
<string name="poi_slipway">Cale de lancement</string>
|
<string name="poi_slipway">Cale de lancement</string>
|
||||||
|
@ -385,4 +385,92 @@
|
||||||
<string name="poi_works">Usine</string>
|
<string name="poi_works">Usine</string>
|
||||||
<string name="poi_wreck">Épave</string>
|
<string name="poi_wreck">Épave</string>
|
||||||
<string name="poi_zoo">Zoo</string>
|
<string name="poi_zoo">Zoo</string>
|
||||||
</resources>
|
<string name="poi_shop_tea">Salon de thé</string>
|
||||||
|
<string name="poi_art_shop">Boutique d\'Art</string>
|
||||||
|
<string name="poi_carpet_shop">Magasin de tapis</string>
|
||||||
|
<string name="poi_computer_shop">Boutique informatique</string>
|
||||||
|
<string name="poi_dive_shop">Équipement de plongée sous-marine</string>
|
||||||
|
<string name="poi_ship_chandler">Magasin d\'accastillage</string>
|
||||||
|
<string name="poi_gate">Pont</string>
|
||||||
|
<string name="poi_traffic_signals">Feux tricolores</string>
|
||||||
|
|
||||||
|
<string name="poi_service_tyres">Pneus</string>
|
||||||
|
<string name="poi_public_transport_platform_bus">Arrêt de bus</string>
|
||||||
|
<string name="poi_subway_station">Station de métro</string>
|
||||||
|
<string name="poi_tunnel">Tunnel</string>
|
||||||
|
<string name="poi_register_office">Bureau d\'état civil</string>
|
||||||
|
<string name="poi_customs">Douanes</string>
|
||||||
|
<string name="poi_healthcare_centre">Centre médical</string>
|
||||||
|
<string name="poi_speech_therapist">Orthophoniste</string>
|
||||||
|
<string name="poi_advertising_agency">Agence de publicité</string>
|
||||||
|
<string name="poi_chess">Échecs</string>
|
||||||
|
<string name="poi_palaeontological_site">Site paléontologique</string>
|
||||||
|
|
||||||
|
<string name="poi_shop_farm">Vente à la ferme</string>
|
||||||
|
<string name="poi_anime_shop">Librairie spécialisée en bandes dessinées</string>
|
||||||
|
<string name="poi_antiques_shop">Antiquaire</string>
|
||||||
|
<string name="poi_hunting_shop">Equipement de chasse</string>
|
||||||
|
<string name="poi_interior_decoration_shop">Boutique de décoration</string>
|
||||||
|
<string name="poi_lift_gate">Pont levant</string>
|
||||||
|
<string name="poi_border_control">Poste frontière</string>
|
||||||
|
<string name="poi_traffic_calming_table">Table</string>
|
||||||
|
<string name="poi_vehicle_inspection">Centre de contrôle technique automobile</string>
|
||||||
|
<string name="poi_pier">Jetée</string>
|
||||||
|
<string name="poi_surveillance"/>
|
||||||
|
<string name="poi_government">Gouvernement</string>
|
||||||
|
<string name="poi_pension_fund">Fond de pension</string>
|
||||||
|
<string name="poi_tax_inspection">Centre des impôts</string>
|
||||||
|
<string name="poi_blood_bank">Banque de sang</string>
|
||||||
|
<string name="poi_midwife">Sage-femme</string>
|
||||||
|
<string name="poi_podiatrist">Podologue</string>
|
||||||
|
<string name="poi_psychotherapist">Psychothérapeute</string>
|
||||||
|
<string name="poi_company">Entreprise</string>
|
||||||
|
<string name="poi_town_hall">Mairie</string>
|
||||||
|
<string name="poi_educational_institution">Institution éducative</string>
|
||||||
|
<string name="poi_bicycle_track">Piste cycable</string>
|
||||||
|
<string name="poi_australian_football">Football autralien</string>
|
||||||
|
<string name="poi_handball">Handball</string>
|
||||||
|
<string name="poi_horse_racing">Course hippique</string>
|
||||||
|
<string name="poi_ice_skating">Patinoire</string>
|
||||||
|
<string name="poi_motor_sport">Sport mécanique</string>
|
||||||
|
<string name="poi_paragliding">Parapente</string>
|
||||||
|
<string name="poi_rowing">Aviron</string>
|
||||||
|
<string name="poi_ship_historic">Bateau du patrimoine</string>
|
||||||
|
<string name="poi_clock">Horloge</string>
|
||||||
|
<string name="poi_club_astronomy">Club d\'astronomie</string>
|
||||||
|
<string name="poi_club_sport">Club de sports</string>
|
||||||
|
<string name="poi_club_fishing">Association de pêche</string>
|
||||||
|
<string name="poi_club_linux">Association Linux</string>
|
||||||
|
<string name="poi_club_hunting">Club de chasse</string>
|
||||||
|
<string name="poi_cinema">Cinéma</string>
|
||||||
|
<string name="poi_theatre">Théâtre</string>
|
||||||
|
<string name="poi_circus">Cirque</string>
|
||||||
|
<string name="poi_fishing_place">Lieu de pêche</string>
|
||||||
|
<string name="poi_park">Parc</string>
|
||||||
|
|
||||||
|
<string name="poi_barbecue">Barbecue</string>
|
||||||
|
|
||||||
|
<string name="poi_boatbuilder">Chantier naval</string>
|
||||||
|
<string name="poi_clockmaker">Horloger</string>
|
||||||
|
<string name="poi_jeweller">Bijoutier</string>
|
||||||
|
<string name="poi_optician">Opticien</string>
|
||||||
|
<string name="poi_photographic_laboratory">Laboratoire photographique</string>
|
||||||
|
<string name="poi_sailmaker">Maître voilier</string>
|
||||||
|
<string name="poi_sculptor">Sculpteur</string>
|
||||||
|
<string name="poi_beauty_salon_nails">Salon de manucure</string>
|
||||||
|
<string name="poi_internet_cafe">Café Internet</string>
|
||||||
|
|
||||||
|
<string name="poi_accountant">Comptable</string>
|
||||||
|
<string name="poi_bay">Baie</string>
|
||||||
|
<string name="poi_fjord">Fjord</string>
|
||||||
|
<string name="poi_seamark_anchorage">Mouillage</string>
|
||||||
|
<string name="poi_seamark_beacon">Balise</string>
|
||||||
|
<string name="poi_seamark_building">Amer</string>
|
||||||
|
<string name="poi_seamark_buoy_special_purpose">Marque spéciale</string>
|
||||||
|
<string name="poi_seamark_dry_dock">Cale sèche</string>
|
||||||
|
<string name="poi_seamark_mooring">Mouillage</string>
|
||||||
|
<string name="poi_seamark_wreck">Épave</string>
|
||||||
|
|
||||||
|
<string name="poi_bag_shop">Maroquinerie</string>
|
||||||
|
<string name="poi_military_airfield">Aérodrome militaire</string>
|
||||||
|
</resources>
|
||||||
|
|
|
@ -1466,7 +1466,7 @@ Afghanistan, Albanie, Algérie, Allemagne, Andorre, Angola, Anguilla, Antigua-et
|
||||||
<string name="routing_preferences_descr">Paramètres d\'itinéraire</string>
|
<string name="routing_preferences_descr">Paramètres d\'itinéraire</string>
|
||||||
<string name="android_19_location_disabled">Depuis Android 4.4 (KitKat), vous ne pouvez plus télécharger et mettre à jour les cartes dans le dossier (%s) utilisé jusqu\'à présent. Voulez-vous utiliser le nouveau dossier et y copier l\'ensemble des fichiers OsmAnd ?
|
<string name="android_19_location_disabled">Depuis Android 4.4 (KitKat), vous ne pouvez plus télécharger et mettre à jour les cartes dans le dossier (%s) utilisé jusqu\'à présent. Voulez-vous utiliser le nouveau dossier et y copier l\'ensemble des fichiers OsmAnd ?
|
||||||
\n Note 1 : Les anciens fichiers seront conservés (mais vous pouvez les supprimer manuellement)\n Note 2 : En raison de ce nouveau dossier de stockage, il ne sera plus possible de partager des fichiers entre OsmAnd et OsmAnd+.</string>
|
\n Note 1 : Les anciens fichiers seront conservés (mais vous pouvez les supprimer manuellement)\n Note 2 : En raison de ce nouveau dossier de stockage, il ne sera plus possible de partager des fichiers entre OsmAnd et OsmAnd+.</string>
|
||||||
<string name="application_dir_change_warning2">Souhaitez-vous qu\'OsmAnd copie les données vers la nouvelle destination ?</string>
|
<string name="application_dir_change_warning2">Souhaitez-vous qu\'OsmAnd copie aussi ses données vers la nouvelle destination ?</string>
|
||||||
<string name="copying_osmand_one_file_descr">Copie des fichiers (%s) vers la nouvelle destination...</string>
|
<string name="copying_osmand_one_file_descr">Copie des fichiers (%s) vers la nouvelle destination...</string>
|
||||||
<string name="copying_osmand_files_descr">Copie des fichiers de données OsmAnd vers la nouvelle destination (%s)</string>
|
<string name="copying_osmand_files_descr">Copie des fichiers de données OsmAnd vers la nouvelle destination (%s)</string>
|
||||||
<string name="copying_osmand_files">Copie des fichiers de données OsmAnd</string>
|
<string name="copying_osmand_files">Copie des fichiers de données OsmAnd</string>
|
||||||
|
@ -1821,8 +1821,6 @@ Afghanistan, Albanie, Algérie, Allemagne, Andorre, Angola, Anguilla, Antigua-et
|
||||||
<string name="fav_point_dublicate">Ce nom est déjà utilisé pour un favori.</string>
|
<string name="fav_point_dublicate">Ce nom est déjà utilisé pour un favori.</string>
|
||||||
<string name="fav_point_dublicate_message">Nous avons modifié le nom de votre favori en %1$s pour éviter les doublons.</string>
|
<string name="fav_point_dublicate_message">Nous avons modifié le nom de votre favori en %1$s pour éviter les doublons.</string>
|
||||||
<string name="text_size_descr">Sélectionnez la taille du texte sur la carte.</string>
|
<string name="text_size_descr">Sélectionnez la taille du texte sur la carte.</string>
|
||||||
<string name="test_native_render">Tester le moteur de rendu natif</string>
|
|
||||||
<string name="test_native_render_msg">Démarrer l\'activité avec le moteur de rendu natif</string>
|
|
||||||
<string name="use_native_render">Utiliser le moteur natif de rendu</string>
|
<string name="use_native_render">Utiliser le moteur natif de rendu</string>
|
||||||
<string name="use_native_render_descr">Utiliser le moteur de rendu C++ au lieu de Java</string>
|
<string name="use_native_render_descr">Utiliser le moteur de rendu C++ au lieu de Java</string>
|
||||||
<string name="print_route">Exporter l\'itinéraire</string>
|
<string name="print_route">Exporter l\'itinéraire</string>
|
||||||
|
@ -1862,10 +1860,15 @@ Afghanistan, Albanie, Algérie, Allemagne, Andorre, Angola, Anguilla, Antigua-et
|
||||||
<string name="advanced_settings">Avancé</string>
|
<string name="advanced_settings">Avancé</string>
|
||||||
<string name="osmo_use_https_descr">Utiliser une connexion sécurisée avec le serveur</string>
|
<string name="osmo_use_https_descr">Utiliser une connexion sécurisée avec le serveur</string>
|
||||||
<string name="osmo_use_https">Utiliser HTTPS</string>
|
<string name="osmo_use_https">Utiliser HTTPS</string>
|
||||||
<string name="home_button">Accueil</string>
|
<string name="home_button">Domicile</string>
|
||||||
<string name="search_for">Rechercher</string>
|
<string name="search_for">Rechercher</string>
|
||||||
<string name="show_map">AFFICHER LA CARTE</string>
|
<string name="show_map">AFFICHER LA CARTE</string>
|
||||||
<string name="show_all">AFFICHER TOUT</string>
|
<string name="show_all">AFFICHER TOUT</string>
|
||||||
<string name="coordinates">Coordonnées</string>
|
<string name="coordinates">Coordonnées</string>
|
||||||
<string name="map_update">Cartes</string>
|
<string name="map_update">Cartes</string>
|
||||||
</resources>
|
<string name="error_avoid_specific_road">Aucune route n\'a été trouvée à proximité</string>
|
||||||
|
<string name="use_opengl_render">Utiliser le rendu OpenGL</string>
|
||||||
|
<string name="use_opengl_render_descr">Utiliser le rendu matériel accéléré OpenGL (cette option peut être inefficace sur certains appareils)</string>
|
||||||
|
<string name="everything_up_to_date">Vous disposez de la dernière version</string>
|
||||||
|
<string name="dismiss">Ignorer</string>
|
||||||
|
</resources>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources><string name="fav_point_dublicate_message">O nome do punto favorito foi cambiado a %1$s para evitar os duplicados.</string>
|
<resources><string name="fav_point_dublicate_message">O nome do punto favorito foi cambiado a %1$s para evitar os duplicados.</string>
|
||||||
<string name="text_size_descr">Configurar o tamaño da letra no mapa.</string>
|
<string name="text_size_descr">Configurar o tamaño da letra no mapa.</string>
|
||||||
<string name="text_size">Tamaño da letra</string>
|
<string name="text_size">Tamaño da letra</string>
|
||||||
|
@ -16,8 +16,6 @@
|
||||||
<string name="tip_search_t">"Pódense buscar sitios directamente no mapa con «Empregar o lugar» → «Buscar preto de aquí» ou chamando pola pantalla de busca mediante «Menú» → «Buscar».\n\nA pantalla de busca fornece modelos para buscar\n\t* polo enderezo\n\t* mediante coordenadas\n\t* como punto de interese (PDI, por tipo ou polo nome)\n\t* mediante o historial de buscas\n\t* ou mediante os favoritos predefinidos.\n\nCon todas as coincidencias hai un menú de contexto ou barra de accións que ofrece opcións tipo «Indicacións a» ou «Mostrar no mapa», etc. "</string>
|
<string name="tip_search_t">"Pódense buscar sitios directamente no mapa con «Empregar o lugar» → «Buscar preto de aquí» ou chamando pola pantalla de busca mediante «Menú» → «Buscar».\n\nA pantalla de busca fornece modelos para buscar\n\t* polo enderezo\n\t* mediante coordenadas\n\t* como punto de interese (PDI, por tipo ou polo nome)\n\t* mediante o historial de buscas\n\t* ou mediante os favoritos predefinidos.\n\nCon todas as coincidencias hai un menú de contexto ou barra de accións que ofrece opcións tipo «Indicacións a» ou «Mostrar no mapa», etc. "</string>
|
||||||
<string name="fav_point_emoticons_message">Cambiamos o punto favorito a %1$s para facilitar que se garde a cadea con emoticonas nun ficheiro.</string>
|
<string name="fav_point_emoticons_message">Cambiamos o punto favorito a %1$s para facilitar que se garde a cadea con emoticonas nun ficheiro.</string>
|
||||||
<string name="print_route">Imprimir o itinerario</string>
|
<string name="print_route">Imprimir o itinerario</string>
|
||||||
<string name="test_native_render">Probar o renderizador nativo</string>
|
|
||||||
<string name="test_native_render_msg">Inicia a actividade cun renderizador nativo</string>
|
|
||||||
<string name="fav_point_dublicate">O nome do punto favorito está duplicado</string>
|
<string name="fav_point_dublicate">O nome do punto favorito está duplicado</string>
|
||||||
<string name="use_native_render">Empregar o renderizador nativo</string>
|
<string name="use_native_render">Empregar o renderizador nativo</string>
|
||||||
<string name="use_native_render_descr">Empregar o renderizador en C++ en troques de en Java</string>
|
<string name="use_native_render_descr">Empregar o renderizador en C++ en troques de en Java</string>
|
||||||
|
|
|
@ -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>
|
<resources><string name="map_widget_gps_info">GPS informacije</string>
|
||||||
<string name="access_arrival_time">Vrijeme dolaska</string>
|
<string name="access_arrival_time">Vrijeme dolaska</string>
|
||||||
<string name="item_checked">provjereno</string>
|
<string name="item_checked">provjereno</string>
|
||||||
|
|
235
OsmAnd/res/values-hu/phrases.xml
Normal file
235
OsmAnd/res/values-hu/phrases.xml
Normal file
|
@ -0,0 +1,235 @@
|
||||||
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
|
<resources><string name="poi_palaeontological_site">Régészeti lelőhely</string>
|
||||||
|
|
||||||
|
<string name="poi_bakery">Pékség</string>
|
||||||
|
<string name="poi_convenience">Kisbolt</string>
|
||||||
|
<string name="poi_mall">Bevásárlóközpont</string>
|
||||||
|
<string name="poi_beverages">Italbolt</string>
|
||||||
|
<string name="poi_butcher">Hentes</string>
|
||||||
|
<string name="poi_deli">Delikatesz bolt</string>
|
||||||
|
<string name="poi_shop_farm">Farm bolt</string>
|
||||||
|
<string name="poi_greengrocer">Zöldséges</string>
|
||||||
|
<string name="poi_seafood">Halárus</string>
|
||||||
|
<string name="poi_confectionery">Cukrászda</string>
|
||||||
|
<string name="poi_ice_cream">Fagyizó</string>
|
||||||
|
<string name="poi_supermarket">Szupermarket</string>
|
||||||
|
<string name="poi_shop_tea">Teabolt</string>
|
||||||
|
<string name="poi_dairy">Tejtermék bolt</string>
|
||||||
|
<string name="poi_vending_machine">Árusító automata</string>
|
||||||
|
|
||||||
|
<string name="poi_bookshop">Könyvesbolt</string>
|
||||||
|
<string name="poi_bicycle_shop">Kerékpárbolt</string>
|
||||||
|
<string name="poi_anime_shop">Anime bolt</string>
|
||||||
|
<string name="poi_antiques_shop">Antikvárius</string>
|
||||||
|
<string name="poi_chemist_shop">Drogéria</string>
|
||||||
|
<string name="poi_copyshop">Fénymásoló</string>
|
||||||
|
<string name="poi_florist">Virágárus</string>
|
||||||
|
<string name="poi_garden_centre">Kertészet</string>
|
||||||
|
<string name="poi_gift_shop">Ajándékbolt</string>
|
||||||
|
<string name="poi_hardware_shop">Háztartási bolt</string>
|
||||||
|
<string name="poi_jewelry_shop">Ékszerbolt</string>
|
||||||
|
<string name="poi_motorcycle_shop">Motorkerékpár kereskedés</string>
|
||||||
|
<string name="poi_sports_shop">Sportbolt</string>
|
||||||
|
<string name="poi_ticket_shop">Jegyárus</string>
|
||||||
|
<string name="poi_tobacco_shop">Dohánybolt</string>
|
||||||
|
<string name="poi_toys_shop">Játékbolt</string>
|
||||||
|
<string name="poi_variety_store">100 forintos bolt</string>
|
||||||
|
<string name="poi_department_store">Áruház</string>
|
||||||
|
<string name="poi_car_shop">Autókereskedés</string>
|
||||||
|
<string name="poi_car_parts_shop">Autóalkatrész</string>
|
||||||
|
<string name="poi_marketplace">Piac</string>
|
||||||
|
<string name="poi_police">Rendőrség</string>
|
||||||
|
<string name="poi_fire_station">Tűzoltóság</string>
|
||||||
|
<string name="poi_emergency_phone">Segélykérő telefon</string>
|
||||||
|
<string name="poi_fire_hydrant">Tűzcsap</string>
|
||||||
|
<string name="poi_ambulance_station">Mentőállomás</string>
|
||||||
|
<string name="poi_ford">Gázló</string>
|
||||||
|
<string name="poi_mountain_pass">Hágó</string>
|
||||||
|
<string name="poi_gate">Kapu</string>
|
||||||
|
<string name="poi_city_wall">Városfal</string>
|
||||||
|
<string name="poi_lift_gate">Sorompó</string>
|
||||||
|
<string name="poi_toll_booth">Fizetőkapu</string>
|
||||||
|
<string name="poi_border_control">Határellenőrzés</string>
|
||||||
|
<string name="poi_traffic_signals">Villanyrendőr</string>
|
||||||
|
|
||||||
|
<string name="poi_car_repair">Autószerviz</string>
|
||||||
|
<string name="poi_service_tyres">Autógumis</string>
|
||||||
|
<string name="poi_car_wash">Autómosó</string>
|
||||||
|
<string name="poi_fuel">Benzinkút</string>
|
||||||
|
<string name="poi_charging_station">Elektromos töltőállomás</string>
|
||||||
|
<string name="poi_compressed_air">Sűrített levegő</string>
|
||||||
|
<string name="poi_parking">Parkoló</string>
|
||||||
|
<string name="poi_motorcycle_parking">Motor parkoló</string>
|
||||||
|
<string name="poi_parking_entrance">Parkolóház bejárat</string>
|
||||||
|
<string name="poi_garages">Garázsok</string>
|
||||||
|
|
||||||
|
<string name="poi_public_transport_platform">Tömegközlekedési megálló</string>
|
||||||
|
<string name="poi_public_transport_platform_bus">Buszmegálló</string>
|
||||||
|
<string name="poi_public_transport_platform_trolleybus">Trolimegálló</string>
|
||||||
|
<string name="poi_public_transport_platform_tram">Villamosmegálló</string>
|
||||||
|
<string name="poi_subway_entrance">Metró lejárat</string>
|
||||||
|
<string name="poi_subway_station">Metrómegálló</string>
|
||||||
|
<string name="poi_taxi">Taxidroszt</string>
|
||||||
|
|
||||||
|
<string name="poi_airport">Repülőtér</string>
|
||||||
|
<string name="poi_runway">Kifutópálya</string>
|
||||||
|
<string name="poi_aeroway_terminal">Utasterminál</string>
|
||||||
|
<string name="poi_aeroway_gate">Reptér kapu</string>
|
||||||
|
|
||||||
|
<string name="poi_slipway">Sólya</string>
|
||||||
|
<string name="poi_ferry_terminal">Kompkikötő</string>
|
||||||
|
<string name="poi_lighthouse">Világítótorony</string>
|
||||||
|
|
||||||
|
<string name="poi_bicycle_rental">Kerékpárkölcsönző</string>
|
||||||
|
<string name="poi_bicycle_parking">Kerékpárparkoló</string>
|
||||||
|
|
||||||
|
<string name="poi_tunnel">Alagút</string>
|
||||||
|
<string name="poi_bridge">Híd</string>
|
||||||
|
|
||||||
|
<string name="poi_speed_camera">Traffipax</string>
|
||||||
|
<string name="poi_motorway_junction">Autópálya csomópont</string>
|
||||||
|
|
||||||
|
<string name="poi_water_tower">Víztorony</string>
|
||||||
|
<string name="poi_post_office">Posta</string>
|
||||||
|
<string name="poi_post_box">Postaláda</string>
|
||||||
|
<string name="poi_telephone">Telefon</string>
|
||||||
|
<string name="poi_communication_tower">Távközlési torony</string>
|
||||||
|
<string name="poi_recycling">Hulladékgyűjtő</string>
|
||||||
|
<string name="poi_landfill">Szeméttelep</string>
|
||||||
|
<string name="poi_pier">Móló</string>
|
||||||
|
<string name="poi_windmill">Szélmalom</string>
|
||||||
|
<string name="poi_quarry">Kőfejtő</string>
|
||||||
|
<string name="poi_vineyard">Szőlős</string>
|
||||||
|
<string name="poi_orchard">Gyümölcsös</string>
|
||||||
|
<string name="poi_salt_pond">Sólepárló</string>
|
||||||
|
<string name="poi_school">Iskola</string>
|
||||||
|
<string name="poi_kindergarten">Óvoda</string>
|
||||||
|
<string name="poi_university">Egyetem</string>
|
||||||
|
|
||||||
|
<string name="poi_courthouse">Bíróság</string>
|
||||||
|
<string name="poi_prison">Börtön</string>
|
||||||
|
<string name="poi_embassy">Nagykövetség</string>
|
||||||
|
<string name="poi_city">Nagyváros</string>
|
||||||
|
<string name="poi_town">Város</string>
|
||||||
|
<string name="poi_village">Falu</string>
|
||||||
|
<string name="poi_hamlet">Falucska</string>
|
||||||
|
<string name="poi_locality">Lakatlan hely</string>
|
||||||
|
|
||||||
|
<string name="poi_pharmacy">Gyógyszertár</string>
|
||||||
|
<string name="poi_hospital">Kórház</string>
|
||||||
|
<string name="poi_doctors">Orvos</string>
|
||||||
|
<string name="poi_clinic">Klinika</string>
|
||||||
|
<string name="poi_dentist">Fogorvos</string>
|
||||||
|
<string name="poi_veterinary">Állatorvos</string>
|
||||||
|
<string name="poi_sanatorium">Szanatórium</string>
|
||||||
|
<string name="poi_town_hall">Városháza</string>
|
||||||
|
<string name="poi_stadium">Stadion</string>
|
||||||
|
<string name="poi_sports_centre">Sportközpont</string>
|
||||||
|
<string name="poi_golf_course">Golfpálya</string>
|
||||||
|
<string name="poi_ice_rink">Műjégpálya</string>
|
||||||
|
<string name="poi_pitch">Pálya</string>
|
||||||
|
<string name="poi_raceway">Versenypálya</string>
|
||||||
|
<string name="poi_museum">Múzeum</string>
|
||||||
|
<string name="poi_attraction">Turistalátványosság</string>
|
||||||
|
<string name="poi_memorial">Emlékmű</string>
|
||||||
|
<string name="poi_artwork">Műalkotás</string>
|
||||||
|
<string name="poi_castle">Kastély</string>
|
||||||
|
<string name="poi_city_gate">Városkapu</string>
|
||||||
|
<string name="poi_fort">Erőd</string>
|
||||||
|
<string name="poi_fountain">Szökőkút</string>
|
||||||
|
<string name="poi_ruins_historic">Romok</string>
|
||||||
|
<string name="poi_monument">Műemlék</string>
|
||||||
|
<string name="poi_zoo">Állatkert</string>
|
||||||
|
<string name="poi_theme_park">Vidámpark</string>
|
||||||
|
|
||||||
|
<string name="poi_hotel">Hotel</string>
|
||||||
|
<string name="poi_guest_house">Vendégház</string>
|
||||||
|
<string name="poi_motel">Motel</string>
|
||||||
|
<string name="poi_alpine_hut">Menedékház</string>
|
||||||
|
<string name="poi_place_of_worship">Istentiszteleti hely</string>
|
||||||
|
<string name="poi_place_of_worship_christian">Istentiszteleti hely: keresztény</string>
|
||||||
|
<string name="poi_place_of_worship_jewish">Istentiszteleti hely: zsidó</string>
|
||||||
|
<string name="poi_place_of_worship_muslim">Istentiszteleti hely: muszlim</string>
|
||||||
|
<string name="poi_place_of_worship_sikh">Istentiszteleti hely: szikh</string>
|
||||||
|
<string name="poi_place_of_worship_buddhist">Istentiszteleti hely: buddhista</string>
|
||||||
|
<string name="poi_place_of_worship_hindu">Istentiszteleti hely: hindu</string>
|
||||||
|
<string name="poi_place_of_worship_shinto">Istentiszteleti hely: sintoista</string>
|
||||||
|
<string name="poi_place_of_worship_taoist">Istentiszteleti hely: taoista</string>
|
||||||
|
<string name="poi_monastery">Kolostor</string>
|
||||||
|
<string name="poi_wayside_cross">Útmenti kereszt</string>
|
||||||
|
<string name="poi_tourism_information">Turistainformáció</string>
|
||||||
|
<string name="poi_clock">Óra</string>
|
||||||
|
<string name="poi_viewpoint">Kilátóhely</string>
|
||||||
|
<string name="poi_camp_site">Kemping</string>
|
||||||
|
<string name="poi_caravan_site">Lakóautó hely</string>
|
||||||
|
<string name="poi_picnic_site">Piknikezőhely</string>
|
||||||
|
<string name="poi_spring">Forrás</string>
|
||||||
|
<string name="poi_hot_spring">Hőforrás</string>
|
||||||
|
<string name="poi_geyser">Gejzír</string>
|
||||||
|
<string name="poi_cemetery">Temető</string>
|
||||||
|
<string name="poi_grave_yard">Sírkert</string>
|
||||||
|
<string name="poi_shelter">Menedék</string>
|
||||||
|
<string name="poi_funicular">Sikló</string>
|
||||||
|
<string name="poi_library">Könyvtár</string>
|
||||||
|
<string name="poi_cinema">Mozi</string>
|
||||||
|
<string name="poi_casino">Kaszinó</string>
|
||||||
|
<string name="poi_community_centre">Közösségi ház</string>
|
||||||
|
<string name="poi_theatre">Színház</string>
|
||||||
|
<string name="poi_circus">Cirkusz</string>
|
||||||
|
<string name="poi_beach_resort">Strand</string>
|
||||||
|
<string name="poi_hunting_stand">Vadászles</string>
|
||||||
|
<string name="poi_marina">Kishajókikötő</string>
|
||||||
|
<string name="poi_miniature_golf">Minigolf</string>
|
||||||
|
<string name="poi_playground">Játszótér</string>
|
||||||
|
<string name="poi_swimming_pool">Úszómedence</string>
|
||||||
|
<string name="poi_park">Park</string>
|
||||||
|
|
||||||
|
<string name="poi_cafe">Kávézó</string>
|
||||||
|
<string name="poi_biergarten">Sörkert</string>
|
||||||
|
<string name="poi_restaurant">Étterem</string>
|
||||||
|
<string name="poi_fast_food">Gyorsétterem</string>
|
||||||
|
<string name="poi_bar">Bár</string>
|
||||||
|
<string name="poi_pub">Kocsma</string>
|
||||||
|
<string name="poi_drinking_water">Ivóvíz</string>
|
||||||
|
<string name="poi_beekeeper">Méhész</string>
|
||||||
|
<string name="poi_blacksmith">Patkolókovács</string>
|
||||||
|
<string name="poi_brewery">Sörfőzde</string>
|
||||||
|
<string name="poi_bookbinder">Könyvkötő</string>
|
||||||
|
<string name="poi_carpenter">Asztalos</string>
|
||||||
|
<string name="poi_clockmaker">Órás</string>
|
||||||
|
<string name="poi_dressmaker">Ruhakészítő</string>
|
||||||
|
<string name="poi_electrician">Villanyszerelő</string>
|
||||||
|
<string name="poi_gardener">Kertész</string>
|
||||||
|
<string name="poi_jeweller">Ékszerész</string>
|
||||||
|
<string name="poi_locksmith">Zárjavító</string>
|
||||||
|
<string name="poi_key_cutter">Kulcsmásoló</string>
|
||||||
|
<string name="poi_photographer">Fotográfus</string>
|
||||||
|
<string name="poi_photographic_laboratory">Fotólabor</string>
|
||||||
|
<string name="poi_plumber">Vízvezeték szerelő</string>
|
||||||
|
<string name="poi_roofer">Tetőfedő</string>
|
||||||
|
<string name="poi_shoemaker">Cipész</string>
|
||||||
|
<string name="poi_hairdresser">Fodrász</string>
|
||||||
|
<string name="poi_car_rental">Autókölcsönző</string>
|
||||||
|
<string name="poi_bank">Bank</string>
|
||||||
|
<string name="poi_atm">Bankautomata</string>
|
||||||
|
<string name="poi_currencyexchange">Pénzváltó</string>
|
||||||
|
<string name="poi_accountant">Könyvelő</string>
|
||||||
|
<string name="poi_cave_entrance">Barlangbejárat</string>
|
||||||
|
<string name="poi_peak">Hegycsúcs</string>
|
||||||
|
<string name="poi_saddle">Nyereg</string>
|
||||||
|
<string name="poi_volcano">Vulkán</string>
|
||||||
|
<string name="poi_crater">Kráter</string>
|
||||||
|
<string name="poi_ridge">Gerinc</string>
|
||||||
|
<string name="poi_glacier">Gleccser</string>
|
||||||
|
<string name="poi_sinkhole">Víznyelő</string>
|
||||||
|
<string name="poi_waterfall">Vízesés</string>
|
||||||
|
<string name="poi_river">Folyó</string>
|
||||||
|
<string name="poi_stream">Patak</string>
|
||||||
|
<string name="poi_beach">Strand</string>
|
||||||
|
<string name="poi_bay">Öböl</string>
|
||||||
|
<string name="poi_fjord">Fjord</string>
|
||||||
|
<string name="poi_reef">Zátony</string>
|
||||||
|
<string name="poi_wetland">Láp</string>
|
||||||
|
<string name="poi_nature_reserve">Természetvédelmi terület</string>
|
||||||
|
<string name="poi_island">Sziget</string>
|
||||||
|
</resources>
|
File diff suppressed because one or more lines are too long
|
@ -1,4 +1,4 @@
|
||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources><string name="download_hillshade_item">Տարածքի ռելիեֆ</string>
|
<resources><string name="download_hillshade_item">Տարածքի ռելիեֆ</string>
|
||||||
<string name="download_hillshade_maps">Տարածքի մգեցված ռելիեֆով քարտեզներ</string>
|
<string name="download_hillshade_maps">Տարածքի մգեցված ռելիեֆով քարտեզներ</string>
|
||||||
<string name="dist_control_start">Սկիզբ</string>
|
<string name="dist_control_start">Սկիզբ</string>
|
||||||
|
|
|
@ -1,2 +1,509 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
<resources></resources>
|
<resources><string name="poi_mall">Centro commerciale</string>
|
||||||
|
<string name="poi_seafood">Pescheria</string>
|
||||||
|
<string name="poi_supermarket">Supermercato</string>
|
||||||
|
<string name="poi_bicycle_shop">Negozio di biciclette</string>
|
||||||
|
<string name="poi_vending_machine">Distributore automatico</string>
|
||||||
|
|
||||||
|
<string name="poi_bookshop">Libreria</string>
|
||||||
|
<string name="poi_palaeontological_site">Sito paleontologico</string>
|
||||||
|
|
||||||
|
<string name="poi_bakery">Panificio</string>
|
||||||
|
<string name="poi_alcohol">Alcolici</string>
|
||||||
|
<string name="poi_convenience">Drogheria</string>
|
||||||
|
<string name="poi_beverages">Negozio bevande</string>
|
||||||
|
<string name="poi_butcher">Macelleria</string>
|
||||||
|
<string name="poi_deli">Gastronomia</string>
|
||||||
|
<string name="poi_shop_farm">Vendita prodotti di fattoria</string>
|
||||||
|
<string name="poi_greengrocer">Fruttivendolo</string>
|
||||||
|
<string name="poi_confectionery">Negozio dolciumi</string>
|
||||||
|
<string name="poi_ice_cream">Gelateria</string>
|
||||||
|
<string name="poi_shop_tea">Negozio di té</string>
|
||||||
|
<string name="poi_dairy">Latteria</string>
|
||||||
|
<string name="poi_antiques_shop">Antiquariato</string>
|
||||||
|
<string name="poi_art_shop">Galleria</string>
|
||||||
|
<string name="poi_baby_goods">Negozio bambini</string>
|
||||||
|
<string name="poi_bag_shop">Valigeria</string>
|
||||||
|
<string name="poi_bathroom_furnishing_shop">Arredo bagno</string>
|
||||||
|
<string name="poi_bed_shop">Arredamento camera da letto</string>
|
||||||
|
<string name="poi_carpet_shop">Negozio tappeti</string>
|
||||||
|
<string name="poi_chemist_shop">Farmacia</string>
|
||||||
|
<string name="poi_clothes_shop">Abbigliamento</string>
|
||||||
|
<string name="poi_children_clothes_shop">Abbigliamento bambini</string>
|
||||||
|
<string name="poi_shoes">Negozio calzature</string>
|
||||||
|
<string name="poi_computer_shop">Negozio informatica</string>
|
||||||
|
<string name="poi_copyshop">Copisteria</string>
|
||||||
|
<string name="poi_curtain_shop">Negozio campeggio</string>
|
||||||
|
<string name="poi_fabric_shop">Negozio drappeggi</string>
|
||||||
|
<string name="poi_bedding_shop">Negozio materassi</string>
|
||||||
|
<string name="poi_dive_shop">Negozio articoli per immersione</string>
|
||||||
|
<string name="poi_doityourself_shop">Negozio per fai-da-te</string>
|
||||||
|
<string name="poi_erotic_shop">Sexy shop</string>
|
||||||
|
<string name="poi_fishing_shop">Negozio pesca</string>
|
||||||
|
<string name="poi_florist">Fioreria-fiorista</string>
|
||||||
|
<string name="poi_frame_shop">Cornici</string>
|
||||||
|
<string name="poi_furniture_shop">Negozio mobili</string>
|
||||||
|
<string name="poi_garden_centre">Articoli per Giardinaggio</string>
|
||||||
|
<string name="poi_gas_shop">Negozio gas</string>
|
||||||
|
<string name="poi_ford">Guado</string>
|
||||||
|
<string name="poi_mountain_pass">Passo montano</string>
|
||||||
|
<string name="poi_gate">Ponte</string>
|
||||||
|
<string name="poi_city_wall">Mura cittadine</string>
|
||||||
|
<string name="poi_lift_gate">Ponte levatoio</string>
|
||||||
|
<string name="poi_traffic_calming_bump">Dosso</string>
|
||||||
|
<string name="poi_traffic_calming_chicane">Chicane</string>
|
||||||
|
<string name="poi_traffic_calming_rumble_strip">Striscie rallentatrici</string>
|
||||||
|
<string name="poi_car_repair">Autoriparatore</string>
|
||||||
|
<string name="poi_service_tyres">Gommista</string>
|
||||||
|
<string name="poi_vehicle_inspection">Centro revisioni</string>
|
||||||
|
<string name="poi_car_wash">Autolavaggio</string>
|
||||||
|
<string name="poi_fuel">Rifornimento carburanti gassosi</string>
|
||||||
|
<string name="poi_charging_station">Stazione di ricarica</string>
|
||||||
|
<string name="poi_compressed_air">Aria compressa</string>
|
||||||
|
<string name="poi_parking">Parcheggio</string>
|
||||||
|
<string name="poi_motorcycle_parking">Parcheggio per moto</string>
|
||||||
|
<string name="poi_parking_entrance">Entrata parcheggio</string>
|
||||||
|
<string name="poi_garages">Garage</string>
|
||||||
|
|
||||||
|
<string name="poi_public_transport_platform">Fermata trasporto pubblico</string>
|
||||||
|
<string name="poi_public_transport_platform_bus">Fermata autobus</string>
|
||||||
|
<string name="poi_bus_stop">Fermata autobus (obsoleto)</string>
|
||||||
|
<string name="poi_public_transport_platform_tram">Fermata tram</string>
|
||||||
|
<string name="poi_public_transport_station">Stazione trasporto pubblico</string>
|
||||||
|
<string name="poi_bus_station">Stazione bus (obsoleto)</string>
|
||||||
|
<string name="poi_subway_entrance">Entrata metropolitana</string>
|
||||||
|
<string name="poi_subway_station">Stazione metropolitana</string>
|
||||||
|
<string name="poi_airport">Aeroporto</string>
|
||||||
|
<string name="poi_helipad">Eliporto</string>
|
||||||
|
<string name="poi_bicycle_rental">Noleggio bici</string>
|
||||||
|
<string name="poi_bicycle_parking">Parcheggio bici</string>
|
||||||
|
|
||||||
|
<string name="poi_anime_shop">Negozio anime</string>
|
||||||
|
<string name="poi_boutique">Boutique moda</string>
|
||||||
|
<string name="poi_general_shop">Emporio</string>
|
||||||
|
<string name="poi_gift_shop">Negozio regali</string>
|
||||||
|
<string name="poi_glaziery_shop">Vetreria</string>
|
||||||
|
<string name="poi_hardware_shop">Ferramenta</string>
|
||||||
|
<string name="poi_hearing_aids_shop">Negozi apparecchi acustici</string>
|
||||||
|
<string name="poi_herbalist">Negozio erba</string>
|
||||||
|
<string name="poi_hifi_shop">Negozio HiFi</string>
|
||||||
|
<string name="poi_hunting_shop">Negozio caccia-pesca</string>
|
||||||
|
<string name="poi_interior_decoration_shop">Negozio decorazione d\'interni</string>
|
||||||
|
<string name="poi_jewelry_shop">Gioielleria</string>
|
||||||
|
<string name="poi_kiosk">Chiosco</string>
|
||||||
|
<string name="poi_kitchen_shop">Negozio articoli da cucina</string>
|
||||||
|
<string name="poi_mobile_phone_shop">Negozio telefonia mobile</string>
|
||||||
|
<string name="poi_motorcycle_shop">Negozio moto</string>
|
||||||
|
<string name="poi_musical_instrument_shop">Strumenti musicali</string>
|
||||||
|
<string name="poi_optician_shop">Optometrista</string>
|
||||||
|
<string name="poi_organic_shop">Alimenti biologici</string>
|
||||||
|
<string name="poi_outdoor_shop">Negozio articoli per l\'attività all\'aperto</string>
|
||||||
|
<string name="poi_paint_shop">Negozio articoli per pittura</string>
|
||||||
|
<string name="poi_pet_shop">Negozio animali domestici</string>
|
||||||
|
<string name="poi_second_hand">Negozio usato</string>
|
||||||
|
<string name="poi_tobacco_shop">Tabaccheria</string>
|
||||||
|
<string name="poi_toys_shop">Negozio giocattoli</string>
|
||||||
|
<string name="poi_houseware_shop">Nogozio casalinghi</string>
|
||||||
|
<string name="poi_newsagent_shop">Agenzia di stampa</string>
|
||||||
|
<string name="poi_radiotechnics_shop">Negozio per radiotecnica</string>
|
||||||
|
<string name="poi_sports_shop">Articoli sportivi</string>
|
||||||
|
<string name="poi_ticket_shop">Biglietteria</string>
|
||||||
|
<string name="poi_vacuum_cleaner_shop">Negozio aspirapolvere</string>
|
||||||
|
<string name="poi_variety_store">Negozi articoli a basso costo</string>
|
||||||
|
<string name="poi_video_shop">Videonoleggio</string>
|
||||||
|
<string name="poi_window_blind_shop">Negozio finestre cieche</string>
|
||||||
|
<string name="poi_department_store">Grande magazzino</string>
|
||||||
|
<string name="poi_electronics_shop">Negozio elettronica</string>
|
||||||
|
<string name="poi_car_shop">Autosalone</string>
|
||||||
|
<string name="poi_car_parts_shop">Autoricambi</string>
|
||||||
|
<string name="poi_atv_shop">Negozio quad</string>
|
||||||
|
<string name="poi_cosmetics_shop">Negozio cosmetici</string>
|
||||||
|
<string name="poi_marketplace">Mercato</string>
|
||||||
|
<string name="poi_police">Polizia</string>
|
||||||
|
<string name="poi_fire_station">Pompieri</string>
|
||||||
|
<string name="poi_emergency_phone">Telefono di emergenza</string>
|
||||||
|
<string name="poi_fire_hydrant">Idrante</string>
|
||||||
|
<string name="poi_fire_extinguisher">Estintore</string>
|
||||||
|
<string name="poi_ambulance_station">Stazione ambulanze</string>
|
||||||
|
<string name="poi_ship_chandler">Negozio nautica</string>
|
||||||
|
<string name="poi_stationery_shop">Negozio per ufficio</string>
|
||||||
|
<string name="poi_tableware_shop">Negozio articoli per la tavola</string>
|
||||||
|
<string name="poi_aeroway_gate">Gate aeroporto</string>
|
||||||
|
|
||||||
|
<string name="poi_aerialway_gondola">Gondola</string>
|
||||||
|
<string name="poi_aerialway_chair_lift">Ascensore carrozzine</string>
|
||||||
|
<string name="poi_speed_camera">Autovelox</string>
|
||||||
|
<string name="poi_turning_circle">Rotonda per inversione di marcia</string>
|
||||||
|
<string name="poi_wastewater_plant">Depuratore acque</string>
|
||||||
|
<string name="poi_water_mill">Mulino ad acqua</string>
|
||||||
|
|
||||||
|
<string name="poi_power_substation">Sottostazione</string>
|
||||||
|
<string name="poi_power_transformer">Trasformatore</string>
|
||||||
|
<string name="poi_power_generator">Generatore elettrico</string>
|
||||||
|
|
||||||
|
<string name="poi_power_plant">Centrale elettrica</string>
|
||||||
|
<string name="poi_post_office">Ufficio postale</string>
|
||||||
|
<string name="poi_post_box">Cassetta postale</string>
|
||||||
|
<string name="poi_telephone">Telefono</string>
|
||||||
|
<string name="poi_communication_tower">Torre telecomunicazioni</string>
|
||||||
|
<string name="poi_recycling">Isola ecologica</string>
|
||||||
|
<string name="poi_waste_basket">Cestino rifiuti</string>
|
||||||
|
|
||||||
|
<string name="poi_pier">Pontile</string>
|
||||||
|
<string name="poi_surveillance">Videosorveglianza</string>
|
||||||
|
<string name="poi_construction">Costrizione in corso</string>
|
||||||
|
<string name="poi_works">Fabbrica</string>
|
||||||
|
<string name="poi_mineshaft">Tunnel verticale</string>
|
||||||
|
<string name="poi_adit">Ingresso di una galleria mineraria</string>
|
||||||
|
<string name="poi_petroleum_well">Pozzo petrolifero</string>
|
||||||
|
<string name="poi_survey_point">Punto geodetico</string>
|
||||||
|
<string name="poi_windmill">Mulino a vento</string>
|
||||||
|
<string name="poi_quarry">Cava</string>
|
||||||
|
<string name="poi_vineyard">Vigneto</string>
|
||||||
|
<string name="poi_orchard">Frutteto</string>
|
||||||
|
<string name="poi_salt_pond">Salina</string>
|
||||||
|
<string name="poi_cricket_nets">Campo da cricket circondato da reti</string>
|
||||||
|
|
||||||
|
<string name="poi_driving_school">Scuola guida</string>
|
||||||
|
<string name="poi_school">Scuola</string>
|
||||||
|
<string name="poi_kindergarten">Parco giochi</string>
|
||||||
|
<string name="poi_college">Collegio</string>
|
||||||
|
<string name="poi_university">Università</string>
|
||||||
|
|
||||||
|
<string name="poi_social_facility">Struttura che fornisce servizi sociali</string>
|
||||||
|
<string name="poi_courthouse">Tribunale</string>
|
||||||
|
<string name="poi_prison">Carcere</string>
|
||||||
|
<string name="poi_register_office">Anagrafe</string>
|
||||||
|
<string name="poi_embassy">Ambasciata</string>
|
||||||
|
<string name="poi_government">Ufficio pubblico</string>
|
||||||
|
<string name="poi_bailiff">Ufficiale giudiziario</string>
|
||||||
|
<string name="poi_migration">Ufficio migrazione</string>
|
||||||
|
<string name="poi_tax_inspection">Guardia di finanza</string>
|
||||||
|
<string name="poi_administrative_office">Ufficio amministrativo</string>
|
||||||
|
<string name="poi_city">Città capoluogo di provincia</string>
|
||||||
|
<string name="poi_town">Città</string>
|
||||||
|
<string name="poi_village">Paese</string>
|
||||||
|
<string name="poi_hamlet">Borgo-contrada</string>
|
||||||
|
<string name="poi_isolated_dwelling">Insediamento rurale isolato</string>
|
||||||
|
<string name="poi_suburb">Grande quartiere</string>
|
||||||
|
<string name="poi_neighbourhood">Quartiere</string>
|
||||||
|
<string name="poi_locality">Località</string>
|
||||||
|
|
||||||
|
<string name="poi_pharmacy">Farmacia</string>
|
||||||
|
<string name="poi_hospital">Ospedale</string>
|
||||||
|
<string name="poi_doctors">Medico</string>
|
||||||
|
<string name="poi_clinic">Clinica</string>
|
||||||
|
<string name="poi_first_aid">Pronto soccorso</string>
|
||||||
|
<string name="poi_dentist">Dentista</string>
|
||||||
|
<string name="poi_nursing_home">Servizi di assistenza continua</string>
|
||||||
|
<string name="poi_baby_hatch">Culla per la vita</string>
|
||||||
|
<string name="poi_veterinary">Veterinario</string>
|
||||||
|
<string name="poi_healthcare_alternative">Medicina alternativa</string>
|
||||||
|
<string name="poi_audiologist"/>
|
||||||
|
<string name="poi_blood_bank">Banca del sangue</string>
|
||||||
|
<string name="poi_healthcare_centre">Centro medico</string>
|
||||||
|
<string name="poi_midwife">Levatrice</string>
|
||||||
|
<string name="poi_optometrist">Optometrista</string>
|
||||||
|
<string name="poi_physiotherapist">Fisioterpista</string>
|
||||||
|
<string name="poi_psychotherapist">Psicoterapeuta</string>
|
||||||
|
<string name="poi_speech_therapist">Logopedista</string>
|
||||||
|
<string name="poi_insurance">Assicurazione</string>
|
||||||
|
<string name="poi_estate_agent">Negozio immobiliare</string>
|
||||||
|
<string name="poi_employment_agency">Ufficio per l\'impiego</string>
|
||||||
|
<string name="poi_bridge">Ponte</string>
|
||||||
|
|
||||||
|
<string name="poi_healthcare_rehabilitation">Riabilitazione</string>
|
||||||
|
<string name="poi_running_track">Pista atletica</string>
|
||||||
|
<string name="poi_bicycle_track">Pista per bicicletta</string>
|
||||||
|
<string name="poi_australian_football">Football australiano</string>
|
||||||
|
<string name="poi_baseball">Baseball</string>
|
||||||
|
<string name="poi_basketball">Basket</string>
|
||||||
|
<string name="poi_beachvolleyball">Beach volley</string>
|
||||||
|
<string name="poi_canoe">Canoa</string>
|
||||||
|
<string name="poi_chess">Scacchi</string>
|
||||||
|
<string name="poi_cricket">Cricket</string>
|
||||||
|
<string name="poi_dog_racing">Corse cani</string>
|
||||||
|
<string name="poi_equestrian">Equitazione</string>
|
||||||
|
<string name="poi_golf">Golf</string>
|
||||||
|
<string name="poi_handball">Pallamano</string>
|
||||||
|
<string name="poi_hockey">Hockey</string>
|
||||||
|
<string name="poi_horse_racing">Corse cavalli</string>
|
||||||
|
<string name="poi_ice_skating">Pattinaggio sul ghiaccio</string>
|
||||||
|
<string name="poi_paragliding">Parapendio</string>
|
||||||
|
<string name="poi_pelota">Pelota</string>
|
||||||
|
<string name="poi_roller_skating">Pattinaggio a rotelle</string>
|
||||||
|
<string name="poi_beach">Spiaggia</string>
|
||||||
|
<string name="poi_bay">Baia</string>
|
||||||
|
<string name="poi_rapids">Rapide</string>
|
||||||
|
<string name="poi_fjord">Fiordo</string>
|
||||||
|
<string name="poi_wetland">Zona umida</string>
|
||||||
|
<string name="poi_nature_reserve">Riserva naturale</string>
|
||||||
|
<string name="poi_island">Isola</string>
|
||||||
|
<string name="poi_military_naval_base">Base militare navale</string>
|
||||||
|
<string name="poi_military_nuclear_explosion_site">Sito esplosioni nucleari</string>
|
||||||
|
<string name="poi_military_range">Poligono militare</string>
|
||||||
|
<string name="poi_military_danger_area">Area pericolosa</string>
|
||||||
|
<string name="poi_military_barracks">Caserma</string>
|
||||||
|
<string name="poi_military_bunker">Bunker</string>
|
||||||
|
<string name="poi_military_airfield">Aeroporto militare</string>
|
||||||
|
<string name="poi_military">Area militare</string>
|
||||||
|
<string name="poi_seamark_wreck">Relitto</string>
|
||||||
|
|
||||||
|
<string name="poi_seamark_rock">Scoglio</string>
|
||||||
|
<string name="poi_seamark_radar_transponder">Transponder radar marittimo</string>
|
||||||
|
<string name="poi_waterfall">Cascata</string>
|
||||||
|
<string name="poi_sinkhole">Dolina</string>
|
||||||
|
<string name="poi_glacier">Ghiacciaio</string>
|
||||||
|
<string name="poi_ridge">Crinale</string>
|
||||||
|
<string name="poi_crater">Cratere</string>
|
||||||
|
<string name="poi_volcano">Vulcano</string>
|
||||||
|
<string name="poi_saddle">Sella</string>
|
||||||
|
<string name="poi_peak">Picco montuoso</string>
|
||||||
|
<string name="poi_cave_entrance">Entrata grotta/caverna</string>
|
||||||
|
<string name="poi_bitcoin_yes">Pagamento Bitcoin</string>
|
||||||
|
|
||||||
|
<string name="poi_atm">Bancomat</string>
|
||||||
|
<string name="poi_bank">Banca</string>
|
||||||
|
<string name="poi_internet_cafe">Internet caffè</string>
|
||||||
|
|
||||||
|
<string name="poi_crematorium">Crematorio</string>
|
||||||
|
<string name="poi_mortuary">Celle mortuarie</string>
|
||||||
|
<string name="poi_brothel">Bordello</string>
|
||||||
|
<string name="poi_sauna">Sauna</string>
|
||||||
|
<string name="poi_car_sharing">Car sharing</string>
|
||||||
|
<string name="poi_car_rental">Autonoleggio</string>
|
||||||
|
<string name="poi_laundry">Lavanderia</string>
|
||||||
|
<string name="poi_dry_cleaning">Lavasecco</string>
|
||||||
|
<string name="poi_tattoo">Tatuatore</string>
|
||||||
|
<string name="poi_massage">Centro massaggi</string>
|
||||||
|
<string name="poi_hairdresser">Parrucchiere</string>
|
||||||
|
<string name="poi_beauty_salon_nails">Centro unghie</string>
|
||||||
|
<string name="poi_beauty_salon">Salone di bellezza</string>
|
||||||
|
<string name="poi_window_construction">Costruzione finestre</string>
|
||||||
|
|
||||||
|
<string name="poi_watchmaker">Costruttore orologi</string>
|
||||||
|
<string name="poi_tailor">Sarto</string>
|
||||||
|
<string name="poi_shoemaker">Produzione calzature</string>
|
||||||
|
<string name="poi_sculptor">Scultore</string>
|
||||||
|
<string name="poi_plumber">Idraulico</string>
|
||||||
|
<string name="poi_photographic_laboratory">Laboratorio fotografico</string>
|
||||||
|
<string name="poi_photographer">Fotografo</string>
|
||||||
|
<string name="poi_parquet_layer">Posatore di parquet</string>
|
||||||
|
<string name="poi_painter">Pittore</string>
|
||||||
|
<string name="poi_optician">Ottico</string>
|
||||||
|
<string name="poi_jeweller">Gioielliere</string>
|
||||||
|
<string name="poi_hvac">Riscaldamento, ventilazione e condizionamento</string>
|
||||||
|
<string name="poi_gardener">Giardiniere</string>
|
||||||
|
<string name="poi_electrician">Elettricista</string>
|
||||||
|
<string name="poi_dressmaker">Sarto</string>
|
||||||
|
<string name="poi_place_of_worship_christian">Luogo di culto: cristiano</string>
|
||||||
|
<string name="poi_place_of_worship">Luogo di culto</string>
|
||||||
|
<string name="poi_chalet">Chalet</string>
|
||||||
|
|
||||||
|
<string name="poi_alpine_hut">Rifugio alpino</string>
|
||||||
|
<string name="poi_motel">Motel</string>
|
||||||
|
<string name="poi_hostel">Ostello</string>
|
||||||
|
<string name="poi_guest_house">Pensione</string>
|
||||||
|
<string name="poi_hotel">Hotel</string>
|
||||||
|
<string name="poi_theme_park">Parco a tema</string>
|
||||||
|
|
||||||
|
<string name="poi_zoo">Zoo</string>
|
||||||
|
<string name="poi_monument">Monumento</string>
|
||||||
|
<string name="poi_wreck">Relitto navale</string>
|
||||||
|
<string name="poi_rune_stone">Pietra runica</string>
|
||||||
|
<string name="poi_ruins_historic">Rovine storiche</string>
|
||||||
|
<string name="poi_fountain">Fontana</string>
|
||||||
|
<string name="poi_fort">Forte</string>
|
||||||
|
<string name="poi_city_gate">Porta di ingresso della città</string>
|
||||||
|
<string name="poi_castle">Castello</string>
|
||||||
|
<string name="poi_boundary_stone">Pietra di confine</string>
|
||||||
|
<string name="poi_battlefield">Campo di battaglia</string>
|
||||||
|
<string name="poi_archaeological_site">Sito archeologico</string>
|
||||||
|
<string name="poi_memorial">Memoriale</string>
|
||||||
|
<string name="poi_attraction">Attrazione turistica</string>
|
||||||
|
<string name="poi_museum">Museo</string>
|
||||||
|
<string name="poi_volleyball">Pallavolo</string>
|
||||||
|
|
||||||
|
<string name="poi_toboggan">Toboga</string>
|
||||||
|
<string name="poi_tennis">Tennis</string>
|
||||||
|
<string name="poi_table_tennis">Tennis tavolo</string>
|
||||||
|
<string name="poi_swimming">Piscina</string>
|
||||||
|
<string name="poi_soccer">Calcio</string>
|
||||||
|
<string name="poi_skiing">Sci</string>
|
||||||
|
<string name="poi_skateboard">Skateboard</string>
|
||||||
|
<string name="poi_skating">Pattinaggio</string>
|
||||||
|
<string name="poi_shooting">Tiro</string>
|
||||||
|
<string name="poi_rowing">Canottaggio</string>
|
||||||
|
<string name="poi_rugby_union">Rugby a 15</string>
|
||||||
|
<string name="poi_rugby_league">Rugby a 13</string>
|
||||||
|
<string name="poi_racquet">Racquetball</string>
|
||||||
|
<string name="poi_fire_flapper">Pala battifuoco</string>
|
||||||
|
<string name="poi_fire_hose">Manichetta antincendio</string>
|
||||||
|
<string name="poi_ses_station">Stazione protezione civile</string>
|
||||||
|
<string name="poi_grit_bin">Cassone di sabbia</string>
|
||||||
|
<string name="poi_fire_water_pond">Laghetto acqua anti-incendio</string>
|
||||||
|
<string name="poi_emergency_access_point">Punto di accesso di emergenza</string>
|
||||||
|
|
||||||
|
<string name="poi_toll_booth">Casello</string>
|
||||||
|
<string name="poi_border_control">Posto di controllo</string>
|
||||||
|
<string name="poi_traffic_calming_hump">Dosso lungo</string>
|
||||||
|
<string name="poi_traffic_calming_cushion">Cuscini rallentatori</string>
|
||||||
|
<string name="poi_traffic_calming_table">Dosso tavola</string>
|
||||||
|
<string name="poi_traffic_calming_choker">Restringimento di carreggiata rallentatore</string>
|
||||||
|
<string name="poi_traffic_signals">Luce di stop</string>
|
||||||
|
|
||||||
|
<string name="poi_vehicle_ramp">Rampa per veicoli</string>
|
||||||
|
<string name="poi_tram_stop">Fermata tram (absoleta)</string>
|
||||||
|
<string name="poi_aeroway_terminal">Terminal aeroporto</string>
|
||||||
|
<string name="poi_slipway">Scivolo</string>
|
||||||
|
<string name="poi_ferry_terminal">Terminal traghetto</string>
|
||||||
|
<string name="poi_lighthouse">Faro</string>
|
||||||
|
|
||||||
|
<string name="poi_aerialway_station">Stazione skilift</string>
|
||||||
|
<string name="poi_aerialway_cable_car">Funivia</string>
|
||||||
|
<string name="poi_aerialway_t_bar">Skilift a àncora</string>
|
||||||
|
<string name="poi_aerialway_j_bar">Skilift a J</string>
|
||||||
|
<string name="poi_aerialway_platter">Skilift a piattello</string>
|
||||||
|
<string name="poi_aerialway_mixed_lift">Skilift misto</string>
|
||||||
|
<string name="poi_aerialway_drag_lift">Skilift</string>
|
||||||
|
<string name="poi_aerialway_rope_tow">Skilift a fune</string>
|
||||||
|
<string name="poi_aerialway_goods">Skilift per oggetti</string>
|
||||||
|
<string name="poi_aerialway_magic_carpet">Skilift a tappeto</string>
|
||||||
|
|
||||||
|
<string name="poi_tunnel">Tunnel</string>
|
||||||
|
<string name="poi_public_transport_platform_trolleybus">Fermata filobus</string>
|
||||||
|
<string name="poi_railway_station">Stazione ferroviaria</string>
|
||||||
|
<string name="poi_water_well">Pozzo</string>
|
||||||
|
<string name="poi_standpipe">Fontanella</string>
|
||||||
|
<string name="poi_water_works">Impianto idrico</string>
|
||||||
|
<string name="poi_boatyard">Cantiere navale</string>
|
||||||
|
<string name="poi_water_tower">Torre idrica</string>
|
||||||
|
<string name="poi_lock_gate">Chiuse</string>
|
||||||
|
<string name="poi_waterway_turning_point">Inversione di marcia per battelli</string>
|
||||||
|
<string name="poi_weir">Sbarramento</string>
|
||||||
|
<string name="poi_dam">Diga</string>
|
||||||
|
<string name="poi_telephone_exchange">Centralino telefonico</string>
|
||||||
|
|
||||||
|
<string name="poi_landfill">Discarica</string>
|
||||||
|
<string name="poi_waste_disposal">Zona raccolta di rifiuti</string>
|
||||||
|
<string name="poi_educational_institution">Istituto scolastico</string>
|
||||||
|
<string name="poi_bookmaker">Scommesse</string>
|
||||||
|
|
||||||
|
<string name="poi_stadium">Stadio</string>
|
||||||
|
<string name="poi_sports_centre">Centro sportivo</string>
|
||||||
|
<string name="poi_ice_rink">Pista pattinaggio sul ghiaccio</string>
|
||||||
|
<string name="poi_athletics">Atletica leggera</string>
|
||||||
|
<string name="poi_boules">Bocce</string>
|
||||||
|
<string name="poi_cycling">Ciclismo</string>
|
||||||
|
<string name="poi_gymnastics">Ginnastica</string>
|
||||||
|
<string name="poi_place_of_worship_buddhist">Luogo di culto: duddista</string>
|
||||||
|
<string name="poi_place_of_worship_hindu">Luogo di culto: induismo</string>
|
||||||
|
<string name="poi_place_of_worship_shinto">Luogo di culto: shintoismo</string>
|
||||||
|
<string name="poi_place_of_worship_taoist">Luogo di culto: taoismo</string>
|
||||||
|
<string name="poi_monastery">Monastero</string>
|
||||||
|
<string name="poi_historic_monastery">Monastero storico</string>
|
||||||
|
<string name="poi_wayside_cross">Croce storica</string>
|
||||||
|
<string name="poi_wayside_shrine">Tabernacolo storico</string>
|
||||||
|
<string name="poi_tourism_information">Informazioni turistiche</string>
|
||||||
|
<string name="poi_clock">Orologio</string>
|
||||||
|
<string name="poi_viewpoint">Punto panoramico</string>
|
||||||
|
<string name="poi_camp_site">Campeggio</string>
|
||||||
|
<string name="poi_caravan_site">Area caravan e camper</string>
|
||||||
|
<string name="poi_picnic_site">Area attrezzata per picnic</string>
|
||||||
|
<string name="poi_spring">Sorgente</string>
|
||||||
|
<string name="poi_cemetery">Zona cimiteriale</string>
|
||||||
|
<string name="poi_grave_yard">Cimitero</string>
|
||||||
|
<string name="poi_shelter">Pensilina o ricovero</string>
|
||||||
|
<string name="poi_funicular">Funicolare</string>
|
||||||
|
<string name="poi_club_art">Club artistico</string>
|
||||||
|
<string name="poi_club_astronomy">Club astrofili</string>
|
||||||
|
<string name="poi_club_computer">Club informatico</string>
|
||||||
|
<string name="poi_club_board_games">Club giochi da tavolo</string>
|
||||||
|
<string name="poi_club_motorcycle">Club motociclistico</string>
|
||||||
|
<string name="poi_club_sport">Club sportivo</string>
|
||||||
|
<string name="poi_club_game">Club giochi</string>
|
||||||
|
<string name="poi_club_automobile">Club automobilistico</string>
|
||||||
|
<string name="poi_club_chess">Club scacchistico</string>
|
||||||
|
<string name="poi_club_cinema">Club cinefili</string>
|
||||||
|
<string name="poi_club_fan">Fan club</string>
|
||||||
|
<string name="poi_club_fishing">Club pesca</string>
|
||||||
|
<string name="poi_club_veterans">Club veterani</string>
|
||||||
|
<string name="poi_club_linux">Club Linux Lug</string>
|
||||||
|
<string name="poi_club_theatre">Club teatrale</string>
|
||||||
|
<string name="poi_club_photography">Club fotografico</string>
|
||||||
|
<string name="poi_club_hunting">Club caccia</string>
|
||||||
|
<string name="poi_library">Libreria</string>
|
||||||
|
<string name="poi_theatre">Teatro</string>
|
||||||
|
<string name="poi_circus">Circo</string>
|
||||||
|
<string name="poi_dance_floor">Discoteca</string>
|
||||||
|
<string name="poi_nightclub">Night</string>
|
||||||
|
<string name="poi_stripclub">Stripclub</string>
|
||||||
|
<string name="poi_hunting_stand">Postazione di caccia</string>
|
||||||
|
<string name="poi_miniature_golf">Mini golf</string>
|
||||||
|
<string name="poi_playground">Parco giochi</string>
|
||||||
|
<string name="poi_swimming_pool">Piscina</string>
|
||||||
|
<string name="poi_water_park">Parco acquatico</string>
|
||||||
|
<string name="poi_park">Parco</string>
|
||||||
|
|
||||||
|
<string name="poi_cafe">Bar</string>
|
||||||
|
<string name="poi_restaurant">Ristorante</string>
|
||||||
|
<string name="poi_fast_food">Fast food</string>
|
||||||
|
<string name="poi_bar">Bar</string>
|
||||||
|
<string name="poi_pub">Pub</string>
|
||||||
|
<string name="poi_drinking_water">Acqua potabile</string>
|
||||||
|
<string name="poi_barbecue">Barbecue</string>
|
||||||
|
|
||||||
|
<string name="poi_beekeeper">Apicoltore</string>
|
||||||
|
<string name="poi_blacksmith">Fabbro</string>
|
||||||
|
<string name="poi_brewery">Birrificio</string>
|
||||||
|
<string name="poi_boatbuilder">Costruzione barche</string>
|
||||||
|
<string name="poi_bookbinder">Rilegatore</string>
|
||||||
|
<string name="poi_carpenter">Carpentiere</string>
|
||||||
|
<string name="poi_carpet_layer">Posatore di moquette</string>
|
||||||
|
<string name="poi_caterer">Servizio di catering</string>
|
||||||
|
<string name="poi_clockmaker">Orologiaio</string>
|
||||||
|
<string name="poi_glaziery_craft">Vetraio</string>
|
||||||
|
<string name="poi_handicraft">Artigiano</string>
|
||||||
|
<string name="poi_insulation_craft">Isolamento termico degli edifici</string>
|
||||||
|
<string name="poi_locksmith">Fabbro per serrature</string>
|
||||||
|
<string name="poi_key_cutter">Servizio di duplicazione chiavi</string>
|
||||||
|
<string name="poi_metal_construction_craft">Costruzioni metalliche</string>
|
||||||
|
<string name="poi_plasterer">Stuccatore</string>
|
||||||
|
<string name="poi_pottery_craft">Vasaio</string>
|
||||||
|
<string name="poi_rigger">Attrezzature per barche a vela</string>
|
||||||
|
<string name="poi_roofer">Costruzione e riparazione di tetti</string>
|
||||||
|
<string name="poi_saddler">Sellaio</string>
|
||||||
|
<string name="poi_sailmaker">Velaio</string>
|
||||||
|
<string name="poi_sawmill">Segheria</string>
|
||||||
|
<string name="poi_scaffolder">Ponteggi e impalcature</string>
|
||||||
|
<string name="poi_stand_builder">Allestimento di stand</string>
|
||||||
|
<string name="poi_stonemason">Scalpellino</string>
|
||||||
|
<string name="poi_sweep">Spazzacamino</string>
|
||||||
|
<string name="poi_sun_protection_craft">Tende da sole</string>
|
||||||
|
<string name="poi_tiler">Piastrellista</string>
|
||||||
|
<string name="poi_tinsmith">Lattoniere</string>
|
||||||
|
<string name="poi_upholsterer">Tappezziere</string>
|
||||||
|
<string name="poi_funeral_directors">Impresa di pompe funebri</string>
|
||||||
|
<string name="poi_town_hall">Municipio</string>
|
||||||
|
<string name="poi_research_office">Centro di ricerca e sviluppo</string>
|
||||||
|
<string name="poi_it_office">Ufficio IT</string>
|
||||||
|
<string name="poi_newspaper_office">Redazione giornalistica</string>
|
||||||
|
<string name="poi_architect_office">Studio di architettura</string>
|
||||||
|
<string name="poi_advertising_agency">Agenzia pubblicitaria</string>
|
||||||
|
<string name="poi_studio">Studio di registrazione</string>
|
||||||
|
<string name="poi_ship_historic">Nave storica</string>
|
||||||
|
<string name="poi_place_of_worship_muslim">Luogo di culto: musulmano</string>
|
||||||
|
<string name="poi_place_of_worship_sikh">Luogo di culto: sikhismo</string>
|
||||||
|
<string name="poi_travel_agent">Agenzia di viaggi</string>
|
||||||
|
<string name="poi_cinema">Cinema</string>
|
||||||
|
<string name="poi_casino">Casinò</string>
|
||||||
|
<string name="poi_social_centre">Centro sociale</string>
|
||||||
|
<string name="poi_money_lender">Prestasoldi</string>
|
||||||
|
<string name="poi_pawnbroker">Monte di pietà</string>
|
||||||
|
<string name="poi_currencyexchange">Cambia valute</string>
|
||||||
|
<string name="poi_accountant">Studio contabile</string>
|
||||||
|
<string name="poi_river">Fiume</string>
|
||||||
|
<string name="poi_stream">Ruscello</string>
|
||||||
|
<string name="poi_islet">Isoletta</string>
|
||||||
|
|
||||||
|
</resources>
|
||||||
|
|
|
@ -195,7 +195,7 @@
|
||||||
|
|
||||||
<string name="local_index_poi_data">Dati PDI</string>
|
<string name="local_index_poi_data">Dati PDI</string>
|
||||||
<string name="local_index_address_data">Dati indirizzi</string>
|
<string name="local_index_address_data">Dati indirizzi</string>
|
||||||
<string name="local_index_transport_data">Dati trasporti</string>
|
<string name="local_index_transport_data">Dati trasporti pubblici</string>
|
||||||
<string name="local_index_map_data">Dati mappa</string>
|
<string name="local_index_map_data">Dati mappa</string>
|
||||||
|
|
||||||
<string name="local_indexes_cat_backup">Disattivato</string>
|
<string name="local_indexes_cat_backup">Disattivato</string>
|
||||||
|
@ -346,7 +346,7 @@
|
||||||
<string name="indexing_address">Indicizzazione indirizzi…</string>
|
<string name="indexing_address">Indicizzazione indirizzi…</string>
|
||||||
<string name="indexing_map">Indicizzazione mappa…</string>
|
<string name="indexing_map">Indicizzazione mappa…</string>
|
||||||
<string name="indexing_poi">Indicizzazione PDI…</string>
|
<string name="indexing_poi">Indicizzazione PDI…</string>
|
||||||
<string name="indexing_transport">Indicizzazione trasporti…</string>
|
<string name="indexing_transport">Indicizzazione trasporti pubblici…</string>
|
||||||
<string name="input_output_error">Errore di I/O</string>
|
<string name="input_output_error">Errore di I/O</string>
|
||||||
<string name="km">km</string>
|
<string name="km">km</string>
|
||||||
<string name="km_h">km/h</string>
|
<string name="km_h">km/h</string>
|
||||||
|
@ -450,7 +450,7 @@
|
||||||
<string name="none_region_found">Non è stata trovato nessuna dato per la regione nella scheda SD. Scarica una regione da internet.</string>
|
<string name="none_region_found">Non è stata trovato nessuna dato per la regione nella scheda SD. Scarica una regione da internet.</string>
|
||||||
<string name="poi_namefinder_query_empty">Inserisci i parametri di ricerca per trovare un PDI</string>
|
<string name="poi_namefinder_query_empty">Inserisci i parametri di ricerca per trovare un PDI</string>
|
||||||
<string name="any_poi">Tutti</string>
|
<string name="any_poi">Tutti</string>
|
||||||
<string name="layer_transport_route">Percorso di trasporto pubblico</string>
|
<string name="layer_transport_route">Percorso su trasporto pubblico</string>
|
||||||
<string name="thanks_yandex_traffic">Grazie a Yandex per le informazioni sul traffico.</string>
|
<string name="thanks_yandex_traffic">Grazie a Yandex per le informazioni sul traffico.</string>
|
||||||
<string name="layer_yandex_traffic">Yandex (traffico)</string>
|
<string name="layer_yandex_traffic">Yandex (traffico)</string>
|
||||||
<string name="layer_route">Percorso</string>
|
<string name="layer_route">Percorso</string>
|
||||||
|
@ -781,10 +781,10 @@
|
||||||
<string name="osmand_monitoring_description">Visualizza impostazioni per facilitare la registrazione dei tuoi spostamenti su un file GPX o il live tracking tramite un servizio web.</string>
|
<string name="osmand_monitoring_description">Visualizza impostazioni per facilitare la registrazione dei tuoi spostamenti su un file GPX o il live tracking tramite un servizio web.</string>
|
||||||
<string name="osmand_extra_settings_description">Visualizza le impostazioni per la configurazione avanzata della mappa (come aumentarne i dettagli) e alcune di specifici dispositivi.</string>
|
<string name="osmand_extra_settings_description">Visualizza le impostazioni per la configurazione avanzata della mappa (come aumentarne i dettagli) e alcune di specifici dispositivi.</string>
|
||||||
<string name="osmand_development_plugin_description">Visualizza impostazioni per funzionalità in sviluppo e debug come la navigazione animata o visualizzare la prestazione del rendering.</string>
|
<string name="osmand_development_plugin_description">Visualizza impostazioni per funzionalità in sviluppo e debug come la navigazione animata o visualizzare la prestazione del rendering.</string>
|
||||||
<string name="plugins_screen">Plugin</string>
|
<string name="plugins_screen">Componenti aggiuntivi</string>
|
||||||
<string name="select_plugin_to_activate">Seleziona un plugin per attivarlo o disattivarlo. (potrebbe essere richiesto il riavvio di OsmAnd.)</string>
|
<string name="select_plugin_to_activate">Seleziona un plugin per attivarlo o disattivarlo. (Potrebbe essere richiesto il riavvio di OsmAnd.)</string>
|
||||||
<string name="prefs_plugins_descr">I plugin abilitano funzionalità aggiuntive e impostazioni avanzate</string>
|
<string name="prefs_plugins_descr">I plugin abilitano funzionalità aggiuntive e impostazioni avanzate</string>
|
||||||
<string name="prefs_plugins">Plugin</string>
|
<string name="prefs_plugins">Componenti aggiuntivi</string>
|
||||||
<string name="tip_recent_changes_0_8_0_t">Novità nella versione 0.8.0:
|
<string name="tip_recent_changes_0_8_0_t">Novità nella versione 0.8.0:
|
||||||
\n\t- *Funzionalità a plugin*\n\t- Molte delle funzionalità sono raggruppate per caratteristiche e possono essere abilitate/disabilitate nel Plugin Manager.
|
\n\t- *Funzionalità a plugin*\n\t- Molte delle funzionalità sono raggruppate per caratteristiche e possono essere abilitate/disabilitate nel Plugin Manager.
|
||||||
Si possono abilitare sorgenti di mappe a tasselli (online o in cache), impostazioni per il tracking e molte altre funzionalità nuove o preesistenti.
|
Si possono abilitare sorgenti di mappe a tasselli (online o in cache), impostazioni per il tracking e molte altre funzionalità nuove o preesistenti.
|
||||||
|
@ -792,9 +792,9 @@
|
||||||
\n\t- Il rendering delle mappe è ora più veloce e preciso (la gran parte delle linee costiere e le zone allagate sono state sistemate).
|
\n\t- Il rendering delle mappe è ora più veloce e preciso (la gran parte delle linee costiere e le zone allagate sono state sistemate).
|
||||||
\n\t- Devi scaricare dati offline completamente nuovi (i vecchi non saranno più supportati)
|
\n\t- Devi scaricare dati offline completamente nuovi (i vecchi non saranno più supportati)
|
||||||
\n\t- *Calcolo dei percorsi offline*
|
\n\t- *Calcolo dei percorsi offline*
|
||||||
\n\t - Il calcolo dei percorsi offline diventa più solido
|
\n\t- Il calcolo dei percorsi offline diventa più solido
|
||||||
\n\t- *Miglioramento usabilità e UI*
|
\n\t- *Miglioramento usabilità e UI*
|
||||||
\n\t - Miglioramenti in svariate aree
|
\n\t- Miglioramenti in svariate aree
|
||||||
</string>
|
</string>
|
||||||
<string name="osm_editing_plugin_description">Visualizza le impostazioni necessarie per contributi a OSM come la raccolta/modifica dei PDI di OSM, aprire/commentare errori di OSM e inviare file GPX registrati (richiede le credenziali di OSM).</string>
|
<string name="osm_editing_plugin_description">Visualizza le impostazioni necessarie per contributi a OSM come la raccolta/modifica dei PDI di OSM, aprire/commentare errori di OSM e inviare file GPX registrati (richiede le credenziali di OSM).</string>
|
||||||
<string name="vector_maps_may_display_faster_on_some_devices">Le mappe vettoriali dovrebbero apparire più velocemente. Su certi dispositivi potrebbero non funzionare bene.</string>
|
<string name="vector_maps_may_display_faster_on_some_devices">Le mappe vettoriali dovrebbero apparire più velocemente. Su certi dispositivi potrebbero non funzionare bene.</string>
|
||||||
|
@ -1547,7 +1547,7 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A
|
||||||
<string name="announce_gpx_waypoints">Annuncia i punti GPX di passaggio</string>
|
<string name="announce_gpx_waypoints">Annuncia i punti GPX di passaggio</string>
|
||||||
<string name="osmodroid_mode_on">Ferma OsMoDroid</string>
|
<string name="osmodroid_mode_on">Ferma OsMoDroid</string>
|
||||||
<string name="osmodroid_mode_off">Avvia OsMoDroid</string>
|
<string name="osmodroid_mode_off">Avvia OsMoDroid</string>
|
||||||
<string name="driving_region_descr">Scegliete la regione di guida: USA, Europa, UK, Asia o Altre</string>
|
<string name="driving_region_descr">Scegliete la regione di guida: USA, Europa, UK, Asia o altre</string>
|
||||||
<string name="driving_region">Regione di guida</string>
|
<string name="driving_region">Regione di guida</string>
|
||||||
<string name="driving_region_japan">Giappone</string>
|
<string name="driving_region_japan">Giappone</string>
|
||||||
<string name="driving_region_us">Stati Uniti</string>
|
<string name="driving_region_us">Stati Uniti</string>
|
||||||
|
@ -1583,7 +1583,7 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A
|
||||||
</string>
|
</string>
|
||||||
<string name="about_version">Versione:</string>
|
<string name="about_version">Versione:</string>
|
||||||
<string name="about_settings">Informazioni</string>
|
<string name="about_settings">Informazioni</string>
|
||||||
<string name="about_settings_descr">Informazioni versione, licenze, membri del progetto</string>
|
<string name="about_settings_descr">Informazioni versione, licenze e membri del progetto</string>
|
||||||
<string name="tips_and_tricks">Aiuto</string>
|
<string name="tips_and_tricks">Aiuto</string>
|
||||||
<string name="tip_map_styles">Stili mappa</string>
|
<string name="tip_map_styles">Stili mappa</string>
|
||||||
<string name="tip_map_styles_t">"OsmAnd supporta le mappe vettoriali offline con stili di visualizzazione differenti per adattarsi alle tue esigenze:
|
<string name="tip_map_styles_t">"OsmAnd supporta le mappe vettoriali offline con stili di visualizzazione differenti per adattarsi alle tue esigenze:
|
||||||
|
@ -1638,7 +1638,7 @@ Si consiglia di aggiungere uno o più punti intermedi per migliorarne le prestaz
|
||||||
<string name="android_19_location_disabled">Dalla versione KitKat non è più possibile scaricare e aggiornare le mappe nel precedente indirizzo di memorizzazione (%s). Vuoi sostituirlo con quello consentito e copiare lì tutti i file?
|
<string name="android_19_location_disabled">Dalla versione KitKat non è più possibile scaricare e aggiornare le mappe nel precedente indirizzo di memorizzazione (%s). Vuoi sostituirlo con quello consentito e copiare lì tutti i file?
|
||||||
\n Nota: i file precedenti non verranno modificati.
|
\n Nota: i file precedenti non verranno modificati.
|
||||||
\n Nota: non sarà possibile condividere i files fra OsmAnd and OsmAnd+.</string>
|
\n Nota: non sarà possibile condividere i files fra OsmAnd and OsmAnd+.</string>
|
||||||
<string name="application_dir_change_warning2">Volete che OsmAnd provi a spostare i propri dati nella nuova destinazione?</string>
|
<string name="application_dir_change_warning2">Volete che OsmAnd sposti anche i propri dati nella nuova destinazione?</string>
|
||||||
<string name="copying_osmand_one_file_descr">Copia in corso del file (%s) nella nuova destinazione...</string>
|
<string name="copying_osmand_one_file_descr">Copia in corso del file (%s) nella nuova destinazione...</string>
|
||||||
<string name="copying_osmand_files_descr">Copia in corso dei file OsmAnd nella nuova destinazione (%s)</string>
|
<string name="copying_osmand_files_descr">Copia in corso dei file OsmAnd nella nuova destinazione (%s)</string>
|
||||||
<string name="copying_osmand_files">Copia dei file di dati di OsmAnd</string>
|
<string name="copying_osmand_files">Copia dei file di dati di OsmAnd</string>
|
||||||
|
@ -1741,7 +1741,7 @@ Si consiglia di aggiungere uno o più punti intermedi per migliorarne le prestaz
|
||||||
<string name="navigation_intent_invalid">Formato non valido: %s</string>
|
<string name="navigation_intent_invalid">Formato non valido: %s</string>
|
||||||
<string name="osmo_settings_uuid">ID univoco del dispositivo</string>
|
<string name="osmo_settings_uuid">ID univoco del dispositivo</string>
|
||||||
<string name="osmo_settings_descr">Configura le impostazioni di monitoraggio e imposta il canale di monitoraggio personale</string>
|
<string name="osmo_settings_descr">Configura le impostazioni di monitoraggio e imposta il canale di monitoraggio personale</string>
|
||||||
<string name="osmo_plugin_description">"OpenStreetMap monitoraggio avanzato in diretta, vedi http://osmo.mobi. Fornisce la possibilità di tracciare altri dispositivi e di essere tracciati. Crea gruppo anonimi, condivide reciprocamente la posizione e comunica. Sono disponibili varie impostazioni di monitoraggio, per la sessione in corso o permanenti. I gruppi anonimi sono limitate per il numero di giorni e alcune funzioni es. non c\'è il controllo remoto e l\'amministratore del gruppo. Gruppi con tutte le funzionalità possono essere creati dal sito e solo gli utenti registrati possono accedervi. "</string>
|
<string name="osmo_plugin_description">"OpenStreetMap monitoraggio avanzato in diretta, vedi http://osmo.mobi. Fornisce la possibilità di tracciare altri dispositivi e di essere tracciati. Crea gruppo anonimi, condivide reciprocamente la posizione e comunica. Sono disponibili varie impostazioni di monitoraggio, per la sessione in corso o permanenti. I gruppi anonimi sono limitati a un numero di giorni e alcune funzioni es. non c\'è il controllo remoto e l\'amministratore del gruppo. Gruppi con tutte le funzionalità possono essere creati dal sito e solo gli utenti registrati possono accedervi. "</string>
|
||||||
<string name="osmo_plugin_name">OsMo (Monitoraggio avanzato in tempo reale)</string>
|
<string name="osmo_plugin_name">OsMo (Monitoraggio avanzato in tempo reale)</string>
|
||||||
<string name="osmo_settings">Monitoraggio OpenStreetMap</string>
|
<string name="osmo_settings">Monitoraggio OpenStreetMap</string>
|
||||||
<string name="keep_informing_never">Mai</string>
|
<string name="keep_informing_never">Mai</string>
|
||||||
|
@ -1790,7 +1790,7 @@ Si consiglia di aggiungere uno o più punti intermedi per migliorarne le prestaz
|
||||||
<string name="osmo_track_interval">Intervallo di registrazione</string>
|
<string name="osmo_track_interval">Intervallo di registrazione</string>
|
||||||
<string name="osmo_track_interval_descr">Scegli l\'intervallo di tempo per l\'invio della posizione</string>
|
<string name="osmo_track_interval_descr">Scegli l\'intervallo di tempo per l\'invio della posizione</string>
|
||||||
<string name="int_days">giorni</string>
|
<string name="int_days">giorni</string>
|
||||||
<string name="osmo_connect_menu">Connetti</string>
|
<string name="osmo_connect_menu">Attiva</string>
|
||||||
<string name="osmo_expire_group">Scade fra</string>
|
<string name="osmo_expire_group">Scade fra</string>
|
||||||
<string name="osmo_group_description">Descrizione</string>
|
<string name="osmo_group_description">Descrizione</string>
|
||||||
<string name="osmo_group_policy">Regole</string>
|
<string name="osmo_group_policy">Regole</string>
|
||||||
|
@ -1964,7 +1964,7 @@ Si consiglia di aggiungere uno o più punti intermedi per migliorarne le prestaz
|
||||||
<string name="speak_poi">Annuncia PDI nelle vicinanze</string>
|
<string name="speak_poi">Annuncia PDI nelle vicinanze</string>
|
||||||
<string name="index_tours">Itinerari</string>
|
<string name="index_tours">Itinerari</string>
|
||||||
<string name="flat_list_waypoints">Tutto</string>
|
<string name="flat_list_waypoints">Tutto</string>
|
||||||
<string name="record_plugin_description">Registrate le vostre tracce con il pulsante dedicato nello schermo della mappa. Mostra le impostazioni per la registrazione dei vostri viaggi in file GPX localmente o online utilizzando un servizio web.</string>
|
<string name="record_plugin_description">Registra le tue tracce con il pulsante dedicato nello schermo della mappa. Mostra le impostazioni per la registrazione dei vostri viaggi in file GPX localmente o online utilizzando un servizio web.</string>
|
||||||
<string name="record_plugin_name">Registra i tuoi viaggi</string>
|
<string name="record_plugin_name">Registra i tuoi viaggi</string>
|
||||||
<string name="int_hour">h</string>
|
<string name="int_hour">h</string>
|
||||||
<string name="duration">Durata</string>
|
<string name="duration">Durata</string>
|
||||||
|
@ -1986,8 +1986,6 @@ Si consiglia di aggiungere uno o più punti intermedi per migliorarne le prestaz
|
||||||
<string name="local_index_description">Clicca su un oggetto per visualizzare maggiori dettagli, tieni premuto per disattivarlo o cancellarlo. Dati attualmente nel dispositivo (%1$s liberi):</string>
|
<string name="local_index_description">Clicca su un oggetto per visualizzare maggiori dettagli, tieni premuto per disattivarlo o cancellarlo. Dati attualmente nel dispositivo (%1$s liberi):</string>
|
||||||
<string name="text_size_descr">Imposta la dimensione del testo sulla mappa.</string>
|
<string name="text_size_descr">Imposta la dimensione del testo sulla mappa.</string>
|
||||||
<string name="text_size">Dimensione del testo</string>
|
<string name="text_size">Dimensione del testo</string>
|
||||||
<string name="test_native_render">Prova il rendering nativo</string>
|
|
||||||
<string name="test_native_render_msg">Inizia l\'attività con il rendering nativo</string>
|
|
||||||
<string name="fav_point_dublicate">Duplicato del nome del punto preferito</string>
|
<string name="fav_point_dublicate">Duplicato del nome del punto preferito</string>
|
||||||
<string name="fav_point_dublicate_message">Per evitare duplicati il nome del vostro punto preferito è stato modificato in %1$s.</string>
|
<string name="fav_point_dublicate_message">Per evitare duplicati il nome del vostro punto preferito è stato modificato in %1$s.</string>
|
||||||
<string name="use_native_render">Usa il rendering nativo</string>
|
<string name="use_native_render">Usa il rendering nativo</string>
|
||||||
|
@ -2003,7 +2001,7 @@ Si consiglia di aggiungere uno o più punti intermedi per migliorarne le prestaz
|
||||||
<string name="logged_as">Registrato come %1$s</string>
|
<string name="logged_as">Registrato come %1$s</string>
|
||||||
<string name="rendering_category_routes">Percorsi</string>
|
<string name="rendering_category_routes">Percorsi</string>
|
||||||
<string name="rendering_category_details">Dettagli</string>
|
<string name="rendering_category_details">Dettagli</string>
|
||||||
<string name="rendering_category_transport">Trasporto</string>
|
<string name="rendering_category_transport">Trasporto pubblico</string>
|
||||||
<string name="rendering_category_others">Altri attributi della mappa</string>
|
<string name="rendering_category_others">Altri attributi della mappa</string>
|
||||||
<string name="map_widget_right">Pannello di destra</string>
|
<string name="map_widget_right">Pannello di destra</string>
|
||||||
<string name="map_widget_left">Pannello di sinistra</string>
|
<string name="map_widget_left">Pannello di sinistra</string>
|
||||||
|
@ -2032,7 +2030,12 @@ Si consiglia di aggiungere uno o più punti intermedi per migliorarne le prestaz
|
||||||
<string name="show_all">MOSTRA TUTTO</string>
|
<string name="show_all">MOSTRA TUTTO</string>
|
||||||
<string name="coordinates">Coordinate</string>
|
<string name="coordinates">Coordinate</string>
|
||||||
<string name="home_button">Casa</string>
|
<string name="home_button">Casa</string>
|
||||||
<string name="map_update">Mappe</string>
|
<string name="map_update">Mappe </string>
|
||||||
<string name="search_for">Cerca</string>
|
<string name="search_for">Cerca</string>
|
||||||
<string name="show_map">MOSTRA LA MAPPA</string>
|
<string name="show_map">MOSTRA LA MAPPA</string>
|
||||||
</resources>
|
<string name="error_avoid_specific_road">Non è stata trovata una strada nelle vicinanze</string>
|
||||||
|
<string name="use_opengl_render">Utilizzare il rendering opengl</string>
|
||||||
|
<string name="use_opengl_render_descr">Utilizzare il rendering opengl accelerato via hardware (potrebbe non funzionare in alcuni dispositivi)</string>
|
||||||
|
<string name="everything_up_to_date">Tutto aggiornato</string>
|
||||||
|
<string name="dismiss">Abbandona</string>
|
||||||
|
</resources>
|
||||||
|
|
|
@ -505,8 +505,8 @@ POIの更新は利用できません</string>
|
||||||
<string name="settings_preset_descr">地図の表示とナビゲーションの設定はプロファイルごとに記憶されます。デフォルトのプロファイルを設定してください。</string>
|
<string name="settings_preset_descr">地図の表示とナビゲーションの設定はプロファイルごとに記憶されます。デフォルトのプロファイルを設定してください。</string>
|
||||||
<string name="settings_preset">デフォルトプロファイル</string>
|
<string name="settings_preset">デフォルトプロファイル</string>
|
||||||
<string name="settings">設定</string>
|
<string name="settings">設定</string>
|
||||||
<string name="save_current_track_descr">今すぐ現在のトラックをSDに保存</string>
|
<string name="save_current_track_descr">現在の経路を今すぐSDに保存</string>
|
||||||
<string name="save_current_track">現在のトラックを保存</string>
|
<string name="save_current_track">現在の経路を保存</string>
|
||||||
<string name="save_track_interval_descr">ナビゲーション中の経路の記録間隔を選択</string>
|
<string name="save_track_interval_descr">ナビゲーション中の経路の記録間隔を選択</string>
|
||||||
<string name="save_track_interval">ナビゲーション中の経路記録間隔</string>
|
<string name="save_track_interval">ナビゲーション中の経路記録間隔</string>
|
||||||
|
|
||||||
|
@ -783,8 +783,8 @@ POIの更新は利用できません</string>
|
||||||
<string name="download_using_mobile_internet">現在Wi-Fiに接続されていません。現在のインターネット接続のままでダウンロードを続行しますか?</string>
|
<string name="download_using_mobile_internet">現在Wi-Fiに接続されていません。現在のインターネット接続のままでダウンロードを続行しますか?</string>
|
||||||
<string name="street_name">通り</string>
|
<string name="street_name">通り</string>
|
||||||
<string name="hno">家屋番号</string>
|
<string name="hno">家屋番号</string>
|
||||||
<string name="monitoring_settings">旅行についての記録</string>
|
<string name="monitoring_settings">旅程の記録</string>
|
||||||
<string name="monitoring_settings_descr">旅行の記録に関する設定します</string>
|
<string name="monitoring_settings_descr">移動中の経路記録に関する設定</string>
|
||||||
<string name="osmand_monitoring_plugin_description">スリープ(画面消灯)モード時のトラッキングとナビをGPSデバイスを定期的にウェイクアップすることで有効化します。
|
<string name="osmand_monitoring_plugin_description">スリープ(画面消灯)モード時のトラッキングとナビをGPSデバイスを定期的にウェイクアップすることで有効化します。
|
||||||
あなたの旅行のローカルのGPXファイルかオンラインのウェブサービスで記録するかを容易に設定する画面を表示します。</string>
|
あなたの旅行のローカルのGPXファイルかオンラインのウェブサービスで記録するかを容易に設定する画面を表示します。</string>
|
||||||
<string name="osmand_monitoring_plugin_name">ロギングサービス</string>
|
<string name="osmand_monitoring_plugin_name">ロギングサービス</string>
|
||||||
|
@ -856,7 +856,7 @@ POIの更新は利用できません</string>
|
||||||
<string name="recording_description">記録中 %1$s %3$s の %2$s</string>
|
<string name="recording_description">記録中 %1$s %3$s の %2$s</string>
|
||||||
<string name="recording_default_name">記録中</string>
|
<string name="recording_default_name">記録中</string>
|
||||||
<string name="av_control_stop">停止</string>
|
<string name="av_control_stop">停止</string>
|
||||||
<string name="av_control_start">開始</string>
|
<string name="av_control_start">記録</string>
|
||||||
<string name="map_widget_av_notes">音声/ビデオメモ</string>
|
<string name="map_widget_av_notes">音声/ビデオメモ</string>
|
||||||
<string name="osmand_srtm_short_description_80_chars">オフライン等高線のためのOsmAndプラグイン</string>
|
<string name="osmand_srtm_short_description_80_chars">オフライン等高線のためのOsmAndプラグイン</string>
|
||||||
<string name="map_widget_distancemeasurement">距離の測定</string>
|
<string name="map_widget_distancemeasurement">距離の測定</string>
|
||||||
|
@ -1182,7 +1182,7 @@ ASTERはNASAと日本の経済産業省(METI)、そして宇宙システム
|
||||||
|
|
||||||
<string name="live_monitoring_interval_descr">オンライン追跡間隔を指定</string>
|
<string name="live_monitoring_interval_descr">オンライン追跡間隔を指定</string>
|
||||||
<string name="live_monitoring_interval">オンライン追跡間隔</string>
|
<string name="live_monitoring_interval">オンライン追跡間隔</string>
|
||||||
<string name="live_monitoring_url_descr">パラメータの構文を使用してWebアドレスを指定します:緯度={0}、経度={1}、タイムスタンプ={2}、HDOP={3}、標高={4}、速度={5}、ベアリング={6}</string>
|
<string name="live_monitoring_url_descr">指定したWebアドレスに経路データを送信/使えるパラメータ:緯度={0}、経度={1}、タイムスタンプ={2}、HDOP={3}、標高={4}、速度={5}、ベアリング={6}</string>
|
||||||
<string name="live_monitoring_url">オンライン追跡ウェブアドレス</string>
|
<string name="live_monitoring_url">オンライン追跡ウェブアドレス</string>
|
||||||
<string name="gpx_monitoring_disabled_warn">\'追跡ログをGPXに記録\'を有効にして下さい。</string>
|
<string name="gpx_monitoring_disabled_warn">\'追跡ログをGPXに記録\'を有効にして下さい。</string>
|
||||||
<string name="show_current_gpx_title">現在のトラックを表示</string>
|
<string name="show_current_gpx_title">現在のトラックを表示</string>
|
||||||
|
@ -1695,14 +1695,13 @@ OsmAndはオープンソースであり、活発に開発が進められいま
|
||||||
\n\t- TTSエンジンの改善(より正確な距離による指示、マイルを有効に)
|
\n\t- TTSエンジンの改善(より正確な距離による指示、マイルを有効に)
|
||||||
\n\t- バグ修正
|
\n\t- バグ修正
|
||||||
</string>
|
</string>
|
||||||
<string name="tip_recent_changes_0_6_6_t">0.6.6の変更と追加:
|
<string name="tip_recent_changes_0_6_6_t">"0.6.6の変更と追加:
|
||||||
\n\t- 音声案内用にテキスト読み上げエンジン搭載
|
\n\t- 音声案内用にテキスト読み上げエンジン搭載
|
||||||
\n\t- 地図描写は、より詳細に
|
\n\t- マップ描写に、詳細(細かな施設)表示を追加
|
||||||
\n\t- 全世界用基本マップをアプリと一緒にパッケージ
|
\n\t- 全世界用基本マップをアプリと一緒にパッケージ
|
||||||
\n\t- オフラインでのナビゲーションを微調整(実験段階)
|
\n\t- オフラインでのナビゲーションを微調整(実験段階)
|
||||||
\n\t- GPXのナビゲーションオプション
|
\n\t- GPXのナビゲーションオプション
|
||||||
\n\t- ユーザーインターフェイスの更新と大きなバグを修正
|
\n\t- ユーザーインターフェイスの更新と大きなバグを修正 "</string>
|
||||||
</string>
|
|
||||||
<string name="tip_map_switch_t_v2">マップソースとマップレイヤーの変更は「メニュー」→「マップレイヤー」から。
|
<string name="tip_map_switch_t_v2">マップソースとマップレイヤーの変更は「メニュー」→「マップレイヤー」から。
|
||||||
\n\n「マップソース」下の事前にロードされたオフラインベクター形式マップを選択することができます(オフラインナビゲーションには必要です)、もしくは事前定義された(オンラインまたはオフラインキャッシュ)タイルマップ(有効化するには「オンラインマップ」プラグインは「設定」→「プラグイン」)もしくはPC上のOsmAndMapCreatorで作成されたe.g.も使用できます。
|
\n\n「マップソース」下の事前にロードされたオフラインベクター形式マップを選択することができます(オフラインナビゲーションには必要です)、もしくは事前定義された(オンラインまたはオフラインキャッシュ)タイルマップ(有効化するには「オンラインマップ」プラグインは「設定」→「プラグイン」)もしくはPC上のOsmAndMapCreatorで作成されたe.g.も使用できます。
|
||||||
\n\nOsmAndまた、カスタムソースをサポートしています。
|
\n\nOsmAndまた、カスタムソースをサポートしています。
|
||||||
|
@ -1769,8 +1768,8 @@ OsmAndはオープンソースであり、活発に開発が進められいま
|
||||||
<string name="lang_sw">スワヒリ語</string>
|
<string name="lang_sw">スワヒリ語</string>
|
||||||
<string name="lang_he">ヘブライ語</string>
|
<string name="lang_he">ヘブライ語</string>
|
||||||
<string name="home">自宅</string>
|
<string name="home">自宅</string>
|
||||||
<string name="live_monitoring_m_descr">GPX記録が有効になっている場合は、指定したWebサービスへデータを送信します。</string>
|
<string name="live_monitoring_m_descr">GPX記録が有効になっている場合、指定したWebサービスへデータを送信。</string>
|
||||||
<string name="live_monitoring_m">オンライントラッキング(GPXが必要)</string>
|
<string name="live_monitoring_m">オンライン追跡(GPXが必要)</string>
|
||||||
<string name="live_monitoring_start">オンライントラッキング開始</string>
|
<string name="live_monitoring_start">オンライントラッキング開始</string>
|
||||||
<string name="live_monitoring_stop">オンライントラッキング停止</string>
|
<string name="live_monitoring_stop">オンライントラッキング停止</string>
|
||||||
<string name="gpx_monitoring_start">GPX記録開始</string>
|
<string name="gpx_monitoring_start">GPX記録開始</string>
|
||||||
|
@ -1780,7 +1779,7 @@ OsmAndはオープンソースであり、活発に開発が進められいま
|
||||||
<string name="rendering_attr_hideText_name">文字列を隠す</string>
|
<string name="rendering_attr_hideText_name">文字列を隠す</string>
|
||||||
<string name="rendering_attr_hideWoodScrubs_name">森林、低木等を隠す</string>
|
<string name="rendering_attr_hideWoodScrubs_name">森林、低木等を隠す</string>
|
||||||
<string name="rendering_attr_buildings15zoom_name">ズーム15で建物表示</string>
|
<string name="rendering_attr_buildings15zoom_name">ズーム15で建物表示</string>
|
||||||
<string name="rendering_attr_moreDetailed_name">より詳細に</string>
|
<string name="rendering_attr_moreDetailed_name">細かな施設も表示</string>
|
||||||
<string name="rendering_attr_lessDetailed_name">詳細を省く</string>
|
<string name="rendering_attr_lessDetailed_name">詳細を省く</string>
|
||||||
<string name="rendering_attr_hideAccess_name">アクセス制限を非表示</string>
|
<string name="rendering_attr_hideAccess_name">アクセス制限を非表示</string>
|
||||||
<string name="rendering_attr_showAccess_name">アクセス制限を表示</string>
|
<string name="rendering_attr_showAccess_name">アクセス制限を表示</string>
|
||||||
|
@ -1955,7 +1954,7 @@ OsmAndはオープンソースであり、活発に開発が進められいま
|
||||||
<string name="osmo_leave_confirmation_msg">グループ %1$sから退出しますか?</string>
|
<string name="osmo_leave_confirmation_msg">グループ %1$sから退出しますか?</string>
|
||||||
<string name="osmo_specify_tracker_id">IDを指定してください</string>
|
<string name="osmo_specify_tracker_id">IDを指定してください</string>
|
||||||
<string name="continue_navigation">ナビゲーションを継続</string>
|
<string name="continue_navigation">ナビゲーションを継続</string>
|
||||||
<string name="pause_navigation">ナビゲーションを一時停止</string>
|
<string name="pause_navigation">ナビを一時停止</string>
|
||||||
<string name="lang_bg">ブルガリア語</string>
|
<string name="lang_bg">ブルガリア語</string>
|
||||||
<string name="lang_ca">カタロニア語</string>
|
<string name="lang_ca">カタロニア語</string>
|
||||||
<string name="lang_hr">クロアチア語</string>
|
<string name="lang_hr">クロアチア語</string>
|
||||||
|
@ -2025,7 +2024,7 @@ OsmAndはオープンソースであり、活発に開発が進められいま
|
||||||
<string name="navigation_intent_invalid">無効なフォーマット: %s</string>
|
<string name="navigation_intent_invalid">無効なフォーマット: %s</string>
|
||||||
<string name="hide_all_waypoints">すべて削除</string>
|
<string name="hide_all_waypoints">すべて削除</string>
|
||||||
<string name="announce_nearby_favorites">近くのお気に入りを知らせる</string>
|
<string name="announce_nearby_favorites">近くのお気に入りを知らせる</string>
|
||||||
<string name="route_descr_destination">方向(仮翻訳)</string>
|
<string name="route_descr_destination">目的地(仮翻訳)</string>
|
||||||
<string name="index_tours">旅行</string>
|
<string name="index_tours">旅行</string>
|
||||||
<string name="flat_list_waypoints">全て</string>
|
<string name="flat_list_waypoints">全て</string>
|
||||||
<string name="waypoints">経由点</string>
|
<string name="waypoints">経由点</string>
|
||||||
|
@ -2063,8 +2062,6 @@ OsmAndはオープンソースであり、活発に開発が進められいま
|
||||||
<string name="speed_limit_exceed_message">制限速度超過による警告音声の許容値を選択。</string>
|
<string name="speed_limit_exceed_message">制限速度超過による警告音声の許容値を選択。</string>
|
||||||
<string name="fav_point_emoticons_message">お気に入り地点名%1$sはファイルに絵文字を含む文字列を保存し、分かり易いよう変更されています。</string>
|
<string name="fav_point_emoticons_message">お気に入り地点名%1$sはファイルに絵文字を含む文字列を保存し、分かり易いよう変更されています。</string>
|
||||||
<string name="print_route">経路印刷</string>
|
<string name="print_route">経路印刷</string>
|
||||||
<string name="test_native_render">ネイティブレンダリングのテスト</string>
|
|
||||||
<string name="test_native_render_msg">ネイティブレンダリングを有効化して開始</string>
|
|
||||||
<string name="fav_point_dublicate">お気に入り地点の重複</string>
|
<string name="fav_point_dublicate">お気に入り地点の重複</string>
|
||||||
<string name="fav_point_dublicate_message">名前の重複を避けるために、%1$s にお気に入り地点の名前を変更しました。</string>
|
<string name="fav_point_dublicate_message">名前の重複を避けるために、%1$s にお気に入り地点の名前を変更しました。</string>
|
||||||
<string name="use_native_render">ネイティブレンダリングを使用</string>
|
<string name="use_native_render">ネイティブレンダリングを使用</string>
|
||||||
|
@ -2104,4 +2101,10 @@ OsmAndはオープンソースであり、活発に開発が進められいま
|
||||||
<string name="anonymous_user_hint">以下は匿名ユーザーでは使用できません:↵\n- グループ作成;↵\n- サーバを利用してのグループやデバイスの同期;↵\n- 専用の場所でのグループやデバイスの管理.</string>
|
<string name="anonymous_user_hint">以下は匿名ユーザーでは使用できません:↵\n- グループ作成;↵\n- サーバを利用してのグループやデバイスの同期;↵\n- 専用の場所でのグループやデバイスの管理.</string>
|
||||||
<string name="anonymous_user">匿名ユーザー</string>
|
<string name="anonymous_user">匿名ユーザー</string>
|
||||||
<string name="logged_as">%1$sとしてログインしました</string>
|
<string name="logged_as">%1$sとしてログインしました</string>
|
||||||
|
<string name="home_button">ホーム画面</string>
|
||||||
|
<string name="map_update">マップ</string>
|
||||||
|
<string name="search_for">検索</string>
|
||||||
|
<string name="show_map">マップ表示</string>
|
||||||
|
<string name="show_all">全て表示</string>
|
||||||
|
<string name="coordinates">座標</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
96
OsmAnd/res/values-ko/phrases.xml
Normal file
96
OsmAnd/res/values-ko/phrases.xml
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
|
<resources><string name="poi_palaeontological_site">Palaeontological 사이트</string>
|
||||||
|
|
||||||
|
<string name="poi_bakery">베이커리</string>
|
||||||
|
<string name="poi_alcohol">술집</string>
|
||||||
|
<string name="poi_convenience">편의점</string>
|
||||||
|
<string name="poi_mall">쇼핑몰</string>
|
||||||
|
<string name="poi_beverages">음료 가게</string>
|
||||||
|
<string name="poi_butcher">고기 시장</string>
|
||||||
|
<string name="poi_deli">델리</string>
|
||||||
|
<string name="poi_shop_farm">농장 가게</string>
|
||||||
|
<string name="poi_greengrocer">Greengrocery</string>
|
||||||
|
<string name="poi_seafood">해산물 가게</string>
|
||||||
|
<string name="poi_confectionery">과자</string>
|
||||||
|
<string name="poi_ice_cream">아이스크림 응접실</string>
|
||||||
|
<string name="poi_supermarket">슈퍼마켓</string>
|
||||||
|
<string name="poi_shop_tea">홍차 가게</string>
|
||||||
|
<string name="poi_dairy">낙농장 상점</string>
|
||||||
|
<string name="poi_vending_machine">자동 판매기</string>
|
||||||
|
|
||||||
|
<string name="poi_bookshop">서점</string>
|
||||||
|
<string name="poi_bicycle_shop">자전거 가게</string>
|
||||||
|
<string name="poi_anime_shop">애니메이션 상점</string>
|
||||||
|
<string name="poi_antiques_shop">골동품 가게</string>
|
||||||
|
<string name="poi_art_shop">아트 숍</string>
|
||||||
|
<string name="poi_baby_goods">아기 상품</string>
|
||||||
|
<string name="poi_bag_shop">가방 가게</string>
|
||||||
|
<string name="poi_bathroom_furnishing_shop">욕실 가구</string>
|
||||||
|
<string name="poi_bed_shop">침대 룸 가구</string>
|
||||||
|
<string name="poi_boutique">패션 부티크</string>
|
||||||
|
<string name="poi_carpet_shop">카펫 가게</string>
|
||||||
|
<string name="poi_chemist_shop">약국</string>
|
||||||
|
<string name="poi_clothes_shop">의류 매장</string>
|
||||||
|
<string name="poi_children_clothes_shop">어린이 의류</string>
|
||||||
|
<string name="poi_shoes">신발 가게</string>
|
||||||
|
<string name="poi_computer_shop">컴퓨터 가게</string>
|
||||||
|
<string name="poi_copyshop">복사 가게</string>
|
||||||
|
<string name="poi_curtain_shop">커튼 가게</string>
|
||||||
|
<string name="poi_fabric_shop">휘장 상점</string>
|
||||||
|
<string name="poi_bedding_shop">침구 가게</string>
|
||||||
|
<string name="poi_dive_shop">다이빙 장비</string>
|
||||||
|
<string name="poi_doityourself_shop">주택 개선 가게</string>
|
||||||
|
<string name="poi_erotic_shop">에로틱 가게</string>
|
||||||
|
<string name="poi_fishing_shop">낚시 도구</string>
|
||||||
|
<string name="poi_florist">꽃 가게</string>
|
||||||
|
<string name="poi_frame_shop">그림 프레임 가게</string>
|
||||||
|
<string name="poi_furniture_shop">가구점</string>
|
||||||
|
<string name="poi_garden_centre">정원 센터</string>
|
||||||
|
<string name="poi_gas_shop">LPG 주유소</string>
|
||||||
|
<string name="poi_general_shop">일반 상점</string>
|
||||||
|
<string name="poi_gift_shop">선물 가게</string>
|
||||||
|
<string name="poi_glaziery_shop">Glaziery</string>
|
||||||
|
<string name="poi_hardware_shop">하드웨어 스토어</string>
|
||||||
|
<string name="poi_hearing_aids_shop">청력 도움</string>
|
||||||
|
<string name="poi_herbalist">허브 상점</string>
|
||||||
|
<string name="poi_hifi_shop">고음질 스토어</string>
|
||||||
|
<string name="poi_houseware_shop">가정용품 공급 상점</string>
|
||||||
|
<string name="poi_hunting_shop">사냥 장비</string>
|
||||||
|
<string name="poi_interior_decoration_shop">실내 장식 가게</string>
|
||||||
|
<string name="poi_jewelry_shop">보석 상점</string>
|
||||||
|
<string name="poi_kiosk">키오스크</string>
|
||||||
|
<string name="poi_kitchen_shop">주방용품</string>
|
||||||
|
<string name="poi_mobile_phone_shop">휴대 전화 가게</string>
|
||||||
|
<string name="poi_motorcycle_shop">오토바이 가게</string>
|
||||||
|
<string name="poi_musical_instrument_shop">악기</string>
|
||||||
|
<string name="poi_newsagent_shop">통신사</string>
|
||||||
|
<string name="poi_optician_shop">검안</string>
|
||||||
|
<string name="poi_organic_shop">유기농 식품</string>
|
||||||
|
<string name="poi_outdoor_shop">아웃도어 가게</string>
|
||||||
|
<string name="poi_paint_shop">페인트 샵</string>
|
||||||
|
<string name="poi_pet_shop">애완 동물 가게</string>
|
||||||
|
<string name="poi_radiotechnics_shop">전파상</string>
|
||||||
|
<string name="poi_second_hand">두 번째 가게</string>
|
||||||
|
<string name="poi_ship_chandler">배 잡화상</string>
|
||||||
|
<string name="poi_sports_shop">스포츠 용품</string>
|
||||||
|
<string name="poi_stationery_shop">문구용품 가게</string>
|
||||||
|
<string name="poi_tableware_shop">식기 상점</string>
|
||||||
|
<string name="poi_ticket_shop">티켓 판매소</string>
|
||||||
|
<string name="poi_tobacco_shop">담배 상점</string>
|
||||||
|
<string name="poi_toys_shop">장난감 가게</string>
|
||||||
|
<string name="poi_trade_shop">무역소</string>
|
||||||
|
<string name="poi_vacuum_cleaner_shop">진공 청소기 가게</string>
|
||||||
|
<string name="poi_variety_store">잡화점</string>
|
||||||
|
<string name="poi_video_shop">비디오 가게</string>
|
||||||
|
<string name="poi_window_blind_shop">창문 블라인드 가게</string>
|
||||||
|
<string name="poi_department_store">백화점</string>
|
||||||
|
<string name="poi_electronics_shop">전자 제품 매장</string>
|
||||||
|
<string name="poi_car_shop">자동차 판매소</string>
|
||||||
|
<string name="poi_car_parts_shop">자동차 부품</string>
|
||||||
|
<string name="poi_atv_shop">쿼드 가게</string>
|
||||||
|
<string name="poi_cosmetics_shop">화장품</string>
|
||||||
|
<string name="poi_marketplace">마켓 플레이스</string>
|
||||||
|
<string name="poi_sewing_shop">건조 용품 가게</string>
|
||||||
|
|
||||||
|
<string name="poi_police">경찰</string>
|
||||||
|
</resources>
|
|
@ -965,7 +965,7 @@
|
||||||
<string name="android_19_location_disabled">킷캣(KitKat) 버전 이후로 이전에 저장한 폴더 (%s)에 지도를 다운로드하고 업데이트 할 수 없습니다.
|
<string name="android_19_location_disabled">킷캣(KitKat) 버전 이후로 이전에 저장한 폴더 (%s)에 지도를 다운로드하고 업데이트 할 수 없습니다.
|
||||||
\n저장 위치를 변경하고 모든 파일을 그곳에 복사하는 것을 허락하겠습니까?
|
\n저장 위치를 변경하고 모든 파일을 그곳에 복사하는 것을 허락하겠습니까?
|
||||||
\n Note : 이전 파일은 그대로 유지됩니다. (그러나 수동으로 삭제할 수 있습니다)\n Note : 새로운 저장소는 OsmAnd 와 OsmAnd+ 간에 파일을 공유 할 수 없습니다.</string>
|
\n Note : 이전 파일은 그대로 유지됩니다. (그러나 수동으로 삭제할 수 있습니다)\n Note : 새로운 저장소는 OsmAnd 와 OsmAnd+ 간에 파일을 공유 할 수 없습니다.</string>
|
||||||
<string name="application_dir_change_warning2">OsmAnd는 새 목적지로 데이터 파일을 복사하겠습니까?</string>
|
<string name="application_dir_change_warning2">OsmAnd에 새 목적지로 데이터 파일을 복사하겠습니까?</string>
|
||||||
<string name="copying_osmand_one_file_descr">새 목적지로 파일(%s)을 복사중...</string>
|
<string name="copying_osmand_one_file_descr">새 목적지로 파일(%s)을 복사중...</string>
|
||||||
<string name="copying_osmand_files_descr">새로운 목적지에 OsmAnd 데이터 파일을 복사중 (%s)</string>
|
<string name="copying_osmand_files_descr">새로운 목적지에 OsmAnd 데이터 파일을 복사중 (%s)</string>
|
||||||
<string name="copying_osmand_files">OsmAnd 데이터 파일을 복사중</string>
|
<string name="copying_osmand_files">OsmAnd 데이터 파일을 복사중</string>
|
||||||
|
@ -2035,8 +2035,6 @@
|
||||||
<string name="text_size">텍스트 크기</string>
|
<string name="text_size">텍스트 크기</string>
|
||||||
<string name="fav_point_dublicate">즐겨찾기 포인트 이름 중복</string>
|
<string name="fav_point_dublicate">즐겨찾기 포인트 이름 중복</string>
|
||||||
<string name="fav_point_dublicate_message">중복된 포인트 이름을 방지 하기 위해서 %1$s 에 즐겨찾기 포인트 이름을 변경합니다.</string>
|
<string name="fav_point_dublicate_message">중복된 포인트 이름을 방지 하기 위해서 %1$s 에 즐겨찾기 포인트 이름을 변경합니다.</string>
|
||||||
<string name="test_native_render">기본 렌더링 테스트</string>
|
|
||||||
<string name="test_native_render_msg">기본 렌더링으로 활동(activity)을 시작합니다</string>
|
|
||||||
<string name="use_native_render">기본 렌더링 사용</string>
|
<string name="use_native_render">기본 렌더링 사용</string>
|
||||||
<string name="use_native_render_descr">Java 대신 C++ 렌더링을 사용합니다</string>
|
<string name="use_native_render_descr">Java 대신 C++ 렌더링을 사용합니다</string>
|
||||||
<string name="print_route">경로 인쇄</string>
|
<string name="print_route">경로 인쇄</string>
|
||||||
|
@ -2091,4 +2089,9 @@
|
||||||
<string name="show_map">지도 표시</string>
|
<string name="show_map">지도 표시</string>
|
||||||
<string name="show_all">모두 표시</string>
|
<string name="show_all">모두 표시</string>
|
||||||
<string name="coordinates">좌표</string>
|
<string name="coordinates">좌표</string>
|
||||||
</resources>
|
<string name="error_avoid_specific_road">가장 가까운 도로를 찾을 수 없습니다</string>
|
||||||
|
<string name="use_opengl_render">Opengl 렌더링 사용</string>
|
||||||
|
<string name="use_opengl_render_descr">하드웨어로 가속된 opengl 렌더링 사용 (일부 장치에는 작동 하지 않을 수 있습니다)</string>
|
||||||
|
<string name="dismiss">해제</string>
|
||||||
|
<string name="everything_up_to_date">최신 자료</string>
|
||||||
|
</resources>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
<string name="dist_control_start">donya hich wafay bom niya, zhyan hich khoshi bom niya, mrdn jegay shanaziya</string>
|
<string name="dist_control_start">donya hich wafay bom niya, zhyan hich khoshi bom niya, mrdn jegay shanaziya</string>
|
||||||
<string name="local_indexes_cat_av">زانیاری دەنگ/ڤیدیۆ</string>
|
<string name="local_indexes_cat_av">زانیاری دەنگ/ڤیدیۆ</string>
|
||||||
|
|
|
@ -1471,7 +1471,7 @@
|
||||||
<string name="android_19_location_disabled">Pradedant Android 4.4 versija jūs nebegalėsite parsisųsti ir atnaujinti žemėlapių ankstesnėse saugojimo vietose (%s). Ar norite pakeisti saugyklos vietą ir į ją nukopijuoti visus failus?
|
<string name="android_19_location_disabled">Pradedant Android 4.4 versija jūs nebegalėsite parsisųsti ir atnaujinti žemėlapių ankstesnėse saugojimo vietose (%s). Ar norite pakeisti saugyklos vietą ir į ją nukopijuoti visus failus?
|
||||||
\n Pastaba: Seni failai išliks kur buvę (galima bus ištrinti rankiniu būdu).
|
\n Pastaba: Seni failai išliks kur buvę (galima bus ištrinti rankiniu būdu).
|
||||||
\n Pastaba: dalintis tais pačiais failais tarp OsmAnd ir OsmAnd+ nebus galima.</string>
|
\n Pastaba: dalintis tais pačiais failais tarp OsmAnd ir OsmAnd+ nebus galima.</string>
|
||||||
<string name="application_dir_change_warning2">OsmAnd gali pabandyti perkelti duomenis į naują saugyklą. Ar atlikti tai?</string>
|
<string name="application_dir_change_warning2">Ar norite, kad OsmAnd perkeltų duomenis ir į naują saugyklą?</string>
|
||||||
<string name="copying_osmand_one_file_descr">Kopijuojami failai (%/s) į naują saugojimo vietą...</string>
|
<string name="copying_osmand_one_file_descr">Kopijuojami failai (%/s) į naują saugojimo vietą...</string>
|
||||||
<string name="copying_osmand_files_descr">OsmAnd failai kopijuojami į naują vietą (%/s)</string>
|
<string name="copying_osmand_files_descr">OsmAnd failai kopijuojami į naują vietą (%/s)</string>
|
||||||
<string name="copying_osmand_files">Kopijuojami OsmAnd failai</string>
|
<string name="copying_osmand_files">Kopijuojami OsmAnd failai</string>
|
||||||
|
@ -1807,8 +1807,6 @@
|
||||||
<string name="local_index_description">Spustelėkite bet kurį elementą, norėdami gauti daugiau informacijos, paspauskite ir laikykite, norėdami išjungti arba ištrinti. Dabartiniai duomenys įrenginyje (%1$s laisva):</string>
|
<string name="local_index_description">Spustelėkite bet kurį elementą, norėdami gauti daugiau informacijos, paspauskite ir laikykite, norėdami išjungti arba ištrinti. Dabartiniai duomenys įrenginyje (%1$s laisva):</string>
|
||||||
<string name="print_route">Išspausdinti maršrutą</string>
|
<string name="print_route">Išspausdinti maršrutą</string>
|
||||||
<string name="fav_point_emoticons_message">Mes pakeitėme jūsų įsimintos vietos pavadinimą į %1$s, nes teksto su veidukais išsaugoti faile neįmanoma.</string>
|
<string name="fav_point_emoticons_message">Mes pakeitėme jūsų įsimintos vietos pavadinimą į %1$s, nes teksto su veidukais išsaugoti faile neįmanoma.</string>
|
||||||
<string name="test_native_render">Testuoti aparatinį atvaizdavimą</string>
|
|
||||||
<string name="test_native_render_msg">Pradeda veiklą su aparatiniu atvaizdavimu</string>
|
|
||||||
<string name="use_native_render">Naudoti aparatinį atvaizdavimą</string>
|
<string name="use_native_render">Naudoti aparatinį atvaizdavimą</string>
|
||||||
<string name="use_native_render_descr">Naudoti C++ vietoje Java atvaizdavimo</string>
|
<string name="use_native_render_descr">Naudoti C++ vietoje Java atvaizdavimo</string>
|
||||||
<string name="speed_limit_exceed">Greičio ribojimo viršijimo reikšmė</string>
|
<string name="speed_limit_exceed">Greičio ribojimo viršijimo reikšmė</string>
|
||||||
|
@ -1852,4 +1850,8 @@
|
||||||
<string name="show_map">RODYTI ŽEMĖLAPĮ</string>
|
<string name="show_map">RODYTI ŽEMĖLAPĮ</string>
|
||||||
<string name="show_all">RODYTI VISKĄ</string>
|
<string name="show_all">RODYTI VISKĄ</string>
|
||||||
<string name="coordinates">Koordinatės</string>
|
<string name="coordinates">Koordinatės</string>
|
||||||
</resources>
|
<string name="error_avoid_specific_road">Nerastas trumpiausias kelias</string>
|
||||||
|
<string name="use_opengl_render">Naudoti OpenGL vaizdavimą</string>
|
||||||
|
<string name="use_opengl_render_descr">Naudoti aparatinį OpenGL vaizdavimą (gali neveikti kai kurioje įrangoje)</string>
|
||||||
|
<string name="everything_up_to_date">Viskas atnaujinta</string>
|
||||||
|
</resources>
|
||||||
|
|
|
@ -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>
|
<resources><string name="plugins_screen">Spraudņu pārvaldnieks</string>
|
||||||
<string name="select_plugin_to_activate">Atzīmējiet spraudni, lai to aktivizētu (varētu būt nepieciešams OsmAnd restarts)</string>
|
<string name="select_plugin_to_activate">Atzīmējiet spraudni, lai to aktivizētu (varētu būt nepieciešams OsmAnd restarts)</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>
|
<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>
|
||||||
|
|
|
@ -1067,5 +1067,11 @@
|
||||||
<string name="download_files">Last ned</string>
|
<string name="download_files">Last ned</string>
|
||||||
<string name="osmo_use_https_descr">Bruk sikker forbindelse med server</string>
|
<string name="osmo_use_https_descr">Bruk sikker forbindelse med server</string>
|
||||||
<string name="osmo_use_https">Bruk https</string>
|
<string name="osmo_use_https">Bruk https</string>
|
||||||
<string name="application_dir_change_warning2">Skal OsmAnd forsøke å kopiere datafilene til det nye stedet?</string>
|
<string name="application_dir_change_warning2">Skal OsmAnd også kopiere datafilene til det nye stedet?</string>
|
||||||
</resources>
|
<string name="error_avoid_specific_road">Nærmeste vei ble ikke funnet</string>
|
||||||
|
<string name="home_button">Hjem</string>
|
||||||
|
<string name="map_update">Kart</string>
|
||||||
|
<string name="search_for">Søk etter</string>
|
||||||
|
<string name="show_map">VIS KART</string>
|
||||||
|
<string name="coordinates">Koordinater</string>
|
||||||
|
</resources>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
|
|
||||||
<string name="layer_map_appearance">Configureer scherm</string>
|
<string name="layer_map_appearance">Configureer scherm</string>
|
||||||
|
@ -1967,8 +1967,6 @@ Afghanistan, Albanie, Algerije, Andorra, Angola, Anguilla, Antigua en Barbuda, A
|
||||||
<string name="text_size">Tekstgrootte</string>
|
<string name="text_size">Tekstgrootte</string>
|
||||||
<string name="fav_point_dublicate_message">Favoriet bestaat al: de naam is veranderd in %1$s</string>
|
<string name="fav_point_dublicate_message">Favoriet bestaat al: de naam is veranderd in %1$s</string>
|
||||||
<string name="fav_point_dublicate">Favoriet met deze naam bestaat al</string>
|
<string name="fav_point_dublicate">Favoriet met deze naam bestaat al</string>
|
||||||
<string name="test_native_render">Test \"native weergave\"</string>
|
|
||||||
<string name="test_native_render_msg">Start activiteit met oorspronkelijke weergave</string>
|
|
||||||
<string name="use_native_render">Gebruik oorspronkelijke weergave</string>
|
<string name="use_native_render">Gebruik oorspronkelijke weergave</string>
|
||||||
<string name="use_native_render_descr">Gebruik C++ weergave in plaats van Java</string>
|
<string name="use_native_render_descr">Gebruik C++ weergave in plaats van Java</string>
|
||||||
<string name="fav_point_emoticons_message">Favoriet bewaard als %1s omdat vreemde tekens niet opgeslagen kunnen worden in een bestand.</string>
|
<string name="fav_point_emoticons_message">Favoriet bewaard als %1s omdat vreemde tekens niet opgeslagen kunnen worden in een bestand.</string>
|
||||||
|
|
|
@ -11,4 +11,44 @@
|
||||||
<string name="poi_seafood">Sklep z owocami morza</string>
|
<string name="poi_seafood">Sklep z owocami morza</string>
|
||||||
<string name="poi_confectionery">Cukiernia</string>
|
<string name="poi_confectionery">Cukiernia</string>
|
||||||
<string name="poi_ice_cream">Lodziarnia</string>
|
<string name="poi_ice_cream">Lodziarnia</string>
|
||||||
|
<string name="poi_palaeontological_site">Stanowisko paleontologiczne</string>
|
||||||
|
|
||||||
|
<string name="poi_supermarket">Supermarket</string>
|
||||||
|
<string name="poi_shop_tea">Sklep herbaciany</string>
|
||||||
|
<string name="poi_dairy">Sklep z nabiałem</string>
|
||||||
|
<string name="poi_vending_machine">Automat sprzedający</string>
|
||||||
|
|
||||||
|
<string name="poi_bookshop">Księgarnia</string>
|
||||||
|
<string name="poi_bicycle_shop">Sklep rowerowy</string>
|
||||||
|
<string name="poi_antiques_shop">Sklep z antykami</string>
|
||||||
|
<string name="poi_anime_shop">Sklep zoologiczny</string>
|
||||||
|
<string name="poi_art_shop">Sklep ze sztuką</string>
|
||||||
|
<string name="poi_baby_goods">Towary dziecięce</string>
|
||||||
|
<string name="poi_bag_shop">Sklep z torbami</string>
|
||||||
|
<string name="poi_bathroom_furnishing_shop">Wyposażenie łazienek</string>
|
||||||
|
<string name="poi_bed_shop">Wyposażenie pokoji</string>
|
||||||
|
<string name="poi_boutique">Butik</string>
|
||||||
|
<string name="poi_carpet_shop">Sklep z dywanami</string>
|
||||||
|
<string name="poi_chemist_shop">Sklep z narkotykami</string>
|
||||||
|
<string name="poi_clothes_shop">Sklep odzieżowy</string>
|
||||||
|
<string name="poi_children_clothes_shop">Sklep odzieżowy dla dzieci</string>
|
||||||
|
<string name="poi_shoes">Sklep obuwniczy</string>
|
||||||
|
<string name="poi_computer_shop">Sklep komputerowy</string>
|
||||||
|
<string name="poi_curtain_shop">Sklep z zasłonami</string>
|
||||||
|
<string name="poi_fabric_shop">Sklep z firankami</string>
|
||||||
|
<string name="poi_bedding_shop">Sklep z pościelą</string>
|
||||||
|
<string name="poi_dive_shop">Sprzęt do nurkowania</string>
|
||||||
|
<string name="poi_copyshop">Punkt ksero i drukowania</string>
|
||||||
|
<string name="poi_doityourself_shop">Sklep dla majsterkowiczów</string>
|
||||||
|
<string name="poi_erotic_shop">Sklep erotyczny</string>
|
||||||
|
<string name="poi_fishing_shop">Sklep wędkarski</string>
|
||||||
|
<string name="poi_florist">Kwiaciarnia</string>
|
||||||
|
<string name="poi_frame_shop">Sklep z ramami do obrazów</string>
|
||||||
|
<string name="poi_furniture_shop">Sklep meblowy</string>
|
||||||
|
<string name="poi_garden_centre">Centrum ogrodnicze</string>
|
||||||
|
<string name="poi_gas_shop">Magazyn gazu płynnego</string>
|
||||||
|
<string name="poi_general_shop">Magazyn</string>
|
||||||
|
<string name="poi_gift_shop">Sklep pamiątkarski</string>
|
||||||
|
<string name="poi_glaziery_shop">Szklarz</string>
|
||||||
|
<string name="poi_hardware_shop">Sklep z narzędziami</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -1556,7 +1556,7 @@ Afganistan, Afryka Południowa, Albania, Algieria, Andora, Angola, Anguilla, Ant
|
||||||
<string name="copying_osmand_one_file_descr">Kopiowanie pliku (%s) do nowej lokalizacji...</string>
|
<string name="copying_osmand_one_file_descr">Kopiowanie pliku (%s) do nowej lokalizacji...</string>
|
||||||
<string name="copying_osmand_files_descr">Kopiowanie plików OsmAnd do nowej lokalizacji (%s)</string>
|
<string name="copying_osmand_files_descr">Kopiowanie plików OsmAnd do nowej lokalizacji (%s)</string>
|
||||||
<string name="copying_osmand_files">Kopiowanie plików OsmAnd</string>
|
<string name="copying_osmand_files">Kopiowanie plików OsmAnd</string>
|
||||||
<string name="application_dir_change_warning2">Czy chcesz aby OsmAnd spróbował przenieść dane do nowej lokalizacji?</string>
|
<string name="application_dir_change_warning2">Czy chcesz aby OsmAnd równierz skopiował dane do nowej lokalizacji?</string>
|
||||||
<string name="android_19_location_disabled">Od wersji 4.4 KitKat nie można pobierać ani aktualizować map w poprzedniej lokalizacji (%s). Czy chcesz ją zmienić na lokalizację dozwoloną i skopiować do niej wszystkie pliki?
|
<string name="android_19_location_disabled">Od wersji 4.4 KitKat nie można pobierać ani aktualizować map w poprzedniej lokalizacji (%s). Czy chcesz ją zmienić na lokalizację dozwoloną i skopiować do niej wszystkie pliki?
|
||||||
\n Uwaga 1: Twoje stare pliki zostaną nienaruszone (mogą być usunięte manualnie).
|
\n Uwaga 1: Twoje stare pliki zostaną nienaruszone (mogą być usunięte manualnie).
|
||||||
\n Uwaga 2: W nowej lokalizacji nie będzie możliwe współdzielenie tych samych plików pomiędzy OsmAnd i OsmAnd+.</string>
|
\n Uwaga 2: W nowej lokalizacji nie będzie możliwe współdzielenie tych samych plików pomiędzy OsmAnd i OsmAnd+.</string>
|
||||||
|
@ -1910,8 +1910,6 @@ Afganistan, Afryka Południowa, Albania, Algieria, Andora, Angola, Anguilla, Ant
|
||||||
<string name="text_size">Rozmiar tekstu</string>
|
<string name="text_size">Rozmiar tekstu</string>
|
||||||
<string name="fav_point_dublicate">Zduplikowana nazwa ulubionego punktu</string>
|
<string name="fav_point_dublicate">Zduplikowana nazwa ulubionego punktu</string>
|
||||||
<string name="fav_point_dublicate_message">Zmieniliśmy nazwa twojego ulubionego punktu na %1$s w celu uniknięcia duplikatów nazw.</string>
|
<string name="fav_point_dublicate_message">Zmieniliśmy nazwa twojego ulubionego punktu na %1$s w celu uniknięcia duplikatów nazw.</string>
|
||||||
<string name="test_native_render">Test renderowania natywnego</string>
|
|
||||||
<string name="test_native_render_msg">Rozpocznij aktywność z renderowaniem natywnym</string>
|
|
||||||
<string name="use_native_render">Użyj renderowania natywnego</string>
|
<string name="use_native_render">Użyj renderowania natywnego</string>
|
||||||
<string name="use_native_render_descr">Użyj kodu renderowania C++ zamiast Java</string>
|
<string name="use_native_render_descr">Użyj kodu renderowania C++ zamiast Java</string>
|
||||||
<string name="speed_limit_exceed">Tolerancja ograniczenia prędkości</string>
|
<string name="speed_limit_exceed">Tolerancja ograniczenia prędkości</string>
|
||||||
|
@ -1951,4 +1949,15 @@ Afganistan, Afryka Południowa, Albania, Algieria, Andora, Angola, Anguilla, Ant
|
||||||
<string name="osmo_use_https_descr">Użyj bezpiecznego połączenia z serwerem</string>
|
<string name="osmo_use_https_descr">Użyj bezpiecznego połączenia z serwerem</string>
|
||||||
<string name="osmo_use_https">Użyj https</string>
|
<string name="osmo_use_https">Użyj https</string>
|
||||||
<string name="advanced_settings">Zaawansowane</string>
|
<string name="advanced_settings">Zaawansowane</string>
|
||||||
</resources>
|
<string name="home_button">Dom</string>
|
||||||
|
<string name="map_update">Mapy</string>
|
||||||
|
<string name="search_for">Wyszukaj</string>
|
||||||
|
<string name="show_map">POKAŻ MAPĘ</string>
|
||||||
|
<string name="show_all">POKAŻ WSZYSTKIE</string>
|
||||||
|
<string name="coordinates">Współrzędne</string>
|
||||||
|
<string name="dismiss">Odwołać</string>
|
||||||
|
<string name="everything_up_to_date">Wszystko jest aktualne</string>
|
||||||
|
<string name="use_opengl_render">Użyj renderowania OpenGL</string>
|
||||||
|
<string name="use_opengl_render_descr">Użyj renderowania z akceleracją OpenGL (może nie działać na niektórych urządzeniach)</string>
|
||||||
|
<string name="error_avoid_specific_road">Najbliższa droga nie została znaleziona</string>
|
||||||
|
</resources>
|
||||||
|
|
|
@ -582,12 +582,12 @@
|
||||||
<string name="poi_seamark_light_float"/>
|
<string name="poi_seamark_light_float"/>
|
||||||
<string name="poi_seamark_light_vessel"/>
|
<string name="poi_seamark_light_vessel"/>
|
||||||
<string name="poi_seamark_mooring">Причал</string>
|
<string name="poi_seamark_mooring">Причал</string>
|
||||||
<string name="poi_seamark_notice"/>
|
<string name="poi_seamark_notice">Уведомление</string>
|
||||||
<string name="poi_seamark_pile"/>
|
<string name="poi_seamark_pile"/>
|
||||||
<string name="poi_seamark_radar_transponder"/>
|
<string name="poi_seamark_radar_transponder"/>
|
||||||
<string name="poi_seamark_radio_station"/>
|
<string name="poi_seamark_radio_station">Радиостанция</string>
|
||||||
<string name="poi_seamark_signal_station_traffic"/>
|
<string name="poi_seamark_signal_station_traffic"/>
|
||||||
<string name="poi_seamark_signal_station_warning"/>
|
<string name="poi_seamark_signal_station_warning">Сигнал опасности</string>
|
||||||
<string name="poi_seamark_small_craft_facility"/>
|
<string name="poi_seamark_small_craft_facility"/>
|
||||||
<string name="poi_seamark_topmark"/>
|
<string name="poi_seamark_topmark"/>
|
||||||
<string name="poi_seamark_rock"/>
|
<string name="poi_seamark_rock"/>
|
||||||
|
@ -601,12 +601,23 @@
|
||||||
<string name="poi_military_naval_base">Военно-морская база</string>
|
<string name="poi_military_naval_base">Военно-морская база</string>
|
||||||
<string name="poi_military_nuclear_explosion_site">Место ядерного взрыва</string>
|
<string name="poi_military_nuclear_explosion_site">Место ядерного взрыва</string>
|
||||||
<string name="poi_city">Город</string>
|
<string name="poi_city">Город</string>
|
||||||
<string name="poi_town">Город</string>
|
<string name="poi_town">Город (небольшой)</string>
|
||||||
<string name="poi_village">Деревня</string>
|
<string name="poi_village">Деревня</string>
|
||||||
<string name="poi_hamlet">Деревня</string>
|
<string name="poi_hamlet">Деревня (небольшая)</string>
|
||||||
<string name="poi_isolated_dwelling">Хутор</string>
|
<string name="poi_isolated_dwelling">Хутор</string>
|
||||||
<string name="poi_locality">Урочище</string>
|
<string name="poi_locality">Урочище</string>
|
||||||
|
|
||||||
<string name="poi_palaeontological_site">Палеонтологический сайт</string>
|
<string name="poi_palaeontological_site">Палеонтологический сайт</string>
|
||||||
|
|
||||||
|
<string name="poi_ridge">Горный хребет</string>
|
||||||
|
<string name="poi_glacier">Ледник</string>
|
||||||
|
<string name="poi_river">Река</string>
|
||||||
|
<string name="poi_stream">Ручей</string>
|
||||||
|
<string name="poi_military">Военная зона</string>
|
||||||
|
<string name="poi_pier">Пирс</string>
|
||||||
|
<string name="poi_observatory">Обсерватория</string>
|
||||||
|
<string name="poi_astronomical_observatory">Астрономическая обсерватория</string>
|
||||||
|
<string name="poi_hot_spring">Горячий источник</string>
|
||||||
|
<string name="poi_geyser">Гейзер</string>
|
||||||
|
<string name="poi_leisure_track">Спортивная дорожка</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -125,7 +125,7 @@
|
||||||
<string name="online_map_settings_descr">Настройки источников онлайн карт и слоёв</string>
|
<string name="online_map_settings_descr">Настройки источников онлайн карт и слоёв</string>
|
||||||
<string name="map_settings">Настройки карты</string>
|
<string name="map_settings">Настройки карты</string>
|
||||||
<string name="map_settings_descr">Настроить отображение карты</string>
|
<string name="map_settings_descr">Настроить отображение карты</string>
|
||||||
<string name="osmand_rastermaps_plugin_description">Этот плагин позволяет использовать различные источники онлайн карты, а также подготовленные растровые карты в качестве базовой карты или подложки/покрытия. Карты могут быть подготовлены на компьютере и скопированы в папку osmand на scard.</string>
|
<string name="osmand_rastermaps_plugin_description">Этот плагин позволяет использовать различные источники онлайн карт, а также подготовленные растровые карты в качестве базовой карты или подложки/покрытия. Карты могут быть подготовлены на компьютере и скопированы в папку данных OsmAnd.</string>
|
||||||
<string name="osmand_background_plugin_description">Этот плагин предоставляет навигацию и запись маршрутов в энергосберегающем режиме. Плагин работает в фоновом режиме и периодически активизирует GPS для записи маршрута или воспроизведения голосовых команд.</string>
|
<string name="osmand_background_plugin_description">Этот плагин предоставляет навигацию и запись маршрутов в энергосберегающем режиме. Плагин работает в фоновом режиме и периодически активизирует GPS для записи маршрута или воспроизведения голосовых команд.</string>
|
||||||
<string name="osmand_accessibility_description">Этот плагин содержит настройки для дополнительных возможностей (accessibility).</string>
|
<string name="osmand_accessibility_description">Этот плагин содержит настройки для дополнительных возможностей (accessibility).</string>
|
||||||
<string name="extra_settings">Дополнительные настройки</string>
|
<string name="extra_settings">Дополнительные настройки</string>
|
||||||
|
@ -440,7 +440,7 @@
|
||||||
<string name="amenity_type_emergency">Экстренные службы</string>
|
<string name="amenity_type_emergency">Экстренные службы</string>
|
||||||
<string name="amenity_type_entertainment">Развлечения</string>
|
<string name="amenity_type_entertainment">Развлечения</string>
|
||||||
<string name="amenity_type_finance">Финансы</string>
|
<string name="amenity_type_finance">Финансы</string>
|
||||||
<string name="amenity_type_geocache">Геокэшинг</string>
|
<string name="amenity_type_geocache">Геокэшинг (игра)</string>
|
||||||
<string name="amenity_type_healthcare">Здоровье</string>
|
<string name="amenity_type_healthcare">Здоровье</string>
|
||||||
<string name="amenity_type_historic">Историческое</string>
|
<string name="amenity_type_historic">Историческое</string>
|
||||||
<string name="amenity_type_landuse">Землепользование</string>
|
<string name="amenity_type_landuse">Землепользование</string>
|
||||||
|
@ -1411,7 +1411,7 @@
|
||||||
<string name="routing_attr_weight_description">Укажите массу автомобиля разрешенную на маршрутах</string>
|
<string name="routing_attr_weight_description">Укажите массу автомобиля разрешенную на маршрутах</string>
|
||||||
|
|
||||||
<string name="map_widget_map_rendering">Отображение карты</string>
|
<string name="map_widget_map_rendering">Отображение карты</string>
|
||||||
<string name="amenity_type_seamark">Навигационный знак</string>
|
<string name="amenity_type_seamark">Навигационные знаки (водоемы)</string>
|
||||||
<string name="disable_complex_routing">Отключить сложную маршрутизацию</string>
|
<string name="disable_complex_routing">Отключить сложную маршрутизацию</string>
|
||||||
<string name="speech_rate_descr">Указать скорость произношения для TTS</string>
|
<string name="speech_rate_descr">Указать скорость произношения для TTS</string>
|
||||||
<string name="guidance_preferences_descr">Установки навигации</string>
|
<string name="guidance_preferences_descr">Установки навигации</string>
|
||||||
|
@ -1776,8 +1776,7 @@
|
||||||
<string name="traffic_warning">Ограничение скорости</string>
|
<string name="traffic_warning">Ограничение скорости</string>
|
||||||
<string name="speed_limit_exceed_message">Выберите допустимое значение превышения скорости выше которого вы получите голосовое предупреждение.</string>
|
<string name="speed_limit_exceed_message">Выберите допустимое значение превышения скорости выше которого вы получите голосовое предупреждение.</string>
|
||||||
<string name="speed_limit_exceed">Допустимое значение превышения скорости</string>
|
<string name="speed_limit_exceed">Допустимое значение превышения скорости</string>
|
||||||
<string name="test_native_render">Тест нативной визуализации</string>
|
<string name="fav_point_emoticons_message">Название избранной точки было изменено на %1$s для возможности сохранения строки со смайликом в файл.</string>
|
||||||
<string name="fav_point_emoticons_message">Название избранной точки было изменено на %1$s для возможности сохранения строки со смайликом в файл.</string>
|
|
||||||
<string name="print_route">Печать маршрута</string>
|
<string name="print_route">Печать маршрута</string>
|
||||||
<string name="fav_point_dublicate">Дублирование названия избранной точки</string>
|
<string name="fav_point_dublicate">Дублирование названия избранной точки</string>
|
||||||
<string name="fav_point_dublicate_message">Название избранной точки %1$s было изменено для предотвращения дублирования имен.</string>
|
<string name="fav_point_dublicate_message">Название избранной точки %1$s было изменено для предотвращения дублирования имен.</string>
|
||||||
|
@ -1786,8 +1785,7 @@
|
||||||
<string name="text_size_descr">Установите размер текста для карты.</string>
|
<string name="text_size_descr">Установите размер текста для карты.</string>
|
||||||
<string name="text_size">Размер текста</string>
|
<string name="text_size">Размер текста</string>
|
||||||
<string name="local_index_description">Нажмите на любой элемент списка для просмотра более подробной информации, нажмите и удерживайте, чтобы поместить в архив или удалить. Текущие данные на устройстве (%1$s свободно):</string>
|
<string name="local_index_description">Нажмите на любой элемент списка для просмотра более подробной информации, нажмите и удерживайте, чтобы поместить в архив или удалить. Текущие данные на устройстве (%1$s свободно):</string>
|
||||||
<string name="test_native_render_msg">Запустить activity с нативной визуализацией</string>
|
<string name="osmo_device_not_found">Устройство не обнаружено</string>
|
||||||
<string name="osmo_device_not_found">Устройство не обнаружено</string>
|
|
||||||
<string name="anonymous_user">Анонимный пользователь</string>
|
<string name="anonymous_user">Анонимный пользователь</string>
|
||||||
<string name="osmo_no_connection_msg">Сервис OsMo не доступен:\n- проверьте соединение;\n- проверьте настройки;\n- проверьте наш Twitter: https://twitter.com/OsMomobi</string>
|
<string name="osmo_no_connection_msg">Сервис OsMo не доступен:\n- проверьте соединение;\n- проверьте настройки;\n- проверьте наш Twitter: https://twitter.com/OsMomobi</string>
|
||||||
<string name="anonymous_user_hint">Анонимному пользователю недоступно:\n- создание групп;\n- синхронизация групп и устройств с сервером;\n- управление группами и устройствами в личном кабинете.</string>
|
<string name="anonymous_user_hint">Анонимному пользователю недоступно:\n- создание групп;\n- синхронизация групп и устройств с сервером;\n- управление группами и устройствами в личном кабинете.</string>
|
||||||
|
@ -1820,4 +1818,7 @@
|
||||||
<string name="advanced_settings">Расширенные</string>
|
<string name="advanced_settings">Расширенные</string>
|
||||||
<string name="map_update">Карты</string>
|
<string name="map_update">Карты</string>
|
||||||
<string name="coordinates">Координаты</string>
|
<string name="coordinates">Координаты</string>
|
||||||
</resources>
|
<string name="home_button">Дом</string>
|
||||||
|
<string name="search_for">Поиск</string>
|
||||||
|
<string name="everything_up_to_date">Всё обновлено</string>
|
||||||
|
</resources>
|
||||||
|
|
328
OsmAnd/res/values-sc/phrases.xml
Normal file
328
OsmAnd/res/values-sc/phrases.xml
Normal file
|
@ -0,0 +1,328 @@
|
||||||
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
|
<resources><string name="poi_palaeontological_site">Giassu paleontològicu</string>
|
||||||
|
|
||||||
|
<string name="poi_bakery">Furru de su pane</string>
|
||||||
|
<string name="poi_alcohol">Alcòlicos</string>
|
||||||
|
<string name="poi_convenience">Drogheria</string>
|
||||||
|
<string name="poi_mall">Tzentru cummertziale</string>
|
||||||
|
<string name="poi_beverages">Butega de bèvidas</string>
|
||||||
|
<string name="poi_butcher">Bancu</string>
|
||||||
|
<string name="poi_deli">Gastronomia</string>
|
||||||
|
<string name="poi_shop_farm">Butega prodotos de fatoria</string>
|
||||||
|
<string name="poi_greengrocer">Bendidore de frùtora</string>
|
||||||
|
<string name="poi_seafood">Pischeria</string>
|
||||||
|
<string name="poi_confectionery">Butega de durches</string>
|
||||||
|
<string name="poi_ice_cream">Gelateria</string>
|
||||||
|
<string name="poi_supermarket">Supermercadu</string>
|
||||||
|
<string name="poi_shop_tea">Butega de su té</string>
|
||||||
|
<string name="poi_dairy">Lateria</string>
|
||||||
|
<string name="poi_vending_machine">Distribudore automàticu</string>
|
||||||
|
|
||||||
|
<string name="poi_bookshop">Libreria</string>
|
||||||
|
<string name="poi_bicycle_shop">Butega de bitziclètas</string>
|
||||||
|
<string name="poi_anime_shop">Butega de ànime</string>
|
||||||
|
<string name="poi_antiques_shop">Anticuariadu</string>
|
||||||
|
<string name="poi_art_shop">Butega d\'arte</string>
|
||||||
|
<string name="poi_baby_goods">Butega pro pitzinnos</string>
|
||||||
|
<string name="poi_bag_shop">Valigeria</string>
|
||||||
|
<string name="poi_bathroom_furnishing_shop">Arredu bagnu</string>
|
||||||
|
<string name="poi_bed_shop">Arredu aposentu de letu</string>
|
||||||
|
<string name="poi_boutique">Butega de moda</string>
|
||||||
|
<string name="poi_carpet_shop">Butega de tapetes</string>
|
||||||
|
<string name="poi_chemist_shop">Potecaria</string>
|
||||||
|
<string name="poi_clothes_shop">Bestimenta</string>
|
||||||
|
<string name="poi_children_clothes_shop">Bestimenta pro pitzinnos</string>
|
||||||
|
<string name="poi_shoes">Butega de iscarpas</string>
|
||||||
|
<string name="poi_computer_shop">Butega de informàtica</string>
|
||||||
|
<string name="poi_copyshop">Copisteria</string>
|
||||||
|
<string name="poi_curtain_shop">Butega pro su campègiu</string>
|
||||||
|
<string name="poi_fabric_shop">Butega de drapègios</string>
|
||||||
|
<string name="poi_bedding_shop">Butega de banitas</string>
|
||||||
|
<string name="poi_dive_shop">Butega de artìculos pro imberghidura</string>
|
||||||
|
<string name="poi_doityourself_shop">Butega de artìculos pro sa domo</string>
|
||||||
|
<string name="poi_erotic_shop">Sexy shop</string>
|
||||||
|
<string name="poi_fishing_shop">Butega pro sa pisca</string>
|
||||||
|
<string name="poi_florist">Froraju</string>
|
||||||
|
<string name="poi_frame_shop">Curnisas</string>
|
||||||
|
<string name="poi_furniture_shop">Butega de mòbiles</string>
|
||||||
|
<string name="poi_garden_centre">Artìculos pro su giardinu</string>
|
||||||
|
<string name="poi_gas_shop">Butega de gas lìcuidu</string>
|
||||||
|
<string name="poi_general_shop">Empòriu</string>
|
||||||
|
<string name="poi_gift_shop">Butega de donos</string>
|
||||||
|
<string name="poi_glaziery_shop">Bidreria</string>
|
||||||
|
<string name="poi_hardware_shop">Ferramenta</string>
|
||||||
|
<string name="poi_hearing_aids_shop">Butega aparitzos acùsticos</string>
|
||||||
|
<string name="poi_herbalist">Erboristeria</string>
|
||||||
|
<string name="poi_hifi_shop">Butega HiFi</string>
|
||||||
|
<string name="poi_hunting_shop">Atretzadura pro cassa e pisca</string>
|
||||||
|
<string name="poi_interior_decoration_shop">Butega de decoradura d\'intèrnos</string>
|
||||||
|
<string name="poi_jewelry_shop">Butega de prendas</string>
|
||||||
|
<string name="poi_kitchen_shop">Artìculos pro sa coghina</string>
|
||||||
|
<string name="poi_mobile_phone_shop">Butega de telefonia mòbile</string>
|
||||||
|
<string name="poi_motorcycle_shop">Butega de mototzicletas</string>
|
||||||
|
<string name="poi_musical_instrument_shop">Istrumentos musicales</string>
|
||||||
|
<string name="poi_newsagent_shop">Agentzia de imprenta</string>
|
||||||
|
<string name="poi_optician_shop">Optometrista</string>
|
||||||
|
<string name="poi_organic_shop">Alimentos biològicos</string>
|
||||||
|
<string name="poi_outdoor_shop">Artìculos pro s\'atividade a s\'abertu</string>
|
||||||
|
<string name="poi_paint_shop">Butega de artìculos pro sa pintadura</string>
|
||||||
|
<string name="poi_pet_shop">Butega de animales domèsticos</string>
|
||||||
|
<string name="poi_radiotechnics_shop">Butega pro radiotècnica</string>
|
||||||
|
<string name="poi_second_hand">Butega de cosas de segunda manu</string>
|
||||||
|
<string name="poi_ship_chandler">Butega de nàutica</string>
|
||||||
|
<string name="poi_sports_shop">Artìculos isportivos</string>
|
||||||
|
<string name="poi_stationery_shop">Butega pro s\'ufìtziu</string>
|
||||||
|
<string name="poi_ticket_shop">Billeteria</string>
|
||||||
|
<string name="poi_tobacco_shop">Istancu</string>
|
||||||
|
<string name="poi_toys_shop">Butega de gioghitos</string>
|
||||||
|
<string name="poi_vacuum_cleaner_shop">Butega de suspidoras</string>
|
||||||
|
<string name="poi_video_shop">Videonolègiu</string>
|
||||||
|
<string name="poi_electronics_shop">Butega de eletrònica</string>
|
||||||
|
<string name="poi_car_shop">Butega de automòbiles</string>
|
||||||
|
<string name="poi_car_parts_shop">Autoricàmbios</string>
|
||||||
|
<string name="poi_atv_shop">Butega de quad</string>
|
||||||
|
<string name="poi_cosmetics_shop">Butega de bellettos</string>
|
||||||
|
<string name="poi_marketplace">Mercadu</string>
|
||||||
|
<string name="poi_police">Politzia</string>
|
||||||
|
<string name="poi_fire_station">Pompieres</string>
|
||||||
|
<string name="poi_emergency_phone">Telèfonu de emergèntzia</string>
|
||||||
|
<string name="poi_fire_hydrant">Idrante</string>
|
||||||
|
<string name="poi_fire_extinguisher">Istudadore</string>
|
||||||
|
<string name="poi_ses_station">Istatzione \"protezione civile\"</string>
|
||||||
|
<string name="poi_emergency_access_point">Logu de intrada de emergèntzia</string>
|
||||||
|
|
||||||
|
<string name="poi_ford">Badu</string>
|
||||||
|
<string name="poi_mountain_pass">Coladòrgiu montanu</string>
|
||||||
|
<string name="poi_gate">Ponte</string>
|
||||||
|
<string name="poi_city_wall">Murallas de sa tzitade</string>
|
||||||
|
<string name="poi_lift_gate">Ponte levatòiu</string>
|
||||||
|
<string name="poi_toll_booth">Casellu</string>
|
||||||
|
<string name="poi_traffic_calming_bump">Dossu</string>
|
||||||
|
<string name="poi_traffic_calming_hump">Dossu longu</string>
|
||||||
|
<string name="poi_traffic_calming_chicane">Chicane</string>
|
||||||
|
<string name="poi_traffic_signals">Lughe de stop</string>
|
||||||
|
|
||||||
|
<string name="poi_car_repair">Mecànicu</string>
|
||||||
|
<string name="poi_service_tyres">Gommista</string>
|
||||||
|
<string name="poi_vehicle_inspection">Tzentru revisiones</string>
|
||||||
|
<string name="poi_parking">Parchègiu</string>
|
||||||
|
<string name="poi_motorcycle_parking">Parchègiu pro mototzicletas</string>
|
||||||
|
<string name="poi_parking_entrance">Intrada parchègiu</string>
|
||||||
|
<string name="poi_garages">Garàgiu</string>
|
||||||
|
|
||||||
|
<string name="poi_public_transport_platform">Firmada trasportu pùblicu</string>
|
||||||
|
<string name="poi_public_transport_platform_bus">Firmada àutobus</string>
|
||||||
|
<string name="poi_public_transport_platform_trolleybus">Firmada filobus</string>
|
||||||
|
<string name="poi_bus_stop">Firmada àutobus (disusadu)</string>
|
||||||
|
<string name="poi_public_transport_platform_tram">Firmada tram</string>
|
||||||
|
<string name="poi_tram_stop">Firmada tram (disusada)</string>
|
||||||
|
<string name="poi_public_transport_station">Istatzione trasportu pùblicu</string>
|
||||||
|
<string name="poi_bus_station">Istatzione bus (disusadu)</string>
|
||||||
|
<string name="poi_railway_station">Istatzione de sos trenos</string>
|
||||||
|
<string name="poi_railway_platform">Piattaredda ferroviària (disusasu)</string>
|
||||||
|
<string name="poi_railway_halt">Firmada de sos trenos (disusada)</string>
|
||||||
|
<string name="poi_subway_entrance">Intrada de sa metropolitana</string>
|
||||||
|
<string name="poi_subway_station">Istatzione de sa metropolitana</string>
|
||||||
|
<string name="poi_taxi">Postèggiu de sos taxi</string>
|
||||||
|
|
||||||
|
<string name="poi_airport">Aeroportu</string>
|
||||||
|
<string name="poi_helipad">Eliportu</string>
|
||||||
|
<string name="poi_runway">Pista d\'aterazu</string>
|
||||||
|
<string name="poi_slipway">Lassinadòrju</string>
|
||||||
|
<string name="poi_lighthouse">Faru</string>
|
||||||
|
|
||||||
|
<string name="poi_bicycle_parking">Parchègiu bitzicletas</string>
|
||||||
|
|
||||||
|
<string name="poi_aerialway_gondola">Gondola</string>
|
||||||
|
<string name="poi_aerialway_station">Istatzione sciovia</string>
|
||||||
|
<string name="poi_aerialway_cable_car">Funivia</string>
|
||||||
|
<string name="poi_aerialway_chair_lift">Ascensore carrotzina</string>
|
||||||
|
<string name="poi_aerialway_t_bar">Sciovia a àncora</string>
|
||||||
|
<string name="poi_aerialway_j_bar">Sciovia a J</string>
|
||||||
|
<string name="poi_aerialway_platter">Sciovia a piatellu</string>
|
||||||
|
<string name="poi_aerialway_mixed_lift">Sciovia ammesturada</string>
|
||||||
|
<string name="poi_aerialway_drag_lift">Sciovia</string>
|
||||||
|
<string name="poi_aerialway_rope_tow">Sciovia a fune</string>
|
||||||
|
<string name="poi_aerialway_goods">Sciovia pro ogetos</string>
|
||||||
|
<string name="poi_aerialway_magic_carpet">Sciovia a tapete</string>
|
||||||
|
|
||||||
|
<string name="poi_tunnel">Galleria</string>
|
||||||
|
<string name="poi_bridge">Ponte</string>
|
||||||
|
|
||||||
|
<string name="poi_speed_camera">Autovelox</string>
|
||||||
|
<string name="poi_turning_circle">Retunda pro furriada de martza</string>
|
||||||
|
<string name="poi_water_well">Putzu</string>
|
||||||
|
<string name="poi_water_works">Impiantu ìdricu</string>
|
||||||
|
<string name="poi_wastewater_plant">Depuradore de sas abbas</string>
|
||||||
|
<string name="poi_water_tower">Turre ìdrica</string>
|
||||||
|
<string name="poi_dam">Diga</string>
|
||||||
|
<string name="poi_water_mill">Mulinu ad abba</string>
|
||||||
|
|
||||||
|
<string name="poi_power_transformer">Trasformadore</string>
|
||||||
|
<string name="poi_power_plant">Tzentrale elètrica</string>
|
||||||
|
<string name="poi_post_office">Ufìtziu postale</string>
|
||||||
|
<string name="poi_telephone">Telèfonu</string>
|
||||||
|
<string name="poi_communication_tower">Turre telecomunicatziones</string>
|
||||||
|
<string name="poi_telephone_exchange">Tzentralinu telefònicu</string>
|
||||||
|
|
||||||
|
<string name="poi_astronomical_observatory">Osservatòriu astronòmicu</string>
|
||||||
|
<string name="poi_construction">Fraigada</string>
|
||||||
|
<string name="poi_works">Fàbrica</string>
|
||||||
|
<string name="poi_adit">Intrada de una galleria minerària</string>
|
||||||
|
<string name="poi_petroleum_well">Putzu petrolìferu</string>
|
||||||
|
<string name="poi_survey_point">Puntu geodèticu</string>
|
||||||
|
<string name="poi_windmill">Mulinu a bentu</string>
|
||||||
|
<string name="poi_quarry">Cava</string>
|
||||||
|
<string name="poi_vineyard">Bìngia</string>
|
||||||
|
<string name="poi_orchard">Fruttedu</string>
|
||||||
|
<string name="poi_salt_pond">Salina</string>
|
||||||
|
<string name="poi_cricket_nets">Campu de cricket inghiriadu dae retzas</string>
|
||||||
|
|
||||||
|
<string name="poi_driving_school">Iscola de ghia</string>
|
||||||
|
<string name="poi_school">Iscola</string>
|
||||||
|
<string name="poi_college">Collègiu</string>
|
||||||
|
<string name="poi_university">Universidade</string>
|
||||||
|
|
||||||
|
<string name="poi_courthouse">Tribunale</string>
|
||||||
|
<string name="poi_prison">Càrtzere</string>
|
||||||
|
<string name="poi_register_office">Anàgrafe</string>
|
||||||
|
<string name="poi_embassy">Ambassada</string>
|
||||||
|
<string name="poi_government">Ufìtziu pùblicu</string>
|
||||||
|
<string name="poi_bailiff">Ufitziale giuditziàriu</string>
|
||||||
|
<string name="poi_prosecutor">Pùblicu ministeru</string>
|
||||||
|
<string name="poi_migration">Ufìtziu migratzione</string>
|
||||||
|
<string name="poi_tax_inspection">Guàrdia de finàntzia</string>
|
||||||
|
<string name="poi_administrative_office">Ufìtziu amministrativu</string>
|
||||||
|
<string name="poi_city">Tzitade cabu-de-logu de provìntzia</string>
|
||||||
|
<string name="poi_town">Tzitade</string>
|
||||||
|
<string name="poi_village">Bidda</string>
|
||||||
|
<string name="poi_hamlet">Bidditzolu</string>
|
||||||
|
<string name="poi_isolated_dwelling">Domo/os isolada/as</string>
|
||||||
|
<string name="poi_suburb">Apendìtziu</string>
|
||||||
|
<string name="poi_neighbourhood">Bighinadu</string>
|
||||||
|
<string name="poi_locality">Localidade</string>
|
||||||
|
|
||||||
|
<string name="poi_pharmacy">Potecaria</string>
|
||||||
|
<string name="poi_hospital">Ospidale</string>
|
||||||
|
<string name="poi_doctors">Dutore</string>
|
||||||
|
<string name="poi_clinic">Clìnica</string>
|
||||||
|
<string name="poi_dentist">Dentista</string>
|
||||||
|
<string name="poi_veterinary">Veterinàriu</string>
|
||||||
|
<string name="poi_sanatorium">Sanatòriu</string>
|
||||||
|
<string name="poi_healthcare_alternative">Meighina alternativa</string>
|
||||||
|
<string name="poi_blood_bank">Banca de su sàmbene</string>
|
||||||
|
<string name="poi_healthcare_centre">Tzentru mèdicu</string>
|
||||||
|
<string name="poi_midwife">Levadora</string>
|
||||||
|
<string name="poi_optometrist">Optometrista</string>
|
||||||
|
<string name="poi_physiotherapist">Fisioterapista</string>
|
||||||
|
<string name="poi_podiatrist">Podòlogu</string>
|
||||||
|
<string name="poi_psychotherapist">Psicoterapèuta</string>
|
||||||
|
<string name="poi_healthcare_rehabilitation">Riabilitassione</string>
|
||||||
|
<string name="poi_speech_therapist">Logopedista</string>
|
||||||
|
<string name="poi_healthcare_yes">Istrutura mèdica</string>
|
||||||
|
|
||||||
|
<string name="poi_insurance">Asseguratzione</string>
|
||||||
|
<string name="poi_estate_agent">Butega immobiliare</string>
|
||||||
|
<string name="poi_lawyer">Abogadu</string>
|
||||||
|
<string name="poi_ngo">ONG</string>
|
||||||
|
<string name="poi_town_hall">Munitzìpiu</string>
|
||||||
|
<string name="poi_employment_agency">Ufìtziu pro su traballu</string>
|
||||||
|
<string name="poi_it_office">Ufìtziu IT</string>
|
||||||
|
<string name="poi_newspaper_office">Redatzione de giornale</string>
|
||||||
|
<string name="poi_architect_office">Istùdiu de architetura</string>
|
||||||
|
<string name="poi_advertising_agency">Agentzia de publitzidade</string>
|
||||||
|
<string name="poi_educational_institution">Istitudu iscolàsticu</string>
|
||||||
|
<string name="poi_studio">Istùdiu de registratzione</string>
|
||||||
|
<string name="poi_bookmaker">Iscummissas</string>
|
||||||
|
|
||||||
|
<string name="poi_stadium">Istàdiu</string>
|
||||||
|
<string name="poi_sports_centre">Tzentru isportìvu</string>
|
||||||
|
<string name="poi_golf_course">Campu de golf</string>
|
||||||
|
<string name="poi_ice_rink">Pista pro patinare in astra</string>
|
||||||
|
<string name="poi_running_track">Pista pro cùrrere</string>
|
||||||
|
<string name="poi_bicycle_track">Pista pro bitziclètas</string>
|
||||||
|
<string name="poi_horse_track">Pista pro caddos</string>
|
||||||
|
<string name="poi_athletics">Atlètica</string>
|
||||||
|
<string name="poi_australian_football">Football australianu</string>
|
||||||
|
<string name="poi_baseball">Baseball</string>
|
||||||
|
<string name="poi_basketball">Basket</string>
|
||||||
|
<string name="poi_boules">Botzas</string>
|
||||||
|
<string name="poi_canoe">Canoa</string>
|
||||||
|
<string name="poi_chess">Iscacos</string>
|
||||||
|
<string name="poi_cricket">Cricket</string>
|
||||||
|
<string name="poi_croquet">Croquet</string>
|
||||||
|
<string name="poi_cycling">Tziclismu</string>
|
||||||
|
<string name="poi_dog_racing">Cursa de sos canes</string>
|
||||||
|
<string name="poi_equestrian">Equitassione</string>
|
||||||
|
<string name="poi_golf">Golf</string>
|
||||||
|
<string name="poi_gymnastics">Ginnàstica</string>
|
||||||
|
<string name="poi_hockey">Hockey</string>
|
||||||
|
<string name="poi_horse_racing">Cursas de sos caddos</string>
|
||||||
|
<string name="poi_ice_skating">Patinàgiu in s\'astra</string>
|
||||||
|
<string name="poi_korfbal">Korfbal</string>
|
||||||
|
<string name="poi_multi_sport">Prus isports</string>
|
||||||
|
<string name="poi_paddle_tennis">Paddle tènnis</string>
|
||||||
|
<string name="poi_pelota">Pelota</string>
|
||||||
|
<string name="poi_racquet">Racquetball</string>
|
||||||
|
<string name="poi_roller_skating">Patinàgiu a rodas</string>
|
||||||
|
<string name="poi_rowing">Canotàgiu</string>
|
||||||
|
<string name="poi_rugby_union">Rugby a 15</string>
|
||||||
|
<string name="poi_rugby_league">Rugby a 13</string>
|
||||||
|
<string name="poi_skating">Patinàgiu</string>
|
||||||
|
<string name="poi_skateboard">Skateboard</string>
|
||||||
|
<string name="poi_soccer">Fubalu</string>
|
||||||
|
<string name="poi_swimming">Piscina</string>
|
||||||
|
<string name="poi_tennis">Tennis</string>
|
||||||
|
<string name="poi_toboggan">Toboga</string>
|
||||||
|
<string name="poi_museum">Museu</string>
|
||||||
|
<string name="poi_attraction">Attràida turìstica</string>
|
||||||
|
<string name="poi_memorial">Memoriale</string>
|
||||||
|
<string name="poi_artwork">Opera d\'arte</string>
|
||||||
|
<string name="poi_archaeological_site">Giassu/situ archeològicu</string>
|
||||||
|
<string name="poi_battlefield">Campu de batalla</string>
|
||||||
|
<string name="poi_boundary_stone">Pedra de làcana</string>
|
||||||
|
<string name="poi_castle">Casteddu</string>
|
||||||
|
<string name="poi_city_gate">Ghenna de intrada a sa tzitade</string>
|
||||||
|
<string name="poi_fort">Forte</string>
|
||||||
|
<string name="poi_fountain">Funtana</string>
|
||||||
|
<string name="poi_ruins_historic">Ruinas istòricas</string>
|
||||||
|
<string name="poi_rune_stone">Pedra rùnica</string>
|
||||||
|
<string name="poi_ship_historic">Nave istòrica</string>
|
||||||
|
<string name="poi_mine_historic">Cava istòrica</string>
|
||||||
|
<string name="poi_monument">Monumentu</string>
|
||||||
|
<string name="poi_zoo">Zoo</string>
|
||||||
|
<string name="poi_theme_park">Parcu a tema</string>
|
||||||
|
|
||||||
|
<string name="poi_hotel">Albergo</string>
|
||||||
|
<string name="poi_hostel">Posada</string>
|
||||||
|
<string name="poi_motel">Motel</string>
|
||||||
|
<string name="poi_chalet">Chalet</string>
|
||||||
|
|
||||||
|
<string name="poi_place_of_worship">Logu de cultu</string>
|
||||||
|
<string name="poi_place_of_worship_christian">Logu de cultu: cristianu</string>
|
||||||
|
<string name="poi_place_of_worship_jewish">Logu de cultu: ebreu</string>
|
||||||
|
<string name="poi_place_of_worship_muslim">Logu de cultu: musulmanu</string>
|
||||||
|
<string name="poi_place_of_worship_sikh">Logu de cultu: sikh</string>
|
||||||
|
<string name="poi_place_of_worship_buddhist">Logu de cultu: buddista</string>
|
||||||
|
<string name="poi_place_of_worship_hindu">Logu de cultu: induista</string>
|
||||||
|
<string name="poi_place_of_worship_shinto">Logu de cultu: shintoista</string>
|
||||||
|
<string name="poi_place_of_worship_taoist">Logu de cultu: taoista</string>
|
||||||
|
<string name="poi_monastery">Monastèriu/Muristene</string>
|
||||||
|
<string name="poi_historic_monastery">Monastèriu/Muristene istòricu</string>
|
||||||
|
<string name="poi_wayside_cross">Rughe istòrica</string>
|
||||||
|
<string name="poi_wayside_shrine">Tabernàculu istòricu</string>
|
||||||
|
<string name="poi_tourism_information">Informatziones turìsticas</string>
|
||||||
|
<string name="poi_clock">Relògiu</string>
|
||||||
|
<string name="poi_travel_agent">Agentzia de biàgios</string>
|
||||||
|
<string name="poi_viewpoint">Puntu panoràmicu</string>
|
||||||
|
<string name="poi_camp_site">Campègiu</string>
|
||||||
|
<string name="poi_caravan_site">Tretu pro caravan e camper</string>
|
||||||
|
<string name="poi_picnic_site">Logu atretzadu pro picnic</string>
|
||||||
|
<string name="poi_spring">Mitza</string>
|
||||||
|
<string name="poi_geyser">Geyser</string>
|
||||||
|
<string name="poi_cemetery">Campusantu</string>
|
||||||
|
<string name="poi_grave_yard">Campusantu</string>
|
||||||
|
<string name="poi_funicular">Funiculare</string>
|
||||||
|
<string name="poi_military_naval_base">Base militare navale</string>
|
||||||
|
<string name="poi_military_barracks">Caserma</string>
|
||||||
|
</resources>
|
|
@ -81,7 +81,7 @@
|
||||||
<string name="android_19_location_disabled">Dae sa versione Android 4.4 (KitKat) non podes prus iscarrigare e agiornare sas mapas in sa cartella bècia (%s). La bòles remplasare cun sa chi est acusentida e copiare in cue totus sos datos?
|
<string name="android_19_location_disabled">Dae sa versione Android 4.4 (KitKat) non podes prus iscarrigare e agiornare sas mapas in sa cartella bècia (%s). La bòles remplasare cun sa chi est acusentida e copiare in cue totus sos datos?
|
||||||
\n Nota 1: sos datos antepostos tuos non at a èssere mudados (ma podent essere burrados manualmente).
|
\n Nota 1: sos datos antepostos tuos non at a èssere mudados (ma podent essere burrados manualmente).
|
||||||
\n Nota 2: in sa cartella noa non at a èssere possìbile cumpartzire sos datos intra OsmAnd e OsmAnd+.</string>
|
\n Nota 2: in sa cartella noa non at a èssere possìbile cumpartzire sos datos intra OsmAnd e OsmAnd+.</string>
|
||||||
<string name="application_dir_change_warning2">OsmAnd podet proare a copiare sos datos suos in sa destinatzione noa. Boles a lu fàghere?</string>
|
<string name="application_dir_change_warning2">Boles chi OsmAnd còpiet sos datos suos fintzas in sa destinatzione noa?</string>
|
||||||
<string name="copying_osmand_one_file_descr">Copiande su documentu (%s) in sa destinatzione noa...</string>
|
<string name="copying_osmand_one_file_descr">Copiande su documentu (%s) in sa destinatzione noa...</string>
|
||||||
<string name="copying_osmand_files_descr">Copiande sos datos de OsmAnd in (%s), sa destinatzione noa</string>
|
<string name="copying_osmand_files_descr">Copiande sos datos de OsmAnd in (%s), sa destinatzione noa</string>
|
||||||
<string name="copying_osmand_files">Copiande sos datos de OsmAnd</string>
|
<string name="copying_osmand_files">Copiande sos datos de OsmAnd</string>
|
||||||
|
@ -1742,8 +1742,6 @@ Si cussigiat de annànghere unu o prus puntos intermedios pro megiorare sas pres
|
||||||
<string name="text_size">Mannària de su testu</string>
|
<string name="text_size">Mannària de su testu</string>
|
||||||
<string name="fav_point_dublicate_message">Amus cambiau su nùmene de su prefèrridu tuo a %1$s pro evitare nùmenes dòpios.</string>
|
<string name="fav_point_dublicate_message">Amus cambiau su nùmene de su prefèrridu tuo a %1$s pro evitare nùmenes dòpios.</string>
|
||||||
<string name="fav_point_dublicate">Nùmene dòpiu in sos prefèrridos</string>
|
<string name="fav_point_dublicate">Nùmene dòpiu in sos prefèrridos</string>
|
||||||
<string name="test_native_render">Collàuda sa renderizatzione nativa</string>
|
|
||||||
<string name="test_native_render_msg">Incumentza s\'atividade cun sa renderizatzione nativa</string>
|
|
||||||
<string name="use_native_render">Imprea sa renderizatzione nativa</string>
|
<string name="use_native_render">Imprea sa renderizatzione nativa</string>
|
||||||
<string name="use_native_render_descr">Imprea sa renderizatzione C++ imbetzes de Java</string>
|
<string name="use_native_render_descr">Imprea sa renderizatzione C++ imbetzes de Java</string>
|
||||||
<string name="print_route">Imprenta àndala</string>
|
<string name="print_route">Imprenta àndala</string>
|
||||||
|
@ -1785,8 +1783,13 @@ Si cussigiat de annànghere unu o prus puntos intermedios pro megiorare sas pres
|
||||||
<string name="osmo_use_https">Imprea https</string>
|
<string name="osmo_use_https">Imprea https</string>
|
||||||
<string name="home_button">Domo</string>
|
<string name="home_button">Domo</string>
|
||||||
<string name="search_for">Chirca pro</string>
|
<string name="search_for">Chirca pro</string>
|
||||||
<string name="show_map">AMMUSTRA MAPA</string>
|
<string name="show_map">AMMUSTRA SA MAPA</string>
|
||||||
<string name="show_all">AMMUSTRA TOTU</string>
|
<string name="show_all">AMMUSTRA TOTU</string>
|
||||||
<string name="coordinates">Coordinatas</string>
|
<string name="coordinates">Coordinatas</string>
|
||||||
<string name="map_update">Mapas</string>
|
<string name="map_update">Mapas</string>
|
||||||
</resources>
|
<string name="error_avoid_specific_road">No est istada agatada peruna istrada a curtzu</string>
|
||||||
|
<string name="everything_up_to_date">Totu agiornadu</string>
|
||||||
|
<string name="use_opengl_render">Impreare sa renderizatzione opengl</string>
|
||||||
|
<string name="use_opengl_render_descr">Impreare sa renderizatzione opengl tràmite hardware (diat pòdere non funtzionare in carchi dispositivu)</string>
|
||||||
|
<string name="dismiss">Abbandona</string>
|
||||||
|
</resources>
|
||||||
|
|
|
@ -1597,7 +1597,7 @@ Afganistan, Albánsko, Alžírsko, Andora, Angola, Anguilla, Antigua a Barbuda,
|
||||||
<string name="copying_osmand_files_descr">Kopírujem dátové súbory OsmAnd do nového cieľa (%s)</string>
|
<string name="copying_osmand_files_descr">Kopírujem dátové súbory OsmAnd do nového cieľa (%s)</string>
|
||||||
<string name="copying_osmand_files">Kopírujem dátové súbory OsmAnd</string>
|
<string name="copying_osmand_files">Kopírujem dátové súbory OsmAnd</string>
|
||||||
<string name="copying_osmand_one_file_descr">Kopírujem súbor (%s) do nového cieľa...</string>
|
<string name="copying_osmand_one_file_descr">Kopírujem súbor (%s) do nového cieľa...</string>
|
||||||
<string name="application_dir_change_warning2">Chcete aby sa OsmAnd pokúsil presunúť údaje do nového cieľa?</string>
|
<string name="application_dir_change_warning2">Chcete aby OsmAnd presunul údajové súbory do nového cieľa?</string>
|
||||||
<string name="calculate_osmand_route_gpx">Vypočítať OsmAnd offline trasu</string>
|
<string name="calculate_osmand_route_gpx">Vypočítať OsmAnd offline trasu</string>
|
||||||
<string name="android_19_location_disabled">Od Androidu verzie 4.4 (KitKat) nie je možné sťahovať a aktualizovať mapy v pôvodnom úložnom priečinku (%s). Chcete ho zmeniť na vhodné nové úložisko a skopírovať tam všetky súbory?
|
<string name="android_19_location_disabled">Od Androidu verzie 4.4 (KitKat) nie je možné sťahovať a aktualizovať mapy v pôvodnom úložnom priečinku (%s). Chcete ho zmeniť na vhodné nové úložisko a skopírovať tam všetky súbory?
|
||||||
\n Poznámka 1: pôvodné súbory zostanú nedotknuté (môžete ich neskôr vymazať ručne).\n Poznámka 2: v novom úložisku nebude možné zdieľať súbory medzi OsmAnd a OsmAnd+.</string>
|
\n Poznámka 1: pôvodné súbory zostanú nedotknuté (môžete ich neskôr vymazať ručne).\n Poznámka 2: v novom úložisku nebude možné zdieľať súbory medzi OsmAnd a OsmAnd+.</string>
|
||||||
|
@ -1952,8 +1952,6 @@ Afganistan, Albánsko, Alžírsko, Andora, Angola, Anguilla, Antigua a Barbuda,
|
||||||
<string name="text_size">Veľkosť textu</string>
|
<string name="text_size">Veľkosť textu</string>
|
||||||
<string name="fav_point_dublicate">Duplicitný názov obľúbeného bodu</string>
|
<string name="fav_point_dublicate">Duplicitný názov obľúbeného bodu</string>
|
||||||
<string name="fav_point_dublicate_message">Názov obľúbeného bodu bol zmenený na %1$s, aby nevznikla duplicita.</string>
|
<string name="fav_point_dublicate_message">Názov obľúbeného bodu bol zmenený na %1$s, aby nevznikla duplicita.</string>
|
||||||
<string name="test_native_render">Testovať natívne vykresľovanie</string>
|
|
||||||
<string name="test_native_render_msg">Spustí činnosť s natívnym vykresľovaním</string>
|
|
||||||
<string name="use_native_render">Použiť natívne vykresľovanie</string>
|
<string name="use_native_render">Použiť natívne vykresľovanie</string>
|
||||||
<string name="use_native_render_descr">Použiť vykresľovanie v C++ namiesto Javy</string>
|
<string name="use_native_render_descr">Použiť vykresľovanie v C++ namiesto Javy</string>
|
||||||
<string name="fav_point_emoticons_message">Názov obľúbeného bodu bol upravený na %1$s, aby bolo možné správne uložiť názov s emotikonom do súboru.</string>
|
<string name="fav_point_emoticons_message">Názov obľúbeného bodu bol upravený na %1$s, aby bolo možné správne uložiť názov s emotikonom do súboru.</string>
|
||||||
|
@ -1998,4 +1996,10 @@ Afganistan, Albánsko, Alžírsko, Andora, Angola, Anguilla, Antigua a Barbuda,
|
||||||
<string name="show_map">ZOBRAZIŤ MAPU</string>
|
<string name="show_map">ZOBRAZIŤ MAPU</string>
|
||||||
<string name="show_all">ZOBRAZIŤ VŠETKO</string>
|
<string name="show_all">ZOBRAZIŤ VŠETKO</string>
|
||||||
<string name="coordinates">Súradnice</string>
|
<string name="coordinates">Súradnice</string>
|
||||||
</resources>
|
<string name="map_update">Mapy</string>
|
||||||
|
<string name="error_avoid_specific_road">Nenašla sa najbližšia cesta</string>
|
||||||
|
<string name="dismiss">Odmietnuť</string>
|
||||||
|
<string name="everything_up_to_date">Všetko je aktuálne</string>
|
||||||
|
<string name="use_opengl_render">Použiť vykresľovanie OpenGL</string>
|
||||||
|
<string name="use_opengl_render_descr">Použiť hardvérovo urýchľované vykresľovanie pomocou OpenGL (nemusí na niektorých zariadeniach fungovať)</string>
|
||||||
|
</resources>
|
||||||
|
|
|
@ -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>
|
<resources><string name="search_button">Iskanje</string>
|
||||||
<string name="search_activity">Iskanje</string>
|
<string name="search_activity">Iskanje</string>
|
||||||
<string name="settings_Button">Nastavitve</string>
|
<string name="settings_Button">Nastavitve</string>
|
||||||
|
@ -1965,10 +1965,8 @@ Seznam držav (praktično ves svet!): Afganistan, Albanija, Alžirija, Andora, A
|
||||||
<string name="speed_limit_exceed">Toleranca omejitve hitrosti</string>
|
<string name="speed_limit_exceed">Toleranca omejitve hitrosti</string>
|
||||||
<string name="speed_limit_exceed_message">Izberite mejo tolerance omejitve hitrosti, nad katero boste prejeli glasovno opozorilo.</string>
|
<string name="speed_limit_exceed_message">Izberite mejo tolerance omejitve hitrosti, nad katero boste prejeli glasovno opozorilo.</string>
|
||||||
<string name="print_route">Tiskanje poti</string>
|
<string name="print_route">Tiskanje poti</string>
|
||||||
<string name="test_native_render">Poskus izvirnega upodabljanja</string>
|
|
||||||
<string name="use_native_render_descr">Uporabi C++ upodabljanje namesto Java</string>
|
<string name="use_native_render_descr">Uporabi C++ upodabljanje namesto Java</string>
|
||||||
<string name="tip_recent_changes_1_9_t">"Spremembe v 1.9:\n\t* Posodobljeni stili zemljevida s upodabljanjem površine cestišča, transportnih plasti in pohodniških simbolov\n\t* Iskanje POI na poti\n\t* Označi cesto kot neprehodno na sejo\n\t* Lažje nalaganje in posodabljanje zemljevidov\n\t* Vizualno in zvočno obvestilo, ki se izvede ko se približujete točkam\n\t* Tisk poti in informacij o zavojih\n\t* Podpora pasov za zavijanje\n\t* Podpora Android Wear\n\t* Veliko sprememb grafičnega vmesnika\n\t* Ločena povečava za velikost črk na zemljevidu\n\t* Posebna zvočna obvestila v primeru, da niste na poti\n\t* Funkcionalnost prijave v OsMo\n\t* Popravilo OsMo nezdružljivosti različic "</string>
|
<string name="tip_recent_changes_1_9_t">"Spremembe v 1.9:\n\t* Posodobljeni stili zemljevida s upodabljanjem površine cestišča, transportnih plasti in pohodniških simbolov\n\t* Iskanje POI na poti\n\t* Označi cesto kot neprehodno na sejo\n\t* Lažje nalaganje in posodabljanje zemljevidov\n\t* Vizualno in zvočno obvestilo, ki se izvede ko se približujete točkam\n\t* Tisk poti in informacij o zavojih\n\t* Podpora pasov za zavijanje\n\t* Podpora Android Wear\n\t* Veliko sprememb grafičnega vmesnika\n\t* Ločena povečava za velikost črk na zemljevidu\n\t* Posebna zvočna obvestila v primeru, da niste na poti\n\t* Funkcionalnost prijave v OsMo\n\t* Popravilo OsMo nezdružljivosti različic "</string>
|
||||||
<string name="test_native_render_msg">Začetek aktivnosti z izvirnim upodabljanjem</string>
|
|
||||||
<string name="fav_point_dublicate">Podvojeno ime priljubljene lokacije</string>
|
<string name="fav_point_dublicate">Podvojeno ime priljubljene lokacije</string>
|
||||||
<string name="fav_point_dublicate_message">Ime vaše priljubljene lokacije je bilo spremenjeno v %1$s, da bi se izognili podvojenih imen.</string>
|
<string name="fav_point_dublicate_message">Ime vaše priljubljene lokacije je bilo spremenjeno v %1$s, da bi se izognili podvojenih imen.</string>
|
||||||
<string name="use_native_render">Uporabi izvirno upodabljanje</string>
|
<string name="use_native_render">Uporabi izvirno upodabljanje</string>
|
||||||
|
|
|
@ -1339,7 +1339,7 @@
|
||||||
<string name="android_19_location_disabled">Efter Androidversion 4.4 (KitKat) går det inte att hämta och uppdatera kartor på den tidigare lagringsmappen (%s). Vill du byta till en tillåten plats och kopiera alla OsmAnd-filerna dit?
|
<string name="android_19_location_disabled">Efter Androidversion 4.4 (KitKat) går det inte att hämta och uppdatera kartor på den tidigare lagringsmappen (%s). Vill du byta till en tillåten plats och kopiera alla OsmAnd-filerna dit?
|
||||||
\n OBS: Gamla filer berörs inte (men kan tas bort manuellt).
|
\n OBS: Gamla filer berörs inte (men kan tas bort manuellt).
|
||||||
\n OBS: På den nya lagringsplatsen kommer det inte att vara möjligt att dela filer mellan OsmAnd och OsmAnd+.</string>
|
\n OBS: På den nya lagringsplatsen kommer det inte att vara möjligt att dela filer mellan OsmAnd och OsmAnd+.</string>
|
||||||
<string name="application_dir_change_warning2">Vill du att OsmAnd ska försöka kopiera datafilerna till den nya platsen?</string>
|
<string name="application_dir_change_warning2">Vill du att OsmAnd också ska kopiera datafilerna till den nya platsen?</string>
|
||||||
<string name="copying_osmand_one_file_descr">Kopierar filen (%s) till den nya platsen …</string>
|
<string name="copying_osmand_one_file_descr">Kopierar filen (%s) till den nya platsen …</string>
|
||||||
<string name="copying_osmand_files_descr">Kopierar OsmAnd-datafiler till den nya platsen (%s)</string>
|
<string name="copying_osmand_files_descr">Kopierar OsmAnd-datafiler till den nya platsen (%s)</string>
|
||||||
<string name="copying_osmand_files">Kopierar OsmAnd-datafiler</string>
|
<string name="copying_osmand_files">Kopierar OsmAnd-datafiler</string>
|
||||||
|
@ -1690,8 +1690,6 @@
|
||||||
<string name="local_index_description">Peta på en post för att se fler detaljer, tryck och håll för att inaktivera eller ta bort. Data på enheten (%1$s ledigt):</string>
|
<string name="local_index_description">Peta på en post för att se fler detaljer, tryck och håll för att inaktivera eller ta bort. Data på enheten (%1$s ledigt):</string>
|
||||||
<string name="text_size_descr">Ange textstorlek på kartan.</string>
|
<string name="text_size_descr">Ange textstorlek på kartan.</string>
|
||||||
<string name="text_size">Textstorlek</string>
|
<string name="text_size">Textstorlek</string>
|
||||||
<string name="test_native_render">Testa inbyggd rendering</string>
|
|
||||||
<string name="test_native_render_msg">Startar aktivitet med inbyggd rendering</string>
|
|
||||||
<string name="fav_point_dublicate">Duplicerat namn på favoritpunkt</string>
|
<string name="fav_point_dublicate">Duplicerat namn på favoritpunkt</string>
|
||||||
<string name="fav_point_dublicate_message">Namnet på din favoritpunkt %1$s ändrades för att undvika duplicerade namn.</string>
|
<string name="fav_point_dublicate_message">Namnet på din favoritpunkt %1$s ändrades för att undvika duplicerade namn.</string>
|
||||||
<string name="use_native_render">Använd inbyggd rendering</string>
|
<string name="use_native_render">Använd inbyggd rendering</string>
|
||||||
|
@ -1738,4 +1736,6 @@
|
||||||
<string name="show_map">VISA KARTA</string>
|
<string name="show_map">VISA KARTA</string>
|
||||||
<string name="show_all">VISA ALLA</string>
|
<string name="show_all">VISA ALLA</string>
|
||||||
<string name="coordinates">Koordinater</string>
|
<string name="coordinates">Koordinater</string>
|
||||||
</resources>
|
<string name="map_update">Kartor</string>
|
||||||
|
<string name="error_avoid_specific_road">Hittar inte närmaste väg</string>
|
||||||
|
</resources>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources><string name="close_changeset">Değişiklik listesini kapat</string>
|
<resources><string name="close_changeset">Değişiklik listesini kapat</string>
|
||||||
<string name="zxing_barcode_scanner_not_found">ZXing Barcode Scanner uygulaması kurulu değil. Uygulama marketinde aramak ister misiniz?</string>
|
<string name="zxing_barcode_scanner_not_found">ZXing Barcode Scanner uygulaması kurulu değil. Uygulama marketinde aramak ister misiniz?</string>
|
||||||
<string name="rendering_attr_roadColors_description">Yol renk şemasını seç:</string>
|
<string name="rendering_attr_roadColors_description">Yol renk şemasını seç:</string>
|
||||||
|
|
115
OsmAnd/res/values-uk/phrases.xml
Normal file
115
OsmAnd/res/values-uk/phrases.xml
Normal file
|
@ -0,0 +1,115 @@
|
||||||
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
|
<resources><string name="poi_palaeontological_site">Палеонтологічний місце</string>
|
||||||
|
|
||||||
|
<string name="poi_bakery">Булочна</string>
|
||||||
|
<string name="poi_alcohol">Спиртні напої</string>
|
||||||
|
<string name="poi_convenience">Магазин</string>
|
||||||
|
<string name="poi_mall">Торговельний центр</string>
|
||||||
|
<string name="poi_beverages">Напої</string>
|
||||||
|
<string name="poi_butcher">М’ясо</string>
|
||||||
|
<string name="poi_deli">Делікатеси</string>
|
||||||
|
<string name="poi_shop_farm">Продукти з села</string>
|
||||||
|
<string name="poi_greengrocer">Овочі, фрукти</string>
|
||||||
|
<string name="poi_seafood">Морепродукти</string>
|
||||||
|
<string name="poi_confectionery">Кондитерські вироби</string>
|
||||||
|
<string name="poi_ice_cream">Кафе-морозиво</string>
|
||||||
|
<string name="poi_supermarket">Супермаркет</string>
|
||||||
|
<string name="poi_shop_tea">Чай</string>
|
||||||
|
<string name="poi_dairy">Молочний магазин</string>
|
||||||
|
<string name="poi_vending_machine">Торговий автомат</string>
|
||||||
|
|
||||||
|
<string name="poi_bookshop">Книжковий магазин</string>
|
||||||
|
<string name="poi_bicycle_shop">Веломагазин</string>
|
||||||
|
<string name="poi_anime_shop">Магазин аніме</string>
|
||||||
|
<string name="poi_antiques_shop">Антикваріат</string>
|
||||||
|
<string name="poi_art_shop">Витвори мистетства</string>
|
||||||
|
<string name="poi_baby_goods">Товари для дітей</string>
|
||||||
|
<string name="poi_bag_shop">Сумки, валізи</string>
|
||||||
|
<string name="poi_bathroom_furnishing_shop">Все для ванної кімнати</string>
|
||||||
|
<string name="poi_bed_shop">Все для спальні</string>
|
||||||
|
<string name="poi_boutique">Бутік</string>
|
||||||
|
<string name="poi_carpet_shop">Килими</string>
|
||||||
|
<string name="poi_chemist_shop">Аптека</string>
|
||||||
|
<string name="poi_clothes_shop">Магазин одягу</string>
|
||||||
|
<string name="poi_children_clothes_shop">Дитячий одяг</string>
|
||||||
|
<string name="poi_shoes">Магазин взуття</string>
|
||||||
|
<string name="poi_computer_shop">Комп’ютерний магазин</string>
|
||||||
|
<string name="poi_copyshop">Копіювальні послуги, полігрфафія</string>
|
||||||
|
<string name="poi_curtain_shop">Салон штор</string>
|
||||||
|
<string name="poi_fabric_shop">Тканини</string>
|
||||||
|
<string name="poi_bedding_shop">Постільна білизна</string>
|
||||||
|
<string name="poi_dive_shop">Спорядження для пірнання</string>
|
||||||
|
<string name="poi_doityourself_shop">Інструменти та будматеріали</string>
|
||||||
|
<string name="poi_erotic_shop">Секс-шоп</string>
|
||||||
|
<string name="poi_fishing_shop">Рибальські снасті</string>
|
||||||
|
<string name="poi_florist">Квітковий магазин</string>
|
||||||
|
<string name="poi_frame_shop">Рамки, багет</string>
|
||||||
|
<string name="poi_furniture_shop">Меблі</string>
|
||||||
|
<string name="poi_garden_centre">Сад та город</string>
|
||||||
|
<string name="poi_gas_shop">Зріджений газ</string>
|
||||||
|
<string name="poi_general_shop">Магазин</string>
|
||||||
|
<string name="poi_gift_shop">Подарунки та сувеніри</string>
|
||||||
|
<string name="poi_glaziery_shop">Вікна, скло</string>
|
||||||
|
<string name="poi_hardware_shop">Будівельний магазин</string>
|
||||||
|
<string name="poi_hearing_aids_shop">Слухові апарати</string>
|
||||||
|
<string name="poi_herbalist">Трави</string>
|
||||||
|
<string name="poi_hifi_shop">HiFi апаратура</string>
|
||||||
|
<string name="poi_houseware_shop">Господарські товари</string>
|
||||||
|
<string name="poi_hunting_shop">Мисливське спорядження</string>
|
||||||
|
<string name="poi_interior_decoration_shop">Внутрішнє оздоблення</string>
|
||||||
|
<string name="poi_jewelry_shop">Ювелірний магазин</string>
|
||||||
|
<string name="poi_kiosk">Кіоск</string>
|
||||||
|
<string name="poi_kitchen_shop">Кухонні приналежності</string>
|
||||||
|
<string name="poi_mobile_phone_shop">Мобільні телефони</string>
|
||||||
|
<string name="poi_motorcycle_shop">Мотоцикли</string>
|
||||||
|
<string name="poi_musical_instrument_shop">Музичні інструменти</string>
|
||||||
|
<string name="poi_newsagent_shop">Газети та журнали</string>
|
||||||
|
<string name="poi_optician_shop">Окуліст</string>
|
||||||
|
<string name="poi_organic_shop">Органічні продукти харчування</string>
|
||||||
|
<string name="poi_outdoor_shop">Товари для активного відпочинку</string>
|
||||||
|
<string name="poi_paint_shop">Фарби</string>
|
||||||
|
<string name="poi_pet_shop">Зоомагазин</string>
|
||||||
|
<string name="poi_radiotechnics_shop">Радіодеталі</string>
|
||||||
|
<string name="poi_second_hand">Секонд-хенд</string>
|
||||||
|
<string name="poi_ship_chandler">Яхти, запчастини, оснащення</string>
|
||||||
|
<string name="poi_sports_shop">Спорттовари</string>
|
||||||
|
<string name="poi_stationery_shop">Канцтовари</string>
|
||||||
|
<string name="poi_tableware_shop">Посуд</string>
|
||||||
|
<string name="poi_ticket_shop">Продаж квитків</string>
|
||||||
|
<string name="poi_tobacco_shop">Тютюн</string>
|
||||||
|
<string name="poi_toys_shop">Іграшки</string>
|
||||||
|
<string name="poi_trade_shop">Факторія</string>
|
||||||
|
<string name="poi_vacuum_cleaner_shop">Пилососи</string>
|
||||||
|
<string name="poi_variety_store">Універсальний магазин</string>
|
||||||
|
<string name="poi_video_shop">Відео-прокат</string>
|
||||||
|
<string name="poi_window_blind_shop">Жалюзі, віконниці, маркізи</string>
|
||||||
|
<string name="poi_department_store">Универмаг</string>
|
||||||
|
<string name="poi_electronics_shop">Електороніка</string>
|
||||||
|
<string name="poi_car_shop">Автосалон</string>
|
||||||
|
<string name="poi_car_parts_shop">Автозапчастини</string>
|
||||||
|
<string name="poi_atv_shop">Квадроцикли</string>
|
||||||
|
<string name="poi_cosmetics_shop">Косметика</string>
|
||||||
|
<string name="poi_marketplace">Ринок</string>
|
||||||
|
<string name="poi_sewing_shop">Галантерея</string>
|
||||||
|
|
||||||
|
<string name="poi_police">Міліція/Поліція</string>
|
||||||
|
<string name="poi_fire_station">Пожежна частиниа</string>
|
||||||
|
<string name="poi_emergency_phone">Аварійний телефон</string>
|
||||||
|
<string name="poi_fire_hydrant">Пожежний гідрант</string>
|
||||||
|
<string name="poi_fire_extinguisher">Вогнегасник</string>
|
||||||
|
<string name="poi_fire_flapper">Заслонка</string>
|
||||||
|
<string name="poi_fire_hose">Пожежний рукав</string>
|
||||||
|
<string name="poi_fire_water_pond">Пожежний ставок</string>
|
||||||
|
<string name="poi_grit_bin">Ящик з піском</string>
|
||||||
|
<string name="poi_ambulance_station">Станція швидкої медичної допомоги</string>
|
||||||
|
<string name="poi_ses_station">Санепідемстанція</string>
|
||||||
|
<string name="poi_emergency_access_point">Місце отримання невідкладної допомоги</string>
|
||||||
|
|
||||||
|
<string name="poi_ford">Брід</string>
|
||||||
|
<string name="poi_mountain_pass">Перевал</string>
|
||||||
|
<string name="poi_gate">Ворота</string>
|
||||||
|
<string name="poi_city_wall">Міська стіна</string>
|
||||||
|
<string name="poi_lift_gate">Шлагбаум</string>
|
||||||
|
<string name="poi_toll_booth">Збирання плати за проїзд</string>
|
||||||
|
<string name="poi_border_control">Прикордонний контроль</string>
|
||||||
|
</resources>
|
|
@ -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_8_1_t">Зміни в 0.8.1:
|
<resources><string name="tip_recent_changes_0_8_1_t">Зміни в 0.8.1:
|
||||||
\n\t* Більш точні маршрути (трохи повільніше)
|
\n\t* Більш точні маршрути (трохи повільніше)
|
||||||
\n\t* Розумний і швидкий перерахунок маршруту
|
\n\t* Розумний і швидкий перерахунок маршруту
|
||||||
|
@ -9,7 +9,7 @@
|
||||||
\n\t* Увімкнення/вимкнення віджету моніторингу
|
\n\t* Увімкнення/вимкнення віджету моніторингу
|
||||||
</string>
|
</string>
|
||||||
<string name="asap">Швидко</string>
|
<string name="asap">Швидко</string>
|
||||||
<string name="save_route_as_gpx">Зберегти маршрут в GPX файл</string>
|
<string name="save_route_as_gpx">Зберегти маршрут в файл GPX</string>
|
||||||
<string name="route_roundabout">Круговий рух : %1$d з’їзд</string>
|
<string name="route_roundabout">Круговий рух : %1$d з’їзд</string>
|
||||||
<string name="route_kl">Тримайтесь ліворуч</string>
|
<string name="route_kl">Тримайтесь ліворуч</string>
|
||||||
<string name="route_kr">Тримайтесь праворуч</string>
|
<string name="route_kr">Тримайтесь праворуч</string>
|
||||||
|
@ -52,7 +52,7 @@
|
||||||
<string name="online_map_settings_descr">Налаштування онлнай або кешованих джерел (тайлів) мап</string>
|
<string name="online_map_settings_descr">Налаштування онлнай або кешованих джерел (тайлів) мап</string>
|
||||||
<string name="map_settings">Налаштування мапи</string>
|
<string name="map_settings">Налаштування мапи</string>
|
||||||
<string name="map_settings_descr">Налаштування відображення карти</string>
|
<string name="map_settings_descr">Налаштування відображення карти</string>
|
||||||
<string name="osmand_rastermaps_plugin_description">Втулок дозволяє використовувати різні джерела онлайн мап, а також підготовлені растрові мапи як базову мапу або підкладку. Мапи можуть бути підготовленими на комп’ютері і повинні бути скопійовані в теку osmand на SD-картку.</string>
|
<string name="osmand_rastermaps_plugin_description">Втулок дозволяє використовувати різні джерела онлайн мап, а також підготовлені растрові мапи як базову мапу або підкладку. Мапи можуть бути підготовленими на комп’ютері і скопійовані в теку з даними OsmAnd.</string>
|
||||||
<string name="osmand_background_plugin_description">Налаштування для навігації і запису маршрутів в енергозберігаючому режимі. Втулок працює в фоновому режимі і періодично активує GPS для запису маршруту або відтворення голосових команд.</string>
|
<string name="osmand_background_plugin_description">Налаштування для навігації і запису маршрутів в енергозберігаючому режимі. Втулок працює в фоновому режимі і періодично активує GPS для запису маршруту або відтворення голосових команд.</string>
|
||||||
<string name="osmand_accessibility_description">Втулок містить налаштування допоміжних можливостей.</string>
|
<string name="osmand_accessibility_description">Втулок містить налаштування допоміжних можливостей.</string>
|
||||||
<string name="extra_settings">Розширені налаштування</string>
|
<string name="extra_settings">Розширені налаштування</string>
|
||||||
|
@ -365,7 +365,7 @@
|
||||||
<string name="gpx_option_reverse_route">Виберіть зворотній напрямок</string>
|
<string name="gpx_option_reverse_route">Виберіть зворотній напрямок</string>
|
||||||
<string name="gpx_option_destination_point">Використовувати поточний пункт призначення</string>
|
<string name="gpx_option_destination_point">Використовувати поточний пункт призначення</string>
|
||||||
<string name="gpx_option_from_start_point">Пройти увесь шлях спочатку</string>
|
<string name="gpx_option_from_start_point">Пройти увесь шлях спочатку</string>
|
||||||
<string name="switch_to_vector_map_to_see">Для цього регіону доступні оффлайн векторні мапи\n\t\n\tДля їх використання виберіть пункт меню \'Шари мапи\' → \'Джерело мапи…\' → \'Локальні векторні мапи\'.</string>
|
<string name="switch_to_vector_map_to_see">Для цього регіону доступні оффлайн векторні мапи\n\t\n\tДля їх використання виберіть пункт меню \'Налаштування Мапи\' → \'Джерело мапи…\' → \'Локальні векторні мапи\'.</string>
|
||||||
<string name="choose_audio_stream">Голосові інструкції</string>
|
<string name="choose_audio_stream">Голосові інструкції</string>
|
||||||
<string name="choose_audio_stream_descr">Виберіть канал для голосових інструкцій (залежить від системи)</string>
|
<string name="choose_audio_stream_descr">Виберіть канал для голосових інструкцій (залежить від системи)</string>
|
||||||
<string name="voice_stream_voice_call">Потік голосових дзвінків</string>
|
<string name="voice_stream_voice_call">Потік голосових дзвінків</string>
|
||||||
|
@ -405,7 +405,7 @@
|
||||||
<string name="tip_favorites_t">"Точки, що часто використовуються можуть бути додані в Закладки.
|
<string name="tip_favorites_t">"Точки, що часто використовуються можуть бути додані в Закладки.
|
||||||
\n\nДля додавання точки до Закладок, відкрийте контекстне меню мапи, виберіть пункт \'Додати в Закладки\' та додайте назву закладки.
|
\n\nДля додавання точки до Закладок, відкрийте контекстне меню мапи, виберіть пункт \'Додати в Закладки\' та додайте назву закладки.
|
||||||
\n\nПісля додання до Закладок, вона буде доступна в \'Меню\' → \'Мої місця\'. Довге натискання на закладку в меню \'Закладки\' надасть можливість встановити її в якості місця призначення, редагувати її чи вилучити.
|
\n\nПісля додання до Закладок, вона буде доступна в \'Меню\' → \'Мої місця\'. Довге натискання на закладку в меню \'Закладки\' надасть можливість встановити її в якості місця призначення, редагувати її чи вилучити.
|
||||||
\n\nДля показу всіх збережених точок на мапі, активуйте шар \'Закладки\' в \'Меню\' → \'Шари мапи\' "</string>
|
\n\nДля показу всіх збережених точок на мапі, активуйте шар \'Закладки\' в \'Меню\' → \'Налаштування Мапи\' "</string>
|
||||||
<string name="error_doing_search">Помилка автономного пошуку</string>
|
<string name="error_doing_search">Помилка автономного пошуку</string>
|
||||||
<string name="search_offline_geo_error">Неможливо обробити запит \'%s\'</string>
|
<string name="search_offline_geo_error">Неможливо обробити запит \'%s\'</string>
|
||||||
<string name="search_osm_offline">Пошук адреси в локальних мапах</string>
|
<string name="search_osm_offline">Пошук адреси в локальних мапах</string>
|
||||||
|
@ -429,8 +429,8 @@
|
||||||
\n\nВікно маркеру приховується довгим натисканням на нього.
|
\n\nВікно маркеру приховується довгим натисканням на нього.
|
||||||
</string>
|
</string>
|
||||||
<string name="tip_initial">Допомога</string>
|
<string name="tip_initial">Допомога</string>
|
||||||
<string name="tip_initial_t">"OsmAnd - навігаційна програма з великими можливостями.
|
<string name="tip_initial_t">"OsmAnd — навігаційна програма з великими можливостями.
|
||||||
\n\nПочаткові відомості, як і деякі поради та детальна інструкція щодо використання знаходяться в \'Меню\'→\'Допомога\' на екрані з мапою. "</string>
|
\n\nПочаткові відомості, як і деякі поради щодо використання знаходяться в \'Меню\'→\'Допомога\' на екрані з мапою. "</string>
|
||||||
<string name="next_button">Наступний</string>
|
<string name="next_button">Наступний</string>
|
||||||
<string name="previous_button">Попередній</string>
|
<string name="previous_button">Попередній</string>
|
||||||
<string name="unit_of_length_descr">Змінити одиниці вимірювання довжини і швидкості</string>
|
<string name="unit_of_length_descr">Змінити одиниці вимірювання довжини і швидкості</string>
|
||||||
|
@ -493,8 +493,8 @@
|
||||||
<string name="use_osmand_routing_service">Автономна навігація > 20км</string>
|
<string name="use_osmand_routing_service">Автономна навігація > 20км</string>
|
||||||
<string name="use_osmand_routing_service_descr">Використовувати OsmAnd оффлайн навігацію на відстані > 20 км (експериментально)</string>
|
<string name="use_osmand_routing_service_descr">Використовувати OsmAnd оффлайн навігацію на відстані > 20 км (експериментально)</string>
|
||||||
<string name="osmand_routing_experimental">OsmAnd оффлайн навігація є експериментальною і не працює на відстанях > 20 км\n\nВ цьому випадку для прокладання маршруту використовуйте онлайн сервіс CloudMade.</string>
|
<string name="osmand_routing_experimental">OsmAnd оффлайн навігація є експериментальною і не працює на відстанях > 20 км\n\nВ цьому випадку для прокладання маршруту використовуйте онлайн сервіс CloudMade.</string>
|
||||||
<string name="specified_dir_doesnt_exist">Неможливо знайти вказану папку.</string>
|
<string name="specified_dir_doesnt_exist">Неможливо знайти вказану теку.</string>
|
||||||
<string name="application_dir">Папка програми</string>
|
<string name="application_dir">Тека даних</string>
|
||||||
|
|
||||||
<string name="build_installed">Збірка {0} успішно встановлена ({1}).</string>
|
<string name="build_installed">Збірка {0} успішно встановлена ({1}).</string>
|
||||||
<string name="downloading_build">Завантажується збірка…</string>
|
<string name="downloading_build">Завантажується збірка…</string>
|
||||||
|
@ -549,7 +549,7 @@
|
||||||
<string name="voice">Голос</string>
|
<string name="voice">Голос</string>
|
||||||
<string name="no_vector_map_loaded">Векторні мапи не завантажено</string>
|
<string name="no_vector_map_loaded">Векторні мапи не завантажено</string>
|
||||||
<string name="map_route_by_gpx">Навігація по GPX</string>
|
<string name="map_route_by_gpx">Навігація по GPX</string>
|
||||||
<string name="gpx_files_not_found">GPX файли не знайдені в папці /tracks</string>
|
<string name="gpx_files_not_found">Файли GPX не знайдені в теці з треками</string>
|
||||||
<string name="layer_gpx_layer">Трек GPX…</string>
|
<string name="layer_gpx_layer">Трек GPX…</string>
|
||||||
<string name="error_reading_gpx">Помилка читання GPX даних</string>
|
<string name="error_reading_gpx">Помилка читання GPX даних</string>
|
||||||
<string name="vector_data">Оффлайн векторні мапи</string>
|
<string name="vector_data">Оффлайн векторні мапи</string>
|
||||||
|
@ -684,7 +684,7 @@
|
||||||
<string name="route_general_information">Загальна відстань %1$s, Час в дорозі %2$d г %3$d хв.</string>
|
<string name="route_general_information">Загальна відстань %1$s, Час в дорозі %2$d г %3$d хв.</string>
|
||||||
<string name="router_service_descr">Виберіть сервіс для прокладання маршруту</string>
|
<string name="router_service_descr">Виберіть сервіс для прокладання маршруту</string>
|
||||||
<string name="router_service">Прокладання маршруту</string>
|
<string name="router_service">Прокладання маршруту</string>
|
||||||
<string name="sd_dir_not_accessible">Папка на SD-карті не доступна для збереження</string>
|
<string name="sd_dir_not_accessible">Тека даних на SD-карті не доступна</string>
|
||||||
<string name="download_question">Завантажити {0} - {1} ?</string>
|
<string name="download_question">Завантажити {0} - {1} ?</string>
|
||||||
<string name="download_question_exist">Оффлайн мапа для {0} вже існує ({1}). Хочете її оновити ({2}) ?</string>
|
<string name="download_question_exist">Оффлайн мапа для {0} вже існує ({1}). Хочете її оновити ({2}) ?</string>
|
||||||
<string name="address">Адрес</string>
|
<string name="address">Адрес</string>
|
||||||
|
@ -751,7 +751,7 @@
|
||||||
<string name="save_current_track">Зберегти активний GPX трек</string>
|
<string name="save_current_track">Зберегти активний GPX трек</string>
|
||||||
<string name="save_track_interval">Інтервал збереження під час навіґації</string>
|
<string name="save_track_interval">Інтервал збереження під час навіґації</string>
|
||||||
<string name="save_track_interval_descr">Вказати інтервал збереження точок треку під час навіґації</string>
|
<string name="save_track_interval_descr">Вказати інтервал збереження точок треку під час навіґації</string>
|
||||||
<string name="save_track_to_gpx_descrp">Треки буде збережено в трекову директорію під час навіґації</string>
|
<string name="save_track_to_gpx_descrp">Треки будуть збережені в теку для треків під час навіґації</string>
|
||||||
<string name="save_track_to_gpx">Записувати трек у файл GPX під час навіґації</string>
|
<string name="save_track_to_gpx">Записувати трек у файл GPX під час навіґації</string>
|
||||||
<string name="update_tile">Оновити мапу</string>
|
<string name="update_tile">Оновити мапу</string>
|
||||||
<string name="reload_tile">Оновити частину мапи</string>
|
<string name="reload_tile">Оновити частину мапи</string>
|
||||||
|
@ -1086,7 +1086,7 @@
|
||||||
\n\nДля кращого обчислення висоти використовується проекція EGM96.
|
\n\nДля кращого обчислення висоти використовується проекція EGM96.
|
||||||
\n\nOsmAnd покаже висоту над рівнем моря в EGM96 після завантаження файлу \'World Altitide Correction\' (WW15MGH.DAC), використовуючи \'Налаштування\'->\'Управління мапами\' (http://earth-info.nga.mil/GandG/wgs84/gravitymod/egm96/binary/WW15MGH.DAC). "</string>
|
\n\nOsmAnd покаже висоту над рівнем моря в EGM96 після завантаження файлу \'World Altitide Correction\' (WW15MGH.DAC), використовуючи \'Налаштування\'->\'Управління мапами\' (http://earth-info.nga.mil/GandG/wgs84/gravitymod/egm96/binary/WW15MGH.DAC). "</string>
|
||||||
<string name="monitoring_control_start">старт</string>
|
<string name="monitoring_control_start">старт</string>
|
||||||
<string name="background_service_is_enabled_question">Фоновий режим запущений. Ви хочете його відключити?</string>
|
<string name="background_service_is_enabled_question">Фоновий режим запущений. Ви хочете зупинити його роботу також?</string>
|
||||||
<string name="close_changeset">Закрити набір змін</string>
|
<string name="close_changeset">Закрити набір змін</string>
|
||||||
<string name="zxing_barcode_scanner_not_found">Програму \'Сканер штрих-кодів\' не знайдено. Шукати в Market?</string>
|
<string name="zxing_barcode_scanner_not_found">Програму \'Сканер штрих-кодів\' не знайдено. Шукати в Market?</string>
|
||||||
<string name="rendering_attr_roadColors_description">Виберіть кольорову схему доріг:</string>
|
<string name="rendering_attr_roadColors_description">Виберіть кольорову схему доріг:</string>
|
||||||
|
@ -1145,7 +1145,7 @@
|
||||||
\nЗахід: %2$s</string>
|
\nЗахід: %2$s</string>
|
||||||
<string name="day_night_info">Схід/Захід</string>
|
<string name="day_night_info">Схід/Захід</string>
|
||||||
<string name="map_widget_day_night">Денний/нічний режим</string>
|
<string name="map_widget_day_night">Денний/нічний режим</string>
|
||||||
<string name="map_widget_vector_attributes">Налаштування рендерингу:</string>
|
<string name="map_widget_vector_attributes">Налаштування візуалізації</string>
|
||||||
<string name="map_widget_renderer">Стиль мапи (векторн.)</string>
|
<string name="map_widget_renderer">Стиль мапи (векторн.)</string>
|
||||||
<string name="layer_map_appearance">Налаштування екрану</string>
|
<string name="layer_map_appearance">Налаштування екрану</string>
|
||||||
<string name="show_lanes">Відображати смуги руху</string>
|
<string name="show_lanes">Відображати смуги руху</string>
|
||||||
|
@ -1186,30 +1186,7 @@
|
||||||
\n\t* Доданий ще один типів доріг для велосипедів (Cycleway=track)
|
\n\t* Доданий ще один типів доріг для велосипедів (Cycleway=track)
|
||||||
\n\t* Виправлені помилки
|
\n\t* Виправлені помилки
|
||||||
</string>
|
</string>
|
||||||
<string name="osmand_long_description_1000_chars">
|
<string name="osmand_long_description_1000_chars">" OsmAnd (OSM Automated Navigation Directions) OsmAnd — навігаційне програмне забезпечення з відкритим кодом з доступом до різноманітних картографічних даних від OpenStreetMap (OSM). Всі картографічні дані (векторні та растрові) можуть бути збережені на карті пам’яті для подальшого автономного використання. OsmAnd також пропонує можливість прокладання маршруту як оффлайн, так і використовуючи онлайн-сервіси з покроковим голосовим супроводженням. Кілька основних можливостей: - Повноцінна робота без інтернет-з’єднання(просто збережіть векторні чи растрові дані на пристрій), - Компактна векторна мапа всього світу, - Завантаження мап країн чи регіону безпосередньо в програмі, - Можливість показу додаткових даних на мапі, наприклад шар для прокладання маршруту чи шар із записом GPX-треку, з POI, закладками, ізолініями висот, громадським транспортом, додатковими мапами з можливістю налаштовування рівня прозорості, - Автономний пошук адрес та POI, - Прокладання маршрутів оффлайн на короткі відстані (експериментальна функція), - Режими для пішохідної, автомобільної та велонавігації: - можливість перемикання на денний/нічний режим показу мапи, - автомасштабування мапи відповідно до швидкості руху, - можливість орієнтації мапи за компасом чи напрямком руху, - показ руху по смугах та обмежень швидкості, запис та голосове супроводження. Обмеження безкоштовної версії: - кількість завантажених мап є обмеженою, - відсутній оффлайн доступ до інформації з Вікіпедії для POI. OsmAnd активно розвивається, його подальший розвиток забезпечується фінансовими надходженнями від його користувачів, за рахунок якої відбувається подальша розробка та впровадження нових функцій. Якщо вам подобається OsmAnd, розгляньте можливість придбання OsmAnd+ чи підтримайте впровадження нових функцій, або зробіть благодійний внесок на osmand.net. "</string>
|
||||||
OsmAnd (OSM Automated Navigation Directions)
|
|
||||||
|
|
||||||
OsmAnd — навігаційне програмне забезпечення з відкритим кодом з доступом до різноманітних картографічних даних від OpenStreetMap (OSM). Всі картографічні дані (векторні та растрові) можуть бути збережені на карті пам’яті для подальшого автономного використання. OsmAnd також пропонує можливість прокладання маршруту як оффлайн, так і використовуючи онлайн-сервіси з покроковим голосовим супроводженням.
|
|
||||||
|
|
||||||
Кілька основних можливостей:
|
|
||||||
- Повноцінна робота без інтернет-з’єднання(просто збережіть векторні чи растрові дані до обраної теки),
|
|
||||||
- Компактна векторна мапа всього світу,
|
|
||||||
- Завантаження мап країн чи регіону безпосередньо в програмі,
|
|
||||||
- Можливість відображення додаткових даних на мапі, наприклад шар для прокладання маршруту чи шар із записом GPX-треку, з POI, закладками, ізолініями висот, громадським транспортом, додатковими мапами з можливістю налаштовування рівня прозорості,
|
|
||||||
- Автономний пошук адрес та POI,
|
|
||||||
- Прокладання маршрутів оффлайн на короткі відстані (експериментальна функція),
|
|
||||||
- Режими для пішохідної, автомобільної та велонавігації:
|
|
||||||
- можливість перемикання на денний/нічний режим відображення мапи,
|
|
||||||
- автомасштабування мапи відповідно до швидкості руху,
|
|
||||||
- можливість орієнтації мапи за компасом чи напрямком руху,
|
|
||||||
- показ руху по смугах та обмежень швидкості, запис та голосове супроводження.
|
|
||||||
|
|
||||||
Обмеження безкоштовної версії:
|
|
||||||
- кількість завантажених мап є обмеженою,
|
|
||||||
- відсутній оффлайн доступ до інформації з Вікіпедії для POI.
|
|
||||||
|
|
||||||
OsmAnd активно розвивається, його подальший розвиток забезпечується фінансовими надходженнями від його користувачів, за рахунок якої відбувається подальша розробка та впровадження нових функцій. Якщо вам подобається OsmAnd, розгляньте можливість придбання OsmAnd+ чи підтримайте впровадження нових функцій, або зробіть благодійний внесок на osmand.net.
|
|
||||||
</string>
|
|
||||||
<string name="osmand_extended_description_4000_chars">
|
<string name="osmand_extended_description_4000_chars">
|
||||||
OsmAnd (OSM Automated Navigation Directions) OsmAnd — навігаційне програмне забезпечення з доступом до вільних, доступних по всьому світу та високоякісних картографічних даних від OpenStreetMap (OSM). Всі картографічні дані можуть зберігатися на карті пам’яті для автономного використання. За допомогою GPS, доступному у вашому пристрої, OsmAnd пропонує вам маршрутизацію, з графічними та голосовими підказками, для автомобіля, велосипедів і пішоходів. Всі основні функції працюють як онлайн, так і в автономному режимі (немає потреби в інтернеті).
|
OsmAnd (OSM Automated Navigation Directions) OsmAnd — навігаційне програмне забезпечення з доступом до вільних, доступних по всьому світу та високоякісних картографічних даних від OpenStreetMap (OSM). Всі картографічні дані можуть зберігатися на карті пам’яті для автономного використання. За допомогою GPS, доступному у вашому пристрої, OsmAnd пропонує вам маршрутизацію, з графічними та голосовими підказками, для автомобіля, велосипедів і пішоходів. Всі основні функції працюють як онлайн, так і в автономному режимі (немає потреби в інтернеті).
|
||||||
|
|
||||||
|
@ -1281,27 +1258,7 @@ OsmAnd має відкриті сирці і активно розвиваєть
|
||||||
Перелік підтримуваних країн (взагалі то увесь світ!):
|
Перелік підтримуваних країн (взагалі то увесь світ!):
|
||||||
Афганістан, Австралія, Австрія, Азербайджан, Албанія, Алжир, Ангілья, Ангола, Андорра, Антигуа і Барбуда, Аргентина, Аруба, Багамські острови, Бангладеш, Барбадос, Бахрейн, Беліз, Бельгія, Бенін, Бермудські острови, Білорусь, Болгарія, Болівія, Бонайре, Боснія і Герцеговина, Ботсвана, Бразилія, Британські Віргінські острови, Бруней, Буркіна-Фасо, Бурунді, Бутан, В’єтнам, Вануату, Ватикан, Венесуела, Вірменія, Габон, Гаїті, Гайана, Гамбія, Гана, Гваделупа, Гватемала, Гвінея, Гвінея-Бісау, Гернсі, Гібралтар, Гондурас, Гонконг, Гренада, Гренландія, Греція, Грузія, Гуам, Данія, Джерсі, Джібуті, Домініка, Домініканська Республіка, Еквадор, Екваторіальна Гвінея, Еритрея, Естонія, Ефіопія, Єгипет, Ємен, Замбія, Західна Сахара,, Зімбабве., Ізраїль, Індія , Індонезія, Ірак, Іран, Ірландія, Ісландія, Іспанія, Італія, Йорданія, Кабо-Верде, Казахстан, Камбоджа, Камерун, Канада, Катар, Кенія, Киргизстан, Китай, Кіпр, Кірибаті, Колумбія, Коморські Острови, Конго, Коста-Ріка , Кот-д’Івуар, Куба, Кувейт, Кюрасао, Лаос, Латвія, Лесото, Литва, Ліберія , Ліван, Лівія, Ліхтенштейн, Люксембург, М’янма, Маврикій, Мавританія, Мадагаскар, Майотта, Макао, Македонія, Малаві, Малайзія, Малі, Мальдіви, Мальта, Марокко, Мартініка, Мексика, Мікронезія, Мозамбік , Молдова, Монако, Монголія, Монтсеррат, Намібія, Науру, Непал, Нігер, Нігерія, Нідерланди, Нідерландські Антильські острови, Нікарагуа, Німеччина, Нова Зеландія, Нова Каледонія, Норвегія, Об’єднані Арабські Емірати, Оман, острів Мен, Острів Святої Єлени, Пакистан, Палау, Палестина, Панама, Папуа Нова Гвінея, Парагвай, Перу, Південна Африка, Південна Грузія, Південний Судан, Північна Корея і Південна Корея, Польща , Португалія, Пуерто-Ріко, Росія, Руанда, Румунія, Сальвадор, Самоа, Сан-Марино, Саудівська Аравія, Свазіленд, Сейшельські острови, Сен-Мартен, Сен-П’єр і Мікелон, Сенегал, Сент-Бартелемі, Сент-Вінсент і Гренадини, Сент-Кітс і Невіс, Сент-Люсія, Сербія, Сирія, Сінгапур, Словаччина, Словенія, Сомалі, Сполучене Королівство (Великобританія), Сполучені Штати Америки (США), Судан, Сурінам, Сьєрра-Леоне, Таджикистан, Таїланд , Тайвань, Танзанія, Тимор-Лешті, Того, Токелау, Тонга, Тринідад і Тобаго, Тувалу, Туніс, Туреччина, Туркменістан, Уганда, Угорщина, Узбекистан, Україна, Уолліс і Футуна, Уругвай, Фіджі, Філіппіни, Фінляндія, Франція, Французька Гвіана, Французька Полінезія, Хорватія, Центрально-Африканська Республіка, Чад, Чеська Республіка, Чилі, Чорногорія, Швейцарія, Швеція, Шрі-Ланка, Ямайка, Японія.
|
Афганістан, Австралія, Австрія, Азербайджан, Албанія, Алжир, Ангілья, Ангола, Андорра, Антигуа і Барбуда, Аргентина, Аруба, Багамські острови, Бангладеш, Барбадос, Бахрейн, Беліз, Бельгія, Бенін, Бермудські острови, Білорусь, Болгарія, Болівія, Бонайре, Боснія і Герцеговина, Ботсвана, Бразилія, Британські Віргінські острови, Бруней, Буркіна-Фасо, Бурунді, Бутан, В’єтнам, Вануату, Ватикан, Венесуела, Вірменія, Габон, Гаїті, Гайана, Гамбія, Гана, Гваделупа, Гватемала, Гвінея, Гвінея-Бісау, Гернсі, Гібралтар, Гондурас, Гонконг, Гренада, Гренландія, Греція, Грузія, Гуам, Данія, Джерсі, Джібуті, Домініка, Домініканська Республіка, Еквадор, Екваторіальна Гвінея, Еритрея, Естонія, Ефіопія, Єгипет, Ємен, Замбія, Західна Сахара,, Зімбабве., Ізраїль, Індія , Індонезія, Ірак, Іран, Ірландія, Ісландія, Іспанія, Італія, Йорданія, Кабо-Верде, Казахстан, Камбоджа, Камерун, Канада, Катар, Кенія, Киргизстан, Китай, Кіпр, Кірибаті, Колумбія, Коморські Острови, Конго, Коста-Ріка , Кот-д’Івуар, Куба, Кувейт, Кюрасао, Лаос, Латвія, Лесото, Литва, Ліберія , Ліван, Лівія, Ліхтенштейн, Люксембург, М’янма, Маврикій, Мавританія, Мадагаскар, Майотта, Макао, Македонія, Малаві, Малайзія, Малі, Мальдіви, Мальта, Марокко, Мартініка, Мексика, Мікронезія, Мозамбік , Молдова, Монако, Монголія, Монтсеррат, Намібія, Науру, Непал, Нігер, Нігерія, Нідерланди, Нідерландські Антильські острови, Нікарагуа, Німеччина, Нова Зеландія, Нова Каледонія, Норвегія, Об’єднані Арабські Емірати, Оман, острів Мен, Острів Святої Єлени, Пакистан, Палау, Палестина, Панама, Папуа Нова Гвінея, Парагвай, Перу, Південна Африка, Південна Грузія, Південний Судан, Північна Корея і Південна Корея, Польща , Португалія, Пуерто-Ріко, Росія, Руанда, Румунія, Сальвадор, Самоа, Сан-Марино, Саудівська Аравія, Свазіленд, Сейшельські острови, Сен-Мартен, Сен-П’єр і Мікелон, Сенегал, Сент-Бартелемі, Сент-Вінсент і Гренадини, Сент-Кітс і Невіс, Сент-Люсія, Сербія, Сирія, Сінгапур, Словаччина, Словенія, Сомалі, Сполучене Королівство (Великобританія), Сполучені Штати Америки (США), Судан, Сурінам, Сьєрра-Леоне, Таджикистан, Таїланд , Тайвань, Танзанія, Тимор-Лешті, Того, Токелау, Тонга, Тринідад і Тобаго, Тувалу, Туніс, Туреччина, Туркменістан, Уганда, Угорщина, Узбекистан, Україна, Уолліс і Футуна, Уругвай, Фіджі, Філіппіни, Фінляндія, Франція, Французька Гвіана, Французька Полінезія, Хорватія, Центрально-Африканська Республіка, Чад, Чеська Республіка, Чилі, Чорногорія, Швейцарія, Швеція, Шрі-Ланка, Ямайка, Японія.
|
||||||
</string>
|
</string>
|
||||||
<string name="osmand_plus_long_description_1000_chars">
|
<string name="osmand_plus_long_description_1000_chars">" OsmAnd+ (OSM Automated Navigation Directions) OsmAnd+ — навігаційне програмне забезпечення з відкритим кодом з доступом до різноманітних картографічних даних від OpenStreetMap (OSM). Всі картографічні дані (векторні та растрові) можуть бути збережені на карті пам’яті для подальшого автономного використання. OsmAnd також пропонує можливість прокладання маршруту як оффлайн, так і використовуючи онлайн-сервіси з покроковим голосовим супроводженням. OsmAnd+ — це платна версія, купуючи яку ви підтримуєте проект, фінансуючи розробку нових функцій, одержуючи останні оновлення. Кілька основних можливостей: - Повна оффлайн функціональність (просто збережіть векторні чи растрові дані на пристрій), - Компактна векторна мапа для всього світу, - Необмежена кількість завантажень мап окремої країни чи регіону безпосередньо в програмі, - Можливість автономної роботи із даними Вікіпедії (завантажте POI з Вікіпедії) є чудовим для інструментом для мандрівників, - Можливість показу додаткових даних на мапі, наприклад шар для прокладання маршруту чи шар із записом GPX-треку, з POI, закладками, ізолініями висот, громадським транспортом, додатковими мапами з можливістю налаштовування рівня прозорості, - Автономний пошук адрес та POI, - Прокладання маршрутів оффлайн для коротких відстаней (експериментальна функція), - Режими для пішохідної, автомобільної та велонавігації: - можливість перемикання на денний/нічний режим показу, - мапи відповідно до швидкості руху, - можливість орієнтації мапи за компасом чи напрямком руху, - показ руху по смугах та обмежень швидкості, голосове супроводження (записане чи синтезоване). "</string>
|
||||||
OsmAnd+ (OSM Automated Navigation Directions)
|
|
||||||
|
|
||||||
OsmAnd+ — навігаційне програмне забезпечення з відкритим кодом з доступом до різноманітних картографічних даних від OpenStreetMap (OSM). Всі картографічні дані (векторні та растрові) можуть бути збережені на карті пам’яті для подальшого автономного використання. OsmAnd також пропонує можливість прокладання маршруту як оффлайн, так і використовуючи онлайн-сервіси з покроковим голосовим супроводженням.
|
|
||||||
|
|
||||||
OsmAnd+ — це платна версія, купуючи яку ви підтримуєте проект, фінансуючи розробку нових функцій, одержуючи останні оновлення.
|
|
||||||
|
|
||||||
Кілька основних можливостей:
|
|
||||||
- Повна оффлайн функціональність (збереження векторних чи растрових мап до обраної теки),
|
|
||||||
- Компактна векторна мапа для всього світу,
|
|
||||||
- Необмежена кількість завантажень мап окремої країни чи регіону безпосередньо в програмі,
|
|
||||||
- Можливість автономної роботи із даними Вікіпедії (завантажте POI з Вікіпедії) є чудовим для інструментом для мандрівників,
|
|
||||||
- Можливість відображення додаткових даних на мапі, наприклад шар для прокладання маршруту чи шар із записом GPX-треку, з POI, закладками, ізолініями висот, громадським транспортом, додатковими мапами з можливістю налаштовування рівня прозорості,
|
|
||||||
- Автономний пошук адрес та POI,
|
|
||||||
- Прокладання маршрутів оффлайн для коротких відстаней (експериментальна функція),
|
|
||||||
- Режими для пішохідної, автомобільної та велонавігації:
|
|
||||||
- можливість перемикання на денний/нічний режим показу,
|
|
||||||
- мапи відповідно до швидкості руху,
|
|
||||||
- можливість орієнтації мапи за компасом чи напрямком руху,
|
|
||||||
- показ руху по смугах та обмежень швидкості, голосове супроводження (записане чи синтезоване).
|
|
||||||
</string>
|
|
||||||
|
|
||||||
<string name="tip_rotation_switching_t_v2">Натиснувши на іконку компаса на екрані з мапою ви можете змінити режим повороту мапи
|
<string name="tip_rotation_switching_t_v2">Натиснувши на іконку компаса на екрані з мапою ви можете змінити режим повороту мапи
|
||||||
\n\nДоступні варіанти
|
\n\nДоступні варіанти
|
||||||
|
@ -1309,18 +1266,16 @@ OsmAnd має відкриті сирці і активно розвиваєть
|
||||||
\n\t \'За напрямком руху\' - Мапа буде обертатись у відповідності з напрямком вашого руху. Вгорі - напрямок руху
|
\n\t \'За напрямком руху\' - Мапа буде обертатись у відповідності з напрямком вашого руху. Вгорі - напрямок руху
|
||||||
\n\t \'За напрямком компаса\' - Мапа буде обертатись так, щоб сумістити північ мапи і північний напрямок (використовуються дані компаса з пристрою)
|
\n\t \'За напрямком компаса\' - Мапа буде обертатись так, щоб сумістити північ мапи і північний напрямок (використовуються дані компаса з пристрою)
|
||||||
</string>
|
</string>
|
||||||
<string name="tip_day_night_mode_t_v2">Для локальних векторних мап можна змінювати вигляд залежно від часу доби: вдень (свтлі), вночі (темні). Нічний режим безпечніший для використання водіями в темряві
|
<string name="tip_day_night_mode_t_v2">"Для локальних векторних мап можна змінювати вигляд залежно від часу доби: вдень (світлі), вночі (темні). Нічний режим безпечніший для використання водіями в темряві
|
||||||
\n\nДля зміни денного/нічного режимів натисніть \'Меню\' → \'Налаштування екрану\' → \'Денний/нічний режим\'
|
\n\nДля зміни денного/нічного режимів натисніть \'Меню\' → \'Налаштування Мапи\' → \'Денний/нічний режим\'
|
||||||
\n\nМожливі варіанти:
|
\n\nМожливі варіанти:
|
||||||
\n\t \'Схід/Захід сонця\' - автоматичний режим, що керується даними про положення сонця (типовий)
|
\n\t \'Схід/Захід сонця\' - автоматичний режим, що керується даними про положення сонця (типовий)
|
||||||
\n\t \'Денний\' - завжди використовується денний режим
|
\n\t \'Денний\' - завжди використовується денний режим
|
||||||
\n\t \'Нічний\' - завжди використовується нічний режим
|
\n\t \'Нічний\' - завжди використовується нічний режим
|
||||||
\n\t \'Датчик освітленості\' - вигляд мапи змінюється автоматично в залежності від датчика освітленості (при його наявності) у вашому пристрої
|
\n\t \'Датчик освітленості\' - вигляд мапи змінюється автоматично в залежності від датчика освітленості (при його наявності) у вашому пристрої "</string>
|
||||||
</string>
|
<string name="tip_map_switch_t_v2">"Мапи і шари можна змінювати через \'Меню\' → \'Налаштування Мапи\'.
|
||||||
<string name="tip_map_switch_t_v2">Мапи і шари можна змінювати через \'\Меню\' → \'Шари мапи\'.
|
\n\nВ \'Джерела мап…\' можна вибрати попередньо завантажені векторі мапи (типово потрібні для навігації оффлайн), чи попередньо вказані (онлайнові чи кешовані) джерела квадратів мап (для використання потрібно увімкнути втулок \'Онлайн мапи\') або самостійно створені мапи (наприклад, за допомогою OsmAndMapCreator для ПК).
|
||||||
\n\nВ \'Джерела мап…\' можна вибрати попередньо завантажені векторі мапи (типово потрібні для навігації оффлайн), чи попередньо вказані (онлайнові чи кешовані) джерела квадратів мап (для використання потрібно увімкнути втулок \'Онлайн мапи\') або самостійно створені мапи (наприклад, за допомогою OsmAndMapCreator для ПК).
|
\n\nOsmAnd також підтримує джерела вказані користувачем. "</string>
|
||||||
\n\nOsmAnd також підтримує джерела вказані користувачем.
|
|
||||||
</string>
|
|
||||||
<string name="street_name">Вулиця</string>
|
<string name="street_name">Вулиця</string>
|
||||||
<string name="hno">Номер будинку</string>
|
<string name="hno">Номер будинку</string>
|
||||||
<string name="tip_recent_changes_1_3_t">Зміни в 1.3:
|
<string name="tip_recent_changes_1_3_t">Зміни в 1.3:
|
||||||
|
@ -1465,15 +1420,14 @@ OsmAnd має відкриті сирці і активно розвиваєть
|
||||||
* Натисніть на масштабну лінійку, щоб побачити більше дій.</string>
|
* Натисніть на масштабну лінійку, щоб побачити більше дій.</string>
|
||||||
<string name="access_mark_final_location_first">Допоміжні можливості: будь ласка, спочатку оберіть пункт призначення</string>
|
<string name="access_mark_final_location_first">Допоміжні можливості: будь ласка, спочатку оберіть пункт призначення</string>
|
||||||
<string name="use_magnetic_sensor_descr">Використовувати магнітометр для визначення сторін світу замість, датчику орієнтації</string>
|
<string name="use_magnetic_sensor_descr">Використовувати магнітометр для визначення сторін світу замість, датчику орієнтації</string>
|
||||||
<string name="tip_search_t">Ви можете шукати об’єкти безпосередньо на мапі через \'Контекстне меню\' → \'Шукати поруч\' або на екрані пошуку \'Меню\' → \'Пошук\'
|
<string name="tip_search_t">"Ви можете шукати об’єкти безпосередньо на мапі через \'Контекстне меню\' → \'Шукати поруч\' або на екрані пошуку \'Меню\' → \'Пошук\'
|
||||||
\n\nНа пошуковому екрані наявні шаблони для пошуку
|
\n\nНа пошуковому екрані наявні шаблони для пошуку
|
||||||
\n\t* за адресою
|
\n\t* за адресою
|
||||||
\n\t* координатами
|
\n\t* координатами
|
||||||
\n\t* пошук POI (за типом чи назвою)
|
\n\t* пошук POI (за типом чи назвою)
|
||||||
\n\t* використання результатів історії пошуку
|
\n\t* використання результатів історії пошуку
|
||||||
\n\t* або обираючи із збережених точок.
|
\n\t* або обираючи із збережених точок.
|
||||||
\n\nУ допомогу до всіх підказок, контекстне меню пропонує два варіанти: \'Маршрут\' чи \'Показати на мапі\'
|
\n\nУ допомогу до всіх підказок, контекстне меню пропонує два варіанти: \'Маршрут до\' чи \'Показати на мапі\' "</string>
|
||||||
</string>
|
|
||||||
<string name="destination_point">Пункт призначення %1$s</string>
|
<string name="destination_point">Пункт призначення %1$s</string>
|
||||||
|
|
||||||
|
|
||||||
|
@ -1493,9 +1447,8 @@ OsmAnd має відкриті сирці і активно розвиваєть
|
||||||
<string name="speak_speed_limit">Попереджати про обмеження швидкості</string>
|
<string name="speak_speed_limit">Попереджати про обмеження швидкості</string>
|
||||||
<string name="speak_cameras">Попереджати про камери фіксації швидкості</string>
|
<string name="speak_cameras">Попереджати про камери фіксації швидкості</string>
|
||||||
<string name="speak_traffic_warnings">Попереджати про перешкоди на шляху</string>
|
<string name="speak_traffic_warnings">Попереджати про перешкоди на шляху</string>
|
||||||
<string name="binary_map_download_success">Завантаження закінчено.
|
<string name="binary_map_download_success">"Завантаження закінчено.
|
||||||
\n\t\n\tДля використання мап скористайтесь \'Меню\' → \'Мапа\' → \'Джерело мапи…\' → \'Оффлайн векторні мапи\'.
|
\n\t\n\tДля використання мап скористайтесь \'Меню\' → \'Налаштування Мапи\' → \'Джерело мапи…\' → \'Оффлайн векторні мапи\'. "</string>
|
||||||
</string>
|
|
||||||
<string name="route_descr_map_location">Мапа: </string>
|
<string name="route_descr_map_location">Мапа: </string>
|
||||||
<string name="osb_author_or_password_not_specified">Введіть OSM логін і пароль в налаштуваннях</string>
|
<string name="osb_author_or_password_not_specified">Введіть OSM логін і пароль в налаштуваннях</string>
|
||||||
<string name="clear_intermediate_points">Очистити проміжні точки</string>
|
<string name="clear_intermediate_points">Очистити проміжні точки</string>
|
||||||
|
@ -1585,12 +1538,11 @@ OsmAnd має відкриті сирці і активно розвиваєть
|
||||||
<string name="edit_tilesource_name">Назва</string>
|
<string name="edit_tilesource_name">Назва</string>
|
||||||
<string name="maps_define_edit">Визначити/змінити…</string>
|
<string name="maps_define_edit">Визначити/змінити…</string>
|
||||||
<string name="tip_map_styles">Стилі мапи</string>
|
<string name="tip_map_styles">Стилі мапи</string>
|
||||||
<string name="tip_map_styles_t">OsmAnd підтримує показ локальних векторних мап різними стилями, відповідно до ваших потреб:
|
<string name="tip_map_styles_t">"OsmAnd підтримує показ локальних векторних мап різними стилями, відповідно до ваших потреб:
|
||||||
\n\nНа відміну від збалансованого \'типового\' стилю, в \'Меню\' → \'Налаштування екрану\' → \'Стилі мап\' оберіть для прикладу
|
\n\nНа відміну від збалансованого \'типового\' стилю, в \'Меню\' → \'Налаштування мапи\' → \'Стилі мап\' оберіть для прикладу
|
||||||
\n\t* \'Туристичний стиль\', якій містить більш докладну інформацію для туристичних подорожей, включаючи оптимізацію для професійних водіїв (більша контрастність, більш помітні дороги), налаштування для гірських походів (шкала SAC), велосипедні маршрути, підтримку символів для пішого туризму й т.і.
|
\n\t* \'Туристичний стиль\', якій містить більш докладну інформацію для туристичних подорожей, включаючи оптимізацію для професійних водіїв (більша контрастність, більш помітні дороги), налаштування для гірських походів (шкала SAC), велосипедні маршрути, підтримку символів для пішого туризму й т.і.
|
||||||
\n\t* \'Висока контрастність доріг\' показує дороги дуже помітними кольорами для того щоб вони були помітні навіть у сонячний день чи дуже яскравому освітленні
|
\n\t* \'Висока контрастність доріг\' показує дороги дуже помітними кольорами для того щоб вони були помітні навіть у сонячний день чи дуже яскравому освітленні
|
||||||
\n\t* \'Зимові та гірськолижні\' відтворює зимовий вигляд (все порито снігом), а також показує основні гірськолижні спуски та підйомники (якщо завантажено мапу \'World ski\')
|
\n\t* \'Зимові та гірськолижні\' відтворює зимовий вигляд (все порито снігом), а також показує основні гірськолижні спуски та підйомники (якщо завантажено мапу \'World ski\') "</string>
|
||||||
</string>
|
|
||||||
<string name="base_world_map">основна мапа світу</string>
|
<string name="base_world_map">основна мапа світу</string>
|
||||||
|
|
||||||
|
|
||||||
|
@ -1653,7 +1605,7 @@ OsmAnd має відкриті сирці і активно розвиваєть
|
||||||
<string name="stop_navigation_service">Зупинити</string>
|
<string name="stop_navigation_service">Зупинити</string>
|
||||||
<string name="enable_sleep_mode">Ввімкнути режим сну GPS</string>
|
<string name="enable_sleep_mode">Ввімкнути режим сну GPS</string>
|
||||||
<string name="gps_wake_up_timer">Інтервал вмикання GPS</string>
|
<string name="gps_wake_up_timer">Інтервал вмикання GPS</string>
|
||||||
<string name="sleep_mode_stop_dialog">Збудити зі сну GPS?</string>
|
<string name="sleep_mode_stop_dialog">Зупинити фоновий режим GPS?</string>
|
||||||
<string name="map_preferred_locale_descr">Бажана мова для етикеток на мапі (якщо вона недоступна будуть показані позначки англійською чи місцевою мовами)</string>
|
<string name="map_preferred_locale_descr">Бажана мова для етикеток на мапі (якщо вона недоступна будуть показані позначки англійською чи місцевою мовами)</string>
|
||||||
<string name="map_preferred_locale">Бажана мова мапи</string>
|
<string name="map_preferred_locale">Бажана мова мапи</string>
|
||||||
<string name="local_map_names">Назви місцевою мовою</string>
|
<string name="local_map_names">Назви місцевою мовою</string>
|
||||||
|
@ -1851,13 +1803,13 @@ OsmAnd має відкриті сирці і активно розвиваєть
|
||||||
<string name="routing_attr_avoid_motorway_description">Уникати автомагістралі</string>
|
<string name="routing_attr_avoid_motorway_description">Уникати автомагістралі</string>
|
||||||
<string name="routing_attr_weight_name">Максимальна вага</string>
|
<string name="routing_attr_weight_name">Максимальна вага</string>
|
||||||
<string name="routing_attr_weight_description">Задайте обмеження маси автівки</string>
|
<string name="routing_attr_weight_description">Задайте обмеження маси автівки</string>
|
||||||
<string name="android_19_location_disabled">"Починаючи з версії KitKat ви не в змозі завантажувати та оновлювати мапи у попередньому сховищі (%s). Чи бажаєте його змінити та скопіювати всі файли в нове місце?
|
<string name="android_19_location_disabled">"Починаючи з версії Android 4.4 (KitKat) ви не в змозі завантажувати та оновлювати мапи у попередню теку (%s). Чи бажаєте її змінити та скопіювати всі файли в нове місце?
|
||||||
\n Примітка: старі фали залишаться недоторканими.
|
\n Примітка 1: ваші старі фали залишаться недоторканими (їх можна вилучити вручну).
|
||||||
\n Примітка: спільне користування фалами між OsmAnd та OsmAnd+ не можливе. "</string>
|
\n Примітка 2: в новій теці спільне користування фалами між OsmAnd та OsmAnd+ не можливе."</string>
|
||||||
<string name="application_dir_change_warning2">OsmAnd намагається перенести дані до нового місця. Ви згодні?</string>
|
<string name="application_dir_change_warning2">OsmAnd намагається перенести дані до нового місця. Ви згодні?</string>
|
||||||
<string name="copying_osmand_one_file_descr">Файл (%s) копіюється на нове місце…</string>
|
<string name="copying_osmand_one_file_descr">Файл (%s) копіюється на нове місце…</string>
|
||||||
<string name="copying_osmand_files_descr">Копіювання файлів OsmAnd до нового місця (%s)</string>
|
<string name="copying_osmand_files_descr">Копіювання файлів даних OsmAnd до нового місця (%s)</string>
|
||||||
<string name="copying_osmand_files">Копіювання файлів OsmAnd</string>
|
<string name="copying_osmand_files">Копіювання файлів даних OsmAnd</string>
|
||||||
<string name="calculate_osmand_route_gpx">Розрахувати офлайн маршрут в OsmAnd</string>
|
<string name="calculate_osmand_route_gpx">Розрахувати офлайн маршрут в OsmAnd</string>
|
||||||
<string name="app_mode_truck">Вантажівка</string>
|
<string name="app_mode_truck">Вантажівка</string>
|
||||||
<string name="guidance_preferences_descr">Налаштування навігації</string>
|
<string name="guidance_preferences_descr">Налаштування навігації</string>
|
||||||
|
@ -1880,7 +1832,7 @@ OsmAnd має відкриті сирці і активно розвиваєть
|
||||||
<string name="amenity_type_seamark">Навігаційний знак</string>
|
<string name="amenity_type_seamark">Навігаційний знак</string>
|
||||||
<string name="app_modes_choose_descr">Виберіть профілі, видимі в застосунку</string>
|
<string name="app_modes_choose_descr">Виберіть профілі, видимі в застосунку</string>
|
||||||
<string name="app_modes_choose">Профілі застосунку</string>
|
<string name="app_modes_choose">Профілі застосунку</string>
|
||||||
<string name="map_widget_map_rendering">Рендерінг мапи:</string>
|
<string name="map_widget_map_rendering">Візуалізація мапи</string>
|
||||||
<string name="app_mode_hiking">Піший туризм</string>
|
<string name="app_mode_hiking">Піший туризм</string>
|
||||||
<string name="app_mode_motorcycle">Мотоцикл</string>
|
<string name="app_mode_motorcycle">Мотоцикл</string>
|
||||||
<string name="app_mode_boat">Човен</string>
|
<string name="app_mode_boat">Човен</string>
|
||||||
|
@ -1921,13 +1873,13 @@ OsmAnd має відкриті сирці і активно розвиваєть
|
||||||
<string name="share_fav">Поділитись</string>
|
<string name="share_fav">Поділитись</string>
|
||||||
<string name="share_fav_subject">Закладки, якими поділились через OsmAnd</string>
|
<string name="share_fav_subject">Закладки, якими поділились через OsmAnd</string>
|
||||||
<string name="navigation_intent_invalid">Невірний формат: %s</string>
|
<string name="navigation_intent_invalid">Невірний формат: %s</string>
|
||||||
<string name="rendering_attr_coloredBuildings_name">Кольорові будівлі</string>
|
<string name="rendering_attr_coloredBuildings_name">Кольорове маркування будівель за типом</string>
|
||||||
<string name="osmo_invite">Запросити…</string>
|
<string name="osmo_invite">Запросити…</string>
|
||||||
<string name="osmo_leave_confirmation_msg">Ви бажаєте вийти з групи %1$s?</string>
|
<string name="osmo_leave_confirmation_msg">Ви бажаєте вийти з групи %1$s?</string>
|
||||||
<string name="osmo_specify_tracker_id">Будь ласка, вкажіть id</string>
|
<string name="osmo_specify_tracker_id">Будь ласка, вкажіть id</string>
|
||||||
<string name="continue_navigation">Продовжити навігацію</string>
|
<string name="continue_navigation">Продовжити навігацію</string>
|
||||||
<string name="pause_navigation">Призупинити навігацію</string>
|
<string name="pause_navigation">Призупинити навігацію</string>
|
||||||
<string name="rendering_attr_subwayMode_name">Режим метро</string>
|
<string name="rendering_attr_subwayMode_name">Маршрути метро</string>
|
||||||
<string name="rendering_attr_alpineHiking_name">Піший гірський туризм (шкала SAC)</string>
|
<string name="rendering_attr_alpineHiking_name">Піший гірський туризм (шкала SAC)</string>
|
||||||
<string name="rendering_attr_alpineHiking_description">Візуалізація шляху за шкалою SAC</string>
|
<string name="rendering_attr_alpineHiking_description">Візуалізація шляху за шкалою SAC</string>
|
||||||
<string name="rendering_attr_osmcTraces_name">Шар символів для пішого туризму</string>
|
<string name="rendering_attr_osmcTraces_name">Шар символів для пішого туризму</string>
|
||||||
|
@ -1951,7 +1903,7 @@ OsmAnd має відкриті сирці і активно розвиваєть
|
||||||
<string name="save_track_to_gpx_globally">Писати трек у файл GPX</string>
|
<string name="save_track_to_gpx_globally">Писати трек у файл GPX</string>
|
||||||
<string name="save_track_to_gpx_globally_descr">Загальний запис місцезнаходження в файл GPX можна ввімкнути або вимкнути кнопкою запису GPX на екрані з мапою</string>
|
<string name="save_track_to_gpx_globally_descr">Загальний запис місцезнаходження в файл GPX можна ввімкнути або вимкнути кнопкою запису GPX на екрані з мапою</string>
|
||||||
<string name="save_track_interval_globally">Інтервал записування</string>
|
<string name="save_track_interval_globally">Інтервал записування</string>
|
||||||
<string name="rendering_attr_publicTransportMode_name">Режим громадського транспорту</string>
|
<string name="rendering_attr_publicTransportMode_name">Маршрути автобусів, тролейбусів та маршруток</string>
|
||||||
<string name="record_plugin_name">Запис власних подорожей</string>
|
<string name="record_plugin_name">Запис власних подорожей</string>
|
||||||
<string name="int_hour">г</string>
|
<string name="int_hour">г</string>
|
||||||
<string name="duration">Тривалісьть</string>
|
<string name="duration">Тривалісьть</string>
|
||||||
|
@ -1961,9 +1913,68 @@ OsmAnd має відкриті сирці і активно розвиваєть
|
||||||
<string name="waypoints">Путьові точки</string>
|
<string name="waypoints">Путьові точки</string>
|
||||||
<string name="targets">Цілі</string>
|
<string name="targets">Цілі</string>
|
||||||
<string name="way_alarms">Перешкоди</string>
|
<string name="way_alarms">Перешкоди</string>
|
||||||
<string name="speak_favorites">Оголошувати улюблені</string>
|
<string name="speak_favorites">Оголошувати закладки, що є поруч</string>
|
||||||
<string name="speak_poi">Оголошувати POI</string>
|
<string name="speak_poi">Оголошувати POI, що є поруч</string>
|
||||||
<string name="confirm_every_run">Завжди питати</string>
|
<string name="confirm_every_run">Завжди питати</string>
|
||||||
<string name="save_global_track_interval_descr">Оберіть інтервал періодичності запису треку (вмикається через віджет запису GPX)</string>
|
<string name="save_global_track_interval_descr">Оберіть інтервал періодичності запису треку (вмикається через віджет запису GPX)</string>
|
||||||
<string name="save_global_track_interval">Загальний інтервал запису</string>
|
<string name="save_global_track_interval">Загальний інтервал запису</string>
|
||||||
|
<string name="home_button">Додому</string>
|
||||||
|
<string name="show_map">Показати мапу</string>
|
||||||
|
<string name="osmo_use_https_descr">Використовувати захищене з’єднання з сервером</string>
|
||||||
|
<string name="osmo_use_https">Використовувати https</string>
|
||||||
|
<string name="advanced_settings">Додатково</string>
|
||||||
|
<string name="map_update">Мапи</string>
|
||||||
|
<string name="search_for">Шукати</string>
|
||||||
|
<string name="show_all">Показати все</string>
|
||||||
|
<string name="coordinates">Координати</string>
|
||||||
|
<string name="rendering_attr_tramTrainRoutes_name">Маршрути трамваїв та поїздів</string>
|
||||||
|
<string name="lock_screen_request_explanation">%1$s потрібен цей дозвіл, щоб вимкнути екран для економії енергії.</string>
|
||||||
|
<string name="wake_on_voice">Увімкнути екран</string>
|
||||||
|
<string name="wake_on_voice_descr">Вмикати екран телефону під час наближення до повороту</string>
|
||||||
|
<string name="wake_on_voice_never">Ніколи</string>
|
||||||
|
<string name="select_impassable_road">Вибрати на мапі</string>
|
||||||
|
<string name="impassable_road">Уникати дороги…</string>
|
||||||
|
<string name="tip_recent_changes_1_9_t">"Зміни в 1.9: * Оновлені стилі мап із зазначенням типу покриття доріг, маршрутів громадського транспорту та символів для пішого туризму * Пошук POI вздовж маршруту * Позначення доріг як непроїзних, в сеансі * Прості завантаження та оновлення мап * Візуальні та звукові сповіщення під час наближення до точки маршрути * Друк маршруту та інформації про повороти * Підтримка смуг рушу * Робота з Android Wear * Багато змін в інтерфейсі * Окреме збільшення для тексту на мапі * Спеціальні звукові повідомлення, якщо ви зійшли з маршруту * Авторизація на OsMo * Виправлення несумісностей з версією OsMo "</string>
|
||||||
|
<string name="rendering_attr_trainLightrailRoutes_name">Маршрути поїздів</string>
|
||||||
|
<string name="rendering_attr_tramRoutes_name">Маршрути трамваїів</string>
|
||||||
|
<string name="rendering_attr_shareTaxiRoutes_name">Маршрутне таксі</string>
|
||||||
|
<string name="rendering_attr_trolleybusRoutes_name">Маршрути тролейбусів</string>
|
||||||
|
<string name="rendering_attr_busRoutes_name">Маршрути автобусів</string>
|
||||||
|
<string name="rendering_category_hide">Сховати</string>
|
||||||
|
<string name="rendering_category_routes">Маршрути</string>
|
||||||
|
<string name="rendering_category_details">Деталі</string>
|
||||||
|
<string name="rendering_category_transport">Транспорт</string>
|
||||||
|
<string name="rendering_category_others">Інші властивості мапи</string>
|
||||||
|
<string name="map_widget_appearance_rem">Решта елементів</string>
|
||||||
|
<string name="map_widget_top">Рядок стану</string>
|
||||||
|
<string name="map_widget_right">Панель праворуч</string>
|
||||||
|
<string name="map_widget_left">Панель ліворуч</string>
|
||||||
|
<string name="layers_category_show">Показати</string>
|
||||||
|
<string name="configure_map">Налаштування Мапи</string>
|
||||||
|
<string name="search_radius_proximity">Поруч з</string>
|
||||||
|
<string name="osmo_device_not_found">Пристрій не знайдено</string>
|
||||||
|
<string name="osmo_no_connection_msg">Сервіс OsMo не доступний:\n- перевірте з’єднання;\n- перевірте налаштування;\n- перевірте наш Twitter: https://twitter.com/OsMomobi</string>
|
||||||
|
<string name="anonymous_user_hint">Анонімний користувач не в змозі:\n- створювати групи;\n- синхронізувати грипу та пристрої з сервером;\n- керувати групами та пристроями в особистому кабінеті.</string>
|
||||||
|
<string name="anonymous_user">Анонімний користувач</string>
|
||||||
|
<string name="logged_as">Ви увійшли як %1$s</string>
|
||||||
|
<string name="speed_limit_exceed">Допустиме перевищення швидкості</string>
|
||||||
|
<string name="speed_limit_exceed_message">Оберіть допустиме значення перевищення швидкості, після якого ви почуєте попередження.</string>
|
||||||
|
<string name="fav_point_emoticons_message">Назву закладки було змінено на %1$s, щоб мати можливість зберігати рядки зі смайликами в файл.</string>
|
||||||
|
<string name="print_route">Друк маршруту</string>
|
||||||
|
<string name="test_native_render">Перевірка вбудованої візуалізації</string>
|
||||||
|
<string name="test_native_render_msg">Розпочати роботу із вбудованою візуалізацією</string>
|
||||||
|
<string name="fav_point_dublicate">Дублювання назви закладки</string>
|
||||||
|
<string name="fav_point_dublicate_message">Назва закладки була змінена на %1$s, щоб уникнути дублікатів.</string>
|
||||||
|
<string name="use_native_render">Використовувати вбудовану візуалізацію</string>
|
||||||
|
<string name="use_native_render_descr">Використовувати візуалізацію C++ замість Java</string>
|
||||||
|
<string name="text_size_descr">Встановлення розміру тексту на мапі.</string>
|
||||||
|
<string name="text_size">Розмір тексту</string>
|
||||||
|
<string name="traffic_warning_speed_limit">Обмеження швидкості</string>
|
||||||
|
<string name="traffic_warning_border_control">Прикордонний контроль</string>
|
||||||
|
<string name="traffic_warning_payment">Збирання плати за проїзд</string>
|
||||||
|
<string name="traffic_warning_stop">Знак СТОП</string>
|
||||||
|
<string name="traffic_warning_calming">Зниження швидкості</string>
|
||||||
|
<string name="traffic_warning_speed_camera">Фото-радар</string>
|
||||||
|
<string name="traffic_warning">Попередження на дорозі</string>
|
||||||
|
<string name="local_index_description">Клацніть будь-який наявний елемент для перегляду додаткових відомостей, натисніть і утримуйте, щоб деактивувати або вилучити. Поточні дані на пристрої (%1$s вільно):</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!-- Language: Vietnamese; Language code: vi
|
<!-- Language: Vietnamese; Language code: vi
|
||||||
Translator: Le Viet Thanh; email: lethanhx2k@gmail.com -->
|
Translator: Le Viet Thanh; email: lethanhx2k@gmail.com -->
|
||||||
<resources>
|
<resources>
|
||||||
|
|
|
@ -51,32 +51,9 @@
|
||||||
<string name="snap_to_road_descr">導航過程中對齊道路位置</string>
|
<string name="snap_to_road_descr">導航過程中對齊道路位置</string>
|
||||||
<string name="snap_to_road">對齊道路</string>
|
<string name="snap_to_road">對齊道路</string>
|
||||||
<string name="osmand_short_description_80_chars">將離線與線上的 OSM 地圖,用在全球行動地圖檢視和導航</string>
|
<string name="osmand_short_description_80_chars">將離線與線上的 OSM 地圖,用在全球行動地圖檢視和導航</string>
|
||||||
<string name="osmand_long_description_1000_chars">
|
<string name="osmand_long_description_1000_chars">" OsmAnd (OSM Automated Navigation Directions) OsmAnd 是開放程式碼的導航應用程式,存取各式各樣的全球性 OpenStreetMap (簡稱 OSM 開放街道地圖) 資料。所有圖資(向量圖或地圖圖磚)可存放於手機的記憶卡上,可作離線與線上圖資導航,包含轉向建議(turn by turn)語音導航。 主要功能: - 完整的離線功能(存放下載的向量圖或地圖圖磚於裝置存儲器) - 提供細致的全球離線向量圖資 - 直接從應用程式下載各國或區域圖資 - 可疊加不同的多種地圖層於自訂的透明度,如 GPX 或導航軌跡、興趣點、我的最愛、公共運輸站 - 離線查尋地址、場所(POI) - 短距離的離線使用路線(實驗性) - 汽車、自行車、步行模式有下列選項: - 可選的自動日夜模式切換 - 可選的依據速度自動地圖比例尺縮放 - 可選的地圖正北朝上或行進方向朝上 - 可選的車道引導、速限顯示、使用真人語音或 TTS 語音 OsmAnd 免費版限制: - 地圖下載數量 - 無法使用離線維基百科的 POI OsmAnd 正在積極開發我們的專案,並且它的更進一步發展依賴於提供資金的捐助,用以資助發展和新功能的駕駛測試。請考慮購買 OsmAnd +,或資助特定的新功能或在 osmand.net 網站上一般捐贈。 "</string>
|
||||||
OsmAnd (OSM Automated Navigation Directions)
|
|
||||||
|
|
||||||
OsmAnd 是開放程式碼的導航應用程式,存取各式各樣的全球性 OpenStreetMap (簡稱 OSM 開放街道地圖) 資料。所有圖資(向量圖或地圖圖磚)可存放於手機的記憶卡上,可作離線與線上圖資導航,包含轉向建議(turn by turn)語音導航。
|
|
||||||
|
|
||||||
主要功能:
|
|
||||||
- 完整的離線功能(存放下載的向量圖或地圖圖磚)
|
|
||||||
- 提供細致的全球離線向量圖資
|
|
||||||
- 直接從應用程式下載各國或區域圖資
|
|
||||||
- 可疊加不同的多種地圖層於自訂的透明度,如 GPX 或導航軌跡、興趣點、我的最愛、公共運輸站
|
|
||||||
- 離線查尋地址、場所(POI)
|
|
||||||
- 短距離的離線使用路線(實驗性)
|
|
||||||
- 汽車、自行車、步行模式有下列選項:
|
|
||||||
- 可選的自動日夜模式切換
|
|
||||||
- 可選的依據速度自動地圖比例尺縮放
|
|
||||||
- 可選的地圖正北朝上或行進方向朝上
|
|
||||||
- 可選的車道引導、速限顯示、使用真人語音或 TTS 語音
|
|
||||||
|
|
||||||
OsmAnd 免費版限制:
|
|
||||||
- 地圖下載數量
|
|
||||||
- 無法使用離線維基百科的 POI
|
|
||||||
|
|
||||||
OsmAnd 正在積極開發我們的專案,並且它的更進一步發展依賴於提供資金的捐助,用以資助發展和新功能的駕駛測試。請考慮購買 OsmAnd +,或資助特定的新功能或在 osmand.net 網站上一般捐贈。
|
|
||||||
</string>
|
|
||||||
<string name="osmand_plus_short_description_80_chars">將離線與線上的 OSM 地圖,用在全球行動地圖檢視和導航</string>
|
<string name="osmand_plus_short_description_80_chars">將離線與線上的 OSM 地圖,用在全球行動地圖檢視和導航</string>
|
||||||
<string name="osmand_plus_long_description_1000_chars">" OsmAnd+ OsmAnd (OSM Automated Navigation Directions) OsmAnd 是開放源碼導航應用程式,可以使用各式各樣的全球性 OpenStreetMap (簡稱 OSM 開放街道地圖) 資料。所有圖資(向量圖或地圖圖磚)可存放於裝置的記憶卡上,可作離線與線上圖資導航,包含轉向建議(turn by turn)語音導航。 主要功能: - 完整離線功能 (存放下載的向量圖或地圖圖磚) - 全球離線向量圖資 - 直接由手機下載各國或區域圖資 - 可疊加不同的多種地圖層於自訂的透明度,如 GPX 或導航軌跡、興趣點、我的最愛、等高線、大眾運輸停靠站 - 離線查尋地址、場所(POI) - 離線尋找導航路線 - 汽車、自行車、步行模式有下列選項: - 自動日/夜模式切換選項 - 取決於速度的地圖縮放選項 - 地圖正北朝上或行進方向朝上選項 - 車道引導、速限顯示、使用真人語音或 TTS 語音選項 "</string>
|
<string name="osmand_plus_long_description_1000_chars">" OsmAnd+ OsmAnd (OSM Automated Navigation Directions) OsmAnd 是開放源碼導航應用程式,可以使用各式各樣的全球性 OpenStreetMap (簡稱 OSM 開放街道地圖) 資料。所有圖資(向量圖或地圖圖磚)可存放於裝置的記憶卡上,可作離線與線上圖資導航,包含轉向建議(turn by turn)語音導航。 主要功能: - 完整離線功能 (存放下載的向量圖或地圖圖磚於裝置存儲器) - 全球離線向量圖資 - 直接由手機下載各國或區域圖資 - 可疊加不同的多種地圖層於自訂的透明度,如 GPX 或導航軌跡、興趣點、我的最愛、等高線、大眾運輸停靠站 - 離線查尋地址、場所(POI) - 離線尋找導航路線 - 汽車、自行車、步行模式有下列選項: - 自動日/夜模式切換選項 - 取決於速度的地圖縮放選項 - 地圖正北朝上或行進方向朝上選項 - 車道引導、速限顯示、使用真人語音或 TTS 語音選項 "</string>
|
||||||
<string name="tip_update_index">更新離線地圖</string>
|
<string name="tip_update_index">更新離線地圖</string>
|
||||||
<string name="tip_update_index_t">"離線地圖的查看與 POI/位址查尋,以及離線導航,有最新的圖資是不可或缺的。OsmAnd 提供了地圖檔案的管理用以下載那些離線圖資,並且檢查能用的更新。
|
<string name="tip_update_index_t">"離線地圖的查看與 POI/位址查尋,以及離線導航,有最新的圖資是不可或缺的。OsmAnd 提供了地圖檔案的管理用以下載那些離線圖資,並且檢查能用的更新。
|
||||||
\n\n下載圖資更新由\'設定\' -> \'管理地圖檔案\' -> \'下載\'。
|
\n\n下載圖資更新由\'設定\' -> \'管理地圖檔案\' -> \'下載\'。
|
||||||
|
@ -633,8 +610,8 @@
|
||||||
<string name="use_osmand_routing_service">OsmAnd 導航 > 20公里</string>
|
<string name="use_osmand_routing_service">OsmAnd 導航 > 20公里</string>
|
||||||
<string name="use_osmand_routing_service_descr">使用 OsmAnd 離線導航僅適用于路線 > 20 公里(實驗性的)</string>
|
<string name="use_osmand_routing_service_descr">使用 OsmAnd 離線導航僅適用于路線 > 20 公里(實驗性的)</string>
|
||||||
<string name="osmand_routing_experimental">OsmAndd 離線導航是個實驗性的功能,它不能運作超過 20 公里的距離。\n\n導航服務暫時切為線上的 CloudMade。</string>
|
<string name="osmand_routing_experimental">OsmAndd 離線導航是個實驗性的功能,它不能運作超過 20 公里的距離。\n\n導航服務暫時切為線上的 CloudMade。</string>
|
||||||
<string name="specified_dir_doesnt_exist">指定的目錄不存在。</string>
|
<string name="specified_dir_doesnt_exist">找不到指定的資料夾。</string>
|
||||||
<string name="application_dir">存儲目錄</string>
|
<string name="application_dir">資料存儲器資料夾</string>
|
||||||
|
|
||||||
<string name="osmand_net_previously_installed">有前一版的 OsmAnd 存在,所有的離線資料將被新版引用。但我的最愛內的標點須以舊版程式匯出後再用新版程式匯入。</string>
|
<string name="osmand_net_previously_installed">有前一版的 OsmAnd 存在,所有的離線資料將被新版引用。但我的最愛內的標點須以舊版程式匯出後再用新版程式匯入。</string>
|
||||||
<string name="build_installed">編譯 {0} 成功安裝({1})。</string>
|
<string name="build_installed">編譯 {0} 成功安裝({1})。</string>
|
||||||
|
@ -690,7 +667,7 @@
|
||||||
<string name="voice">語音</string>
|
<string name="voice">語音</string>
|
||||||
<string name="no_vector_map_loaded">向量地圖未載入</string>
|
<string name="no_vector_map_loaded">向量地圖未載入</string>
|
||||||
<string name="map_route_by_gpx">以 GPX 導航</string>
|
<string name="map_route_by_gpx">以 GPX 導航</string>
|
||||||
<string name="gpx_files_not_found">在/tracks 目錄找不到 GPX 檔案</string>
|
<string name="gpx_files_not_found">在 /tracks 資料夾找不到 GPX 檔案</string>
|
||||||
<string name="layer_gpx_layer">GPX 軌跡…</string>
|
<string name="layer_gpx_layer">GPX 軌跡…</string>
|
||||||
<string name="error_reading_gpx">讀取 GPX 資料錯誤</string>
|
<string name="error_reading_gpx">讀取 GPX 資料錯誤</string>
|
||||||
<string name="vector_data">離線向量地圖</string>
|
<string name="vector_data">離線向量地圖</string>
|
||||||
|
@ -825,7 +802,7 @@
|
||||||
<string name="route_general_information">總距離 %1$s、行駛時間 %2$d 小時 %3$d 分。</string>
|
<string name="route_general_information">總距離 %1$s、行駛時間 %2$d 小時 %3$d 分。</string>
|
||||||
<string name="router_service_descr">選擇線上或離線的導航服務</string>
|
<string name="router_service_descr">選擇線上或離線的導航服務</string>
|
||||||
<string name="router_service">導航服務</string>
|
<string name="router_service">導航服務</string>
|
||||||
<string name="sd_dir_not_accessible">SD卡上的儲存目錄不可存取</string>
|
<string name="sd_dir_not_accessible">在 SD 卡上的存儲資料夾無法存取</string>
|
||||||
<string name="download_question">下載 {0} - {1}?</string>
|
<string name="download_question">下載 {0} - {1}?</string>
|
||||||
<string name="download_question_exist">離線資料 {0}已存在 ({1})。您要更新 ({2})嗎 ?</string>
|
<string name="download_question_exist">離線資料 {0}已存在 ({1})。您要更新 ({2})嗎 ?</string>
|
||||||
<string name="address">地址</string>
|
<string name="address">地址</string>
|
||||||
|
@ -889,7 +866,7 @@
|
||||||
<string name="save_current_track">儲存目前的 GPX 軌跡</string>
|
<string name="save_current_track">儲存目前的 GPX 軌跡</string>
|
||||||
<string name="save_track_interval">在導航期間的記錄間隔</string>
|
<string name="save_track_interval">在導航期間的記錄間隔</string>
|
||||||
<string name="save_track_interval_descr">在導航整個期間,為軌跡記錄選取記錄間隔</string>
|
<string name="save_track_interval_descr">在導航整個期間,為軌跡記錄選取記錄間隔</string>
|
||||||
<string name="save_track_to_gpx_descrp">在導航的整個期間,軌跡將會儲存在 track 目錄</string>
|
<string name="save_track_to_gpx_descrp">在整個導航期間,軌跡將會儲存在 track 資料夾</string>
|
||||||
<string name="save_track_to_gpx">導航期間記錄軌跡成 GPX 檔案</string>
|
<string name="save_track_to_gpx">導航期間記錄軌跡成 GPX 檔案</string>
|
||||||
<string name="update_tile">更新地圖</string>
|
<string name="update_tile">更新地圖</string>
|
||||||
<string name="reload_tile">重新載入圖磚</string>
|
<string name="reload_tile">重新載入圖磚</string>
|
||||||
|
@ -1465,14 +1442,14 @@
|
||||||
<string name="guidance_preferences_descr">導航偏好</string>
|
<string name="guidance_preferences_descr">導航偏好</string>
|
||||||
<string name="routing_preferences_descr">路線偏好</string>
|
<string name="routing_preferences_descr">路線偏好</string>
|
||||||
<string name="app_mode_truck">卡車</string>
|
<string name="app_mode_truck">卡車</string>
|
||||||
<string name="application_dir_change_warning2">OsmAnd 可以試著將資料移到新的目的地。您想要移動嗎?</string>
|
<string name="application_dir_change_warning2">您想要將 OsmAnd 資料複製到新的目的地嗎?</string>
|
||||||
<string name="copying_osmand_one_file_descr">複製檔案 (%s) 到新的目的地...</string>
|
<string name="copying_osmand_one_file_descr">複製檔案 (%s) 到新的目的地...</string>
|
||||||
<string name="copying_osmand_files_descr">複製 OsmAnd 檔案到新的目的地 (%s)</string>
|
<string name="copying_osmand_files_descr">複製 OsmAnd 資料檔到新的目的地 (%s)</string>
|
||||||
<string name="copying_osmand_files">複製 OsmAnd 的檔案</string>
|
<string name="copying_osmand_files">複製 OsmAnd 資料檔案</string>
|
||||||
<string name="calculate_osmand_route_gpx">OsmAnd 預估離線路線</string>
|
<string name="calculate_osmand_route_gpx">OsmAnd 預估離線路線</string>
|
||||||
<string name="android_19_location_disabled">由於 KitKat 版本,您無法下載和更新地圖於之前的存儲位置 (%s)。您是否想變更以允許複製所有檔案到那裡?
|
<string name="android_19_location_disabled">由於 Android 4.4 (KitKat) 版本,您無法下載和更新地圖於之前的存儲檔案夾 (%s)。您是否想變更到允許的存儲位置並複製所有的 OsmAnd 檔案到那裡?
|
||||||
\n注意:舊的檔案將保持不變。
|
\n注意 1:您舊的檔案將保持不變(但可以手動刪除)。
|
||||||
\n注意:它將不可能在 OsmAnd 和 OsmAnd + 兩者之間共用檔案。 </string>
|
\n注意 2:在新的存儲位置,它不可能在 OsmAnd 和 OsmAnd + 兩者之間共用檔案。</string>
|
||||||
<string name="routing_attr_prefer_motorway_name">高速公路優先</string>
|
<string name="routing_attr_prefer_motorway_name">高速公路優先</string>
|
||||||
<string name="routing_attr_prefer_motorway_description">高速公路優先</string>
|
<string name="routing_attr_prefer_motorway_description">高速公路優先</string>
|
||||||
<string name="routing_attr_short_way_name">最短路線</string>
|
<string name="routing_attr_short_way_name">最短路線</string>
|
||||||
|
@ -1816,8 +1793,6 @@
|
||||||
<string name="text_size">文字大小</string>
|
<string name="text_size">文字大小</string>
|
||||||
<string name="fav_point_dublicate">我的最愛標點,名稱重複</string>
|
<string name="fav_point_dublicate">我的最愛標點,名稱重複</string>
|
||||||
<string name="fav_point_dublicate_message">我們把我的最愛標點名稱,改為 %1$s 以避免名稱重複。</string>
|
<string name="fav_point_dublicate_message">我們把我的最愛標點名稱,改為 %1$s 以避免名稱重複。</string>
|
||||||
<string name="test_native_render">測試原生繪製</string>
|
|
||||||
<string name="test_native_render_msg">開始啟動原生繪製</string>
|
|
||||||
<string name="use_native_render">使用原生繪製</string>
|
<string name="use_native_render">使用原生繪製</string>
|
||||||
<string name="use_native_render_descr">使用 C++ 替代 JAVA 繪製</string>
|
<string name="use_native_render_descr">使用 C++ 替代 JAVA 繪製</string>
|
||||||
<string name="print_route">列印路線</string>
|
<string name="print_route">列印路線</string>
|
||||||
|
@ -1857,4 +1832,14 @@
|
||||||
<string name="advanced_settings">進階</string>
|
<string name="advanced_settings">進階</string>
|
||||||
<string name="osmo_use_https_descr">使用安全協定連線於伺服器</string>
|
<string name="osmo_use_https_descr">使用安全協定連線於伺服器</string>
|
||||||
<string name="osmo_use_https">使用 https</string>
|
<string name="osmo_use_https">使用 https</string>
|
||||||
</resources>
|
<string name="map_update">地圖</string>
|
||||||
|
<string name="search_for">查尋</string>
|
||||||
|
<string name="show_map">顯示地圖</string>
|
||||||
|
<string name="show_all">全部顯示</string>
|
||||||
|
<string name="coordinates">座標</string>
|
||||||
|
<string name="home_button">首頁</string>
|
||||||
|
<string name="error_avoid_specific_road">找不到最近的路</string>
|
||||||
|
<string name="everything_up_to_date">一切都為最新的</string>
|
||||||
|
<string name="use_opengl_render">使用 OpenGL 繪製</string>
|
||||||
|
<string name="use_opengl_render_descr">使用硬體加速 OpenGL 繪製(可能在某些裝置無法工作)</string>
|
||||||
|
</resources>
|
||||||
|
|
|
@ -214,6 +214,8 @@
|
||||||
|
|
||||||
<string name="poi_pier">Pier</string>
|
<string name="poi_pier">Pier</string>
|
||||||
<string name="poi_surveillance">Surveillance</string>
|
<string name="poi_surveillance">Surveillance</string>
|
||||||
|
<string name="poi_observatory">Observatory</string>
|
||||||
|
<string name="poi_astronomical_observatory">Astronomical observatory</string>
|
||||||
<string name="poi_construction">Construction</string>
|
<string name="poi_construction">Construction</string>
|
||||||
<string name="poi_works">Works</string>
|
<string name="poi_works">Works</string>
|
||||||
<string name="poi_mineshaft">Mineshaft</string>
|
<string name="poi_mineshaft">Mineshaft</string>
|
||||||
|
@ -406,6 +408,8 @@
|
||||||
<string name="poi_caravan_site">Caravan site</string>
|
<string name="poi_caravan_site">Caravan site</string>
|
||||||
<string name="poi_picnic_site">Picnic site</string>
|
<string name="poi_picnic_site">Picnic site</string>
|
||||||
<string name="poi_spring">Spring</string>
|
<string name="poi_spring">Spring</string>
|
||||||
|
<string name="poi_hot_spring">Hot spring</string>
|
||||||
|
<string name="poi_geyser">Geyser</string>
|
||||||
<string name="poi_cemetery">Cemetery</string>
|
<string name="poi_cemetery">Cemetery</string>
|
||||||
<string name="poi_grave_yard">Graveyard</string>
|
<string name="poi_grave_yard">Graveyard</string>
|
||||||
<string name="poi_shelter">Shelter</string>
|
<string name="poi_shelter">Shelter</string>
|
||||||
|
|
|
@ -9,6 +9,11 @@
|
||||||
3. All your modified/created strings are in the top of the file (to make easier find what\'s translated).
|
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
|
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="dismiss">Dismiss</string>
|
||||||
|
<string name="everything_up_to_date">Everything up to date</string>
|
||||||
|
<string name="use_opengl_render">Use opengl rendering</string>
|
||||||
|
<string name="use_opengl_render_descr">Use hardware accelerated opengl rendering (may not work on some device)</string>
|
||||||
|
<string name="error_avoid_specific_road">Nearest road was not found</string>
|
||||||
<string name="home_button">Home</string>
|
<string name="home_button">Home</string>
|
||||||
<string name="osmo_use_https_descr">Use secure connection with server</string>
|
<string name="osmo_use_https_descr">Use secure connection with server</string>
|
||||||
<string name="osmo_use_https">Use https</string>
|
<string name="osmo_use_https">Use https</string>
|
||||||
|
@ -69,12 +74,8 @@
|
||||||
<string name ="speed_limit_exceed_message">Select speed limit tolerance margin, above which you will receive a voice warning.</string>
|
<string name ="speed_limit_exceed_message">Select speed limit tolerance margin, above which you will receive a voice warning.</string>
|
||||||
<string name="fav_point_emoticons_message">The favorite point name has been modified to %1$s to facilitate properly saving the string with emoticons to a file.</string>
|
<string name="fav_point_emoticons_message">The favorite point name has been modified to %1$s to facilitate properly saving the string with emoticons to a file.</string>
|
||||||
<string name="print_route">Print route</string>
|
<string name="print_route">Print route</string>
|
||||||
<string name="test_native_render">Test native rendering</string>
|
|
||||||
<string name="test_native_render_msg">Starts activity with native rendering</string>
|
|
||||||
<string name="fav_point_dublicate">Favorite point name duplicate</string>
|
<string name="fav_point_dublicate">Favorite point name duplicate</string>
|
||||||
<string name="fav_point_dublicate_message">We changed your favorite point name to %1$s to avoid duplicated names.</string>
|
<string name="fav_point_dublicate_message">We changed your favorite point name to %1$s to avoid duplicated names.</string>
|
||||||
<string name="use_native_render">Use native rendering</string>
|
|
||||||
<string name="use_native_render_descr">Use C++ rendering instead of Java</string>
|
|
||||||
<string name="text_size_descr">Set the text size on the map.</string>
|
<string name="text_size_descr">Set the text size on the map.</string>
|
||||||
<string name="text_size">Text size</string>
|
<string name="text_size">Text size</string>
|
||||||
<string name="traffic_warning_speed_limit">Speed limit</string>
|
<string name="traffic_warning_speed_limit">Speed limit</string>
|
||||||
|
@ -427,7 +428,7 @@
|
||||||
<string name="android_19_location_disabled">Since Android version 4.4 (KitKat) you cannot download and update maps to the previous storage folder (%s). Do you want to change to the permitted storage location and copy all OsmAnd files there?
|
<string name="android_19_location_disabled">Since Android version 4.4 (KitKat) you cannot download and update maps to the previous storage folder (%s). Do you want to change to the permitted storage location and copy all OsmAnd files there?
|
||||||
\n Note 1: Your old files will remain untouched (but can be deleted manually).
|
\n Note 1: Your old files will remain untouched (but can be deleted manually).
|
||||||
\n Note 2: In the new storage location it will not be possible to share files between OsmAnd and OsmAnd+.</string>
|
\n Note 2: In the new storage location it will not be possible to share files between OsmAnd and OsmAnd+.</string>
|
||||||
<string name="application_dir_change_warning2">Do you want OsmAnd to try to copy its data files to the new destination?</string>
|
<string name="application_dir_change_warning2">Do you want OsmAnd to also copy its data files to the new destination?</string>
|
||||||
<string name="copying_osmand_one_file_descr">Copying file (%s) to the new destination...</string>
|
<string name="copying_osmand_one_file_descr">Copying file (%s) to the new destination...</string>
|
||||||
<string name="copying_osmand_files_descr">Copying OsmAnd data files to the new destination (%s)</string>
|
<string name="copying_osmand_files_descr">Copying OsmAnd data files to the new destination (%s)</string>
|
||||||
<string name="copying_osmand_files">Copying OsmAnd data files</string>
|
<string name="copying_osmand_files">Copying OsmAnd data files</string>
|
||||||
|
|
|
@ -1,508 +0,0 @@
|
||||||
package net.osmand.core.android;
|
|
||||||
|
|
||||||
import javax.microedition.khronos.egl.EGL10;
|
|
||||||
import javax.microedition.khronos.egl.EGLConfig;
|
|
||||||
import javax.microedition.khronos.egl.EGLContext;
|
|
||||||
import javax.microedition.khronos.egl.EGLDisplay;
|
|
||||||
import javax.microedition.khronos.egl.EGLSurface;
|
|
||||||
import javax.microedition.khronos.opengles.GL10;
|
|
||||||
|
|
||||||
import net.osmand.core.jni.*;
|
|
||||||
import net.osmand.data.LatLon;
|
|
||||||
import net.osmand.data.QuadPoint;
|
|
||||||
import net.osmand.data.RotatedTileBox;
|
|
||||||
import net.osmand.plus.OsmandApplication;
|
|
||||||
import net.osmand.plus.OsmandSettings;
|
|
||||||
import net.osmand.plus.R;
|
|
||||||
import net.osmand.plus.helpers.TwoFingerTapDetector;
|
|
||||||
import net.osmand.plus.render.NativeOsmandLibrary;
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.opengl.EGL14;
|
|
||||||
import android.opengl.GLSurfaceView;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.os.Environment;
|
|
||||||
import android.util.DisplayMetrics;
|
|
||||||
import android.util.Log;
|
|
||||||
import android.view.GestureDetector;
|
|
||||||
import android.view.GestureDetector.OnDoubleTapListener;
|
|
||||||
import android.view.Menu;
|
|
||||||
import android.view.MenuItem;
|
|
||||||
import android.view.MotionEvent;
|
|
||||||
import android.view.Window;
|
|
||||||
import android.view.WindowManager;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
|
|
||||||
public class GLActivity extends Activity {
|
|
||||||
|
|
||||||
static {
|
|
||||||
NativeOsmandLibrary.loadLibrary("gnustl_shared");
|
|
||||||
NativeOsmandLibrary.loadLibrary("Qt5Core");
|
|
||||||
NativeOsmandLibrary.loadLibrary("Qt5Network");
|
|
||||||
NativeOsmandLibrary.loadLibrary("Qt5Sql");
|
|
||||||
NativeOsmandLibrary.loadLibrary("OsmAndCoreWithJNI");
|
|
||||||
}
|
|
||||||
private static final String TAG = "OsmAndCoreSample";
|
|
||||||
|
|
||||||
private CoreResourcesFromAndroidAssetsCustom _coreResources;
|
|
||||||
|
|
||||||
private float _displayDensityFactor;
|
|
||||||
private int _referenceTileSize;
|
|
||||||
private int _rasterTileSize;
|
|
||||||
private IMapStylesCollection _mapStylesCollection;
|
|
||||||
private ResolvedMapStyle _mapStyle;
|
|
||||||
private ObfsCollection _obfsCollection;
|
|
||||||
private MapPresentationEnvironment _mapPresentationEnvironment;
|
|
||||||
private MapPrimitiviser _mapPrimitiviser;
|
|
||||||
private ObfMapObjectsProvider _obfMapObjectsProvider;
|
|
||||||
private MapPrimitivesProvider _mapPrimitivesProvider;
|
|
||||||
private MapObjectsSymbolsProvider _mapObjectsSymbolsProvider;
|
|
||||||
private MapRasterLayerProvider _mapRasterLayerProvider;
|
|
||||||
private OnlineRasterMapLayerProvider _onlineMapRasterLayerProvider;
|
|
||||||
private IMapRenderer _mapRenderer;
|
|
||||||
private GpuWorkerThreadPrologue _gpuWorkerThreadPrologue;
|
|
||||||
private GpuWorkerThreadEpilogue _gpuWorkerThreadEpilogue;
|
|
||||||
private RenderRequestCallback _renderRequestCallback;
|
|
||||||
private QIODeviceLogSink _fileLogSink;
|
|
||||||
private RotatedTileBox currentViewport = null;
|
|
||||||
|
|
||||||
private GestureDetector gestureDetector;
|
|
||||||
|
|
||||||
|
|
||||||
protected OsmandApplication getApp() {
|
|
||||||
return (OsmandApplication) getApplication();
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean afterTwoFingerTap = false;
|
|
||||||
TwoFingerTapDetector twoFingerTapDetector = new TwoFingerTapDetector() {
|
|
||||||
@Override
|
|
||||||
public void onTwoFingerTap() {
|
|
||||||
afterTwoFingerTap = true;
|
|
||||||
currentViewport.setZoom(currentViewport.getZoom() - 1);
|
|
||||||
updateView();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
requestWindowFeature(Window.FEATURE_NO_TITLE);
|
|
||||||
OsmandSettings st = getApp().getSettings();
|
|
||||||
WindowManager mgr = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
|
|
||||||
DisplayMetrics dm = new DisplayMetrics();
|
|
||||||
mgr.getDefaultDisplay().getMetrics(dm);
|
|
||||||
currentViewport = new RotatedTileBox.RotatedTileBoxBuilder().
|
|
||||||
setLocation(st.getLastKnownMapLocation().getLatitude(),
|
|
||||||
st.getLastKnownMapLocation().getLongitude()).setZoomAndScale(st.getLastKnownMapZoom(), 0).
|
|
||||||
setPixelDimensions(dm.widthPixels, dm.heightPixels).build();
|
|
||||||
currentViewport.setDensity(dm.density);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
gestureDetector = new GestureDetector(this, new android.view.GestureDetector.OnGestureListener() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onSingleTapUp(MotionEvent e) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onShowPress(MotionEvent e) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
|
|
||||||
final QuadPoint cp = currentViewport.getCenterPixelPoint();
|
|
||||||
final LatLon latlon = currentViewport.getLatLonFromPixel(cp.x + distanceX, cp.y + distanceY);
|
|
||||||
currentViewport.setLatLonCenter(latlon.getLatitude(), latlon.getLongitude());
|
|
||||||
updateView();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onLongPress(MotionEvent e) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onDown(MotionEvent e) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
gestureDetector.setOnDoubleTapListener(new OnDoubleTapListener() {
|
|
||||||
@Override
|
|
||||||
public boolean onSingleTapConfirmed(MotionEvent e) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onDoubleTapEvent(MotionEvent e) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onDoubleTap(MotionEvent e) {
|
|
||||||
currentViewport.setZoom(currentViewport.getZoom() + 1);
|
|
||||||
updateView();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
setContentView(R.layout.activity_gl);
|
|
||||||
|
|
||||||
// Get device display density factor
|
|
||||||
DisplayMetrics displayMetrics = new DisplayMetrics();
|
|
||||||
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
|
|
||||||
_displayDensityFactor = displayMetrics.density;
|
|
||||||
_referenceTileSize = (int)(256 * _displayDensityFactor);
|
|
||||||
_rasterTileSize = Integer.highestOneBit(_referenceTileSize - 1) * 2;
|
|
||||||
Log.i(TAG, "displayDensityFactor = " + _displayDensityFactor);
|
|
||||||
Log.i(TAG, "referenceTileSize = " + _referenceTileSize);
|
|
||||||
Log.i(TAG, "rasterTileSize = " + _rasterTileSize);
|
|
||||||
|
|
||||||
Log.i(TAG, "Initializing core...");
|
|
||||||
_coreResources = CoreResourcesFromAndroidAssetsCustom.loadFromCurrentApplication(this);
|
|
||||||
OsmAndCore.InitializeCore(_coreResources.instantiateProxy());
|
|
||||||
|
|
||||||
File directory =getApp().getAppPath("");
|
|
||||||
_fileLogSink = QIODeviceLogSink.createFileLogSink(directory.getAbsolutePath() + "/osmandcore.log");
|
|
||||||
Logger.get().addLogSink(_fileLogSink);
|
|
||||||
|
|
||||||
Log.i(TAG, "Going to resolve default embedded style...");
|
|
||||||
_mapStylesCollection = new MapStylesCollection();
|
|
||||||
_mapStyle = _mapStylesCollection.getResolvedStyleByName("default");
|
|
||||||
if (_mapStyle == null)
|
|
||||||
{
|
|
||||||
Log.e(TAG, "Failed to resolve style 'default'");
|
|
||||||
System.exit(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
Log.i(TAG, "Going to prepare OBFs collection");
|
|
||||||
_obfsCollection = new ObfsCollection();
|
|
||||||
|
|
||||||
Log.i(TAG, "Will load OBFs from " + directory.getAbsolutePath());
|
|
||||||
_obfsCollection.addDirectory(directory.getAbsolutePath(), false);
|
|
||||||
|
|
||||||
Log.i(TAG, "Going to prepare all resources for renderer");
|
|
||||||
_mapPresentationEnvironment = new MapPresentationEnvironment(
|
|
||||||
_mapStyle,
|
|
||||||
_displayDensityFactor,
|
|
||||||
"en"); //TODO: here should be current locale
|
|
||||||
//mapPresentationEnvironment->setSettings(configuration.styleSettings);
|
|
||||||
_mapPrimitiviser = new MapPrimitiviser(
|
|
||||||
_mapPresentationEnvironment);
|
|
||||||
_obfMapObjectsProvider = new ObfMapObjectsProvider(
|
|
||||||
_obfsCollection);
|
|
||||||
_mapPrimitivesProvider = new MapPrimitivesProvider(
|
|
||||||
_obfMapObjectsProvider,
|
|
||||||
_mapPrimitiviser,
|
|
||||||
_rasterTileSize);
|
|
||||||
_mapObjectsSymbolsProvider = new MapObjectsSymbolsProvider(
|
|
||||||
_mapPrimitivesProvider,
|
|
||||||
_rasterTileSize);
|
|
||||||
_mapRasterLayerProvider = new MapRasterLayerProvider_Software(
|
|
||||||
_mapPrimitivesProvider);
|
|
||||||
|
|
||||||
_onlineMapRasterLayerProvider = OnlineTileSources.getBuiltIn().createProviderFor("Mapnik (OsmAnd)");
|
|
||||||
|
|
||||||
Log.i(TAG, "Going to create renderer");
|
|
||||||
_mapRenderer = OsmAndCore.createMapRenderer(MapRendererClass.AtlasMapRenderer_OpenGLES2);
|
|
||||||
if (_mapRenderer == null)
|
|
||||||
{
|
|
||||||
Log.e(TAG, "Failed to create map renderer 'AtlasMapRenderer_OpenGLES2'");
|
|
||||||
System.exit(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
AtlasMapRendererConfiguration atlasRendererConfiguration = AtlasMapRendererConfiguration.Casts.upcastFrom(_mapRenderer.getConfiguration());
|
|
||||||
atlasRendererConfiguration.setReferenceTileSizeOnScreenInPixels(_referenceTileSize);
|
|
||||||
_mapRenderer.setConfiguration(AtlasMapRendererConfiguration.Casts.downcastTo_MapRendererConfiguration(atlasRendererConfiguration));
|
|
||||||
|
|
||||||
_mapRenderer.addSymbolsProvider(_mapObjectsSymbolsProvider);
|
|
||||||
updateView();
|
|
||||||
/*
|
|
||||||
IMapRasterLayerProvider mapnik = OnlineTileSources.getBuiltIn().createProviderFor("Mapnik (OsmAnd)");
|
|
||||||
if (mapnik == null)
|
|
||||||
Log.e(TAG, "Failed to create mapnik");
|
|
||||||
*/
|
|
||||||
_mapRenderer.setMapLayerProvider(0, _mapRasterLayerProvider);
|
|
||||||
|
|
||||||
_glSurfaceView = (GLSurfaceView) findViewById(R.id.glSurfaceView);
|
|
||||||
//TODO:_glSurfaceView.setPreserveEGLContextOnPause(true);
|
|
||||||
_glSurfaceView.setEGLContextClientVersion(2);
|
|
||||||
_glSurfaceView.setEGLContextFactory(new EGLContextFactory());
|
|
||||||
_glSurfaceView.setRenderer(new Renderer());
|
|
||||||
_glSurfaceView.setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void updateView() {
|
|
||||||
_mapRenderer.setAzimuth(0.0f);
|
|
||||||
_mapRenderer.setElevationAngle(90);
|
|
||||||
_mapRenderer.setTarget(new PointI(currentViewport.getCenter31X(), currentViewport.getCenter31Y()));
|
|
||||||
_mapRenderer.setZoom((float)currentViewport.getZoom() + (float)currentViewport.getZoomScale());
|
|
||||||
}
|
|
||||||
|
|
||||||
private GLSurfaceView _glSurfaceView;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onTouchEvent(MotionEvent event) {
|
|
||||||
if (twoFingerTapDetector.onTouchEvent(event)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return gestureDetector.onTouchEvent(event);
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
protected void onPause() {
|
|
||||||
super.onPause();
|
|
||||||
_glSurfaceView.onPause();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onResume() {
|
|
||||||
super.onResume();
|
|
||||||
_glSurfaceView.onResume();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onDestroy() {
|
|
||||||
if (_mapStylesCollection != null) {
|
|
||||||
_mapStylesCollection.delete();
|
|
||||||
_mapStylesCollection = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_mapStyle != null) {
|
|
||||||
_mapStyle.delete();
|
|
||||||
_mapStyle = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_obfsCollection != null) {
|
|
||||||
_obfsCollection.delete();
|
|
||||||
_obfsCollection = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_mapPresentationEnvironment != null) {
|
|
||||||
_mapPresentationEnvironment.delete();
|
|
||||||
_mapPresentationEnvironment = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_mapPrimitiviser != null) {
|
|
||||||
_mapPrimitiviser.delete();
|
|
||||||
_mapPrimitiviser = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_obfMapObjectsProvider != null) {
|
|
||||||
_obfMapObjectsProvider.delete();
|
|
||||||
_obfMapObjectsProvider = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_mapPrimitivesProvider != null) {
|
|
||||||
_mapPrimitivesProvider.delete();
|
|
||||||
_mapPrimitivesProvider = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_mapObjectsSymbolsProvider != null) {
|
|
||||||
_mapObjectsSymbolsProvider.delete();
|
|
||||||
_mapObjectsSymbolsProvider = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_mapRasterLayerProvider != null) {
|
|
||||||
_mapRasterLayerProvider.delete();
|
|
||||||
_mapRasterLayerProvider = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_mapRenderer != null) {
|
|
||||||
_mapRenderer.delete();
|
|
||||||
_mapRenderer = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
OsmAndCore.ReleaseCore();
|
|
||||||
|
|
||||||
super.onDestroy();
|
|
||||||
}
|
|
||||||
|
|
||||||
private class RenderRequestCallback extends MapRendererSetupOptions.IFrameUpdateRequestCallback {
|
|
||||||
@Override
|
|
||||||
public void method(IMapRenderer mapRenderer) {
|
|
||||||
_glSurfaceView.requestRender();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class GpuWorkerThreadPrologue extends MapRendererSetupOptions.IGpuWorkerThreadPrologue {
|
|
||||||
public GpuWorkerThreadPrologue(EGL10 egl, EGLDisplay eglDisplay, EGLContext context, EGLSurface surface) {
|
|
||||||
_egl = egl;
|
|
||||||
_eglDisplay = eglDisplay;
|
|
||||||
_context = context;
|
|
||||||
_eglSurface = surface;
|
|
||||||
}
|
|
||||||
|
|
||||||
private final EGL10 _egl;
|
|
||||||
private final EGLDisplay _eglDisplay;
|
|
||||||
private final EGLContext _context;
|
|
||||||
private final EGLSurface _eglSurface;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void method(IMapRenderer mapRenderer) {
|
|
||||||
try {
|
|
||||||
if (!_egl.eglMakeCurrent(_eglDisplay, _eglSurface, _eglSurface, _context))
|
|
||||||
Log.e(TAG, "Failed to set GPU worker context active: " + _egl.eglGetError());
|
|
||||||
} catch (Exception e) {
|
|
||||||
Log.e(TAG, "Failed to set GPU worker context active", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private class GpuWorkerThreadEpilogue extends MapRendererSetupOptions.IGpuWorkerThreadEpilogue {
|
|
||||||
public GpuWorkerThreadEpilogue(EGL10 egl) {
|
|
||||||
_egl = egl;
|
|
||||||
}
|
|
||||||
|
|
||||||
private final EGL10 _egl;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void method(IMapRenderer mapRenderer) {
|
|
||||||
try {
|
|
||||||
if (!_egl.eglWaitGL())
|
|
||||||
Log.e(TAG, "Failed to wait for GPU worker context: " + _egl.eglGetError());
|
|
||||||
} catch (Exception e) {
|
|
||||||
Log.e(TAG, "Failed to wait for GPU worker context", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private class EGLContextFactory implements GLSurfaceView.EGLContextFactory {
|
|
||||||
private EGLContext _gpuWorkerContext;
|
|
||||||
private EGLSurface _gpuWorkerFakeSurface;
|
|
||||||
|
|
||||||
public EGLContext createContext(EGL10 egl, EGLDisplay display, EGLConfig eglConfig) {
|
|
||||||
final String eglExtensions = egl.eglQueryString(display, EGL10.EGL_EXTENSIONS);
|
|
||||||
Log.i(TAG, "EGL extensions: " + eglExtensions);
|
|
||||||
final String eglVersion = egl.eglQueryString(display, EGL10.EGL_VERSION);
|
|
||||||
Log.i(TAG, "EGL version: " + eglVersion);
|
|
||||||
|
|
||||||
Log.i(TAG, "Creating main context...");
|
|
||||||
final int[] contextAttribList = {
|
|
||||||
EGL14.EGL_CONTEXT_CLIENT_VERSION, 2,
|
|
||||||
EGL10.EGL_NONE };
|
|
||||||
|
|
||||||
EGLContext mainContext = null;
|
|
||||||
try {
|
|
||||||
mainContext = egl.eglCreateContext(display, eglConfig, EGL10.EGL_NO_CONTEXT, contextAttribList);
|
|
||||||
} catch (Exception e) {
|
|
||||||
Log.e(TAG, "Failed to create main context", e);
|
|
||||||
}
|
|
||||||
if (mainContext == null || mainContext == EGL10.EGL_NO_CONTEXT) {
|
|
||||||
Log.e(TAG, "Failed to create main context: " + egl.eglGetError());
|
|
||||||
mainContext = null;
|
|
||||||
System.exit(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
Log.i(TAG, "Creating GPU worker context...");
|
|
||||||
try {
|
|
||||||
_gpuWorkerContext = egl.eglCreateContext(
|
|
||||||
display,
|
|
||||||
eglConfig,
|
|
||||||
mainContext,
|
|
||||||
contextAttribList);
|
|
||||||
} catch (Exception e) {
|
|
||||||
Log.e(TAG, "Failed to create GPU worker context", e);
|
|
||||||
}
|
|
||||||
if (_gpuWorkerContext == null || _gpuWorkerContext == EGL10.EGL_NO_CONTEXT)
|
|
||||||
{
|
|
||||||
Log.e(TAG, "Failed to create GPU worker context: " + egl.eglGetError());
|
|
||||||
_gpuWorkerContext = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_gpuWorkerContext != null)
|
|
||||||
{
|
|
||||||
Log.i(TAG, "Creating GPU worker fake surface...");
|
|
||||||
try {
|
|
||||||
final int[] surfaceAttribList = {
|
|
||||||
EGL10.EGL_WIDTH, 1,
|
|
||||||
EGL10.EGL_HEIGHT, 1,
|
|
||||||
EGL10.EGL_NONE };
|
|
||||||
_gpuWorkerFakeSurface = egl.eglCreatePbufferSurface(display, eglConfig, surfaceAttribList);
|
|
||||||
} catch (Exception e) {
|
|
||||||
Log.e(TAG, "Failed to create GPU worker fake surface", e);
|
|
||||||
}
|
|
||||||
if (_gpuWorkerFakeSurface == null || _gpuWorkerFakeSurface == EGL10.EGL_NO_SURFACE)
|
|
||||||
{
|
|
||||||
Log.e(TAG, "Failed to create GPU worker fake surface: " + egl.eglGetError());
|
|
||||||
_gpuWorkerFakeSurface = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
MapRendererSetupOptions rendererSetupOptions = new MapRendererSetupOptions();
|
|
||||||
if (_gpuWorkerContext != null && _gpuWorkerFakeSurface != null) {
|
|
||||||
rendererSetupOptions.setGpuWorkerThreadEnabled(true);
|
|
||||||
_gpuWorkerThreadPrologue = new GpuWorkerThreadPrologue(egl, display, _gpuWorkerContext, _gpuWorkerFakeSurface);
|
|
||||||
rendererSetupOptions.setGpuWorkerThreadPrologue(_gpuWorkerThreadPrologue.getBinding());
|
|
||||||
_gpuWorkerThreadEpilogue = new GpuWorkerThreadEpilogue(egl);
|
|
||||||
rendererSetupOptions.setGpuWorkerThreadEpilogue(_gpuWorkerThreadEpilogue.getBinding());
|
|
||||||
} else {
|
|
||||||
rendererSetupOptions.setGpuWorkerThreadEnabled(false);
|
|
||||||
}
|
|
||||||
_renderRequestCallback = new RenderRequestCallback();
|
|
||||||
rendererSetupOptions.setFrameUpdateRequestCallback(_renderRequestCallback.getBinding());
|
|
||||||
_mapRenderer.setup(rendererSetupOptions);
|
|
||||||
|
|
||||||
return mainContext;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void destroyContext(EGL10 egl, EGLDisplay display, EGLContext context) {
|
|
||||||
egl.eglDestroyContext(display, context);
|
|
||||||
|
|
||||||
if (_gpuWorkerContext != null) {
|
|
||||||
egl.eglDestroyContext(display, _gpuWorkerContext);
|
|
||||||
_gpuWorkerContext = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_gpuWorkerFakeSurface != null) {
|
|
||||||
egl.eglDestroySurface(display, _gpuWorkerFakeSurface);
|
|
||||||
_gpuWorkerFakeSurface = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private class Renderer implements GLSurfaceView.Renderer {
|
|
||||||
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
|
|
||||||
Log.i(TAG, "onSurfaceCreated");
|
|
||||||
if (_mapRenderer.isRenderingInitialized())
|
|
||||||
_mapRenderer.releaseRendering();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onSurfaceChanged(GL10 gl, int width, int height) {
|
|
||||||
Log.i(TAG, "onSurfaceChanged");
|
|
||||||
_mapRenderer.setViewport(new AreaI(0, 0, height, width));
|
|
||||||
_mapRenderer.setWindowSize(new PointI(width, height));
|
|
||||||
|
|
||||||
if (!_mapRenderer.isRenderingInitialized())
|
|
||||||
{
|
|
||||||
if (!_mapRenderer.initializeRendering())
|
|
||||||
Log.e(TAG, "Failed to initialize rendering");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onDrawFrame(GL10 gl) {
|
|
||||||
_mapRenderer.update();
|
|
||||||
|
|
||||||
if (_mapRenderer.prepareFrame())
|
|
||||||
_mapRenderer.renderFrame();
|
|
||||||
|
|
||||||
gl.glFlush();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onCreateOptionsMenu(Menu menu) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
|
||||||
return super.onOptionsItemSelected(item);
|
|
||||||
}
|
|
||||||
}
|
|
262
OsmAnd/src/net/osmand/core/android/MapRendererContext.java
Normal file
262
OsmAnd/src/net/osmand/core/android/MapRendererContext.java
Normal file
|
@ -0,0 +1,262 @@
|
||||||
|
package net.osmand.core.android;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import net.osmand.core.jni.IMapTiledSymbolsProvider;
|
||||||
|
import net.osmand.core.jni.IObfsCollection;
|
||||||
|
import net.osmand.core.jni.IRasterMapLayerProvider;
|
||||||
|
import net.osmand.core.jni.MapObjectsSymbolsProvider;
|
||||||
|
import net.osmand.core.jni.MapPresentationEnvironment;
|
||||||
|
import net.osmand.core.jni.MapPresentationEnvironment.LanguagePreference;
|
||||||
|
import net.osmand.core.jni.MapPrimitivesProvider;
|
||||||
|
import net.osmand.core.jni.MapPrimitiviser;
|
||||||
|
import net.osmand.core.jni.MapRasterLayerProvider_Software;
|
||||||
|
import net.osmand.core.jni.MapStylesCollection;
|
||||||
|
import net.osmand.core.jni.ObfMapObjectsProvider;
|
||||||
|
import net.osmand.core.jni.QStringStringHash;
|
||||||
|
import net.osmand.core.jni.ResolvedMapStyle;
|
||||||
|
import net.osmand.plus.OsmandApplication;
|
||||||
|
import net.osmand.plus.OsmandSettings;
|
||||||
|
import net.osmand.plus.OsmandSettings.CommonPreference;
|
||||||
|
import net.osmand.plus.render.RendererRegistry;
|
||||||
|
import net.osmand.render.RenderingRuleProperty;
|
||||||
|
import net.osmand.render.RenderingRulesStorage;
|
||||||
|
import net.osmand.util.Algorithms;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Context container and utility class for MapRendererView and derivatives.
|
||||||
|
* @author Alexey Pelykh
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class MapRendererContext {
|
||||||
|
|
||||||
|
private static final int OBF_RASTER_LAYER = 0;
|
||||||
|
private OsmandApplication app;
|
||||||
|
|
||||||
|
// input parameters
|
||||||
|
private MapStylesCollection mapStylesCollection;
|
||||||
|
private IObfsCollection obfsCollection;
|
||||||
|
|
||||||
|
private boolean nightMode;
|
||||||
|
private final float density;
|
||||||
|
|
||||||
|
// ached objects
|
||||||
|
private Map<String, ResolvedMapStyle> mapStyles = new HashMap<String, ResolvedMapStyle>();
|
||||||
|
private CachedMapPresentation presentationObjectParams;
|
||||||
|
private MapPresentationEnvironment mapPresentationEnvironment;
|
||||||
|
|
||||||
|
private IMapTiledSymbolsProvider obfMapSymbolsProvider;
|
||||||
|
private IRasterMapLayerProvider obfMapRasterLayerProvider;
|
||||||
|
private MapRendererView mapRendererView;
|
||||||
|
|
||||||
|
private float cachedReferenceTileSize;
|
||||||
|
|
||||||
|
public MapRendererContext(OsmandApplication app, float density) {
|
||||||
|
this.app = app;
|
||||||
|
this.density = density;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Bounds specified map renderer view to this context
|
||||||
|
* @param mapRendererView Reference to MapRendererView
|
||||||
|
*/
|
||||||
|
public void setMapRendererView(MapRendererView mapRendererView) {
|
||||||
|
boolean update = (this.mapRendererView != mapRendererView);
|
||||||
|
if (!update) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.mapRendererView = mapRendererView;
|
||||||
|
if (mapRendererView != null) {
|
||||||
|
applyCurrentContextToView();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNightMode(boolean nightMode) {
|
||||||
|
if (nightMode != this.nightMode) {
|
||||||
|
this.nightMode = nightMode;
|
||||||
|
updateMapSettings();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void updateMapSettings() {
|
||||||
|
if (mapRendererView instanceof AtlasMapRendererView && cachedReferenceTileSize != getReferenceTileSize()) {
|
||||||
|
((AtlasMapRendererView) mapRendererView).setReferenceTileSizeOnScreenInPixels(getReferenceTileSize());
|
||||||
|
}
|
||||||
|
if(mapPresentationEnvironment != null) {
|
||||||
|
updateMapPresentationEnvironment();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setup OBF map on layer 0 with symbols
|
||||||
|
* @param obfsCollection OBFs collection
|
||||||
|
*/
|
||||||
|
public void setupObfMap(MapStylesCollection mapStylesCollection, IObfsCollection obfsCollection) {
|
||||||
|
this.obfsCollection = obfsCollection;
|
||||||
|
this.mapStylesCollection = mapStylesCollection;
|
||||||
|
updateMapPresentationEnvironment();
|
||||||
|
recreateRasterAndSymbolsProvider();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected float getDisplayDensityFactor() {
|
||||||
|
return (float) Math.pow(2, Math.sqrt((app.getSettings().getSettingsZoomScale() + density)));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected int getRasterTileSize() {
|
||||||
|
return Integer.highestOneBit((int) getReferenceTileSize() - 1) * 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
private float getReferenceTileSize() {
|
||||||
|
return 256 * getDisplayDensityFactor();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update map presentation environment and everything that depends on it
|
||||||
|
*/
|
||||||
|
private void updateMapPresentationEnvironment() {
|
||||||
|
float displayDensityFactor = getDisplayDensityFactor();
|
||||||
|
// Create new map presentation environment
|
||||||
|
String langId = app.getSettings().MAP_PREFERRED_LOCALE.get();
|
||||||
|
// TODO make setting
|
||||||
|
LanguagePreference langPref = LanguagePreference.LocalizedOrNative;
|
||||||
|
String rendName = app.getSettings().RENDERER.get();
|
||||||
|
if (rendName.length() == 0 || rendName.equals(RendererRegistry.DEFAULT_RENDER)) {
|
||||||
|
rendName = "default";
|
||||||
|
}
|
||||||
|
if (!mapStyles.containsKey(rendName)) {
|
||||||
|
mapStyles.put(rendName, mapStylesCollection.getResolvedStyleByName(rendName));
|
||||||
|
}
|
||||||
|
ResolvedMapStyle mapStyle = mapStyles.get(rendName);
|
||||||
|
CachedMapPresentation pres = new CachedMapPresentation(langId, langPref, mapStyle, displayDensityFactor);
|
||||||
|
if (this.presentationObjectParams == null || !this.presentationObjectParams.equalsFields(pres)) {
|
||||||
|
this.presentationObjectParams = pres;
|
||||||
|
mapPresentationEnvironment = new MapPresentationEnvironment(mapStyle, displayDensityFactor, langId,
|
||||||
|
langPref);
|
||||||
|
}
|
||||||
|
|
||||||
|
QStringStringHash convertedStyleSettings = getMapStyleSettings();
|
||||||
|
mapPresentationEnvironment.setSettings(convertedStyleSettings);
|
||||||
|
|
||||||
|
if (obfMapRasterLayerProvider != null || obfMapSymbolsProvider != null) {
|
||||||
|
recreateRasterAndSymbolsProvider();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected QStringStringHash getMapStyleSettings() {
|
||||||
|
// Apply map style settings
|
||||||
|
OsmandSettings prefs = app.getSettings();
|
||||||
|
RenderingRulesStorage storage = app.getRendererRegistry().getCurrentSelectedRenderer();
|
||||||
|
Map<String, String> props = new HashMap<String, String>();
|
||||||
|
for (RenderingRuleProperty customProp : storage.PROPS.getCustomRules()) {
|
||||||
|
if (customProp.isBoolean()) {
|
||||||
|
CommonPreference<Boolean> pref = prefs.getCustomRenderBooleanProperty(customProp.getAttrName());
|
||||||
|
props.put(customProp.getAttrName(), pref.get() + "");
|
||||||
|
} else {
|
||||||
|
CommonPreference<String> settings = prefs.getCustomRenderProperty(customProp.getAttrName());
|
||||||
|
String res = settings.get();
|
||||||
|
if (!Algorithms.isEmpty(res)) {
|
||||||
|
props.put(customProp.getAttrName(), res);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QStringStringHash convertedStyleSettings = new QStringStringHash();
|
||||||
|
for (Iterator<Map.Entry<String, String>> itSetting = props.entrySet().iterator(); itSetting.hasNext();) {
|
||||||
|
Map.Entry<String, String> setting = itSetting.next();
|
||||||
|
convertedStyleSettings.set(setting.getKey(), setting.getValue());
|
||||||
|
}
|
||||||
|
if (nightMode) {
|
||||||
|
convertedStyleSettings.set("nightMode", "true");
|
||||||
|
}
|
||||||
|
return convertedStyleSettings;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void recreateRasterAndSymbolsProvider() {
|
||||||
|
// Create new map primitiviser
|
||||||
|
MapPrimitiviser mapPrimitiviser = new MapPrimitiviser(mapPresentationEnvironment);
|
||||||
|
ObfMapObjectsProvider obfMapObjectsProvider = new ObfMapObjectsProvider(obfsCollection);
|
||||||
|
// Create new map primitives provider
|
||||||
|
MapPrimitivesProvider mapPrimitivesProvider = new MapPrimitivesProvider(obfMapObjectsProvider, mapPrimitiviser,
|
||||||
|
getRasterTileSize());
|
||||||
|
updateObfMapRasterLayerProvider(mapPrimitivesProvider);
|
||||||
|
updateObfMapSymbolsProvider(mapPrimitivesProvider);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateObfMapRasterLayerProvider(MapPrimitivesProvider mapPrimitivesProvider) {
|
||||||
|
// Create new OBF map raster layer provider
|
||||||
|
obfMapRasterLayerProvider = new MapRasterLayerProvider_Software(mapPrimitivesProvider);
|
||||||
|
// In case there's bound view and configured layer, perform setup
|
||||||
|
if (mapRendererView != null) {
|
||||||
|
mapRendererView.setMapLayerProvider(OBF_RASTER_LAYER, obfMapRasterLayerProvider);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateObfMapSymbolsProvider(MapPrimitivesProvider mapPrimitivesProvider) {
|
||||||
|
// If there's current provider and bound view, remove it
|
||||||
|
if (obfMapSymbolsProvider != null && mapRendererView != null) {
|
||||||
|
mapRendererView.removeSymbolsProvider(obfMapSymbolsProvider);
|
||||||
|
}
|
||||||
|
// Create new OBF map symbols provider
|
||||||
|
obfMapSymbolsProvider = new MapObjectsSymbolsProvider(mapPrimitivesProvider, getReferenceTileSize());
|
||||||
|
// If there's bound view, add new provider
|
||||||
|
if (mapRendererView != null) {
|
||||||
|
mapRendererView.addSymbolsProvider(obfMapSymbolsProvider);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void applyCurrentContextToView() {
|
||||||
|
if (mapRendererView instanceof AtlasMapRendererView) {
|
||||||
|
cachedReferenceTileSize = getReferenceTileSize();
|
||||||
|
((AtlasMapRendererView)mapRendererView).setReferenceTileSizeOnScreenInPixels(cachedReferenceTileSize);
|
||||||
|
}
|
||||||
|
// Layers
|
||||||
|
if (obfMapRasterLayerProvider != null) {
|
||||||
|
mapRendererView.setMapLayerProvider(OBF_RASTER_LAYER, obfMapRasterLayerProvider);
|
||||||
|
}
|
||||||
|
// Symbols
|
||||||
|
if (obfMapSymbolsProvider != null) {
|
||||||
|
mapRendererView.addSymbolsProvider(obfMapSymbolsProvider);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private class CachedMapPresentation {
|
||||||
|
String langId ;
|
||||||
|
LanguagePreference langPref;
|
||||||
|
ResolvedMapStyle mapStyle;
|
||||||
|
double displayDensityFactor;
|
||||||
|
|
||||||
|
public CachedMapPresentation(String langId,
|
||||||
|
LanguagePreference langPref, ResolvedMapStyle mapStyle,
|
||||||
|
double displayDensityFactor) {
|
||||||
|
this.langId = langId;
|
||||||
|
this.langPref = langPref;
|
||||||
|
this.mapStyle = mapStyle;
|
||||||
|
this.displayDensityFactor = displayDensityFactor;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public boolean equalsFields(CachedMapPresentation other ) {
|
||||||
|
if (Double.doubleToLongBits(displayDensityFactor) != Double
|
||||||
|
.doubleToLongBits(other.displayDensityFactor))
|
||||||
|
return false;
|
||||||
|
if (langId == null) {
|
||||||
|
if (other.langId != null)
|
||||||
|
return false;
|
||||||
|
} else if (!langId.equals(other.langId))
|
||||||
|
return false;
|
||||||
|
if (langPref != other.langPref)
|
||||||
|
return false;
|
||||||
|
if (mapStyle == null) {
|
||||||
|
if (other.mapStyle != null)
|
||||||
|
return false;
|
||||||
|
} else if (!mapStyle.equals(other.mapStyle))
|
||||||
|
return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -42,35 +42,32 @@ public class CurrentPositionHelper {
|
||||||
ctx = new RoutePlannerFrontEnd(false).buildRoutingContext(cfg, null, app.getResourceManager().getRoutingMapFiles());
|
ctx = new RoutePlannerFrontEnd(false).buildRoutingContext(cfg, null, app.getResourceManager().getRoutingMapFiles());
|
||||||
}
|
}
|
||||||
|
|
||||||
public synchronized RouteDataObject runUpdateInThread(double lat , double lon) {
|
public synchronized RouteDataObject runUpdateInThread(double lat, double lon) throws IOException {
|
||||||
RoutePlannerFrontEnd rp = new RoutePlannerFrontEnd(false);
|
RoutePlannerFrontEnd rp = new RoutePlannerFrontEnd(false);
|
||||||
try {
|
if (ctx == null || am != app.getSettings().getApplicationMode()) {
|
||||||
if(ctx == null || am != app.getSettings().getApplicationMode()) {
|
initCtx(app);
|
||||||
initCtx(app);
|
if (ctx == null) {
|
||||||
if(ctx == null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
RouteSegment sg = rp.findRouteSegment(lat, lon, ctx);
|
|
||||||
if(sg == null) {
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return sg.getRoad();
|
}
|
||||||
} catch (IOException e) {
|
RouteSegment sg = rp.findRouteSegment(lat, lon, ctx);
|
||||||
|
if (sg == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
return sg.getRoad();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void scheduleRouteSegmentFind(final Location loc){
|
private void scheduleRouteSegmentFind(final Location loc){
|
||||||
if(calculatingThread == Thread.currentThread()) {
|
if(calculatingThread == Thread.currentThread()) {
|
||||||
lastFound = runUpdateInThread(loc.getLatitude(), loc.getLongitude());
|
lastFound = runUpdateInThreadCatch(loc.getLatitude(), loc.getLongitude());
|
||||||
} else if(calculatingThread == null && loc != null) {
|
} else if(calculatingThread == null && loc != null) {
|
||||||
Runnable run = new Runnable() {
|
Runnable run = new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
try {
|
try {
|
||||||
lastFound = runUpdateInThread(loc.getLatitude(), loc.getLongitude());
|
lastFound = runUpdateInThreadCatch(loc.getLatitude(), loc.getLongitude());
|
||||||
if (lastAskedLocation != loc) {
|
if (lastAskedLocation != loc) {
|
||||||
// refresh and run new task if needed
|
// refresh and run new task if needed
|
||||||
getLastKnownRouteSegment(lastAskedLocation);
|
getLastKnownRouteSegment(lastAskedLocation);
|
||||||
|
@ -85,6 +82,15 @@ public class CurrentPositionHelper {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected RouteDataObject runUpdateInThreadCatch(double latitude, double longitude) {
|
||||||
|
try {
|
||||||
|
return runUpdateInThread(latitude, longitude);
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static double getOrthogonalDistance(RouteDataObject r, Location loc){
|
private static double getOrthogonalDistance(RouteDataObject r, Location loc){
|
||||||
double d = 1000;
|
double d = 1000;
|
||||||
if (r.getPointsLength() > 0) {
|
if (r.getPointsLength() > 0) {
|
||||||
|
|
|
@ -21,7 +21,6 @@ import net.osmand.plus.helpers.WaypointHelper;
|
||||||
import net.osmand.plus.routing.RouteCalculationResult;
|
import net.osmand.plus.routing.RouteCalculationResult;
|
||||||
import net.osmand.plus.views.OsmandMapTileView;
|
import net.osmand.plus.views.OsmandMapTileView;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.view.Window;
|
|
||||||
|
|
||||||
public class OsmAndAppCustomization {
|
public class OsmAndAppCustomization {
|
||||||
|
|
||||||
|
|
|
@ -216,7 +216,7 @@ public class OsmAndLocationProvider implements SensorEventListener {
|
||||||
}
|
}
|
||||||
|
|
||||||
public RouteDataObject findRoute(double lat , double lon) {
|
public RouteDataObject findRoute(double lat , double lon) {
|
||||||
return currentPositionHelper.runUpdateInThread(lat, lon);
|
return currentPositionHelper.runUpdateInThreadCatch(lat, lon);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void resumeAllUpdates() {
|
public void resumeAllUpdates() {
|
||||||
|
|
|
@ -33,7 +33,7 @@ import net.osmand.plus.render.RendererRegistry;
|
||||||
import net.osmand.plus.resources.ResourceManager;
|
import net.osmand.plus.resources.ResourceManager;
|
||||||
import net.osmand.plus.routing.RoutingHelper;
|
import net.osmand.plus.routing.RoutingHelper;
|
||||||
import net.osmand.plus.sherpafy.SherpafyCustomization;
|
import net.osmand.plus.sherpafy.SherpafyCustomization;
|
||||||
import net.osmand.plus.views.corenative.NativeQtLibrary;
|
import net.osmand.plus.views.corenative.NativeCoreContext;
|
||||||
import net.osmand.plus.voice.CommandPlayer;
|
import net.osmand.plus.voice.CommandPlayer;
|
||||||
import net.osmand.plus.voice.CommandPlayerException;
|
import net.osmand.plus.voice.CommandPlayerException;
|
||||||
import net.osmand.plus.voice.CommandPlayerFactory;
|
import net.osmand.plus.voice.CommandPlayerFactory;
|
||||||
|
@ -121,6 +121,8 @@ public class OsmandApplication extends Application {
|
||||||
MapActivity mapActivity;
|
MapActivity mapActivity;
|
||||||
DownloadActivity downloadActivity;
|
DownloadActivity downloadActivity;
|
||||||
|
|
||||||
|
// Typeface
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate() {
|
public void onCreate() {
|
||||||
long timeToStart = System.currentTimeMillis();
|
long timeToStart = System.currentTimeMillis();
|
||||||
|
@ -555,16 +557,16 @@ public class OsmandApplication extends Application {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!"qnx".equals(System.getProperty("os.name"))) {
|
if (!"qnx".equals(System.getProperty("os.name"))) {
|
||||||
if (osmandSettings.USE_NATIVE_RENDER.get()) {
|
if (osmandSettings.USE_OPENGL_RENDER.get()) {
|
||||||
if (!osmandSettings.CPP_RENDER_FAILED.get()) {
|
if (!osmandSettings.OPENGL_RENDER_FAILED.get()) {
|
||||||
osmandSettings.CPP_RENDER_FAILED.set(true);
|
osmandSettings.OPENGL_RENDER_FAILED.set(true);
|
||||||
boolean success = NativeQtLibrary.tryCatchInit(this);
|
boolean success = NativeCoreContext.tryCatchInit(this);
|
||||||
if (success) {
|
if (success) {
|
||||||
osmandSettings.CPP_RENDER_FAILED.set(false);
|
osmandSettings.OPENGL_RENDER_FAILED.set(false);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// try next time once again ?
|
// try next time once again ?
|
||||||
osmandSettings.CPP_RENDER_FAILED.set(false);
|
osmandSettings.OPENGL_RENDER_FAILED.set(false);
|
||||||
warnings.add("Native OpenGL library is not supported. Please try again after exit");
|
warnings.add("Native OpenGL library is not supported. Please try again after exit");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1719,9 +1719,10 @@ public class OsmandSettings {
|
||||||
|
|
||||||
public final OsmandPreference<Boolean> NATIVE_RENDERING_FAILED = new BooleanPreference("native_rendering_failed_init", false).makeGlobal();
|
public final OsmandPreference<Boolean> NATIVE_RENDERING_FAILED = new BooleanPreference("native_rendering_failed_init", false).makeGlobal();
|
||||||
|
|
||||||
public final OsmandPreference<Boolean> USE_NATIVE_RENDER = new BooleanPreference("use_native_render", false).makeGlobal().cache();
|
public final OsmandPreference<Boolean> USE_OPENGL_RENDER = new BooleanPreference("use_opengl_render",
|
||||||
|
Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH).makeGlobal().cache();
|
||||||
|
|
||||||
public final OsmandPreference<Boolean> CPP_RENDER_FAILED = new BooleanPreference("cpp_render_failed", false).makeGlobal().cache();
|
public final OsmandPreference<Boolean> OPENGL_RENDER_FAILED = new BooleanPreference("opengl_render_failed", false).makeGlobal().cache();
|
||||||
|
|
||||||
|
|
||||||
// this value string is synchronized with settings_pref.xml preference name
|
// this value string is synchronized with settings_pref.xml preference name
|
||||||
|
|
|
@ -2,24 +2,27 @@ package net.osmand.plus.activities;
|
||||||
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.lang.ref.WeakReference;
|
||||||
import java.text.MessageFormat;
|
import java.text.MessageFormat;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
|
import android.support.v4.app.FragmentManager;
|
||||||
import net.osmand.access.AccessibleAlertBuilder;
|
import net.osmand.access.AccessibleAlertBuilder;
|
||||||
import net.osmand.plus.OsmAndAppCustomization;
|
import net.osmand.plus.OsmAndAppCustomization;
|
||||||
|
import net.osmand.plus.OsmAndLocationProvider;
|
||||||
import net.osmand.plus.OsmandApplication;
|
import net.osmand.plus.OsmandApplication;
|
||||||
import net.osmand.plus.R;
|
import net.osmand.plus.R;
|
||||||
import net.osmand.plus.Version;
|
import net.osmand.plus.Version;
|
||||||
import net.osmand.plus.dashboard.DashFavoritesFragment;
|
import net.osmand.plus.base.BasicProgressAsyncTask;
|
||||||
import net.osmand.plus.dashboard.DashMapFragment;
|
import net.osmand.plus.dashboard.*;
|
||||||
import net.osmand.plus.dashboard.DashPluginsFragment;
|
|
||||||
import net.osmand.plus.dashboard.DashSearchFragment;
|
|
||||||
import net.osmand.plus.dashboard.DashUpdatesFragment;
|
|
||||||
import net.osmand.plus.download.BaseDownloadActivity;
|
import net.osmand.plus.download.BaseDownloadActivity;
|
||||||
import net.osmand.plus.download.DownloadActivity;
|
import net.osmand.plus.download.DownloadActivity;
|
||||||
|
import net.osmand.plus.download.IndexItem;
|
||||||
import net.osmand.plus.render.MapRenderRepositories;
|
import net.osmand.plus.render.MapRenderRepositories;
|
||||||
|
import net.osmand.plus.sherpafy.SherpafyLoadingFragment;
|
||||||
import net.osmand.plus.sherpafy.TourViewActivity;
|
import net.osmand.plus.sherpafy.TourViewActivity;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
|
@ -37,6 +40,7 @@ import android.graphics.drawable.ColorDrawable;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.support.v4.app.Fragment;
|
||||||
import android.text.SpannableString;
|
import android.text.SpannableString;
|
||||||
import android.text.Spanned;
|
import android.text.Spanned;
|
||||||
import android.text.format.DateFormat;
|
import android.text.format.DateFormat;
|
||||||
|
@ -52,7 +56,6 @@ import com.actionbarsherlock.view.Menu;
|
||||||
import com.actionbarsherlock.view.MenuItem;
|
import com.actionbarsherlock.view.MenuItem;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Denis on 05.11.2014.
|
|
||||||
*/
|
*/
|
||||||
public class DashboardActivity extends BaseDownloadActivity {
|
public class DashboardActivity extends BaseDownloadActivity {
|
||||||
public static final boolean TIPS_AND_TRICKS = false;
|
public static final boolean TIPS_AND_TRICKS = false;
|
||||||
|
@ -66,10 +69,10 @@ public class DashboardActivity extends BaseDownloadActivity {
|
||||||
private static final String EXCEPTION_FILE_SIZE = "EXCEPTION_FS"; //$NON-NLS-1$
|
private static final String EXCEPTION_FILE_SIZE = "EXCEPTION_FS"; //$NON-NLS-1$
|
||||||
|
|
||||||
private static final String CONTRIBUTION_VERSION_FLAG = "CONTRIBUTION_VERSION_FLAG";
|
private static final String CONTRIBUTION_VERSION_FLAG = "CONTRIBUTION_VERSION_FLAG";
|
||||||
private ProgressDialog startProgressDialog;
|
private static final int HELP_ID = 0;
|
||||||
|
private static final int SETTINGS_ID = 1;
|
||||||
|
private static final int EXIT_ID = 2;
|
||||||
|
private OsmAndLocationProvider lp;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
@ -89,6 +92,7 @@ public class DashboardActivity extends BaseDownloadActivity {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
setContentView(R.layout.dashboard);
|
setContentView(R.layout.dashboard);
|
||||||
|
lp = getMyApplication().getLocationProvider();
|
||||||
|
|
||||||
final String textVersion = Version.getFullVersion(getMyApplication());
|
final String textVersion = Version.getFullVersion(getMyApplication());
|
||||||
getSupportActionBar().setTitle(textVersion);
|
getSupportActionBar().setTitle(textVersion);
|
||||||
|
@ -96,9 +100,8 @@ public class DashboardActivity extends BaseDownloadActivity {
|
||||||
getSupportActionBar().setBackgroundDrawable(color);
|
getSupportActionBar().setBackgroundDrawable(color);
|
||||||
getSupportActionBar().setIcon(android.R.color.transparent);
|
getSupportActionBar().setIcon(android.R.color.transparent);
|
||||||
|
|
||||||
setupContributionVersion();
|
|
||||||
addFragments();
|
|
||||||
initApp(this, getMyApplication());
|
initApp(this, getMyApplication());
|
||||||
|
addFragments();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -110,6 +113,7 @@ public class DashboardActivity extends BaseDownloadActivity {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void setupContributionVersion() {
|
protected void setupContributionVersion() {
|
||||||
|
findViewById(R.id.credentials).setVisibility(View.VISIBLE);
|
||||||
final TextView textVersionView = (TextView) findViewById(R.id.Copyright);
|
final TextView textVersionView = (TextView) findViewById(R.id.Copyright);
|
||||||
final Calendar inst = Calendar.getInstance();
|
final Calendar inst = Calendar.getInstance();
|
||||||
inst.setTime(new Date());
|
inst.setTime(new Date());
|
||||||
|
@ -146,34 +150,41 @@ public class DashboardActivity extends BaseDownloadActivity {
|
||||||
about.setMovementMethod(LinkMovementMethod.getInstance());
|
about.setMovementMethod(LinkMovementMethod.getInstance());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addFragments() {
|
public void addFragments() {
|
||||||
android.support.v4.app.FragmentManager manager = getSupportFragmentManager();
|
android.support.v4.app.FragmentManager manager = getSupportFragmentManager();
|
||||||
android.support.v4.app.FragmentTransaction fragmentTransaction = manager.beginTransaction();
|
android.support.v4.app.FragmentTransaction fragmentTransaction = manager.beginTransaction();
|
||||||
//after rotation list of fragments in fragment transaction is not cleared
|
//after rotation list of fragments in fragment transaction is not cleared
|
||||||
//so we need to check whether some fragments are already existing
|
//so we need to check whether some fragments are already existing
|
||||||
if (manager.findFragmentByTag(DashSearchFragment.TAG) == null){
|
|
||||||
DashSearchFragment searchFragment = new DashSearchFragment();
|
|
||||||
fragmentTransaction.add(R.id.content, searchFragment, DashSearchFragment.TAG);
|
|
||||||
}
|
|
||||||
if (manager.findFragmentByTag(DashMapFragment.TAG) == null){
|
if (manager.findFragmentByTag(DashMapFragment.TAG) == null){
|
||||||
DashMapFragment mapFragment = new DashMapFragment();
|
DashMapFragment mapFragment = new DashMapFragment();
|
||||||
fragmentTransaction.add(R.id.content, mapFragment, DashMapFragment.TAG);
|
fragmentTransaction.add(R.id.content, mapFragment, DashMapFragment.TAG);
|
||||||
}
|
}
|
||||||
|
if (manager.findFragmentByTag(DashSearchFragment.TAG) == null){
|
||||||
|
DashSearchFragment searchFragment = new DashSearchFragment();
|
||||||
|
fragmentTransaction.add(R.id.content, searchFragment, DashSearchFragment.TAG);
|
||||||
|
}
|
||||||
if (manager.findFragmentByTag(DashFavoritesFragment.TAG) == null){
|
if (manager.findFragmentByTag(DashFavoritesFragment.TAG) == null){
|
||||||
DashFavoritesFragment favoritesFragment = new DashFavoritesFragment();
|
DashFavoritesFragment favoritesFragment = new DashFavoritesFragment();
|
||||||
fragmentTransaction.add(R.id.content, favoritesFragment, DashFavoritesFragment.TAG);
|
fragmentTransaction.add(R.id.content, favoritesFragment, DashFavoritesFragment.TAG);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (manager.findFragmentByTag(DashUpdatesFragment.TAG) == null){
|
if (manager.findFragmentByTag(DashUpdatesFragment.TAG) == null){
|
||||||
DashUpdatesFragment updatesFragment = new DashUpdatesFragment();
|
DashUpdatesFragment updatesFragment = new DashUpdatesFragment();
|
||||||
fragmentTransaction.add(R.id.content, updatesFragment, DashUpdatesFragment.TAG);
|
fragmentTransaction.add(R.id.content, updatesFragment, DashUpdatesFragment.TAG);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (manager.findFragmentByTag(DashPluginsFragment.TAG) == null){
|
if (manager.findFragmentByTag(DashPluginsFragment.TAG) == null){
|
||||||
DashPluginsFragment pluginsFragment = new DashPluginsFragment();
|
DashPluginsFragment pluginsFragment = new DashPluginsFragment();
|
||||||
fragmentTransaction.add(R.id.content, pluginsFragment, DashPluginsFragment.TAG).commit();
|
fragmentTransaction.add(R.id.content, pluginsFragment, DashPluginsFragment.TAG).commit();
|
||||||
}
|
}
|
||||||
|
setupContributionVersion();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addErrorFragment(){
|
||||||
|
android.support.v4.app.FragmentManager manager = getSupportFragmentManager();
|
||||||
|
android.support.v4.app.FragmentTransaction fragmentTransaction = manager.beginTransaction();
|
||||||
|
if (manager.findFragmentByTag(DashErrorFragment.TAG) == null){
|
||||||
|
DashErrorFragment errorFragment = new DashErrorFragment();
|
||||||
|
fragmentTransaction.add(R.id.content, errorFragment, DashErrorFragment.TAG).commit();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void showAboutDialog(final Activity activity, final OsmandApplication app) {
|
public static void showAboutDialog(final Activity activity, final OsmandApplication app) {
|
||||||
|
@ -230,9 +241,6 @@ public class DashboardActivity extends BaseDownloadActivity {
|
||||||
startActivityForResult(mapIndent, 0);
|
startActivityForResult(mapIndent, 0);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
startProgressDialog = new ProgressDialog(this);
|
|
||||||
getMyApplication().checkApplicationIsBeingInitialized(this, startProgressDialog);
|
|
||||||
boolean dialogShown = false;
|
|
||||||
boolean firstTime = false;
|
boolean firstTime = false;
|
||||||
SharedPreferences pref = getPreferences(MODE_WORLD_WRITEABLE);
|
SharedPreferences pref = getPreferences(MODE_WORLD_WRITEABLE);
|
||||||
boolean appVersionChanged = false;
|
boolean appVersionChanged = false;
|
||||||
|
@ -247,7 +255,6 @@ public class DashboardActivity extends BaseDownloadActivity {
|
||||||
if (appCustomization.showFirstTimeRunAndTips(firstTime, appVersionChanged)) {
|
if (appCustomization.showFirstTimeRunAndTips(firstTime, appVersionChanged)) {
|
||||||
if (firstTime) {
|
if (firstTime) {
|
||||||
applicationInstalledFirstTime();
|
applicationInstalledFirstTime();
|
||||||
dialogShown = true;
|
|
||||||
} else {
|
} else {
|
||||||
int i = pref.getInt(TIPS_SHOW, 0);
|
int i = pref.getInt(TIPS_SHOW, 0);
|
||||||
if (i < 7) {
|
if (i < 7) {
|
||||||
|
@ -258,44 +265,23 @@ public class DashboardActivity extends BaseDownloadActivity {
|
||||||
TipsAndTricksActivity tipsActivity = new TipsAndTricksActivity(this);
|
TipsAndTricksActivity tipsActivity = new TipsAndTricksActivity(this);
|
||||||
Dialog dlg = tipsActivity.getDialogToShowTips(!appVersionChanged, false);
|
Dialog dlg = tipsActivity.getDialogToShowTips(!appVersionChanged, false);
|
||||||
dlg.show();
|
dlg.show();
|
||||||
dialogShown = true;
|
|
||||||
} else {
|
} else {
|
||||||
if(appVersionChanged) {
|
if(appVersionChanged) {
|
||||||
final Intent helpIntent = new Intent(activity, HelpActivity.class);
|
final Intent helpIntent = new Intent(activity, HelpActivity.class);
|
||||||
helpIntent.putExtra(HelpActivity.TITLE, Version.getAppVersion(getMyApplication()));
|
helpIntent.putExtra(HelpActivity.TITLE, Version.getAppVersion(getMyApplication()));
|
||||||
helpIntent.putExtra(HelpActivity.URL, "changes-1.9.html");
|
helpIntent.putExtra(HelpActivity.URL, "changes-1.9.html");
|
||||||
activity.startActivity(helpIntent);
|
activity.startActivity(helpIntent);
|
||||||
dialogShown = true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!dialogShown && appCustomization.checkBasemapDownloadedOnStart()) {
|
|
||||||
if (startProgressDialog.isShowing()) {
|
if(appCustomization.checkExceptionsOnStart()){
|
||||||
startProgressDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
|
|
||||||
@Override
|
|
||||||
public void onDismiss(DialogInterface dialog) {
|
|
||||||
checkVectorIndexesDownloaded();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
checkVectorIndexesDownloaded();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(appCustomization.checkExceptionsOnStart() && !dialogShown){
|
|
||||||
checkPreviousRunsForExceptions(firstTime);
|
checkPreviousRunsForExceptions(firstTime);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected Dialog onCreateDialog(int id) {
|
|
||||||
if(id == OsmandApplication.PROGRESS_DIALOG){
|
|
||||||
return startProgressDialog;
|
|
||||||
}
|
|
||||||
return super.onCreateDialog(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void applicationInstalledFirstTime() {
|
private void applicationInstalledFirstTime() {
|
||||||
boolean netOsmandWasInstalled = false;
|
boolean netOsmandWasInstalled = false;
|
||||||
try {
|
try {
|
||||||
|
@ -332,38 +318,7 @@ public class DashboardActivity extends BaseDownloadActivity {
|
||||||
final File file = app.getAppPath(OsmandApplication.EXCEPTION_PATH);
|
final File file = app.getAppPath(OsmandApplication.EXCEPTION_PATH);
|
||||||
if (file.exists() && file.length() > 0) {
|
if (file.exists() && file.length() > 0) {
|
||||||
if (size != file.length() && !firstTime) {
|
if (size != file.length() && !firstTime) {
|
||||||
String msg = MessageFormat.format(getString(R.string.previous_run_crashed), OsmandApplication.EXCEPTION_PATH);
|
addErrorFragment();
|
||||||
Builder builder = new AccessibleAlertBuilder(DashboardActivity.this);
|
|
||||||
builder.setMessage(msg).setNeutralButton(getString(R.string.close), null);
|
|
||||||
builder.setPositiveButton(R.string.send_report, new DialogInterface.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
|
||||||
Intent intent = new Intent(Intent.ACTION_SEND);
|
|
||||||
intent.putExtra(Intent.EXTRA_EMAIL, new String[] { "osmand.app+crash@gmail.com" }); //$NON-NLS-1$
|
|
||||||
intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
|
|
||||||
intent.setType("vnd.android.cursor.dir/email"); //$NON-NLS-1$
|
|
||||||
intent.putExtra(Intent.EXTRA_SUBJECT, "OsmAnd bug"); //$NON-NLS-1$
|
|
||||||
StringBuilder text = new StringBuilder();
|
|
||||||
text.append("\nDevice : ").append(Build.DEVICE); //$NON-NLS-1$
|
|
||||||
text.append("\nBrand : ").append(Build.BRAND); //$NON-NLS-1$
|
|
||||||
text.append("\nModel : ").append(Build.MODEL); //$NON-NLS-1$
|
|
||||||
text.append("\nProduct : ").append(Build.PRODUCT); //$NON-NLS-1$
|
|
||||||
text.append("\nBuild : ").append(Build.DISPLAY); //$NON-NLS-1$
|
|
||||||
text.append("\nVersion : ").append(Build.VERSION.RELEASE); //$NON-NLS-1$
|
|
||||||
text.append("\nApp Version : ").append(Version.getAppName(app)); //$NON-NLS-1$
|
|
||||||
try {
|
|
||||||
PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), 0);
|
|
||||||
if (info != null) {
|
|
||||||
text.append("\nApk Version : ").append(info.versionName).append(" ").append(info.versionCode); //$NON-NLS-1$ //$NON-NLS-2$
|
|
||||||
}
|
|
||||||
} catch (NameNotFoundException e) {
|
|
||||||
}
|
|
||||||
intent.putExtra(Intent.EXTRA_TEXT, text.toString());
|
|
||||||
startActivity(Intent.createChooser(intent, getString(R.string.send_report)));
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
builder.show();
|
|
||||||
}
|
}
|
||||||
getPreferences(MODE_WORLD_WRITEABLE).edit().putLong(EXCEPTION_FILE_SIZE, file.length()).commit();
|
getPreferences(MODE_WORLD_WRITEABLE).edit().putLong(EXCEPTION_FILE_SIZE, file.length()).commit();
|
||||||
} else {
|
} else {
|
||||||
|
@ -377,12 +332,12 @@ public class DashboardActivity extends BaseDownloadActivity {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCreateOptionsMenu(Menu menu) {
|
public boolean onCreateOptionsMenu(Menu menu) {
|
||||||
menu.add(0, 0, 0, R.string.tips_and_tricks).setIcon(R.drawable.ic_ac_help)
|
menu.add(0, HELP_ID, 0, R.string.tips_and_tricks).setIcon(R.drawable.ic_ac_help)
|
||||||
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
|
.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
|
||||||
menu.add(0, 1, 0, R.string.settings).setIcon(R.drawable.ic_ac_settings)
|
menu.add(0, SETTINGS_ID, 0, R.string.settings).setIcon(R.drawable.ic_ac_settings)
|
||||||
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
|
.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
|
||||||
menu.add(0, 2, 0, R.string.exit_Button).setIcon(R.drawable.ic_ac_close)
|
menu.add(0, EXIT_ID, 0, R.string.exit_Button).setIcon(R.drawable.ic_ac_close)
|
||||||
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
|
.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -395,7 +350,7 @@ public class DashboardActivity extends BaseDownloadActivity {
|
||||||
@Override
|
@Override
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
OsmAndAppCustomization appCustomization = getMyApplication().getAppCustomization();
|
OsmAndAppCustomization appCustomization = getMyApplication().getAppCustomization();
|
||||||
if (item.getItemId() == 0) {
|
if (item.getItemId() == HELP_ID) {
|
||||||
if(TIPS_AND_TRICKS) {
|
if(TIPS_AND_TRICKS) {
|
||||||
TipsAndTricksActivity activity = new TipsAndTricksActivity(this);
|
TipsAndTricksActivity activity = new TipsAndTricksActivity(this);
|
||||||
Dialog dlg = activity.getDialogToShowTips(false, true);
|
Dialog dlg = activity.getDialogToShowTips(false, true);
|
||||||
|
@ -404,10 +359,10 @@ public class DashboardActivity extends BaseDownloadActivity {
|
||||||
final Intent helpIntent = new Intent(this, HelpActivity.class);
|
final Intent helpIntent = new Intent(this, HelpActivity.class);
|
||||||
startActivity(helpIntent);
|
startActivity(helpIntent);
|
||||||
}
|
}
|
||||||
} else if (item.getItemId() == 1){
|
} else if (item.getItemId() == SETTINGS_ID){
|
||||||
final Intent settings = new Intent(this, appCustomization.getSettingsActivity());
|
final Intent settings = new Intent(this, appCustomization.getSettingsActivity());
|
||||||
startActivity(settings);
|
startActivity(settings);
|
||||||
} else if (item.getItemId() == 2){
|
} else if (item.getItemId() == EXIT_ID){
|
||||||
getMyApplication().closeApplication(this);
|
getMyApplication().closeApplication(this);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -460,4 +415,29 @@ public class DashboardActivity extends BaseDownloadActivity {
|
||||||
textVersionView.setText(content);
|
textVersionView.setText(content);
|
||||||
textVersionView.setMovementMethod(LinkMovementMethod.getInstance());
|
textVersionView.setMovementMethod(LinkMovementMethod.getInstance());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateProgress(boolean updateOnlyProgress) {
|
||||||
|
BasicProgressAsyncTask<?, ?, ?> basicProgressAsyncTask = BaseDownloadActivity.downloadListIndexThread.getCurrentRunningTask();
|
||||||
|
for(WeakReference<Fragment> ref : fragList) {
|
||||||
|
Fragment f = ref.get();
|
||||||
|
if(f instanceof DashUpdatesFragment) {
|
||||||
|
if(!f.isDetached()) {
|
||||||
|
((DashUpdatesFragment) f).updateProgress(basicProgressAsyncTask, updateOnlyProgress);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateDownloadList(List<IndexItem> list){
|
||||||
|
for(WeakReference<Fragment> ref : fragList) {
|
||||||
|
Fragment f = ref.get();
|
||||||
|
if(f instanceof DashUpdatesFragment) {
|
||||||
|
if(!f.isDetached()) {
|
||||||
|
((DashUpdatesFragment) f).updatedDownloadsList(list);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,7 @@ import net.osmand.access.AccessibilityPlugin;
|
||||||
import net.osmand.access.AccessibleActivity;
|
import net.osmand.access.AccessibleActivity;
|
||||||
import net.osmand.access.AccessibleToast;
|
import net.osmand.access.AccessibleToast;
|
||||||
import net.osmand.access.MapAccessibilityActions;
|
import net.osmand.access.MapAccessibilityActions;
|
||||||
|
import net.osmand.core.android.AtlasMapRendererView;
|
||||||
import net.osmand.data.LatLon;
|
import net.osmand.data.LatLon;
|
||||||
import net.osmand.data.QuadPoint;
|
import net.osmand.data.QuadPoint;
|
||||||
import net.osmand.data.RotatedTileBox;
|
import net.osmand.data.RotatedTileBox;
|
||||||
|
@ -36,6 +37,7 @@ import net.osmand.plus.activities.search.SearchActivity;
|
||||||
import net.osmand.plus.base.FailSafeFuntions;
|
import net.osmand.plus.base.FailSafeFuntions;
|
||||||
import net.osmand.plus.base.MapViewTrackingUtilities;
|
import net.osmand.plus.base.MapViewTrackingUtilities;
|
||||||
import net.osmand.plus.helpers.GpxImportHelper;
|
import net.osmand.plus.helpers.GpxImportHelper;
|
||||||
|
import net.osmand.plus.helpers.WakeLockHelper;
|
||||||
import net.osmand.plus.render.RendererRegistry;
|
import net.osmand.plus.render.RendererRegistry;
|
||||||
import net.osmand.plus.resources.ResourceManager;
|
import net.osmand.plus.resources.ResourceManager;
|
||||||
import net.osmand.plus.routing.RoutingHelper;
|
import net.osmand.plus.routing.RoutingHelper;
|
||||||
|
@ -46,7 +48,7 @@ import net.osmand.plus.views.OsmAndMapLayersView;
|
||||||
import net.osmand.plus.views.OsmAndMapSurfaceView;
|
import net.osmand.plus.views.OsmAndMapSurfaceView;
|
||||||
import net.osmand.plus.views.OsmandMapLayer;
|
import net.osmand.plus.views.OsmandMapLayer;
|
||||||
import net.osmand.plus.views.OsmandMapTileView;
|
import net.osmand.plus.views.OsmandMapTileView;
|
||||||
import net.osmand.plus.views.corenative.NativeQtLibrary;
|
import net.osmand.plus.views.corenative.NativeCoreContext;
|
||||||
import net.osmand.render.RenderingRulesStorage;
|
import net.osmand.render.RenderingRulesStorage;
|
||||||
import net.osmand.util.Algorithms;
|
import net.osmand.util.Algorithms;
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
|
@ -80,8 +82,7 @@ import android.widget.FrameLayout;
|
||||||
import android.widget.ProgressBar;
|
import android.widget.ProgressBar;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
public class MapActivity extends AccessibleActivity implements
|
public class MapActivity extends AccessibleActivity {
|
||||||
VoiceRouter.VoiceMessageListener {
|
|
||||||
|
|
||||||
private static final int SHOW_POSITION_MSG_ID = OsmAndConstants.UI_HANDLER_MAP_VIEW + 1;
|
private static final int SHOW_POSITION_MSG_ID = OsmAndConstants.UI_HANDLER_MAP_VIEW + 1;
|
||||||
private static final int LONG_KEYPRESS_MSG_ID = OsmAndConstants.UI_HANDLER_MAP_VIEW + 2;
|
private static final int LONG_KEYPRESS_MSG_ID = OsmAndConstants.UI_HANDLER_MAP_VIEW + 2;
|
||||||
|
@ -91,7 +92,7 @@ public class MapActivity extends AccessibleActivity implements
|
||||||
|
|
||||||
/** Called when the activity is first created. */
|
/** Called when the activity is first created. */
|
||||||
private OsmandMapTileView mapView;
|
private OsmandMapTileView mapView;
|
||||||
private GLSurfaceView glSurfaceView;
|
private AtlasMapRendererView atlasMapRendererView;
|
||||||
|
|
||||||
private MapActivityActions mapActions;
|
private MapActivityActions mapActions;
|
||||||
private MapActivityLayers mapLayers;
|
private MapActivityLayers mapLayers;
|
||||||
|
@ -113,13 +114,9 @@ public class MapActivity extends AccessibleActivity implements
|
||||||
private StateChangedListener<ApplicationMode> applicationModeListener;
|
private StateChangedListener<ApplicationMode> applicationModeListener;
|
||||||
private FrameLayout lockView;
|
private FrameLayout lockView;
|
||||||
private GpxImportHelper gpxImportHelper;
|
private GpxImportHelper gpxImportHelper;
|
||||||
private PowerManager.WakeLock wakeLock = null;
|
private WakeLockHelper wakeLockHelper ;
|
||||||
private ReleaseWakeLocksRunnable releaseWakeLocksRunnable = new ReleaseWakeLocksRunnable();
|
|
||||||
private boolean active = false;
|
|
||||||
private boolean intentLocation = false;
|
private boolean intentLocation = false;
|
||||||
|
|
||||||
private DevicePolicyManager mDevicePolicyManager;
|
|
||||||
private ComponentName mDeviceAdmin;
|
|
||||||
|
|
||||||
private Notification getNotification() {
|
private Notification getNotification() {
|
||||||
Intent notificationIndent = new Intent(this, getMyApplication().getAppCustomization().getMapActivity());
|
Intent notificationIndent = new Intent(this, getMyApplication().getAppCustomization().getMapActivity());
|
||||||
|
@ -151,14 +148,16 @@ public class MapActivity extends AccessibleActivity implements
|
||||||
app.checkApplicationIsBeingInitialized(this, startProgressDialog);
|
app.checkApplicationIsBeingInitialized(this, startProgressDialog);
|
||||||
parseLaunchIntentLocation();
|
parseLaunchIntentLocation();
|
||||||
|
|
||||||
if(settings.USE_NATIVE_RENDER.get() && NativeQtLibrary.isInit()) {
|
if(settings.USE_OPENGL_RENDER.get() && NativeCoreContext.isInit()) {
|
||||||
ViewStub stub = (ViewStub) findViewById(R.id.glSurfaceStub);
|
ViewStub stub = (ViewStub) findViewById(R.id.atlasMapRendererViewStub);
|
||||||
glSurfaceView = (GLSurfaceView) stub.inflate();
|
atlasMapRendererView = (AtlasMapRendererView) stub.inflate();
|
||||||
OsmAndMapLayersView ml = (OsmAndMapLayersView) findViewById(R.id.MapLayersView);
|
OsmAndMapLayersView ml = (OsmAndMapLayersView) findViewById(R.id.MapLayersView);
|
||||||
ml.setVisibility(View.VISIBLE);
|
ml.setVisibility(View.VISIBLE);
|
||||||
NativeQtLibrary.initView(glSurfaceView);
|
atlasMapRendererView.setAzimuth(0);
|
||||||
|
atlasMapRendererView.setElevationAngle(90);
|
||||||
|
NativeCoreContext.getMapRendererContext().setMapRendererView(atlasMapRendererView);
|
||||||
mapView = ml.getMapView();
|
mapView = ml.getMapView();
|
||||||
mapView.setMapRender(NativeQtLibrary.getMapRenderer());
|
mapView.setMapRender(atlasMapRendererView);
|
||||||
} else {
|
} else {
|
||||||
OsmAndMapSurfaceView surf = (OsmAndMapSurfaceView) findViewById(R.id.MapView);
|
OsmAndMapSurfaceView surf = (OsmAndMapSurfaceView) findViewById(R.id.MapView);
|
||||||
surf.setVisibility(View.VISIBLE);
|
surf.setVisibility(View.VISIBLE);
|
||||||
|
@ -227,8 +226,7 @@ public class MapActivity extends AccessibleActivity implements
|
||||||
|
|
||||||
mapActions.prepareStartOptionsMenu();
|
mapActions.prepareStartOptionsMenu();
|
||||||
|
|
||||||
mDeviceAdmin = new ComponentName(getApplicationContext(), DeviceAdminRecv.class);
|
wakeLockHelper = new WakeLockHelper(getMyApplication());
|
||||||
mDevicePolicyManager = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -442,8 +440,8 @@ public class MapActivity extends AccessibleActivity implements
|
||||||
|
|
||||||
OsmandPlugin.onMapActivityResume(this);
|
OsmandPlugin.onMapActivityResume(this);
|
||||||
mapView.refreshMap(true);
|
mapView.refreshMap(true);
|
||||||
if(glSurfaceView != null) {
|
if(atlasMapRendererView != null) {
|
||||||
glSurfaceView.onResume();
|
atlasMapRendererView.handleOnResume();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -568,11 +566,7 @@ public class MapActivity extends AccessibleActivity implements
|
||||||
@Override
|
@Override
|
||||||
protected void onStart() {
|
protected void onStart() {
|
||||||
super.onStart();
|
super.onStart();
|
||||||
active = true;
|
wakeLockHelper.onStart(this);
|
||||||
if (wakeLock == null) {
|
|
||||||
VoiceRouter voiceRouter = app.getRoutingHelper().getVoiceRouter();
|
|
||||||
voiceRouter.removeVoiceMessageListener(this);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void setProgressDlg(Dialog progressDlg) {
|
protected void setProgressDlg(Dialog progressDlg) {
|
||||||
|
@ -595,11 +589,7 @@ public class MapActivity extends AccessibleActivity implements
|
||||||
progressDlg.dismiss();
|
progressDlg.dismiss();
|
||||||
progressDlg = null;
|
progressDlg = null;
|
||||||
}
|
}
|
||||||
if (!isFinishing() && (settings.WAKE_ON_VOICE_INT.get() > 0)) {
|
wakeLockHelper.onStop(this);
|
||||||
VoiceRouter voiceRouter = app.getRoutingHelper().getVoiceRouter();
|
|
||||||
voiceRouter.addVoiceMessageListener(this);
|
|
||||||
}
|
|
||||||
active = false;
|
|
||||||
super.onStop();
|
super.onStop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -611,6 +601,9 @@ public class MapActivity extends AccessibleActivity implements
|
||||||
mapViewTrackingUtilities.setMapView(null);
|
mapViewTrackingUtilities.setMapView(null);
|
||||||
cancelNotification();
|
cancelNotification();
|
||||||
app.getResourceManager().getMapTileDownloader().removeDownloaderCallback(mapView);
|
app.getResourceManager().getMapTileDownloader().removeDownloaderCallback(mapView);
|
||||||
|
if(atlasMapRendererView != null) {
|
||||||
|
atlasMapRendererView.handleOnDestroy();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void cancelNotification() {
|
private void cancelNotification() {
|
||||||
|
@ -657,24 +650,15 @@ public class MapActivity extends AccessibleActivity implements
|
||||||
app.getResourceManager().interruptRendering();
|
app.getResourceManager().interruptRendering();
|
||||||
app.getResourceManager().setBusyIndicator(null);
|
app.getResourceManager().setBusyIndicator(null);
|
||||||
OsmandPlugin.onMapActivityPause(this);
|
OsmandPlugin.onMapActivityPause(this);
|
||||||
if(glSurfaceView != null) {
|
if(atlasMapRendererView != null) {
|
||||||
glSurfaceView.onPause();
|
atlasMapRendererView.handleOnPause();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void updateApplicationModeSettings() {
|
public void updateApplicationModeSettings() {
|
||||||
changeKeyguardFlags();
|
changeKeyguardFlags();
|
||||||
// update vector renderer
|
updateMapSettings();
|
||||||
RendererRegistry registry = app.getRendererRegistry();
|
|
||||||
RenderingRulesStorage newRenderer = registry.getRenderer(settings.RENDERER.get());
|
|
||||||
if (newRenderer == null) {
|
|
||||||
newRenderer = registry.defaultRender();
|
|
||||||
}
|
|
||||||
if (registry.getCurrentSelectedRenderer() != newRenderer) {
|
|
||||||
registry.setCurrentSelectedRender(newRenderer);
|
|
||||||
app.getResourceManager().getRenderer().clearCache();
|
|
||||||
}
|
|
||||||
mapViewTrackingUtilities.updateSettings();
|
mapViewTrackingUtilities.updateSettings();
|
||||||
app.getRoutingHelper().setAppMode(settings.getApplicationMode());
|
app.getRoutingHelper().setAppMode(settings.getApplicationMode());
|
||||||
if (mapLayers.getMapInfoLayer() != null) {
|
if (mapLayers.getMapInfoLayer() != null) {
|
||||||
|
@ -692,6 +676,22 @@ public class MapActivity extends AccessibleActivity implements
|
||||||
getMapView().refreshMap(true);
|
getMapView().refreshMap(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void updateMapSettings() {
|
||||||
|
// update vector renderer
|
||||||
|
RendererRegistry registry = app.getRendererRegistry();
|
||||||
|
RenderingRulesStorage newRenderer = registry.getRenderer(settings.RENDERER.get());
|
||||||
|
if (newRenderer == null) {
|
||||||
|
newRenderer = registry.defaultRender();
|
||||||
|
}
|
||||||
|
if(mapView.getMapRenderer() != null) {
|
||||||
|
NativeCoreContext.getMapRendererContext().updateMapSettings();
|
||||||
|
}
|
||||||
|
if (registry.getCurrentSelectedRenderer() != newRenderer) {
|
||||||
|
registry.setCurrentSelectedRender(newRenderer);
|
||||||
|
app.getResourceManager().getRenderer().clearCache();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onKeyUp(int keyCode, KeyEvent event) {
|
public boolean onKeyUp(int keyCode, KeyEvent event) {
|
||||||
|
@ -819,54 +819,5 @@ public class MapActivity extends AccessibleActivity implements
|
||||||
return getWindow().getDecorView().findViewById(android.R.id.content);
|
return getWindow().getDecorView().findViewById(android.R.id.content);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onVoiceMessage() {
|
|
||||||
final Integer screenPowerSave = settings.WAKE_ON_VOICE_INT.get();
|
|
||||||
if (screenPowerSave > 0) {
|
|
||||||
uiHandler.removeCallbacks(releaseWakeLocksRunnable);
|
|
||||||
|
|
||||||
if (!active && wakeLock == null) {
|
|
||||||
PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE);
|
|
||||||
wakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK
|
|
||||||
| PowerManager.ACQUIRE_CAUSES_WAKEUP,
|
|
||||||
"OsmAndOnVoiceWakeupTag");
|
|
||||||
wakeLock.acquire();
|
|
||||||
}
|
|
||||||
|
|
||||||
uiHandler.postDelayed(releaseWakeLocksRunnable,
|
|
||||||
screenPowerSave * 1000L);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void releaseWakeLocks() {
|
|
||||||
if (wakeLock != null) {
|
|
||||||
wakeLock.release();
|
|
||||||
wakeLock = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mDevicePolicyManager != null && mDeviceAdmin != null) {
|
|
||||||
final Integer screenPowerSave = settings.WAKE_ON_VOICE_INT.get();
|
|
||||||
if (screenPowerSave > 0 && settings.MAP_ACTIVITY_ENABLED.get()) {
|
|
||||||
if (mDevicePolicyManager.isAdminActive(mDeviceAdmin)) {
|
|
||||||
try {
|
|
||||||
mDevicePolicyManager.lockNow();
|
|
||||||
} catch (SecurityException e) {
|
|
||||||
// Log.d(TAG,
|
|
||||||
// "SecurityException: No device admin permission to lock the screen!");
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// Log.d(TAG,
|
|
||||||
// "No device admin permission to lock the screen!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private class ReleaseWakeLocksRunnable implements Runnable {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
releaseWakeLocks();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,8 +59,6 @@ import android.widget.Toast;
|
||||||
*/
|
*/
|
||||||
public class MapActivityLayers {
|
public class MapActivityLayers {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private final MapActivity activity;
|
private final MapActivity activity;
|
||||||
|
|
||||||
// the order of layer should be preserved ! when you are inserting new layer
|
// the order of layer should be preserved ! when you are inserting new layer
|
||||||
|
@ -103,7 +101,7 @@ public class MapActivityLayers {
|
||||||
mapView.setMainLayer(mapTileLayer);
|
mapView.setMainLayer(mapTileLayer);
|
||||||
|
|
||||||
// 0.5 layer
|
// 0.5 layer
|
||||||
mapVectorLayer = new MapVectorLayer(mapTileLayer);
|
mapVectorLayer = new MapVectorLayer(mapTileLayer, false);
|
||||||
mapView.addLayer(mapVectorLayer, 0.5f);
|
mapView.addLayer(mapVectorLayer, 0.5f);
|
||||||
|
|
||||||
downloadedRegionsLayer = new DownloadedRegionsLayer();
|
downloadedRegionsLayer = new DownloadedRegionsLayer();
|
||||||
|
@ -171,7 +169,7 @@ public class MapActivityLayers {
|
||||||
// mapView.setMainLayer(mapTileLayer);
|
// mapView.setMainLayer(mapTileLayer);
|
||||||
|
|
||||||
// 0.5 layer
|
// 0.5 layer
|
||||||
mapVectorLayer = new MapVectorLayer(mapTileLayer);
|
mapVectorLayer = new MapVectorLayer(mapTileLayer, true);
|
||||||
// mapView.addLayer(mapVectorLayer, 0.5f);
|
// mapView.addLayer(mapVectorLayer, 0.5f);
|
||||||
|
|
||||||
downloadedRegionsLayer = new DownloadedRegionsLayer();
|
downloadedRegionsLayer = new DownloadedRegionsLayer();
|
||||||
|
|
|
@ -24,7 +24,6 @@ import net.osmand.plus.Version;
|
||||||
import net.osmand.plus.base.SuggestExternalDirectoryDialog;
|
import net.osmand.plus.base.SuggestExternalDirectoryDialog;
|
||||||
import net.osmand.plus.download.DownloadActivity;
|
import net.osmand.plus.download.DownloadActivity;
|
||||||
import net.osmand.plus.download.DownloadActivityType;
|
import net.osmand.plus.download.DownloadActivityType;
|
||||||
import net.osmand.plus.download.DownloadIndexFragment;
|
|
||||||
import net.osmand.plus.helpers.FileNameTranslationHelper;
|
import net.osmand.plus.helpers.FileNameTranslationHelper;
|
||||||
import net.osmand.plus.render.NativeOsmandLibrary;
|
import net.osmand.plus.render.NativeOsmandLibrary;
|
||||||
import net.osmand.plus.voice.CommandPlayer;
|
import net.osmand.plus.voice.CommandPlayer;
|
||||||
|
@ -247,7 +246,7 @@ public class SettingsGeneralActivity extends SettingsBaseActivity {
|
||||||
getString(R.string.lang_hu),
|
getString(R.string.lang_hu),
|
||||||
getString(R.string.lang_id) + incompleteSuffix,
|
getString(R.string.lang_id) + incompleteSuffix,
|
||||||
getString(R.string.lang_it),
|
getString(R.string.lang_it),
|
||||||
getString(R.string.lang_ja) + incompleteSuffix,
|
getString(R.string.lang_ja),
|
||||||
getString(R.string.lang_ko),
|
getString(R.string.lang_ko),
|
||||||
getString(R.string.lang_lv),
|
getString(R.string.lang_lv),
|
||||||
getString(R.string.lang_lt),
|
getString(R.string.lang_lt),
|
||||||
|
@ -258,7 +257,7 @@ public class SettingsGeneralActivity extends SettingsBaseActivity {
|
||||||
getString(R.string.lang_pt),
|
getString(R.string.lang_pt),
|
||||||
getString(R.string.lang_ro),
|
getString(R.string.lang_ro),
|
||||||
getString(R.string.lang_ru),
|
getString(R.string.lang_ru),
|
||||||
getString(R.string.lang_sc) + incompleteSuffix,
|
getString(R.string.lang_sc),
|
||||||
getString(R.string.lang_sr) + incompleteSuffix,
|
getString(R.string.lang_sr) + incompleteSuffix,
|
||||||
getString(R.string.lang_zh_CN) + incompleteSuffix,
|
getString(R.string.lang_zh_CN) + incompleteSuffix,
|
||||||
getString(R.string.lang_sk),
|
getString(R.string.lang_sk),
|
||||||
|
@ -331,6 +330,9 @@ public class SettingsGeneralActivity extends SettingsBaseActivity {
|
||||||
}
|
}
|
||||||
misc.addPreference(nativeCheckbox);
|
misc.addPreference(nativeCheckbox);
|
||||||
|
|
||||||
|
final CheckBoxPreference openGlRender = createCheckBoxPreference(settings.USE_OPENGL_RENDER, R.string.use_opengl_render,R.string.use_opengl_render_descr);
|
||||||
|
misc.addPreference(openGlRender);
|
||||||
|
|
||||||
int nav = getResources().getConfiguration().navigation;
|
int nav = getResources().getConfiguration().navigation;
|
||||||
if (nav == Configuration.NAVIGATION_DPAD || nav == Configuration.NAVIGATION_TRACKBALL ||
|
if (nav == Configuration.NAVIGATION_DPAD || nav == Configuration.NAVIGATION_TRACKBALL ||
|
||||||
nav == Configuration.NAVIGATION_WHEEL ||
|
nav == Configuration.NAVIGATION_WHEEL ||
|
||||||
|
|
|
@ -1,56 +0,0 @@
|
||||||
package net.osmand.plus.api.render;
|
|
||||||
|
|
||||||
|
|
||||||
public interface Paint {
|
|
||||||
public enum Style {
|
|
||||||
FILL (0),
|
|
||||||
STROKE (1),
|
|
||||||
FILL_AND_STROKE (2);
|
|
||||||
Style(int nativeInt) {
|
|
||||||
this.nativeInt = nativeInt;
|
|
||||||
}
|
|
||||||
final int nativeInt;
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum Cap {
|
|
||||||
BUTT (0),
|
|
||||||
ROUND (1),
|
|
||||||
SQUARE (2);
|
|
||||||
private Cap(int nativeInt) {
|
|
||||||
this.nativeInt = nativeInt;
|
|
||||||
}
|
|
||||||
final int nativeInt;
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum Join {
|
|
||||||
MITER (0),
|
|
||||||
ROUND (1),
|
|
||||||
BEVEL (2);
|
|
||||||
private Join(int nativeInt) {
|
|
||||||
this.nativeInt = nativeInt;
|
|
||||||
}
|
|
||||||
final int nativeInt;
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum Align {
|
|
||||||
LEFT (0),
|
|
||||||
CENTER (1),
|
|
||||||
RIGHT (2);
|
|
||||||
private Align(int nativeInt) {
|
|
||||||
this.nativeInt = nativeInt;
|
|
||||||
}
|
|
||||||
final int nativeInt;
|
|
||||||
}
|
|
||||||
|
|
||||||
void setColor(int color);
|
|
||||||
|
|
||||||
int getColor();
|
|
||||||
|
|
||||||
void setTextAlign(Align align);
|
|
||||||
|
|
||||||
void setStrokeWidth(float width);
|
|
||||||
|
|
||||||
void setAntiAlias(boolean flag);
|
|
||||||
|
|
||||||
void setStyle(Style style);
|
|
||||||
}
|
|
|
@ -1,5 +0,0 @@
|
||||||
package net.osmand.plus.api.render;
|
|
||||||
|
|
||||||
public interface Path {
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,5 +0,0 @@
|
||||||
package net.osmand.plus.api.render;
|
|
||||||
|
|
||||||
public class Typeface {
|
|
||||||
|
|
||||||
}
|
|
|
@ -11,4 +11,5 @@ public class DashBaseFragment extends SherlockFragment {
|
||||||
public OsmandApplication getMyApplication(){
|
public OsmandApplication getMyApplication(){
|
||||||
return (OsmandApplication) getActivity().getApplication();
|
return (OsmandApplication) getActivity().getApplication();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
83
OsmAnd/src/net/osmand/plus/dashboard/DashErrorFragment.java
Normal file
83
OsmAnd/src/net/osmand/plus/dashboard/DashErrorFragment.java
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
package net.osmand.plus.dashboard;
|
||||||
|
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.content.pm.PackageInfo;
|
||||||
|
import android.content.pm.PackageManager;
|
||||||
|
import android.graphics.Typeface;
|
||||||
|
import android.net.Uri;
|
||||||
|
import android.os.Build;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.Button;
|
||||||
|
import android.widget.TextView;
|
||||||
|
import net.osmand.plus.OsmandApplication;
|
||||||
|
import net.osmand.plus.R;
|
||||||
|
import net.osmand.plus.Version;
|
||||||
|
import net.osmand.plus.activities.DashboardActivity;
|
||||||
|
import net.osmand.plus.helpers.FontCache;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.text.MessageFormat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by dummy on 02.12.14.
|
||||||
|
*/
|
||||||
|
public class DashErrorFragment extends DashBaseFragment {
|
||||||
|
|
||||||
|
public static final String TAG = "DASH_ERROR_FRAGMENT";
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||||
|
View view = getActivity().getLayoutInflater().inflate(R.layout.dash_error_fragment, container, false);
|
||||||
|
String msg = MessageFormat.format(getString(R.string.previous_run_crashed), OsmandApplication.EXCEPTION_PATH);
|
||||||
|
Typeface typeface = FontCache.getRobotoMedium(getActivity());
|
||||||
|
TextView message =((TextView) view.findViewById(R.id.error_header));
|
||||||
|
message.setTypeface(typeface);
|
||||||
|
message.setText(msg);
|
||||||
|
Button errorBtn = ((Button) view.findViewById(R.id.error_btn));
|
||||||
|
errorBtn.setTypeface(typeface);
|
||||||
|
errorBtn.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View view) {
|
||||||
|
Intent intent = new Intent(Intent.ACTION_SEND);
|
||||||
|
intent.putExtra(Intent.EXTRA_EMAIL, new String[] { "osmand.app+crash@gmail.com" }); //$NON-NLS-1$
|
||||||
|
File file = getMyApplication().getAppPath(OsmandApplication.EXCEPTION_PATH);
|
||||||
|
intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
|
||||||
|
intent.setType("vnd.android.cursor.dir/email"); //$NON-NLS-1$
|
||||||
|
intent.putExtra(Intent.EXTRA_SUBJECT, "OsmAnd bug"); //$NON-NLS-1$
|
||||||
|
StringBuilder text = new StringBuilder();
|
||||||
|
text.append("\nDevice : ").append(Build.DEVICE); //$NON-NLS-1$
|
||||||
|
text.append("\nBrand : ").append(Build.BRAND); //$NON-NLS-1$
|
||||||
|
text.append("\nModel : ").append(Build.MODEL); //$NON-NLS-1$
|
||||||
|
text.append("\nProduct : ").append(Build.PRODUCT); //$NON-NLS-1$
|
||||||
|
text.append("\nBuild : ").append(Build.DISPLAY); //$NON-NLS-1$
|
||||||
|
text.append("\nVersion : ").append(Build.VERSION.RELEASE); //$NON-NLS-1$
|
||||||
|
text.append("\nApp Version : ").append(Version.getAppName(getMyApplication())); //$NON-NLS-1$
|
||||||
|
try {
|
||||||
|
PackageInfo info = getActivity().getPackageManager().getPackageInfo(getActivity().getPackageName(), 0);
|
||||||
|
if (info != null) {
|
||||||
|
text.append("\nApk Version : ").append(info.versionName).append(" ").append(info.versionCode); //$NON-NLS-1$ //$NON-NLS-2$
|
||||||
|
}
|
||||||
|
} catch (PackageManager.NameNotFoundException e) {
|
||||||
|
}
|
||||||
|
intent.putExtra(Intent.EXTRA_TEXT, text.toString());
|
||||||
|
startActivity(Intent.createChooser(intent, getString(R.string.send_report)));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Button cancelBtn = ((Button) view.findViewById(R.id.error_cancel));
|
||||||
|
cancelBtn.setTypeface(typeface);
|
||||||
|
cancelBtn.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View view) {
|
||||||
|
DashboardActivity dashboardActivity =((DashboardActivity)getSherlockActivity());
|
||||||
|
if (dashboardActivity != null) {
|
||||||
|
dashboardActivity.getSupportFragmentManager().beginTransaction().remove(DashErrorFragment.this).commit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return view;
|
||||||
|
}
|
||||||
|
}
|
|
@ -21,6 +21,7 @@ import net.osmand.plus.OsmAndFormatter;
|
||||||
import net.osmand.plus.R;
|
import net.osmand.plus.R;
|
||||||
import net.osmand.plus.activities.MapActivity;
|
import net.osmand.plus.activities.MapActivity;
|
||||||
import net.osmand.plus.base.FavoriteImageDrawable;
|
import net.osmand.plus.base.FavoriteImageDrawable;
|
||||||
|
import net.osmand.plus.helpers.FontCache;
|
||||||
import net.osmand.util.MapUtils;
|
import net.osmand.util.MapUtils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -36,7 +37,7 @@ public class DashFavoritesFragment extends DashBaseFragment {
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
||||||
View view = getActivity().getLayoutInflater().inflate(R.layout.dash_favorites_fragment, container, false);
|
View view = getActivity().getLayoutInflater().inflate(R.layout.dash_favorites_fragment, container, false);
|
||||||
Typeface typeface = Typeface.createFromAsset(getActivity().getAssets(), "fonts/Roboto-Medium.ttf");
|
Typeface typeface = FontCache.getRobotoMedium(getActivity());
|
||||||
((TextView) view.findViewById(R.id.fav_text)).setTypeface(typeface);
|
((TextView) view.findViewById(R.id.fav_text)).setTypeface(typeface);
|
||||||
((Button) view.findViewById(R.id.show_all)).setTypeface(typeface);
|
((Button) view.findViewById(R.id.show_all)).setTypeface(typeface);
|
||||||
|
|
||||||
|
|
|
@ -9,12 +9,18 @@ import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
|
import android.widget.ProgressBar;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import net.osmand.data.LatLon;
|
import net.osmand.data.LatLon;
|
||||||
import net.osmand.map.MapTileDownloader.DownloadRequest;
|
import net.osmand.map.MapTileDownloader.DownloadRequest;
|
||||||
import net.osmand.map.MapTileDownloader.IMapDownloaderCallback;
|
import net.osmand.map.MapTileDownloader.IMapDownloaderCallback;
|
||||||
import net.osmand.plus.OsmAndAppCustomization;
|
import net.osmand.plus.OsmAndAppCustomization;
|
||||||
|
import net.osmand.plus.OsmandApplication;
|
||||||
import net.osmand.plus.R;
|
import net.osmand.plus.R;
|
||||||
|
import net.osmand.plus.activities.DashboardActivity;
|
||||||
|
import net.osmand.plus.activities.MapActivity;
|
||||||
|
import net.osmand.plus.activities.MapActivityActions;
|
||||||
|
import net.osmand.plus.helpers.FontCache;
|
||||||
import net.osmand.plus.render.MapVectorLayer;
|
import net.osmand.plus.render.MapVectorLayer;
|
||||||
import net.osmand.plus.resources.ResourceManager;
|
import net.osmand.plus.resources.ResourceManager;
|
||||||
import net.osmand.plus.views.MapTextLayer;
|
import net.osmand.plus.views.MapTextLayer;
|
||||||
|
@ -41,29 +47,37 @@ public class DashMapFragment extends DashBaseFragment implements IMapDownloader
|
||||||
getMyApplication().getResourceManager().getMapTileDownloader().addDownloaderCallback(this);
|
getMyApplication().getResourceManager().getMapTileDownloader().addDownloaderCallback(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void startMapActivity() {
|
||||||
|
MapActivity.launchMapActivityMoveToTop(getActivity());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
||||||
View view = getActivity().getLayoutInflater().inflate(R.layout.dash_map_fragment, container, false);
|
View view = getActivity().getLayoutInflater().inflate(R.layout.dash_map_fragment, container, false);
|
||||||
setupMapView(view);
|
Typeface typeface = FontCache.getRobotoMedium(getActivity());
|
||||||
Typeface typeface = Typeface.createFromAsset(getActivity().getAssets(), "fonts/Roboto-Medium.ttf");
|
|
||||||
((TextView) view.findViewById(R.id.map_text)).setTypeface(typeface);
|
((TextView) view.findViewById(R.id.map_text)).setTypeface(typeface);
|
||||||
((Button) view.findViewById(R.id.show_map)).setTypeface(typeface);
|
((Button) view.findViewById(R.id.show_map)).setTypeface(typeface);
|
||||||
|
setupMapView(view);
|
||||||
(view.findViewById(R.id.show_map)).setOnClickListener(new View.OnClickListener() {
|
(view.findViewById(R.id.show_map)).setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
Activity activity = getActivity();
|
startMapActivity();
|
||||||
OsmAndAppCustomization appCustomization = getMyApplication().getAppCustomization();
|
|
||||||
final Intent mapIndent = new Intent(activity, appCustomization.getMapActivity());
|
|
||||||
activity.startActivityForResult(mapIndent, 0);
|
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setupMapView(View view){
|
private void setupMapView(View view){
|
||||||
OsmAndMapSurfaceView surf = (OsmAndMapSurfaceView) view.findViewById(R.id.MapView);
|
OsmAndMapSurfaceView surf = (OsmAndMapSurfaceView) view.findViewById(R.id.MapView);
|
||||||
|
surf.setOnClickListener(new View.OnClickListener() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
startMapActivity();
|
||||||
|
}
|
||||||
|
});
|
||||||
osmandMapTileView = surf.getMapView();
|
osmandMapTileView = surf.getMapView();
|
||||||
osmandMapTileView.getView().setVisibility(View.VISIBLE);
|
osmandMapTileView.getView().setVisibility(View.VISIBLE);
|
||||||
osmandMapTileView.removeAllLayers();
|
osmandMapTileView.removeAllLayers();
|
||||||
|
@ -75,13 +89,45 @@ public class DashMapFragment extends DashBaseFragment implements IMapDownloader
|
||||||
osmandMapTileView.addLayer(mapVectorLayer, 0.5f);
|
osmandMapTileView.addLayer(mapVectorLayer, 0.5f);
|
||||||
osmandMapTileView.setMainLayer(mapVectorLayer);
|
osmandMapTileView.setMainLayer(mapVectorLayer);
|
||||||
mapVectorLayer.setVisible(true);
|
mapVectorLayer.setVisible(true);
|
||||||
|
osmandMapTileView.setShowMapPosition(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onResume() {
|
||||||
|
super.onResume();
|
||||||
LatLon lm = getMyApplication().getSettings().getLastKnownMapLocation();
|
LatLon lm = getMyApplication().getSettings().getLastKnownMapLocation();
|
||||||
int zm = getMyApplication().getSettings().getLastKnownMapZoom();
|
int zm = getMyApplication().getSettings().getLastKnownMapZoom();
|
||||||
osmandMapTileView.setLatLon(lm.getLatitude(), lm.getLongitude());
|
osmandMapTileView.setLatLon(lm.getLatitude(), lm.getLongitude());
|
||||||
osmandMapTileView.setIntZoom(zm);
|
osmandMapTileView.setComplexZoom(zm, osmandMapTileView.getSettingsZoomScale());
|
||||||
osmandMapTileView.refreshMap(true);
|
osmandMapTileView.refreshMap(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onViewCreated(final View view, @Nullable Bundle savedInstanceState) {
|
||||||
|
super.onViewCreated(view, savedInstanceState);
|
||||||
|
view.findViewById(R.id.MapView).setVisibility(View.GONE);
|
||||||
|
if(getMyApplication().isApplicationInitializing()) {
|
||||||
|
getMyApplication().checkApplicationIsBeingInitialized(getActivity(), (TextView) view.findViewById(R.id.ProgressMessage),
|
||||||
|
(ProgressBar) view.findViewById(R.id.ProgressBar), new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
applicationInitialized(view);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
applicationInitialized(view);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void applicationInitialized(View view) {
|
||||||
|
view.findViewById(R.id.loading).setVisibility(View.GONE);
|
||||||
|
DashboardActivity dashboardActivity =((DashboardActivity)getSherlockActivity());
|
||||||
|
if (dashboardActivity != null){
|
||||||
|
dashboardActivity.updateDownloads();
|
||||||
|
view.findViewById(R.id.MapView).setVisibility(View.VISIBLE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tileDownloaded(DownloadRequest request) {
|
public void tileDownloaded(DownloadRequest request) {
|
||||||
if(request != null && !request.error && request.fileToSave != null){
|
if(request != null && !request.error && request.fileToSave != null){
|
||||||
|
|
|
@ -14,6 +14,7 @@ import android.widget.LinearLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import net.osmand.plus.OsmandPlugin;
|
import net.osmand.plus.OsmandPlugin;
|
||||||
import net.osmand.plus.R;
|
import net.osmand.plus.R;
|
||||||
|
import net.osmand.plus.helpers.FontCache;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -27,7 +28,7 @@ public class DashPluginsFragment extends DashBaseFragment {
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
||||||
View view = getActivity().getLayoutInflater().inflate(R.layout.dash_plugins_fragment, container, false);
|
View view = getActivity().getLayoutInflater().inflate(R.layout.dash_plugins_fragment, container, false);
|
||||||
Typeface typeface = Typeface.createFromAsset(getActivity().getAssets(), "fonts/Roboto-Medium.ttf");
|
Typeface typeface = FontCache.getRobotoMedium(getActivity());
|
||||||
((TextView) view.findViewById(R.id.plugin_text)).setTypeface(typeface);
|
((TextView) view.findViewById(R.id.plugin_text)).setTypeface(typeface);
|
||||||
((Button) view.findViewById(R.id.show_all)).setTypeface(typeface);
|
((Button) view.findViewById(R.id.show_all)).setTypeface(typeface);
|
||||||
view.findViewById(R.id.show_all).setOnClickListener(new View.OnClickListener() {
|
view.findViewById(R.id.show_all).setOnClickListener(new View.OnClickListener() {
|
||||||
|
|
|
@ -1,18 +1,22 @@
|
||||||
package net.osmand.plus.dashboard;
|
package net.osmand.plus.dashboard;
|
||||||
|
|
||||||
|
import net.osmand.plus.OsmAndAppCustomization;
|
||||||
|
import net.osmand.plus.R;
|
||||||
|
import net.osmand.plus.activities.search.SearchActivity;
|
||||||
|
import net.osmand.plus.helpers.FontCache;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.graphics.Typeface;
|
import android.graphics.Typeface;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
|
import android.text.Editable;
|
||||||
|
import android.text.TextWatcher;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.AutoCompleteTextView;
|
||||||
|
import android.widget.EditText;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import net.osmand.plus.OsmAndAppCustomization;
|
|
||||||
import net.osmand.plus.OsmandApplication;
|
|
||||||
import net.osmand.plus.R;
|
|
||||||
import net.osmand.plus.activities.search.SearchActivity;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Denis on 24.11.2014.
|
* Created by Denis on 24.11.2014.
|
||||||
|
@ -25,7 +29,7 @@ public class DashSearchFragment extends DashBaseFragment {
|
||||||
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
||||||
View view = getActivity().getLayoutInflater().inflate(R.layout.dash_search_fragment, container, false);
|
View view = getActivity().getLayoutInflater().inflate(R.layout.dash_search_fragment, container, false);
|
||||||
setupButtons(view);
|
setupButtons(view);
|
||||||
Typeface typeface = Typeface.createFromAsset(getActivity().getAssets(), "fonts/Roboto-Medium.ttf");
|
Typeface typeface = FontCache.getRobotoMedium(getActivity());
|
||||||
((TextView) view.findViewById(R.id.search_for)).setTypeface(typeface);
|
((TextView) view.findViewById(R.id.search_for)).setTypeface(typeface);
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
@ -39,6 +43,8 @@ public class DashSearchFragment extends DashBaseFragment {
|
||||||
private void setupButtons(View view){
|
private void setupButtons(View view){
|
||||||
final Activity activity = getActivity();
|
final Activity activity = getActivity();
|
||||||
final OsmAndAppCustomization appCustomization = getMyApplication().getAppCustomization();
|
final OsmAndAppCustomization appCustomization = getMyApplication().getAppCustomization();
|
||||||
|
// EditText searchText = (EditText) view.findViewById(R.id.search_text);
|
||||||
|
// searchText.addTextChangedListener(textWatcher);
|
||||||
(view.findViewById(R.id.poi)).setOnClickListener(new View.OnClickListener() {
|
(view.findViewById(R.id.poi)).setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
|
|
|
@ -57,11 +57,11 @@ public class DashUpdatesFragment extends DashBaseFragment {
|
||||||
@Override
|
@Override
|
||||||
public void onResume() {
|
public void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
if (BaseDownloadActivity.downloadListIndexThread != null){
|
if (BaseDownloadActivity.downloadListIndexThread != null) {
|
||||||
currentProgress = null;
|
currentProgress = null;
|
||||||
cancelButton = null;
|
cancelButton = null;
|
||||||
updatedDownloadsList(BaseDownloadActivity.downloadListIndexThread.getItemsToUpdate());
|
|
||||||
}
|
}
|
||||||
|
updatedDownloadsList(BaseDownloadActivity.downloadListIndexThread.getItemsToUpdate());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updatedDownloadsList(List<IndexItem> list) {
|
public void updatedDownloadsList(List<IndexItem> list) {
|
||||||
|
@ -73,18 +73,16 @@ public class DashUpdatesFragment extends DashBaseFragment {
|
||||||
progressBars.clear();
|
progressBars.clear();
|
||||||
baseNames.clear();
|
baseNames.clear();
|
||||||
downloadButtons.clear();
|
downloadButtons.clear();
|
||||||
if (list.size() > 0) {
|
mainView.findViewById(R.id.main_progress).setVisibility(View.GONE);
|
||||||
mainView.setVisibility(View.VISIBLE);
|
((TextView) mainView.findViewById(R.id.update_count)).setText(String.valueOf(list.size()));
|
||||||
} else {
|
|
||||||
mainView.setVisibility(View.GONE);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
((TextView)mainView.findViewById(R.id.update_count)).setText(String.valueOf(list.size()));
|
|
||||||
|
|
||||||
LinearLayout updates = (LinearLayout) mainView.findViewById(R.id.updates_items);
|
LinearLayout updates = (LinearLayout) mainView.findViewById(R.id.updates_items);
|
||||||
updates.removeAllViews();
|
updates.removeAllViews();
|
||||||
|
|
||||||
|
if (list.size() < 1) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
for (int i = 0; i < list.size(); i++) {
|
for (int i = 0; i < list.size(); i++) {
|
||||||
final IndexItem item = list.get(i);
|
final IndexItem item = list.get(i);
|
||||||
if (i > 2) {
|
if (i > 2) {
|
||||||
|
@ -104,10 +102,10 @@ public class DashUpdatesFragment extends DashBaseFragment {
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
getDownloadActivity().startDownload(item);
|
getDownloadActivity().startDownload(item);
|
||||||
currentProgress = progressBar;
|
currentProgress = progressBar;
|
||||||
cancelButton = (ImageButton)view;
|
cancelButton = (ImageButton) view;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
downloadButtons.add((ImageButton)downloadButton);
|
downloadButtons.add((ImageButton) downloadButton);
|
||||||
baseNames.add(item.getBasename());
|
baseNames.add(item.getBasename());
|
||||||
progressBars.add(progressBar);
|
progressBars.add(progressBar);
|
||||||
updates.addView(view);
|
updates.addView(view);
|
||||||
|
@ -115,24 +113,24 @@ public class DashUpdatesFragment extends DashBaseFragment {
|
||||||
updateProgress(BaseDownloadActivity.downloadListIndexThread.getCurrentRunningTask(), false);
|
updateProgress(BaseDownloadActivity.downloadListIndexThread.getCurrentRunningTask(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private BaseDownloadActivity getDownloadActivity(){
|
private BaseDownloadActivity getDownloadActivity() {
|
||||||
return (BaseDownloadActivity)getActivity();
|
return (BaseDownloadActivity) getActivity();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateProgress(BasicProgressAsyncTask<?, ?, ?> basicProgressAsyncTask, boolean updateOnlyProgress) {
|
public void updateProgress(BasicProgressAsyncTask<?, ?, ?> basicProgressAsyncTask, boolean updateOnlyProgress) {
|
||||||
if (basicProgressAsyncTask == null){
|
if (basicProgressAsyncTask == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//needed when rotation is performed and progress can be null
|
//needed when rotation is performed and progress can be null
|
||||||
if (currentProgress == null){
|
if (currentProgress == null) {
|
||||||
getProgressIfPossible(basicProgressAsyncTask.getDescription());
|
getProgressIfPossible(basicProgressAsyncTask.getDescription());
|
||||||
if (currentProgress == null){
|
if (currentProgress == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(updateOnlyProgress){
|
if (updateOnlyProgress) {
|
||||||
if(!basicProgressAsyncTask.isIndeterminate()){
|
if (!basicProgressAsyncTask.isIndeterminate()) {
|
||||||
currentProgress.setProgress(basicProgressAsyncTask.getProgressPercentage());
|
currentProgress.setProgress(basicProgressAsyncTask.getProgressPercentage());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -150,6 +148,7 @@ public class DashUpdatesFragment extends DashBaseFragment {
|
||||||
});
|
});
|
||||||
boolean intermediate = basicProgressAsyncTask.isIndeterminate();
|
boolean intermediate = basicProgressAsyncTask.isIndeterminate();
|
||||||
currentProgress.setVisibility(intermediate ? View.GONE : View.VISIBLE);
|
currentProgress.setVisibility(intermediate ? View.GONE : View.VISIBLE);
|
||||||
|
//getView().findViewById(R.id.main_progress).setVisibility(intermediate ? View.VISIBLE : View.GONE);
|
||||||
if (!intermediate) {
|
if (!intermediate) {
|
||||||
currentProgress.setProgress(basicProgressAsyncTask.getProgressPercentage());
|
currentProgress.setProgress(basicProgressAsyncTask.getProgressPercentage());
|
||||||
}
|
}
|
||||||
|
@ -157,8 +156,11 @@ public class DashUpdatesFragment extends DashBaseFragment {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void getProgressIfPossible(String message) {
|
private void getProgressIfPossible(String message) {
|
||||||
for (int i =0; i<baseNames.size(); i++){
|
if (getActivity() == null){
|
||||||
if (message.equals(getActivity().getString(R.string.downloading_file_new) + " " + baseNames.get(i))){
|
return;
|
||||||
|
}
|
||||||
|
for (int i = 0; i < baseNames.size(); i++) {
|
||||||
|
if (message.equals(getActivity().getString(R.string.downloading_file_new) + " " + baseNames.get(i))) {
|
||||||
currentProgress = progressBars.get(i);
|
currentProgress = progressBars.get(i);
|
||||||
cancelButton = downloadButtons.get(i);
|
cancelButton = downloadButtons.get(i);
|
||||||
currentProgress.setVisibility(View.VISIBLE);
|
currentProgress.setVisibility(View.VISIBLE);
|
||||||
|
|
|
@ -6,7 +6,6 @@ import java.util.LinkedHashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import net.osmand.core.android.GLActivity;
|
|
||||||
import net.osmand.plus.ApplicationMode;
|
import net.osmand.plus.ApplicationMode;
|
||||||
import net.osmand.plus.R;
|
import net.osmand.plus.R;
|
||||||
import net.osmand.plus.activities.SettingsBaseActivity;
|
import net.osmand.plus.activities.SettingsBaseActivity;
|
||||||
|
@ -42,22 +41,7 @@ public class SettingsDevelopmentActivity extends SettingsBaseActivity {
|
||||||
|
|
||||||
cat.addPreference(createCheckBoxPreference(settings.USE_MAGNETIC_FIELD_SENSOR_COMPASS, R.string.use_magnetic_sensor, R.string.use_magnetic_sensor_descr));
|
cat.addPreference(createCheckBoxPreference(settings.USE_MAGNETIC_FIELD_SENSOR_COMPASS, R.string.use_magnetic_sensor, R.string.use_magnetic_sensor_descr));
|
||||||
|
|
||||||
cat.addPreference(createCheckBoxPreference(settings.USE_NATIVE_RENDER, R.string.use_native_render,R.string.use_native_render_descr));
|
|
||||||
|
|
||||||
Preference pref = new Preference(this);
|
Preference pref = new Preference(this);
|
||||||
pref.setTitle(R.string.test_native_render);
|
|
||||||
pref.setSummary(R.string.test_native_render_msg);
|
|
||||||
pref.setKey("test_native_render");
|
|
||||||
pref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
|
|
||||||
@Override
|
|
||||||
public boolean onPreferenceClick(Preference preference) {
|
|
||||||
startActivity(new Intent(SettingsDevelopmentActivity.this, GLActivity.class));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
cat.addPreference(pref);
|
|
||||||
|
|
||||||
pref = new Preference(this);
|
|
||||||
pref.setTitle(R.string.test_voice_prompts);
|
pref.setTitle(R.string.test_voice_prompts);
|
||||||
pref.setSummary(R.string.play_commands_of_currently_selected_voice);
|
pref.setSummary(R.string.play_commands_of_currently_selected_voice);
|
||||||
pref.setKey("test_voice_commands");
|
pref.setKey("test_voice_commands");
|
||||||
|
|
|
@ -166,6 +166,7 @@ public class ConfigureMapMenu {
|
||||||
|
|
||||||
protected void refreshMapComplete(final MapActivity activity) {
|
protected void refreshMapComplete(final MapActivity activity) {
|
||||||
activity.getMyApplication().getResourceManager().getRenderer().clearCache();
|
activity.getMyApplication().getResourceManager().getRenderer().clearCache();
|
||||||
|
activity.updateMapSettings();
|
||||||
activity.getMapView().refreshMap(true);
|
activity.getMapView().refreshMap(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -368,8 +369,7 @@ public class ConfigureMapMenu {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
pref.set(p.getPossibleValues()[which]);
|
pref.set(p.getPossibleValues()[which]);
|
||||||
app.getResourceManager().getRenderer().clearCache();
|
refreshMapComplete(activity);
|
||||||
view.refreshMap(true);
|
|
||||||
adapter.setItemDescription(pos, SettingsActivity.getStringPropertyValue(activity, pref.get()));
|
adapter.setItemDescription(pos, SettingsActivity.getStringPropertyValue(activity, pref.get()));
|
||||||
dialog.dismiss();
|
dialog.dismiss();
|
||||||
ad.notifyDataSetInvalidated();
|
ad.notifyDataSetInvalidated();
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package net.osmand.plus.download;
|
package net.osmand.plus.download;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
import java.text.MessageFormat;
|
import java.text.MessageFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -7,11 +8,18 @@ import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import android.content.ActivityNotFoundException;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.net.Uri;
|
||||||
|
import android.os.Build;
|
||||||
|
import net.osmand.IndexConstants;
|
||||||
|
import net.osmand.access.AccessibleAlertBuilder;
|
||||||
import net.osmand.plus.OsmandApplication;
|
import net.osmand.plus.OsmandApplication;
|
||||||
import net.osmand.plus.OsmandSettings;
|
import net.osmand.plus.OsmandSettings;
|
||||||
import net.osmand.plus.R;
|
import net.osmand.plus.R;
|
||||||
import net.osmand.plus.Version;
|
import net.osmand.plus.Version;
|
||||||
import net.osmand.plus.activities.DashboardActivity;
|
import net.osmand.plus.activities.DashboardActivity;
|
||||||
|
import net.osmand.plus.activities.SettingsGeneralActivity;
|
||||||
import net.osmand.plus.base.BasicProgressAsyncTask;
|
import net.osmand.plus.base.BasicProgressAsyncTask;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
|
@ -20,6 +28,7 @@ import android.support.v4.app.Fragment;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import com.actionbarsherlock.app.SherlockFragmentActivity;
|
import com.actionbarsherlock.app.SherlockFragmentActivity;
|
||||||
|
import net.osmand.plus.base.SuggestExternalDirectoryDialog;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Denis on 25.11.2014.
|
* Created by Denis on 25.11.2014.
|
||||||
|
@ -35,11 +44,16 @@ public class BaseDownloadActivity extends SherlockFragmentActivity {
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
settings = ((OsmandApplication) getApplication()).getSettings();
|
||||||
if(downloadListIndexThread == null) {
|
if(downloadListIndexThread == null) {
|
||||||
downloadListIndexThread = new DownloadIndexesThread(this);
|
downloadListIndexThread = new DownloadIndexesThread(this);
|
||||||
}
|
}
|
||||||
|
prepareDownloadDirectory();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void updateDownloads() {
|
||||||
if (downloadListIndexThread.getCachedIndexFiles() != null && downloadListIndexThread.isDownloadedFromInternet()) {
|
if (downloadListIndexThread.getCachedIndexFiles() != null && downloadListIndexThread.isDownloadedFromInternet()) {
|
||||||
downloadListIndexThread.runCategorization(type);
|
downloadListIndexThread.runCategorization(DownloadActivityType.NORMAL_FILE);
|
||||||
} else {
|
} else {
|
||||||
downloadListIndexThread.runReloadIndexFiles();
|
downloadListIndexThread.runReloadIndexFiles();
|
||||||
}
|
}
|
||||||
|
@ -196,5 +210,96 @@ public class BaseDownloadActivity extends SherlockFragmentActivity {
|
||||||
bld.setNegativeButton(R.string.default_buttons_no, null);
|
bld.setNegativeButton(R.string.default_buttons_no, null);
|
||||||
bld.show();
|
bld.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void prepareDownloadDirectory() {
|
||||||
|
if(getMyApplication().getResourceManager().getIndexFileNames().isEmpty()) {
|
||||||
|
boolean showedDialog = false;
|
||||||
|
if(Build.VERSION.SDK_INT < OsmandSettings.VERSION_DEFAULTLOCATION_CHANGED) {
|
||||||
|
SuggestExternalDirectoryDialog.showDialog(this, null, null);
|
||||||
|
}
|
||||||
|
if(!showedDialog) {
|
||||||
|
showDialogOfFreeDownloadsIfNeeded();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
showDialogOfFreeDownloadsIfNeeded();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (Build.VERSION.SDK_INT >= OsmandSettings.VERSION_DEFAULTLOCATION_CHANGED) {
|
||||||
|
final String currentStorage = settings.getExternalStorageDirectory().getAbsolutePath();
|
||||||
|
String primaryStorage = settings.getDefaultExternalStorageLocation();
|
||||||
|
if (!currentStorage.startsWith(primaryStorage)) {
|
||||||
|
// secondary storage
|
||||||
|
boolean currentDirectoryNotWritable = true;
|
||||||
|
for (String writeableDirectory : settings.getWritableSecondaryStorageDirectorys()) {
|
||||||
|
if (currentStorage.startsWith(writeableDirectory)) {
|
||||||
|
currentDirectoryNotWritable = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (currentDirectoryNotWritable) {
|
||||||
|
currentDirectoryNotWritable = !OsmandSettings.isWritable(settings.getExternalStorageDirectory());
|
||||||
|
}
|
||||||
|
if (currentDirectoryNotWritable) {
|
||||||
|
final String newLoc = settings.getMatchingExternalFilesDir(currentStorage);
|
||||||
|
if (newLoc != null && newLoc.length() != 0) {
|
||||||
|
AccessibleAlertBuilder ab = new AccessibleAlertBuilder(this);
|
||||||
|
ab.setMessage(getString(R.string.android_19_location_disabled,
|
||||||
|
settings.getExternalStorageDirectory()));
|
||||||
|
ab.setPositiveButton(R.string.default_buttons_yes, new DialogInterface.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
copyFilesForAndroid19(newLoc);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
ab.setNegativeButton(R.string.default_buttons_cancel, null);
|
||||||
|
ab.show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void showDialogOfFreeDownloadsIfNeeded() {
|
||||||
|
if (Version.isFreeVersion(getMyApplication())) {
|
||||||
|
AlertDialog.Builder msg = new AlertDialog.Builder(this);
|
||||||
|
msg.setTitle(R.string.free_version_title);
|
||||||
|
String m = getString(R.string.free_version_message, MAXIMUM_AVAILABLE_FREE_DOWNLOADS + "", "") + "\n";
|
||||||
|
m += getString(R.string.available_downloads_left, MAXIMUM_AVAILABLE_FREE_DOWNLOADS - settings.NUMBER_OF_FREE_DOWNLOADS.get());
|
||||||
|
msg.setMessage(m);
|
||||||
|
if (Version.isMarketEnabled(getMyApplication())) {
|
||||||
|
msg.setNeutralButton(R.string.install_paid, new DialogInterface.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(Version.marketPrefix(getMyApplication()) + "net.osmand.plus"));
|
||||||
|
try {
|
||||||
|
startActivity(intent);
|
||||||
|
} catch (ActivityNotFoundException e) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
msg.setPositiveButton(R.string.default_buttons_ok, null);
|
||||||
|
msg.show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void copyFilesForAndroid19(final String newLoc) {
|
||||||
|
SettingsGeneralActivity.MoveFilesToDifferentDirectory task =
|
||||||
|
new SettingsGeneralActivity.MoveFilesToDifferentDirectory(this,
|
||||||
|
new File(settings.getExternalStorageDirectory(), IndexConstants.APP_DIR),
|
||||||
|
new File(newLoc, IndexConstants.APP_DIR)) {
|
||||||
|
protected Boolean doInBackground(Void[] params) {
|
||||||
|
Boolean result = super.doInBackground(params);
|
||||||
|
if(result) {
|
||||||
|
settings.setExternalStorageDirectory(newLoc);
|
||||||
|
getMyApplication().getResourceManager().resetStoreDirectory();
|
||||||
|
getMyApplication().getResourceManager().reloadIndexes(progress) ;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
task.execute();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -69,12 +69,12 @@ public class DownloadActivity extends BaseDownloadActivity {
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
getMyApplication().applyTheme(this);
|
getMyApplication().applyTheme(this);
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
updateDownloads();
|
||||||
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
|
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
|
||||||
setProgressBarIndeterminateVisibility(false);
|
setProgressBarIndeterminateVisibility(false);
|
||||||
|
|
||||||
setContentView(R.layout.tab_content);
|
setContentView(R.layout.tab_content);
|
||||||
|
|
||||||
settings = ((OsmandApplication) getApplication()).getSettings();
|
|
||||||
tabHost = (TabHost) findViewById(android.R.id.tabhost);
|
tabHost = (TabHost) findViewById(android.R.id.tabhost);
|
||||||
tabHost.setup();
|
tabHost.setup();
|
||||||
ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
|
ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
|
||||||
|
@ -144,54 +144,7 @@ public class DownloadActivity extends BaseDownloadActivity {
|
||||||
if (tab.equals(DOWNLOAD_TAB)){
|
if (tab.equals(DOWNLOAD_TAB)){
|
||||||
tabHost.setCurrentTab(1);
|
tabHost.setCurrentTab(1);
|
||||||
} else if (tab.equals(UPDATES_TAB)){
|
} else if (tab.equals(UPDATES_TAB)){
|
||||||
tabHost.setCurrentTab(2);
|
tabHost.setCurrentTab(2);
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(getMyApplication().getResourceManager().getIndexFileNames().isEmpty()) {
|
|
||||||
boolean showedDialog = false;
|
|
||||||
if(Build.VERSION.SDK_INT < OsmandSettings.VERSION_DEFAULTLOCATION_CHANGED) {
|
|
||||||
SuggestExternalDirectoryDialog.showDialog(this, null, null);
|
|
||||||
}
|
|
||||||
if(!showedDialog) {
|
|
||||||
showDialogOfFreeDownloadsIfNeeded();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
showDialogOfFreeDownloadsIfNeeded();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= OsmandSettings.VERSION_DEFAULTLOCATION_CHANGED) {
|
|
||||||
final String currentStorage = settings.getExternalStorageDirectory().getAbsolutePath();
|
|
||||||
String primaryStorage = settings.getDefaultExternalStorageLocation();
|
|
||||||
if (!currentStorage.startsWith(primaryStorage)) {
|
|
||||||
// secondary storage
|
|
||||||
boolean currentDirectoryNotWritable = true;
|
|
||||||
for (String writeableDirectory : settings.getWritableSecondaryStorageDirectorys()) {
|
|
||||||
if (currentStorage.startsWith(writeableDirectory)) {
|
|
||||||
currentDirectoryNotWritable = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (currentDirectoryNotWritable) {
|
|
||||||
currentDirectoryNotWritable = !OsmandSettings.isWritable(settings.getExternalStorageDirectory());
|
|
||||||
}
|
|
||||||
if (currentDirectoryNotWritable) {
|
|
||||||
final String newLoc = settings.getMatchingExternalFilesDir(currentStorage);
|
|
||||||
if (newLoc != null && newLoc.length() != 0) {
|
|
||||||
AccessibleAlertBuilder ab = new AccessibleAlertBuilder(this);
|
|
||||||
ab.setMessage(getString(R.string.android_19_location_disabled,
|
|
||||||
settings.getExternalStorageDirectory()));
|
|
||||||
ab.setPositiveButton(R.string.default_buttons_yes, new DialogInterface.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
|
||||||
copyFilesForAndroid19(newLoc);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
ab.setNegativeButton(R.string.default_buttons_cancel, null);
|
|
||||||
ab.show();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -200,6 +153,8 @@ public class DownloadActivity extends BaseDownloadActivity {
|
||||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public Map<String, String> getIndexActivatedFileNames() {
|
public Map<String, String> getIndexActivatedFileNames() {
|
||||||
return downloadListIndexThread != null ? downloadListIndexThread.getIndexActivatedFileNames() : null;
|
return downloadListIndexThread != null ? downloadListIndexThread.getIndexActivatedFileNames() : null;
|
||||||
}
|
}
|
||||||
|
@ -252,30 +207,6 @@ public class DownloadActivity extends BaseDownloadActivity {
|
||||||
(getMyApplication()).setDownloadActivity(null);
|
(getMyApplication()).setDownloadActivity(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showDialogOfFreeDownloadsIfNeeded() {
|
|
||||||
if (Version.isFreeVersion(getMyApplication())) {
|
|
||||||
AlertDialog.Builder msg = new AlertDialog.Builder(this);
|
|
||||||
msg.setTitle(R.string.free_version_title);
|
|
||||||
String m = getString(R.string.free_version_message, MAXIMUM_AVAILABLE_FREE_DOWNLOADS + "", "") + "\n";
|
|
||||||
m += getString(R.string.available_downloads_left, MAXIMUM_AVAILABLE_FREE_DOWNLOADS - settings.NUMBER_OF_FREE_DOWNLOADS.get());
|
|
||||||
msg.setMessage(m);
|
|
||||||
if (Version.isMarketEnabled(getMyApplication())) {
|
|
||||||
msg.setNeutralButton(R.string.install_paid, new DialogInterface.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
|
||||||
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(Version.marketPrefix(getMyApplication()) + "net.osmand.plus"));
|
|
||||||
try {
|
|
||||||
startActivity(intent);
|
|
||||||
} catch (ActivityNotFoundException e) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
msg.setPositiveButton(R.string.default_buttons_ok, null);
|
|
||||||
msg.show();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateProgress(boolean updateOnlyProgress) {
|
public void updateProgress(boolean updateOnlyProgress) {
|
||||||
BasicProgressAsyncTask<?, ?, ?> basicProgressAsyncTask = DownloadActivity.downloadListIndexThread.getCurrentRunningTask();
|
BasicProgressAsyncTask<?, ?, ?> basicProgressAsyncTask = DownloadActivity.downloadListIndexThread.getCurrentRunningTask();
|
||||||
|
@ -422,25 +353,6 @@ public class DownloadActivity extends BaseDownloadActivity {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void copyFilesForAndroid19(final String newLoc) {
|
|
||||||
SettingsGeneralActivity.MoveFilesToDifferentDirectory task =
|
|
||||||
new SettingsGeneralActivity.MoveFilesToDifferentDirectory(this,
|
|
||||||
new File(settings.getExternalStorageDirectory(), IndexConstants.APP_DIR),
|
|
||||||
new File(newLoc, IndexConstants.APP_DIR)) {
|
|
||||||
protected Boolean doInBackground(Void[] params) {
|
|
||||||
Boolean result = super.doInBackground(params);
|
|
||||||
if(result) {
|
|
||||||
settings.setExternalStorageDirectory(newLoc);
|
|
||||||
getMyApplication().getResourceManager().resetStoreDirectory();
|
|
||||||
getMyApplication().getResourceManager().reloadIndexes(progress) ;
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
task.execute();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public Map<String,String> getIndexFileNames() {
|
public Map<String,String> getIndexFileNames() {
|
||||||
return downloadListIndexThread != null ? downloadListIndexThread.getIndexFileNames() : null;
|
return downloadListIndexThread != null ? downloadListIndexThread.getIndexFileNames() : null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,7 +43,15 @@ public class UpdatesIndexFragment extends SherlockListFragment {
|
||||||
osmandRegions = getMyApplication().getResourceManager().getOsmandRegions();
|
osmandRegions = getMyApplication().getResourceManager().getOsmandRegions();
|
||||||
List<IndexItem> indexItems = new ArrayList<IndexItem>();
|
List<IndexItem> indexItems = new ArrayList<IndexItem>();
|
||||||
if (BaseDownloadActivity.downloadListIndexThread != null) {
|
if (BaseDownloadActivity.downloadListIndexThread != null) {
|
||||||
indexItems = DownloadActivity.downloadListIndexThread.getItemsToUpdate();
|
indexItems = new ArrayList<IndexItem>(DownloadActivity.downloadListIndexThread.getItemsToUpdate());
|
||||||
|
}
|
||||||
|
createListView(indexItems);
|
||||||
|
setHasOptionsMenu(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createListView(List<IndexItem> indexItems) {
|
||||||
|
if (indexItems.size() == 0){
|
||||||
|
indexItems.add(new IndexItem(getString(R.string.everything_up_to_date),"",0,"",0,0, null));
|
||||||
}
|
}
|
||||||
listAdapter = new UpdateIndexAdapter(getDownloadActivity(), R.layout.download_index_list_item, indexItems);
|
listAdapter = new UpdateIndexAdapter(getDownloadActivity(), R.layout.download_index_list_item, indexItems);
|
||||||
listAdapter.sort(new Comparator<IndexItem>() {
|
listAdapter.sort(new Comparator<IndexItem>() {
|
||||||
|
@ -53,7 +61,6 @@ public class UpdatesIndexFragment extends SherlockListFragment {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
setListAdapter(listAdapter);
|
setListAdapter(listAdapter);
|
||||||
setHasOptionsMenu(true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -65,8 +72,8 @@ public class UpdatesIndexFragment extends SherlockListFragment {
|
||||||
if(listAdapter == null){
|
if(listAdapter == null){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
listAdapter = new UpdateIndexAdapter(getDownloadActivity(), R.layout.download_index_list_item, items);
|
|
||||||
setListAdapter(listAdapter);
|
createListView(new ArrayList<IndexItem>(items));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -201,14 +208,22 @@ public class UpdatesIndexFragment extends SherlockListFragment {
|
||||||
|
|
||||||
TextView name = (TextView) v.findViewById(R.id.download_item);
|
TextView name = (TextView) v.findViewById(R.id.download_item);
|
||||||
TextView description = (TextView) v.findViewById(R.id.download_descr);
|
TextView description = (TextView) v.findViewById(R.id.download_descr);
|
||||||
|
final CheckBox ch = (CheckBox) v.findViewById(R.id.check_download_item);
|
||||||
IndexItem e = items.get(position);
|
IndexItem e = items.get(position);
|
||||||
|
if (e.getFileName() == getString(R.string.everything_up_to_date)){
|
||||||
|
name.setText(e.getFileName());
|
||||||
|
description.setText("");
|
||||||
|
ch.setVisibility(View.INVISIBLE);
|
||||||
|
return v;
|
||||||
|
} else {
|
||||||
|
ch.setVisibility(View.VISIBLE);
|
||||||
|
}
|
||||||
String eName = DownloadActivity.getFullName(e, getMyApplication(), osmandRegions);
|
String eName = DownloadActivity.getFullName(e, getMyApplication(), osmandRegions);
|
||||||
|
|
||||||
name.setText(eName.trim()); //$NON-NLS-1$
|
name.setText(eName.trim()); //$NON-NLS-1$
|
||||||
String d = e.getDate(format) + "\n" + e.getSizeDescription(getMyApplication());
|
String d = e.getDate(format) + "\n" + e.getSizeDescription(getMyApplication());
|
||||||
description.setText(d);
|
description.setText(d);
|
||||||
|
|
||||||
final CheckBox ch = (CheckBox) v.findViewById(R.id.check_download_item);
|
|
||||||
ch.setChecked(getDownloadActivity().getEntriesToDownload().containsKey(e));
|
ch.setChecked(getDownloadActivity().getEntriesToDownload().containsKey(e));
|
||||||
ch.setOnClickListener(new View.OnClickListener() {
|
ch.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -27,6 +27,7 @@ import android.widget.ArrayAdapter;
|
||||||
import android.widget.ImageButton;
|
import android.widget.ImageButton;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
public class AvoidSpecificRoads {
|
public class AvoidSpecificRoads {
|
||||||
private List<RouteDataObject> missingRoads;
|
private List<RouteDataObject> missingRoads;
|
||||||
|
@ -143,14 +144,23 @@ public class AvoidSpecificRoads {
|
||||||
}
|
}
|
||||||
private void findRoad(final MapActivity activity, final LatLon loc) {
|
private void findRoad(final MapActivity activity, final LatLon loc) {
|
||||||
new AsyncTask<LatLon, Void, RouteDataObject>() {
|
new AsyncTask<LatLon, Void, RouteDataObject>() {
|
||||||
|
Exception e = null;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected RouteDataObject doInBackground(LatLon... params) {
|
protected RouteDataObject doInBackground(LatLon... params) {
|
||||||
return app.getLocationProvider().findRoute(loc.getLatitude(), loc.getLongitude());
|
try {
|
||||||
|
return app.getLocationProvider().findRoute(loc.getLatitude(), loc.getLongitude());
|
||||||
|
} catch (Exception e) {
|
||||||
|
this.e = e;
|
||||||
|
e.printStackTrace();
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void onPostExecute(RouteDataObject result) {
|
protected void onPostExecute(RouteDataObject result) {
|
||||||
if(result != null) {
|
if(e != null) {
|
||||||
|
Toast.makeText(activity, R.string.error_avoid_specific_road, Toast.LENGTH_LONG).show();
|
||||||
|
} else if(result != null) {
|
||||||
getBuilder().addImpassableRoad(result);
|
getBuilder().addImpassableRoad(result);
|
||||||
RoutingHelper rh = app.getRoutingHelper();
|
RoutingHelper rh = app.getRoutingHelper();
|
||||||
if(rh.isRouteCalculated() || rh.isRouteBeingCalculated()) {
|
if(rh.isRouteCalculated() || rh.isRouteBeingCalculated()) {
|
||||||
|
|
27
OsmAnd/src/net/osmand/plus/helpers/FontCache.java
Normal file
27
OsmAnd/src/net/osmand/plus/helpers/FontCache.java
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
package net.osmand.plus.helpers;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.graphics.Typeface;
|
||||||
|
|
||||||
|
public class FontCache {
|
||||||
|
private static Map<String, Typeface> fontMap = new ConcurrentHashMap<String, Typeface>();
|
||||||
|
public static final String ROBOTO_MEDIUM = "fonts/Roboto-Medium.ttf";
|
||||||
|
public static final String ROBOTO_REGULAR = "fonts/Roboto-Regular.ttf";
|
||||||
|
|
||||||
|
public static Typeface getRobotoMedium(Context context) {
|
||||||
|
return getFont(context, ROBOTO_MEDIUM);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Typeface getFont(Context context, String fontName) {
|
||||||
|
if (fontMap.containsKey(fontName)) {
|
||||||
|
return fontMap.get(fontName);
|
||||||
|
} else {
|
||||||
|
Typeface tf = Typeface.createFromAsset(context.getAssets(), fontName);
|
||||||
|
fontMap.put(fontName, tf);
|
||||||
|
return tf;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
103
OsmAnd/src/net/osmand/plus/helpers/WakeLockHelper.java
Executable file
103
OsmAnd/src/net/osmand/plus/helpers/WakeLockHelper.java
Executable file
|
@ -0,0 +1,103 @@
|
||||||
|
package net.osmand.plus.helpers;
|
||||||
|
|
||||||
|
import net.osmand.plus.DeviceAdminRecv;
|
||||||
|
import net.osmand.plus.OsmandApplication;
|
||||||
|
import net.osmand.plus.OsmandSettings;
|
||||||
|
import net.osmand.plus.routing.VoiceRouter;
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
|
import android.app.Activity;
|
||||||
|
import android.app.admin.DevicePolicyManager;
|
||||||
|
import android.content.ComponentName;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.os.Handler;
|
||||||
|
import android.os.PowerManager;
|
||||||
|
|
||||||
|
@SuppressLint("NewApi")
|
||||||
|
public class WakeLockHelper implements VoiceRouter.VoiceMessageListener {
|
||||||
|
|
||||||
|
private PowerManager.WakeLock wakeLock = null;
|
||||||
|
private ReleaseWakeLocksRunnable releaseWakeLocksRunnable = new ReleaseWakeLocksRunnable();
|
||||||
|
private DevicePolicyManager mDevicePolicyManager;
|
||||||
|
private ComponentName mDeviceAdmin;
|
||||||
|
private Handler uiHandler;
|
||||||
|
private OsmandApplication app;
|
||||||
|
private boolean active;
|
||||||
|
|
||||||
|
public WakeLockHelper(OsmandApplication app){
|
||||||
|
uiHandler = new Handler();
|
||||||
|
this.app = app;
|
||||||
|
mDeviceAdmin = new ComponentName(app, DeviceAdminRecv.class);
|
||||||
|
mDevicePolicyManager = (DevicePolicyManager) app.getSystemService(Context.DEVICE_POLICY_SERVICE);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void releaseWakeLocks() {
|
||||||
|
if (wakeLock != null) {
|
||||||
|
wakeLock.release();
|
||||||
|
wakeLock = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mDevicePolicyManager != null && mDeviceAdmin != null) {
|
||||||
|
OsmandSettings settings = app.getSettings();
|
||||||
|
final Integer screenPowerSave = settings.WAKE_ON_VOICE_INT.get();
|
||||||
|
if (screenPowerSave > 0 && settings.MAP_ACTIVITY_ENABLED.get()) {
|
||||||
|
if (mDevicePolicyManager.isAdminActive(mDeviceAdmin)) {
|
||||||
|
try {
|
||||||
|
mDevicePolicyManager.lockNow();
|
||||||
|
} catch (SecurityException e) {
|
||||||
|
// Log.d(TAG,
|
||||||
|
// "SecurityException: No device admin permission to lock the screen!");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Log.d(TAG,
|
||||||
|
// "No device admin permission to lock the screen!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private class ReleaseWakeLocksRunnable implements Runnable {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
releaseWakeLocks();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onStart(Activity a) {
|
||||||
|
this.active = true;
|
||||||
|
if (wakeLock == null) {
|
||||||
|
VoiceRouter voiceRouter = app.getRoutingHelper().getVoiceRouter();
|
||||||
|
voiceRouter.removeVoiceMessageListener(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onStop(Activity a) {
|
||||||
|
this.active = false;
|
||||||
|
OsmandSettings settings = app.getSettings();
|
||||||
|
if (!a.isFinishing() && (settings.WAKE_ON_VOICE_INT.get() > 0)) {
|
||||||
|
VoiceRouter voiceRouter = app.getRoutingHelper().getVoiceRouter();
|
||||||
|
voiceRouter.addVoiceMessageListener(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onVoiceMessage() {
|
||||||
|
OsmandSettings settings = app.getSettings();
|
||||||
|
final Integer screenPowerSave = settings.WAKE_ON_VOICE_INT.get();
|
||||||
|
if (screenPowerSave > 0) {
|
||||||
|
uiHandler.removeCallbacks(releaseWakeLocksRunnable);
|
||||||
|
|
||||||
|
if (!active && wakeLock == null) {
|
||||||
|
PowerManager pm = (PowerManager) app.getSystemService(Context.POWER_SERVICE);
|
||||||
|
wakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK
|
||||||
|
| PowerManager.ACQUIRE_CAUSES_WAKEUP,
|
||||||
|
"OsmAndOnVoiceWakeupTag");
|
||||||
|
wakeLock.acquire();
|
||||||
|
}
|
||||||
|
|
||||||
|
uiHandler.postDelayed(releaseWakeLocksRunnable,
|
||||||
|
screenPowerSave * 1000L);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -614,15 +614,15 @@ public class MapRenderRepositories {
|
||||||
// calculate data box
|
// calculate data box
|
||||||
QuadRect dataBox = requestedBox.getLatLonBounds();
|
QuadRect dataBox = requestedBox.getLatLonBounds();
|
||||||
long now = System.currentTimeMillis();
|
long now = System.currentTimeMillis();
|
||||||
if (cObjectsBox.left > dataBox.left || cObjectsBox.top > dataBox.top || cObjectsBox.right < dataBox.right
|
if (cObjectsBox.left > dataBox.left || cObjectsBox.top < dataBox.top || cObjectsBox.right < dataBox.right
|
||||||
|| cObjectsBox.bottom < dataBox.bottom || (nativeLib != null) == (cNativeObjects == null)) {
|
|| cObjectsBox.bottom > dataBox.bottom || (nativeLib != null) == (cNativeObjects == null)) {
|
||||||
// increase data box in order for rotate
|
// increase data box in order for rotate
|
||||||
if ((dataBox.right - dataBox.left) > (dataBox.top - dataBox.bottom)) {
|
if ((dataBox.right - dataBox.left) > (dataBox.top - dataBox.bottom)) {
|
||||||
double wi = (dataBox.right - dataBox.left) * .2;
|
double wi = (dataBox.right - dataBox.left) * .05;
|
||||||
dataBox.left -= wi;
|
dataBox.left -= wi;
|
||||||
dataBox.right += wi;
|
dataBox.right += wi;
|
||||||
} else {
|
} else {
|
||||||
double hi = (dataBox.top - dataBox.bottom) * .2;
|
double hi = (dataBox.top - dataBox.bottom) * .05;
|
||||||
dataBox.top += hi;
|
dataBox.top += hi;
|
||||||
dataBox.bottom -= hi;
|
dataBox.bottom -= hi;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package net.osmand.plus.render;
|
package net.osmand.plus.render;
|
||||||
|
|
||||||
|
import net.osmand.core.android.MapRendererView;
|
||||||
import net.osmand.core.jni.IMapRenderer;
|
import net.osmand.core.jni.IMapRenderer;
|
||||||
import net.osmand.core.jni.PointI;
|
import net.osmand.core.jni.PointI;
|
||||||
import net.osmand.data.QuadPointDouble;
|
import net.osmand.data.QuadPointDouble;
|
||||||
|
@ -8,11 +9,13 @@ import net.osmand.plus.resources.ResourceManager;
|
||||||
import net.osmand.plus.views.BaseMapLayer;
|
import net.osmand.plus.views.BaseMapLayer;
|
||||||
import net.osmand.plus.views.MapTileLayer;
|
import net.osmand.plus.views.MapTileLayer;
|
||||||
import net.osmand.plus.views.OsmandMapTileView;
|
import net.osmand.plus.views.OsmandMapTileView;
|
||||||
|
import net.osmand.plus.views.corenative.NativeCoreContext;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
import android.graphics.Paint;
|
import android.graphics.Paint;
|
||||||
import android.graphics.PointF;
|
import android.graphics.PointF;
|
||||||
import android.graphics.RectF;
|
import android.graphics.RectF;
|
||||||
|
import android.view.MotionEvent;
|
||||||
|
|
||||||
public class MapVectorLayer extends BaseMapLayer {
|
public class MapVectorLayer extends BaseMapLayer {
|
||||||
|
|
||||||
|
@ -23,9 +26,11 @@ public class MapVectorLayer extends BaseMapLayer {
|
||||||
private RectF destImage = new RectF();
|
private RectF destImage = new RectF();
|
||||||
private final MapTileLayer tileLayer;
|
private final MapTileLayer tileLayer;
|
||||||
private boolean visible = false;
|
private boolean visible = false;
|
||||||
|
private boolean oldRender = false;
|
||||||
|
|
||||||
public MapVectorLayer(MapTileLayer tileLayer){
|
public MapVectorLayer(MapTileLayer tileLayer, boolean oldRender){
|
||||||
this.tileLayer = tileLayer;
|
this.tileLayer = tileLayer;
|
||||||
|
this.oldRender = oldRender;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -79,6 +84,7 @@ public class MapVectorLayer extends BaseMapLayer {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPrepareBufferImage(Canvas canvas, RotatedTileBox tilesRect,
|
public void onPrepareBufferImage(Canvas canvas, RotatedTileBox tilesRect,
|
||||||
DrawSettings drawSettings) {
|
DrawSettings drawSettings) {
|
||||||
|
@ -89,8 +95,9 @@ public class MapVectorLayer extends BaseMapLayer {
|
||||||
tileLayer.drawTileMap(canvas, tilesRect);
|
tileLayer.drawTileMap(canvas, tilesRect);
|
||||||
resourceManager.getRenderer().interruptLoadingMap();
|
resourceManager.getRenderer().interruptLoadingMap();
|
||||||
} else {
|
} else {
|
||||||
final IMapRenderer mapRenderer = view.getMapRenderer();
|
final MapRendererView mapRenderer = view.getMapRenderer();
|
||||||
if (mapRenderer != null) {
|
if (mapRenderer != null && !oldRender) {
|
||||||
|
NativeCoreContext.getMapRendererContext().setNightMode(drawSettings.isNightMode());
|
||||||
// opengl renderer
|
// opengl renderer
|
||||||
mapRenderer.setTarget(new PointI(tilesRect.getCenter31X(), tilesRect.getCenter31Y()));
|
mapRenderer.setTarget(new PointI(tilesRect.getCenter31X(), tilesRect.getCenter31Y()));
|
||||||
mapRenderer.setAzimuth(-tilesRect.getRotate());
|
mapRenderer.setAzimuth(-tilesRect.getRotate());
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
package net.osmand.plus.render;
|
|
||||||
|
|
||||||
import net.osmand.NativeLibrary;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by Denis on 02.10.2014.
|
|
||||||
*/
|
|
||||||
public class NativeCppLibrary extends NativeLibrary {
|
|
||||||
|
|
||||||
public NativeCppLibrary(boolean newLibrary) {
|
|
||||||
super(newLibrary);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void loadLibrary(String name) {
|
|
||||||
try {
|
|
||||||
System.out.println("Loading " + name);
|
|
||||||
System.loadLibrary(name);
|
|
||||||
} catch( UnsatisfiedLinkError e ) {
|
|
||||||
System.err.println("Failed to load '"+name + "':" + e);
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -45,6 +45,7 @@ import net.osmand.plus.R;
|
||||||
import net.osmand.plus.SQLiteTileSource;
|
import net.osmand.plus.SQLiteTileSource;
|
||||||
import net.osmand.plus.SearchByNameFilter;
|
import net.osmand.plus.SearchByNameFilter;
|
||||||
import net.osmand.plus.Version;
|
import net.osmand.plus.Version;
|
||||||
|
import net.osmand.plus.download.BaseDownloadActivity;
|
||||||
import net.osmand.plus.render.MapRenderRepositories;
|
import net.osmand.plus.render.MapRenderRepositories;
|
||||||
import net.osmand.plus.render.NativeOsmandLibrary;
|
import net.osmand.plus.render.NativeOsmandLibrary;
|
||||||
import net.osmand.plus.resources.AsyncLoadingThread.MapLoadRequest;
|
import net.osmand.plus.resources.AsyncLoadingThread.MapLoadRequest;
|
||||||
|
@ -403,6 +404,7 @@ public class ResourceManager {
|
||||||
return cacheOfImages.get(req.tileId);
|
return cacheOfImages.get(req.tileId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////////////// Working with indexes ////////////////////////////////////////////////
|
////////////////////////////////////////////// Working with indexes ////////////////////////////////////////////////
|
||||||
|
|
||||||
public List<String> reloadIndexes(IProgress progress){
|
public List<String> reloadIndexes(IProgress progress){
|
||||||
|
|
|
@ -4,6 +4,7 @@ package net.osmand.plus.routing;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
import net.osmand.Location;
|
import net.osmand.Location;
|
||||||
import net.osmand.binary.RouteDataObject;
|
import net.osmand.binary.RouteDataObject;
|
||||||
|
@ -76,8 +77,7 @@ public class VoiceRouter {
|
||||||
public interface VoiceMessageListener {
|
public interface VoiceMessageListener {
|
||||||
void onVoiceMessage();
|
void onVoiceMessage();
|
||||||
}
|
}
|
||||||
private List<VoiceMessageListener> voiceMessageListeners;
|
private ConcurrentHashMap<VoiceMessageListener, Integer> voiceMessageListeners;
|
||||||
private Handler handler;
|
|
||||||
|
|
||||||
public VoiceRouter(RoutingHelper router, final OsmandSettings settings, CommandPlayer player) {
|
public VoiceRouter(RoutingHelper router, final OsmandSettings settings, CommandPlayer player) {
|
||||||
this.router = router;
|
this.router = router;
|
||||||
|
@ -85,12 +85,7 @@ public class VoiceRouter {
|
||||||
this.settings = settings;
|
this.settings = settings;
|
||||||
|
|
||||||
empty = new Struct("");
|
empty = new Struct("");
|
||||||
voiceMessageListeners = new ArrayList<VoiceRouter.VoiceMessageListener>();
|
voiceMessageListeners = new ConcurrentHashMap<VoiceRouter.VoiceMessageListener, Integer>();
|
||||||
Looper looper = Looper.myLooper();
|
|
||||||
if (looper == null) {
|
|
||||||
looper = Looper.getMainLooper();
|
|
||||||
}
|
|
||||||
handler = new Handler(looper);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPlayer(CommandPlayer player) {
|
public void setPlayer(CommandPlayer player) {
|
||||||
|
@ -847,46 +842,24 @@ public class VoiceRouter {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addVoiceMessageListener(VoiceMessageListener voiceMessageListener) {
|
public void addVoiceMessageListener(VoiceMessageListener voiceMessageListener) {
|
||||||
synchronized (voiceMessageListeners) {
|
voiceMessageListeners.put(voiceMessageListener, 0);
|
||||||
if (!voiceMessageListeners.contains(voiceMessageListener)) {
|
|
||||||
voiceMessageListeners.add(voiceMessageListener);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeVoiceMessageListener(VoiceMessageListener voiceMessageListener) {
|
public void removeVoiceMessageListener(VoiceMessageListener voiceMessageListener) {
|
||||||
synchronized (voiceMessageListeners) {
|
voiceMessageListeners.remove(voiceMessageListener);
|
||||||
if (voiceMessageListeners.contains(voiceMessageListener)) {
|
|
||||||
voiceMessageListeners.remove(voiceMessageListener);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void notifyOnVoiceMessage() {
|
public void notifyOnVoiceMessage() {
|
||||||
handler.post(new Runnable() {
|
if (settings.WAKE_ON_VOICE_INT.get() > 0) {
|
||||||
|
router.getApplication().runInUIThread(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
synchronized (voiceMessageListeners) {
|
for (VoiceMessageListener lnt : voiceMessageListeners
|
||||||
for (final VoiceMessageListener voiceMessageListener : voiceMessageListeners) {
|
.keySet()) {
|
||||||
Runnable closure = new Runnable() {
|
lnt.onVoiceMessage();
|
||||||
public void run() {
|
|
||||||
if (settings.WAKE_ON_VOICE_INT.get() > 0) {
|
|
||||||
synchronized (voiceMessageListeners) {
|
|
||||||
if (voiceMessageListeners
|
|
||||||
.contains(voiceMessageListener)
|
|
||||||
&& (settings.WAKE_ON_VOICE_INT.get() > 0)) {
|
|
||||||
voiceMessageListener
|
|
||||||
.onVoiceMessage();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
handler.post(closure);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
});
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,7 @@ public class SherpafyLoadingFragment extends SherlockFragment {
|
||||||
public View onCreateView(android.view.LayoutInflater inflater, android.view.ViewGroup container,
|
public View onCreateView(android.view.LayoutInflater inflater, android.view.ViewGroup container,
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
app = (OsmandApplication) getSherlockActivity().getApplication();
|
app = (OsmandApplication) getSherlockActivity().getApplication();
|
||||||
view = inflater.inflate(R.layout.sherpafy_loading, container, false);
|
view = inflater.inflate(R.layout.loading, container, false);
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@ public class SherpafyStageItineraryFragment extends SherpafyStageInfoFragment im
|
||||||
app.getResourceManager().getMapTileDownloader().addDownloaderCallback(this);
|
app.getResourceManager().getMapTileDownloader().addDownloaderCallback(this);
|
||||||
osmandMapTileView.getView().setVisibility(View.VISIBLE);
|
osmandMapTileView.getView().setVisibility(View.VISIBLE);
|
||||||
osmandMapTileView.removeAllLayers();
|
osmandMapTileView.removeAllLayers();
|
||||||
MapVectorLayer mapVectorLayer = new MapVectorLayer(null);
|
MapVectorLayer mapVectorLayer = new MapVectorLayer(null, true);
|
||||||
MapTextLayer mapTextLayer = new MapTextLayer();
|
MapTextLayer mapTextLayer = new MapTextLayer();
|
||||||
mapTextLayer.setAlwaysVisible(true);
|
mapTextLayer.setAlwaysVisible(true);
|
||||||
// 5.95 all labels
|
// 5.95 all labels
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package net.osmand.plus.views;
|
package net.osmand.plus.views;
|
||||||
|
|
||||||
import net.osmand.PlatformUtil;
|
import net.osmand.PlatformUtil;
|
||||||
|
import net.osmand.core.android.MapRendererView;
|
||||||
import net.osmand.data.RotatedTileBox;
|
import net.osmand.data.RotatedTileBox;
|
||||||
import net.osmand.util.MapUtils;
|
import net.osmand.util.MapUtils;
|
||||||
|
|
||||||
|
@ -8,6 +9,7 @@ import org.apache.commons.logging.Log;
|
||||||
|
|
||||||
import android.os.SystemClock;
|
import android.os.SystemClock;
|
||||||
import android.util.FloatMath;
|
import android.util.FloatMath;
|
||||||
|
import android.view.MotionEvent;
|
||||||
import android.view.animation.AccelerateDecelerateInterpolator;
|
import android.view.animation.AccelerateDecelerateInterpolator;
|
||||||
import android.view.animation.DecelerateInterpolator;
|
import android.view.animation.DecelerateInterpolator;
|
||||||
import android.view.animation.LinearInterpolator;
|
import android.view.animation.LinearInterpolator;
|
||||||
|
@ -104,9 +106,11 @@ public class AnimateDraggingMapThread {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
try {
|
try {
|
||||||
|
suspendUpdate();
|
||||||
runnable.run();
|
runnable.run();
|
||||||
} finally {
|
} finally {
|
||||||
currentThread = null;
|
currentThread = null;
|
||||||
|
resumeUpdate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, "Animating Thread");
|
}, "Animating Thread");
|
||||||
|
@ -305,6 +309,20 @@ public class AnimateDraggingMapThread {
|
||||||
targetZoomScale = 0;
|
targetZoomScale = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void suspendUpdate() {
|
||||||
|
final MapRendererView mapRenderer = tileView.getMapRenderer();
|
||||||
|
if (mapRenderer != null) {
|
||||||
|
mapRenderer.suspendSymbolsUpdate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void resumeUpdate() {
|
||||||
|
final MapRendererView mapRenderer = tileView.getMapRenderer();
|
||||||
|
if (mapRenderer != null) {
|
||||||
|
mapRenderer.resumeSymbolsUpdate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void setTargetValues(int zoom, double zoomScale, double lat, double lon){
|
private void setTargetValues(int zoom, double zoomScale, double lat, double lon){
|
||||||
targetIntZoom = zoom;
|
targetIntZoom = zoom;
|
||||||
targetZoomScale = zoomScale;
|
targetZoomScale = zoomScale;
|
||||||
|
|
|
@ -6,7 +6,6 @@ import android.graphics.Canvas;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
import android.view.SurfaceHolder;
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
public class OsmAndMapLayersView extends View {
|
public class OsmAndMapLayersView extends View {
|
||||||
|
|
|
@ -11,6 +11,7 @@ import android.view.SurfaceView;
|
||||||
public class OsmAndMapSurfaceView extends SurfaceView implements Callback {
|
public class OsmAndMapSurfaceView extends SurfaceView implements Callback {
|
||||||
|
|
||||||
private OsmandMapTileView mapView;
|
private OsmandMapTileView mapView;
|
||||||
|
private OnClickListener onClickListener;
|
||||||
|
|
||||||
public OsmAndMapSurfaceView(Context context, AttributeSet attrs) {
|
public OsmAndMapSurfaceView(Context context, AttributeSet attrs) {
|
||||||
super(context, attrs);
|
super(context, attrs);
|
||||||
|
@ -52,6 +53,11 @@ public class OsmAndMapSurfaceView extends SurfaceView implements Callback {
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setOnClickListener(OnClickListener l) {
|
||||||
|
super.setOnClickListener(l);
|
||||||
|
this.onClickListener = l;
|
||||||
|
}
|
||||||
@Override
|
@Override
|
||||||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||||||
Boolean r = mapView.onKeyDown(keyCode, event);
|
Boolean r = mapView.onKeyDown(keyCode, event);
|
||||||
|
@ -63,6 +69,9 @@ public class OsmAndMapSurfaceView extends SurfaceView implements Callback {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onTouchEvent(MotionEvent event) {
|
public boolean onTouchEvent(MotionEvent event) {
|
||||||
|
if(onClickListener != null) {
|
||||||
|
return super.onTouchEvent(event);
|
||||||
|
}
|
||||||
return mapView.onTouchEvent(event);
|
return mapView.onTouchEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ import net.osmand.PlatformUtil;
|
||||||
import net.osmand.access.AccessibilityActionsProvider;
|
import net.osmand.access.AccessibilityActionsProvider;
|
||||||
import net.osmand.access.AccessibleToast;
|
import net.osmand.access.AccessibleToast;
|
||||||
import net.osmand.access.MapExplorer;
|
import net.osmand.access.MapExplorer;
|
||||||
import net.osmand.core.jni.IMapRenderer;
|
import net.osmand.core.android.MapRendererView;
|
||||||
import net.osmand.data.LatLon;
|
import net.osmand.data.LatLon;
|
||||||
import net.osmand.data.QuadPoint;
|
import net.osmand.data.QuadPoint;
|
||||||
import net.osmand.data.QuadPointDouble;
|
import net.osmand.data.QuadPointDouble;
|
||||||
|
@ -30,6 +30,7 @@ import net.osmand.util.MapUtils;
|
||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
|
@ -146,7 +147,7 @@ public class OsmandMapTileView implements IMapDownloaderCallback {
|
||||||
|
|
||||||
private DisplayMetrics dm;
|
private DisplayMetrics dm;
|
||||||
|
|
||||||
private IMapRenderer mapRenderer;
|
private MapRendererView mapRenderer;
|
||||||
|
|
||||||
private OsmandApplication application;
|
private OsmandApplication application;
|
||||||
|
|
||||||
|
@ -514,6 +515,7 @@ public class OsmandMapTileView implements IMapDownloaderCallback {
|
||||||
return additional.fps;
|
return additional.fps;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("WrongCall")
|
||||||
public void drawOverMap(Canvas canvas, RotatedTileBox tileBox, DrawSettings drawSettings) {
|
public void drawOverMap(Canvas canvas, RotatedTileBox tileBox, DrawSettings drawSettings) {
|
||||||
if(mapRenderer == null) {
|
if(mapRenderer == null) {
|
||||||
fillCanvas(canvas, drawSettings);
|
fillCanvas(canvas, drawSettings);
|
||||||
|
@ -717,6 +719,14 @@ public class OsmandMapTileView implements IMapDownloaderCallback {
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean onTouchEvent(MotionEvent event) {
|
public boolean onTouchEvent(MotionEvent event) {
|
||||||
|
if (mapRenderer != null) {
|
||||||
|
if (event.getAction() == MotionEvent.ACTION_DOWN) {
|
||||||
|
mapRenderer.suspendSymbolsUpdate();
|
||||||
|
} else if (event.getAction() == MotionEvent.ACTION_UP
|
||||||
|
|| event.getAction() == MotionEvent.ACTION_CANCEL) {
|
||||||
|
mapRenderer.resumeSymbolsUpdate();
|
||||||
|
}
|
||||||
|
}
|
||||||
if (twoFingerTapDetector.onTouchEvent(event)) {
|
if (twoFingerTapDetector.onTouchEvent(event)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -736,11 +746,11 @@ public class OsmandMapTileView implements IMapDownloaderCallback {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setMapRender(IMapRenderer mapRenderer) {
|
public void setMapRender(MapRendererView mapRenderer) {
|
||||||
this.mapRenderer = mapRenderer;
|
this.mapRenderer = mapRenderer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IMapRenderer getMapRenderer() {
|
public MapRendererView getMapRenderer() {
|
||||||
return mapRenderer;
|
return mapRenderer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,96 @@
|
||||||
|
package net.osmand.plus.views.corenative;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.util.DisplayMetrics;
|
||||||
|
import android.util.Log;
|
||||||
|
import android.view.WindowManager;
|
||||||
|
import net.osmand.IndexConstants;
|
||||||
|
import net.osmand.core.android.CoreResourcesFromAndroidAssetsCustom;
|
||||||
|
import net.osmand.core.android.MapRendererContext;
|
||||||
|
import net.osmand.core.android.NativeCore;
|
||||||
|
import net.osmand.core.jni.Logger;
|
||||||
|
import net.osmand.core.jni.MapStylesCollection;
|
||||||
|
import net.osmand.core.jni.ObfsCollection;
|
||||||
|
import net.osmand.core.jni.QIODeviceLogSink;
|
||||||
|
import net.osmand.plus.OsmandApplication;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Denis on 01.10.2014.
|
||||||
|
*/
|
||||||
|
public class NativeCoreContext {
|
||||||
|
private static final String TAG = "NativeCoreContext";
|
||||||
|
|
||||||
|
private static boolean init;
|
||||||
|
|
||||||
|
private static MapRendererContext mapRendererContext;
|
||||||
|
|
||||||
|
public static boolean isInit() {
|
||||||
|
return init;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean tryCatchInit(OsmandApplication app) {
|
||||||
|
try {
|
||||||
|
init(app);
|
||||||
|
return true;
|
||||||
|
} catch(Throwable t) {
|
||||||
|
t.printStackTrace();
|
||||||
|
Log.e(TAG, "Failed to initialize", t);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void init(OsmandApplication app) {
|
||||||
|
if (!init && NativeCore.isAvailable()) {
|
||||||
|
if (!NativeCore.isLoaded())
|
||||||
|
NativeCore.load(CoreResourcesFromAndroidAssetsCustom.loadFromCurrentApplication(app));
|
||||||
|
if (NativeCore.isLoaded()) {
|
||||||
|
|
||||||
|
File directory = app.getAppPath("");
|
||||||
|
Logger.get().addLogSink(QIODeviceLogSink.createFileLogSink(
|
||||||
|
directory.getAbsolutePath() + "osmandcore.log"));
|
||||||
|
|
||||||
|
WindowManager mgr = (WindowManager)app.getSystemService(Context.WINDOW_SERVICE);
|
||||||
|
DisplayMetrics dm = new DisplayMetrics();
|
||||||
|
mgr.getDefaultDisplay().getMetrics(dm);
|
||||||
|
float density = Math.max(0, dm.density - 1);
|
||||||
|
|
||||||
|
ObfsCollection obfsCollection = new ObfsCollection();
|
||||||
|
obfsCollection.addDirectory(directory.getAbsolutePath(), false);
|
||||||
|
|
||||||
|
MapStylesCollection mapStylesCollection = setupMapStyleCollection(app);
|
||||||
|
mapRendererContext = new MapRendererContext(app, density);
|
||||||
|
mapRendererContext.setupObfMap(mapStylesCollection, obfsCollection);
|
||||||
|
init = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static MapStylesCollection setupMapStyleCollection(
|
||||||
|
OsmandApplication app) {
|
||||||
|
MapStylesCollection mapStylesCollection = new MapStylesCollection();
|
||||||
|
// Alexey TODO
|
||||||
|
// internalRenderers.put("Touring-view_(more-contrast-and-details)", "Touring-view_(more-contrast-and-details)" +".render.xml");
|
||||||
|
// internalRenderers.put("UniRS", "UniRS" + ".render.xml");
|
||||||
|
// internalRenderers.put("LightRS", "LightRS" + ".render.xml");
|
||||||
|
// internalRenderers.put("High-contrast-roads", "High-contrast-roads" + ".render.xml");
|
||||||
|
// internalRenderers.put("Winter-and-ski", "Winter-and-ski" + ".render.xml");
|
||||||
|
File renderers = app.getAppPath(IndexConstants.RENDERERS_DIR);
|
||||||
|
File[] lf = renderers.listFiles();
|
||||||
|
if(lf != null) {
|
||||||
|
for(File f : lf) {
|
||||||
|
if(f.getName().endsWith(IndexConstants.RENDERER_INDEX_EXT)) {
|
||||||
|
mapStylesCollection.addStyleFromFile(f.getAbsolutePath());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return mapStylesCollection;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static MapRendererContext getMapRendererContext() {
|
||||||
|
return mapRendererContext;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,329 +0,0 @@
|
||||||
package net.osmand.plus.views.corenative;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import javax.microedition.khronos.egl.EGL10;
|
|
||||||
import javax.microedition.khronos.egl.EGLConfig;
|
|
||||||
import javax.microedition.khronos.egl.EGLContext;
|
|
||||||
import javax.microedition.khronos.egl.EGLDisplay;
|
|
||||||
import javax.microedition.khronos.egl.EGLSurface;
|
|
||||||
|
|
||||||
import net.osmand.core.android.CoreResourcesFromAndroidAssetsCustom;
|
|
||||||
import net.osmand.core.jni.AtlasMapRendererConfiguration;
|
|
||||||
import net.osmand.core.jni.ObfMapObjectsProvider;
|
|
||||||
import net.osmand.core.jni.MapPrimitivesProvider;
|
|
||||||
import net.osmand.core.jni.MapRasterLayerProvider_Software;
|
|
||||||
import net.osmand.core.jni.MapObjectsSymbolsProvider;
|
|
||||||
import net.osmand.core.jni.IMapRenderer;
|
|
||||||
import net.osmand.core.jni.Logger;
|
|
||||||
import net.osmand.core.jni.MapPresentationEnvironment;
|
|
||||||
import net.osmand.core.jni.MapRendererClass;
|
|
||||||
import net.osmand.core.jni.MapRendererSetupOptions;
|
|
||||||
import net.osmand.core.jni.MapStylesCollection;
|
|
||||||
import net.osmand.core.jni.ObfsCollection;
|
|
||||||
import net.osmand.core.jni.OnlineRasterMapLayerProvider;
|
|
||||||
import net.osmand.core.jni.OnlineTileSources;
|
|
||||||
import net.osmand.core.jni.OsmAndCore;
|
|
||||||
import net.osmand.core.jni.MapPrimitiviser;
|
|
||||||
import net.osmand.core.jni.QIODeviceLogSink;
|
|
||||||
import net.osmand.core.jni.ResolvedMapStyle;
|
|
||||||
import net.osmand.plus.OsmandApplication;
|
|
||||||
import net.osmand.plus.render.NativeCppLibrary;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.opengl.EGL14;
|
|
||||||
import android.opengl.GLSurfaceView;
|
|
||||||
import android.util.DisplayMetrics;
|
|
||||||
import android.util.Log;
|
|
||||||
import android.view.WindowManager;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by Denis on 01.10.2014.
|
|
||||||
*/
|
|
||||||
public class NativeQtLibrary {
|
|
||||||
|
|
||||||
private static boolean OFFLINE_MAP = true;
|
|
||||||
private static IMapRenderer mapRenderer;
|
|
||||||
public static final String NATIVE_TAG = "NativeRender";
|
|
||||||
|
|
||||||
private static List<Object> doNotGc = new ArrayList<Object>();
|
|
||||||
private static boolean init;
|
|
||||||
|
|
||||||
|
|
||||||
private static <T> T notGc(T obj){
|
|
||||||
doNotGc.add(obj);
|
|
||||||
return obj;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static <T> T notGcFor1Egl(T obj){
|
|
||||||
doNotGc.add(obj);
|
|
||||||
return obj;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void initView(GLSurfaceView glSurfaceView) {
|
|
||||||
System.out.println("Init GL View");
|
|
||||||
//TODO:_glSurfaceView.setPreserveEGLContextOnPause(true);
|
|
||||||
glSurfaceView.setEGLContextClientVersion(2);
|
|
||||||
glSurfaceView.setEGLContextFactory(new EGLContextFactory(glSurfaceView));
|
|
||||||
glSurfaceView.setRenderer(new NativeRenderer(mapRenderer));
|
|
||||||
glSurfaceView.setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
|
|
||||||
mapRenderer.setAzimuth(0.0f);
|
|
||||||
mapRenderer.setElevationAngle(90);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static IMapRenderer getMapRenderer() {
|
|
||||||
return mapRenderer;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean isInit() {
|
|
||||||
return init;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean tryCatchInit(OsmandApplication app) {
|
|
||||||
try {
|
|
||||||
init(app);
|
|
||||||
return true;
|
|
||||||
} catch(Throwable t) {
|
|
||||||
t.printStackTrace();
|
|
||||||
Log.e(NATIVE_TAG, "Failed to initialize");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void init(OsmandApplication app) {
|
|
||||||
if (!init) {
|
|
||||||
loadLibraries();
|
|
||||||
initRenderer(app);
|
|
||||||
init = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void loadLibraries() {
|
|
||||||
NativeCppLibrary.loadLibrary("gnustl_shared");
|
|
||||||
NativeCppLibrary.loadLibrary("Qt5Core");
|
|
||||||
NativeCppLibrary.loadLibrary("Qt5Network");
|
|
||||||
NativeCppLibrary.loadLibrary("Qt5Sql");
|
|
||||||
NativeCppLibrary.loadLibrary("OsmAndCoreWithJNI");
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void initRenderer(OsmandApplication app) {
|
|
||||||
WindowManager mgr = (WindowManager)app.getSystemService(Context.WINDOW_SERVICE);
|
|
||||||
DisplayMetrics dm = new DisplayMetrics();
|
|
||||||
mgr.getDefaultDisplay().getMetrics(dm);
|
|
||||||
|
|
||||||
// Get device display density factor
|
|
||||||
// DisplayMetrics displayMetrics = new DisplayMetrics();
|
|
||||||
// act.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
|
|
||||||
DisplayMetrics displayMetrics = app.getResources().getDisplayMetrics();
|
|
||||||
// TODO getSettings().getSettingsZoomScale() + Math.sqrt(Math.max(0, getDensity() - 1))
|
|
||||||
float scaleCoefficient = displayMetrics.density;
|
|
||||||
if (Math.min(dm.widthPixels / (dm.density * 160), dm.heightPixels / (dm.density * 160)) > 2.5f) {
|
|
||||||
// large screen
|
|
||||||
scaleCoefficient *= 1.5f;
|
|
||||||
}
|
|
||||||
float displayDensityFactor = scaleCoefficient;
|
|
||||||
int referenceTileSize = (int)(256 * displayDensityFactor);
|
|
||||||
int rasterTileSize = Integer.highestOneBit(referenceTileSize - 1) * 2;
|
|
||||||
Log.i(NATIVE_TAG, "displayDensityFactor = " + displayDensityFactor +
|
|
||||||
" referenceTileSize = " + referenceTileSize + " rasterTileSize = " + rasterTileSize);
|
|
||||||
Log.i(NATIVE_TAG, "Initializing core...");
|
|
||||||
CoreResourcesFromAndroidAssetsCustom coreResources = notGc(CoreResourcesFromAndroidAssetsCustom.loadFromCurrentApplication(app));
|
|
||||||
OsmAndCore.InitializeCore(coreResources.instantiateProxy());
|
|
||||||
|
|
||||||
// initialize log
|
|
||||||
File directory = app.getAppPath("");
|
|
||||||
QIODeviceLogSink fileLogSink =
|
|
||||||
notGc(QIODeviceLogSink.createFileLogSink(directory.getAbsolutePath() + "osmandcore.log"));
|
|
||||||
Logger.get().addLogSink(fileLogSink);
|
|
||||||
|
|
||||||
Log.i(NATIVE_TAG, "Going to resolve default embedded style...");
|
|
||||||
MapStylesCollection mapStylesCollection = notGc(new MapStylesCollection());
|
|
||||||
ResolvedMapStyle mapStyle = mapStylesCollection.getResolvedStyleByName("default");
|
|
||||||
if (mapStyle == null) {
|
|
||||||
throw new IllegalStateException("Failed to resolve style 'default'");
|
|
||||||
|
|
||||||
}
|
|
||||||
Log.i(NATIVE_TAG, "Will load OBFs from " + directory.getAbsolutePath());
|
|
||||||
ObfsCollection obfsCollection = notGc(new ObfsCollection());
|
|
||||||
obfsCollection.addDirectory(directory.getAbsolutePath(), false);
|
|
||||||
|
|
||||||
Log.i(NATIVE_TAG, "Going to prepare all resources for renderer");
|
|
||||||
Log.i(NATIVE_TAG, "Going to create renderer");
|
|
||||||
mapRenderer = OsmAndCore.createMapRenderer(MapRendererClass.AtlasMapRenderer_OpenGLES2);
|
|
||||||
if (mapRenderer == null) {
|
|
||||||
throw new IllegalArgumentException("Failed to create map renderer 'AtlasMapRenderer_OpenGLES2'");
|
|
||||||
}
|
|
||||||
|
|
||||||
AtlasMapRendererConfiguration atlasRendererConfiguration = AtlasMapRendererConfiguration.Casts.upcastFrom(mapRenderer.getConfiguration());
|
|
||||||
atlasRendererConfiguration.setReferenceTileSizeOnScreenInPixels(referenceTileSize);
|
|
||||||
mapRenderer.setConfiguration(AtlasMapRendererConfiguration.Casts.downcastTo_MapRendererConfiguration(atlasRendererConfiguration));
|
|
||||||
|
|
||||||
if (OFFLINE_MAP){
|
|
||||||
MapPresentationEnvironment presentation = notGc(new MapPresentationEnvironment(mapStyle, displayDensityFactor, "en"));
|
|
||||||
//TODO: here should be current locale
|
|
||||||
//mapPresentationEnvironment->setSettings(configuration.styleSettings);
|
|
||||||
MapPrimitivesProvider mapPrimitivesProvider = notGc(new MapPrimitivesProvider(
|
|
||||||
notGc(new ObfMapObjectsProvider(obfsCollection)),
|
|
||||||
notGc(new MapPrimitiviser(presentation)), rasterTileSize));
|
|
||||||
MapRasterLayerProvider_Software mapRasterLayerProvider = notGc(new MapRasterLayerProvider_Software(
|
|
||||||
mapPrimitivesProvider));
|
|
||||||
mapRenderer.setMapLayerProvider(0, mapRasterLayerProvider);
|
|
||||||
MapObjectsSymbolsProvider mapObjectsSymbolsProvider = notGc(new MapObjectsSymbolsProvider(
|
|
||||||
mapPrimitivesProvider, rasterTileSize));
|
|
||||||
mapRenderer.addSymbolsProvider(mapObjectsSymbolsProvider);
|
|
||||||
} else {
|
|
||||||
OnlineRasterMapLayerProvider onlineMapRasterLayerProvider = notGc(OnlineTileSources.getBuiltIn()
|
|
||||||
.createProviderFor("Mapnik (OsmAnd)"));
|
|
||||||
mapRenderer.setMapLayerProvider(0, onlineMapRasterLayerProvider);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private static class EGLContextFactory implements GLSurfaceView.EGLContextFactory {
|
|
||||||
private EGLContext gpuWorkerContext;
|
|
||||||
private EGLSurface gpuWorkerFakeSurface;
|
|
||||||
private GLSurfaceView glSurfaceView;
|
|
||||||
|
|
||||||
public EGLContextFactory(GLSurfaceView glSurfaceView) {
|
|
||||||
this.glSurfaceView = glSurfaceView;
|
|
||||||
}
|
|
||||||
|
|
||||||
public EGLContext createContext(EGL10 egl, EGLDisplay display, EGLConfig eglConfig) {
|
|
||||||
final String eglExtensions = egl.eglQueryString(display, EGL10.EGL_EXTENSIONS);
|
|
||||||
Log.i(NATIVE_TAG, "EGL extensions: " + eglExtensions);
|
|
||||||
final String eglVersion = egl.eglQueryString(display, EGL10.EGL_VERSION);
|
|
||||||
Log.i(NATIVE_TAG, "EGL version: " + eglVersion);
|
|
||||||
|
|
||||||
Log.i(NATIVE_TAG, "Creating main context...");
|
|
||||||
final int[] contextAttribList = { EGL14.EGL_CONTEXT_CLIENT_VERSION, 2, EGL10.EGL_NONE };
|
|
||||||
|
|
||||||
EGLContext mainContext = null;
|
|
||||||
try {
|
|
||||||
mainContext = egl.eglCreateContext(display, eglConfig, EGL10.EGL_NO_CONTEXT, contextAttribList);
|
|
||||||
} catch (Exception e) {
|
|
||||||
Log.e(NATIVE_TAG, "Failed to create main context", e);
|
|
||||||
}
|
|
||||||
if (mainContext == null || mainContext == EGL10.EGL_NO_CONTEXT) {
|
|
||||||
Log.e(NATIVE_TAG, "Failed to create main context: " + egl.eglGetError());
|
|
||||||
mainContext = null;
|
|
||||||
System.exit(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
Log.i(NATIVE_TAG, "Creating GPU worker context...");
|
|
||||||
try {
|
|
||||||
gpuWorkerContext = egl.eglCreateContext(display, eglConfig, mainContext, contextAttribList);
|
|
||||||
} catch (Exception e) {
|
|
||||||
Log.e(NATIVE_TAG, "Failed to create GPU worker context", e);
|
|
||||||
}
|
|
||||||
if (gpuWorkerContext == null || gpuWorkerContext == EGL10.EGL_NO_CONTEXT) {
|
|
||||||
Log.e(NATIVE_TAG, "Failed to create GPU worker context: " + egl.eglGetError());
|
|
||||||
gpuWorkerContext = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (gpuWorkerContext != null) {
|
|
||||||
Log.i(NATIVE_TAG, "Creating GPU worker fake surface...");
|
|
||||||
try {
|
|
||||||
final int[] surfaceAttribList = { EGL10.EGL_WIDTH, 1, EGL10.EGL_HEIGHT, 1, EGL10.EGL_NONE };
|
|
||||||
gpuWorkerFakeSurface = egl.eglCreatePbufferSurface(display, eglConfig, surfaceAttribList);
|
|
||||||
} catch (Exception e) {
|
|
||||||
Log.e(NATIVE_TAG, "Failed to create GPU worker fake surface", e);
|
|
||||||
}
|
|
||||||
if (gpuWorkerFakeSurface == null || gpuWorkerFakeSurface == EGL10.EGL_NO_SURFACE) {
|
|
||||||
Log.e(NATIVE_TAG, "Failed to create GPU worker fake surface: " + egl.eglGetError());
|
|
||||||
gpuWorkerFakeSurface = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
MapRendererSetupOptions rendererSetupOptions = notGcFor1Egl(new MapRendererSetupOptions());
|
|
||||||
if (gpuWorkerContext != null && gpuWorkerFakeSurface != null) {
|
|
||||||
rendererSetupOptions.setGpuWorkerThreadEnabled(true);
|
|
||||||
GpuWorkerThreadPrologue gpuWorkerThreadPrologue = notGcFor1Egl(new GpuWorkerThreadPrologue(egl,
|
|
||||||
display, gpuWorkerContext, gpuWorkerFakeSurface));
|
|
||||||
rendererSetupOptions.setGpuWorkerThreadPrologue(gpuWorkerThreadPrologue.getBinding());
|
|
||||||
GpuWorkerThreadEpilogue gpuWorkerThreadEpilogue = notGcFor1Egl(new GpuWorkerThreadEpilogue(egl));
|
|
||||||
rendererSetupOptions.setGpuWorkerThreadEpilogue(gpuWorkerThreadEpilogue.getBinding());
|
|
||||||
} else {
|
|
||||||
rendererSetupOptions.setGpuWorkerThreadEnabled(false);
|
|
||||||
}
|
|
||||||
RenderRequestCallback renderRequestCallback = notGcFor1Egl(new RenderRequestCallback(glSurfaceView));
|
|
||||||
rendererSetupOptions.setFrameUpdateRequestCallback(renderRequestCallback.getBinding());
|
|
||||||
mapRenderer.setup(rendererSetupOptions);
|
|
||||||
|
|
||||||
return mainContext;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void destroyContext(EGL10 egl, EGLDisplay display, EGLContext context) {
|
|
||||||
egl.eglDestroyContext(display, context);
|
|
||||||
|
|
||||||
if (gpuWorkerContext != null) {
|
|
||||||
egl.eglDestroyContext(display, gpuWorkerContext);
|
|
||||||
gpuWorkerContext = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (gpuWorkerFakeSurface != null) {
|
|
||||||
egl.eglDestroySurface(display, gpuWorkerFakeSurface);
|
|
||||||
gpuWorkerFakeSurface = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static class GpuWorkerThreadEpilogue extends MapRendererSetupOptions.IGpuWorkerThreadEpilogue {
|
|
||||||
public GpuWorkerThreadEpilogue(EGL10 egl) {
|
|
||||||
_egl = egl;
|
|
||||||
}
|
|
||||||
|
|
||||||
private final EGL10 _egl;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void method(IMapRenderer mapRenderer) {
|
|
||||||
try {
|
|
||||||
if (!_egl.eglWaitGL())
|
|
||||||
Log.e(NATIVE_TAG, "Failed to wait for GPU worker context: " + _egl.eglGetError());
|
|
||||||
} catch (Exception e) {
|
|
||||||
Log.e(NATIVE_TAG, "Failed to wait for GPU worker context", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static class GpuWorkerThreadPrologue extends MapRendererSetupOptions.IGpuWorkerThreadPrologue {
|
|
||||||
public GpuWorkerThreadPrologue(EGL10 egl, EGLDisplay eglDisplay, EGLContext context, EGLSurface surface) {
|
|
||||||
_egl = egl;
|
|
||||||
_eglDisplay = eglDisplay;
|
|
||||||
_context = context;
|
|
||||||
_eglSurface = surface;
|
|
||||||
}
|
|
||||||
|
|
||||||
private final EGL10 _egl;
|
|
||||||
private final EGLDisplay _eglDisplay;
|
|
||||||
private final EGLContext _context;
|
|
||||||
private final EGLSurface _eglSurface;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void method(IMapRenderer mapRenderer) {
|
|
||||||
try {
|
|
||||||
if (!_egl.eglMakeCurrent(_eglDisplay, _eglSurface, _eglSurface, _context))
|
|
||||||
Log.e(NATIVE_TAG, "Failed to set GPU worker context active: " + _egl.eglGetError());
|
|
||||||
} catch (Exception e) {
|
|
||||||
Log.e(NATIVE_TAG, "Failed to set GPU worker context active", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static class RenderRequestCallback extends MapRendererSetupOptions.IFrameUpdateRequestCallback {
|
|
||||||
private GLSurfaceView glSurfaceView;
|
|
||||||
|
|
||||||
public RenderRequestCallback(GLSurfaceView glSurfaceView) {
|
|
||||||
this.glSurfaceView = glSurfaceView;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void method(IMapRenderer mapRenderer) {
|
|
||||||
glSurfaceView.requestRender();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,48 +0,0 @@
|
||||||
package net.osmand.plus.views.corenative;
|
|
||||||
|
|
||||||
import android.opengl.GLSurfaceView;
|
|
||||||
import android.util.Log;
|
|
||||||
import net.osmand.core.jni.AreaI;
|
|
||||||
import net.osmand.core.jni.IMapRenderer;
|
|
||||||
import net.osmand.core.jni.PointI;
|
|
||||||
|
|
||||||
import javax.microedition.khronos.egl.EGLConfig;
|
|
||||||
import javax.microedition.khronos.opengles.GL10;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by Denis on 01.10.2014.
|
|
||||||
*/
|
|
||||||
public class NativeRenderer implements GLSurfaceView.Renderer {
|
|
||||||
private IMapRenderer mapRenderer;
|
|
||||||
|
|
||||||
|
|
||||||
public NativeRenderer(IMapRenderer mapRenderer){
|
|
||||||
this.mapRenderer = mapRenderer;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
|
|
||||||
Log.i(NativeQtLibrary.NATIVE_TAG, "onSurfaceCreated");
|
|
||||||
if (mapRenderer.isRenderingInitialized())
|
|
||||||
mapRenderer.releaseRendering();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onSurfaceChanged(GL10 gl, int width, int height) {
|
|
||||||
Log.i(NativeQtLibrary.NATIVE_TAG, "onSurfaceChanged");
|
|
||||||
mapRenderer.setViewport(new AreaI(0, 0, height, width));
|
|
||||||
mapRenderer.setWindowSize(new PointI(width, height));
|
|
||||||
|
|
||||||
if (!mapRenderer.isRenderingInitialized())
|
|
||||||
{
|
|
||||||
if (!mapRenderer.initializeRendering())
|
|
||||||
Log.e(NativeQtLibrary.NATIVE_TAG, "Failed to initialize rendering");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onDrawFrame(GL10 gl) {
|
|
||||||
mapRenderer.update();
|
|
||||||
if (mapRenderer.prepareFrame())
|
|
||||||
mapRenderer.renderFrame();
|
|
||||||
gl.glFlush();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue