From fa50464952090b738e128264e6bf0c3803ad7874 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Tue, 9 Jun 2020 00:55:29 +0000 Subject: [PATCH 001/107] Latest strings reworked --- OsmAnd/res/values/strings.xml | 63 +++++++++++++++++------------------ 1 file changed, 31 insertions(+), 32 deletions(-) diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index 8f16e46df5..e2d11ac982 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -13,25 +13,24 @@ --> Night map - Control visibility of additional details shown on the map + Show or hide additional map details meters tones Default screen timeout - If the \"%1$s\" option is enabled, the activity time will depend on it. + If \"%1$s\" is on, the activity time will depend on it. Screen timeout Are you sure you want to irrevocably delete %d quick actions? Delete all? - You can Export or Import quick actions with application profiles. - Choose how downloaded tiles will be stored. - Expiration time in minutes. Cached tiles will be reloaded after specified time. - Leave this field empty to never refresh tiles for this source. + You can export or import quick actions with app profiles. + Choose how to store downloaded tiles. + Temporarily downloaded tiles will be redownloaded after a specified amount of minutes. + Leaft empty tiles will never be redownloaded for this source. \n\nOne day is 1440 minutes.\nOne week is 10 080 minutes.\nOne month is 43 829 minutes. - These parameters will affect the display when used as map or overlay/underlay. - \n\n%1$s: The map will be limited to the selected zooms. \n\n%2$s: Zoom levels at which - the original tiles will be visible. Upscaling or downscaling will occur outside these values. - Set the minimum and maximum zoom level at which the online map will be displayed or loaded. + Affects the screen when used as map or overlay/underlay. + \n\n%1$s: The map is limited to the range zoom levels selected. \n\n%2$s is the level all original tiles visible at. Changing level always fetches new tiles. + Set a minimum and maximum zoom level to show or load the online map. Storage format - Mercator Projection + Mercator projection Expiry time Edit online source Enter or paste the URL for the online source. @@ -41,23 +40,23 @@ Pseudo-Mercator projection Keep screen off Keep screen on - Select the screen timeout after waking up. (\"%1$s\" applies no timeout.) + Select how long the screen should be kept on. (\"%1$s\" keeps the screen from turning off.) Proximity sensor Power button - Pressing the device power button will turn the screen on with OsmAnd on top of the lock screen. - Disabled. Requires \'Keep screen on\' under \'Timeout after wake-up\'. + Pressing the power button on your device turns the screen on with OsmAnd on top of the lock screen. + Off. Requires \'Keep screen on\' under \'Timeout after wake-up\'. Navigation instructions Each navigation instruction will turn the screen on. Select screen wake-up options (make sure OsmAnd is in the foreground when the device is being locked): - Use system screen timeout - Turns the screen off after the system\'s screen timeout. + Let the system decide screen timeout + Turns the screen off as per the system\'s screen timeout. Screen control Always - OsmAnd GPX is not well formed, please contact the support team to investigate further. - Provide your vehicle weight, some routes restrictions may be applied for heavy vehicles. - Provide your vehicle height, some routes restrictions may apply for high vehicles. - Provide your vehicle width some routes restrictions may be applied for wide vehicles. + The OsmAnd GPX file is damaged, please contact the support team. + Provide your vehicle weight, some route restrictions may apply for heavy vehicles. + Provide your vehicle height, some route restrictions may apply for high vehicles. + Provide your vehicle width some route restrictions may apply for wide vehicles. Unsupported type World overview map (detailed) Could not find any such profiles. @@ -130,7 +129,7 @@ Southern Min Cantonese Some Wikipedia articles may not be available in your language. - Select the languages ​​in which Wikipedia articles will appear on the map. You can switch between all available languages​​ while reading the article. + Select the languages for ​​Wikipedia articles on the map.​​ Switch to any available language while reading the article. Additional maps are needed to view Wikipedia POIs on the map. All languages Language @@ -144,7 +143,7 @@ Custom OsmAnd plugin Snowmobile Ski touring - Replace another point with this + Replace another point with this. Developer Plugin You can move items only inside this category. You can access these actions by tapping the “%1$s” button. @@ -2360,16 +2359,16 @@ Version: About Version info, licenses, project members - Zooms downloaded: %1$s - Expire (minutes): %1$s + Zoom levels downloaded: %1$s + Minutes until data expires: %1$s Downloadable: %1$s Maximum zoom: %1$s Minimum zoom: %1$s Tile data: %1$s - Tilesource %1$s was saved - Elliptic mercator + Saved the tilesource \"%1$s\" + Elliptic Mercator projection Maximum zoom - Expire (minutes) + Minutes until source expires Minimum zoom URL Select existing… @@ -2380,8 +2379,8 @@ Japan United States Canada - Europe, Asia, Latin America, & similar - UK, India, & similar + Europe, Asia, Latin America, and similar + UK, India, and similar Australia Announce… Set up announcement of street names, traffic warnings (forced stops, speed bumps), speed camera warnings, and speed limits. @@ -2431,7 +2430,7 @@ Begin a new subtrack Clear all points Open existing GPX file - Please wait until current task is finished + Please wait for the current to finish Reduces noise in compass readings but adds inertia. Use Kalman filter For the compass reading, use the magnetic sensor instead of the orientation sensor. @@ -2683,7 +2682,7 @@ • North America: ***\n • South America: **\n • Asia: **\n - • Japan & Korea: ***\n + • Japan and Korea: ***\n • Middle East: **\n • Africa: **\n • Antarctica: *\n @@ -2781,7 +2780,7 @@ • North America: ***\n • South America: **\n • Asia: **\n - • Japan & Korea: ***\n + • Japan and Korea: ***\n • Middle East: **\n • Africa: **\n • Antarctica: *\n From 1186822ccf441cdbaace9d2f49b9b3b912fd8b0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Tue, 9 Jun 2020 00:56:23 +0000 Subject: [PATCH 002/107] Left empty --- OsmAnd/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index e2d11ac982..305e7054da 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -24,7 +24,7 @@ You can export or import quick actions with app profiles. Choose how to store downloaded tiles. Temporarily downloaded tiles will be redownloaded after a specified amount of minutes. - Leaft empty tiles will never be redownloaded for this source. + Left empty tiles will never be redownloaded for this source. \n\nOne day is 1440 minutes.\nOne week is 10 080 minutes.\nOne month is 43 829 minutes. Affects the screen when used as map or overlay/underlay. \n\n%1$s: The map is limited to the range zoom levels selected. \n\n%2$s is the level all original tiles visible at. Changing level always fetches new tiles. From 7c7d27b0c5e431e85c315ce8383554e9dab8df36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Tue, 9 Jun 2020 00:59:39 +0000 Subject: [PATCH 003/107] "Please wait for the current to finish" was almost good. --- OsmAnd/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index 305e7054da..5a7c70e90b 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -2430,7 +2430,7 @@ Begin a new subtrack Clear all points Open existing GPX file - Please wait for the current to finish + Please wait until current task is finished Reduces noise in compass readings but adds inertia. Use Kalman filter For the compass reading, use the magnetic sensor instead of the orientation sensor. From 0ed40967492eca427d03d5e0faf44028068c61ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Tue, 9 Jun 2020 01:00:10 +0000 Subject: [PATCH 004/107] re-downloaded --- OsmAnd/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index 5a7c70e90b..f526b251d3 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -24,7 +24,7 @@ You can export or import quick actions with app profiles. Choose how to store downloaded tiles. Temporarily downloaded tiles will be redownloaded after a specified amount of minutes. - Left empty tiles will never be redownloaded for this source. + Left empty tiles will never be re-downloaded for this source. \n\nOne day is 1440 minutes.\nOne week is 10 080 minutes.\nOne month is 43 829 minutes. Affects the screen when used as map or overlay/underlay. \n\n%1$s: The map is limited to the range zoom levels selected. \n\n%2$s is the level all original tiles visible at. Changing level always fetches new tiles. From 9937d2aeb122a5d89c08bd6624486dec431b35f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Tue, 9 Jun 2020 01:00:36 +0000 Subject: [PATCH 005/107] re-downloaded --- OsmAnd/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index f526b251d3..e9a1a909d5 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -23,7 +23,7 @@ Delete all? You can export or import quick actions with app profiles. Choose how to store downloaded tiles. - Temporarily downloaded tiles will be redownloaded after a specified amount of minutes. + Temporarily downloaded tiles will be re-downloaded after a specified amount of minutes. Left empty tiles will never be re-downloaded for this source. \n\nOne day is 1440 minutes.\nOne week is 10 080 minutes.\nOne month is 43 829 minutes. Affects the screen when used as map or overlay/underlay. From 571ac59a0686b61fa454a2e3f280c5835d0e9b27 Mon Sep 17 00:00:00 2001 From: veliymolfar Date: Tue, 9 Jun 2020 13:50:49 +0300 Subject: [PATCH 006/107] fix layouts on android 4 --- .../res/layout/fragment_edit_map_source.xml | 25 +++++++------------ .../EditMapSourceDialogFragment.java | 8 ++++++ .../mapsource/InputZoomLevelsBottomSheet.java | 2 +- 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/OsmAnd/res/layout/fragment_edit_map_source.xml b/OsmAnd/res/layout/fragment_edit_map_source.xml index 57370b06a5..43a6ced2d7 100644 --- a/OsmAnd/res/layout/fragment_edit_map_source.xml +++ b/OsmAnd/res/layout/fragment_edit_map_source.xml @@ -1,7 +1,6 @@ + android:theme="?attr/toolbar_theme" + tools:background="?attr/actionModeBackground"> - + - + + android:paddingBottom="@dimen/content_padding_small" + tools:background="?attr/list_background_color"> + tools:background="?attr/dlg_btn_primary"> + tools:textColor="?attr/dlg_btn_primary_text" /> diff --git a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java index 528efff916..b8c11d0d10 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java @@ -122,6 +122,8 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment } View root = UiUtilities.getMaterialInflater(app, nightMode).inflate(R.layout.fragment_edit_map_source, container, false); Toolbar toolbar = root.findViewById(R.id.toolbar); + toolbar.setBackgroundColor(ContextCompat.getColor(app, nightMode ? R.color.app_bar_color_dark : R.color.app_bar_color_light)); + toolbar.setTitleTextColor(ContextCompat.getColor(app, nightMode ? R.color.active_buttons_and_links_text_dark : R.color.active_buttons_and_links_text_light)); ImageButton iconHelp = root.findViewById(R.id.toolbar_action); Drawable closeDrawable = app.getUIUtilities().getIcon(AndroidUtils.getNavigationIconResId(app), nightMode ? R.color.active_buttons_and_links_text_dark : R.color.active_buttons_and_links_text_light); @@ -145,6 +147,7 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment int boxStrokeColor = nightMode ? ContextCompat.getColor(app, R.color.app_bar_color_light) : ContextCompat.getColor(app, R.color.active_buttons_and_links_bg_pressed_dark); + int btnBgColorRes = nightMode ? R.color.list_background_color_dark : R.color.list_background_color_light; TextInputLayout nameInputLayout = root.findViewById(R.id.name_input_layout); nameInputLayout.setBoxStrokeColor(boxStrokeColor); nameEditText = root.findViewById(R.id.name_edit_text); @@ -155,7 +158,12 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment urlEditText.addTextChangedListener(getTextWatcher()); contentContainer = root.findViewById(R.id.content_container); saveBtn = root.findViewById(R.id.save_button); + saveBtn.setBackgroundResource(nightMode ? R.drawable.dlg_btn_primary_dark : R.drawable.dlg_btn_primary_light); + FrameLayout saveBtnBg = root.findViewById(R.id.save_button_bg); + saveBtnBg.setBackgroundColor(ContextCompat.getColor(app, btnBgColorRes)); saveBtnTitle = root.findViewById(R.id.save_button_title); + saveBtnTitle.setTextColor(ContextCompat.getColorStateList(app, + nightMode ? R.color.dlg_btn_primary_text_dark : R.color.dlg_btn_primary_text_light)); saveBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { diff --git a/OsmAnd/src/net/osmand/plus/mapsource/InputZoomLevelsBottomSheet.java b/OsmAnd/src/net/osmand/plus/mapsource/InputZoomLevelsBottomSheet.java index 3f44454f22..d5b8f541fb 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/InputZoomLevelsBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/InputZoomLevelsBottomSheet.java @@ -71,7 +71,7 @@ public class InputZoomLevelsBottomSheet extends MenuBottomSheetDialogFragment { dialogDescrRes = savedInstanceState.getInt(DIALOG_DESCR_RES_KEY); sliderDescrRes = savedInstanceState.getInt(SLIDER_DESCR_RES_KEY); } - LayoutInflater inflater = UiUtilities.getInflater(app, nightMode); + LayoutInflater inflater = UiUtilities.getMaterialInflater(app, nightMode); TitleItem titleItem = new TitleItem(getString(R.string.shared_string_zoom_levels)); items.add(titleItem); final View sliderView = inflater.inflate(R.layout.zoom_levels_with_descr, null); From 3d6131cd65aaa163255e81a1b2f966ce2c78d38c Mon Sep 17 00:00:00 2001 From: veliymolfar Date: Tue, 9 Jun 2020 14:15:09 +0300 Subject: [PATCH 007/107] not show rename btn for TILES_DATA --- .../download/ui/LocalIndexesFragment.java | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/download/ui/LocalIndexesFragment.java b/OsmAnd/src/net/osmand/plus/download/ui/LocalIndexesFragment.java index 89914c522c..3edcfbcece 100644 --- a/OsmAnd/src/net/osmand/plus/download/ui/LocalIndexesFragment.java +++ b/OsmAnd/src/net/osmand/plus/download/ui/LocalIndexesFragment.java @@ -1141,15 +1141,17 @@ public class LocalIndexesFragment extends OsmandExpandableListFragment implement } }); } - item = optionsMenu.getMenu().add(R.string.shared_string_rename) - .setIcon(iconsCache.getThemedIcon(R.drawable.ic_action_edit_dark)); - item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { - @Override - public boolean onMenuItemClick(MenuItem item) { - performBasicOperation(R.string.shared_string_rename, info); - return true; - } - }); + if (info.getType() != LocalIndexType.TILES_DATA) { + item = optionsMenu.getMenu().add(R.string.shared_string_rename) + .setIcon(iconsCache.getThemedIcon(R.drawable.ic_action_edit_dark)); + item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { + @Override + public boolean onMenuItemClick(MenuItem item) { + performBasicOperation(R.string.shared_string_rename, info); + return true; + } + }); + } if (info.getType() == LocalIndexType.TILES_DATA && ((info.getAttachedObject() instanceof TileSourceManager.TileSourceTemplate) || ((info.getAttachedObject() instanceof SQLiteTileSource) From a01e1ed37d07719f225aadab3b12f0ec390b83cf Mon Sep 17 00:00:00 2001 From: veliymolfar Date: Tue, 9 Jun 2020 14:23:39 +0300 Subject: [PATCH 008/107] close bottom sheet on select another option --- .../plus/mapsource/MercatorProjectionBottomSheet.java | 6 ++++-- .../osmand/plus/mapsource/TileStorageFormatBottomSheet.java | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/mapsource/MercatorProjectionBottomSheet.java b/OsmAnd/src/net/osmand/plus/mapsource/MercatorProjectionBottomSheet.java index a1a9150132..dcead043e3 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/MercatorProjectionBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/MercatorProjectionBottomSheet.java @@ -90,8 +90,10 @@ public class MercatorProjectionBottomSheet extends MenuBottomSheetDialogFragment view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - mercatorProjection = m; - populateValuesList(); + if (mercatorProjection != m){ + mercatorProjection = m; + dismiss(); + } } }); } diff --git a/OsmAnd/src/net/osmand/plus/mapsource/TileStorageFormatBottomSheet.java b/OsmAnd/src/net/osmand/plus/mapsource/TileStorageFormatBottomSheet.java index 2f42110430..da59775ff0 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/TileStorageFormatBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/TileStorageFormatBottomSheet.java @@ -90,8 +90,10 @@ public class TileStorageFormatBottomSheet extends MenuBottomSheetDialogFragment view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - tileStorageFormat = m; - populateValuesList(); + if (tileStorageFormat != m) { + tileStorageFormat = m; + dismiss(); + } } }); } From baec03ec1e395e243c6c77849426e33d444c7c63 Mon Sep 17 00:00:00 2001 From: veliymolfar Date: Tue, 9 Jun 2020 14:30:34 +0300 Subject: [PATCH 009/107] add / edit toolbar title --- OsmAnd/res/values/strings.xml | 1 + .../net/osmand/plus/mapsource/EditMapSourceDialogFragment.java | 1 + 2 files changed, 2 insertions(+) diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index 8f16e46df5..c063b5e552 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -11,6 +11,7 @@ Thx - Hardy --> + Add online source Night map Control visibility of additional details shown on the map diff --git a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java index b8c11d0d10..be4023ba52 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java @@ -124,6 +124,7 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment Toolbar toolbar = root.findViewById(R.id.toolbar); toolbar.setBackgroundColor(ContextCompat.getColor(app, nightMode ? R.color.app_bar_color_dark : R.color.app_bar_color_light)); toolbar.setTitleTextColor(ContextCompat.getColor(app, nightMode ? R.color.active_buttons_and_links_text_dark : R.color.active_buttons_and_links_text_light)); + toolbar.setTitle(editedLayerName == null ? R.string.add_online_source : R.string.edit_online_source); ImageButton iconHelp = root.findViewById(R.id.toolbar_action); Drawable closeDrawable = app.getUIUtilities().getIcon(AndroidUtils.getNavigationIconResId(app), nightMode ? R.color.active_buttons_and_links_text_dark : R.color.active_buttons_and_links_text_light); From 690ddb52e7e71b09f4f52806c7e0297508fb9787 Mon Sep 17 00:00:00 2001 From: veliymolfar Date: Tue, 9 Jun 2020 16:28:41 +0300 Subject: [PATCH 010/107] don`t save with empty name/url --- .../EditMapSourceDialogFragment.java | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java index be4023ba52..339c1c2f2e 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java @@ -279,19 +279,22 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment @Override public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { - String s = charSequence.toString(); - if (Algorithms.isEmpty(s)) { - saveBtn.setEnabled(false); - saveBtnTitle.setEnabled(false); - } else { - saveBtn.setEnabled(true); - saveBtnTitle.setEnabled(true); - } + } @Override public void afterTextChanged(Editable editable) { - + if (nameEditText.getText() != null && urlEditText.getText() != null) { + String name = nameEditText.getText().toString().trim(); + String url = urlEditText.getText().toString().trim(); + if (Algorithms.isEmpty(name) || Algorithms.isEmpty(url)) { + saveBtn.setEnabled(false); + saveBtnTitle.setEnabled(false); + } else { + saveBtn.setEnabled(true); + saveBtnTitle.setEnabled(true); + } + } } }; } From 765aafb4e7ce29c4561656da8143b5b6d731d0aa Mon Sep 17 00:00:00 2001 From: veliymolfar Date: Tue, 9 Jun 2020 16:51:56 +0300 Subject: [PATCH 011/107] warning dialog on zooms change for used source --- OsmAnd/res/values/strings.xml | 1 + .../EditMapSourceDialogFragment.java | 2 +- .../mapsource/InputZoomLevelsBottomSheet.java | 46 +++++++++++++++++-- 3 files changed, 43 insertions(+), 6 deletions(-) diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index c063b5e552..a8434ca892 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -11,6 +11,7 @@ Thx - Hardy --> + Applying these changes will clear the cached data for this tile source Add online source Night map diff --git a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java index 339c1c2f2e..1a9a10998f 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java @@ -408,7 +408,7 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment InputZoomLevelsBottomSheet.showInstance( fm, EditMapSourceDialogFragment.this, R.string.map_source_zoom_levels, R.string.map_source_zoom_levels_descr, - minZoom, maxZoom + minZoom, maxZoom, editedLayerName != null ); break; case EXPIRE_TIME: diff --git a/OsmAnd/src/net/osmand/plus/mapsource/InputZoomLevelsBottomSheet.java b/OsmAnd/src/net/osmand/plus/mapsource/InputZoomLevelsBottomSheet.java index d5b8f541fb..eaada674a3 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/InputZoomLevelsBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/InputZoomLevelsBottomSheet.java @@ -1,5 +1,7 @@ package net.osmand.plus.mapsource; +import android.content.Context; +import android.content.DialogInterface; import android.os.Bundle; import android.text.SpannableString; import android.text.Spanned; @@ -10,6 +12,7 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.StringRes; +import androidx.appcompat.app.AlertDialog; import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; @@ -38,6 +41,7 @@ public class InputZoomLevelsBottomSheet extends MenuBottomSheetDialogFragment { private static final String MAX_ZOOM_KEY = "max_zoom_key"; private static final String SLIDER_DESCR_RES_KEY = "slider_descr_key"; private static final String DIALOG_DESCR_RES_KEY = "dialog_descr_key"; + private static final String SHOW_WARNING_KEY = "show_warning_key"; private static final int SLIDER_FROM = 1; private static final int SLIDER_TO = 22; @StringRes @@ -46,19 +50,22 @@ public class InputZoomLevelsBottomSheet extends MenuBottomSheetDialogFragment { private int dialogDescrRes; private int minZoom; private int maxZoom; + private boolean showWarning; public static void showInstance(@NonNull FragmentManager fm, @Nullable Fragment targetFragment, int sliderDescr, int dialogDescr, int minZoom, - int maxZoom) { + int maxZoom, + boolean showWarning) { InputZoomLevelsBottomSheet bottomSheet = new InputZoomLevelsBottomSheet(); bottomSheet.setTargetFragment(targetFragment, 0); bottomSheet.setSliderDescrRes(sliderDescr); bottomSheet.setDialogDescrRes(dialogDescr); bottomSheet.setMinZoom(Math.max(minZoom, SLIDER_FROM)); bottomSheet.setMaxZoom(Math.min(maxZoom, SLIDER_TO)); + bottomSheet.setShowWarning(showWarning); bottomSheet.show(fm, TAG); } @@ -70,6 +77,7 @@ public class InputZoomLevelsBottomSheet extends MenuBottomSheetDialogFragment { maxZoom = savedInstanceState.getInt(MAX_ZOOM_KEY); dialogDescrRes = savedInstanceState.getInt(DIALOG_DESCR_RES_KEY); sliderDescrRes = savedInstanceState.getInt(SLIDER_DESCR_RES_KEY); + showWarning = savedInstanceState.getBoolean(SHOW_WARNING_KEY); } LayoutInflater inflater = UiUtilities.getMaterialInflater(app, nightMode); TitleItem titleItem = new TitleItem(getString(R.string.shared_string_zoom_levels)); @@ -133,16 +141,17 @@ public class InputZoomLevelsBottomSheet extends MenuBottomSheetDialogFragment { outState.putInt(MAX_ZOOM_KEY, maxZoom); outState.putInt(SLIDER_DESCR_RES_KEY, sliderDescrRes); outState.putInt(DIALOG_DESCR_RES_KEY, dialogDescrRes); + outState.putBoolean(SHOW_WARNING_KEY, showWarning); super.onSaveInstanceState(outState); } @Override protected void onRightBottomButtonClick() { - Fragment fragment = getTargetFragment(); - if (fragment instanceof OnZoomSetListener) { - ((OnZoomSetListener) fragment).onZoomSet(minZoom, maxZoom); + if (showWarning) { + showWarningDialog(); + } else { + applySelectedZooms(); } - dismiss(); } @Override @@ -155,6 +164,29 @@ public class InputZoomLevelsBottomSheet extends MenuBottomSheetDialogFragment { return R.string.shared_string_apply; } + private void showWarningDialog() { + Context themedContext = UiUtilities.getThemedContext(getActivity(), nightMode); + AlertDialog.Builder dismissDialog = new AlertDialog.Builder(themedContext); + dismissDialog.setTitle(getString(R.string.osmand_parking_warning)); + dismissDialog.setMessage(getString(R.string.clear_tiles_warning)); + dismissDialog.setNegativeButton(R.string.shared_string_cancel, null); + dismissDialog.setPositiveButton(R.string.shared_string_ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + applySelectedZooms(); + } + }); + dismissDialog.show(); + } + + private void applySelectedZooms() { + Fragment fragment = getTargetFragment(); + if (fragment instanceof OnZoomSetListener) { + ((OnZoomSetListener) fragment).onZoomSet(minZoom, maxZoom); + } + dismiss(); + } + private SpannableString createSpannableString(@NonNull String text, @NonNull String... textToStyle) { SpannableString spannable = new SpannableString(text); for (String t : textToStyle) { @@ -188,6 +220,10 @@ public class InputZoomLevelsBottomSheet extends MenuBottomSheetDialogFragment { this.maxZoom = maxZoom; } + public void setShowWarning(boolean showWarning) { + this.showWarning = showWarning; + } + public interface OnZoomSetListener { void onZoomSet(int min, int max); } From 0b9fe37de0ce952c37fd77593f77dc2aa989ac45 Mon Sep 17 00:00:00 2001 From: veliymolfar Date: Tue, 9 Jun 2020 18:46:03 +0300 Subject: [PATCH 012/107] fix input layout on android 4 --- .../net/osmand/plus/mapsource/EditMapSourceDialogFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java index 1a9a10998f..89f229c576 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java @@ -120,7 +120,7 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment elliptic = savedInstanceState.getBoolean(ELLIPTIC_KEY); sqliteDB = savedInstanceState.getBoolean(SQLITE_DB_KEY); } - View root = UiUtilities.getMaterialInflater(app, nightMode).inflate(R.layout.fragment_edit_map_source, container, false); + View root = UiUtilities.getMaterialInflater(requireContext(), nightMode).inflate(R.layout.fragment_edit_map_source, container, false); Toolbar toolbar = root.findViewById(R.id.toolbar); toolbar.setBackgroundColor(ContextCompat.getColor(app, nightMode ? R.color.app_bar_color_dark : R.color.app_bar_color_light)); toolbar.setTitleTextColor(ContextCompat.getColor(app, nightMode ? R.color.active_buttons_and_links_text_dark : R.color.active_buttons_and_links_text_light)); From 0ec0609b4fd66d9e695a1946e888495db95243e3 Mon Sep 17 00:00:00 2001 From: Nazar-Kutz Date: Thu, 11 Jun 2020 10:32:26 +0300 Subject: [PATCH 013/107] RTL - Step 3 --- OsmAnd/res/anim/slide_in_right.xml | 7 +++++++ OsmAnd/res/anim/slide_out_right.xml | 7 +++++++ OsmAnd/res/layout-land/track_details.xml | 3 +-- OsmAnd/res/layout/along_the_route_category_item.xml | 8 ++++---- OsmAnd/res/layout/gpx_route_card.xml | 2 +- OsmAnd/res/values/styles.xml | 1 + .../osmand/plus/mapcontextmenu/BaseMenuController.java | 7 +++++-- .../plus/mapcontextmenu/builders/AmenityMenuBuilder.java | 2 +- .../plus/mapcontextmenu/other/TrackDetailsMenu.java | 2 ++ .../routepreparationmenu/MapRouteInfoMenuFragment.java | 5 +++-- .../ShowAlongTheRouteBottomSheet.java | 3 ++- .../plus/routepreparationmenu/cards/MapMarkersCard.java | 2 +- .../routepreparationmenu/cards/PedestrianRouteCard.java | 7 +++++++ .../plus/routepreparationmenu/cards/TracksCard.java | 3 ++- 14 files changed, 44 insertions(+), 15 deletions(-) create mode 100644 OsmAnd/res/anim/slide_in_right.xml create mode 100644 OsmAnd/res/anim/slide_out_right.xml diff --git a/OsmAnd/res/anim/slide_in_right.xml b/OsmAnd/res/anim/slide_in_right.xml new file mode 100644 index 0000000000..a58a25ac16 --- /dev/null +++ b/OsmAnd/res/anim/slide_in_right.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/OsmAnd/res/anim/slide_out_right.xml b/OsmAnd/res/anim/slide_out_right.xml new file mode 100644 index 0000000000..7bc5c5a50b --- /dev/null +++ b/OsmAnd/res/anim/slide_out_right.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/OsmAnd/res/layout-land/track_details.xml b/OsmAnd/res/layout-land/track_details.xml index 5f10c6bcb8..969676e1db 100644 --- a/OsmAnd/res/layout-land/track_details.xml +++ b/OsmAnd/res/layout-land/track_details.xml @@ -12,8 +12,7 @@ android:id="@+id/main_view" android:layout_width="match_parent" android:layout_height="match_parent" - android:orientation="vertical" - android:background="@drawable/bg_left_menu_dark"> + android:orientation="vertical"> + tools:text="Some Title" /> @drawable/bg_map_context_menu_light @drawable/bg_bottom_menu_light @drawable/bg_left_menu_light + @drawable/bg_right_menu_light @drawable/bg_point_editor_view_light @color/divider_color_light @color/divider_color diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/BaseMenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/BaseMenuController.java index 55a808272e..c753babe48 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/BaseMenuController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/BaseMenuController.java @@ -5,6 +5,7 @@ import android.graphics.drawable.Drawable; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import net.osmand.AndroidUtils; import net.osmand.plus.R; import net.osmand.plus.UiUtilities; import net.osmand.plus.activities.MapActivity; @@ -67,7 +68,8 @@ public abstract class BaseMenuController { public int getSlideInAnimation() { if (isLandscapeLayout()) { - return R.anim.slide_in_left; + return AndroidUtils.isLayoutRtl(getMapActivity()) + ? R.anim.slide_in_right : R.anim.slide_in_left; } else { return R.anim.slide_in_bottom; } @@ -75,7 +77,8 @@ public abstract class BaseMenuController { public int getSlideOutAnimation() { if (isLandscapeLayout()) { - return R.anim.slide_out_left; + return AndroidUtils.isLayoutRtl(getMapActivity()) + ? R.anim.slide_out_right : R.anim.slide_out_left; } else { return R.anim.slide_out_bottom; } diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/AmenityMenuBuilder.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/AmenityMenuBuilder.java index 3fb8d61fa8..685335866b 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/AmenityMenuBuilder.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/AmenityMenuBuilder.java @@ -278,7 +278,7 @@ public class AmenityMenuBuilder extends MenuBuilder { light ? R.color.ctx_menu_controller_button_text_color_light_n : R.color.ctx_menu_controller_button_text_color_dark_n); Drawable pressed = app.getUIUtilities().getIcon(R.drawable.ic_action_read_text, light ? R.color.ctx_menu_controller_button_text_color_light_p : R.color.ctx_menu_controller_button_text_color_dark_p); - button.setCompoundDrawablesWithIntrinsicBounds(Build.VERSION.SDK_INT >= 21 + AndroidUtils.setCompoundDrawablesWithIntrinsicBounds(button, Build.VERSION.SDK_INT >= 21 ? AndroidUtils.createPressedStateListDrawable(normal, pressed) : normal, null, null, null); button.setCompoundDrawablePadding(dpToPx(8f)); llText.addView(button); diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java index f5a27329b0..04628bcb48 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java @@ -172,6 +172,8 @@ public class TrackDetailsMenu { } } }); + int navigationIconResId = AndroidUtils.getNavigationIconResId(mapActivity); + toolbarController.setBackBtnIconIds(navigationIconResId, navigationIconResId); toolbarController.setOnCloseButtonClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/MapRouteInfoMenuFragment.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/MapRouteInfoMenuFragment.java index 5b1705157f..e8b7100c0a 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/MapRouteInfoMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/MapRouteInfoMenuFragment.java @@ -511,8 +511,9 @@ public class MapRouteInfoMenuFragment extends ContextMenuFragment { slideInAnim = R.anim.slide_in_bottom; slideOutAnim = R.anim.slide_out_bottom; } else { - slideInAnim = R.anim.slide_in_left; - slideOutAnim = R.anim.slide_out_left; + boolean isLayoutRtl = AndroidUtils.isLayoutRtl(mapActivity); + slideInAnim = isLayoutRtl ? R.anim.slide_in_right : R.anim.slide_in_left; + slideOutAnim = isLayoutRtl ? R.anim.slide_out_right : R.anim.slide_out_left; } } diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/ShowAlongTheRouteBottomSheet.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/ShowAlongTheRouteBottomSheet.java index 20c93dadc6..34c655ae0b 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/ShowAlongTheRouteBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/ShowAlongTheRouteBottomSheet.java @@ -82,7 +82,8 @@ public class ShowAlongTheRouteBottomSheet extends MenuBottomSheetDialogFragment int expandType = args.getInt(EXPAND_TYPE_KEY, -1); final int themeRes = nightMode ? R.style.OsmandDarkTheme : R.style.OsmandLightTheme; - final View titleView = View.inflate(new ContextThemeWrapper(getContext(), themeRes), R.layout.bottom_sheet_item_toolbar_title, null); + final View titleView = View.inflate(new ContextThemeWrapper(getContext(), themeRes), + R.layout.bottom_sheet_item_toolbar_title, null); TextView textView = (TextView) titleView.findViewById(R.id.title); textView.setText(R.string.show_along_the_route); diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/MapMarkersCard.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/MapMarkersCard.java index 8da0063324..f4bbd99d8c 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/MapMarkersCard.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/MapMarkersCard.java @@ -114,7 +114,7 @@ public class MapMarkersCard extends BaseCard { if (i > 0) { View div = new View(ctx); LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, AndroidUtils.dpToPx(ctx, 1f)); - p.setMargins(listTextPadding, 0, 0, 0); + AndroidUtils.setMargins(p, listTextPadding, 0, 0, 0); div.setLayoutParams(p); AndroidUtils.setBackgroundColor(ctx, div, nightMode, R.color.divider_color_light, R.color.divider_color_dark); div.setVisibility(View.VISIBLE); diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/PedestrianRouteCard.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/PedestrianRouteCard.java index e331ee1be5..37129373b7 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/PedestrianRouteCard.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/PedestrianRouteCard.java @@ -1,12 +1,14 @@ package net.osmand.plus.routepreparationmenu.cards; import android.graphics.Typeface; +import android.graphics.drawable.Drawable; import android.os.Build; import android.text.SpannableString; import android.text.Spanned; import android.text.style.StyleSpan; import android.view.View; import android.widget.FrameLayout; +import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; @@ -59,6 +61,11 @@ public class PedestrianRouteCard extends BaseCard { } else { AndroidUtils.setBackground(app, buttonDescr, nightMode, R.drawable.btn_border_trans_light, R.drawable.btn_border_trans_dark); } + Drawable icPedestrian = app.getUIUtilities().getIcon( + R.drawable.ic_action_pedestrian_dark, + R.color.description_font_and_bottom_sheet_icons); + ((ImageView) view.findViewById(R.id.image)).setImageDrawable( + AndroidUtils.getDrawableForDirection(app, icPedestrian)); view.findViewById(R.id.card_divider).setVisibility(View.VISIBLE); view.findViewById(R.id.top_divider).setVisibility(View.GONE); } diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/TracksCard.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/TracksCard.java index b223049553..b04cfb77aa 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/TracksCard.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/TracksCard.java @@ -11,6 +11,7 @@ import androidx.annotation.NonNull; import androidx.appcompat.view.ContextThemeWrapper; import androidx.core.content.ContextCompat; +import net.osmand.AndroidUtils; import net.osmand.GPXUtilities.GPXFile; import net.osmand.IndexConstants; import net.osmand.plus.GPXDatabase.GpxDataItem; @@ -110,7 +111,7 @@ public class TracksCard extends BaseCard { img.setVisibility(View.VISIBLE); LinearLayout container = (LinearLayout) v.findViewById(R.id.container); container.setMinimumHeight(minCardHeight); - container.setPadding(listContentPadding, 0, 0, 0); + AndroidUtils.setPadding(container, listContentPadding, 0, 0, 0); v.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { From 1f1aad244633e9f168a4a5fc5d25509998c7a1db Mon Sep 17 00:00:00 2001 From: Nazar-Kutz Date: Thu, 11 Jun 2020 10:34:02 +0300 Subject: [PATCH 014/107] RTL - Step 3 (Share button) --- .../EditFavoriteGroupDialogFragment.java | 7 ++++- .../activities/FavoritesTreeFragment.java | 2 +- .../ItemMenuBottomSheetDialogFragment.java | 8 ++++- .../osmand/plus/audionotes/NotesFragment.java | 31 +++++++++++++------ .../base/OsmandExpandableListFragment.java | 15 +++++++-- .../plus/development/LogcatActivity.java | 6 +++- .../plus/myplaces/AvailableGPXFragment.java | 3 +- .../plus/myplaces/TrackPointFragment.java | 2 +- .../plus/myplaces/TrackSegmentFragment.java | 5 ++- .../osmand/plus/osmedit/OsmEditsFragment.java | 5 ++- .../ChooseRouteFragment.java | 11 +++++-- .../MapRouteInfoMenu.java | 5 ++- .../search/QuickSearchDialogFragment.java | 8 ++++- .../osmand/plus/views/MapControlsLayer.java | 5 +++ 14 files changed, 90 insertions(+), 23 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/activities/EditFavoriteGroupDialogFragment.java b/OsmAnd/src/net/osmand/plus/activities/EditFavoriteGroupDialogFragment.java index 80027675b4..8e319c7c8f 100644 --- a/OsmAnd/src/net/osmand/plus/activities/EditFavoriteGroupDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/activities/EditFavoriteGroupDialogFragment.java @@ -3,6 +3,7 @@ package net.osmand.plus.activities; import android.app.Activity; import android.content.Context; import android.content.DialogInterface; +import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.ContextThemeWrapper; import android.view.Gravity; @@ -197,8 +198,12 @@ public class EditFavoriteGroupDialogFragment extends MenuBottomSheetDialogFragme .create(); items.add(markersGroupItem); + Drawable shareIcon = getContentIcon(R.drawable.ic_action_gshare_dark); + if (shareIcon != null) { + shareIcon = AndroidUtils.getDrawableForDirection(app, shareIcon); + } BaseBottomSheetItem shareItem = new SimpleBottomSheetItem.Builder() - .setIcon(getContentIcon(R.drawable.ic_action_gshare_dark)) + .setIcon(shareIcon) .setTitle(getString(R.string.shared_string_share)) .setLayoutId(R.layout.bottom_sheet_item_simple) .setOnClickListener(new View.OnClickListener() { diff --git a/OsmAnd/src/net/osmand/plus/activities/FavoritesTreeFragment.java b/OsmAnd/src/net/osmand/plus/activities/FavoritesTreeFragment.java index 71084c00e2..7f0f1b287d 100644 --- a/OsmAnd/src/net/osmand/plus/activities/FavoritesTreeFragment.java +++ b/OsmAnd/src/net/osmand/plus/activities/FavoritesTreeFragment.java @@ -454,7 +454,7 @@ public class FavoritesTreeFragment extends OsmandExpandableListFragment implemen if (!MenuItemCompat.isActionViewExpanded(mi)) { createMenuItem(menu, IMPORT_FAVOURITES_ID, R.string.shared_string_add_to_favorites, R.drawable.ic_action_plus, MenuItemCompat.SHOW_AS_ACTION_ALWAYS); - createMenuItem(menu, SHARE_ID, R.string.shared_string_share, R.drawable.ic_action_gshare_dark, MenuItemCompat.SHOW_AS_ACTION_ALWAYS); + createMenuItem(menu, SHARE_ID, R.string.shared_string_share, R.drawable.ic_action_gshare_dark, MenuItemCompat.SHOW_AS_ACTION_ALWAYS, true); createMenuItem(menu, SELECT_MAP_MARKERS_ID, R.string.select_map_markers, R.drawable.ic_action_flag, MenuItemCompat.SHOW_AS_ACTION_ALWAYS); createMenuItem(menu, DELETE_ID, R.string.shared_string_delete, R.drawable.ic_action_delete_dark, MenuItemCompat.SHOW_AS_ACTION_ALWAYS); } diff --git a/OsmAnd/src/net/osmand/plus/audionotes/ItemMenuBottomSheetDialogFragment.java b/OsmAnd/src/net/osmand/plus/audionotes/ItemMenuBottomSheetDialogFragment.java index 35bec8bcb0..feed27ec7e 100644 --- a/OsmAnd/src/net/osmand/plus/audionotes/ItemMenuBottomSheetDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/audionotes/ItemMenuBottomSheetDialogFragment.java @@ -1,8 +1,10 @@ package net.osmand.plus.audionotes; +import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.View; +import net.osmand.AndroidUtils; import net.osmand.plus.R; import net.osmand.plus.audionotes.AudioVideoNotesPlugin.Recording; import net.osmand.plus.base.MenuBottomSheetDialogFragment; @@ -49,8 +51,12 @@ public class ItemMenuBottomSheetDialogFragment extends MenuBottomSheetDialogFrag .create(); items.add(playItem); + Drawable shareIcon = getContentIcon(R.drawable.ic_action_gshare_dark); + if (shareIcon != null) { + AndroidUtils.getDrawableForDirection(requireContext(), shareIcon); + } BaseBottomSheetItem shareItem = new SimpleBottomSheetItem.Builder() - .setIcon(getContentIcon(R.drawable.ic_action_gshare_dark)) + .setIcon(shareIcon) .setTitle(getString(R.string.shared_string_share)) .setLayoutId(R.layout.bottom_sheet_item_simple) .setOnClickListener(new View.OnClickListener() { diff --git a/OsmAnd/src/net/osmand/plus/audionotes/NotesFragment.java b/OsmAnd/src/net/osmand/plus/audionotes/NotesFragment.java index 9ebd955757..09acdca8d8 100644 --- a/OsmAnd/src/net/osmand/plus/audionotes/NotesFragment.java +++ b/OsmAnd/src/net/osmand/plus/audionotes/NotesFragment.java @@ -3,6 +3,7 @@ package net.osmand.plus.audionotes; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; +import android.graphics.drawable.Drawable; import android.media.MediaScannerConnection; import android.net.Uri; import android.os.Build; @@ -21,10 +22,12 @@ import android.widget.ImageView; import android.widget.ListView; import android.widget.Toast; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.view.ActionMode; import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; import net.osmand.AndroidUtils; @@ -33,6 +36,7 @@ import net.osmand.GPXUtilities.GPXFile; import net.osmand.GPXUtilities.WptPt; import net.osmand.PlatformUtil; import net.osmand.data.PointDescription; +import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandPlugin; import net.osmand.plus.settings.backend.OsmandSettings.NotesSortByMode; import net.osmand.plus.R; @@ -163,14 +167,18 @@ public class NotesFragment extends OsmAndListFragment implements FavoritesFragme } @Override - public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { - menu.clear(); - if (AndroidUiHelper.isOrientationPortrait(getActivity())) { - menu = ((ActionBarProgressActivity) getActivity()).getClearToolbar(true).getMenu(); - } else { - ((ActionBarProgressActivity) getActivity()).getClearToolbar(false); + public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) { + FragmentActivity activity = getActivity(); + if (activity == null) { + return; } - ((ActionBarProgressActivity) getActivity()).updateListViewFooter(footerView); + menu.clear(); + if (AndroidUiHelper.isOrientationPortrait(activity)) { + menu = ((ActionBarProgressActivity) activity).getClearToolbar(true).getMenu(); + } else { + ((ActionBarProgressActivity) activity).getClearToolbar(false); + } + ((ActionBarProgressActivity) activity).updateListViewFooter(footerView); MenuItem item = menu.add(R.string.shared_string_sort).setIcon(R.drawable.ic_action_list_sort); item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { @@ -182,7 +190,9 @@ public class NotesFragment extends OsmAndListFragment implements FavoritesFragme }); item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); - item = menu.add(R.string.shared_string_share).setIcon(R.drawable.ic_action_gshare_dark); + Drawable shareIcon = AndroidUtils.getDrawableForDirection(activity, + getMyApplication().getUIUtilities().getIcon(R.drawable.ic_action_gshare_dark)); + item = menu.add(R.string.shared_string_share).setIcon(shareIcon); item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { @@ -377,13 +387,16 @@ public class NotesFragment extends OsmAndListFragment implements FavoritesFragme @Override public boolean onCreateActionMode(final ActionMode mode, Menu menu) { LOG.debug("onCreateActionMode"); + OsmandApplication app = getMyApplication(); if (type == MODE_SHARE) { listAdapter.insert(SHARE_LOCATION_FILE, 0); } switchSelectionMode(true); int titleRes = type == MODE_DELETE ? R.string.shared_string_delete_all : R.string.shared_string_share; int iconRes = type == MODE_DELETE ? R.drawable.ic_action_delete_dark : R.drawable.ic_action_gshare_dark; - MenuItem item = menu.add(titleRes).setIcon(iconRes); + Drawable icon = AndroidUtils.getDrawableForDirection(app, + app.getUIUtilities().getIcon(iconRes)); + MenuItem item = menu.add(titleRes).setIcon(icon); item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { diff --git a/OsmAnd/src/net/osmand/plus/base/OsmandExpandableListFragment.java b/OsmAnd/src/net/osmand/plus/base/OsmandExpandableListFragment.java index e28adac58e..2293f74ef8 100644 --- a/OsmAnd/src/net/osmand/plus/base/OsmandExpandableListFragment.java +++ b/OsmAnd/src/net/osmand/plus/base/OsmandExpandableListFragment.java @@ -15,6 +15,7 @@ import android.widget.ExpandableListView.OnChildClickListener; import androidx.annotation.NonNull; import androidx.core.view.MenuItemCompat; +import net.osmand.AndroidUtils; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; import net.osmand.plus.activities.OsmandActionBarActivity; @@ -83,10 +84,20 @@ public abstract class OsmandExpandableListFragment extends BaseOsmAndFragment } public MenuItem createMenuItem(Menu m, int id, int titleRes, int iconId, int menuItemType) { - Drawable d = iconId == 0 ? null : requireMyApplication().getUIUtilities().getIcon(iconId, - isLightActionBar() ? R.color.active_buttons_and_links_text_light : R.color.active_buttons_and_links_text_dark); + return createMenuItem(m, id, titleRes, iconId, menuItemType, false); + } + + public MenuItem createMenuItem(Menu m, int id, int titleRes, int iconId, int menuItemType, + boolean useLayoutDirectionForIcon) { + OsmandApplication app = requireMyApplication(); + Drawable d = iconId == 0 ? null : app.getUIUtilities().getIcon(iconId, isLightActionBar() ? + R.color.active_buttons_and_links_text_light : + R.color.active_buttons_and_links_text_dark); MenuItem menuItem = m.add(0, id, 0, titleRes); if (d != null) { + if (useLayoutDirectionForIcon) { + d = AndroidUtils.getDrawableForDirection(app, d); + } menuItem.setIcon(d); } menuItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { diff --git a/OsmAnd/src/net/osmand/plus/development/LogcatActivity.java b/OsmAnd/src/net/osmand/plus/development/LogcatActivity.java index 65f8ac210d..20f5c4ba4a 100644 --- a/OsmAnd/src/net/osmand/plus/development/LogcatActivity.java +++ b/OsmAnd/src/net/osmand/plus/development/LogcatActivity.java @@ -1,5 +1,6 @@ package net.osmand.plus.development; +import android.graphics.drawable.Drawable; import android.os.AsyncTask; import android.os.Bundle; import android.view.Gravity; @@ -15,6 +16,7 @@ import androidx.appcompat.app.ActionBar; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import net.osmand.AndroidUtils; import net.osmand.PlatformUtil; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; @@ -94,8 +96,10 @@ public class LogcatActivity extends ActionBarProgressActivity { @Override public boolean onCreateOptionsMenu(Menu menu) { + OsmandApplication app = getMyApplication(); + Drawable shareIcon = app.getUIUtilities().getIcon(R.drawable.ic_action_gshare_dark); MenuItem share = menu.add(0, SHARE_ID, 0, R.string.shared_string_export); - share.setIcon(R.drawable.ic_action_gshare_dark); + share.setIcon(AndroidUtils.getDrawableForDirection(app, shareIcon)); share.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); diff --git a/OsmAnd/src/net/osmand/plus/myplaces/AvailableGPXFragment.java b/OsmAnd/src/net/osmand/plus/myplaces/AvailableGPXFragment.java index 2e5bafeecd..fb317dc696 100644 --- a/OsmAnd/src/net/osmand/plus/myplaces/AvailableGPXFragment.java +++ b/OsmAnd/src/net/osmand/plus/myplaces/AvailableGPXFragment.java @@ -1492,8 +1492,9 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment implement return true; } }); + Drawable shareIcon = iconsCache.getThemedIcon((R.drawable.ic_action_gshare_dark)); item = optionsMenu.getMenu().add(R.string.shared_string_share) - .setIcon(iconsCache.getThemedIcon(R.drawable.ic_action_gshare_dark)); + .setIcon(AndroidUtils.getDrawableForDirection(app, shareIcon)); item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { diff --git a/OsmAnd/src/net/osmand/plus/myplaces/TrackPointFragment.java b/OsmAnd/src/net/osmand/plus/myplaces/TrackPointFragment.java index 274dd3a379..b33ff20497 100644 --- a/OsmAnd/src/net/osmand/plus/myplaces/TrackPointFragment.java +++ b/OsmAnd/src/net/osmand/plus/myplaces/TrackPointFragment.java @@ -393,7 +393,7 @@ public class TrackPointFragment extends OsmandExpandableListFragment implements if (!mi.isActionViewExpanded()) { - createMenuItem(menu, SHARE_ID, R.string.shared_string_share, R.drawable.ic_action_gshare_dark, MenuItem.SHOW_AS_ACTION_NEVER); + createMenuItem(menu, SHARE_ID, R.string.shared_string_share, R.drawable.ic_action_gshare_dark, MenuItem.SHOW_AS_ACTION_NEVER, true); GPXFile gpxFile = getGpx(); if (gpxFile != null && gpxFile.path != null) { final MapMarkersHelper markersHelper = app.getMapMarkersHelper(); diff --git a/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java b/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java index 71e229030c..8207d401ff 100644 --- a/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java +++ b/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java @@ -6,6 +6,7 @@ import android.content.DialogInterface; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.Matrix; +import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; @@ -152,7 +153,9 @@ public class TrackSegmentFragment extends OsmAndListFragment implements TrackBit GPXFile gpxFile = getGpx(); if (gpxFile != null) { if (gpxFile.path != null && !gpxFile.showCurrentTrack) { - MenuItem item = menu.add(R.string.shared_string_share).setIcon(R.drawable.ic_action_gshare_dark) + Drawable shareIcon = app.getUIUtilities().getIcon((R.drawable.ic_action_gshare_dark)); + MenuItem item = menu.add(R.string.shared_string_share) + .setIcon(AndroidUtils.getDrawableForDirection(app, shareIcon)) .setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { diff --git a/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsFragment.java b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsFragment.java index 4a7334bd0f..5d4dcff60f 100644 --- a/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsFragment.java +++ b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsFragment.java @@ -4,6 +4,7 @@ import android.app.Dialog; import android.app.ProgressDialog; import android.content.DialogInterface; import android.content.Intent; +import android.graphics.drawable.Drawable; import android.os.AsyncTask; import android.os.Build; import android.os.Bundle; @@ -248,7 +249,9 @@ public class OsmEditsFragment extends OsmAndListFragment implements SendPoiDialo }); item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); - item = menu.add(R.string.shared_string_export).setIcon(R.drawable.ic_action_gshare_dark); + Drawable shareIcon = getMyApplication().getUIUtilities().getIcon((R.drawable.ic_action_gshare_dark)); + item = menu.add(R.string.shared_string_export) + .setIcon(AndroidUtils.getDrawableForDirection(getMyApplication(), shareIcon)); item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { @Override diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/ChooseRouteFragment.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/ChooseRouteFragment.java index 1d925023bb..205993a316 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/ChooseRouteFragment.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/ChooseRouteFragment.java @@ -19,6 +19,7 @@ import android.view.ViewGroup; import android.view.animation.DecelerateInterpolator; import android.widget.FrameLayout; import android.widget.ImageButton; +import android.widget.ImageView; import android.widget.LinearLayout; import androidx.annotation.DrawableRes; @@ -485,6 +486,7 @@ public class ChooseRouteFragment extends BaseOsmAndFragment implements ContextMe } private void buildMenuButtons(@NonNull View view) { + OsmandApplication app = getMyApplication(); AppCompatImageView backButton = (AppCompatImageView) view.findViewById(R.id.back_button); AppCompatImageButton backButtonFlow = (AppCompatImageButton) view.findViewById(R.id.back_button_flow); OnClickListener backOnClick = new OnClickListener() { @@ -525,8 +527,13 @@ public class ChooseRouteFragment extends BaseOsmAndFragment implements ContextMe saveRoute.setOnClickListener(saveOnClick); saveRouteFlow.setOnClickListener(saveOnClick); - View shareRoute = view.findViewById(R.id.share_as_gpx); - View shareRouteFlow = view.findViewById(R.id.share_as_gpx_flow); + ImageView shareRoute = (ImageView) view.findViewById(R.id.share_as_gpx); + ImageView shareRouteFlow = (ImageView) view.findViewById(R.id.share_as_gpx_flow); + Drawable shareIcon = getIcon(R.drawable.ic_action_gshare_dark, nightMode ? + R.color.text_color_secondary_dark : R.color.text_color_secondary_light); + shareIcon = AndroidUtils.getDrawableForDirection(app, shareIcon); + shareRoute.setImageDrawable(shareIcon); + shareRouteFlow.setImageDrawable(shareIcon); OnClickListener shareOnClick = new OnClickListener() { @Override public void onClick(View v) { diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/MapRouteInfoMenu.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/MapRouteInfoMenu.java index 9e623cd7bd..1bbd71e61d 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/MapRouteInfoMenu.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/MapRouteInfoMenu.java @@ -967,6 +967,7 @@ public class MapRouteInfoMenu implements IRouteInformationListener, CardListener RoutingHelper routingHelper = app.getRoutingHelper(); final ApplicationMode applicationMode = routingHelper.getAppMode(); final RouteMenuAppModes mode = app.getRoutingOptionsHelper().getRouteMenuAppMode(applicationMode); + boolean isLayoutRTL = AndroidUtils.isLayoutRtl(app); updateControlButtons(mapActivity, mainView); LinearLayout optionsButton = (LinearLayout) mainView.findViewById(R.id.map_options_route_button); @@ -984,7 +985,9 @@ public class MapRouteInfoMenu implements IRouteInformationListener, CardListener clickRouteParams(); } }); - AndroidUtils.setBackground(app, optionsButton, nightMode, R.drawable.route_info_trans_gradient_light, R.drawable.route_info_trans_gradient_dark); + AndroidUtils.setBackground(app, optionsButton, nightMode, + isLayoutRTL ? R.drawable.route_info_trans_gradient_left_light : R.drawable.route_info_trans_gradient_light, + isLayoutRTL ? R.drawable.route_info_trans_gradient_left_dark :R.drawable.route_info_trans_gradient_dark); HorizontalScrollView scrollView = mainView.findViewById(R.id.route_options_scroll_container); scrollView.setVerticalScrollBarEnabled(false); diff --git a/OsmAnd/src/net/osmand/plus/search/QuickSearchDialogFragment.java b/OsmAnd/src/net/osmand/plus/search/QuickSearchDialogFragment.java index 673af0c9e1..0ef39d0299 100644 --- a/OsmAnd/src/net/osmand/plus/search/QuickSearchDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/search/QuickSearchDialogFragment.java @@ -242,6 +242,7 @@ public class QuickSearchDialogFragment extends DialogFragment implements OsmAndC Bundle savedInstanceState) { final MapActivity mapActivity = getMapActivity(); final View view = inflater.inflate(R.layout.search_dialog_fragment, container, false); + final boolean nightMode = !app.getSettings().isLightContent(); toolbarController = new QuickSearchToolbarController(); toolbarController.setOnBackButtonClickListener(new OnClickListener() { @@ -483,7 +484,12 @@ public class QuickSearchDialogFragment extends DialogFragment implements OsmAndC ); titleEdit = (TextView) view.findViewById(R.id.titleEdit); - view.findViewById(R.id.shareButton).setOnClickListener( + Drawable shareIcon = app.getUIUtilities().getIcon(R.drawable.ic_action_gshare_dark, + nightMode ? R.color.text_color_secondary_dark : R.color.text_color_secondary_light); + shareIcon = AndroidUtils.getDrawableForDirection(app, shareIcon); + ImageView shareButton = (ImageView) view.findViewById(R.id.shareButton); + shareButton.setImageDrawable(shareIcon); + shareButton.setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { diff --git a/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java b/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java index c308dce187..545804fd23 100644 --- a/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java @@ -396,6 +396,7 @@ public class MapControlsLayer extends OsmandMapLayer { routePlanningBtn = createHudButton(routePlanButton, R.drawable.ic_action_gdirections_dark, ROUTE_PLANNING_HUD_ID) .setIconColorId(R.color.map_button_icon_color_light, R.color.map_button_icon_color_dark) .setBg(R.drawable.btn_round, R.drawable.btn_round_night); + routePlanningBtn.flipIconForRtl = true; controls.add(routePlanningBtn); routePlanButton.setOnClickListener(new View.OnClickListener() { @Override @@ -990,6 +991,7 @@ public class MapControlsLayer extends OsmandMapLayer { int resClrLight = R.color.map_button_icon_color_light; int resClrDark = R.color.map_button_icon_color_dark; String id; + boolean flipIconForRtl; boolean nightMode = false; boolean f = true; @@ -1158,6 +1160,9 @@ public class MapControlsLayer extends OsmandMapLayer { d = ctx.getUIUtilities().getIcon(resLightId); } else if (resId != 0) { d = ctx.getUIUtilities().getIcon(resId, nightMode ? resClrDark : resClrLight); + if (flipIconForRtl) { + d = AndroidUtils.getDrawableForDirection(ctx, d); + } } if (iv instanceof ImageView) { if (compass) { From dafbd22b5d963dedf798459367e45d02c6271733 Mon Sep 17 00:00:00 2001 From: Nazar-Kutz Date: Thu, 11 Jun 2020 10:34:54 +0300 Subject: [PATCH 015/107] RTL - Step 3 (Menu controller) --- .../AudioVideoNoteMenuController.java | 8 +-- .../MapContextMenuFragment.java | 63 +++++++++++-------- .../plus/mapcontextmenu/MenuController.java | 30 ++++----- .../controllers/AMapPointMenuController.java | 4 +- .../controllers/AmenityMenuController.java | 2 +- .../ImpassibleRoadsMenuController.java | 3 +- .../controllers/MapDataMenuController.java | 8 +-- .../controllers/MapMarkerMenuController.java | 4 +- .../PointDescriptionMenuController.java | 2 +- .../TargetPointMenuController.java | 4 +- .../controllers/TransportRouteController.java | 8 +-- .../plus/osmedit/EditPOIMenuController.java | 4 +- .../plus/osmedit/OsmBugMenuController.java | 4 +- .../ParkingPositionMenuController.java | 2 +- .../menu/WikivoyageWptPtMenuController.java | 2 +- 15 files changed, 78 insertions(+), 70 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNoteMenuController.java b/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNoteMenuController.java index 30c0b1f7ea..f2f31e3a26 100644 --- a/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNoteMenuController.java +++ b/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNoteMenuController.java @@ -71,7 +71,7 @@ public class AudioVideoNoteMenuController extends MenuController { } }; rightTitleButtonController.caption = mapActivity.getString(R.string.shared_string_delete); - rightTitleButtonController.leftIconId = R.drawable.ic_action_delete_dark; + rightTitleButtonController.startIconId = R.drawable.ic_action_delete_dark; } updateData(); @@ -164,7 +164,7 @@ public class AudioVideoNoteMenuController extends MenuController { if (!mRecording.isPhoto()) { if (mPlugin.isPlaying(mRecording)) { leftTitleButtonController.caption = mapActivity.getString(R.string.shared_string_control_stop); - leftTitleButtonController.leftIconId = R.drawable.ic_action_rec_stop; + leftTitleButtonController.startIconId = R.drawable.ic_action_rec_stop; int pos = mPlugin.getPlayingPosition(); String durationStr; if (pos == -1) { @@ -177,14 +177,14 @@ public class AudioVideoNoteMenuController extends MenuController { rightTitleButtonController.visible = false; } else { leftTitleButtonController.caption = mapActivity.getString(R.string.recording_context_menu_play); - leftTitleButtonController.leftIconId = R.drawable.ic_play_dark; + leftTitleButtonController.startIconId = R.drawable.ic_play_dark; String durationStr = mRecording.getPlainDuration(accessibilityEnabled); leftTitleButtonController.needRightText = true; leftTitleButtonController.rightTextCaption = "— " + durationStr; } } else { leftTitleButtonController.caption = mapActivity.getString(R.string.recording_context_menu_show); - leftTitleButtonController.leftIconId = R.drawable.ic_action_view; + leftTitleButtonController.startIconId = R.drawable.ic_action_view; } } diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java index e84811c376..9080f88ca6 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java @@ -628,7 +628,8 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo } Drawable drawable = getIcon(iconResId, bottomButtonsColor); directionsButton.setTextColor(ContextCompat.getColor(mapActivity, bottomButtonsColor)); - AndroidUtils.setCompoundDrawablesWithIntrinsicBounds(directionsButton, null, null, drawable, null); + AndroidUtils.setCompoundDrawablesWithIntrinsicBounds( + directionsButton, null, null, drawable, null); int contentPaddingHalf = (int) getResources().getDimension(R.dimen.content_padding_half); directionsButton.setCompoundDrawablePadding(contentPaddingHalf); directionsButton.setOnClickListener(new View.OnClickListener() { @@ -1147,11 +1148,12 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo setupButton(leftTitleButtonView, leftTitleButtonController.enabled, title); if (leftTitleButtonController.visible) { leftTitleButtonView.setVisibility(View.VISIBLE); - Drawable leftIcon = leftTitleButtonController.getLeftIcon(); - Drawable rightIcon = leftTitleButtonController.getRightIcon(); - leftTitleButton.setCompoundDrawablesWithIntrinsicBounds(leftIcon, null, rightIcon, null); + Drawable startIcon = leftTitleButtonController.getStartIcon(); + Drawable endIcon = leftTitleButtonController.getEndIcon(); + AndroidUtils.setCompoundDrawablesWithIntrinsicBounds( + leftTitleButton, startIcon, null, endIcon, null); leftTitleButton.setCompoundDrawablePadding(view.getResources().getDimensionPixelSize(R.dimen.content_padding_half)); - ((LinearLayout) leftTitleButtonView).setGravity(rightIcon != null ? Gravity.END : Gravity.START); + ((LinearLayout) leftTitleButtonView).setGravity(endIcon != null ? Gravity.END : Gravity.START); } else { leftTitleButtonView.setVisibility(View.INVISIBLE); } @@ -1166,11 +1168,12 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo setupButton(rightTitleButtonView, rightTitleButtonController.enabled, rightTitleButtonController.caption); rightTitleButtonView.setVisibility(rightTitleButtonController.visible ? View.VISIBLE : View.INVISIBLE); - Drawable leftIcon = rightTitleButtonController.getLeftIcon(); - Drawable rightIcon = rightTitleButtonController.getRightIcon(); - rightTitleButton.setCompoundDrawablesWithIntrinsicBounds(leftIcon, null, rightIcon, null); + Drawable startIcon = rightTitleButtonController.getStartIcon(); + Drawable endIcon = rightTitleButtonController.getEndIcon(); + AndroidUtils.setCompoundDrawablesWithIntrinsicBounds( + rightTitleButton, startIcon, null, endIcon, null); rightTitleButton.setCompoundDrawablePadding(view.getResources().getDimensionPixelSize(R.dimen.content_padding_half)); - ((LinearLayout) rightTitleButtonView).setGravity(rightIcon != null ? Gravity.END : Gravity.START); + ((LinearLayout) rightTitleButtonView).setGravity(endIcon != null ? Gravity.END : Gravity.START); } else { rightTitleButtonView.setVisibility(View.INVISIBLE); } @@ -1182,11 +1185,12 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo setupButton(bottomTitleButtonView, bottomTitleButtonController.enabled, bottomTitleButtonController.caption); bottomTitleButtonView.setVisibility(bottomTitleButtonController.visible ? View.VISIBLE : View.GONE); - Drawable leftIcon = bottomTitleButtonController.getLeftIcon(); - Drawable rightIcon = bottomTitleButtonController.getRightIcon(); - bottomTitleButton.setCompoundDrawablesWithIntrinsicBounds(leftIcon, null, rightIcon, null); + Drawable startIcon = bottomTitleButtonController.getStartIcon(); + Drawable endIcon = bottomTitleButtonController.getEndIcon(); + AndroidUtils.setCompoundDrawablesWithIntrinsicBounds( + bottomTitleButton, startIcon, null, endIcon, null); bottomTitleButton.setCompoundDrawablePadding(view.getResources().getDimensionPixelSize(R.dimen.content_padding_half)); - ((LinearLayout) bottomTitleButtonView).setGravity(rightIcon != null ? Gravity.END : Gravity.START); + ((LinearLayout) bottomTitleButtonView).setGravity(endIcon != null ? Gravity.END : Gravity.START); } else { bottomTitleButtonView.setVisibility(View.GONE); } @@ -1206,11 +1210,12 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo setupButton(leftDownloadButtonView, leftDownloadButtonController.enabled, leftDownloadButtonController.caption); leftDownloadButtonView.setVisibility(leftDownloadButtonController.visible ? View.VISIBLE : View.INVISIBLE); - Drawable leftIcon = leftDownloadButtonController.getLeftIcon(); - Drawable rightIcon = leftDownloadButtonController.getRightIcon(); - leftDownloadButton.setCompoundDrawablesWithIntrinsicBounds(leftIcon, null, rightIcon, null); + Drawable startIcon = leftDownloadButtonController.getStartIcon(); + Drawable endIcon = leftDownloadButtonController.getEndIcon(); + AndroidUtils.setCompoundDrawablesWithIntrinsicBounds( + leftDownloadButton, startIcon, null, endIcon, null); leftDownloadButton.setCompoundDrawablePadding(view.getResources().getDimensionPixelSize(R.dimen.content_padding_half)); - ((LinearLayout) leftDownloadButtonView).setGravity(rightIcon != null ? Gravity.END : Gravity.START); + ((LinearLayout) leftDownloadButtonView).setGravity(endIcon != null ? Gravity.END : Gravity.START); } else { leftDownloadButtonView.setVisibility(View.INVISIBLE); } @@ -1222,11 +1227,12 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo setupButton(rightDownloadButtonView, rightDownloadButtonController.enabled, rightDownloadButtonController.caption); rightDownloadButtonView.setVisibility(rightDownloadButtonController.visible ? View.VISIBLE : View.INVISIBLE); - Drawable leftIcon = rightDownloadButtonController.getLeftIcon(); - Drawable rightIcon = rightDownloadButtonController.getRightIcon(); - rightDownloadButton.setCompoundDrawablesWithIntrinsicBounds(leftIcon, null, rightIcon, null); + Drawable startIcon = rightDownloadButtonController.getStartIcon(); + Drawable endIcon = rightDownloadButtonController.getEndIcon(); + AndroidUtils.setCompoundDrawablesWithIntrinsicBounds( + rightDownloadButton, startIcon, null, endIcon, null); rightDownloadButton.setCompoundDrawablePadding(view.getResources().getDimensionPixelSize(R.dimen.content_padding_half)); - ((LinearLayout) rightDownloadButtonView).setGravity(rightIcon != null ? Gravity.END : Gravity.START); + ((LinearLayout) rightDownloadButtonView).setGravity(endIcon != null ? Gravity.END : Gravity.START); } else { rightDownloadButtonView.setVisibility(View.INVISIBLE); } @@ -1292,11 +1298,12 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo setupButton(buttonView, buttonController.enabled, buttonController.caption); buttonView.setVisibility(buttonController.visible ? View.VISIBLE : View.INVISIBLE); - Drawable leftIcon = buttonController.getLeftIcon(); - Drawable rightIcon = buttonController.getRightIcon(); - buttonText.setCompoundDrawablesWithIntrinsicBounds(leftIcon, null, rightIcon, null); + Drawable startIcon = buttonController.getStartIcon(); + Drawable endIcon = buttonController.getEndIcon(); + AndroidUtils.setCompoundDrawablesWithIntrinsicBounds( + buttonText, startIcon, null, endIcon, null); buttonText.setCompoundDrawablePadding(view.getResources().getDimensionPixelSize(R.dimen.content_padding_half)); - ((LinearLayout) buttonView).setGravity(rightIcon != null ? Gravity.END : Gravity.START); + ((LinearLayout) buttonView).setGravity(endIcon != null ? Gravity.END : Gravity.START); buttonView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -1805,7 +1812,8 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo if (!Algorithms.isEmpty(typeStr)) { line2Str.append(typeStr); Drawable icon = menu.getTypeIcon(); - line2.setCompoundDrawablesWithIntrinsicBounds(icon, null, null, null); + AndroidUtils.setCompoundDrawablesWithIntrinsicBounds( + line2, icon, null, null, null); line2.setCompoundDrawablePadding(dpToPx(5f)); } if (!Algorithms.isEmpty(streetStr) && !menu.displayStreetNameInTitle()) { @@ -1830,7 +1838,8 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo line3.setVisibility(View.VISIBLE); line3.setText(subtypeStr); Drawable icon = menu.getSubtypeIcon(); - line3.setCompoundDrawablesWithIntrinsicBounds(icon, null, null, null); + AndroidUtils.setCompoundDrawablesWithIntrinsicBounds( + line3, icon, null, null, null); line3.setCompoundDrawablePadding(dpToPx(5f)); } diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuController.java index 5ce2472c63..10189546ac 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuController.java @@ -659,7 +659,7 @@ public abstract class MenuController extends BaseMenuController implements Colla } leftDownloadButtonController.visible = !downloaded; - leftDownloadButtonController.leftIconId = R.drawable.ic_action_import; + leftDownloadButtonController.startIconId = R.drawable.ic_action_import; boolean internetConnectionAvailable = mapActivity.getMyApplication().getSettings().isInternetConnectionAvailable(); @@ -712,33 +712,33 @@ public abstract class MenuController extends BaseMenuController implements Colla public abstract class TitleButtonController { public String caption = ""; - public int leftIconId = 0; - public int rightIconId = 0; + public int startIconId = 0; + public int endIconId = 0; public boolean needRightText = false; public String rightTextCaption = ""; public boolean visible = true; public boolean tintIcon = true; - public Drawable leftIcon; - public Drawable rightIcon; + public Drawable startIcon; + public Drawable endIcon; public boolean enabled = true; @Nullable - public Drawable getLeftIcon() { + public Drawable getStartIcon() { return getIconDrawable(true); } @Nullable - public Drawable getRightIcon() { + public Drawable getEndIcon() { return getIconDrawable(false); } @Nullable - private Drawable getIconDrawable(boolean left) { - Drawable drawable = left ? leftIcon : rightIcon; + private Drawable getIconDrawable(boolean start) { + Drawable drawable = start ? startIcon : endIcon; if (drawable != null) { return drawable; } - int resId = left ? leftIconId : rightIconId; + int resId = start ? startIconId : endIconId; if (resId != 0) { if (tintIcon) { return enabled ? getNormalIcon(resId) : getDisabledIcon(resId); @@ -751,11 +751,11 @@ public abstract class MenuController extends BaseMenuController implements Colla public void clearIcon(boolean left) { if (left) { - leftIcon = null; - leftIconId = 0; + startIcon = null; + startIconId = 0; } else { - rightIcon = null; - rightIconId = 0; + endIcon = null; + endIconId = 0; } } @@ -893,7 +893,7 @@ public abstract class MenuController extends BaseMenuController implements Colla }; leftDownloadButtonController.caption = downloadRegion != null ? downloadRegion.getLocaleName() : mapActivity.getString(R.string.shared_string_download); - leftDownloadButtonController.leftIconId = R.drawable.ic_action_import; + leftDownloadButtonController.startIconId = R.drawable.ic_action_import; titleProgressController = new TitleProgressController() { @Override diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/AMapPointMenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/AMapPointMenuController.java index 020041a10d..73a43404a7 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/AMapPointMenuController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/AMapPointMenuController.java @@ -201,8 +201,8 @@ public class AMapPointMenuController extends MenuController { OsmandApplication app = mapActivity.getMyApplication(); titleButtonController.caption = contextMenuButton.getLeftTextCaption(); titleButtonController.rightTextCaption = contextMenuButton.getRightTextCaption(); - titleButtonController.leftIconId = AndroidUtils.getDrawableId(app, contextMenuButton.getLeftIconName()); - titleButtonController.rightIconId = AndroidUtils.getDrawableId(app, contextMenuButton.getRightIconName()); + titleButtonController.startIconId = AndroidUtils.getDrawableId(app, contextMenuButton.getLeftIconName()); + titleButtonController.endIconId = AndroidUtils.getDrawableId(app, contextMenuButton.getRightIconName()); titleButtonController.enabled = contextMenuButton.isEnabled(); titleButtonController.tintIcon = contextMenuButton.isTintIcon(); diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/AmenityMenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/AmenityMenuController.java index 17336f769e..3e6ad7083c 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/AmenityMenuController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/AmenityMenuController.java @@ -79,7 +79,7 @@ public class AmenityMenuController extends MenuController { } }; leftTitleButtonController.caption = mapActivity.getString(R.string.context_menu_read_article); - leftTitleButtonController.leftIconId = R.drawable.ic_action_read_text; + leftTitleButtonController.startIconId = R.drawable.ic_action_read_text; } openingHoursInfo = OpeningHoursParser.getInfo(amenity.getOpeningHours()); diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/ImpassibleRoadsMenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/ImpassibleRoadsMenuController.java index 9bad770437..2d29f217ff 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/ImpassibleRoadsMenuController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/ImpassibleRoadsMenuController.java @@ -4,7 +4,6 @@ import android.graphics.drawable.Drawable; import androidx.annotation.NonNull; import androidx.appcompat.content.res.AppCompatResources; -import androidx.core.content.ContextCompat; import net.osmand.data.PointDescription; import net.osmand.plus.OsmandApplication; @@ -41,7 +40,7 @@ public class ImpassibleRoadsMenuController extends MenuController { } }; leftTitleButtonController.caption = mapActivity.getString(R.string.shared_string_remove); - leftTitleButtonController.leftIconId = R.drawable.ic_action_delete_dark; + leftTitleButtonController.startIconId = R.drawable.ic_action_delete_dark; } @Override diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/MapDataMenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/MapDataMenuController.java index 8bde5fbe6d..9bfde65368 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/MapDataMenuController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/MapDataMenuController.java @@ -124,7 +124,7 @@ public class MapDataMenuController extends MenuController { } }; leftDownloadButtonController.caption = mapActivity.getString(R.string.shared_string_download); - leftDownloadButtonController.leftIconId = R.drawable.ic_action_import; + leftDownloadButtonController.startIconId = R.drawable.ic_action_import; rightDownloadButtonController = new TitleButtonController() { @Override @@ -154,7 +154,7 @@ public class MapDataMenuController extends MenuController { } }; rightDownloadButtonController.caption = mapActivity.getString(R.string.download_select_map_types); - rightDownloadButtonController.leftIconId = R.drawable.ic_plugin_srtm; + rightDownloadButtonController.startIconId = R.drawable.ic_plugin_srtm; bottomTitleButtonController = new TitleButtonController() { @Override @@ -171,7 +171,7 @@ public class MapDataMenuController extends MenuController { } }; bottomTitleButtonController.caption = mapActivity.getString(R.string.shared_string_delete); - bottomTitleButtonController.leftIconId = R.drawable.ic_action_delete_dark; + bottomTitleButtonController.startIconId = R.drawable.ic_action_delete_dark; titleProgressController = new TitleProgressController() { @Override @@ -396,7 +396,7 @@ public class MapDataMenuController extends MenuController { } leftDownloadButtonController.visible = true; - leftDownloadButtonController.leftIconId = R.drawable.ic_action_import; + leftDownloadButtonController.startIconId = R.drawable.ic_action_import; if (backuped) { leftDownloadButtonController.caption = mapActivity.getString(R.string.local_index_mi_restore); } else if (indexItem != null) { diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/MapMarkerMenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/MapMarkerMenuController.java index 5641f125ec..3cdf3398a6 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/MapMarkerMenuController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/MapMarkerMenuController.java @@ -48,7 +48,7 @@ public class MapMarkerMenuController extends MenuController { } }; leftTitleButtonController.caption = mapActivity.getString(mapMarker.history ? R.string.shared_string_restore : R.string.mark_passed); - leftTitleButtonController.leftIcon = createPassedIcon(getPassedIconBgNormalColorId()); + leftTitleButtonController.startIcon = createPassedIcon(getPassedIconBgNormalColorId()); if (!mapMarker.history) { rightTitleButtonController = new TitleButtonController() { @@ -69,7 +69,7 @@ public class MapMarkerMenuController extends MenuController { } }; rightTitleButtonController.caption = mapActivity.getString(R.string.make_active); - rightTitleButtonController.leftIcon = createShowOnTopbarIcon(getDeviceTopNormalColorId()); + rightTitleButtonController.startIcon = createShowOnTopbarIcon(getDeviceTopNormalColorId()); } } diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/PointDescriptionMenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/PointDescriptionMenuController.java index 114a6fb6f1..7578fa7d5a 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/PointDescriptionMenuController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/PointDescriptionMenuController.java @@ -39,7 +39,7 @@ public class PointDescriptionMenuController extends MenuController { } }; leftTitleButtonController.caption = mapActivity.getString(R.string.avoid_road); - leftTitleButtonController.leftIconId = R.drawable.ic_action_road_works_dark; + leftTitleButtonController.startIconId = R.drawable.ic_action_road_works_dark; } } diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/TargetPointMenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/TargetPointMenuController.java index 5cf76ab694..ac887edc89 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/TargetPointMenuController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/TargetPointMenuController.java @@ -52,10 +52,10 @@ public class TargetPointMenuController extends MenuController { }; if (nav && intermediatePointsCount == 0 && !targetPoint.start) { leftTitleButtonController.caption = mapActivity.getString(R.string.cancel_navigation); - leftTitleButtonController.leftIconId = R.drawable.ic_action_remove_dark; + leftTitleButtonController.startIconId = R.drawable.ic_action_remove_dark; } else { leftTitleButtonController.caption = mapActivity.getString(R.string.shared_string_remove); - leftTitleButtonController.leftIconId = R.drawable.ic_action_delete_dark; + leftTitleButtonController.startIconId = R.drawable.ic_action_delete_dark; } } diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/TransportRouteController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/TransportRouteController.java index 585ba61f62..7d9fc87d32 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/TransportRouteController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/TransportRouteController.java @@ -82,11 +82,11 @@ public class TransportRouteController extends MenuController { rightTitleButtonController.caption = mapActivity.getString(R.string.shared_string_next); if (AndroidUtils.isLayoutRtl(mapActivity)) { - leftTitleButtonController.rightIconId = R.drawable.ic_arrow_forward; - rightTitleButtonController.leftIconId = R.drawable.ic_arrow_back; + leftTitleButtonController.endIconId = R.drawable.ic_arrow_forward; + rightTitleButtonController.startIconId = R.drawable.ic_arrow_back; } else { - leftTitleButtonController.leftIconId = R.drawable.ic_arrow_back; - rightTitleButtonController.rightIconId = R.drawable.ic_arrow_forward; + leftTitleButtonController.startIconId = R.drawable.ic_arrow_back; + rightTitleButtonController.endIconId = R.drawable.ic_arrow_forward; } } diff --git a/OsmAnd/src/net/osmand/plus/osmedit/EditPOIMenuController.java b/OsmAnd/src/net/osmand/plus/osmedit/EditPOIMenuController.java index b8146e5b7f..2511dafdf2 100644 --- a/OsmAnd/src/net/osmand/plus/osmedit/EditPOIMenuController.java +++ b/OsmAnd/src/net/osmand/plus/osmedit/EditPOIMenuController.java @@ -46,7 +46,7 @@ public class EditPOIMenuController extends MenuController { } }; leftTitleButtonController.caption = mapActivity.getString(R.string.shared_string_upload); - leftTitleButtonController.leftIconId = R.drawable.ic_action_export; + leftTitleButtonController.startIconId = R.drawable.ic_action_export; rightTitleButtonController = new TitleButtonController() { @Override @@ -80,7 +80,7 @@ public class EditPOIMenuController extends MenuController { } }; rightTitleButtonController.caption = mapActivity.getString(R.string.shared_string_delete); - rightTitleButtonController.leftIconId = R.drawable.ic_action_delete_dark; + rightTitleButtonController.startIconId = R.drawable.ic_action_delete_dark; categoryDescr = getCategoryDescr(); diff --git a/OsmAnd/src/net/osmand/plus/osmedit/OsmBugMenuController.java b/OsmAnd/src/net/osmand/plus/osmedit/OsmBugMenuController.java index 3692da70f8..97ffee1b2f 100644 --- a/OsmAnd/src/net/osmand/plus/osmedit/OsmBugMenuController.java +++ b/OsmAnd/src/net/osmand/plus/osmedit/OsmBugMenuController.java @@ -42,7 +42,7 @@ public class OsmBugMenuController extends MenuController { } else { leftTitleButtonController.caption = mapActivity.getString(R.string.poi_dialog_reopen); } - leftTitleButtonController.leftIconId = R.drawable.ic_action_note_dark; + leftTitleButtonController.startIconId = R.drawable.ic_action_note_dark; rightTitleButtonController = new TitleButtonController() { @Override @@ -54,7 +54,7 @@ public class OsmBugMenuController extends MenuController { } }; rightTitleButtonController.caption = mapActivity.getString(R.string.shared_string_close); - rightTitleButtonController.leftIconId = R.drawable.ic_action_remove_dark; + rightTitleButtonController.startIconId = R.drawable.ic_action_remove_dark; updateData(); } diff --git a/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingPositionMenuController.java b/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingPositionMenuController.java index a0bbd48bf8..97563be6b1 100644 --- a/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingPositionMenuController.java +++ b/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingPositionMenuController.java @@ -34,7 +34,7 @@ public class ParkingPositionMenuController extends MenuController { } }; leftTitleButtonController.caption = mapActivity.getString(R.string.shared_string_delete); - leftTitleButtonController.leftIconId = R.drawable.ic_action_delete_dark; + leftTitleButtonController.startIconId = R.drawable.ic_action_delete_dark; } private void buildParkingDescription(MapActivity mapActivity) { diff --git a/OsmAnd/src/net/osmand/plus/wikivoyage/menu/WikivoyageWptPtMenuController.java b/OsmAnd/src/net/osmand/plus/wikivoyage/menu/WikivoyageWptPtMenuController.java index b923e617a3..1ea04be8b4 100644 --- a/OsmAnd/src/net/osmand/plus/wikivoyage/menu/WikivoyageWptPtMenuController.java +++ b/OsmAnd/src/net/osmand/plus/wikivoyage/menu/WikivoyageWptPtMenuController.java @@ -32,7 +32,7 @@ public class WikivoyageWptPtMenuController extends WptPtMenuController { } }; leftTitleButtonController.caption = mapActivity.getString(R.string.context_menu_read_article); - leftTitleButtonController.leftIconId = R.drawable.ic_action_read_text; + leftTitleButtonController.startIconId = R.drawable.ic_action_read_text; } private static TravelArticle getTravelArticle(@NonNull MapActivity mapActivity, @NonNull WptPt wpt) { From 312d5775ee6949e542a4b2c6d90bdd356861052c Mon Sep 17 00:00:00 2001 From: Nazar-Kutz Date: Thu, 11 Jun 2020 10:41:14 +0300 Subject: [PATCH 016/107] rename useLayoutDirectionForIcon -> flipIconForRtl --- .../net/osmand/plus/base/OsmandExpandableListFragment.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/base/OsmandExpandableListFragment.java b/OsmAnd/src/net/osmand/plus/base/OsmandExpandableListFragment.java index 2293f74ef8..cc2f0b47af 100644 --- a/OsmAnd/src/net/osmand/plus/base/OsmandExpandableListFragment.java +++ b/OsmAnd/src/net/osmand/plus/base/OsmandExpandableListFragment.java @@ -88,14 +88,14 @@ public abstract class OsmandExpandableListFragment extends BaseOsmAndFragment } public MenuItem createMenuItem(Menu m, int id, int titleRes, int iconId, int menuItemType, - boolean useLayoutDirectionForIcon) { + boolean flipIconForRtl) { OsmandApplication app = requireMyApplication(); Drawable d = iconId == 0 ? null : app.getUIUtilities().getIcon(iconId, isLightActionBar() ? R.color.active_buttons_and_links_text_light : R.color.active_buttons_and_links_text_dark); MenuItem menuItem = m.add(0, id, 0, titleRes); if (d != null) { - if (useLayoutDirectionForIcon) { + if (flipIconForRtl) { d = AndroidUtils.getDrawableForDirection(app, d); } menuItem.setIcon(d); From 0dc68c5a5da33e9baef50324a6f119a9889adb74 Mon Sep 17 00:00:00 2001 From: veliymolfar Date: Thu, 11 Jun 2020 11:33:36 +0300 Subject: [PATCH 017/107] small refactor --- .../mapsource/InputZoomLevelsBottomSheet.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/mapsource/InputZoomLevelsBottomSheet.java b/OsmAnd/src/net/osmand/plus/mapsource/InputZoomLevelsBottomSheet.java index eaada674a3..9601c660a0 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/InputZoomLevelsBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/InputZoomLevelsBottomSheet.java @@ -50,7 +50,7 @@ public class InputZoomLevelsBottomSheet extends MenuBottomSheetDialogFragment { private int dialogDescrRes; private int minZoom; private int maxZoom; - private boolean showWarning; + private boolean newMapSource; public static void showInstance(@NonNull FragmentManager fm, @Nullable Fragment targetFragment, @@ -58,14 +58,14 @@ public class InputZoomLevelsBottomSheet extends MenuBottomSheetDialogFragment { int dialogDescr, int minZoom, int maxZoom, - boolean showWarning) { + boolean newMapSource) { InputZoomLevelsBottomSheet bottomSheet = new InputZoomLevelsBottomSheet(); bottomSheet.setTargetFragment(targetFragment, 0); bottomSheet.setSliderDescrRes(sliderDescr); bottomSheet.setDialogDescrRes(dialogDescr); bottomSheet.setMinZoom(Math.max(minZoom, SLIDER_FROM)); bottomSheet.setMaxZoom(Math.min(maxZoom, SLIDER_TO)); - bottomSheet.setShowWarning(showWarning); + bottomSheet.setNewMapSource(newMapSource); bottomSheet.show(fm, TAG); } @@ -77,7 +77,7 @@ public class InputZoomLevelsBottomSheet extends MenuBottomSheetDialogFragment { maxZoom = savedInstanceState.getInt(MAX_ZOOM_KEY); dialogDescrRes = savedInstanceState.getInt(DIALOG_DESCR_RES_KEY); sliderDescrRes = savedInstanceState.getInt(SLIDER_DESCR_RES_KEY); - showWarning = savedInstanceState.getBoolean(SHOW_WARNING_KEY); + newMapSource = savedInstanceState.getBoolean(SHOW_WARNING_KEY); } LayoutInflater inflater = UiUtilities.getMaterialInflater(app, nightMode); TitleItem titleItem = new TitleItem(getString(R.string.shared_string_zoom_levels)); @@ -141,13 +141,13 @@ public class InputZoomLevelsBottomSheet extends MenuBottomSheetDialogFragment { outState.putInt(MAX_ZOOM_KEY, maxZoom); outState.putInt(SLIDER_DESCR_RES_KEY, sliderDescrRes); outState.putInt(DIALOG_DESCR_RES_KEY, dialogDescrRes); - outState.putBoolean(SHOW_WARNING_KEY, showWarning); + outState.putBoolean(SHOW_WARNING_KEY, newMapSource); super.onSaveInstanceState(outState); } @Override protected void onRightBottomButtonClick() { - if (showWarning) { + if (newMapSource) { showWarningDialog(); } else { applySelectedZooms(); @@ -220,8 +220,8 @@ public class InputZoomLevelsBottomSheet extends MenuBottomSheetDialogFragment { this.maxZoom = maxZoom; } - public void setShowWarning(boolean showWarning) { - this.showWarning = showWarning; + public void setNewMapSource(boolean newMapSource) { + this.newMapSource = newMapSource; } public interface OnZoomSetListener { From 2fc466f546a5ed8fc34eb4aa38cb415328f30cfe Mon Sep 17 00:00:00 2001 From: veliymolfar Date: Thu, 11 Jun 2020 12:10:08 +0300 Subject: [PATCH 018/107] small refactor --- .../plus/mapsource/EditMapSourceDialogFragment.java | 2 +- .../plus/mapsource/InputZoomLevelsBottomSheet.java | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java index 89f229c576..252fbe3d3f 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java @@ -408,7 +408,7 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment InputZoomLevelsBottomSheet.showInstance( fm, EditMapSourceDialogFragment.this, R.string.map_source_zoom_levels, R.string.map_source_zoom_levels_descr, - minZoom, maxZoom, editedLayerName != null + minZoom, maxZoom, editedLayerName == null ); break; case EXPIRE_TIME: diff --git a/OsmAnd/src/net/osmand/plus/mapsource/InputZoomLevelsBottomSheet.java b/OsmAnd/src/net/osmand/plus/mapsource/InputZoomLevelsBottomSheet.java index 9601c660a0..2c24d8a95d 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/InputZoomLevelsBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/InputZoomLevelsBottomSheet.java @@ -41,7 +41,7 @@ public class InputZoomLevelsBottomSheet extends MenuBottomSheetDialogFragment { private static final String MAX_ZOOM_KEY = "max_zoom_key"; private static final String SLIDER_DESCR_RES_KEY = "slider_descr_key"; private static final String DIALOG_DESCR_RES_KEY = "dialog_descr_key"; - private static final String SHOW_WARNING_KEY = "show_warning_key"; + private static final String NEW_MAP_SOURCE = "new_map_source"; private static final int SLIDER_FROM = 1; private static final int SLIDER_TO = 22; @StringRes @@ -77,7 +77,7 @@ public class InputZoomLevelsBottomSheet extends MenuBottomSheetDialogFragment { maxZoom = savedInstanceState.getInt(MAX_ZOOM_KEY); dialogDescrRes = savedInstanceState.getInt(DIALOG_DESCR_RES_KEY); sliderDescrRes = savedInstanceState.getInt(SLIDER_DESCR_RES_KEY); - newMapSource = savedInstanceState.getBoolean(SHOW_WARNING_KEY); + newMapSource = savedInstanceState.getBoolean(NEW_MAP_SOURCE); } LayoutInflater inflater = UiUtilities.getMaterialInflater(app, nightMode); TitleItem titleItem = new TitleItem(getString(R.string.shared_string_zoom_levels)); @@ -141,14 +141,14 @@ public class InputZoomLevelsBottomSheet extends MenuBottomSheetDialogFragment { outState.putInt(MAX_ZOOM_KEY, maxZoom); outState.putInt(SLIDER_DESCR_RES_KEY, sliderDescrRes); outState.putInt(DIALOG_DESCR_RES_KEY, dialogDescrRes); - outState.putBoolean(SHOW_WARNING_KEY, newMapSource); + outState.putBoolean(NEW_MAP_SOURCE, newMapSource); super.onSaveInstanceState(outState); } @Override protected void onRightBottomButtonClick() { - if (newMapSource) { - showWarningDialog(); + if (!newMapSource) { + showClearTilesWarningDialog(); } else { applySelectedZooms(); } @@ -164,7 +164,7 @@ public class InputZoomLevelsBottomSheet extends MenuBottomSheetDialogFragment { return R.string.shared_string_apply; } - private void showWarningDialog() { + private void showClearTilesWarningDialog() { Context themedContext = UiUtilities.getThemedContext(getActivity(), nightMode); AlertDialog.Builder dismissDialog = new AlertDialog.Builder(themedContext); dismissDialog.setTitle(getString(R.string.osmand_parking_warning)); From cdf795c6afe324f727b3bb5a26f5742c84d39567 Mon Sep 17 00:00:00 2001 From: Victor Shcherb Date: Thu, 11 Jun 2020 11:58:19 +0200 Subject: [PATCH 019/107] Add reshaper test --- .../main/java/net/osmand/NativeLibrary.java | 1 + .../src/main/java/net/osmand/Reshaper.java | 41 ++++++++------ .../net/osmand/router/BinaryRoutePlanner.java | 10 ++-- .../test/java/net/osmand/ReShaperTest.java | 56 +++++++++++++++++++ 4 files changed, 85 insertions(+), 23 deletions(-) create mode 100644 OsmAnd-java/src/test/java/net/osmand/ReShaperTest.java diff --git a/OsmAnd-java/src/main/java/net/osmand/NativeLibrary.java b/OsmAnd-java/src/main/java/net/osmand/NativeLibrary.java index 8893c01286..25e1a21969 100644 --- a/OsmAnd-java/src/main/java/net/osmand/NativeLibrary.java +++ b/OsmAnd-java/src/main/java/net/osmand/NativeLibrary.java @@ -354,6 +354,7 @@ public class NativeLibrary { FileInputStream fis = new FileInputStream(f); Algorithms.streamCopy(fis, ous); fis.close(); + System.out.println("FONT " + name); initFontType(ous.toByteArray(), name.substring(0, name.length() - 4), name.toLowerCase().contains("bold"), name.toLowerCase().contains("italic")); } catch (IOException e) { diff --git a/OsmAnd-java/src/main/java/net/osmand/Reshaper.java b/OsmAnd-java/src/main/java/net/osmand/Reshaper.java index c6af6ada3a..8a55a6f77f 100644 --- a/OsmAnd-java/src/main/java/net/osmand/Reshaper.java +++ b/OsmAnd-java/src/main/java/net/osmand/Reshaper.java @@ -20,14 +20,18 @@ public class Reshaper { return ""; } } + public static String reshape(String s) { try { - ArabicShaping as = new ArabicShaping(ArabicShaping.LETTERS_SHAPE |ArabicShaping.LENGTH_GROW_SHRINK); + ArabicShaping as = new ArabicShaping(ArabicShaping.LETTERS_SHAPE | + ArabicShaping.LENGTH_GROW_SHRINK); + //printSplit("B", s); try { s = as.shape(s); } catch (ArabicShapingException e) { LOG.error(e.getMessage(), e); } + //printSplit("A", s); Bidi line = new Bidi(s.length(), s.length()); line.setPara(s, Bidi.LEVEL_DEFAULT_LTR, null); // line.setPara(s, Bidi.LEVEL_DEFAULT_LTR, null); @@ -96,33 +100,27 @@ public class Reshaper { return ch; } public static void main(String[] args) { -// char[] c = new char[] {'א', 'ד','ם', ' ', '1', '2'} ; -// String reshape = "אדם"; -// char[] c = new char[] {'א', 'ד','ם'} ; -// String reshape = reshape(new String(c)); -// for (int i = 0; i < reshape.length(); i++) { -// System.out.println(reshape.charAt(i)); -// } test2(); test3(); test4(); test5(); } - private static void test3() { + public static void test3() { String s = "מרכז מסחרי/השלום (40050)"; String reshape = reshape(s); String expected = "(40050) םולשה/ירחסמ זכרמ"; check(s, reshape, expected); } - private static void test5() { + public static void test5() { String s = "מרכז מסחרי/השלום (מרז)"; String reshape = reshape(s); String expected = "(זרמ) םולשה/ירחסמ זכרמ"; check(s, reshape, expected); } - private static void check(String source, String reshape, String expected) { + + public static void check(String source, String reshape, String expected) { printSplit("Source ", source); printSplit("Expected", expected); printSplit("Reshaped", reshape); @@ -131,19 +129,28 @@ public class Reshaper { throw new IllegalArgumentException(String.format("Bug: expected '%s', reshaped '%s'", expected, reshape)); } } - private static void printSplit(String p, String source) { + + static void printSplit(String p, String source) { + printSplit(p, source, true); + printSplit(p, source, false); + } + static void printSplit(String p, String source, boolean f) { System.out.print(p); System.out.print(": \u2066"); - for(int i = 0; i < source.length(); i++) { - System.out.print(source.charAt(i)); - System.out.print(" \u200e"); + for (int i = 0; i < source.length(); i++) { + if (f) { + System.out.print(source.charAt(i)); + System.out.print(" \u200e"); + } else { + System.out.print(String.format("%04x ", (int) source.charAt(i))); + } } // System.out.println(Arrays.toString(source.toCharArray())); System.out.println(); System.out.flush(); } - private static void test2() { + public static void test2() { String s = "گچ پژ نمکی باللغة العربي"; String reshape = reshape(s); String expected1 = "ﻲﺑﺮﻌﻟﺍ ﺔﻐﻠﻟﺎﺑ ﯽﮑﻤﻧ ﮋﭘ ﭻﮔ"; @@ -151,7 +158,7 @@ public class Reshaper { check(s, reshape, expected1); } - private static void test4() { + public static void test4() { String s = "Abc (123)"; check(s, reshape(s), s); } diff --git a/OsmAnd-java/src/main/java/net/osmand/router/BinaryRoutePlanner.java b/OsmAnd-java/src/main/java/net/osmand/router/BinaryRoutePlanner.java index 78966e4b5d..f57a4f1c3d 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/BinaryRoutePlanner.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/BinaryRoutePlanner.java @@ -810,14 +810,12 @@ public class BinaryRoutePlanner { printRoad(">?", visitedSegments.get(calculateRoutePointId(next, next.isPositive())), next.isPositive()); } - if (distFromStart < next.distanceFromStart) { - if (ctx.config.heuristicCoefficient <= 1) { - System.err.println("! Alert distance from start " + distFromStart + " < " - + next.distanceFromStart + " id=" + next.road.id); - } - } if (distFromStart < visIt.distanceFromStart && next.getParentRoute() == null) { toAdd = true; + if (ctx.config.heuristicCoefficient <= 1) { + System.err.println("! Alert distance from start " + distFromStart + " < " + + visIt.distanceFromStart + " id=" + next.road.id); + } } else { toAdd = false; } diff --git a/OsmAnd-java/src/test/java/net/osmand/ReShaperTest.java b/OsmAnd-java/src/test/java/net/osmand/ReShaperTest.java new file mode 100644 index 0000000000..c915789762 --- /dev/null +++ b/OsmAnd-java/src/test/java/net/osmand/ReShaperTest.java @@ -0,0 +1,56 @@ +package net.osmand; + +import java.text.Normalizer; + +import org.junit.Test; + +import com.ibm.icu.text.ArabicShaping; +import com.ibm.icu.text.ArabicShapingException; +import com.ibm.icu.text.Bidi; + +import net.osmand.Reshaper; + +public class ReShaperTest { + + + // + +// Source : ⁦ه ‎ە ‎ی ‎ب ‎ە ‎ +// Expected: ⁦ه ‎ە ‎ی ‎ب ‎ە ‎ +// Reshaped: ⁦ە ‎ﺐ ‎ﯾ ‎ە ‎ﻩ + @Test + public void testArabName() throws ArabicShapingException { + // https://www.compart.com/en/unicode/U+FCD8 +// String source = "\uFEEB\u06d5"; +// System.out.println(new ArabicShaping(0).shape(s)); +// System.out.println("\uFEEB\u06d5"); + String source = "هەیبە"; + String expected = "ەﺐﯾەﻩ"; + String res = Reshaper.reshape(source); + Reshaper.check(source, res, expected); + } + + + @Test + public void test2() throws ArabicShapingException { + Reshaper.test2(); + } + + @Test + public void test3() throws ArabicShapingException { + Reshaper.test3(); + } + + @Test + public void test4() throws ArabicShapingException { + Reshaper.test4(); + } + + @Test + public void test5() throws ArabicShapingException { + Reshaper.test5(); + } + + + +} From a20c680aaeca22280ba0eb586e717339d74d90c8 Mon Sep 17 00:00:00 2001 From: Hardy Date: Thu, 11 Jun 2020 12:31:40 +0200 Subject: [PATCH 020/107] Corrections - "Select the screen timeout after waking up.": This is tricky, it is not the normal timeout, but really only applies after a wakeup event - "Off. Requires ..."": The neighboring options all say "Disabled". Would take code change to alter this. - "Let the system decide screen timeout": Too long and clumsy for the option screen - "GPX file is damaged": Could be a false statement - "Minutes until data expires:": this sounds like it would state the remaining validity, but I think it simply states the original lifetime --- OsmAnd/res/values/strings.xml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index e9a1a909d5..e682403539 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -23,11 +23,11 @@ Delete all? You can export or import quick actions with app profiles. Choose how to store downloaded tiles. - Temporarily downloaded tiles will be re-downloaded after a specified amount of minutes. - Left empty tiles will never be re-downloaded for this source. + Cached tiles will be re-downloaded after the specified number of minutes. + Leave this field empty to never refresh tiles for this source. \n\nOne day is 1440 minutes.\nOne week is 10 080 minutes.\nOne month is 43 829 minutes. Affects the screen when used as map or overlay/underlay. - \n\n%1$s: The map is limited to the range zoom levels selected. \n\n%2$s is the level all original tiles visible at. Changing level always fetches new tiles. + \n\n%1$s: The map is limited to the zoom level range selected. \n\n%2$s are the levels at which the original tiles will be visible, upscaling or downscaling will occur outside these values. Set a minimum and maximum zoom level to show or load the online map. Storage format Mercator projection @@ -40,20 +40,20 @@ Pseudo-Mercator projection Keep screen off Keep screen on - Select how long the screen should be kept on. (\"%1$s\" keeps the screen from turning off.) + Select the screen timeout after waking up. (\"%1$s\" applies no timeout.) Proximity sensor Power button - Pressing the power button on your device turns the screen on with OsmAnd on top of the lock screen. - Off. Requires \'Keep screen on\' under \'Timeout after wake-up\'. + Pressing the device power button will turn the screen on with OsmAnd on top of the lock screen. + Disabled. Requires \'Keep screen on\' under \'Timeout after wake-up\'. Navigation instructions Each navigation instruction will turn the screen on. Select screen wake-up options (make sure OsmAnd is in the foreground when the device is being locked): - Let the system decide screen timeout + Use system screen timeout Turns the screen off as per the system\'s screen timeout. Screen control Always - The OsmAnd GPX file is damaged, please contact the support team. + OsmAnd GPX is not well formed, please contact the support team to investigate further. Provide your vehicle weight, some route restrictions may apply for heavy vehicles. Provide your vehicle height, some route restrictions may apply for high vehicles. Provide your vehicle width some route restrictions may apply for wide vehicles. @@ -2360,7 +2360,7 @@ About Version info, licenses, project members Zoom levels downloaded: %1$s - Minutes until data expires: %1$s + Expiration time (minutes): %1$s Downloadable: %1$s Maximum zoom: %1$s Minimum zoom: %1$s @@ -2368,7 +2368,7 @@ Saved the tilesource \"%1$s\" Elliptic Mercator projection Maximum zoom - Minutes until source expires + Expiration time (minutes) Minimum zoom URL Select existing… From dacbd1e8e77b2379b1b1587431206ac47b507d04 Mon Sep 17 00:00:00 2001 From: Hardy Date: Thu, 11 Jun 2020 12:34:33 +0200 Subject: [PATCH 021/107] Update strings.xml --- OsmAnd/res/values/strings.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index e682403539..a63f077a58 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -27,7 +27,8 @@ Leave this field empty to never refresh tiles for this source. \n\nOne day is 1440 minutes.\nOne week is 10 080 minutes.\nOne month is 43 829 minutes. Affects the screen when used as map or overlay/underlay. - \n\n%1$s: The map is limited to the zoom level range selected. \n\n%2$s are the levels at which the original tiles will be visible, upscaling or downscaling will occur outside these values. + \n\n%1$s: The map is limited to the zoom level range selected. + \n\n%2$s are the levels at which the original tiles will be visible, upscaling or downscaling will occur outside these values. Set a minimum and maximum zoom level to show or load the online map. Storage format Mercator projection From 987bee900a38aa00df9bcf031810cde417281e87 Mon Sep 17 00:00:00 2001 From: Hardy Date: Thu, 11 Jun 2020 12:36:58 +0200 Subject: [PATCH 022/107] Update strings.xml --- OsmAnd/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index a63f077a58..096bb30f89 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -2366,7 +2366,7 @@ Maximum zoom: %1$s Minimum zoom: %1$s Tile data: %1$s - Saved the tilesource \"%1$s\" + Tilesource %1$s saved Elliptic Mercator projection Maximum zoom Expiration time (minutes) From 9df2f798486244a50617c2ecb1fb2edc72107147 Mon Sep 17 00:00:00 2001 From: Victor Shcherb Date: Thu, 11 Jun 2020 13:57:11 +0200 Subject: [PATCH 023/107] Fix matching --- .../main/java/net/osmand/search/core/SearchCoreFactory.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/search/core/SearchCoreFactory.java b/OsmAnd-java/src/main/java/net/osmand/search/core/SearchCoreFactory.java index 90441f44cb..e7573cca4f 100644 --- a/OsmAnd-java/src/main/java/net/osmand/search/core/SearchCoreFactory.java +++ b/OsmAnd-java/src/main/java/net/osmand/search/core/SearchCoreFactory.java @@ -414,7 +414,8 @@ public class SearchCoreFactory { if (object.getName().startsWith("<")) { return false; } - if (!phrase.getFirstUnknownNameStringMatcher().matches(stripBraces(sr.localeName))) { + + if (!phrase.getUnknownWordToSearchBuildingNameMatcher().matches(stripBraces(sr.localeName))) { sr.priorityDistance = 5; } sr.objectType = ObjectType.STREET; From 19e5db7b0a6b2b1f687a297aadea1bfa8d16191a Mon Sep 17 00:00:00 2001 From: max-klaus Date: Thu, 11 Jun 2020 15:14:56 +0300 Subject: [PATCH 024/107] Fix raster map menu crash --- .../rastermaps/OsmandRasterMapsPlugin.java | 301 ++++++++++-------- 1 file changed, 174 insertions(+), 127 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/rastermaps/OsmandRasterMapsPlugin.java b/OsmAnd/src/net/osmand/plus/rastermaps/OsmandRasterMapsPlugin.java index 9194949691..58af80e351 100644 --- a/OsmAnd/src/net/osmand/plus/rastermaps/OsmandRasterMapsPlugin.java +++ b/OsmAnd/src/net/osmand/plus/rastermaps/OsmandRasterMapsPlugin.java @@ -1,6 +1,7 @@ package net.osmand.plus.rastermaps; import android.app.Activity; +import android.content.Context; import android.content.DialogInterface; import android.graphics.drawable.Drawable; import android.os.AsyncTask; @@ -52,6 +53,7 @@ import net.osmand.plus.views.OsmandMapTileView; import net.osmand.util.Algorithms; import java.io.File; +import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -128,8 +130,6 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin { }; // mapView.addLayer(overlayLayer, 0.7f); settings.MAP_OVERLAY_TRANSPARENCY.addListener(overlayLayerListener); - - } @Override @@ -138,8 +138,9 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin { } - public void updateMapLayers(OsmandMapTileView mapView, CommonPreference settingsToWarnAboutMap, - final MapActivityLayers layers) { + public void updateMapLayers(OsmandMapTileView mapView, + CommonPreference settingsToWarnAboutMap, + MapActivityLayers layers) { if (overlayLayer == null) { createLayers(); } @@ -169,7 +170,8 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin { } public void updateLayer(OsmandMapTileView mapView, OsmandSettings settings, - MapTileLayer layer, CommonPreference preference, float layerOrder, boolean warnWhenSelected) { + MapTileLayer layer, CommonPreference preference, + float layerOrder, boolean warnWhenSelected) { ITileSource overlay = settings.getTileSourceByName(preference.get(), warnWhenSelected); if (!Algorithms.objectEquals(overlay, layer.getMap())) { if (overlay == null) { @@ -186,21 +188,21 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin { @NonNull final CommonPreference mapPref, @NonNull final CommonPreference exMapPref, boolean force, - @NonNull final MapActivity activity, + @NonNull final MapActivity mapActivity, @Nullable final OnMapSelectedCallback callback) { - final MapActivityLayers layers = activity.getMapLayers(); + final WeakReference mapActivityRef = new WeakReference<>(mapActivity); if (!force && exMapPref.get() != null) { mapPref.set(exMapPref.get()); if (callback != null) { callback.onMapSelected(false); } - updateMapLayers(mapView, mapPref, layers); + updateMapLayers(mapView, mapPref, mapActivity.getMapLayers()); return; } - final OsmandSettings settings = app.getSettings(); + OsmandSettings settings = app.getSettings(); Map entriesMap = settings.getTileSourceEntries(); final ArrayList keys = new ArrayList<>(entriesMap.keySet()); - AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(activity, getThemeRes(activity, app))); + AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(mapActivity, getThemeRes(mapActivity))); final String[] items = new String[entriesMap.size() + 1]; int i = 0; for (String it : entriesMap.values()) { @@ -211,13 +213,24 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin { builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { + MapActivity activity = mapActivityRef.get(); + if (activity == null || activity.isFinishing()) { + return; + } if (which == items.length - 1) { installMapLayers(activity, new ResultMatcher() { TileSourceTemplate template = null; int count = 0; + boolean cancel = false; @Override public boolean publish(TileSourceTemplate object) { + MapActivity mapActivity = mapActivityRef.get(); + if (mapActivity == null || mapActivity.isFinishing()) { + cancel = true; + return false; + } + OsmandMapTileView mapView = mapActivity.getMapView(); if (object == null) { if (count == 1) { mapPref.set(template.getName()); @@ -225,9 +238,9 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin { if (callback != null) { callback.onMapSelected(false); } - updateMapLayers(mapView, mapPref, layers); + updateMapLayers(mapView, mapPref, mapActivity.getMapLayers()); } else { - selectMapOverlayLayer(mapView, mapPref, exMapPref, false, activity, null); + selectMapOverlayLayer(mapView, mapPref, exMapPref, false, mapActivity, null); } } else { count++; @@ -238,7 +251,7 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin { @Override public boolean isCancelled() { - return false; + return cancel; } }); } else { @@ -247,7 +260,7 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin { if (callback != null) { callback.onMapSelected(false); } - updateMapLayers(mapView, mapPref, layers); + updateMapLayers(mapActivity.getMapView(), mapPref, activity.getMapLayers()); } dialog.dismiss(); } @@ -266,43 +279,52 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin { } @Override - public void registerLayerContextMenuActions(final OsmandMapTileView mapView, + public void registerLayerContextMenuActions(OsmandMapTileView mapView, ContextMenuAdapter adapter, - final MapActivity mapActivity) { + MapActivity mapActivity) { + final WeakReference mapActivityRef = new WeakReference<>(mapActivity); ContextMenuAdapter.ItemClickListener listener = new ContextMenuAdapter.OnRowItemClick() { @Override public boolean onRowItemClick(ArrayAdapter adapter, View view, int itemId, int position) { - int[] viewCoordinates = AndroidUtils.getCenterViewCoordinates(view); - if (itemId == R.string.layer_overlay) { - mapActivity.getDashboard().setDashboardVisibility(true, DashboardType.OVERLAY_MAP, viewCoordinates); - return false; - } else if (itemId == R.string.layer_underlay) { - mapActivity.getDashboard().setDashboardVisibility(true, DashboardType.UNDERLAY_MAP, viewCoordinates); - return false; + MapActivity mapActivity = mapActivityRef.get(); + if (mapActivity != null && !mapActivity.isFinishing()) { + int[] viewCoordinates = AndroidUtils.getCenterViewCoordinates(view); + if (itemId == R.string.layer_overlay) { + mapActivity.getDashboard().setDashboardVisibility(true, DashboardType.OVERLAY_MAP, viewCoordinates); + return false; + } else if (itemId == R.string.layer_underlay) { + mapActivity.getDashboard().setDashboardVisibility(true, DashboardType.UNDERLAY_MAP, viewCoordinates); + return false; + } } return true; } @Override public boolean onContextMenuClick(final ArrayAdapter adapter, int itemId, final int pos, boolean isChecked, int[] viewCoordinates) { - final OsmandSettings settings = mapActivity.getMyApplication().getSettings(); + MapActivity mapActivity = mapActivityRef.get(); + if (mapActivity == null || mapActivity.isFinishing()) { + return false; + } if (itemId == R.string.layer_overlay) { toggleUnderlayState(mapActivity, RasterMapType.OVERLAY, new OnMapSelectedCallback() { @Override public void onMapSelected(boolean canceled) { - ContextMenuItem item = adapter.getItem(pos); - - String overlayMapDescr = settings.MAP_OVERLAY.get(); - - boolean hasOverlayDescription = overlayMapDescr != null; - overlayMapDescr = hasOverlayDescription ? overlayMapDescr - : mapActivity.getString(R.string.shared_string_none); - - item.setDescription(overlayMapDescr); - item.setSelected(hasOverlayDescription); - item.setColorRes(hasOverlayDescription ? R.color.osmand_orange : ContextMenuItem.INVALID_ID); - adapter.notifyDataSetChanged(); + MapActivity mapActivity = mapActivityRef.get(); + if (mapActivity != null && !mapActivity.isFinishing()) { + ContextMenuItem item = adapter.getItem(pos); + if (item != null) { + String overlayMapDescr = mapActivity.getMyApplication().getSettings().MAP_OVERLAY.get(); + boolean hasOverlayDescription = overlayMapDescr != null; + overlayMapDescr = hasOverlayDescription ? overlayMapDescr + : mapActivity.getString(R.string.shared_string_none); + item.setDescription(overlayMapDescr); + item.setSelected(hasOverlayDescription); + item.setColorRes(hasOverlayDescription ? R.color.osmand_orange : ContextMenuItem.INVALID_ID); + adapter.notifyDataSetChanged(); + } + } } }); return false; @@ -311,24 +333,29 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin { new OnMapSelectedCallback() { @Override public void onMapSelected(boolean canceled) { - ContextMenuItem item = adapter.getItem(pos); + MapActivity mapActivity = mapActivityRef.get(); + if (mapActivity != null && !mapActivity.isFinishing()) { + ContextMenuItem item = adapter.getItem(pos); + if (item != null) { + String underlayMapDescr = settings.MAP_UNDERLAY.get(); - String underlayMapDescr = settings.MAP_UNDERLAY.get(); + boolean hasUnderlayDescription = underlayMapDescr != null; + underlayMapDescr = hasUnderlayDescription + ? underlayMapDescr + : mapActivity.getString(R.string.shared_string_none); - boolean hasUnderlayDescription = underlayMapDescr != null; - underlayMapDescr = hasUnderlayDescription ? underlayMapDescr - : mapActivity.getString(R.string.shared_string_none); + item.setDescription(underlayMapDescr); + item.setSelected(hasUnderlayDescription); + item.setColorRes(hasUnderlayDescription ? R.color.osmand_orange : ContextMenuItem.INVALID_ID); - item.setDescription(underlayMapDescr); - item.setSelected(hasUnderlayDescription); - item.setColorRes(hasUnderlayDescription ? R.color.osmand_orange : ContextMenuItem.INVALID_ID); + adapter.notifyDataSetChanged(); - adapter.notifyDataSetChanged(); - - final CommonPreference hidePolygonsPref = - mapActivity.getMyApplication().getSettings().getCustomRenderBooleanProperty("noPolygons"); - hidePolygonsPref.set(hasUnderlayDescription); - RasterMapMenu.refreshMapComplete(mapActivity); + final CommonPreference hidePolygonsPref = + mapActivity.getMyApplication().getSettings().getCustomRenderBooleanProperty("noPolygons"); + hidePolygonsPref.set(hasUnderlayDescription); + RasterMapMenu.refreshMapComplete(mapActivity); + } + } } }); return false; @@ -381,18 +408,23 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin { @Override - public void registerMapContextMenuActions(final MapActivity mapActivity, final double latitude, final double longitude, ContextMenuAdapter adapter, - Object selectedObj) { - final OsmandMapTileView mapView = mapActivity.getMapView(); - if (mapView.getMainLayer() instanceof MapTileLayer) { + public void registerMapContextMenuActions(MapActivity mapActivity, + final double latitude, final double longitude, + ContextMenuAdapter adapter, Object selectedObj) { + final WeakReference mapActivityRef = new WeakReference<>(mapActivity); + if (mapActivity.getMapView().getMainLayer() instanceof MapTileLayer) { ItemClickListener listener = new ContextMenuAdapter.ItemClickListener() { @Override public boolean onContextMenuClick(ArrayAdapter adapter, int resId, int pos, boolean isChecked, int[] viewCoordinates) { - if (resId == R.string.context_menu_item_update_map) { - mapActivity.getMapActions().reloadTile(mapView.getZoom(), latitude, longitude); - } else if (resId == R.string.shared_string_download_map) { - DownloadTilesDialog dlg = new DownloadTilesDialog(mapActivity, (OsmandApplication) mapActivity.getApplication(), mapView); - dlg.openDialog(); + MapActivity mapActivity = mapActivityRef.get(); + if (mapActivity != null && !mapActivity.isFinishing()) { + OsmandMapTileView mapView = mapActivity.getMapView(); + if (resId == R.string.context_menu_item_update_map) { + mapActivity.getMapActions().reloadTile(mapView.getZoom(), latitude, longitude); + } else if (resId == R.string.shared_string_download_map) { + DownloadTilesDialog dlg = new DownloadTilesDialog(mapActivity, (OsmandApplication) mapActivity.getApplication(), mapView); + dlg.openDialog(); + } } return true; } @@ -412,10 +444,10 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin { } } - public static void installMapLayers(final Activity activity, final ResultMatcher result) { + public static void installMapLayers(Activity activity, final ResultMatcher result) { + final WeakReference activityRef = new WeakReference<>(activity); final OsmandApplication app = (OsmandApplication) activity.getApplication(); - final OsmandSettings settings = app.getSettings(); - final Map entriesMap = settings.getTileSourceEntries(); + OsmandSettings settings = app.getSettings(); if (!settings.isInternetConnectionAvailable(true)) { Toast.makeText(activity, R.string.internet_not_available, Toast.LENGTH_LONG).show(); return; @@ -427,27 +459,36 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin { } protected void onPostExecute(final java.util.List downloaded) { + Activity activity = activityRef.get(); + if (activity == null || activity.isFinishing()) { + return; + } + OsmandApplication app = (OsmandApplication) activity.getApplication(); if (downloaded == null || downloaded.isEmpty()) { Toast.makeText(activity, R.string.shared_string_io_error, Toast.LENGTH_SHORT).show(); return; } - AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(activity, getThemeRes(activity, app))); + AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(activity, getThemeRes(activity))); String[] names = new String[downloaded.size()]; for (int i = 0; i < names.length; i++) { names[i] = downloaded.get(i).getName(); } final boolean[] selected = new boolean[downloaded.size()]; - boolean nightMode = isNightMode(activity, app); - int themeResId = getThemeRes(activity, app); + boolean nightMode = isNightMode(activity); + int themeResId = getThemeRes(activity); int selectedProfileColor = ContextCompat.getColor(app, app.getSettings().getApplicationMode().getIconColorInfo().getColor(nightMode)); DialogListItemAdapter dialogAdapter = DialogListItemAdapter.createMultiChoiceAdapter(names, nightMode, selected, app, selectedProfileColor, themeResId, new View.OnClickListener() { @Override public void onClick(View v) { - int which = (int) v.getTag(); - selected[which] = !selected[which]; - if (entriesMap.containsKey(downloaded.get(which).getName()) && selected[which]) { - Toast.makeText(activity, R.string.tile_source_already_installed, Toast.LENGTH_SHORT).show(); + Activity activity = activityRef.get(); + if (activity != null && !activity.isFinishing()) { + Map entriesMap = ((OsmandApplication)activity.getApplication()).getSettings().getTileSourceEntries(); + int which = (int) v.getTag(); + selected[which] = !selected[which]; + if (entriesMap.containsKey(downloaded.get(which).getName()) && selected[which]) { + Toast.makeText(activity, R.string.tile_source_already_installed, Toast.LENGTH_SHORT).show(); + } } } } @@ -458,22 +499,26 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin { builder.setPositiveButton(R.string.shared_string_apply, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { - List toInstall = new ArrayList<>(); - for (int i = 0; i < selected.length; i++) { - if (selected[i]) { - toInstall.add(downloaded.get(i)); - } - } - for (TileSourceTemplate ts : toInstall) { - if (settings.installTileSource(ts)) { - if (result != null) { - result.publish(ts); + Activity activity = activityRef.get(); + if (activity != null && !activity.isFinishing()) { + OsmandSettings settings = ((OsmandApplication) activity.getApplication()).getSettings(); + List toInstall = new ArrayList<>(); + for (int i = 0; i < selected.length; i++) { + if (selected[i]) { + toInstall.add(downloaded.get(i)); } } - } - // at the end publish null to show end of process - if (!toInstall.isEmpty() && result != null) { - result.publish(null); + for (TileSourceTemplate ts : toInstall) { + if (settings.installTileSource(ts)) { + if (result != null) { + result.publish(ts); + } + } + } + // at the end publish null to show end of process + if (!toInstall.isEmpty() && result != null) { + result.publish(null); + } } } }); @@ -483,19 +528,20 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin { t.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); } - public static void defineNewEditLayer(final Activity activity, final ResultMatcher resultMatcher, final String editedLayerName) { - final OsmandApplication app = (OsmandApplication) activity.getApplication(); - final OsmandSettings settings = app.getSettings(); - final Map entriesMap = settings.getTileSourceEntries(true); + public static void defineNewEditLayer(Activity activity, final ResultMatcher resultMatcher, final String editedLayerName) { + final WeakReference activityRef = new WeakReference<>(activity); + OsmandApplication app = (OsmandApplication) activity.getApplication(); + OsmandSettings settings = app.getSettings(); + Map entriesMap = settings.getTileSourceEntries(true); final SQLiteTileSource[] sqLiteTileSource = new SQLiteTileSource[1]; - boolean nightMode = isNightMode(activity, app); + boolean nightMode = isNightMode(activity); final int dp8 = AndroidUtils.dpToPx(app, 8f); int textColorPrimary = ContextCompat.getColor(app, nightMode ? R.color.text_color_primary_dark : R.color.text_color_primary_light); TileSourceTemplate ts = new TileSourceTemplate("NewMapnik", "http://mapnik.osmand.net/{0}/{1}/{2}.png", "png", 17, 5, 256, 16, 32000); final TileSourceTemplate[] result = new TileSourceTemplate[]{ts}; - AlertDialog.Builder bld = new AlertDialog.Builder(new ContextThemeWrapper(activity, getThemeRes(activity, app))); - View view = UiUtilities.getInflater(activity, isNightMode(activity, app)).inflate(R.layout.editing_tile_source, null); + AlertDialog.Builder bld = new AlertDialog.Builder(new ContextThemeWrapper(activity, getThemeRes(activity))); + View view = UiUtilities.getInflater(activity, isNightMode(activity)).inflate(R.layout.editing_tile_source, null); final EditText name = (EditText) view.findViewById(R.id.Name); final Spinner existing = (Spinner) view.findViewById(R.id.TileSourceSpinner); final TextView existingHint = (TextView) view.findViewById(R.id.TileSourceHint); @@ -539,10 +585,8 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin { template.setExpirationTimeMinutes(sqLiteTileSource[0].getExpirationTimeMinutes()); template.setEllipticYTile(sqLiteTileSource[0].isEllipticYTile()); } - if (template != null) { - result[0] = template.copy(); - updateTileSourceEditView(result[0], name, urlToLoad, minZoom, maxZoom, expire, elliptic); - } + result[0] = template.copy(); + updateTileSourceEditView(result[0], name, urlToLoad, minZoom, maxZoom, expire, elliptic); existingHint.setVisibility(View.GONE); existing.setVisibility(View.GONE); } @@ -551,13 +595,12 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin { @Override public void onItemSelected(AdapterView parent, View view, int position, long id) { - if (position > 0) { + Activity activity = activityRef.get(); + if (activity != null && !activity.isFinishing() && position > 0) { File f = ((OsmandApplication) activity.getApplication()).getAppPath(IndexConstants.TILES_INDEX_DIR + templates.get(position)); TileSourceTemplate template = TileSourceManager.createTileSourceTemplate(f); - if (template != null) { - result[0] = template.copy(); - updateTileSourceEditView(result[0], name, urlToLoad, minZoom, maxZoom, expire, elliptic); - } + result[0] = template.copy(); + updateTileSourceEditView(result[0], name, urlToLoad, minZoom, maxZoom, expire, elliptic); } } @@ -571,29 +614,33 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin { @Override public void onClick(DialogInterface dialog, int which) { - TileSourceTemplate r = result[0]; - try { - r.setName(name.getText().toString()); - r.setExpirationTimeMinutes(expire.getText().length() == 0 ? -1 : - Integer.parseInt(expire.getText().toString())); - r.setMinZoom(Integer.parseInt(minZoom.getText().toString())); - r.setMaxZoom(Integer.parseInt(maxZoom.getText().toString())); - r.setEllipticYTile(elliptic.isChecked()); - r.setUrlToLoad(urlToLoad.getText().toString().equals("") ? null : urlToLoad.getText().toString().replace("{$x}", "{1}") - .replace("{$y}", "{2}").replace("{$z}", "{0}")); - if (sqLiteTileSource[0] != null) { - sqLiteTileSource[0].updateFromTileSourceTemplate(r); - } else { - if (r.getName().length() > 0) { - if (settings.installTileSource(r)) { - Toast.makeText(activity, activity.getString(R.string.edit_tilesource_successfully, r.getName()), - Toast.LENGTH_SHORT).show(); - resultMatcher.publish(r); + Activity activity = activityRef.get(); + if (activity != null && !activity.isFinishing()) { + OsmandSettings settings = ((OsmandApplication) activity.getApplication()).getSettings(); + TileSourceTemplate r = result[0]; + try { + r.setName(name.getText().toString()); + r.setExpirationTimeMinutes(expire.getText().length() == 0 ? -1 : + Integer.parseInt(expire.getText().toString())); + r.setMinZoom(Integer.parseInt(minZoom.getText().toString())); + r.setMaxZoom(Integer.parseInt(maxZoom.getText().toString())); + r.setEllipticYTile(elliptic.isChecked()); + r.setUrlToLoad(urlToLoad.getText().toString().equals("") ? null : urlToLoad.getText().toString().replace("{$x}", "{1}") + .replace("{$y}", "{2}").replace("{$z}", "{0}")); + if (sqLiteTileSource[0] != null) { + sqLiteTileSource[0].updateFromTileSourceTemplate(r); + } else { + if (r.getName().length() > 0) { + if (settings.installTileSource(r)) { + Toast.makeText(activity, activity.getString(R.string.edit_tilesource_successfully, r.getName()), + Toast.LENGTH_SHORT).show(); + resultMatcher.publish(r); + } } } + } catch (RuntimeException e) { + Toast.makeText(activity, e.getMessage(), Toast.LENGTH_SHORT).show(); } - } catch (RuntimeException e) { - Toast.makeText(activity, e.getMessage(), Toast.LENGTH_SHORT).show(); } } }); @@ -601,8 +648,8 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin { bld.show(); } - private static void updateTileSourceEditView(TileSourceTemplate ts, EditText name, final EditText urlToLoad, final EditText minZoom, - final EditText maxZoom, EditText expire, final CheckBox elliptic) { + private static void updateTileSourceEditView(TileSourceTemplate ts, EditText name, EditText urlToLoad, EditText minZoom, + EditText maxZoom, EditText expire, CheckBox elliptic) { minZoom.setText(String.valueOf(ts.getMinimumZoomSupported())); maxZoom.setText(String.valueOf(ts.getMaximumZoomSupported())); name.setText(ts.getName()); @@ -626,7 +673,6 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin { OsmandMapTileView mapView = mapActivity.getMapView(); CommonPreference mapTypePreference; CommonPreference exMapTypePreference; - OsmandSettings.CommonPreference mapTransparencyPreference; //boolean isMapSelected; MapTileLayer layer; @@ -663,15 +709,16 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin { } } - private static boolean isNightMode(Activity activity, OsmandApplication app) { - if (activity == null || app == null) { + private static boolean isNightMode(Context context) { + if (context == null) { return false; } - return activity instanceof MapActivity ? app.getDaynightHelper().isNightModeForMapControls() : !app.getSettings().isLightContent(); + OsmandApplication app = (OsmandApplication) context.getApplicationContext(); + return context instanceof MapActivity ? app.getDaynightHelper().isNightModeForMapControls() : !app.getSettings().isLightContent(); } - private static int getThemeRes(Activity activity, OsmandApplication app) { - return isNightMode(activity, app) ? R.style.OsmandDarkTheme : R.style.OsmandLightTheme; + private static int getThemeRes(Context context) { + return isNightMode(context) ? R.style.OsmandDarkTheme : R.style.OsmandLightTheme; } public enum RasterMapType { From cb105deda0d5957c134e68122f487082cc896196 Mon Sep 17 00:00:00 2001 From: Nazar-Kutz Date: Thu, 11 Jun 2020 15:24:54 +0300 Subject: [PATCH 025/107] RTL - Step 3 (PopUp Menu) --- OsmAnd/res/layout/popup_menu_item.xml | 31 ++++++++ .../plus/SimplePopUpMenuItemAdapter.java | 78 +++++++++++++++++++ OsmAnd/src/net/osmand/plus/UiUtilities.java | 44 +++++++++++ .../other/TrackDetailsMenu.java | 75 +++++++++--------- 4 files changed, 188 insertions(+), 40 deletions(-) create mode 100644 OsmAnd/res/layout/popup_menu_item.xml create mode 100644 OsmAnd/src/net/osmand/plus/SimplePopUpMenuItemAdapter.java diff --git a/OsmAnd/res/layout/popup_menu_item.xml b/OsmAnd/res/layout/popup_menu_item.xml new file mode 100644 index 0000000000..66509ffa4d --- /dev/null +++ b/OsmAnd/res/layout/popup_menu_item.xml @@ -0,0 +1,31 @@ + + + + + + + + \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/SimplePopUpMenuItemAdapter.java b/OsmAnd/src/net/osmand/plus/SimplePopUpMenuItemAdapter.java new file mode 100644 index 0000000000..3dadf98f60 --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/SimplePopUpMenuItemAdapter.java @@ -0,0 +1,78 @@ +package net.osmand.plus; + +import android.content.Context; +import android.graphics.drawable.Drawable; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import java.util.List; + +public class SimplePopUpMenuItemAdapter + extends ArrayAdapter { + + private List items; + + public SimplePopUpMenuItemAdapter(@NonNull Context context, int resource, + List items) { + super(context, resource); + this.items = items; + } + + @Override + public int getCount() { + return items.size(); + } + + @NonNull + @Override + public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { + LayoutInflater inflater = LayoutInflater.from(getContext()); + if (convertView == null) { + convertView = inflater.inflate(R.layout.popup_menu_item, null); + } + SimplePopUpMenuItem item = getItem(position); + if (item != null) { + TextView tvTitle = convertView.findViewById(R.id.title); + tvTitle.setText(item.title); + ImageView ivIcon = convertView.findViewById(R.id.icon); + Drawable icon = item.icon; + if (icon != null) { + ivIcon.setImageDrawable(icon); + } else { + ivIcon.setVisibility(View.GONE); + } + } + return convertView; + } + + @Nullable + @Override + public SimplePopUpMenuItem getItem(int position) { + return items.get(position); + } + + public static class SimplePopUpMenuItem { + private CharSequence title; + private Drawable icon; + + public SimplePopUpMenuItem(CharSequence title, Drawable icon) { + this.title = title; + this.icon = icon; + } + + public CharSequence getTitle() { + return title; + } + + public Drawable getIcon() { + return icon; + } + } +} diff --git a/OsmAnd/src/net/osmand/plus/UiUtilities.java b/OsmAnd/src/net/osmand/plus/UiUtilities.java index 0a168ffec9..d93bdbc6dc 100644 --- a/OsmAnd/src/net/osmand/plus/UiUtilities.java +++ b/OsmAnd/src/net/osmand/plus/UiUtilities.java @@ -3,6 +3,7 @@ package net.osmand.plus; import android.content.Context; import android.content.res.ColorStateList; import android.graphics.Color; +import android.graphics.Paint; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.LayerDrawable; @@ -19,6 +20,7 @@ import android.view.View; import android.view.ViewGroup; import android.view.ViewParent; import android.view.WindowManager; +import android.widget.AdapterView; import android.widget.CompoundButton; import android.widget.ImageView; import android.widget.LinearLayout; @@ -31,6 +33,7 @@ import androidx.annotation.NonNull; import androidx.annotation.StringRes; import androidx.appcompat.content.res.AppCompatResources; import androidx.appcompat.view.ContextThemeWrapper; +import androidx.appcompat.widget.ListPopupWindow; import androidx.appcompat.widget.SwitchCompat; import androidx.core.content.ContextCompat; import androidx.core.graphics.drawable.DrawableCompat; @@ -52,6 +55,8 @@ import net.osmand.plus.widgets.TextViewEx; import org.apache.commons.logging.Log; +import java.util.List; + import gnu.trove.map.hash.TLongObjectHashMap; public class UiUtilities { @@ -645,4 +650,43 @@ public class UiUtilities { return spannable; } } + + public static ListPopupWindow createListPopupWindow(Context themedCtx, View v, + List items, + final AdapterView.OnItemClickListener listener) { + int contentPadding = themedCtx.getResources().getDimensionPixelSize(R.dimen.content_padding); + int contentPaddingHalf = themedCtx.getResources().getDimensionPixelSize(R.dimen.content_padding_half); + + Paint paint = new Paint(); + paint.setTextSize(themedCtx.getResources().getDimensionPixelSize(R.dimen.default_list_text_size)); + CharSequence longestTitle = ""; + for (SimplePopUpMenuItemAdapter.SimplePopUpMenuItem item : items) { + if (item.getTitle().length() > longestTitle.length()) { + longestTitle = item.getTitle(); + } + } + float titleTextWidth = paint.measureText(longestTitle.toString()); + float itemWidth = titleTextWidth + contentPadding; + float minWidth = v.getWidth(); + + SimplePopUpMenuItemAdapter adapter = + new SimplePopUpMenuItemAdapter(themedCtx, R.layout.popup_menu_item, items); + final ListPopupWindow listPopupWindow = new ListPopupWindow(themedCtx); + listPopupWindow.setAnchorView(v); + listPopupWindow.setContentWidth((int) (Math.max(itemWidth, minWidth))); + listPopupWindow.setDropDownGravity(Gravity.END | Gravity.TOP); + listPopupWindow.setVerticalOffset(-v.getHeight() + contentPaddingHalf); + listPopupWindow.setModal(true); + listPopupWindow.setAdapter(adapter); + listPopupWindow.setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + if (listener != null) { + listener.onItemClick(parent, view, position, id); + } + listPopupWindow.dismiss(); + } + }); + return listPopupWindow; + } } \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java index 04628bcb48..39e5dd1bac 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java @@ -2,15 +2,14 @@ package net.osmand.plus.mapcontextmenu.other; import android.content.Context; import android.graphics.Matrix; -import android.view.MenuItem; import android.view.MotionEvent; import android.view.View; +import android.widget.AdapterView; import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.appcompat.widget.PopupMenu; import com.github.mikephil.charting.charts.LineChart; import com.github.mikephil.charting.data.Entry; @@ -33,9 +32,9 @@ import net.osmand.data.RotatedTileBox; import net.osmand.plus.GpxSelectionHelper.GpxDisplayItem; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; +import net.osmand.plus.SimplePopUpMenuItemAdapter; import net.osmand.plus.UiUtilities; import net.osmand.plus.activities.MapActivity; -import net.osmand.plus.dialogs.DirectionsDialogs; import net.osmand.plus.helpers.AndroidUiHelper; import net.osmand.plus.helpers.GpxUiHelper; import net.osmand.plus.helpers.GpxUiHelper.GPXDataSetAxisType; @@ -653,23 +652,22 @@ public class TrackDetailsMenu { yAxis.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - PopupMenu optionsMenu = new PopupMenu(v.getContext(), v); - DirectionsDialogs.setupPopUpMenuIcon(optionsMenu); - for (final GPXDataSetType[] types : availableTypes) { - MenuItem menuItem = optionsMenu.getMenu() - .add(GPXDataSetType.getName(app, types)) - .setIcon(GPXDataSetType.getImageDrawable(app, types)); - menuItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { - @Override - public boolean onMenuItemClick(MenuItem mItem) { - GpxDisplayItem gpxItem = getGpxItem(); - gpxItem.chartTypes = types; - update(); - return true; - } - }); + Context themedContext = UiUtilities.getThemedContext(v.getContext(), true); + List items = new ArrayList<>(); + for (GPXDataSetType[] types : availableTypes) { + items.add(new SimplePopUpMenuItemAdapter.SimplePopUpMenuItem( + GPXDataSetType.getName(app, types), + GPXDataSetType.getImageDrawable(app, types))); } - optionsMenu.show(); + UiUtilities.createListPopupWindow( + themedContext, v, items, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + GpxDisplayItem gpxItem = getGpxItem(); + gpxItem.chartTypes = availableTypes.get(position); + update(); + } + }).show(); } }); yAxisArrow.setVisibility(View.VISIBLE); @@ -697,28 +695,25 @@ public class TrackDetailsMenu { xAxis.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - final PopupMenu optionsMenu = new PopupMenu(v.getContext(), v); - DirectionsDialogs.setupPopUpMenuIcon(optionsMenu); - for (final GPXDataSetAxisType type : GPXDataSetAxisType.values()) { - MenuItem menuItem = optionsMenu.getMenu() - .add(type.getStringId()).setIcon(type.getImageDrawable(app)); - menuItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { - @Override - public boolean onMenuItemClick(MenuItem mItem) { - GpxDisplayItem gpxItem = getGpxItem(); - if (gpxItem != null) { - gpxItem.chartAxisType = type; - gpxItem.chartHighlightPos = -1; - gpxItem.chartMatrix = null; - update(); - return true; - } else { - return false; - } - } - }); + Context themedContext = UiUtilities.getThemedContext(v.getContext(), true); + List items = new ArrayList<>(); + for (GPXDataSetAxisType type : GPXDataSetAxisType.values()) { + items.add(new SimplePopUpMenuItemAdapter.SimplePopUpMenuItem( + app.getString(type.getStringId()), type.getImageDrawable(app))); } - optionsMenu.show(); + UiUtilities.createListPopupWindow(themedContext, + v, items, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + GpxDisplayItem gpxItem = getGpxItem(); + if (gpxItem != null) { + gpxItem.chartAxisType = GPXDataSetAxisType.values()[position]; + gpxItem.chartHighlightPos = -1; + gpxItem.chartMatrix = null; + update(); + } + } + }).show(); } }); xAxisArrow.setVisibility(View.VISIBLE); From 1e0e3b0447835ec67b3c4034f1be42a54b5b4ece Mon Sep 17 00:00:00 2001 From: random r Date: Thu, 11 Jun 2020 08:07:51 +0000 Subject: [PATCH 026/107] Translated using Weblate (Italian) Currently translated at 90.7% (3069 of 3382 strings) --- OsmAnd/res/values-it/strings.xml | 82 +++++++++++++++++--------------- 1 file changed, 44 insertions(+), 38 deletions(-) diff --git a/OsmAnd/res/values-it/strings.xml b/OsmAnd/res/values-it/strings.xml index e11b4bba2d..570099fb41 100644 --- a/OsmAnd/res/values-it/strings.xml +++ b/OsmAnd/res/values-it/strings.xml @@ -160,8 +160,7 @@ Installa altro… Usare le mappe vettoriali per andare oltre questo livello. Minimo livello di zoom vettoriale - - OSM Online con immagini. + OSM online classificazione di mappa con immagini. Non posso effettuare una ricerca offline. Ricerco tramite geo posizione Sistema @@ -688,9 +687,8 @@ PM AM Punto di parcheggio - Ti permette di memorizzare dove l\'auto è parcheggiata e quanto tempo rimane. -\n Puoi trovare il luogo di parcheggio e il tempo rimanente nel pannello di controllo e nel widget sulla mappa. -\nSi può aggiungere un promemoria al calendario di Android. + Ti permette di memorizzare dove l\'auto è parcheggiata e quanto tempo rimane. +\n Puoi trovare il luogo di parcheggio e il tempo rimanente nel pannello di controllo e nel widget sulla mappa. Si può aggiungere un promemoria al calendario di Android. Posizione parcheggio Marca come posizione di parcheggio Elimina marcatore di parcheggio @@ -1257,9 +1255,9 @@ PDI nelle vicinanze Itinerari Tutti - "Questo componente aggiuntivo attiva la funzionalità di registrare e salvare le tue tracce, o manualmente attraverso il pulsante dedicato nella mappa, oppure automaticamente tenendo traccia di tutti i tuoi spostamenti in un file GPX. -\n -\nLe tracce registrate possono essere condivise con i tuoi amici o essere usate per chi contribuire a OSM. Gli atleti possono utilizzate le tracce registrate per monitorare i loro allenamenti. Alcune analisi di base possono essere fatte direttamente in OsmAnd, come il tempo sul giro, la velocità media ecc., le tracce naturalmente possono essere in seguito analizzate con strumenti di analisi esterni." + Questo componente aggiuntivo attiva la funzionalità di registrare e salvare le tue tracce, o manualmente attraverso il pulsante dedicato nella mappa, oppure automaticamente tenendo traccia di tutti i tuoi spostamenti in un file GPX. +\n +\n Le tracce registrate possono essere condivise con i tuoi amici o essere usate per chi contribuire a OSM. Gli atleti possono utilizzate le tracce registrate per monitorare i loro allenamenti. Alcune analisi di base possono essere fatte direttamente in OsmAnd, come il tempo sul giro, la velocità media ecc., le tracce naturalmente possono essere in seguito analizzate con strumenti di analisi esterni. Registrazione viaggio h Durata @@ -2296,20 +2294,20 @@ Modifica il nome Per lunghe distanze: aggiungere delle mete intermedie se non si ottiene un risultato entro 10 minuti. Il nome contiene troppe maiuscole. Continuare\? - "Copertura e qualità approssimativa delle mappe: -\n • Ovest Europa: **** -\n • Est Europa: *** -\n • Russia: *** -\n • Nord America: *** -\n • Sud America: ** -\n • Asia: ** -\n • Giappone e Corea: *** -\n • Medio Oriente: ** -\n • Africa: ** -\n • Antartide: * -\n Molte nazioni del mondo disponibili come download! -\n Dall\'Afghanistan al Zimbabwe, dall\'Australia agli USA. Argentina, Brasile, Canada, Francia, Germania, Messico, Gran Bretagna, Spagna, … -\n" + Copertura e qualità approssimativa delle mappe: +\n • Ovest Europa: **** +\n • Est Europa: *** +\n • Russia: *** +\n • Nord America: *** +\n • Sud America: ** +\n • Asia: ** +\n • Giappone e Corea: *** +\n • Medio Oriente: ** +\n • Africa: ** +\n • Antartide: * +\n Molte nazioni del mondo disponibili da scaricare +\n Dall\'Afghanistan al Zimbabwe, dall\'Australia agli USA. Argentina, Brasile, Canada, Francia, Germania, Messico, Regno Unito, Spagna, … +\n Contribuisci direttamente a OSM \n • Segnala errori nei dati \n • Contribuisci tracce GPX a OSM direttamente dall\'app @@ -2471,15 +2469,15 @@ \n • Supporta i punti intermedi nel tuo itinerario \n • Registra la tua traccia GPX oppure caricarne una e seguirla \n - "Mappa + Mappa \n • Mostra i PDI (punti di interesse) vicino a te \n • Disponi la mappa nella direzione del movimento (o della bussola) -\n • Mostra dove sei e la direzione verso cui sei rivolto +\n • Mostra dove sei e la direzione verso cui sei rivolto \n • Condividi la tua posizione così i tuoi amici possano trovarti \n • Raccogli i luoghi più importanti nei \'Preferiti\' \n • Ti permette di scegliere come visualizzare i nomi nella mappa: in inglese, in lingua locale, oppure secondo la pronuncia \n • Visualizza mattonelle online speciali, vista satellitare (da Bing), diverse sovrapposizioni come turistico/navigazione tracce GPX e strati aggiuntivi con trasparenze personalizzabili -\n" +\n OsmAnd+ (OSM Automatizzata Navigazione Direzioni) è un\'applicazione di navigazione con l\'accesso ai dati delle mappe mondiali, gratuite e di grande qualità di OpenStreetMap (OSM). \n Goditi la navigazione con indicazioni visive e vocali, la visualizzazione dei PDI (punti di interesse), creando e gestendo le tracce GPX, usando visualizzazione delle linee isoipse e dell\'altitudine, scegliendo fra le modalità auto, bici, pedone, modifiche OSM e molto altro. \n @@ -2645,7 +2643,7 @@ Punti intermedi rimossi dai marcatori della mappa Nessun risultato trovato: Totale - "Usa due cifre per la longitudine" + Usa due cifre per la longitudine Viaggio Aggiungi tutti i punti intermedi della traccia oppure scegli una categoria separata. Non fare @@ -2717,13 +2715,14 @@ Sto cercando l’articolo Wiki corrispondente Articolo non trovato Come aprire gli articoli di Wikipedia? - Navigazione -\n • Funziona online (veloce) o offline (nessuna tariffa di roaming quando sei all\'estero) -\n • Guida vocale svolta-dopo-svolta (voci registrate e sintetizzate) + Navigazione +\n • Funziona online (veloce) o offline (nessuna tariffa di roaming quando sei all\'estero) +\n • Guida vocale svolta-dopo-svolta (voci registrate e sintetizzate) \n • Guida sulla corsia opzionale, visualizzazione dei nomi delle strade, e tempo di arrivo stimato \n • Supporto per punti intermedi del tuo itinerario \n • Rielaborazione del percorso automatico ogni volta che si devia -\n • Ricerca di posti per indirizzo, per tipo (es: ristorante, albergo, stazione di servizio, museo) o per coordinate geografiche +\n • Ricerca di posti per indirizzo, per tipo (es: ristorante, albergo, stazione di servizio, museo) o per coordinate geografiche +\n Nascondi la descrizione completa Mostra la descrizione completa Stile per la navigazione marittima e fluviale. Caratteristiche principali: boe, fari, linee e punti per la navigazione su acqua, porti, servizi marittimi e isobate. @@ -3200,7 +3199,7 @@ Camper Predefinita Familiare - Pickup + Pick-up Settimane Mese Mesi @@ -3697,11 +3696,11 @@ Min meridionale Wáray %1$s / %2$s - "Il tuo account Google Play viene addebitato al momento dell\'acquisto di una sottoscrizione. -\n -\n La sottoscrizione si rinnova automaticamente finché non viene cancellata prima del rinnovo. Il tuo account verrà addebitato per il rinnovo periodico (mensile, trimestrale, annuale) solo alla data di rinnovo. -\n -\n Puoi gestire e cancellare la tua sottoscrizione dalle impostazioni del tuo account Google Play." + Il tuo account Google Play viene addebitato al momento dell\'acquisto di una sottoscrizione. +\n +\n La sottoscrizione si rinnova automaticamente finché non viene cancellata prima del rinnovo. Il tuo account verrà addebitato per il rinnovo periodico (mensile, trimestrale, annuale) solo alla data di rinnovo. +\n +\n Puoi gestire e cancellare la tua sottoscrizione dalle impostazioni del tuo account Google Play. Combina PDI di più categorie. Tappa il pulsante per selezionarle tutte, oppure sul lato sinistro per una selezione puntuale. Gujarati Baschiro @@ -3741,7 +3740,7 @@ Nascondere le opzioni le reimposta al loro valore originale. Azioni principali Puoi accedere a queste azioni toccando il pulsante \"Azioni aggiuntive\". - Puoi spostare gli elementi solo all\'interno di questa categoria + Puoi spostare gli elementi solo all\'interno di questa categoria. Seleziona i linguaggi in cui gli articoli di Wikipedia appariranno sulla mappa. Puoi cambiare fra tutte le lingue disponibili mentre leggi questo articolo. Alcuni articoli di Wikipedia potrebbero non essere disponibili nella tua lingua. Cantonese @@ -3769,6 +3768,13 @@ Cerca in base al PDI Puoi Esportare o importare le azioni veloci con i profili dell\'applicazione. Cancellare tutto\? - Sei sicuro di volere cancellare definitivamente l\'azione veloce %d \? + Sei sicuro di volere cancellare definitivamente %d le azioni rapide\? Tempo del blocco schermo + Indica la larghezza del veicolo, alcune restrizioni stradali potrebbero essere applicate per veicoli larghi. + Indica l\'altezza del veicolo, alcune restrizioni stradali potrebbero essere applicate per veicoli alti. + Indica il peso del veicolo, alcune restrizioni stradali potrebbero essere applicate per veicoli pesanti. + Disattivato. Richiede \'Mantieni lo schermo acceso\' sotto \'Tempo di accensione\'. + metri + Controlla la visibilità di dettagli aggiuntivi mostrati su mappa + Mappa notturna \ No newline at end of file From 2b15d6b5896236d5f5e40d1881ef34eba8204bce Mon Sep 17 00:00:00 2001 From: random r Date: Thu, 11 Jun 2020 08:25:09 +0000 Subject: [PATCH 027/107] Translated using Weblate (Italian) Currently translated at 73.6% (2801 of 3804 strings) --- OsmAnd/res/values-it/phrases.xml | 164 +++++++++++++++---------------- 1 file changed, 82 insertions(+), 82 deletions(-) diff --git a/OsmAnd/res/values-it/phrases.xml b/OsmAnd/res/values-it/phrases.xml index 6d28598f92..dd7427f84a 100644 --- a/OsmAnd/res/values-it/phrases.xml +++ b/OsmAnd/res/values-it/phrases.xml @@ -263,7 +263,7 @@ Tatuatore Centro massaggi Parrucchiere - "Manicure " + Manicure Salone di bellezza Costruzione finestre Costruttore orologi @@ -404,7 +404,7 @@ Fan club Club di pesca Club di veterani - "Club Linux " + Club Linux Associazione teatrale Club fotografico Club caccia @@ -502,7 +502,7 @@ Stock sport Korfball Orientamento - "Paddle tennis " + Paddle tennis Surf Opera d\'arte Cannone storico @@ -516,7 +516,7 @@ Centro artistico Postazione di pesca Porto - "Biergarten " + Biergarten Motori agricoli Cestaio Capo @@ -721,7 +721,7 @@ Tipo Coperto Stazione della metropolitana - "Cargo " + Carico Tipo Trasporto di biciclette Riscaldamento @@ -748,7 +748,7 @@ Costi Fumatori Consegna - "Drive in " + Drive in Cibo da asporto Cocktail Microbirrificio @@ -859,7 +859,7 @@ Palo Serbatoio Gasometro - "Silo " + Silo Fondo pensione Quartiere Area residenziale @@ -998,7 +998,7 @@ Prugna Pesca - "Coca " + Coca Kiwi Nettarina Mango @@ -1111,9 +1111,9 @@ 1 (turista) 1S (turistica superiore) 2 (standard) - "2S (standard superiore)" + 2S (standard superiore) 3 (comfort) - "3S (comfort superiore)" + 3S (comfort superiore) 4 (prima classe) 4S (prima classe superiore) 5 (lusso) @@ -1143,23 +1143,23 @@ Schede conto Maestro Maestro non accettato - "American Express (AMEX) " + American Express (AMEX) American Express (AMEX) non accettato - "Diners Club " + Diners Club Diners Club non accettate DKV DKV non accettato UTA Carte UTA non accettato - "Efectivo " + Efectivo Efectivo non accettato - "Girocard " + Girocard Girocard non accettato - "Discover Card " + Discover Card Discover Card non accettata - "Visa Electron " + Visa Electron Visa Electron non accettato - "Litecoin " + Litecoin Litecoin non accettato Assegni PIKEPASS @@ -1170,19 +1170,19 @@ Cryptomonete non accettate Altro Altri metodi di pagamento non accettati - "Routex " + Routex Bancomat Bancomat non accettato Biglietti prepagati JCB - "Quick " - "Eurowag " - "E‑ZPass " + Quick + Eurowag + E‑ZPass E‑ZPass non accettato EuroShell - "KITCard " + KITCard KITCard non accettato - "Westfalen " + Westfalen Bonifici Bonifici non accettati Pagamenti tramite SMS @@ -1221,7 +1221,7 @@ Cartongesso Stazione di monitoraggio Paese - "Base jumping " + Base jumping Giainismo Bahaismo Scientologismo @@ -1315,41 +1315,41 @@ Portafogli elettronici non accettati Laser V PAY - "Dogecoin " + Dogecoin Dogecoin non accettato - "Cibus " + Cibus AvantCard AvantCard non accettato MEP MEP non accettato - "Minipay " + Minipay Minipay non accettato MiniCash MiniCash non accettato - "Moneo " + Moneo Moneo non accettato - "Monedero 4B " + Monedero 4B Monedero 4B non accettato - "Monedero " + Monedero Monedero non accettato - "BankAxess " + BankAxess BankAxess non accettato - "Coinkite " + Coinkite Coinkite non accettato - "Roadrunner " + Roadrunner SVG SVG non accettato - "OV-Chipkaart " + OV-Chipkaart OV-Chipkaart non accettato - "Oyster " + Oyster SUBE - "Via Verde " + Via Verde Via Verde non accettato Buoni pasto Buoni pasto non accettati - "U-Key " + U-Key U-Key non accettato - "PRO100 " + PRO100 Yandex. Money Yandex. Money non accettato Vegetariana @@ -1361,7 +1361,7 @@ Senza glutine Dieta senza glutine: no - "Drive-in: no " + Drive-in: no @@ -1438,7 +1438,7 @@ Carbone Rame Diamante - "Dolomite " + Dolomite Gas Oro Grafite @@ -1537,7 +1537,7 @@ Superficie: neve Autobus Filobus - "Tram " + Tram Treno Funicolare Traghetto @@ -1578,7 +1578,7 @@ Ufficio forestale Carburante 91UL Carburante 100LL - "Autogas " + Autogas Carburante Jet A-1 Carburante AdBlue Lane di fuga @@ -1663,7 +1663,7 @@ Filarmonica Dramma Opera - "Cabaret " + Cabaret Commedia Marionetta Balletto @@ -1752,17 +1752,17 @@ Contenitori Lunghezza Centro fitness - "Fitness " + Fitness Biliardo Forno a microonde: sì Forno a microonde: no Riscaldatore di acqua: sì Riscaldatore di acqua: no Tipo: superficie - "Dojo " + Dojo Giochi Gaelic - "Netball " - "Judo " + Netball + Judo Disc golf Boxe Nome ufficiale @@ -1784,7 +1784,7 @@ Aspirapolvere Sgancio a pulsante: sì Sgancio a pulsante: no - "Solarium " + Solarium Pilastro Stagno Parete @@ -1817,12 +1817,12 @@ Militare/pubblico Privato Pozzo di ventilazione - "Troika " + Troika Carta Troika non accettata Telescopio Ottico Radio - "Gamma " + Gamma Diametro Utilizzo: spionaggio Utilizzo: spionaggio @@ -1881,28 +1881,28 @@ Frutti di mare Colazione Bistecca - "Tapas " - "Heuriger " + Tapas + Heuriger Curry - "Buschenschank " + Buschenschank Griglia Bagel - "Pasta " + Pasta Succo di frutta Negozio tè Zuppa Hot Dog Insalata - "Bistro " + Bistrò Cous cous Pollo fritto - "Dessert " + Dolce Mensa - "Tacos " - "Falafel " - "Smoothie " - "Gyros " + Tacos + Falafel + Frullato + Gyros Crepes Carne Cioccolato @@ -1960,7 +1960,7 @@ Cubano Britannico Latino-americana - "Nepalese " + Nepalese Mongolo Mediorientale Ucraino @@ -1976,12 +1976,12 @@ Inglese Pakistano Taiwan - "Tex-mex " + Tex-mex Olandese Siriano Australiano Egiziano - "Senegalese " + Senegalese Ebraico Bulgaro Tibetano @@ -2097,21 +2097,21 @@ Adozione: sì Adozione: no Direzione: nord - Direzione: nord nord est + Direzione: nord-nordest Direzione: nord est Direzione: est nord est Direzione: est Direzione: est sud est Direzione: sud est - Direzione: sud sud est + Direzione: sud-sudest Direzione: sud - Direzione: sud sud ovest + Direzione: sud-sudovest Direzione: sud ovest Direzione: ovest sud ovest Direzione: ovest Direzione: ovest nord ovest Direzione: nord ovest - Direzione: nord nord ovest + Direzione: nord-nordovest Direzione: avanti Direzione: sopra Direzione: sotto @@ -2220,7 +2220,7 @@ Uscita CEE blu Uscita Schuko Stato di servizio - "Via ferrata " + Via ferrata Difficoltà Condivisione di barche Potabilizzazione acqua @@ -2247,14 +2247,14 @@ Ufficio consulente fiscale Alloggio Alloggio di caccia - "Tenrikyo " + Tenrikyo Unito Ortodosso bulgaro Apostolico armeno Ortodosso copto Ormeggio ancoraggio Ormeggio - "Africaans wiki " + Wiki in Africaans Tornello a tutta altezza Scaletta Pilone di sollevamento aereo @@ -2289,9 +2289,9 @@ Principale Stagno Ruscello - "Balka " + Balka Display: sì - "Display: no " + Display: no Display analogico Display digitale @@ -2308,19 +2308,19 @@ Jetski: no Kayak: sì Kayak: no - "Tartan " + Tartan Tipo Checkpoint Ciotole Accesso all\'acqua - "Resort " + Villaggio turistico Terreno ricreativo - "Donut " - "Crepe " + Ciambella + Crepe Panificio Spuntino - "Yogurt " - "Cajun " - "Standard " + Yogurt + Cajun + Standard Argilla Necessità di manutenzione Pompa @@ -2342,8 +2342,8 @@ Ghiaccio: sì Ghiaccio: no Alimenti surgelati - "CHAdeMO " - "Schuko " + CHAdeMO + Schuko Bassa Medio Griglia barbecue: sì @@ -2504,7 +2504,7 @@ Raccolta: tabacco Raccolta: fragole Raccolta: verdura, fiori - "Raccolta: manioca" + Raccolta: manioca Raccolta: mirtillo rosso Sorveglianza: esterna Sorveglianza: luogo pubblico From c73574a0176892e0e3f9611c6d17705095a32409 Mon Sep 17 00:00:00 2001 From: veliymolfar Date: Thu, 11 Jun 2020 17:07:02 +0300 Subject: [PATCH 028/107] app bar shadow blink fix --- .../plus/settings/fragments/BaseSettingsFragment.java | 10 ++++++++++ .../settings/fragments/ConfigureMenuItemsFragment.java | 1 + .../settings/fragments/ConfigureMenuRootFragment.java | 1 + 3 files changed, 12 insertions(+) diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/BaseSettingsFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/BaseSettingsFragment.java index d0ed8f7515..c6675831b6 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/BaseSettingsFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/BaseSettingsFragment.java @@ -14,6 +14,7 @@ import android.text.style.StyleSpan; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.view.animation.Animation; import android.widget.CompoundButton; import android.widget.ImageView; import android.widget.TextView; @@ -373,6 +374,15 @@ public abstract class BaseSettingsFragment extends PreferenceFragmentCompat impl } } + @Nullable + @Override + public Animation onCreateAnimation(int transit, boolean enter, int nextAnim) { + Animation anim = new Animation() { + }; + anim.setDuration(0); + return anim; + } + @Override public void onAppModeChanged(ApplicationMode appMode) { this.appMode = appMode; diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/ConfigureMenuItemsFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/ConfigureMenuItemsFragment.java index f4ed5187ca..347514ac18 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/ConfigureMenuItemsFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/ConfigureMenuItemsFragment.java @@ -106,6 +106,7 @@ public class ConfigureMenuItemsFragment extends BaseOsmAndFragment ConfigureMenuItemsFragment fragment = new ConfigureMenuItemsFragment(); fragment.setScreenType(type); fragment.setAppMode(appMode); + fragment.disableTransitionAnimation(); fm.beginTransaction() .replace(R.id.fragmentContainer, fragment, TAG) .addToBackStack(CONFIGURE_MENU_ITEMS_TAG) diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/ConfigureMenuRootFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/ConfigureMenuRootFragment.java index 330f1c0a18..6307cd065d 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/ConfigureMenuRootFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/ConfigureMenuRootFragment.java @@ -74,6 +74,7 @@ public class ConfigureMenuRootFragment extends BaseOsmAndFragment { ConfigureMenuRootFragment fragment = new ConfigureMenuRootFragment(); fragment.setAppMode(appMode); fragment.setTargetFragment(target, 0); + fragment.disableTransitionAnimation(); fragmentManager.beginTransaction() .replace(R.id.fragmentContainer, fragment, TAG) .addToBackStack(null) From 26c4bd276b1f8e1740b33bf487b5edd72f24bf8e Mon Sep 17 00:00:00 2001 From: Dmitry Date: Thu, 11 Jun 2020 17:21:49 +0300 Subject: [PATCH 029/107] Add images for vessel width dialog --- .../drawable/img_help_vessel_width_day.xml | 59 +++++++++++++++++++ .../drawable/img_help_vessel_width_night.xml | 59 +++++++++++++++++++ 2 files changed, 118 insertions(+) create mode 100644 OsmAnd/res/drawable/img_help_vessel_width_day.xml create mode 100644 OsmAnd/res/drawable/img_help_vessel_width_night.xml diff --git a/OsmAnd/res/drawable/img_help_vessel_width_day.xml b/OsmAnd/res/drawable/img_help_vessel_width_day.xml new file mode 100644 index 0000000000..4d45ee3bf2 --- /dev/null +++ b/OsmAnd/res/drawable/img_help_vessel_width_day.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + diff --git a/OsmAnd/res/drawable/img_help_vessel_width_night.xml b/OsmAnd/res/drawable/img_help_vessel_width_night.xml new file mode 100644 index 0000000000..70db48f32e --- /dev/null +++ b/OsmAnd/res/drawable/img_help_vessel_width_night.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + From 02ba511abfa472cd216e4385294c1b266e8df19e Mon Sep 17 00:00:00 2001 From: Dima-1 Date: Thu, 11 Jun 2020 18:41:59 +0300 Subject: [PATCH 030/107] Add vessel's height for Boat navigation --- OsmAnd/res/values/strings.xml | 4 +++ .../MapRouteInfoMenu.java | 3 ++ .../NauticalBridgeHeightWarningCard.java | 23 +++++++++++++++ .../osmand/plus/routing/RoutingHelper.java | 4 +++ .../VehicleParametersBottomSheet.java | 5 +--- .../bottomsheets/VehicleSizeAssets.java | 28 +++++++++++++------ .../fragments/VehicleParametersFragment.java | 21 ++++++++------ 7 files changed, 68 insertions(+), 20 deletions(-) create mode 100644 OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/NauticalBridgeHeightWarningCard.java diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index 367d48f13f..5ff7259325 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -11,6 +11,10 @@ Thx - Hardy --> + Set vessel width to avoid narrow bridges + Set vessel height to avoid low bridges. Keep in mind, if the bridge is movable, we will use its height in the open state. + You can set vessel height to avoid low bridges. Keep in mind, if the bridge is movable, we will use its height in the open state. + Set vessel height Applying these changes will clear the cached data for this tile source Add online source diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/MapRouteInfoMenu.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/MapRouteInfoMenu.java index 9e623cd7bd..c2170dd14b 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/MapRouteInfoMenu.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/MapRouteInfoMenu.java @@ -44,6 +44,7 @@ import net.osmand.data.FavouritePoint; import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.data.RotatedTileBox; +import net.osmand.plus.routepreparationmenu.cards.NauticalBridgeHeightWarningCard; import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.FavouritesDbHelper; import net.osmand.plus.FavouritesDbHelper.FavoritesListener; @@ -633,6 +634,8 @@ public class MapRouteInfoMenu implements IRouteInformationListener, CardListener } else if (routeCalculationInProgress) { if (app.getRoutingHelper().isPublicTransportMode()) { menuCards.add(new PublicTransportBetaWarningCard(mapActivity)); + } else if (app.getRoutingHelper().isBoatMode()) { + menuCards.add(new NauticalBridgeHeightWarningCard(mapActivity)); } else if (app.getTargetPointsHelper().hasTooLongDistanceToNavigate()) { menuCards.add(new LongDistanceWarningCard(mapActivity)); } diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/NauticalBridgeHeightWarningCard.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/NauticalBridgeHeightWarningCard.java new file mode 100644 index 0000000000..897e02afeb --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/NauticalBridgeHeightWarningCard.java @@ -0,0 +1,23 @@ +package net.osmand.plus.routepreparationmenu.cards; + +import androidx.annotation.NonNull; + +import net.osmand.plus.R; +import net.osmand.plus.activities.MapActivity; +import net.osmand.plus.settings.fragments.BaseSettingsFragment; + +public class NauticalBridgeHeightWarningCard extends WarningCard { + + public NauticalBridgeHeightWarningCard(@NonNull MapActivity mapActivity) { + super(mapActivity); + imageId = R.drawable.ic_action_sail_boat_dark; + title = mapActivity.getString(R.string.vessel_height_warning); + linkText = mapActivity.getString(R.string.vessel_height_warning_link); + } + + @Override + protected void onLinkClicked() { + BaseSettingsFragment.showInstance(mapActivity, BaseSettingsFragment.SettingsScreenType.VEHICLE_PARAMETERS, + mapActivity.getRoutingHelper().getAppMode()); + } +} diff --git a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java index 9a4fb32f83..78524a4d74 100644 --- a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java +++ b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java @@ -1314,6 +1314,10 @@ public class RoutingHelper { return mode.isDerivedRoutingFrom(ApplicationMode.PUBLIC_TRANSPORT); } + public boolean isBoatMode() { + return mode.isDerivedRoutingFrom(ApplicationMode.BOAT); + } + public boolean isOsmandRouting() { return mode.getRouteService() == RouteService.OSMAND; } diff --git a/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleParametersBottomSheet.java b/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleParametersBottomSheet.java index 2e50c74ae0..3f28d8bf6c 100644 --- a/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleParametersBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleParametersBottomSheet.java @@ -9,7 +9,6 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.recyclerview.widget.RecyclerView; @@ -50,11 +49,9 @@ public class VehicleParametersBottomSheet extends BasePreferenceBottomSheet { final SizePreference preference = (SizePreference) getPreference(); View mainView = UiUtilities.getMaterialInflater(app, nightMode) .inflate(R.layout.bottom_sheet_item_edit_with_recyclerview, null); - String key = preference.getKey(); TextView title = mainView.findViewById(R.id.title); title.setText(preference.getTitle().toString()); - String parameterName = key.substring(key.lastIndexOf("_") + 1); - VehicleSizeAssets vehicleSizeAssets = VehicleSizeAssets.getAssets(parameterName); + VehicleSizeAssets vehicleSizeAssets = preference.getAssets(); if (vehicleSizeAssets != null) { ImageView imageView = mainView.findViewById(R.id.image_view); imageView.setImageDrawable(app.getUIUtilities() diff --git a/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleSizeAssets.java b/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleSizeAssets.java index c40e99867c..72670110af 100644 --- a/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleSizeAssets.java +++ b/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleSizeAssets.java @@ -1,26 +1,38 @@ package net.osmand.plus.settings.bottomsheets; import net.osmand.plus.R; -import net.osmand.router.GeneralRouter; + +import static net.osmand.router.GeneralRouter.*; public enum VehicleSizeAssets { - WIDTH(GeneralRouter.VEHICLE_WIDTH, R.drawable.img_help_width_limit_day, R.drawable.img_help_width_limit_night, + BOAT_HEIGHT(VEHICLE_HEIGHT, GeneralRouterProfile.BOAT, R.drawable.img_help_vessel_height_day, + R.drawable.img_help_vessel_height_night, + R.string.vessel_height_limit_description, R.string.shared_string_meters, R.string.m), + BOAT_WIDTH(VEHICLE_WIDTH, GeneralRouterProfile.BOAT, R.drawable.img_help_vessel_width_day, + R.drawable.img_help_vessel_width_night, + R.string.vessel_width_limit_description, R.string.shared_string_meters, R.string.m), + WIDTH(VEHICLE_WIDTH, GeneralRouterProfile.CAR, R.drawable.img_help_width_limit_day, + R.drawable.img_help_width_limit_night, R.string.width_limit_description, R.string.shared_string_meters, R.string.m), - HEIGHT(GeneralRouter.VEHICLE_HEIGHT, R.drawable.img_help_height_limit_day, R.drawable.img_help_height_limit_night, + HEIGHT(VEHICLE_HEIGHT, GeneralRouterProfile.CAR, R.drawable.img_help_height_limit_day, + R.drawable.img_help_height_limit_night, R.string.height_limit_description, R.string.shared_string_meters, R.string.m), - WEIGHT(GeneralRouter.VEHICLE_WEIGHT, R.drawable.img_help_weight_limit_day, R.drawable.img_help_weight_limit_night, + WEIGHT(VEHICLE_WEIGHT, GeneralRouterProfile.CAR, R.drawable.img_help_weight_limit_day, + R.drawable.img_help_weight_limit_night, R.string.weight_limit_description, R.string.shared_string_tones, R.string.metric_ton); String routerParameterName; + GeneralRouterProfile routerProfile; int dayIconId; int nightIconId; int descriptionRes; int metricRes; int metricShortRes; - VehicleSizeAssets(String routerParameterName, int dayIconId, int nightIconId, int descriptionRes, int metricRes, - int metricShortRes) { + VehicleSizeAssets(String routerParameterName, GeneralRouterProfile routerProfile, int dayIconId, int nightIconId, + int descriptionRes, int metricRes, int metricShortRes) { this.routerParameterName = routerParameterName; + this.routerProfile = routerProfile; this.dayIconId = dayIconId; this.nightIconId = nightIconId; this.descriptionRes = descriptionRes; @@ -28,9 +40,9 @@ public enum VehicleSizeAssets { this.metricShortRes = metricShortRes; } - public static VehicleSizeAssets getAssets(String parameterName) { + public static VehicleSizeAssets getAssets(String parameterName, GeneralRouterProfile routerProfile) { for (VehicleSizeAssets type : VehicleSizeAssets.values()) { - if (type.routerParameterName.equals(parameterName)) { + if (type.routerParameterName.equals(parameterName) && type.routerProfile.equals(routerProfile)) { return type; } } diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/VehicleParametersFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/VehicleParametersFragment.java index daaa3fd244..045f46de15 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/VehicleParametersFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/VehicleParametersFragment.java @@ -20,6 +20,7 @@ import net.osmand.plus.settings.bottomsheets.VehicleSizeAssets; import net.osmand.plus.settings.preferences.ListPreferenceEx; import net.osmand.plus.settings.preferences.SizePreference; import net.osmand.router.GeneralRouter; +import net.osmand.router.GeneralRouter.GeneralRouterProfile; import java.util.Map; @@ -48,21 +49,22 @@ public class VehicleParametersFragment extends BaseSettingsFragment implements O if (routeService == RouteService.OSMAND) { GeneralRouter router = app.getRouter(mode); if (router != null) { + GeneralRouterProfile routerProfile = router.getProfile(); Map parameters = router.getParameters(); GeneralRouter.RoutingParameter vehicleHeight = parameters.get(GeneralRouter.VEHICLE_HEIGHT); if (vehicleHeight != null) { - setupCustomRoutingPropertyPref(vehicleHeight); + setupCustomRoutingPropertyPref(vehicleHeight, routerProfile); } GeneralRouter.RoutingParameter vehicleWeight = parameters.get(GeneralRouter.VEHICLE_WEIGHT); if (vehicleWeight != null) { - setupCustomRoutingPropertyPref(vehicleWeight); + setupCustomRoutingPropertyPref(vehicleWeight, routerProfile); } GeneralRouter.RoutingParameter vehicleWidth = parameters.get(GeneralRouter.VEHICLE_WIDTH); if (vehicleWidth != null) { - setupCustomRoutingPropertyPref(vehicleWidth); + setupCustomRoutingPropertyPref(vehicleWidth, routerProfile); } - if (router.getProfile() != GeneralRouter.GeneralRouterProfile.PUBLIC_TRANSPORT) { + if (router.getProfile() != GeneralRouterProfile.PUBLIC_TRANSPORT) { setupDefaultSpeedPref(); } } @@ -71,7 +73,8 @@ public class VehicleParametersFragment extends BaseSettingsFragment implements O } } - private void setupCustomRoutingPropertyPref(GeneralRouter.RoutingParameter parameter) { + private void setupCustomRoutingPropertyPref(GeneralRouter.RoutingParameter parameter, + GeneralRouterProfile routerProfile) { OsmandApplication app = getMyApplication(); if (app == null) { return; @@ -80,8 +83,10 @@ public class VehicleParametersFragment extends BaseSettingsFragment implements O String title = SettingsBaseActivity.getRoutingStringPropertyName(app, parameterId, parameter.getName()); String description = SettingsBaseActivity.getRoutingStringPropertyDescription(app, parameterId, parameter.getDescription()); - String defValue = parameter.getType() == GeneralRouter.RoutingParameterType.NUMERIC ? ROUTING_PARAMETER_NUMERIC_DEFAULT : ROUTING_PARAMETER_SYMBOLIC_DEFAULT; - OsmandSettings.StringPreference pref = (OsmandSettings.StringPreference) app.getSettings().getCustomRoutingProperty(parameterId, defValue); + String defValue = parameter.getType() == GeneralRouter.RoutingParameterType.NUMERIC + ? ROUTING_PARAMETER_NUMERIC_DEFAULT : ROUTING_PARAMETER_SYMBOLIC_DEFAULT; + OsmandSettings.StringPreference pref = (OsmandSettings.StringPreference) app.getSettings() + .getCustomRoutingProperty(parameterId, defValue); Object[] values = parameter.getPossibleValues(); String[] valuesStr = new String[values.length]; for (int i = 0; i < values.length; i++) { @@ -96,7 +101,7 @@ public class VehicleParametersFragment extends BaseSettingsFragment implements O } SizePreference vehicleSizePref = new SizePreference(ctx); vehicleSizePref.setKey(pref.getId()); - vehicleSizePref.setAssets(VehicleSizeAssets.getAssets(parameterId)); + vehicleSizePref.setAssets(VehicleSizeAssets.getAssets(parameterId, routerProfile)); vehicleSizePref.setDefaultValue(defValue); vehicleSizePref.setTitle(title); vehicleSizePref.setEntries(entriesStr); From bd81e430b95d8e834ae3e0f9599f6ee8b5edc3db Mon Sep 17 00:00:00 2001 From: Victor Shcherb Date: Thu, 11 Jun 2020 18:52:30 +0200 Subject: [PATCH 031/107] Fix #5175 --- .../net/osmand/router/BinaryRoutePlanner.java | 7 +++ .../osmand/router/RoutePlannerFrontEnd.java | 63 +++++-------------- .../net/osmand/router/RoutingContext.java | 2 +- 3 files changed, 25 insertions(+), 47 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/router/BinaryRoutePlanner.java b/OsmAnd-java/src/main/java/net/osmand/router/BinaryRoutePlanner.java index f57a4f1c3d..6bffd147a7 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/BinaryRoutePlanner.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/BinaryRoutePlanner.java @@ -11,6 +11,7 @@ import java.util.PriorityQueue; import net.osmand.PlatformUtil; import net.osmand.binary.RouteDataObject; +import net.osmand.data.LatLon; import net.osmand.osm.MapRenderingTypes; import net.osmand.util.MapUtils; @@ -859,6 +860,12 @@ public class BinaryRoutePlanner { public int preciseX; public int preciseY; public List others; + + public LatLon getPreciseLatLon() { + return new LatLon(MapUtils.get31LatitudeY(preciseY), MapUtils.get31LongitudeX(preciseX)); + + } + } public static class RouteSegment { diff --git a/OsmAnd-java/src/main/java/net/osmand/router/RoutePlannerFrontEnd.java b/OsmAnd-java/src/main/java/net/osmand/router/RoutePlannerFrontEnd.java index 3df6b65125..e8f2fe3707 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/RoutePlannerFrontEnd.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/RoutePlannerFrontEnd.java @@ -243,9 +243,7 @@ public class RoutePlannerFrontEnd { return null; } ctx.calculationProgress.nextIteration(); - List res = searchRoute(ctx, points, routeDirection); - // make start and end more precise - makeStartEndPointsPrecise(res, start, end, intermediates); + List res = searchRouteImpl(ctx, points, routeDirection); if (res != null) { new RouteResultPreparation().printResults(ctx, start, end, res); } @@ -256,33 +254,6 @@ public class RoutePlannerFrontEnd { if (res.size() > 0) { updateResult(res.get(0), start, true); updateResult(res.get(res.size() - 1), end, false); - if (intermediates != null) { - int k = 1; - for (int i = 0; i < intermediates.size(); i++) { - LatLon ll = intermediates.get(i); - int px = MapUtils.get31TileNumberX(ll.getLongitude()); - int py = MapUtils.get31TileNumberY(ll.getLatitude()); - for (; k < res.size(); k++) { - double currentsDist = projectDistance(res, k, px, py); - if (currentsDist < 500 * 500) { - for (int k1 = k + 1; k1 < res.size(); k1++) { - double c2 = projectDistance(res, k1, px, py); - if (c2 < currentsDist) { - k = k1; - currentsDist = c2; - } else if (k1 - k > 15) { - break; - } - } - updateResult(res.get(k), ll, false); - if (k < res.size() - 1) { - updateResult(res.get(k + 1), ll, true); - } - break; - } - } - } - } } } @@ -474,13 +445,18 @@ public class RoutePlannerFrontEnd { } - private List searchRoute(final RoutingContext ctx, List points, PrecalculatedRouteDirection routeDirection) + private List searchRouteImpl(final RoutingContext ctx, List points, PrecalculatedRouteDirection routeDirection) throws IOException, InterruptedException { if (points.size() <= 2) { + // simple case 2 points only if (!useSmartRouteRecalculation) { ctx.previouslyCalculatedRoute = null; } - return searchRoute(ctx, points.get(0), points.get(1), routeDirection); + pringGC(ctx, true); + List res = searchRouteInternalPrepare(ctx, points.get(0), points.get(1), routeDirection); + pringGC(ctx, false); + makeStartEndPointsPrecise(res, points.get(0).getPreciseLatLon(), points.get(1).getPreciseLatLon(), null); + return res; } ArrayList firstPartRecalculatedRoute = null; @@ -522,7 +498,7 @@ public class RoutePlannerFrontEnd { local.visitor = ctx.visitor; local.calculationProgress = ctx.calculationProgress; List res = searchRouteInternalPrepare(local, points.get(i), points.get(i + 1), routeDirection); - + makeStartEndPointsPrecise(res, points.get(i).getPreciseLatLon(), points.get(i + 1).getPreciseLatLon(), null); results.addAll(res); ctx.distinctLoadedTiles += local.distinctLoadedTiles; ctx.loadedTiles += local.loadedTiles; @@ -545,27 +521,22 @@ public class RoutePlannerFrontEnd { } - @SuppressWarnings("static-access") - private List searchRoute(final RoutingContext ctx, RouteSegmentPoint start, RouteSegmentPoint end, - PrecalculatedRouteDirection routeDirection) throws IOException, InterruptedException { - if (ctx.SHOW_GC_SIZE) { - long h1 = ctx.runGCUsedMemory(); + private void pringGC(final RoutingContext ctx, boolean before) { + if (RoutingContext.SHOW_GC_SIZE && before) { + long h1 = RoutingContext.runGCUsedMemory(); float mb = (1 << 20); log.warn("Used before routing " + h1 / mb + " actual"); - } - List result = searchRouteInternalPrepare(ctx, start, end, routeDirection); - if (RoutingContext.SHOW_GC_SIZE) { + } else if (RoutingContext.SHOW_GC_SIZE && !before) { int sz = ctx.global.size; log.warn("Subregion size " + ctx.subregionTiles.size() + " " + " tiles " + ctx.indexedSubregions.size()); - ctx.runGCUsedMemory(); - long h1 = ctx.runGCUsedMemory(); + RoutingContext.runGCUsedMemory(); + long h1 = RoutingContext.runGCUsedMemory(); ctx.unloadAllData(); - ctx.runGCUsedMemory(); - long h2 = ctx.runGCUsedMemory(); + RoutingContext.runGCUsedMemory(); + long h2 = RoutingContext.runGCUsedMemory(); float mb = (1 << 20); log.warn("Unload context : estimated " + sz / mb + " ?= " + (h1 - h2) / mb + " actual"); } - return result; } diff --git a/OsmAnd-java/src/main/java/net/osmand/router/RoutingContext.java b/OsmAnd-java/src/main/java/net/osmand/router/RoutingContext.java index 2e657a8c5c..2c44940dff 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/RoutingContext.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/RoutingContext.java @@ -36,7 +36,7 @@ import net.osmand.router.RoutePlannerFrontEnd.RouteCalculationMode; public class RoutingContext { - public static final boolean SHOW_GC_SIZE = false; + public static boolean SHOW_GC_SIZE = false; private final static Log log = PlatformUtil.getLog(RoutingContext.class); From 45e192b62e98698bc7e52ab6319f3959c41ff3e2 Mon Sep 17 00:00:00 2001 From: max-klaus Date: Thu, 11 Jun 2020 20:19:19 +0300 Subject: [PATCH 032/107] Update material libtrary to beta01 --- OsmAnd/build.gradle | 2 +- OsmAnd/res/layout/fragment_terrain.xml | 2 +- OsmAnd/src/net/osmand/plus/UiUtilities.java | 69 ++++++++++++----- .../plus/srtmplugin/TerrainFragment.java | 75 +++++++------------ 4 files changed, 82 insertions(+), 66 deletions(-) diff --git a/OsmAnd/build.gradle b/OsmAnd/build.gradle index 6bebf5f67b..79c1027c84 100644 --- a/OsmAnd/build.gradle +++ b/OsmAnd/build.gradle @@ -524,7 +524,7 @@ dependencies { implementation 'androidx.gridlayout:gridlayout:1.0.0' implementation 'androidx.cardview:cardview:1.0.0' implementation 'androidx.appcompat:appcompat:1.1.0' - implementation 'com.google.android.material:material:1.2.0-alpha06' + implementation 'com.google.android.material:material:1.2.0-beta01' implementation 'androidx.browser:browser:1.0.0' implementation 'androidx.preference:preference:1.1.0' implementation fileTree(include: ['gnu-trove-osmand.jar', 'icu4j-49_1_patched.jar'], dir: 'libs') diff --git a/OsmAnd/res/layout/fragment_terrain.xml b/OsmAnd/res/layout/fragment_terrain.xml index c077d1a765..11fa1aa1f0 100644 --- a/OsmAnd/res/layout/fragment_terrain.xml +++ b/OsmAnd/res/layout/fragment_terrain.xml @@ -275,7 +275,7 @@ android:textSize="@dimen/default_list_text_size" tools:text="3" /> - listAdapter; + private Slider.OnChangeListener transparencySliderChangeListener = new Slider.OnChangeListener() { + @Override + public void onValueChange(@NonNull Slider slider, float value, boolean fromUser) { + if (fromUser) { + String transparencyStr = (int) value + "%"; + transparencyValueTv.setText(transparencyStr); + srtmPlugin.setTerrainTransparency((int) Math.ceil(value * 2.55), srtmPlugin.getTerrainMode()); + } + } + }; + + private RangeSlider.OnChangeListener zoomSliderChangeListener = new RangeSlider.OnChangeListener() { + @Override + public void onValueChange(@NonNull RangeSlider slider, float value, boolean fromUser) { + List values = slider.getValues(); + if (values.size() > 0) { + minZoomTv.setText(String.valueOf(values.get(0).intValue())); + maxZoomTv.setText(String.valueOf(values.get(1).intValue())); + srtmPlugin.setTerrainZoomValues(values.get(0).intValue(), values.get(1).intValue(), srtmPlugin.getTerrainMode()); + } + } + }; + @Override public void onCreate(@Nullable Bundle savedInstanceState) { app = requireMyApplication(); @@ -175,10 +199,8 @@ public class TerrainFragment extends BaseOsmAndFragment implements View.OnClickL UiUtilities.setupSlider(transparencySlider, nightMode, colorProfile); UiUtilities.setupSlider(zoomSlider, nightMode, colorProfile, true); - transparencySlider.addOnSliderTouchListener(this); - zoomSlider.addOnSliderTouchListener(this); - transparencySlider.addOnChangeListener(this); - zoomSlider.addOnChangeListener(this); + transparencySlider.addOnChangeListener(transparencySliderChangeListener); + zoomSlider.addOnChangeListener(zoomSliderChangeListener); transparencySlider.setValueTo(100); transparencySlider.setValueFrom(0); zoomSlider.setValueTo(TERRAIN_MAX_ZOOM); @@ -207,47 +229,6 @@ public class TerrainFragment extends BaseOsmAndFragment implements View.OnClickL } } - @Override - public void onStartTrackingTouch(@NonNull Slider slider) { - - } - - @Override - public void onStopTrackingTouch(@NonNull Slider slider) { - switch (slider.getId()) { - case R.id.transparency_slider: - double d = slider.getValue() * 2.55; - srtmPlugin.setTerrainTransparency((int) Math.ceil(d), srtmPlugin.getTerrainMode()); - break; - case R.id.zoom_slider: - List values = slider.getValues(); - if (values.size() > 0) { - srtmPlugin.setTerrainZoomValues(values.get(0).intValue(), values.get(1).intValue(), srtmPlugin.getTerrainMode()); - } - break; - } - updateLayers(); - } - - @Override - public void onValueChange(@NonNull Slider slider, float value, boolean fromUser) { - if (fromUser) { - switch (slider.getId()) { - case R.id.transparency_slider: - String transparency = (int) value + "%"; - transparencyValueTv.setText(transparency); - break; - case R.id.zoom_slider: - List values = slider.getValues(); - if (values.size() > 0) { - minZoomTv.setText(String.valueOf(values.get(0).intValue())); - maxZoomTv.setText(String.valueOf(values.get(1).intValue())); - } - break; - } - } - } - private void updateUiMode() { TerrainMode mode = srtmPlugin.getTerrainMode(); if (terrainEnabled) { From f07ae7b3e39a342c5099de7ee4c1f3ec4a41b537 Mon Sep 17 00:00:00 2001 From: max-klaus Date: Thu, 11 Jun 2020 20:32:52 +0300 Subject: [PATCH 033/107] Raster plugin small fixes --- .../rastermaps/OsmandRasterMapsPlugin.java | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/rastermaps/OsmandRasterMapsPlugin.java b/OsmAnd/src/net/osmand/plus/rastermaps/OsmandRasterMapsPlugin.java index 58af80e351..e120743e98 100644 --- a/OsmAnd/src/net/osmand/plus/rastermaps/OsmandRasterMapsPlugin.java +++ b/OsmAnd/src/net/osmand/plus/rastermaps/OsmandRasterMapsPlugin.java @@ -35,9 +35,6 @@ import net.osmand.plus.ContextMenuItem; import net.osmand.plus.DialogListItemAdapter; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandPlugin; -import net.osmand.plus.settings.backend.OsmandSettings; -import net.osmand.plus.settings.backend.OsmandSettings.CommonPreference; -import net.osmand.plus.settings.backend.OsmandSettings.LayerTransparencySeekbarMode; import net.osmand.plus.R; import net.osmand.plus.SQLiteTileSource; import net.osmand.plus.UiUtilities; @@ -48,6 +45,9 @@ import net.osmand.plus.activities.MapActivityLayers; import net.osmand.plus.dashboard.DashboardOnMap.DashboardType; import net.osmand.plus.dialogs.RasterMapMenu; import net.osmand.plus.quickaction.QuickActionType; +import net.osmand.plus.settings.backend.OsmandSettings; +import net.osmand.plus.settings.backend.OsmandSettings.CommonPreference; +import net.osmand.plus.settings.backend.OsmandSettings.LayerTransparencySeekbarMode; import net.osmand.plus.views.MapTileLayer; import net.osmand.plus.views.OsmandMapTileView; import net.osmand.util.Algorithms; @@ -184,11 +184,11 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin { } } - public void selectMapOverlayLayer(@NonNull final OsmandMapTileView mapView, + public void selectMapOverlayLayer(@NonNull OsmandMapTileView mapView, @NonNull final CommonPreference mapPref, @NonNull final CommonPreference exMapPref, boolean force, - @NonNull final MapActivity mapActivity, + @NonNull MapActivity mapActivity, @Nullable final OnMapSelectedCallback callback) { final WeakReference mapActivityRef = new WeakReference<>(mapActivity); if (!force && exMapPref.get() != null) { @@ -213,12 +213,12 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin { builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { - MapActivity activity = mapActivityRef.get(); - if (activity == null || activity.isFinishing()) { + MapActivity mapActivity = mapActivityRef.get(); + if (mapActivity == null || mapActivity.isFinishing()) { return; } if (which == items.length - 1) { - installMapLayers(activity, new ResultMatcher() { + installMapLayers(mapActivity, new ResultMatcher() { TileSourceTemplate template = null; int count = 0; boolean cancel = false; @@ -260,11 +260,10 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin { if (callback != null) { callback.onMapSelected(false); } - updateMapLayers(mapActivity.getMapView(), mapPref, activity.getMapLayers()); + updateMapLayers(mapActivity.getMapView(), mapPref, mapActivity.getMapLayers()); } dialog.dismiss(); } - }) .setNegativeButton(R.string.shared_string_cancel, null) .setOnDismissListener(new DialogInterface.OnDismissListener() { From ca99280651f864bc05d98b9c901ee9089dbab03c Mon Sep 17 00:00:00 2001 From: max-klaus Date: Thu, 11 Jun 2020 20:47:06 +0300 Subject: [PATCH 034/107] Fix range slider --- OsmAnd/res/layout/zoom_levels_with_descr.xml | 2 +- .../mapsource/InputZoomLevelsBottomSheet.java | 15 +++++++-------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/OsmAnd/res/layout/zoom_levels_with_descr.xml b/OsmAnd/res/layout/zoom_levels_with_descr.xml index 98e173140d..d3fcba0da2 100644 --- a/OsmAnd/res/layout/zoom_levels_with_descr.xml +++ b/OsmAnd/res/layout/zoom_levels_with_descr.xml @@ -65,7 +65,7 @@ android:textSize="@dimen/default_list_text_size" tools:text="3" /> - values = slider.getValues(); if (values.size() > 0) { minZoomValue.setText(String.valueOf(values.get(0).intValue())); @@ -114,14 +114,13 @@ public class InputZoomLevelsBottomSheet extends MenuBottomSheetDialogFragment { } } }); - slider.addOnSliderTouchListener(new Slider.OnSliderTouchListener() { + slider.addOnSliderTouchListener(new RangeSlider.OnSliderTouchListener() { @Override - public void onStartTrackingTouch(@NonNull Slider slider) { - + public void onStartTrackingTouch(@NonNull RangeSlider slider) { } @Override - public void onStopTrackingTouch(@NonNull Slider slider) { + public void onStopTrackingTouch(@NonNull RangeSlider slider) { List values = slider.getValues(); if (values.size() > 0) { minZoom = values.get(0).intValue(); From 9c44027e9981dd2607d30b7f415719d4afb34547 Mon Sep 17 00:00:00 2001 From: Dima-1 Date: Fri, 12 Jun 2020 10:45:41 +0300 Subject: [PATCH 035/107] Fix review --- .../cards/NauticalBridgeHeightWarningCard.java | 5 +++-- .../osmand/plus/settings/bottomsheets/VehicleSizeAssets.java | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/NauticalBridgeHeightWarningCard.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/NauticalBridgeHeightWarningCard.java index 897e02afeb..3307f51804 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/NauticalBridgeHeightWarningCard.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/NauticalBridgeHeightWarningCard.java @@ -6,6 +6,8 @@ import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.settings.fragments.BaseSettingsFragment; +import static net.osmand.plus.settings.fragments.BaseSettingsFragment.SettingsScreenType.*; + public class NauticalBridgeHeightWarningCard extends WarningCard { public NauticalBridgeHeightWarningCard(@NonNull MapActivity mapActivity) { @@ -17,7 +19,6 @@ public class NauticalBridgeHeightWarningCard extends WarningCard { @Override protected void onLinkClicked() { - BaseSettingsFragment.showInstance(mapActivity, BaseSettingsFragment.SettingsScreenType.VEHICLE_PARAMETERS, - mapActivity.getRoutingHelper().getAppMode()); + BaseSettingsFragment.showInstance(mapActivity, VEHICLE_PARAMETERS, mapActivity.getRoutingHelper().getAppMode()); } } diff --git a/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleSizeAssets.java b/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleSizeAssets.java index 72670110af..6bedc098b2 100644 --- a/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleSizeAssets.java +++ b/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleSizeAssets.java @@ -42,7 +42,7 @@ public enum VehicleSizeAssets { public static VehicleSizeAssets getAssets(String parameterName, GeneralRouterProfile routerProfile) { for (VehicleSizeAssets type : VehicleSizeAssets.values()) { - if (type.routerParameterName.equals(parameterName) && type.routerProfile.equals(routerProfile)) { + if (type.routerParameterName.equals(parameterName) && type.routerProfile == routerProfile) { return type; } } From 2912163ca1e77f7d5ee91d6a24eabd1d0a646ca9 Mon Sep 17 00:00:00 2001 From: max-klaus Date: Fri, 12 Jun 2020 11:05:24 +0300 Subject: [PATCH 036/107] Fix terrain transparency slider response --- .../plus/srtmplugin/TerrainFragment.java | 68 ++++++++++++------- 1 file changed, 44 insertions(+), 24 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/srtmplugin/TerrainFragment.java b/OsmAnd/src/net/osmand/plus/srtmplugin/TerrainFragment.java index 8aa60d902e..9c905bf8e1 100644 --- a/OsmAnd/src/net/osmand/plus/srtmplugin/TerrainFragment.java +++ b/OsmAnd/src/net/osmand/plus/srtmplugin/TerrainFragment.java @@ -52,6 +52,7 @@ import net.osmand.plus.widgets.style.CustomTypefaceSpan; import org.apache.commons.logging.Log; import java.io.IOException; +import java.lang.ref.WeakReference; import java.util.List; import static net.osmand.plus.download.DownloadActivityType.HILLSHADE_FILE; @@ -115,6 +116,7 @@ public class TerrainFragment extends BaseOsmAndFragment implements View.OnClickL String transparencyStr = (int) value + "%"; transparencyValueTv.setText(transparencyStr); srtmPlugin.setTerrainTransparency((int) Math.ceil(value * 2.55), srtmPlugin.getTerrainMode()); + refreshMap(); } } }; @@ -127,10 +129,20 @@ public class TerrainFragment extends BaseOsmAndFragment implements View.OnClickL minZoomTv.setText(String.valueOf(values.get(0).intValue())); maxZoomTv.setText(String.valueOf(values.get(1).intValue())); srtmPlugin.setTerrainZoomValues(values.get(0).intValue(), values.get(1).intValue(), srtmPlugin.getTerrainMode()); + refreshMap(); } } }; + @Nullable + private MapActivity getMapActivity() { + Activity activity = getActivity(); + if (activity instanceof MapActivity && !activity.isFinishing()) { + return (MapActivity) activity; + } + return null; + } + @Override public void onCreate(@Nullable Bundle savedInstanceState) { app = requireMyApplication(); @@ -365,13 +377,17 @@ public class TerrainFragment extends BaseOsmAndFragment implements View.OnClickL } } + private void refreshMap() { + MapActivity mapActivity = getMapActivity(); + if (mapActivity != null) { + mapActivity.getMapView().refreshMap(); + } + } + private void updateLayers() { - Activity activity = getActivity(); - if (activity instanceof MapActivity) { - srtmPlugin.updateLayers( - ((MapActivity) activity).getMapView(), - (MapActivity) activity - ); + MapActivity mapActivity = getMapActivity(); + if (mapActivity != null) { + srtmPlugin.updateLayers(mapActivity.getMapView(), mapActivity); } } @@ -381,10 +397,11 @@ public class TerrainFragment extends BaseOsmAndFragment implements View.OnClickL adapter.setProfileDependent(true); adapter.setNightMode(nightMode); - final Activity mapActivity = getActivity(); - if (!(mapActivity instanceof MapActivity)) { + MapActivity mapActivity = getMapActivity(); + if (mapActivity == null) { return; } + final WeakReference mapActivityRef = new WeakReference<>(mapActivity); final DownloadIndexesThread downloadThread = app.getDownloadThread(); if (!downloadThread.getIndexes().isDownloadedFromInternet) { @@ -425,22 +442,25 @@ public class TerrainFragment extends BaseOsmAndFragment implements View.OnClickL .setListener(new ContextMenuAdapter.ItemClickListener() { @Override public boolean onContextMenuClick(ArrayAdapter adapter, int itemId, int position, boolean isChecked, int[] viewCoordinates) { - ContextMenuItem item = adapter.getItem(position); - if (downloadThread.isDownloading(indexItem)) { - downloadThread.cancelDownload(indexItem); - if (item != null) { - item.setProgress(ContextMenuItem.INVALID_ID); - item.setLoading(false); - item.setSecondaryIcon(R.drawable.ic_action_import); - adapter.notifyDataSetChanged(); - } - } else { - new DownloadValidationManager(app).startDownload((MapActivity) mapActivity, indexItem); - if (item != null) { - item.setProgress(ContextMenuItem.INVALID_ID); - item.setLoading(true); - item.setSecondaryIcon(R.drawable.ic_action_remove_dark); - adapter.notifyDataSetChanged(); + MapActivity mapActivity = mapActivityRef.get(); + if (mapActivity != null && !mapActivity.isFinishing()) { + ContextMenuItem item = adapter.getItem(position); + if (downloadThread.isDownloading(indexItem)) { + downloadThread.cancelDownload(indexItem); + if (item != null) { + item.setProgress(ContextMenuItem.INVALID_ID); + item.setLoading(false); + item.setSecondaryIcon(R.drawable.ic_action_import); + adapter.notifyDataSetChanged(); + } + } else { + new DownloadValidationManager(app).startDownload(mapActivity, indexItem); + if (item != null) { + item.setProgress(ContextMenuItem.INVALID_ID); + item.setLoading(true); + item.setSecondaryIcon(R.drawable.ic_action_remove_dark); + adapter.notifyDataSetChanged(); + } } } return false; From 7ba03d94e4396bb7c66f6a8f1a5b3d7df6a92e79 Mon Sep 17 00:00:00 2001 From: Nazar-Kutz Date: Fri, 12 Jun 2020 12:23:16 +0300 Subject: [PATCH 037/107] RTL - Step 3 (Fixes) --- OsmAnd/src/net/osmand/AndroidUtils.java | 11 +++++++ .../plus/SimplePopUpMenuItemAdapter.java | 6 ++-- OsmAnd/src/net/osmand/plus/UiUtilities.java | 32 +++++++++---------- .../other/TrackDetailsMenu.java | 25 ++++++++------- .../other/TrackDetailsMenuFragment.java | 4 +-- .../ShowAlongTheRouteBottomSheet.java | 5 ++- .../search/QuickSearchDialogFragment.java | 3 +- 7 files changed, 49 insertions(+), 37 deletions(-) diff --git a/OsmAnd/src/net/osmand/AndroidUtils.java b/OsmAnd/src/net/osmand/AndroidUtils.java index 3c8eed9206..3a91f288ef 100644 --- a/OsmAnd/src/net/osmand/AndroidUtils.java +++ b/OsmAnd/src/net/osmand/AndroidUtils.java @@ -425,6 +425,17 @@ public class AndroidUtils { : ctx.getResources().getColor(R.color.text_color_secondary_light)); } + public static int getPopupMenuWidth(Context ctx, float textSize, List titles) { + int width = 0; + for (String title : titles) { + int titleWidth = getTextWidth(textSize, title); + if (titleWidth > width) { + width = titleWidth; + } + } + return width + dpToPx(ctx, 34); + } + public static int getTextWidth(float textSize, String text) { Paint paint = new Paint(); paint.setTextSize(textSize); diff --git a/OsmAnd/src/net/osmand/plus/SimplePopUpMenuItemAdapter.java b/OsmAnd/src/net/osmand/plus/SimplePopUpMenuItemAdapter.java index 3dadf98f60..406f3d265c 100644 --- a/OsmAnd/src/net/osmand/plus/SimplePopUpMenuItemAdapter.java +++ b/OsmAnd/src/net/osmand/plus/SimplePopUpMenuItemAdapter.java @@ -12,10 +12,12 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import static net.osmand.plus.SimplePopUpMenuItemAdapter.SimplePopUpMenuItem; + import java.util.List; public class SimplePopUpMenuItemAdapter - extends ArrayAdapter { + extends ArrayAdapter { private List items; @@ -35,7 +37,7 @@ public class SimplePopUpMenuItemAdapter public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { LayoutInflater inflater = LayoutInflater.from(getContext()); if (convertView == null) { - convertView = inflater.inflate(R.layout.popup_menu_item, null); + convertView = inflater.inflate(R.layout.popup_menu_item, parent, false); } SimplePopUpMenuItem item = getItem(position); if (item != null) { diff --git a/OsmAnd/src/net/osmand/plus/UiUtilities.java b/OsmAnd/src/net/osmand/plus/UiUtilities.java index d93bdbc6dc..bef961ce16 100644 --- a/OsmAnd/src/net/osmand/plus/UiUtilities.java +++ b/OsmAnd/src/net/osmand/plus/UiUtilities.java @@ -55,10 +55,13 @@ import net.osmand.plus.widgets.TextViewEx; import org.apache.commons.logging.Log; +import java.util.ArrayList; import java.util.List; import gnu.trove.map.hash.TLongObjectHashMap; +import static net.osmand.plus.SimplePopUpMenuItemAdapter.SimplePopUpMenuItem; + public class UiUtilities { private static final Log LOG = PlatformUtil.getLog(UiUtilities.class); @@ -363,15 +366,15 @@ public class UiUtilities { } return screenOrientation; } - + public static void setupSnackbar(Snackbar snackbar, boolean nightMode) { setupSnackbar(snackbar, nightMode, null, null, null, null); } - + public static void setupSnackbar(Snackbar snackbar, boolean nightMode, Integer maxLines) { setupSnackbar(snackbar, nightMode, null, null, null, maxLines); } - + public static void setupSnackbar(Snackbar snackbar, boolean nightMode, @ColorRes Integer backgroundColor, @ColorRes Integer messageColor, @ColorRes Integer actionColor, Integer maxLines) { if (snackbar == null) { @@ -556,7 +559,7 @@ public class UiUtilities { // label behavior slider.setLabelBehavior(Slider.LABEL_GONE); } - + public static void setupDialogButton(boolean nightMode, View buttonView, DialogButtonType buttonType, @StringRes int buttonTextId) { setupDialogButton(nightMode, buttonView, buttonType, buttonView.getContext().getString(buttonTextId)); } @@ -651,23 +654,18 @@ public class UiUtilities { } } - public static ListPopupWindow createListPopupWindow(Context themedCtx, View v, - List items, + public static ListPopupWindow createListPopupWindow(Context themedCtx, + View v, int minWidth, + List items, final AdapterView.OnItemClickListener listener) { - int contentPadding = themedCtx.getResources().getDimensionPixelSize(R.dimen.content_padding); int contentPaddingHalf = themedCtx.getResources().getDimensionPixelSize(R.dimen.content_padding_half); + int defaultListTextSize = themedCtx.getResources().getDimensionPixelSize(R.dimen.default_list_text_size); - Paint paint = new Paint(); - paint.setTextSize(themedCtx.getResources().getDimensionPixelSize(R.dimen.default_list_text_size)); - CharSequence longestTitle = ""; - for (SimplePopUpMenuItemAdapter.SimplePopUpMenuItem item : items) { - if (item.getTitle().length() > longestTitle.length()) { - longestTitle = item.getTitle(); - } + List titles = new ArrayList<>(); + for (SimplePopUpMenuItem item : items) { + titles.add(String.valueOf(item.getTitle())); } - float titleTextWidth = paint.measureText(longestTitle.toString()); - float itemWidth = titleTextWidth + contentPadding; - float minWidth = v.getWidth(); + float itemWidth = AndroidUtils.getPopupMenuWidth(themedCtx, defaultListTextSize, titles); SimplePopUpMenuItemAdapter adapter = new SimplePopUpMenuItemAdapter(themedCtx, R.layout.popup_menu_item, items); diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java index 39e5dd1bac..4e19df5fcf 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java @@ -32,7 +32,6 @@ import net.osmand.data.RotatedTileBox; import net.osmand.plus.GpxSelectionHelper.GpxDisplayItem; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; -import net.osmand.plus.SimplePopUpMenuItemAdapter; import net.osmand.plus.UiUtilities; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.helpers.AndroidUiHelper; @@ -48,6 +47,8 @@ import java.util.Collections; import java.util.Comparator; import java.util.List; +import static net.osmand.plus.SimplePopUpMenuItemAdapter.SimplePopUpMenuItem; + public class TrackDetailsMenu { @Nullable @@ -490,6 +491,9 @@ public class TrackDetailsMenu { if (mapActivity == null || gpxItem == null) { return; } + final OsmandApplication app = mapActivity.getMyApplication(); + final UiUtilities ic = app.getUIUtilities(); + final boolean nightMode = app.getDaynightHelper().isNightModeForMapControls(); GPXTrackAnalysis analysis = gpxItem.analysis; if (analysis == null || gpxItem.chartTypes == null) { parentView.setVisibility(View.GONE); @@ -576,9 +580,6 @@ public class TrackDetailsMenu { } }); - final OsmandApplication app = mapActivity.getMyApplication(); - final UiUtilities ic = app.getUIUtilities(); - GpxUiHelper.setupGPXChart(app, chart, 4); List dataSets = new ArrayList<>(); @@ -652,15 +653,15 @@ public class TrackDetailsMenu { yAxis.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - Context themedContext = UiUtilities.getThemedContext(v.getContext(), true); - List items = new ArrayList<>(); + Context themedContext = UiUtilities.getThemedContext(v.getContext(), nightMode); + List items = new ArrayList<>(); for (GPXDataSetType[] types : availableTypes) { - items.add(new SimplePopUpMenuItemAdapter.SimplePopUpMenuItem( + items.add(new SimplePopUpMenuItem( GPXDataSetType.getName(app, types), GPXDataSetType.getImageDrawable(app, types))); } UiUtilities.createListPopupWindow( - themedContext, v, items, new AdapterView.OnItemClickListener() { + themedContext, v, v.getWidth(), items, new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { GpxDisplayItem gpxItem = getGpxItem(); @@ -695,14 +696,14 @@ public class TrackDetailsMenu { xAxis.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - Context themedContext = UiUtilities.getThemedContext(v.getContext(), true); - List items = new ArrayList<>(); + Context themedContext = UiUtilities.getThemedContext(v.getContext(), nightMode); + List items = new ArrayList<>(); for (GPXDataSetAxisType type : GPXDataSetAxisType.values()) { - items.add(new SimplePopUpMenuItemAdapter.SimplePopUpMenuItem( + items.add(new SimplePopUpMenuItem( app.getString(type.getStringId()), type.getImageDrawable(app))); } UiUtilities.createListPopupWindow(themedContext, - v, items, new AdapterView.OnItemClickListener() { + v, v.getWidth(), items, new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { GpxDisplayItem gpxItem = getGpxItem(); diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenuFragment.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenuFragment.java index fad7483291..843992ec9f 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenuFragment.java @@ -30,6 +30,7 @@ public class TrackDetailsMenuFragment extends BaseOsmAndFragment { private TrackDetailsMenu menu; private View mainView; private boolean paused = true; + private boolean nightMode; @Nullable private MapActivity getMapActivity() { @@ -46,7 +47,7 @@ public class TrackDetailsMenuFragment extends BaseOsmAndFragment { Bundle savedInstanceState) { MapActivity mapActivity = requireMapActivity(); menu = mapActivity.getTrackDetailsMenu(); - boolean nightMode = mapActivity.getMyApplication().getDaynightHelper().isNightModeForMapControls(); + nightMode = mapActivity.getMyApplication().getDaynightHelper().isNightModeForMapControls(); ContextThemeWrapper context = new ContextThemeWrapper(mapActivity, !nightMode ? R.style.OsmandLightTheme : R.style.OsmandDarkTheme); View view = LayoutInflater.from(context).inflate(R.layout.track_details, container, false); @@ -192,7 +193,6 @@ public class TrackDetailsMenuFragment extends BaseOsmAndFragment { if (ctx != null) { boolean portraitMode = AndroidUiHelper.isOrientationPortrait(ctx); boolean landscapeLayout = !portraitMode; - boolean nightMode = ctx.getMyApplication().getDaynightHelper().isNightModeForMapControls(); if (!landscapeLayout) { AndroidUtils.setBackground(ctx, mainView, nightMode, R.drawable.bg_bottom_menu_light, R.drawable.bg_bottom_menu_dark); } else { diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/ShowAlongTheRouteBottomSheet.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/ShowAlongTheRouteBottomSheet.java index 34c655ae0b..7272b7a2ea 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/ShowAlongTheRouteBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/ShowAlongTheRouteBottomSheet.java @@ -81,9 +81,8 @@ public class ShowAlongTheRouteBottomSheet extends MenuBottomSheetDialogFragment } int expandType = args.getInt(EXPAND_TYPE_KEY, -1); - final int themeRes = nightMode ? R.style.OsmandDarkTheme : R.style.OsmandLightTheme; - final View titleView = View.inflate(new ContextThemeWrapper(getContext(), themeRes), - R.layout.bottom_sheet_item_toolbar_title, null); + final View titleView = UiUtilities.getInflater(ctx, nightMode) + .inflate(R.layout.bottom_sheet_item_toolbar_title, null); TextView textView = (TextView) titleView.findViewById(R.id.title); textView.setText(R.string.show_along_the_route); diff --git a/OsmAnd/src/net/osmand/plus/search/QuickSearchDialogFragment.java b/OsmAnd/src/net/osmand/plus/search/QuickSearchDialogFragment.java index 0ef39d0299..75664e9f5d 100644 --- a/OsmAnd/src/net/osmand/plus/search/QuickSearchDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/search/QuickSearchDialogFragment.java @@ -173,6 +173,7 @@ public class QuickSearchDialogFragment extends DialogFragment implements OsmAndC private SearchUICore searchUICore; private SearchResultListener defaultResultListener; private String searchQuery; + private boolean nightMode; private LatLon centerLatLon; private net.osmand.Location location = null; @@ -229,6 +230,7 @@ public class QuickSearchDialogFragment extends DialogFragment implements OsmAndC public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); app = getMyApplication(); + nightMode = !app.getSettings().isLightContent(); navigationInfo = new NavigationInfo(app); accessibilityAssistant = new AccessibilityAssistant(getActivity()); boolean isLightTheme = app.getSettings().OSMAND_THEME.get() == OsmandSettings.OSMAND_LIGHT_THEME; @@ -242,7 +244,6 @@ public class QuickSearchDialogFragment extends DialogFragment implements OsmAndC Bundle savedInstanceState) { final MapActivity mapActivity = getMapActivity(); final View view = inflater.inflate(R.layout.search_dialog_fragment, container, false); - final boolean nightMode = !app.getSettings().isLightContent(); toolbarController = new QuickSearchToolbarController(); toolbarController.setOnBackButtonClickListener(new OnClickListener() { From 68336d36a7f05c44057c36f115ebc201ae395c79 Mon Sep 17 00:00:00 2001 From: Nazar-Kutz Date: Fri, 12 Jun 2020 12:43:13 +0300 Subject: [PATCH 038/107] RTL - Step 3 (Fixes 2) --- OsmAnd/src/net/osmand/AndroidUtils.java | 4 ++-- OsmAnd/src/net/osmand/plus/UiUtilities.java | 5 +++-- .../net/osmand/plus/search/QuickSearchDialogFragment.java | 1 - 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/OsmAnd/src/net/osmand/AndroidUtils.java b/OsmAnd/src/net/osmand/AndroidUtils.java index 3a91f288ef..36b8dee6d0 100644 --- a/OsmAnd/src/net/osmand/AndroidUtils.java +++ b/OsmAnd/src/net/osmand/AndroidUtils.java @@ -425,7 +425,7 @@ public class AndroidUtils { : ctx.getResources().getColor(R.color.text_color_secondary_light)); } - public static int getPopupMenuWidth(Context ctx, float textSize, List titles) { + public static int getTextWidth(Context ctx, float textSize, List titles) { int width = 0; for (String title : titles) { int titleWidth = getTextWidth(textSize, title); @@ -433,7 +433,7 @@ public class AndroidUtils { width = titleWidth; } } - return width + dpToPx(ctx, 34); + return width; } public static int getTextWidth(float textSize, String text) { diff --git a/OsmAnd/src/net/osmand/plus/UiUtilities.java b/OsmAnd/src/net/osmand/plus/UiUtilities.java index bef961ce16..38c36a9fc5 100644 --- a/OsmAnd/src/net/osmand/plus/UiUtilities.java +++ b/OsmAnd/src/net/osmand/plus/UiUtilities.java @@ -3,7 +3,6 @@ package net.osmand.plus; import android.content.Context; import android.content.res.ColorStateList; import android.graphics.Color; -import android.graphics.Paint; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.LayerDrawable; @@ -658,6 +657,7 @@ public class UiUtilities { View v, int minWidth, List items, final AdapterView.OnItemClickListener listener) { + int contentPadding = themedCtx.getResources().getDimensionPixelSize(R.dimen.content_padding); int contentPaddingHalf = themedCtx.getResources().getDimensionPixelSize(R.dimen.content_padding_half); int defaultListTextSize = themedCtx.getResources().getDimensionPixelSize(R.dimen.default_list_text_size); @@ -665,7 +665,8 @@ public class UiUtilities { for (SimplePopUpMenuItem item : items) { titles.add(String.valueOf(item.getTitle())); } - float itemWidth = AndroidUtils.getPopupMenuWidth(themedCtx, defaultListTextSize, titles); + float itemWidth = + AndroidUtils.getTextWidth(themedCtx, defaultListTextSize, titles) + contentPadding; SimplePopUpMenuItemAdapter adapter = new SimplePopUpMenuItemAdapter(themedCtx, R.layout.popup_menu_item, items); diff --git a/OsmAnd/src/net/osmand/plus/search/QuickSearchDialogFragment.java b/OsmAnd/src/net/osmand/plus/search/QuickSearchDialogFragment.java index 75664e9f5d..7457667ceb 100644 --- a/OsmAnd/src/net/osmand/plus/search/QuickSearchDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/search/QuickSearchDialogFragment.java @@ -1212,7 +1212,6 @@ public class QuickSearchDialogFragment extends DialogFragment implements OsmAndC if (SearchUICore.isDebugMode()) { LOG.info("UI >> Start loading categories"); } - final boolean nightMode = !app.getSettings().isLightContent(); SearchResultCollection res = searchUICore.shallowSearch(SearchAmenityTypesAPI.class, "", null); if (res != null) { List rows = new ArrayList<>(); From 30cbd9472fbb4050a3a4c5613d880860eb91129b Mon Sep 17 00:00:00 2001 From: Victor Shcherb Date: Fri, 12 Jun 2020 14:30:39 +0200 Subject: [PATCH 039/107] Fix #9175 --- .../main/java/net/osmand/data/Amenity.java | 27 --------- .../main/java/net/osmand/data/MapObject.java | 58 +++++++++++++++---- 2 files changed, 47 insertions(+), 38 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/data/Amenity.java b/OsmAnd-java/src/main/java/net/osmand/data/Amenity.java index db84ec2297..a041d6f694 100644 --- a/OsmAnd-java/src/main/java/net/osmand/data/Amenity.java +++ b/OsmAnd-java/src/main/java/net/osmand/data/Amenity.java @@ -93,33 +93,6 @@ public class Amenity extends MapObject { return str; } - public String unzipContent(String str) { - if (str != null) { - if (str.startsWith(" gz ")) { - try { - int ind = 4; - byte[] bytes = new byte[str.length() - ind]; - for (int i = ind; i < str.length(); i++) { - char ch = str.charAt(i); - bytes[i - ind] = (byte) ((int) ch - 128 - 32); - - } - GZIPInputStream gzn = new GZIPInputStream(new ByteArrayInputStream(bytes)); - BufferedReader br = new BufferedReader(new InputStreamReader(gzn, "UTF-8")); - StringBuilder bld = new StringBuilder(); - String s; - while ((s = br.readLine()) != null) { - bld.append(s); - } - br.close(); - str = bld.toString(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - return str; - } public Map getAdditionalInfo() { if (additionalInfo == null) { diff --git a/OsmAnd-java/src/main/java/net/osmand/data/MapObject.java b/OsmAnd-java/src/main/java/net/osmand/data/MapObject.java index b4d3f1118e..cb121cedfc 100644 --- a/OsmAnd-java/src/main/java/net/osmand/data/MapObject.java +++ b/OsmAnd-java/src/main/java/net/osmand/data/MapObject.java @@ -8,6 +8,10 @@ import net.osmand.util.TransliterationHelper; import org.json.JSONObject; +import java.io.BufferedReader; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -18,6 +22,7 @@ import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Map.Entry; +import java.util.zip.GZIPInputStream; public abstract class MapObject implements Comparable { @@ -55,7 +60,7 @@ public abstract class MapObject implements Comparable { public String getName() { if (name != null) { - return name; + return unzipContent(name); } return ""; //$NON-NLS-1$ } @@ -73,7 +78,7 @@ public abstract class MapObject implements Comparable { if (names == null) { names = new HashMap(); } - names.put(lang, name); + names.put(lang, unzipContent(name)); } } @@ -95,19 +100,25 @@ public abstract class MapObject implements Comparable { } Map mp = new HashMap(); if (names != null) { - mp.putAll(names); + Iterator> it = mp.entrySet().iterator(); + while(it.hasNext()) { + Entry e = it.next(); + mp.put(e.getKey(), unzipContent(e.getValue())); + } } - mp.put("en", enName); + mp.put("en", unzipContent(enName)); return mp; } public List getAllNames() { List l = new ArrayList(); if (!Algorithms.isEmpty(enName)) { - l.add(enName); + l.add(unzipContent(enName)); } if (names != null) { - l.addAll(names.values()); + for(String nm : names.values()) { + l.add(unzipContent(nm)); + } } return l; } @@ -179,7 +190,7 @@ public abstract class MapObject implements Comparable { if (names != null) { String nm = names.get(lang); if (!Algorithms.isEmpty(nm)) { - return nm; + return unzipContent(nm); } if (transliterate) { return TransliterationHelper.transliterate(getName()); @@ -192,7 +203,7 @@ public abstract class MapObject implements Comparable { public String getEnName(boolean transliterate) { if (!Algorithms.isEmpty(enName)) { - return this.enName; + return unzipContent(this.enName); } else if (!Algorithms.isEmpty(getName()) && transliterate) { return TransliterationHelper.transliterate(getName()); } @@ -322,12 +333,12 @@ public abstract class MapObject implements Comparable { public JSONObject toJSON() { JSONObject json = new JSONObject(); - json.put("name", name); - json.put("enName", enName); + json.put("name", unzipContent(name)); + json.put("enName", unzipContent(enName)); if (names != null && names.size() > 0) { JSONObject namesObj = new JSONObject(); for (Entry e : names.entrySet()) { - namesObj.put(e.getKey(), e.getValue()); + namesObj.put(e.getKey(), unzipContent(e.getValue())); } json.put("names", namesObj); } @@ -339,6 +350,31 @@ public abstract class MapObject implements Comparable { return json; } + + public String unzipContent(String str) { + if (str != null && str.startsWith(" gz ")) { + try { + int ind = 4; + byte[] bytes = new byte[str.length() - ind]; + for (int i = ind; i < str.length(); i++) { + char ch = str.charAt(i); + bytes[i - ind] = (byte) ((int) ch - 128 - 32); + } + GZIPInputStream gzn = new GZIPInputStream(new ByteArrayInputStream(bytes)); + BufferedReader br = new BufferedReader(new InputStreamReader(gzn, "UTF-8")); + StringBuilder bld = new StringBuilder(); + String s; + while ((s = br.readLine()) != null) { + bld.append(s); + } + br.close(); + str = bld.toString(); + } catch (IOException e) { + e.printStackTrace(); + } + } + return str; + } protected static void parseJSON(JSONObject json, MapObject o) { if (json.has("name")) { From ec43a3b5309da75a88eb7b7d74d2ad2ae73a9caf Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Fri, 12 Jun 2020 15:46:21 +0300 Subject: [PATCH 040/107] Remove unnecessary changes --- OsmAnd/src/net/osmand/AndroidUtils.java | 2 +- OsmAnd/src/net/osmand/plus/UiUtilities.java | 3 +-- .../settings/bottomsheets/VehicleParametersBottomSheet.java | 1 - 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/OsmAnd/src/net/osmand/AndroidUtils.java b/OsmAnd/src/net/osmand/AndroidUtils.java index 36b8dee6d0..0c488b384c 100644 --- a/OsmAnd/src/net/osmand/AndroidUtils.java +++ b/OsmAnd/src/net/osmand/AndroidUtils.java @@ -425,7 +425,7 @@ public class AndroidUtils { : ctx.getResources().getColor(R.color.text_color_secondary_light)); } - public static int getTextWidth(Context ctx, float textSize, List titles) { + public static int getTextMaxWidth(float textSize, List titles) { int width = 0; for (String title : titles) { int titleWidth = getTextWidth(textSize, title); diff --git a/OsmAnd/src/net/osmand/plus/UiUtilities.java b/OsmAnd/src/net/osmand/plus/UiUtilities.java index 38c36a9fc5..588cc66c55 100644 --- a/OsmAnd/src/net/osmand/plus/UiUtilities.java +++ b/OsmAnd/src/net/osmand/plus/UiUtilities.java @@ -665,8 +665,7 @@ public class UiUtilities { for (SimplePopUpMenuItem item : items) { titles.add(String.valueOf(item.getTitle())); } - float itemWidth = - AndroidUtils.getTextWidth(themedCtx, defaultListTextSize, titles) + contentPadding; + float itemWidth = AndroidUtils.getTextMaxWidth(defaultListTextSize, titles) + contentPadding; SimplePopUpMenuItemAdapter adapter = new SimplePopUpMenuItemAdapter(themedCtx, R.layout.popup_menu_item, items); diff --git a/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleParametersBottomSheet.java b/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleParametersBottomSheet.java index 2e50c74ae0..d452a4c7b0 100644 --- a/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleParametersBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleParametersBottomSheet.java @@ -9,7 +9,6 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.recyclerview.widget.RecyclerView; From 5444daefbadf194e40585cbfceff9affb261c42c Mon Sep 17 00:00:00 2001 From: vshcherb Date: Fri, 12 Jun 2020 14:46:41 +0200 Subject: [PATCH 041/107] Update DownloadActivity.java --- OsmAnd/src/net/osmand/plus/download/DownloadActivity.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/download/DownloadActivity.java b/OsmAnd/src/net/osmand/plus/download/DownloadActivity.java index 68db4aa339..9fc699665a 100644 --- a/OsmAnd/src/net/osmand/plus/download/DownloadActivity.java +++ b/OsmAnd/src/net/osmand/plus/download/DownloadActivity.java @@ -616,7 +616,8 @@ public class DownloadActivity extends AbstractDownloadActivity implements Downlo return; } IndexItem worldMap = getDownloadThread().getIndexes().getWorldBaseMapItem(); - if (!SUGGESTED_TO_DOWNLOAD_BASEMAP && worldMap != null && (!worldMap.isDownloaded() || worldMap.isOutdated()) && + // (!worldMap.isDownloaded() || worldMap.isOutdated()) - now suggest to download if downloaded + if (!SUGGESTED_TO_DOWNLOAD_BASEMAP && worldMap != null && worldMap.isDownloaded() && worldMap.isOutdated() && !getDownloadThread().isDownloading(worldMap)) { SUGGESTED_TO_DOWNLOAD_BASEMAP = true; AskMapDownloadFragment fragment = new AskMapDownloadFragment(); From 656cbc59fc2449ab5f910f87b0ba599894927b6e Mon Sep 17 00:00:00 2001 From: max-klaus Date: Fri, 12 Jun 2020 16:22:24 +0300 Subject: [PATCH 042/107] Fix indexTerrainFiles crash --- .../osmand/plus/srtmplugin/TerrainLayer.java | 33 +++++++++++-------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/srtmplugin/TerrainLayer.java b/OsmAnd/src/net/osmand/plus/srtmplugin/TerrainLayer.java index bdfe5e4772..8f75c68259 100644 --- a/OsmAnd/src/net/osmand/plus/srtmplugin/TerrainLayer.java +++ b/OsmAnd/src/net/osmand/plus/srtmplugin/TerrainLayer.java @@ -82,21 +82,28 @@ public class TerrainLayer extends MapTileLayer { File tilesDir = app.getAppPath(IndexConstants.TILES_INDEX_DIR); File cacheDir = app.getCacheDir(); // fix http://stackoverflow.com/questions/26937152/workaround-for-nexus-9-sqlite-file-write-operations-on-external-dirs - sqliteDb = SQLiteDatabase.openDatabase( - new File(cacheDir, mode == HILLSHADE ? HILLSHADE_CACHE : SLOPE_CACHE).getPath(), - null, SQLiteDatabase.ENABLE_WRITE_AHEAD_LOGGING - | SQLiteDatabase.CREATE_IF_NECESSARY ); - if (sqliteDb.getVersion() == 0) { - sqliteDb.setVersion(1); + try { + sqliteDb = SQLiteDatabase.openDatabase( + new File(cacheDir, mode == HILLSHADE ? HILLSHADE_CACHE : SLOPE_CACHE).getPath(), + null, SQLiteDatabase.ENABLE_WRITE_AHEAD_LOGGING + | SQLiteDatabase.CREATE_IF_NECESSARY); + } catch (RuntimeException e) { + log.error(e.getMessage(), e); + sqliteDb = null; } - sqliteDb.execSQL("CREATE TABLE IF NOT EXISTS TILE_SOURCES(filename varchar2(256), date_modified int, left int, right int, top int, bottom int)"); + if (sqliteDb != null) { + if (sqliteDb.getVersion() == 0) { + sqliteDb.setVersion(1); + } + sqliteDb.execSQL("CREATE TABLE IF NOT EXISTS TILE_SOURCES(filename varchar2(256), date_modified int, left int, right int, top int, bottom int)"); - Map fileModified = new HashMap(); - Map rs = readFiles(app, tilesDir, fileModified); - indexCachedResources(fileModified, rs); - indexNonCachedResources(fileModified, rs); - sqliteDb.close(); - resources = rs; + Map fileModified = new HashMap(); + Map rs = readFiles(app, tilesDir, fileModified); + indexCachedResources(fileModified, rs); + indexNonCachedResources(fileModified, rs); + sqliteDb.close(); + resources = rs; + } return null; } From 5acd3c0a395949365db47d489fecfa983ff47eaf Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Fri, 12 Jun 2020 16:30:34 +0300 Subject: [PATCH 043/107] Fix #9219 --- .../plus/views/mapwidgets/MapInfoWidgetsFactory.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java b/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java index 5eef90a95d..978525ac5f 100644 --- a/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java +++ b/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java @@ -48,8 +48,6 @@ import net.osmand.plus.OsmAndFormatter; import net.osmand.plus.OsmAndLocationProvider; import net.osmand.plus.OsmAndLocationProvider.GPSInfo; import net.osmand.plus.OsmandApplication; -import net.osmand.plus.settings.backend.OsmandSettings; -import net.osmand.plus.settings.backend.OsmandSettings.RulerMode; import net.osmand.plus.R; import net.osmand.plus.UiUtilities; import net.osmand.plus.activities.MapActivity; @@ -65,6 +63,8 @@ import net.osmand.plus.routepreparationmenu.ShowAlongTheRouteBottomSheet; import net.osmand.plus.routing.RouteCalculationResult; import net.osmand.plus.routing.RouteDirectionInfo; import net.osmand.plus.routing.RoutingHelper; +import net.osmand.plus.settings.backend.OsmandSettings; +import net.osmand.plus.settings.backend.OsmandSettings.RulerMode; import net.osmand.plus.views.OsmandMapLayer.DrawSettings; import net.osmand.plus.views.OsmandMapTileView; import net.osmand.plus.views.RulerControlLayer; @@ -72,8 +72,6 @@ import net.osmand.plus.views.mapwidgets.MapWidgetRegistry.WidgetState; import net.osmand.plus.views.mapwidgets.NextTurnInfoWidget.TurnDrawable; import net.osmand.render.RenderingRuleSearchRequest; import net.osmand.render.RenderingRulesStorage; -import net.osmand.router.ExitInfo; -import net.osmand.router.TurnType; import net.osmand.util.Algorithms; import net.osmand.util.MapUtils; @@ -1036,7 +1034,8 @@ public class MapInfoWidgetsFactory { AndroidUiHelper.updateVisibility(addressText, true); AndroidUiHelper.updateVisibility(addressTextShadow, shadowRad > 0); - if (streetName.shieldObject != null && setRoadShield(shieldIcon, streetName.shieldObject)) { + if (streetName.shieldObject != null && streetName.shieldObject.nameIds != null + && setRoadShield(shieldIcon, streetName.shieldObject)) { AndroidUiHelper.updateVisibility(shieldIcon, true); } else { AndroidUiHelper.updateVisibility(shieldIcon, false); From 717097b0f31c850417a5efe22aac0eec4455027b Mon Sep 17 00:00:00 2001 From: Ldm Public Date: Thu, 11 Jun 2020 16:50:01 +0000 Subject: [PATCH 044/107] Translated using Weblate (French) Currently translated at 99.9% (3383 of 3384 strings) --- OsmAnd/res/values-fr/strings.xml | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index 38a353e94a..a7e7c777dc 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -1021,7 +1021,7 @@ Limitations de vitesse À propos Note de version, licences, membres du projet - Zooms téléchargés : %1$s + Niveaux de zoom téléchargés : %1$s Expire (minutes) : %1$s Téléchargeable : %1$s Zoom maximum : %1$s @@ -1041,8 +1041,8 @@ Supprimer les étapes Conserver les étapes Données de tuile : %1$s - Le fournisseur de tuiles %1$s a été enregistré avec succès - Mercator elliptique + La source de tuiles %1$s a été enregistrée + Projection de Mercator elliptique Sélectionner existant… Définir/Éditer… Paramétrer les annonces des noms de rue, alertes de circulation (bouchons, ralentissements), radars et limites de vitesse. @@ -2239,7 +2239,7 @@ \n • Téléversez des traces GPX vers OSM directement depuis l\'application \n • Ajoutez des Points d\'intérêt et téléversez-les vers OSM (immédiatement ou plus tard si vous êtes hors ligne) \n - Couverture et qualité des cartes (de 1 à 4 étoiles) : + Couverture et qualité des cartes (de 1 à 4 étoiles) : \n • Europe de l\'Ouest : **** (4) \n • Europe de l\'Est : *** (3) \n • Russie : *** (3) @@ -3591,7 +3591,7 @@ Ski de randonnée Motoneige Greffon OsmAnd personnalisé - Remplacer un point par celui-ci + Remplacer un point par celui-ci. Modifications appliquées au profil \'%1$s\'. Impossible de lire depuis \'%1$s\'. Impossible d\'écrire dans \'%1$s\'. @@ -3708,7 +3708,7 @@ Carte mondiale générale (plus détaillée) Type non pris en charge Le fichier GPX OsmAnd n\'est pas construit correctement. Vous pouvez transmettre ce fichier à l\'équipe support OsmAnd pour investiguer. - L\'écran s\'éteindra après le délai système. + Éteint l\'écran en fonction du délai système. Ces paramètres affecteront l\'affichage lorsqu\'ils seront utilisés comme carte ou sur-couche / sous-couche. \n \n%1$s : La carte sera limitée aux zooms sélectionnés. @@ -3716,11 +3716,11 @@ \n%2$s : Niveaux de zoom auxquels les tuiles originales seront visibles. En dehors de ces valeurs, il y aura une augmentation ou une diminution d\'échelle. L\'écran s\'allumera pour afficher les instructions de navigation. Sélectionnez la durée d\'affichage de l\'écran après allumage (\"%1$s\" signifie pas d\'extinction). - Si l\'option \"%1$s\" est activée, le temps d\'activité en dépendra. - Délai d\'expiration en minutes. Les tuiles en cache seront rechargées après ce délai. Laissez ce champ vide pour ne jamais rafraîchir les tuiles pour cette source. -\n -\nUn jour correspond à 1440 minutes. -\nUne semaine correspond à 10 080 minutes. + Si \"%1$s\" est activé, le temps d\'activité en dépendra. + Les tuiles en cache seront à nouveau téléchargées après ce délai (en minutes). Laissez ce champ vide pour ne jamais rafraîchir les tuiles pour cette source. +\n +\nUn jour correspond à 1440 minutes. +\nUne semaine correspond à 10 080 minutes. \nUn mois correspond à 43 829 minutes. Toujours Contrôle de l\'écran @@ -3743,7 +3743,7 @@ Projection de Mercator Format de stockage Définissez les niveaux de zoom minimum et maximum auxquels la carte en ligne sera affichée ou chargée. - Sélectionnez comment les tuiles téléchargées seront stockées. + Sélectionnez comment stocker les tuiles téléchargées. Délai par défaut de veille écran Vous pouvez exporter ou importer les actions rapides avec les profils d’application. Tout supprimer \? @@ -3754,8 +3754,10 @@ Indiquez la largeur de votre véhicule, certaines restrictions d\'itinéraire peuvent s\'appliquer aux véhicules larges. sonneries mètres - Contrôler la visibilité des autres détails affichés sur la carte + Afficher ou masquer les autres détails sur la carte Carte nocturne Tout le temps Désactivé. Nécessite l\'option « Garder l\'écran allumé » sous « Délai d\'affichage de l\'écran ». + Ajouter une source en ligne + Appliquer ces modifications effacera les données mises en cache pour cette source de tuiles \ No newline at end of file From e421afc33f993cd9e4e53820d688f5722299f56e Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 11 Jun 2020 13:54:31 +0000 Subject: [PATCH 045/107] Translated using Weblate (German) Currently translated at 100.0% (3384 of 3384 strings) --- OsmAnd/res/values-de/strings.xml | 49 +++++++++++++++++--------------- 1 file changed, 26 insertions(+), 23 deletions(-) diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml index 1b2a5fd804..8924917a19 100644 --- a/OsmAnd/res/values-de/strings.xml +++ b/OsmAnd/res/values-de/strings.xml @@ -1123,7 +1123,7 @@ Japan USA Kanada - Europa, Asien, Lateinamerika und andere + Europa, Asien, Lateinamerika und ähnliche UK, Indien und andere Australien Verkehrsregion @@ -1131,13 +1131,13 @@ Über Versionsinfo, Lizenz, Projektmitglieder Heruntergeladene Vergrößerungsstufen: %1$s - Gültigkeit endet in (Minuten): %1$s + Ablaufzeit (Minuten): %1$s Herunterladbar: %1$s Maximale Vergrößerung: %1$s Minimale Vergrößerung: %1$s Kacheldaten: %1$s - Kachelquelle %1$s wurde gespeichert - Elliptischer Merkator + Kachelquelle %1$s gespeichert + Elliptische Mercator-Projektion Maximale Vergrößerung Ablaufzeit (Minuten) Minimale Vergrößerung @@ -3617,7 +3617,7 @@ Schneemobil Benutzerdefiniertes OsmAnd-Plugin Hangneigungskarten verwendet Farben, um die Geländesteilheit zu visualisieren. - Einen anderen Punkt durch diesen ersetzen + Einen anderen Punkt durch diesen ersetzen. Die Änderungen wurden auf das \'%1$s\' Profil angewendet. Konnte nicht von \'%1$s\' lesen. Konnte nicht nach \'%1$s\' schreiben. @@ -3667,7 +3667,7 @@ Bairisch Baschkirisch Hat nur vier Schaltflächen. - Wählen Sie die Sprachen aus, in denen Wikipedia-Artikel auf der Karte erscheinen sollen. Sie können zwischen allen verfügbaren Sprachen wechseln, während Sie den Artikel lesen. + Wählen Sie die Sprachen für Wikipedia-Artikel auf der Karte aus. Wechseln Sie beim Lesen des Artikels zu einer beliebigen verfügbaren Sprache. Diese Elemente werden aus dem Menü ausgeblendet, aber die entsprechenden Optionen oder Plugins funktionieren weiterhin. Ordnen Sie Elemente aus %1$s neu an oder blenden Sie sie aus. %1$s / %2$s @@ -3734,15 +3734,15 @@ Schubladenelemente, Kontextmenü Schublade OsmAnd GPX ist nicht optimal geformt, bitte kontaktieren Sie das Support-Team, um weitere Nachforschungen anzustellen. - Diese Parameter beeinflussen die Darstellung, wenn sie als Karte oder Overlay/Underlay verwendet werden. -\n -\n%1$s: Die Karte wird auf die gewählten Zoomstufen begrenzt. -\n -\n%2$s: Zoomstufen, bei denen die Originalkacheln sichtbar sind. Außerhalb dieser Werte tritt eine Skalierung nach oben oder unten ein. - Legen Sie die kleinste und größte Zoomstufe fest, bei denen die Online-Karte angezeigt oder geladen wird. + Wirkt sich auf den Bildschirm aus, wenn er als Karte oder Overlay/Underlay verwendet wird. +\n +\n%1$s: Die Karte ist auf den ausgewählten Zoomstufenbereich beschränkt. +\n +\n%2$s sind die Ebenen, auf denen die ursprünglichen Kacheln sichtbar sind, eine Hoch- oder Herunterskalierung findet außerhalb dieser Werte statt. + Legen Sie eine minimale und maximale Zoomstufe fest, um die Online-Karte anzuzeigen oder zu laden. Immer Bildschirmsteuerung - Schaltet den Bildschirm nach dem Bildschirm-Timeout des Systems aus. + Schaltet den Bildschirm entsprechend dem Bildschirm-Timeout des Systems aus. Systembildschirm-Timeout verwenden Optionen zum Aktivieren des Bildschirms: Wählen Sie Optionen zum Aufwecken des Bildschirms (stellen Sie sicher, dass OsmAnd im Vordergrund ist, wenn das Gerät gesperrt wird): @@ -3754,7 +3754,7 @@ Wählen Sie die Zeitüberschreitung des Bildschirms nach dem Aufwachen. („%1$s”, um keine Zeitüberschreitung anzuwenden.) Bildschirm eingeschaltet lassen Bildschirm ausgeschaltet lassen - Wenn die Option „%1$s” aktiviert ist, ist die Dauer der Aktivität davon abhängig. + Wenn \"%1$s\" eingeschaltet ist, hängt die Aktivitätszeit davon ab. Pseudo-Mercator-Projektion Eine Bilddatei pro Kachel SQLiteDB-Datei @@ -3764,22 +3764,25 @@ Verfallsdatum Mercator-Projektion Speicherformat - Verfallsdatum in Minuten. Kacheln im Zwischenspeicher werden nach der festgelegten Zeit neu geladen. Lassen Sie das Feld leer, wenn die Karten aus dieser Quelle nie aktualisiert werden sollen. -\n -\nEin Tag hat 1440 Minuten. -\nEine Woche hat 10 080 Minuten. + Zwischengespeicherte Kacheln werden nach der angegebenen Anzahl von Minuten erneut heruntergeladen. Lassen Sie dieses Feld leer, um Kacheln für diese Quelle niemals zu aktualisieren. +\n +\nEin Tag hat 1440 Minuten. +\nEine Woche hat 10 080 Minuten. \nEin Monat hat 43 829 Minuten. - Wählen Sie aus, wie heruntergeladene Kacheln gespeichert werden. + Wählen Sie, wie heruntergeladene Kacheln gespeichert werden sollen. Zeitüberschreitung des Standardbildschirms - Bitte geben Sie Ihre Fahrzeugbreite an. Für breite Fahrzeuge könnten einige Streckenabschnitte nicht befahrbar sein. - Bitte geben Sie Ihre Fahrzeughöhe an. Für hohe Fahrzeuge könnten einige Streckenabschnitte nicht befahrbar sein. - Bitte geben Sie Ihr Fahrzeuggewicht an. Für schwere Fahrzeuge könnten einige Streckenabschnitte nicht befahrbar sein. + Geben Sie Ihre Fahrzeugbreite an. Für breite Fahrzeuge können einige Routenbeschränkungen gelten. + Geben Sie Ihre Fahrzeughöhe an, für hohe Fahrzeuge können einige Routenbeschränkungen gelten. + Geben Sie Ihr Fahrzeuggewicht an, für schwere Fahrzeuge können einige Routenbeschränkungen gelten. Sie können Schnellaktionen mit Anwendungsprofilen exportieren oder importieren. Alles Löschen\? Möchten Sie %d Schnellaktionen wirklich unwiderruflich löschen\? Töne Meter Bildschirm-Zeitlimit - Kontrollieren Sie die Sichtbarkeit zusätzlicher Details, die auf der Karte angezeigt werden + Zusätzliche Kartendetails anzeigen oder ausblenden Nachtkarte + Deaktiviert. Erfordert \'Bildschirm eingeschaltet lassen\' unter \'Timeout nach dem Aufwachen\'. + Online-Quelle hinzufügen + Durch die Anwendung dieser Änderungen werden die zwischengespeicherten Daten für diese Kachelquelle gelöscht \ No newline at end of file From abd5aff908b9f0cb0aa4d6a7015effd7014101ac Mon Sep 17 00:00:00 2001 From: solokot Date: Thu, 11 Jun 2020 14:31:45 +0000 Subject: [PATCH 046/107] Translated using Weblate (Russian) Currently translated at 100.0% (3384 of 3384 strings) --- OsmAnd/res/values-ru/strings.xml | 42 +++++++++++++++++--------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/OsmAnd/res/values-ru/strings.xml b/OsmAnd/res/values-ru/strings.xml index c563959468..a24dbb9bba 100644 --- a/OsmAnd/res/values-ru/strings.xml +++ b/OsmAnd/res/values-ru/strings.xml @@ -40,7 +40,7 @@ Увеличить радиус поиска Ничего не найдено Изменить запрос или увеличить радиус поиска. - Отобразить/скрыть заметки OSM + Показать/скрыть заметки OSM Показать заметки OSM Скрыть заметки OSM Переключатель, чтобы отобразить или скрыть заметки OSM на карте. @@ -1322,7 +1322,7 @@ Регион вождения Япония США - Европа, Азия, Латинская Америка и т.п + Европа, Азия, Латинская Америка и т.п. Великобритания, Индия и др. Проложить маршрут Пункт отправления @@ -1331,14 +1331,14 @@ Время действия (в минутах): %1$s Загружаемые: %1$s Максимальное увеличение: %1$s - Источник тайлов %1$s успешно сохранён + Источник тайлов %1$s сохранён Максимальное увеличение Минимальное увеличение URL Отладочная информация FPS О программе Информация о версии, участниках проекта - Загружено данных по масштабам: %1$s + Загруженные уровни масштабирования: %1$s Минимальное увеличение: %1$s Данные о тайлах: %1$s Обзорная карта мира @@ -2445,7 +2445,7 @@ \n • Африка: ** \n • Антарктида: * \n Большинство стран по всему миру доступны в виде загрузок -\n От Афганистана до Зимбабве, от Австралии до США. Аргентина, Бразилия, Канада, Франция, Германия, Мексика, Великобритания, Испания, … +\n От Афганистана до Зимбабве, от Австралии до США. Аргентина, Бразилия, Канада, Франция, Германия, Мексика, Великобритания, Испания, … \n Временной буфер для онлайн слежения Укажите временной буфер для хранения местоположений при отсутствии подключения к сети @@ -3608,7 +3608,7 @@ Затенение рельефа использует тёмные оттенки для отображения склонов, вершин и низменностей. Для отображения склонов на карте необходимы дополнительные карты. Склоны - Заменить другую точку на эту + Заменить другую точку на эту. Изменения применены к профилю «%1$s». Невозможно прочитать из «%1$s». Невозможно записать в «%1$s». @@ -3733,7 +3733,7 @@ Псевдо-проекция Меркатора Каждый тайл в своём файле Изменить онлайн-источник - Установите минимальный и максимальный уровни масштабирования, при которых будет отображаться или загружаться онлайн-карта. + Установите минимальный и максимальный уровни масштабирования для отображения или загрузки онлайн-карты. Всегда Использовать системную настройку Кнопка питания @@ -3746,33 +3746,35 @@ Время устаревания Проекция Меркатора Формат хранения - Время устаревания в минутах. Кешированные тайлы будут перезагружены после указанного времени. Оставьте поле пустым, чтобы никогда не обновлять тайлы из этого источника. -\n -\nОдин день — 1440 минут. -\nОдна неделя — 10 080 минут. + Кешированные тайлы будут перезагружены после указанного количества минут. Оставьте поле пустым, чтобы никогда не обновлять тайлы из этого источника. +\n +\nОдин день — 1440 минут. +\nОдна неделя — 10 080 минут. \nОдин месяц — 43 829 минут. Выберите способ хранения загруженных тайлов. Экран будет отключаться после периода бездействия, указанного в системных настройках устройства. - Эти параметры влияют на отображение при использовании в качестве карты или подложки. -\n -\n%1$s: карта будет ограничена выбранными масштабами. -\n -\n%2$s: уровни масштабирования, при которых будут видны оригинальные тайлы. Увеличение и уменьшение масштаба может происходить вне этих значений. + Эти параметры влияют на отображение при использовании в качестве карты или подложки. +\n +\n%1$s: карта будет ограничена выбранными уровнями масштабирования. +\n +\n%2$s: уровни масштабирования, при которых будут видны оригинальные тайлы; увеличение и уменьшение масштаба может происходить вне этих значений. Управление экраном Параметры включения экрана: Настройки включения экрана (убедитесь, что перед блокировкой устройства OsmAnd находится на переднем плане): Настройка отключения экрана по умолчанию - Вы можете экспортировать или импортировать быстрые действия вместе с профилями. + Вы можете экспортировать или импортировать быстрые действия вместе с профилями приложения. Удалить все\? Вы уверены, что хотите безвозвратно удалить %d быстрых действий\? Время экрана - Укажите ширину автомобиля, для больших транспортных средств могут применяться ограничения на некоторых маршрутах. - Укажите высоту автомобиля, для больших транспортных средств могут применяться ограничения на некоторых маршрутах. - Укажите вес автомобиля, для тяжёлых транспортных средств могут применяться ограничения на некоторых маршрутах. + Укажите ширину автомобиля, для широких транспортных средств могут применяться ограничения на маршруте. + Укажите высоту автомобиля, для высоких транспортных средств могут применяться ограничения на маршруте. + Укажите вес автомобиля, для тяжёлых транспортных средств могут применяться ограничения на маршруте. тонны метры Управление отображением дополнительных деталей на карте Всё время Ночная карта Отключено. Необходимо включить «Держать экран включённым» в разделе «Время работы после пробуждения». + Применение этих изменений приведёт к очистке кешированных данных этого источника тайлов + Добавить онлайн-источник \ No newline at end of file From 9f2d5bb084dd6f522ba3a617c207ea5e8fae5285 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=C4=9Fuz=20Ersen?= Date: Thu, 11 Jun 2020 17:13:19 +0000 Subject: [PATCH 047/107] Translated using Weblate (Turkish) Currently translated at 100.0% (3384 of 3384 strings) --- OsmAnd/res/values-tr/strings.xml | 46 +++++++++++++++++--------------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/OsmAnd/res/values-tr/strings.xml b/OsmAnd/res/values-tr/strings.xml index cc8c066cc7..bbee44c362 100644 --- a/OsmAnd/res/values-tr/strings.xml +++ b/OsmAnd/res/values-tr/strings.xml @@ -724,12 +724,12 @@ Sürüm : Hakkında Sürüm bilgisi, lisanslar, proje üyeleri - Sona erecek (dakika): %1$s + Sona erme süresi (dakika): %1$s İndirilebilir: %1$s Azami yakınlaştırma: %1$s Asgari yakınlaştırma: %1$s - Eliptik izdüşümü - Sona erecek (dakika) + Eliptik Merkatör projeksiyonu + Sona erme süresi (dakika) URL Mevcut olanı seç… Tanımla/Düzenle… @@ -1003,7 +1003,7 @@ Uzun mesafeli görüntüye Harita büyüteci Dünya temel haritası - Zvmhay indirildi : %1$s + İndirilen yakınlaştırma seviyeleri: %1$s Döşeme verisi : %1$s Tilesource %1$s kaydedildi En fazla yakınlaştırma @@ -3081,7 +3081,7 @@ \n • Doğrudan uygulamadan GPX yollarını OSM\'ye yükleyin \n • POI ekleyin ve onları doğrudan (veya çevrim dışıysanız daha sonra) OSM’ye yükleyin \n - OsmAnd aktif olarak geliştirilen açık kaynaklı bir yazılımdır. Herkes hataları bildirerek, çevirileri iyileştirerek veya yeni özellikler kodlayarak uygulamaya katkıda bulunabilir. Ek olarak, proje kodlama ve yeni işlevselliklerin test edilmesine fon sağlama konusunda finansal katkılara dayanmaktadır. + OsmAnd aktif olarak geliştirilen açık kaynaklı bir yazılımdır. Herkes hataları bildirerek, çevirileri iyileştirerek veya yeni özellikler kodlayarak uygulamaya katkıda bulunabilir. Ek olarak proje, kodlama ve yeni işlevselliklerin test edilmesine fon sağlama konusunda finansal katkılara dayanmaktadır. \n Yaklaşık harita kapsamı ve kalitesi: \n • Batı Avrupa: **** \n • Doğu Avrupa: *** @@ -3150,7 +3150,7 @@ \n • Orta Doğu: ** \n • Afrika: ** \n • Antarktika: * -\n Dünya üzerindeki çoğu ülke indirme olarak mevcut +\n Dünyadaki çoğu ülke indirmeye hazır \n Afganistan\'dan Zimbabve\'ye, Avustralya\'dan ABD\'ye. Arjantin, Brezilya, Kanada, Fransa, Almanya, Meksika, İngiltere, İspanya, … \n İsim çok fazla büyük harf içermektedir. Devam et\? @@ -3561,7 +3561,7 @@ Sekizgen Kare Min - Başka bir noktayı bununla değiştirin + Başka bir noktayı bununla değiştirin. Kayak turu Kar arabası Özel OsmAnd eklentisi @@ -3592,7 +3592,7 @@ Ana eylemler Ögeleri yalnızca bu kategorinin içine taşıyabilirsiniz. Geliştirici Eklentisi - Wikipedia makalelerinin haritada görüneceği dilleri seçin. Makaleyi okurken kullanılabilir bütün diller arasında geçiş yapabilirsiniz. + Haritadaki Wikipedia makalelerinin dillerini seçin. Makaleyi okurken kullanılabilir herhangi bir dile geçiş yapın. Bazı Wikipedia makaleleri sizin dilinizde mevcut olmayabilir. Kantonca Güney Min @@ -3683,7 +3683,7 @@ OsmAnd GPX doğru biçimlendirilmemiş, daha derinlemesine incelemek için lütfen destek ekibiyle iletişime geçin. Her zaman Ekran denetimi - Sistemin ekran zaman aşımından sonra ekranı kapatır. + Sistemin ekran zaman aşımına göre ekranı kapatır. Sistemin ekran zaman aşımını kullan Ekran uyandırma seçenekleri: Ekran uyandırma seçeneklerini seçin (aygıt kilitlenirken OsmAnd\'ın ön planda olduğundan emin olun): @@ -3695,7 +3695,7 @@ Uyandıktan sonra ekran zaman aşımını seçin. (\"%1$s\" zaman aşımı uygulamaz.) Ekranı açık tut Ekranı kapalı tut - \"%1$s\" seçeneği etkinleştirilirse, etkinlik süresi buna bağlı olacaktır. + \"%1$s\" açıksa, etkinlik süresi buna bağlı olacaktır. Pseudo-Mercator projeksiyon Döşeme başına bir görüntü dosyası SQLiteDB dosyası @@ -3703,18 +3703,18 @@ Çevrim içi kaynağın URL\'sini girin veya yapıştırın. Çevrim içi kaynağı düzenle Sona erme zamanı - Mercator Projeksiyonu + Mercator projeksiyonu Depolama biçimi - Çevrim içi haritanın görüntüleneceği veya yükleneceği en düşük ve en yüksek yakınlaştırma seviyelerini ayarlayın. - Bu parametreler, harita veya üst/alt katman olarak kullanıldığında görüntüyü etkileyecektir. -\n -\n%1$s: Harita seçilen yakınlaştırmalarla sınırlı olacaktır. -\n -\n%2$s: Orijinal döşemelerin görüneceği yakınlaştırma seviyeleri. Ölçeği arttırma veya azaltma, bu değerlerin dışında meydana gelecektir. - Dakika cinsinden geçerliliğin sona erme süresi. Önbelleğe alınan döşemeler belirtilen süreden sonra yeniden yüklenecektir. Bu kaynak için döşemeleri hiçbir zaman yeniden yüklememek için bu alanı boş bırakın. -\n -\nBir gün 1440 dakikadır. -\nBir hafta 10 080 dakikadır. + Çevrim içi haritayı göstermek veya yüklemek için en düşük ve en yüksek yakınlaştırma seviyesini ayarlayın. + Harita veya üst/alt katman olarak kullanıldığında ekranı etkiler. +\n +\n%1$s: Harita seçilen yakınlaştırma seviyesi aralığıyla sınırlıdır. +\n +\n%2$s, orijinal döşemelerin görüneceği seviyelerdir, ölçeği arttırma veya azaltma, bu değerlerin dışında gerçekleşecektir. + Önbelleğe alınan döşemeler belirtilen dakika kadar süreden sonra yeniden indirilecektir. Bu kaynak için döşemeleri hiçbir zaman yeniden yüklememek için bu alanı boş bırakın. +\n +\nBir gün 1440 dakikadır. +\nBir hafta 10 080 dakikadır. \nBir ay 43 829 dakikadır. İndirilen döşemelerin nasıl saklanacağını seçin. Öntanımlı ekran zaman aşımı @@ -3726,9 +3726,11 @@ Aracınızın yüksekliğini belirtin, yüksek araçlar için bazı güzergah kısıtlamaları geçerli olabilir. Aracınızın ağırlığını belirtin, ağır araçlar için bazı güzergah kısıtlamaları geçerli olabilir. metre - Haritada gösterilen ek ayrıntıların görünürlüğünü denetleyin + Ek harita ayrıntılarını göster veya gizle Gece haritası Her zaman ton Devre dışı. \'Uyandıktan sonra zaman aşımı\' altındaki \'Ekranı açık tut\' seçeneği gerekir. + Çevrim içi kaynak ekle + Bu değişiklikleri uygulamak, bu döşeme kaynağı için önbelleğe alınan verileri temizleyecektir \ No newline at end of file From 6556f9502155994f6a524f9542325a6374737fb2 Mon Sep 17 00:00:00 2001 From: Athoss Date: Fri, 12 Jun 2020 12:05:39 +0000 Subject: [PATCH 048/107] Translated using Weblate (Hungarian) Currently translated at 95.6% (3236 of 3384 strings) --- OsmAnd/res/values-hu/strings.xml | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/OsmAnd/res/values-hu/strings.xml b/OsmAnd/res/values-hu/strings.xml index 98ce5d970d..d570b3ce71 100644 --- a/OsmAnd/res/values-hu/strings.xml +++ b/OsmAnd/res/values-hu/strings.xml @@ -1713,7 +1713,7 @@ Hosszúság: %2$s Összes frissítése (%1$s MB) Elhasznált ingyenes letöltés Megjeleníti a maradék ingyenes letöltéseket. - Az első indítást jelző flag beállítása, a többi beállítás változatlan marad. + Az első indítást jelző címke beállítása, a többi beállítás változatlan marad. Alkalmazás első indításának szimulálása geo: Pozíció megosztása @@ -3130,7 +3130,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Analitika Navigáció közben a térkép megjelenítése a lezárási képernyőn. Útvonaltervezési beállítások erre a profilra: %1$s. - Felébresztési idő + Időtúllépés felébresztés után Mértékegységek & formátumok Megjelenés Térkép megjelenés @@ -3333,7 +3333,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Profil megjelenése Ikon, szín és név Profilok listájának szerkesztése - Kijelölt profil + Kiválasztott profil A létrehozandó egyedi profil az alkalmazás egyik alapprofilján fog alapulni, ez határozza meg az alapvető beállításokat, mint például a widgetek láthatóságát vagy a sebesség és távolság mértékegységeit. Ezek az alapprofilok, néhány pédával az egyedi profilokra, amikre kiterjeszthetők: Szerezze meg %1$d %2$s %3$s kedvezménnyel %1$s az első %2$s @@ -3655,7 +3655,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük \n%2$s: Ezen nagyítási szintek között az eredeti csempék jelennek meg, ezeken kívül pedig felskálázásra vagy leskálázásra kerülnek. Mindig Kijelző beállításai - Kijelző időtúllépés + Kijelző időtűllépés rendszerbeállítás használata Ezekkel a beállításokkal az OsmAnddal az előtérben ébresztheti fel a kijelzőt. Ezek a beállítások csak akkor működnek, ha az eszköz az OsmAnddal az előtérben kerül lezárásra. A kijelző automatikusan bekapcsol néhány másodperccel a navigációs utasítás előtt a \"Felébresztési idő\" opcióban megadott időtartamra. @@ -3683,4 +3683,22 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük \nEgy hét 10 080 perc. \nEgy hónap 43 829 perc. Válassza ki a letöltött csempék tárolási módját. + Adja meg a járműve szélességét, széles járművekre útvonalkorlátozások lehetnek érvényben. + Adja meg a járműve magasságát, magas járművekre útvonalkorlátozások lehetnek érvényben. + Adja meg a járműve tömegét, nehéz járművekre útvonalkorlátozások lehetnek érvényben. + Az OsmAnd GPX formázása helytelen, további vizsgálatért kérem, lépjen kapcsolatba a támogató csapattal. + Az alkalmazásprofilokkal exportálhat és importálhat gyorsműveleteket. + Összes törlése\? + Biztosan véglegesen törölni szeretne %d gyorsműveletet\? + tonna + méter + További térképrészletek megjelenítése vagy elrejtése + Éjszakai térkép + Online forrás hozzáadása + Kikapcsolja a kijelzőt a rendszer kijelző időtúllépés beállításának megfelelően. + Adja meg a felébresztés utáni kijelző időtúllépést. (\"%1$s\" esetén nincs időtúllépés.) + Kijelző időtúllépés + Amenniben a \"%1$s\" engedélyezve van, az aktivitásidő attól fog függeni. + Alapértelmezett kijelző időtúllépés + Letiltva. Használatához szükséges a \'Kijelző maradjon bekapcsolva\' beállítás az \'Időtúllépés felébresztés után\' menüpont alatt. \ No newline at end of file From edca724f121c30adce2a8d4242b2301b2c265f93 Mon Sep 17 00:00:00 2001 From: ace shadow Date: Thu, 11 Jun 2020 19:21:00 +0000 Subject: [PATCH 049/107] Translated using Weblate (Slovak) Currently translated at 100.0% (3384 of 3384 strings) --- OsmAnd/res/values-sk/strings.xml | 64 ++++++++++++++++---------------- 1 file changed, 33 insertions(+), 31 deletions(-) diff --git a/OsmAnd/res/values-sk/strings.xml b/OsmAnd/res/values-sk/strings.xml index ba762b9aa4..b80e23fb0f 100644 --- a/OsmAnd/res/values-sk/strings.xml +++ b/OsmAnd/res/values-sk/strings.xml @@ -992,15 +992,15 @@ Verzia: O programe Informácie o verzii, licencie, členovia projektu - Stiahnuté priblíženia: %1$s + Stiahnuté úrovne priblíženia: %1$s Stiahnuteľné: %1$s - Vypršanie (v minútach): %1$s + Čas exspirácie (v minútach): %1$s Maximálne priblíženie: %1$s Minimálne priblíženie: %1$s Údaje dlaždíc: %1$s - Zdroj dlaždíc %1$s bol uložený + Zdroj dlaždíc %1$s uložený Maximálne priblíženie - Vypršanie (v minútach) + Čas exspirácie (v minútach) Minimálne priblíženie URL Zvoliť existujúci… @@ -1029,7 +1029,7 @@ Fotoaparát sa bude pokúšať ostriť priebežne Prehrať zvuk pri zachytení snímky Nastaviť zvuk či ticho pri odfotografovaní snímky. - Eliptický mercator + Eliptické Mercatove zobrazenie Základná mapa sveta Zväčšenie mapy Žiadne automatické približovanie @@ -2340,18 +2340,18 @@ \n • Voliteľné nahrávanie výletu na pozadí (keď je zariadenie v režime spánku) \n OsmAnd je aktívne vyvíjaný slobodný softvér. Každý môže prispieť do aplikácie hlásením chýb, vylepšením prekladu alebo programovaním nových funkcií. Projekt tiež závisí od finančných príspevkov na vývoj a testovanie nových funkcií. \n - Približná kvalita pokrytia máp: -\n • Západná Európa: **** -\n • Východná Európa: *** -\n • Rusko: *** -\n • Severná Amerika: *** -\n • Južná Amerika: ** -\n • Ázia: ** -\n • Japonsko a Kórea: *** -\n • Blízky Východ: ** -\n • Afrika: ** -\n • Antarktída: * -\n Väčšina krajín sveta je k dispozícii na stiahnutie. + Približná kvalita pokrytia máp: +\n • Západná Európa: **** +\n • Východná Európa: *** +\n • Rusko: *** +\n • Severná Amerika: *** +\n • Južná Amerika: ** +\n • Ázia: ** +\n • Japonsko a Kórea: *** +\n • Blízky Východ: ** +\n • Afrika: ** +\n • Antarktída: * +\n Väčšina krajín sveta je k dispozícii na stiahnutie. \n Od Afganistanu po Zimbabwe, od Austrálie po USA. Argentína, Brazília, Kanada, Francúzsko, Nemecko, Mexiko, Spojené kráľovstvo, Španielsko, Slovensko, … \n Obnoviť nákupy @@ -3606,7 +3606,7 @@ Lyžiarske okruhy Snežný skúter Vlastný modul pre OsmAnd - Nahradiť iný bod týmto + Nahradiť iný bod týmto. Zmeny boli použité na profil \"%1$s\". Nepodarilo sa prečítať z \"%1$s\". Nepodarilo sa zapísať do \"%1$s\". @@ -3639,7 +3639,7 @@ Vlastná farba Ďalšie mapy Nepodporovaná akcia %1$s - Zvoľte jazyky, v ktorých sa zobrazia články Wikipedia na mape. Počas čítania článku môžete prepnúť medzi všetkými dostupnými jazykmi. + Zvoľte jazyky článkov Wikipedia na mape. Počas čítania článku môžete prepnúť medzi všetkými dostupnými jazykmi. Niektoré články Wikipedia nemusia byť dostupné vo vašom jazyku. Kantonsky Južnominsky @@ -3725,7 +3725,7 @@ Nepodporovaný typ Vždy Vyberte možnosti prebudenia obrazovky (pri uzamknutí zariadenia sa uistite, že je OsmAnd v popredí): - Ak je voľba \"%1$s\" zapnutá, čas aktivity bude na nej závisieť. + Ak je \"%1$s\" zapnuté, čas aktivity bude na tom závisieť. Jeden obrazový súbor na dlaždicu Použiť systémový časový limit obrazovky Možnosti prebudenia obrazovky: @@ -3742,7 +3742,7 @@ Upraviť online zdroj Čas vypršania platnosti Formát úložiska - Nastavte minimálnu a maximálnu úroveň priblíženia, pri ktorej sa zobrazí alebo načíta online mapa. + Nastavte minimálnu a maximálnu úroveň priblíženia, kedy sa zobrazí alebo načíta online mapa. Vyberte spôsob uloženia prevzatých dlaždíc. GPX OsmAndu nemá správny tvar, prosím kontaktuje tím podpory pre bližšie preverenie. Ovládanie obrazovky @@ -3750,15 +3750,15 @@ Každý navigačný pokyn zapne obrazovku. Pseudo-Mercatorovo zobrazenie Mercatorovo zobrazenie - Tieto parametre ovplyvňujú zobrazenie keď sa použije ako mapa alebo podkladová/prekryvná vrstva. -\n -\n%1$s: Mapa bude obmedzená na zvolené priblíženia. -\n -\n%2$s: Úrovne priblíženia, pri ktorých budú viditeľné pôvodné dlaždice. Mimo týchto hodnôt nastane prepočítanie bodov obrázkov. - Doba platnosti v minútach. Uložené dlaždice budú znovu načítané z Internetu po tomto čase. Ponechajte toto pole prázdne ak sa pre tento zdroj nemajú dlaždice nikdy obnovovať. -\n -\nJeden deň je 1440 minút. -\nJeden týždeň je 10 080 minút. + Ovplyvňuje zobrazenie keď sa použije ako mapa alebo podkladová/prekryvná vrstva. +\n +\n%1$s: Mapa je obmedzená na zvolený rozsah priblížení. +\n +\n%2$s sú úrovňami priblíženia, pri ktorých budú viditeľné pôvodné dlaždice. Mimo týchto hodnôt nastane prepočítanie bodov obrázkov. + Uložené dlaždice budú znovu načítané z Internetu po zadanom počte minút. Ponechajte toto pole prázdne ak sa pre tento zdroj nemajú dlaždice nikdy obnovovať. +\n +\nJeden deň je 1440 minút. +\nJeden týždeň je 10 080 minút. \nJeden mesiac je 43 829 minút. Predvolený časový limit obrazovky Rýchle akcie môžete exportovať a importovať spolu s profilmi aplikácie. @@ -3770,8 +3770,10 @@ Zadajte hmotnosť vášho vozidla, pretože na trase môžu byť obmedzenia pre ťažké vozidlá. tony metre - Ovládajte viditeľnosť ďalších detailov zobrazených na mape + Zobraziť alebo skryť ďalšie detaily na mape Nočná mapa Vždy Vypnuté. Vyžaduje \"Nechať obrazovku zapnutú\" pod \"Časový limit obrazovky po prebudení\". + Pridať online zdroj + Aplikovaním týchto zmien sa vymažú uložené dlaždice pre tento zdroj \ No newline at end of file From 58f84fa894c6c4163c28a2243c222d7f10b68682 Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Fri, 12 Jun 2020 08:16:14 +0000 Subject: [PATCH 050/107] Translated using Weblate (Hebrew) Currently translated at 100.0% (3384 of 3384 strings) --- OsmAnd/res/values-he/strings.xml | 64 ++++++++++++++++---------------- 1 file changed, 33 insertions(+), 31 deletions(-) diff --git a/OsmAnd/res/values-he/strings.xml b/OsmAnd/res/values-he/strings.xml index fc67204fef..0fda729128 100644 --- a/OsmAnd/res/values-he/strings.xml +++ b/OsmAnd/res/values-he/strings.xml @@ -1583,7 +1583,7 @@ גרסה: על אודות תקריב מרבי - תפוגה (דקות) + זמן תפוגה (דקות) תקריב מזערי כתובת בחירה בקיים… @@ -2275,7 +2275,7 @@ מגדיל מפה פרטי גרסה, רשיונות, חברי המיזם רמות תקריב שהתקבלו: %1$s - תפוגה (דקות): %1$s + זמן תפוגה (דקות): %1$s ניתן להורדה: %1$s תקריב מרבי: %1$s תקריב מזערי: %1$s @@ -2548,18 +2548,18 @@ \n • הקלטת טיולים כרשות גם במצב רקע (כשההתקן במצב שינה) \n OsmAnd הנו יישומון בקוד פתוח בהליכי פיתוח פעילים. כולם יכולים לתרום ליישומון על ידי דיווח על תקלות, שיפור התרגומים או תרומת קוד לתכונות חדשות. בנוסף, המיזם תלוי גם בתרומות כלכליות לטובת פיתוח ובדיקה של תכונות חדשות. \n - כיסוי ואיכות מוערכים של המפה: -\n • מערב אירופה: **** -\n • מזרח אירופה: *** -\n • רוסיה: *** -\n • צפון אמריקה: *** -\n • דרום אמריקה: ** -\n • אסיה: ** -\n • יפן וקוריאה: *** -\n • המזרח התיכון: ** -\n • אפריקה: ** -\n • אנטארקטיקה: * -\n רוב המדינות מסביב לעולם זמינות להורדה + כיסוי ואיכות מוערכים של המפה: +\n • מערב אירופה: **** +\n • מזרח אירופה: *** +\n • רוסיה: *** +\n • צפון אמריקה: *** +\n • דרום אמריקה: ** +\n • אסיה: ** +\n • יפן וקוריאה: *** +\n • המזרח התיכון: ** +\n • אפריקה: ** +\n • אנטארקטיקה: * +\n רוב המדינות מסביב לעולם זמינות להורדה \n החל מאפגניסטן ועד זימבבואה, מאוסטרליה ועד ארה״ב. ישראל, ארגנטינה, ברזיל, קנדה, צרפת, גרמניה, מקסיקו, אנגליה, ספרד… \n נא לציין זיכרון זמני לשמירת מיקומים לשליחה בהעדר חיבור @@ -2777,7 +2777,7 @@ עליך לערוך מינוי ל־OsmAnd חי כדי לקרוא ערכים מוויקיפדיה ומוויקימסע ללא חיבור לאינטרנט. כיצד לפתוח את הקישור? קריאת ויקיפדיה ללא חיבור לאינטרנט - היטל כדורי + היטל מרקטור כדורי הסתרת התיאור המלא הצגת התיאור המלא לניווט ימי. לרבות מצופים, מגדלורים, מסלולי נהרות, סימונים ומסלולים לניווט בים, מעגנים, שירותי סימונים ימיים וקווי מתאר לתיאור עומק. @@ -3599,7 +3599,7 @@ איפוס הגדרות התוסף לבררת המחדל מרווח מעקב מסנן זה מונע תיעוד כפילות של נקודות כשלא הייתה מספיק תנועה, יוצר תצוגה מרחבית נאה יותר של מסלולים שלא עוברים עיבוד לאחר מכן. - החלפת נקודה אחרת בזו + החלפת נקודה אחרת בזו. השינויים לפרופיל ‚%1$s’ חלו. לא ניתן לקרוא מתוך ‚%1$s’. לא ניתן לכתוב אל ‚%1$s’. @@ -3638,7 +3638,7 @@ מכילות 4 כפתורים בלבד. פעולות ראשית ניתן להעביר פריטים בתוך קטגוריה זו בלבד. - נא לבחור את השפות בהן יופיעו ערכים של ויקיפדיה במפה. ניתן להחליף בין כל השפות הזמינות בזמן קריאת הערך. + נא לבחור את השפות לערכים של ויקיפדיה במפה. ניתן להחליף לכל אחת מהשפות הזמינות בזמן קריאת הערך. יתכן שחלק מהערכים בוויקיפדיה לא יהיו זמינים בשפה שלך. קנטונזית מין נאן @@ -3742,22 +3742,22 @@ זמן תפוגה היטל מרקטור תצורת שמירה - יש להגדיר את רמת התקריב המזערית והמרבית שבהן המפה המקוונת תוצג או תיטען. - המשתנים האלו ישפיעו על התצוגה כאשר נעשה בהם שימוש כמפה או כשכבה עליונה/תחתונה. -\n -\n%1$s: המפה תוגבל לרמות התקריב הנבחרות. -\n -\n%2$s: רמות תקריב שבהן האריחים המקוריים יהיו גלויים. הגדלה או הקטנה ייתרחשו מחוץ לערכים האלו. - זמן התפוגה בדקות. אריחים שנשמרו במטמון ייטענו מחדש לאחר זמן מסוים. יש להשאיר את השדה הזה ריק כדי לא לרענן את האריחים ממקור זה. -\n -\nיום מלא הוא 1440 דקות. -\nשבוע מלא הוא 10,080 דקות. + יש להגדיר רמת תקריב מזערית ומרבית להצגה או טעינה של המפה המקוונת. + משפיע על המסך בעת שימוש כמפה או שכבת על/תחתונה. +\n +\n%1$s: המפה מוגבלת לטווח רמות התקריב הנבחר. +\n +\n%2$s הן רמות שבהן האריחים המקוריים יהיו גלויים. הגדלה או הקטנה ייתרחשו מחוץ לערכים האלו. + אריחים ייטענו מחדש לאחר כמות דקות מסוימת. יש להשאיר את השדה הזה ריק כדי לא לרענן את האריחים ממקור זה. +\n +\nיום מלא הוא 1440 דקות. +\nשבוע מלא הוא 10,080 דקות. \nחודש מלא הוא 43,829 דקות. - נא לבחור כיצד אריחים שהתקבלו יאוחסנו. + נא לבחור כיצד לאחסן אריחים שהתקבלו. היטל דמוי מרקטור תמיד בקרת מסך - לכבות את המסך לאחר תפוגת שומר המסך של המערכת. + לכבות את המסך בהתאם לתפוגת שומר המסך של המערכת. להשתמש בתפוגת שומר המסך של המערכת אפשרות יקיצת מסך: נא לבחור את אפשרויות יקיצת המסך (נא לוודא ש־OsmAnd בחזית כאשר המכשיר ננעל): @@ -3769,7 +3769,7 @@ לבחור את זמן תפוגת שומר המסך של המערכת לאחר ההתעוררות. („%1$s” - ללא זמן תפוגה.) להשאיר את המסך פעיל להשאיר את המסך כבוי - אם האפשרות „%1$s” פעילה, זמן הפעילות יהיה תלוי בה. + אם „%1$s” פעילה, זמן הפעילות יהיה תלוי בה. ברירת מחדל של תפוגת שומר המסך ניתן לייצא או לייבא פעולות מהירות עם פרופילי יישומון. למחוק הכול\? @@ -3780,8 +3780,10 @@ נא לציין את משקל כלי הרכב שלך, יתכן שחלות מגבלות מעבר על כלי רכב כבדים. גוונים מטרים - שליטה בהופעה של פירוט נוסף על המפה + הצגה או הסתרה של פירוט נוסף על המפה מפת לילה כל הזמן מושבת. נדרשת ההגדרה ‚להשאיר את המסך פעיל’ תחת ‚תפוגת זמן לאחר התעוררות’. + הוספת מקור מקוון + החלת השינויים האלו תפנה את הנתונים שנשמרו עבור מקור אריחים זה \ No newline at end of file From cabdd7273a1ab33d7fa1ced16d9f1c71d2fae6c4 Mon Sep 17 00:00:00 2001 From: iman Date: Thu, 11 Jun 2020 15:46:37 +0000 Subject: [PATCH 051/107] Translated using Weblate (Persian) Currently translated at 99.8% (3378 of 3384 strings) --- OsmAnd/res/values-fa/strings.xml | 34 +++++++++++++++++--------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/OsmAnd/res/values-fa/strings.xml b/OsmAnd/res/values-fa/strings.xml index 9079d3c8d1..f416d3d50a 100644 --- a/OsmAnd/res/values-fa/strings.xml +++ b/OsmAnd/res/values-fa/strings.xml @@ -1075,14 +1075,14 @@ درباره دربارهٔ نسخه، گواهی‌ها، اعضای پروژه زوم‌های دانلود‌شده: %1$s - انقضا (به دقیقه): %1$s + زمان انقضا (به دقیقه): %1$s قابل‌دانلود: %1$s بیشترین زوم: %1$s کمترین زوم: %1$s منبع کاشی‌ها: %1$s منبع کاشی %1$s ذخیره شد بیشترین زوم - انقضا (به دقیقه) + زمان انقضا (به دقیقه) کمترین زوم انتخاب از موارد موجود… تعریف/ویرایش… @@ -2551,7 +2551,7 @@ \n • آفریقا: ** \n • جنوبگان: * \nبا این نرم‌افزار نقشهٔ بیشتر مناطق جهان را خواهید یافت. -\nهر کجا که باشید، فرقی نمی‌کند؛ در فرانسه، آلمان، انگلستان، مکزیک، آمریکا، هلند، ایران، روسیه، برزیل و... +\nهر کجا که باشید، فرقی نمی‌کند؛ در فرانسه، آلمان، انگلستان، مکزیک، آمریکا، هلند، ایران، روسیه، برزیل و... \n نمایش نقشه \n • نمایش موقعیت و جهت قرارگیری شما @@ -3639,7 +3639,7 @@ تور اسکی برف‌رو افزونهٔ سفارشی OsmAnd - نقطهٔ دیگری را جانشین این کنید + نقطهٔ دیگری را جانشین این کنید. تغییرات بر پروفایل %1$s به کار گرفته شد. خواندن از %1$s ناموفق بود. نوشتن در %1$s ناموفق بود. @@ -3668,7 +3668,7 @@ چیزهایی که از این نقطه به پایین قرار می‌گیرند، با جداکننده جدا می‌شوند. اقلام را فقط درون این دسته می‌توانید جابه‌جا کنید. اقلام - انتخاب کنید مقاله‌های ویکی‌پدیا به چه زبان‌هایی روی نقشه نمایان شوند. هنگام مطالعهٔ مقاله می‌توانید بین زبان‌های مختلف جابه‌جا شوید. + زبان‌های مقاله‌های ویکی‌پدیا را برای نمایش روی نقشه انتخاب کنید. هنگام مطالعهٔ مقاله می‌توانید بین زبان‌های موجود جابه‌جا شوید. ممکن است برخی مقاله‌های ویکی‌پدیا به زبان شما در دسترس نباشد. لومبارد رنگ دلخواه @@ -3758,7 +3758,7 @@ بازنشانی ترتیب پیشفرض اقلام ‏OsmAnd GPX قالب درستی ندارد. لطفاً برای بررسی بیشتر با گروه پشتیبانی تماس بگیرید. زمان خاموشی صفحه پس از بیدارباش را انتخاب کنید. («%1$s» یعنی خاموش نشود) - اگر گزینهٔ «%1$s» فعال باشد، زمان فعالیت به آن وابسته خواهد بود. + اگر «%1$s» روشن باشد، زمان فعالیت به آن وابسته خواهد بود. همیشه کنترل صفحه هنگامی که زمان خاموشی صفحه مطابق تنظیمات دستگاه سر برسد، صفحه را خاموش می‌کند. @@ -3774,10 +3774,10 @@ صفحه را خاموش نگه دار فراتابی مرکاتور یک فایل تصویر برای هر کاشی - این پارامترها هنگام استفاده از منبع به‌عنوان نقشه یا رولایه/زیرلایه، بر نمایش آن اثر می‌گذارند. -\n -\n‏%1$s: نقشه محدود به پارامترهای انتخاب‌شده خواهد بود. -\n + هنگام استفاده از منبع به‌عنوان نقشه یا رولایه/زیرلایه، بر نمایش آن اثر می‌گذارند. +\n +\n‏%1$s: نقشه به دامنهٔ زوم انتخاب‌شده محدود می‌شود. +\n \n‏%2$s: درجات زوم که در آن کاشی‌های اصلی نمایان خواهند بود. خارج از این مقدارها افزایش یا کاهش مقیاس رخ خواهد داد. فایل SQLiteDB نامی برای منبع نقشهٔ آنلاین بنویسید. @@ -3785,11 +3785,11 @@ ویرایش منبع آنلاین زمان انقضا قالب ذخیره‌گاه - کمترین و بیشترین درجهٔ زوم که نقشهٔ آنلاین نمایان خواهد بود یا بار خواهد شد. - زمان انقضا به دقیقه. کاشی‌های ذخیره‌شده پس از این مدت زمان مجدداً بار می‌شوند. این خانه را خالی بگذارید تا کاشی‌های این منبع هیچ‌گاه تازه‌سازی نشود. -\n -\nیک روز ۱ ۴۴۰ دقیقه است. -\nیک هفته ۱۰ ۰۸۰ دقیقه است. + کمترین و بیشترین درجهٔ زوم را برای نمایش یا بارکردن نقشهٔ آنلاین تنظیم کنید. + کاشی‌های ذخیره‌شده پس از این مدت (به دقیقه) مجدداً دانلود می‌شوند. این خانه را خالی بگذارید تا کاشی‌های این منبع هیچ‌گاه تازه‌سازی نشود. +\n +\nیک روز ۱ ۴۴۰ دقیقه است. +\nیک هفته ۱۰ ۰۸۰ دقیقه است. \nیک ماه ۴۳ ۸۲۹ دقیقه است. شیوهٔ ذخیره‌سازی کاشی‌های دانلودشده را انتخاب کنید. زمان خاموشی پیشفرض صفحه @@ -3802,11 +3802,13 @@ وزن وسیلهٔ نقلیهٔ خود را مشخص کنید. ممکن است محدودیت‌های مسیر برای وسایل نقلیهٔ سنگین اِعمال شود. تُن متر - نمایانی جزئیات اضافه‌تر روی نقشه را کنترل کنید + جزئیات اضافه‌تر را روی نقشه آشکار یا پنهان کنید نقشهٔ شب همیشه غیرفعال است. به گزینهٔ «روشن نگه داشتن صفحه» در قسمت «زمان خاموشی پس از بیدارباش» نیاز دارد. فراتابی شبه مرکاتور اتصال اتصال + افزودن منبع آنلاین + به‌کارگیری این تغییرات، دادهٔ ذخیره‌شده برای این منبعِ کاشی را پاک می‌کند \ No newline at end of file From 045e1e829b613fedc8b97ca6fbfe2aee97e90857 Mon Sep 17 00:00:00 2001 From: Ajeje Brazorf Date: Thu, 11 Jun 2020 13:23:36 +0000 Subject: [PATCH 052/107] Translated using Weblate (Sardinian) Currently translated at 99.6% (3373 of 3384 strings) --- OsmAnd/res/values-sc/strings.xml | 69 ++++++++++++++++++++++++++------ 1 file changed, 56 insertions(+), 13 deletions(-) diff --git a/OsmAnd/res/values-sc/strings.xml b/OsmAnd/res/values-sc/strings.xml index 2be4a3bbb3..f18c6e0f61 100644 --- a/OsmAnd/res/values-sc/strings.xml +++ b/OsmAnd/res/values-sc/strings.xml @@ -119,16 +119,16 @@ Versione: Informatziones Informatziones de sa versione, litzèntzias, membros de su progetu - Ismanniamentos iscarrigados: %1$s - Iscadèntzia (minutos): %1$s + Livellos de ismanniamentu iscarrigados: %1$s + Tempus de iscadèntzia (minutos): %1$s Iscarrigàbiles: %1$s Ismanniamentu màssimu: %1$s Ismanniamentu mìnimu: %1$s Datos tasseddos: %1$s - Sa mitza %1$s de sas imbrèstias est istada sarvada - Mercatore ellitticu + Mitza de tasseddos %1$s sarvada + Projetzione de Mercatore ellìtica Ismanniamentu màssimu - Iscadèntzia (minutos) + Tempus de iscadèntzia (minutos) Ismanniamentu mìnimu URL Ischerta intre sos esistentes… @@ -137,8 +137,8 @@ Regione de ghia Istados Unidos Cànada - Europa, Àsia, Amèrica latina e sìmiles - UK, Ìndia, e sìmiles + Europa, Àsia, Amèrica latina e simigiantes + UK, Ìndia, e simigiantes Issèbera sa regione de ghia: USA, Europa, UK, Àsia e àteras. Giapone Annuntzia… @@ -3177,7 +3177,7 @@ Allughe in sas bortadas Imposta pro cantu tempus s\'ischermu at a abarrare allutu. Imprea su sensore de prossimidade - Cola sa manu tua in dae in antis de s\'ala superiore de s\'ischermu pro l\'allùghere durante sa navigatzione. + Colende sa manu tua in dae in antis de s\'ischermu l\'as a allùghere. Gradu 1 Gradu 2 Gradu 3 @@ -3485,7 +3485,7 @@ %1$s/%2$s Intrinada a sas %1$s Arbèschida a sas %1$s - Custu at a registrare petzi sos puntos medidos cun un\'acuradesa mìnima indicada (in metros/pees, comente benit sinnaladu dae Android pro su chipset tuo). S\'acuradesa si riferit a sa dispersione de movimentos torrados a repìtere, e no est ligada diretamente a sa pretzisione, chi definit canto sa medida tua est a curtzu a sa positzione bera tua. + Custu at a registrare petzi sos puntos medidos cun un\'acuradesa mìnima indicada (in metros/pees, comente benit sinnaladu dae Android pro su chipset tuo). S\'acuradesa est sa prossimidade de sas medidas a sa positzione bera tua, e no est ligara diretamente a sa pretzizione, chi est sa dispersione de movimentos torrados a repìtere. \'Riprìstina sos valores predefinidos\' at a torrare a impostare s\'òrdine predefinidu de installatzione. Sa modalidade de atzessibilidade est istudada in su sistema Android tuo. Imprea su tempus de isetu de s\'ischermu de su sistema @@ -3609,7 +3609,7 @@ Otàgonu Cuadradu Mìn - Remplasa un\'àteru puntu cun custu + Remplasa un\'àteru puntu cun custu. Iscì-alpinismu Motoislita Estensione de OsmAnd personalizada @@ -3640,7 +3640,7 @@ Podes mòere elementos in intro de custa categoria ebbia. Estensione pro sos isvilupadores Elementos - Issèbera sa limba in sa cale sos artìculos de Wikipedia ant a aparire in sa mapa. Podes colare dae una limba a s\'àtera cando ses leghende s\'artìculu. + Issèbera sa limba pro sos artìculos de Wikipedia in sa mapa. Cola dae una limba disponìbile a s\'àtera cando ses leghende s\'artìculu. Unos cantos artìculos de Wikipedia diant pòdere no èssere a disponimentu in sa limba tua. Cantonesu Min meridionale @@ -3728,13 +3728,56 @@ Impossìbile a agatare custos profilos. Mapa mundiale generale (a sa minuda) Casta non suportada - Issèbera comente sos tasseddos iscarrigados ant a èssere sarvados. + Issèbera comente sarvare sos tasseddos iscarrigados. Podes esportare o importare atziones lestras cun profilos de s\'aplicatzione. Iscantzellare totu\? Ses seguru de chèrrere iscantzellare definitivamente %d atziones lestras\? Totu su tempus metros - Controlla sa visibilidade de delàllios additzionales ammustrados in sa mapa + Ammustra o cua sos detàllios additzionales in sa mapa Mapa noturna sonerias + Custos paràmetros ant a influentzare sa vista cando benit impreados comente mapa o istradu superiore/inferiore. +\n +\n%1$s: Sa mapa at a èssere limitada a s\'intervallu de ismanniamentu ischertadu. +\n +\n%2$s sunt sos livellos de ismanniamentu pro sos cales sos tasseddos originales ant a èssere visìbiles. In foras de custos valores b\'at a èssere s\'ismanniamentu o sa minimadura de iscala. + Inserta sa largària de su veìculu tuo, ca unas cantas restritziones si diat pòdere aplicare pro veìculos largos ebbia. + Inserta s\'artària de su veìculu tuo, ca unas cantas restritziones si diat pòdere aplicare pro veìculos artos ebbia. + Inserta su pesu de su veìculu tuo, ca unas cantas restritziones si diat pòdere aplicare pro veìculos pesantes ebbia. + Su GPX de OsmAnd no est fraigadu bene, pro praghere cuntata s\'iscuadra de suportu pro investigare prus a fundu. + Istudat s\'ischermu sighende sas impostatziones de sistema. + Imprea su tempus de istudadura de sistema + Ischerta sas optziones de allughidura de s\'ischermu (assegura·ti chi OsmAnd siat in primu pranu cando ses blochende su dispositivu): + Cada indicatzione de navigatzione at a allùghere s\'ischermu. + Indicatziones de navigatzione + Disabilitadu. Tenet bisòngiu de \'Mantene s\'ischermu allutu\' in suta de \'Tempus de allughidura\'. + Incarchende su butone de allughidura de su dispositivu as a allùghere s\'ischermu cun OsmAnd in subra a s\'ischermada de blocu. + Issèbera sa longària de istudadura de s\'ischermu a pustis de s\'allughidura. (\"%1$s\" non ponet tempus perunu.) + Imposta unu livellu de ismanniamentu mìnimu e unu màssimu pro ammustrare o carrigare sa mapa in lìnia. + Sos tasseddos ant a èssere torrados a carrigare a pustis de su nùmeru de minutos dillindados. Lassa custu campu bòidu pro no annoare mai sos tasseddos pro custa mitza. +\n +\nUna die sunt 1440 minutos. +\nUna chida sunt is 10 080 minutos. +\nUnu mese sunt 43 829 minutos. + Semper + Controllu de s\'ischermu + Butone de allughidura + Sensore de prossimidade + Mantene s\'ischermu allutu + Mantene s\'ischermu istudadu + Projetzione de psèudo-Mercadore + Unu documentu de immàgine pro tasseddu + Documentu SQLiteDB + Fruni unu nùmene pro sa mitza de sa mapa in lìnia. + Inserta o incolla s\'URL pro sa mitza in lìnia. + Modìfica sa mitza in lìnia + Tempus de iscadida + Projetzione de Mercatore + Formadu de sarvamentu + Tempus de su blocu de s\'ischermu + Si \"%1$s\" est allutu, su tempus de atividade at a dipèndere dae issu. + Tempus de blocu de s\'ischermu predefinidu + Annanghe una mitza in lìnia + Aplichende custas modìficas as a isboidare sa memòria temporànea pro custa mitza de tasseddos \ No newline at end of file From 00279ca76335aaf0320f464013aa492bc71e4fdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1ns?= Date: Thu, 11 Jun 2020 18:11:42 +0000 Subject: [PATCH 053/107] Translated using Weblate (Galician) Currently translated at 100.0% (3384 of 3384 strings) --- OsmAnd/res/values-gl/strings.xml | 65 +++++++++++++++++--------------- 1 file changed, 34 insertions(+), 31 deletions(-) diff --git a/OsmAnd/res/values-gl/strings.xml b/OsmAnd/res/values-gl/strings.xml index e881bab19d..66600f4fbe 100644 --- a/OsmAnd/res/values-gl/strings.xml +++ b/OsmAnd/res/values-gl/strings.xml @@ -264,16 +264,16 @@ Versión: Sobre Información sobre a versión, licenzas, participantes no proxecto - Achegamentos baixados: %1$s - Caducidade (minutos): %1$s + Niveis de achegamento baixados: %1$s + Tempo de caducidade (minutos): %1$s Baixábel: %1$s Achegamento máximo: %1$s Achegamento mínimo: %1$s Datos das teselas: %1$s - A fonte das teselas \"%1$s\" foi gardada - Mercator elíptico + Fonte das teselas %1$s gardada + Proxección do Mercator elíptico Achegamento máximo - Caducidade (minutos) + Tempo de caducidade (minutos) Achegamento mínimo URL Escoller existente… @@ -2844,17 +2844,17 @@ Lon %2$s \n \n O OsmAnd é un software de código aberto, desenvolvido de xeito activo. Calquera pode contribuír ca aplicación informando sobre erros, mellorando as traducións ou desenvolvendo novas funcións. Ademais, o proxecto tamén depende das contribucións financeiras para desenvolver e probar novas funcionalidades. \n" - Cobertura e calidade aproximada do mapa: -\n • Europa Occidental: **** -\n • Europa Oriental: *** -\n • Rusia: *** -\n • Norteamérica: *** -\n • Suramérica: ** -\n • Asia: ** -\n • Xapón e Corea: *** -\n • Medio Oriente: ** -\n • África: ** -\n • Antártida: * + Cobertura e calidade aproximada do mapa: +\n • Europa Occidental: **** +\n • Europa Oriental: *** +\n • Rusia: *** +\n • Norteamérica: *** +\n • Suramérica: ** +\n • Asia: ** +\n • Xapón e Corea: *** +\n • Medio Oriente: ** +\n • África: ** +\n • Antártida: * \n Máis países darredor do globo están dispoñíbeis para baixar! Dende Afganistán a Zimbabue, dende Australia ós Estados Unidos. A Arxentina, Brasil, Canadá, Francia, Alemaña, México, Reino Unido, España, … \n Plans e prezos @@ -3594,7 +3594,7 @@ Lon %2$s Gardando novo perfil Non foi posíbel facer unha copia de seguranza do perfil. Plugin do desenvolvedor - Substitúe outro punto por este + Substitúe outro punto por este. Esquí de ruta Moto de neve Plugin personalizado do OsmAnd @@ -3611,7 +3611,7 @@ Lon %2$s Só ten catro botóns. Accións principais Só podes mover obxectos dentro desta categoría. - Escolle as linguas nas que os artigos da Wikipedia aparecerán no mapa. Podes trocar entre todos as linguas dispoñíbeis en canto leas o artigo. + Escolle as linguas para os artigos da Wikipedia no mapa. Muda a calquera lingua dispoñíbel mentres les o artigo. Algúns artigos da Wikipedia poden non estar dispoñíbeis na túa lingua. Cantonés Min do sur @@ -3761,7 +3761,7 @@ Lon %2$s Proxección pseudo-Mercator Ficheiro SQLiteDB Sempre - Apaga a apantalla após o tempo de espera da pantalla do sistema. + Apaga a apantalla segundo o tempo de espera da pantalla do sistema. Opcións de acendido da pantalla: A pantalla acenderase de xeito automático uns segundos antes das instrucións de navegación durante un tempo específico na opción \"Tempo de activación\". \n @@ -3769,7 +3769,7 @@ Lon %2$s Premendo o botón de acendido do dispositivo acenderá a pantalla co OsmAnd na pantalla de bloqueo. Sensor de proximidade Manter a pantalla acendida - Se a opción \"%1$s\" está activada, o tempo de actividade dependerá diso. + Se \"%1$s\" está activado, o tempo de actividade dependerá diso. Un ficheiro de imaxe por tesela Fornece un nome para a fonte do mapa en liña. Insire ou pega a URL da fonte en liña. @@ -3777,20 +3777,20 @@ Lon %2$s Tempo de caducidade Proxección do Mercator Formato de almacenamento - Estabelece o nivel de achegamento mínimo e máximo no que se amosará ou cargará o mapa en liña. - Estes parámetros afectarán á pantalla cando sexan empregados como mapa normal ou mapa sobreposto/subcapa. + Estabelece un nivel de achegamento mínimo e máximo para amosar ou cargar o mapa en liña. + Afecta a pantalla cando é empregado coma mapa ou sobreposición/subcapa. \n -\n%1$s: O mapa estará limitado ós achegamentos escollidos. +\n%1$s: o mapa está limitado ó nivel de achegamento escollido. \n -\n%2$s: Niveis de achegamento nos que as teselas orixinais serán visíbeis. O aumento o a reducción de escala ocurrirán fóra destes valores. - Tempo de caducidade en minutos. As teselas na caché volveranse a cargar após o tempo especificado. Deixa este campo baleiro para nunca actualizar as teselas desta fonte. -\n -\n Un día son 1440 minutos. -\n Unha semana son 10080 minutos. +\n%2$s son os niveis nos que as teselas orixinais serán visíbeis, a escala ascendente ou descendente ocurrirá fóra destes valores. + As teselas na caché volveranse a baixar após o número de minutos especificado. Deixa este campo baleiro para nunca actualizar as teselas desta fonte. +\n +\n Un día son 1440 minutos. +\n Unha semana son 10080 minutos. \n Un mes son 43829 minutos. - Escolle de que xeito serán almacenadas as teselas baixadas. + Escoller de que xeito almacenar as teselas baixadas. Tempo de espera da pantalla por defecto - Podes exportar ou importar accións rápidas con perfís de aplicación. + Podes exportar ou importar accións rápidas cos perfís de aplicación. Eliminar todo\? Eliminar de xeito irrevogábel %d accións rápidas\? Tempo de espera da pantalla @@ -3799,7 +3799,10 @@ Lon %2$s Fornece a largura do teu vehículo. Algunhas restricións de ruta poden ser aplicadas a vehículos largos. tons metros - Controlar a visibilidade dos detalles adicionais amosados no mapa + Amosar ou agochar detalles adicionais do mapa Mapa de noite Todo o tempo + Desactivado. Require \'manter a pantalla acendida\' en \'tempo de espera após o acendido\'. + Engadir fonte en liña + Aplicando estas modificacións eliminarás os datos almacenados na caché para esta fonte de teselas \ No newline at end of file From d88e2b9211dc49cdfb3ccdf1fde55688403f142c Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 11 Jun 2020 20:28:15 +0000 Subject: [PATCH 054/107] Translated using Weblate (German) Currently translated at 100.0% (3804 of 3804 strings) --- OsmAnd/res/values-de/phrases.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-de/phrases.xml b/OsmAnd/res/values-de/phrases.xml index 2337b60ed4..3e324f6503 100644 --- a/OsmAnd/res/values-de/phrases.xml +++ b/OsmAnd/res/values-de/phrases.xml @@ -499,7 +499,7 @@ Quelle Stadion Messebauer - Wasserhahn + Standrohr Bürobedarf Auffallender Stein Steinmetz From 8066f9f3cbe5481d9c56f4cd538b2a17801acfcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1ns?= Date: Thu, 11 Jun 2020 18:10:32 +0000 Subject: [PATCH 055/107] Translated using Weblate (Galician) Currently translated at 100.0% (3804 of 3804 strings) --- OsmAnd/res/values-gl/phrases.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-gl/phrases.xml b/OsmAnd/res/values-gl/phrases.xml index c30af09dca..2a9a1ed9cb 100644 --- a/OsmAnd/res/values-gl/phrases.xml +++ b/OsmAnd/res/values-gl/phrases.xml @@ -1736,7 +1736,7 @@ Caixeiro automático: si Caixeiro automático: non Sen vasoira - Dispensa recetas médicas + Dispensa receitas médicas Campamento de exploradores Acampada libre Conducir por dentro From 8a7607655603bb58f9e06a8cd7fab005798b9eb9 Mon Sep 17 00:00:00 2001 From: Eduardo Addad de Oliveira Date: Thu, 11 Jun 2020 22:55:53 +0000 Subject: [PATCH 056/107] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (3384 of 3384 strings) --- OsmAnd/res/values-pt-rBR/strings.xml | 72 ++++++++++++++-------------- 1 file changed, 37 insertions(+), 35 deletions(-) diff --git a/OsmAnd/res/values-pt-rBR/strings.xml b/OsmAnd/res/values-pt-rBR/strings.xml index 152001e041..2950fbc074 100644 --- a/OsmAnd/res/values-pt-rBR/strings.xml +++ b/OsmAnd/res/values-pt-rBR/strings.xml @@ -346,7 +346,7 @@ Caminhão Para nível intermediário Zoom mínimo: %1$s - A fonte da quadrícula %1$s foi salva + A fonte da quadrícula %1$s salva Moderadores de tráfego Rota a partir daqui Navegar no mapa @@ -544,14 +544,14 @@ Versão: Sobre Versão, licenças, membros do projeto - Zooms baixados: %1$s - Expirar (minutos): %1$s + Níveis de zoom baixados:: %1$s + Tempo de expiração (minutos): %1$s Transferível: %1$s Zoom máximo: %1$s Dados da quadrícula: %1$s - Mercator elíptico + Projeção elíptica de Mercator Zoom máximo - Expirar (minutos) + Tempo de expiração (minutos) Zoom mínimo URL Selecionar existente… @@ -562,7 +562,7 @@ Japão Estados Unidos Canadá - Europa, Ásia, América Latina etc + Europa, Ásia, América Latina e similar Reino Unido, Índia e similares Configure o anúncio de nomes de ruas, avisos de trânsito (paradas forçadas, lombadas), avisos de radares de velocidade, limites de velocidade. Nome das ruas (TTS) @@ -2550,18 +2550,18 @@ Pôr do Sol: %2$s \n• Gravação opcional de viagem para arquivo GPX local ou serviço on-line • Exibição opcional de velocidade e altitudes \n• Exibição de curvas de nível e sombreamento de relevo (via plugin adicional) Sem nome - Cobertura de mapa e qualidade aproximada: -\n• Europa Ocidental: **** -\n• Europa Oriental: *** -\n• Rússia: *** -\n• América do Norte: *** -\n• América do Sul: ** -\n• Ásia: ** -\n• Japão e Coreia: *** -\n• Oriente Médio: ** -\n• África: ** -\n• Antártida: * -\nA maioria dos países ao redor do globo disponível para baixar! + Cobertura de mapa e qualidade aproximada: +\n• Europa Ocidental: **** +\n• Europa Oriental: *** +\n• Rússia: *** +\n• América do Norte: *** +\n• América do Sul: ** +\n• Ásia: ** +\n• Japão e Coreia: *** +\n• Oriente Médio: ** +\n• África: ** +\n• Antártida: * +\nA maioria dos países ao redor do globo disponível para baixar! \nDo Afeganistão ao Zimbábue, da Austrália aos Estados Unidos. Argentina, Brasil, Canadá, França, Alemanha, México, Reino Unido, Espanha, … \n Laociano @@ -3596,7 +3596,7 @@ Pôr do Sol: %2$s Passeio de esqui Moto de neve Plug-in OsmAnd personalizado - Substitua outro ponto por este + Substitua outro ponto por este. Alterações aplicadas ao perfil \'%1$s\'. Não foi possível ler a partir de \'%1$s\'. Não foi possível escrever para \'%1$s\'. @@ -3624,7 +3624,7 @@ Pôr do Sol: %2$s Você pode mover itens somente dentro desta categoria. Plugin do desenvolvedor Itens - Selecione os idiomas em que os artigos da Wikipédia aparecerão no mapa. Você pode alternar entre todos os idiomas disponíveis enquanto lê o artigo. + Selecione os idiomas para os artigos da Wikipedia no mapa. Alterne para qualquer idioma disponível enquanto lê o artigo. Alguns artigos da Wikipédia podem não estar disponíveis no seu idioma. Cantonês Min do Sul @@ -3716,22 +3716,22 @@ Pôr do Sol: %2$s Tempo de expiração Projeção de Mercator Formato de armazenamento - Defina o nível mínimo e máximo de zoom no qual o mapa online será exibido ou carregado. - Esses parâmetros afetarão a exibição quando usados como mapa ou sobreposição/subjacência. + Defina um nível mínimo e máximo de zoom para mostrar ou carregar o mapa online. + Afeta a tela quando usada como mapa ou sobreposição / subjacência. \n -\n%1$s: O mapa será limitado aos zooms selecionados. +\n%1$s: o mapa é limitado ao nível de zoom selecionado. \n -\n%2$s: Níveis de zoom nos quais os blocos originais estarão visíveis. O aumento ou redução do tamanho ocorrerá fora desses valores. - Tempo de expiração em minutos. Os mosaicos em cache serão recarregados após o tempo especificado. Deixe esse campo em branco para nunca atualizar mosaicos para esta fonte. -\n -\nUm dia é 1440 minutos. -\nUma semana é de 10 080 minutos. +\n%2$s são os níveis em que os blocos originais estarão visíveis, o aumento ou redução do tamanho ocorrerão fora desses valores. + Os mosaicos em cache serão baixados novamente após o número especificado de minutos. Deixe esse campo em branco para nunca atualizar mosaicos para esta fonte. +\n +\nUm dia é 1440 minutos. +\nUma semana é de 10 080 minutos. \nUm mês é 43 829 minutos. - Escolha como os mosaicos baixados serão armazenados. + Escolha como armazenar os mosaicos baixados. Tempo limite da tela padrão Sempre Controle de tela - Desligar a tela após o tempo limite da tela do sistema. + Desligar a tela conforme o tempo limite da tela do sistema. Usar tempo limite da tela do sistema Opções de ativação da tela: Selecione as opções de ativação da tela (verifique se OsmAnd está em primeiro plano quando o dispositivo está sendo bloqueado): @@ -3743,7 +3743,7 @@ Pôr do Sol: %2$s Selecionar o tempo limite da tela depois de acordar. (\"%1$s\" não se aplica a tempo limite.) Manter a tela ligada Manter a tela desligada - Se a opção \"%1$s\" estiver ativada, o tempo de atividade dependerá disso. + Se %1$s\" estiver ativado, o tempo de atividade dependerá disso. Projeção pseudo-Mercator Um arquivo de imagem por mosaico Arquivo SQLiteDB @@ -3754,13 +3754,15 @@ Pôr do Sol: %2$s Excluir tudo\? Tem certeza de que deseja excluir irrevogavelmente %d ações rápidas\? Tempo limite da tela - Forneça a largura do seu veículo. Algumas restrições de rotas podem ser aplicadas a veículos largos. - Forneça a altura do veículo, algumas restrições de rotas podem ser aplicadas para veículos altos. - Forneça o peso do veículo, algumas restrições de rotas podem ser aplicadas a veículos pesados. + Forneça a largura do seu veículo. Algumas restrições de rota podem se aplicar a veículos largos. + Forneça a altura do veículo, algumas restrições de rota podem ser aplicadas para veículos altos. + Forneça o peso do seu veículo. Algumas restrições de rota podem ser aplicadas a veículos pesados. tons metros - Controlar a visibilidade dos detalhes adicionais mostrados no mapa + Mostrar ou ocultar detalhes adicionais do mapa Mapa noturno Tempo todo Desativado. Requer \'manter a tela ligada\' em \'tempo limite após a ativação\'. + Adicionar fonte online + A aplicação dessas alterações limpará os dados em cache dessa origem de bloco \ No newline at end of file From b70c6c284da12b55ccf2ed99a597736b41ca6310 Mon Sep 17 00:00:00 2001 From: Verdulo Date: Fri, 12 Jun 2020 19:55:30 +0000 Subject: [PATCH 057/107] Translated using Weblate (Esperanto) Currently translated at 99.2% (3360 of 3384 strings) --- OsmAnd/res/values-eo/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-eo/strings.xml b/OsmAnd/res/values-eo/strings.xml index 2cd18b210d..c8dc622d67 100644 --- a/OsmAnd/res/values-eo/strings.xml +++ b/OsmAnd/res/values-eo/strings.xml @@ -3776,4 +3776,5 @@ Nokta mapo Ĉiam Malŝaltita. Postulas “teni ekranon aktiva” en la sekcio “aktiveca periodo de ekrano”. + Per apliki tiujn ĉi ŝanĝojn, la kaŝmemorigitaj datumoj por tiu ĉi fonto de kaheloj forviŝiĝos \ No newline at end of file From 75c95338ee8f8491974cdab6bc9cfde0ddc903d8 Mon Sep 17 00:00:00 2001 From: Verdulo Date: Thu, 11 Jun 2020 16:49:53 +0000 Subject: [PATCH 058/107] Translated using Weblate (Esperanto) Currently translated at 100.0% (3804 of 3804 strings) --- OsmAnd/res/values-eo/phrases.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/OsmAnd/res/values-eo/phrases.xml b/OsmAnd/res/values-eo/phrases.xml index baa3f8cb74..abe0aa4bbb 100644 --- a/OsmAnd/res/values-eo/phrases.xml +++ b/OsmAnd/res/values-eo/phrases.xml @@ -665,7 +665,7 @@ Deglitejo Somera tobogano Karuselo ĉenseĝa - Vagonareto (atrakcio) + Vagonareto (allogaĵo) Akvodeglitejo Voduo Daŭismo @@ -845,7 +845,7 @@ Ĝardenistejo Vitristejo Manmetistejo - Oficejo de isto de hejtado, aerumado, klimatizado + Oficejo de isto pri hejtado, aerumado, klimatizado Poŝ-horloĝistejo Varmizolaĵistejo Juvelista laborejo @@ -1016,7 +1016,7 @@ Vikipedio Ĉina Facebook Skype - Paliseto + Paliso Barilo kontraŭbicikla Barilo kontraŭmotorcikla Bloko @@ -1129,7 +1129,7 @@ rakoj speciala konstruaĵo budo - paliseto + paliso neformala Folihava(j) Pinglofolia(j) From 36e3d02d5485cb7d3ec703040646bb56e4df28db Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Fri, 12 Jun 2020 00:52:57 +0000 Subject: [PATCH 059/107] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (3384 of 3384 strings) --- OsmAnd/res/values-zh-rTW/strings.xml | 68 ++++++++++++++-------------- 1 file changed, 35 insertions(+), 33 deletions(-) diff --git a/OsmAnd/res/values-zh-rTW/strings.xml b/OsmAnd/res/values-zh-rTW/strings.xml index c8f65f5731..66609bb415 100644 --- a/OsmAnd/res/values-zh-rTW/strings.xml +++ b/OsmAnd/res/values-zh-rTW/strings.xml @@ -1017,12 +1017,12 @@ 日本 美國 加拿大 - 歐洲、亞洲、拉丁美洲和同類的 - 英國、印度和同類的 + 歐洲、亞洲、拉丁美洲與類似地區 + 英國、印度與類似地區 駕駛區域 FPS 除錯資訊 - 縮放已下載:%1$s - 有效時間(分鐘):%1$s + 縮放等級已下載:%1$s + 有效時間(分鐘):%1$s 可下載:%1$s 最大縮放比:%1$s 最小縮放比:%1$s @@ -1031,7 +1031,7 @@ 橢圓麥卡托投影 最大縮放比 最小縮放比 - 有效時間(分鐘) + 有效時間(分鐘) URL 選取既有的…… 定義/編輯… @@ -2255,18 +2255,18 @@ 靠右行駛 自動 暫停 - 大概的地圖覆蓋區域和品質: -\n• 西歐: **** -\n• 東歐: *** -\n• 俄羅斯: *** -\n• 北美洲: *** -\n• 南美洲: ** -\n• 亞洲:** -\n• 日本和韓國: *** -\n• 中東: ** -\n• 非洲: ** -\n• 南極洲: * -\n全球大多數國家都可以下載 + 大概的地圖覆蓋區域和品質: +\n• 西歐: **** +\n• 東歐: *** +\n• 俄羅斯: *** +\n• 北美洲: *** +\n• 南美洲: ** +\n• 亞洲:** +\n• 日本與韓國: *** +\n• 中東: ** +\n• 非洲: ** +\n• 南極洲: * +\n全球大多數國家都可以下載 \n從阿富汗到辛巴威,從澳洲到美國、阿根廷、巴西、加拿大、法國、德國、墨西哥、英國、 西班牙 … \n 安全功能 @@ -2345,7 +2345,7 @@ \n• 看到您的速度和海拔高度 \n• GPX 錄製選項使您能去記錄您的旅程並且分享 \n• 通過附加的外掛元件,您可以啟用等高線和地形陰影 - OsmAnd 正在積極的開發的開放原始碼軟體。每個人都可以透過回報錯誤、改進翻譯或編寫新功能,為應用程式做出貢獻。此外,該專案依靠提供資金捐款資助編寫程式碼和測試新的功能。 + OsmAnd 正在積極的開發的開放原始碼軟體。每個人都可以透過回報錯誤、改進翻譯或編寫新功能,為應用程式做出貢獻。此外,該專案依靠提供資金捐款資助編寫程式碼和測試新的功能。 \n大概的地圖覆蓋區域和品質: \n• 西歐: **** \n• 東歐: *** @@ -2353,7 +2353,7 @@ \n• 北美洲: *** \n• 南美洲: ** \n• 亞洲: ** -\n• 日本和韓國: *** +\n• 日本與韓國: *** \n• 中東: ** \n• 非洲: ** \n• 南極洲: * @@ -3604,7 +3604,7 @@ 滑雪旅遊 雪地摩托車 自訂 OsmAnd 外掛程式 - 以此取代另一點 + 以此取代另一點。 變更已套用至「%1$s」設定檔。 無法從「%1$s」讀取。 無法寫入至「%1$s」。 @@ -3632,7 +3632,7 @@ 您只能在此分類中移動項目。 開發者外掛程式 項目 - 選取維基百科的文章在地圖上顯示時的語言。您可以在閱讀文章時在所有可用的語言間切換。 + 選取維基百科文章在地圖上顯示的語言。在閱讀文章時可切換至任何可用的語言。 某些維基百科的文章可能無法以您的語言提供。 粵語 閩南語 @@ -3723,7 +3723,7 @@ OsmAnd GPX 格式不正確,請聯絡支援團隊以進一步調查。 總是 螢幕控制 - 在系統螢幕逾時後關閉螢幕。 + 根據系統的螢幕逾時關閉螢幕。 使用系統螢幕逾時 螢幕喚醒選項: 選取螢幕喚醒選項(確保裝置鎖定時,OsmAnd 在前景): @@ -3735,7 +3735,7 @@ 選取喚醒後的螢幕逾時。(「%1$s」不適用逾時。) 保持螢幕開啟 保持螢幕關閉 - 如果「%1$s」選項已啟用,則活動時間將取決於它。 + 若「%1$s」開啟,則活動時間將取決於它。 偽麥卡托投影 麥卡托投影 每個圖磚一個圖片檔案 @@ -3746,15 +3746,15 @@ 過期時間 儲存格式 設定線上地圖顯示或載入的最小與最大縮放等級。 - 當用於地圖或覆蓋層/底圖時,這些參數將會影響其顯示。 -\n -\n%1$s:地圖將會受限於選定的區域。 -\n -\n%2$s:可見的原始圖磚縮放等級。在這些值以外的將會升降縮放等級。 - 到期時間(以分鐘為單位)。快取圖磚將會在指定的時間後重新載入。將此欄留空就不會從此來源重新整理圖磚。 -\n -\n一天是1440分鐘。 -\n一週是10080分鐘。 + 會在用於地圖或覆蓋層/底圖時生效。 +\n +\n%1$s:地圖會受限於選定的縮放等級。 +\n +\n%2$s 是可見的原始圖磚縮放等級。在這些值以外的將會升降縮放等級。 + 在指定的分鐘數後重新下載快取圖磚。將此欄留空就不會從此來源重新整理圖磚。 +\n +\n一天是1440分鐘。 +\n一週是10080分鐘。 \n一個月是43829分鐘。 選擇要如何儲存下載的圖磚。 預設螢幕逾時 @@ -3767,8 +3767,10 @@ 提供您的車輛重量,某些路線的限制可能適用於重型車輛。 色調 公尺 - 控制地圖上顯示的額外詳細資訊可見程度 + 顯示或隱藏額外的地圖詳細資訊 夜晚地圖 全部時間 已停用。需要「喚醒後逾時」的「保持螢幕開啟」。 + 新增線上來源 + 套用這些變更將會清除這個圖磚來源的快取資料 \ No newline at end of file From 137f6c7ac5cbc48701d263ed78f781b3e8817836 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=C4=9Fuz=20Ersen?= Date: Fri, 12 Jun 2020 21:59:23 +0000 Subject: [PATCH 060/107] Translated using Weblate (Turkish) Currently translated at 100.0% (3388 of 3388 strings) --- OsmAnd/res/values-tr/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OsmAnd/res/values-tr/strings.xml b/OsmAnd/res/values-tr/strings.xml index bbee44c362..0ed2331723 100644 --- a/OsmAnd/res/values-tr/strings.xml +++ b/OsmAnd/res/values-tr/strings.xml @@ -3733,4 +3733,8 @@ Devre dışı. \'Uyandıktan sonra zaman aşımı\' altındaki \'Ekranı açık tut\' seçeneği gerekir. Çevrim içi kaynak ekle Bu değişiklikleri uygulamak, bu döşeme kaynağı için önbelleğe alınan verileri temizleyecektir + Gemi yüksekliğini ayarla + Alçak köprülerden kaçınmak için gemi yüksekliğini ayarlayabilirsiniz. Köprü hareket edebiliyorsa, açık durumdaki yüksekliğini kullanacağımızı unutmayın. + Alçak köprülerden kaçınmak için gemi yüksekliğini ayarlayın. Köprü hareket edebiliyorsa, açık durumdaki yüksekliğini kullanacağımızı unutmayın. + Dar köprülerden kaçınmak için gemi genişliğini ayarlayın \ No newline at end of file From 25e7cd4a577f1200cc45f8ec87b8aa4eed500156 Mon Sep 17 00:00:00 2001 From: Verdulo Date: Fri, 12 Jun 2020 21:25:41 +0000 Subject: [PATCH 061/107] Translated using Weblate (Esperanto) Currently translated at 99.5% (3373 of 3388 strings) --- OsmAnd/res/values-eo/strings.xml | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/OsmAnd/res/values-eo/strings.xml b/OsmAnd/res/values-eo/strings.xml index c8dc622d67..cd0d018087 100644 --- a/OsmAnd/res/values-eo/strings.xml +++ b/OsmAnd/res/values-eo/strings.xml @@ -3728,7 +3728,7 @@ Tiu ĉi GPX-dosiero estas misformita, kontaktu la helpteamon por sciiĝi pli. Ĉiam Aktiveco de ekrano - Malŝaltas la ekranon post la difinita tempo (laŭ agordo de Android). + Malŝaltas la ekranon laŭ la sistemaj agordoj. Sistema agordo pri malŝalti ekranon Kondiĉoj por ŝalti ekranon: Alĝustigi kiam ŝalti ekranon (certiĝu, ke OsmAnd laboras malfone kiam la aparato estas ŝlosita): @@ -3750,16 +3750,16 @@ Tempo de senvalidiĝo Merkatora projekcio Formo de konservado - Agordi la minimuman kaj maksimuman skal‑nivelojn ĉe kiuj la enreta mapo estos montrata. - La jenaj valoroj efikos sur vidigo de mapa sur-/sub-tavolo. -\n -\n%1$s: la mapo estos limigita al la elektitaj skal‑niveloj. -\n -\n%2$s: skal‑niveloj inter kiuj la originalaj kaheloj estos montrataj. Kaheloj estos pli-/mal-grandigitaj ekster tiu ĉi rango. - Tempo de senvalidiĝo en minutoj. Kaŝmemorigitaj kaheloj estos reelŝutitaj post la difinita tempo. Lasu tiun ĉi kampon malplena por neniam refreŝigi kahelojn el tiu ĉi fonto. -\n -\nUnu tago egalas al 1440 minutoj. -\nUnu semajno egalas al 10 080 minutoj. + Agordi la minimuman kaj maksimuman skal‑nivelojn por montri aŭ elŝuti enretan mapon. + Efikos sur vidigo de mapa sur-/sub-tavolo. +\n +\n%1$s: la mapo estos limigita al la difinitaj skal‑niveloj. +\n +\n%2$s: skal‑niveloj inter kiuj la originalaj kaheloj estos montrataj, kaheloj estos pli-/mal-grandigitaj ekster tiu ĉi rango. + Kaŝmemorigitaj kaheloj estos reelŝutitaj post la difinita tempo (en minutoj). Lasu tiun ĉi kampon malplena por neniam refreŝigi kahelojn el tiu ĉi fonto. +\n +\nUnu tago egalas al 1440 minutoj. +\nUnu semajno egalas al 10 080 minutoj. \nUnu jaro egalas al 43 829 minutoj. Elekti kiel konservi elŝutitajn kahelojn. Implicita aktiveco de ekrano @@ -3772,9 +3772,10 @@ Enigu pezon de via veturilo, iuj vojaj limigoj aplikas al pezaj veturiloj. tunoj metroj - Alĝustigi videblon de pliaj detaloj montrataj sur la mapo + Montri aŭ kaŝi pliajn detalojn sur la mapo Nokta mapo Ĉiam Malŝaltita. Postulas “teni ekranon aktiva” en la sekcio “aktiveca periodo de ekrano”. Per apliki tiujn ĉi ŝanĝojn, la kaŝmemorigitaj datumoj por tiu ĉi fonto de kaheloj forviŝiĝos + Aldoni enretan fonton \ No newline at end of file From fbbd4d06ad03352b0be099b695fdc2039ae301ce Mon Sep 17 00:00:00 2001 From: Nazar-Kutz Date: Sat, 13 Jun 2020 10:34:46 +0300 Subject: [PATCH 062/107] Fix #7795 --- .../src/net/osmand/plus/activities/SavingTrackHelper.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/activities/SavingTrackHelper.java b/OsmAnd/src/net/osmand/plus/activities/SavingTrackHelper.java index 67d7f79141..e245642401 100644 --- a/OsmAnd/src/net/osmand/plus/activities/SavingTrackHelper.java +++ b/OsmAnd/src/net/osmand/plus/activities/SavingTrackHelper.java @@ -212,11 +212,12 @@ public class SavingTrackHelper extends SQLiteOpenHelper { log.debug("Filename: " + f); File fout = new File(dir, f + IndexConstants.GPX_FILE_EXT); if (!data.get(f).isEmpty()) { + Locale locale = Locale.getDefault(); WptPt pt = data.get(f).findPointToShow(); - String fileName = f + "_" + new SimpleDateFormat("HH-mm_EEE", Locale.US).format(new Date(pt.time)); //$NON-NLS-1$ + String fileName = f + "_" + new SimpleDateFormat("HH-mm_EEE", locale).format(new Date(pt.time)); //$NON-NLS-1$ Integer track_storage_directory = ctx.getSettings().TRACK_STORAGE_DIRECTORY.get(); - if (track_storage_directory != OsmandSettings.REC_DIRECTORY) { - SimpleDateFormat dateDirFormat = new SimpleDateFormat("yyyy-MM"); + if (!track_storage_directory.equals(OsmandSettings.REC_DIRECTORY)) { + SimpleDateFormat dateDirFormat = new SimpleDateFormat("yyyy-MM", locale); // if (track_storage_directory == OsmandSettings.DAILY_DIRECTORY) { // dateDirFormat = new SimpleDateFormat("yyyy-MM-dd"); // } From 4e913d7f377a17081ae0ed79020e89f2156a3199 Mon Sep 17 00:00:00 2001 From: Nazar-Kutz Date: Sat, 13 Jun 2020 13:48:43 +0300 Subject: [PATCH 063/107] Fix #9089 --- OsmAnd/res/values/strings.xml | 4 ++ .../plus/quickaction/QuickActionRegistry.java | 2 + .../actions/ShowHideMapillaryAction.java | 69 +++++++++++++++++++ 3 files changed, 75 insertions(+) create mode 100644 OsmAnd/src/net/osmand/plus/quickaction/actions/ShowHideMapillaryAction.java diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index 5ff7259325..6362a76dc1 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -11,6 +11,10 @@ Thx - Hardy --> + A toggle to show or hide the Mapillary layer on the map. + Show Mapillary + Hide Mapillary + Show/hide Mapillary Set vessel width to avoid narrow bridges Set vessel height to avoid low bridges. Keep in mind, if the bridge is movable, we will use its height in the open state. You can set vessel height to avoid low bridges. Keep in mind, if the bridge is movable, we will use its height in the open state. diff --git a/OsmAnd/src/net/osmand/plus/quickaction/QuickActionRegistry.java b/OsmAnd/src/net/osmand/plus/quickaction/QuickActionRegistry.java index 045501de6b..01c38b7936 100644 --- a/OsmAnd/src/net/osmand/plus/quickaction/QuickActionRegistry.java +++ b/OsmAnd/src/net/osmand/plus/quickaction/QuickActionRegistry.java @@ -15,6 +15,7 @@ import com.google.gson.reflect.TypeToken; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandPlugin; +import net.osmand.plus.quickaction.actions.ShowHideMapillaryAction; import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.R; import net.osmand.plus.quickaction.actions.DayNightModeAction; @@ -226,6 +227,7 @@ public class QuickActionRegistry { quickActionTypes.add(MapStyleAction.TYPE); quickActionTypes.add(DayNightModeAction.TYPE); quickActionTypes.add(ShowHideTransportLinesAction.TYPE); + quickActionTypes.add(ShowHideMapillaryAction.TYPE); // navigation quickActionTypes.add(NavVoiceAction.TYPE); quickActionTypes.add(NavDirectionsFromAction.TYPE); diff --git a/OsmAnd/src/net/osmand/plus/quickaction/actions/ShowHideMapillaryAction.java b/OsmAnd/src/net/osmand/plus/quickaction/actions/ShowHideMapillaryAction.java new file mode 100644 index 0000000000..ba6c7d7391 --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/quickaction/actions/ShowHideMapillaryAction.java @@ -0,0 +1,69 @@ +package net.osmand.plus.quickaction.actions; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import net.osmand.plus.OsmandApplication; +import net.osmand.plus.OsmandPlugin; +import net.osmand.plus.R; +import net.osmand.plus.activities.MapActivity; +import net.osmand.plus.mapillary.MapillaryPlugin; +import net.osmand.plus.quickaction.QuickAction; +import net.osmand.plus.quickaction.QuickActionType; +import net.osmand.plus.settings.backend.OsmandSettings; + +public class ShowHideMapillaryAction extends QuickAction { + + public static final QuickActionType TYPE = new QuickActionType(33, + "mapillary.showhide", ShowHideMapillaryAction.class) + .nameRes(R.string.quick_action_showhide_mapillary_title) + .iconRes(R.drawable.ic_action_mapillary).nonEditable() + .category(QuickActionType.CONFIGURE_MAP); + + public ShowHideMapillaryAction() { + super(TYPE); + } + + public ShowHideMapillaryAction(QuickAction quickAction) { + super(quickAction); + } + + @Override + public void execute(MapActivity activity) { + OsmandApplication app = activity.getMyApplication(); + OsmandSettings settings = app.getSettings(); + boolean enabled = settings.SHOW_MAPILLARY.get(); + settings.SHOW_MAPILLARY.set(!enabled); + MapillaryPlugin mapillaryPlugin = OsmandPlugin.getPlugin(MapillaryPlugin.class); + if (mapillaryPlugin != null) { + mapillaryPlugin.updateLayers(activity.getMapView(), activity); + } + } + + @Override + public void drawUI(ViewGroup parent, MapActivity activity) { + + View view = LayoutInflater.from(parent.getContext()) + .inflate(R.layout.quick_action_with_text, parent, false); + + ((TextView) view.findViewById(R.id.text)).setText( + R.string.quick_action_showhide_mapillary_descr); + + parent.addView(view); + } + + @Override + public String getActionText(OsmandApplication application) { + + return application.getSettings().SHOW_MAPILLARY.get() + ? application.getString(R.string.quick_action_mapillary_hide) + : application.getString(R.string.quick_action_mapillary_show); + } + + @Override + public boolean isActionWithSlash(OsmandApplication application) { + return application.getSettings().SHOW_MAPILLARY.get(); + } +} From 9cda3fc14f93209c25bfe8ec28f68ee6eac24e44 Mon Sep 17 00:00:00 2001 From: Ldm Public Date: Sat, 13 Jun 2020 07:48:57 +0000 Subject: [PATCH 064/107] Translated using Weblate (French) Currently translated at 100.0% (3388 of 3388 strings) --- OsmAnd/res/values-fr/strings.xml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index a7e7c777dc..6d3b4a6814 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -3709,11 +3709,11 @@ Type non pris en charge Le fichier GPX OsmAnd n\'est pas construit correctement. Vous pouvez transmettre ce fichier à l\'équipe support OsmAnd pour investiguer. Éteint l\'écran en fonction du délai système. - Ces paramètres affecteront l\'affichage lorsqu\'ils seront utilisés comme carte ou sur-couche / sous-couche. -\n -\n%1$s : La carte sera limitée aux zooms sélectionnés. -\n -\n%2$s : Niveaux de zoom auxquels les tuiles originales seront visibles. En dehors de ces valeurs, il y aura une augmentation ou une diminution d\'échelle. + Affecte l\'affichage de la carte ou des sur-couche / sous-couche. +\n +\n%1$s : La carte est limitée aux zooms sélectionnés. +\n +\n%2$s sont les niveaux de zoom auxquels les tuiles originales seront visibles. En dehors de ces valeurs, il y aura une augmentation ou une diminution d\'échelle. L\'écran s\'allumera pour afficher les instructions de navigation. Sélectionnez la durée d\'affichage de l\'écran après allumage (\"%1$s\" signifie pas d\'extinction). Si \"%1$s\" est activé, le temps d\'activité en dépendra. @@ -3760,4 +3760,8 @@ Désactivé. Nécessite l\'option « Garder l\'écran allumé » sous « Délai d\'affichage de l\'écran ». Ajouter une source en ligne Appliquer ces modifications effacera les données mises en cache pour cette source de tuiles + Définir la hauteur du navire + Vous pouvez définir la hauteur du navire pour éviter les ponts bas. Souvenez-vous que si le pont est mobile, nous utiliserons sa hauteur en position ouverte. + Définir la hauteur du navire afin d\'éviter les ponts bas. Souvenez-vous que si le pont est mobile, nous utiliserons sa hauteur en position ouverte. + Définir la largeur du navire pour éviter les ponts étroits \ No newline at end of file From 6496a53dca50b541edd6a19935f34b92759c779f Mon Sep 17 00:00:00 2001 From: solokot Date: Sat, 13 Jun 2020 06:31:44 +0000 Subject: [PATCH 065/107] Translated using Weblate (Russian) Currently translated at 100.0% (3388 of 3388 strings) --- OsmAnd/res/values-ru/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OsmAnd/res/values-ru/strings.xml b/OsmAnd/res/values-ru/strings.xml index a24dbb9bba..1f3581c4c1 100644 --- a/OsmAnd/res/values-ru/strings.xml +++ b/OsmAnd/res/values-ru/strings.xml @@ -3777,4 +3777,8 @@ Отключено. Необходимо включить «Держать экран включённым» в разделе «Время работы после пробуждения». Применение этих изменений приведёт к очистке кешированных данных этого источника тайлов Добавить онлайн-источник + Указать высоту судна + Вы можете указать высоту судна, чтобы избегать низких мостов. Имейте в виду, что если мост раздвижной, будет использована его высота в открытом состоянии. + Укажите высоту судна, чтобы избежать низких мостов. Имейте в виду, что если мост раздвижной, будет использована его высота в открытом состоянии. + Укажите ширину судна, чтобы избежать узких мостов \ No newline at end of file From 5e92215872a2473b940279c002ece1acfa7f6dbb Mon Sep 17 00:00:00 2001 From: Athoss Date: Sun, 14 Jun 2020 08:37:55 +0000 Subject: [PATCH 066/107] Translated using Weblate (Hungarian) Currently translated at 95.6% (3241 of 3388 strings) --- OsmAnd/res/values-hu/strings.xml | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/OsmAnd/res/values-hu/strings.xml b/OsmAnd/res/values-hu/strings.xml index d570b3ce71..0ad25e284b 100644 --- a/OsmAnd/res/values-hu/strings.xml +++ b/OsmAnd/res/values-hu/strings.xml @@ -187,7 +187,7 @@ %2$d elemből %1$d törölve. %2$d elemből %1$d aktiválva. Nincs elem ehhez: %1$s - %1$s: %2$s elem. Folytatja\? + %2$s elem %1$sére készül. Folytatja\? Térképfájlok kezelése. Aktiválás Inaktiválás @@ -1488,7 +1488,7 @@ Hosszúság: %2$s napos Térképek letöltése Néhány országban (Németország, Franciaország, Olaszország és még néhány) tilos a traffipax figyelmeztetés használata! Az OsmAnd nem vállal felelősséget a szabályok megsértéséért. Koppints az Igen gombra, ha jogosult vagy a funkció használatára. - A jelzőtáblák és szabályok helyes értelmezéséhez jelöld ki a vezetési régiódat: + A jelzőtáblák és szabályok helyes értelmezéséhez jelölje ki a vezetési régiót: Az OsmAnd lehetővé teszi a térképek és a navigáció offline használatát az egész világon. Jelenlegi útvonal Biztosan fel kíván tölteni %1$d módosítást az OSM-re\? @@ -1816,7 +1816,7 @@ Hosszúság: %2$s Élő frissítések Elérhető térképek Hangutasítás kijelölése - Jelöld ki vagy töltsd le a nyelvednek megfelelő hangutasítást. + Jelölje ki vagy töltse le a nyelvének megfelelő hangutasítást. A navigáció során elkerülendő utak kijelölése. Hang Helyadatok használatának engedélyezése. @@ -2340,12 +2340,12 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Hibás felhasználónév Eddig: Ettől: - Csak a hozzáadott képek megtekintése + Csak az ekkor hozzáadott képek megtekintése: Dátum Felhasználónév megadása Csak az általa hozzáadott képek megtekintése: Felhasználónév - A képek szűrése feltöltő, dátum vagy típus szerint. Csak erős nagyításnál használhatók. + A képek szűrése feltöltő, dátum vagy típus szerint. Csak magas nagyítási szinteknél lépnek érvénybe. Sugaras vonalzó Átlag %1$d / %2$d @@ -3511,7 +3511,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Importálás kész Tételek hozzáadva Útvonal újraszámítása letérés esetén - Jelöld ki a távolságot, amely fölött az útvonal újraszámításra kerül. + Jelölje ki a távolságot, amely fölött az útvonal újraszámításra kerül. Az útvonal újraszámításra kerül, amennyiben az útvonal és a jelenlegi helyzet közötti távolság nagyobb, mint a kiválasztott érték. %1$s a %2$s-ból Lejtők @@ -3658,9 +3658,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Kijelző időtűllépés rendszerbeállítás használata Ezekkel a beállításokkal az OsmAnddal az előtérben ébresztheti fel a kijelzőt. Ezek a beállítások csak akkor működnek, ha az eszköz az OsmAnddal az előtérben kerül lezárásra. - A kijelző automatikusan bekapcsol néhány másodperccel a navigációs utasítás előtt a \"Felébresztési idő\" opcióban megadott időtartamra. -\n -\nKizárólag navigáció közben működik. + Valamennyi navigációs utasítás előtt a kijelző bekapcsolásra kerül. Navigációs utasítások A feloldógomb megnyomásakor a kijelző az OsmAnddal az előtérben fog megjelenni. Lezárógomb @@ -3683,9 +3681,9 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük \nEgy hét 10 080 perc. \nEgy hónap 43 829 perc. Válassza ki a letöltött csempék tárolási módját. - Adja meg a járműve szélességét, széles járművekre útvonalkorlátozások lehetnek érvényben. - Adja meg a járműve magasságát, magas járművekre útvonalkorlátozások lehetnek érvényben. - Adja meg a járműve tömegét, nehéz járművekre útvonalkorlátozások lehetnek érvényben. + Adja meg a járműve szélességét, a széles járművekre útvonalkorlátozások lehetnek érvényben. + Adja meg a járműve magasságát, a magas járművekre útvonalkorlátozások lehetnek érvényben. + Adja meg a járműve tömegét, a nehéz járművekre útvonalkorlátozások lehetnek érvényben. Az OsmAnd GPX formázása helytelen, további vizsgálatért kérem, lépjen kapcsolatba a támogató csapattal. Az alkalmazásprofilokkal exportálhat és importálhat gyorsműveleteket. Összes törlése\? @@ -3701,4 +3699,9 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Amenniben a \"%1$s\" engedélyezve van, az aktivitásidő attól fog függeni. Alapértelmezett kijelző időtúllépés Letiltva. Használatához szükséges a \'Kijelző maradjon bekapcsolva\' beállítás az \'Időtúllépés felébresztés után\' menüpont alatt. + A módosítások alkalmazása esetén a csempeforrás gyorsítótárazott adatai törlésre kerülnek + Hajómagasság megadása + Adja meg a hajómagasságot az alacsony hidak elkerüléséhez. Ne feledje, amennyiben a híd mozdítható, a nyitott állapotú magasságát vesszük figyelembe. + Megadhatja a hajómagasságot az alacsony hidak elkerüléséhez. Ne feledje, amennyiben a híd mozdítható, a nyitott állapotú magasságát vesszük figyelembe. + Adja meg a hajószélességet a keskeny hidak elkerüléséhez \ No newline at end of file From 9ce3ec3733dadb6ea26459f24092fde5ddec0a9b Mon Sep 17 00:00:00 2001 From: ace shadow Date: Fri, 12 Jun 2020 23:01:07 +0000 Subject: [PATCH 067/107] Translated using Weblate (Slovak) Currently translated at 100.0% (3388 of 3388 strings) --- OsmAnd/res/values-sk/strings.xml | 50 +++++++++++++++++--------------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/OsmAnd/res/values-sk/strings.xml b/OsmAnd/res/values-sk/strings.xml index b80e23fb0f..df4c174281 100644 --- a/OsmAnd/res/values-sk/strings.xml +++ b/OsmAnd/res/values-sk/strings.xml @@ -2213,7 +2213,7 @@ Zákruty potrebné na tejto trase Waypointy, body záujmu, pomenované objekty Pridať nový priečinok - Svah + Sklon svahu Berbersky Pahorkatý Menej pahorkatý @@ -3574,22 +3574,22 @@ Import ukončený Všetky údaje z %1$s sú naimportované, môžete použiť tlačidlá nižšie pre otvorenie príslušnej časti aplikácie pre ich správu. Terén - Tieňované svahy používajú tmavé odtiene pre vyjadrenie svahov, vrcholov a nížin. - Svahy používajú farby na vizualizáciu strmosti terénu. + Tieňované svahy používajú tmavé odtiene pre vyjadrenie sklonov svahov, vrcholov a nížin. + Sklony svahov používajú farby na vizualizáciu strmosti terénu. Nastavte minimálnu a maximálnu úroveň priblíženia kedy bude vrstva zobrazená. Pre zobrazenie tieňovaných svahov sú potrebné ďalšie mapy. - Pre zobrazenie svahov sú potrebné ďalšie mapy. - Môžete si prečítať viac o svahoch na %1$s. + Pre zobrazenie sklonov svahov sú potrebné ďalšie mapy. + Môžete si prečítať viac o sklonoch svahov na %1$s. Priehľadnosť Úrovne priblíženia Legenda - Zapnite pre zobrazenie mapy tieňovaných svahov alebo svahov. O týchto typoch máp sa dozviete viac na našej stránke. + Zapnite pre zobrazenie mapy tieňovaných svahov alebo sklonov svahov. O týchto typoch máp sa dozviete viac na našej stránke. Tieňované svahy Prepočítať trasu v prípade odchýlenia Zvoľte vzdialenosť, po ktorej bude trasa prepočítaná. Trasa bude prepočítaná ak vzdialenosť od trasy k aktuálnej polohe je väčšia ako zvolená hodnota. %1$s z %2$s - Svahy + Sklony svahov Zobraziť / skryť terén Skryť terén Zobraziť terén @@ -3688,22 +3688,22 @@ Nákupy v OsmAnd Sprievodca symbolmi na mape. Navigačné profily - • Nové offline mapy svahov -\n -\n • Plné prispôsobenie Obľúbených a bodov GPX – vlastné farby, ikony a tvary -\n -\n • Možnosť prispôsobenia poradia položiek v \"kontextovom menu\", \"Nastavenie mapy\" a \"Úvodnom paneli\" -\n -\n • Wikipédia ako samostatná vrstva v nastavení mapy, možnosť vybrať iba potrebné jazyky -\n -\n • Vytvorte vlastné filtre bodov záujmu s veľkou flexibilitou -\n -\n • Pridané možnosti na obnovenie nastavení pre vlastné profily -\n -\n • Plné trasy GPX z navigácie podporujú jazdné pruhy a navigačné pokyny -\n -\n • Oprava veľkostí používateľského rozhrania na tabletoch -\n + • Nové offline mapy sklonov svahov +\n +\n • Plné prispôsobenie Obľúbených a bodov GPX – vlastné farby, ikony a tvary +\n +\n • Možnosť prispôsobenia poradia položiek v \"kontextovom menu\", \"Nastavenie mapy\" a \"Úvodnom paneli\" +\n +\n • Wikipédia ako samostatná vrstva v nastavení mapy, možnosť vybrať iba potrebné jazyky +\n +\n • Vytvorte vlastné filtre bodov záujmu s veľkou flexibilitou +\n +\n • Pridané možnosti na obnovenie nastavení pre vlastné profily +\n +\n • Plné trasy GPX z navigácie podporujú jazdné pruhy a navigačné pokyny +\n +\n • Oprava veľkostí používateľského rozhrania na tabletoch +\n \n • Opravy chýb pre jazyky písané sprava doľava \n \n @@ -3776,4 +3776,8 @@ Vypnuté. Vyžaduje \"Nechať obrazovku zapnutú\" pod \"Časový limit obrazovky po prebudení\". Pridať online zdroj Aplikovaním týchto zmien sa vymažú uložené dlaždice pre tento zdroj + Nastaviť výšku plavidla + Môžete nastaviť výšku plavidla, aby sa dalo vyhnúť nízkym mostom. Pamätajte, že pri sklápacích alebo posuvných mostoch sa zohľadní výška v otvorenom stave. + Nastavte výšku plavidla, aby sa dalo vyhnúť nízkym mostom. Pamätajte, že pri sklápacích alebo posuvných mostoch sa zohľadní výška v otvorenom stave. + Nastavte šírku plavidla, aby sa dalo vyhnúť úzkym mostom \ No newline at end of file From edbaf363d520394e939a4d008c7d34646b2ad2c7 Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Sat, 13 Jun 2020 03:19:06 +0000 Subject: [PATCH 068/107] Translated using Weblate (Hebrew) Currently translated at 100.0% (3388 of 3388 strings) --- OsmAnd/res/values-he/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OsmAnd/res/values-he/strings.xml b/OsmAnd/res/values-he/strings.xml index 0fda729128..cf77c54ac4 100644 --- a/OsmAnd/res/values-he/strings.xml +++ b/OsmAnd/res/values-he/strings.xml @@ -3786,4 +3786,8 @@ מושבת. נדרשת ההגדרה ‚להשאיר את המסך פעיל’ תחת ‚תפוגת זמן לאחר התעוררות’. הוספת מקור מקוון החלת השינויים האלו תפנה את הנתונים שנשמרו עבור מקור אריחים זה + הגדרת גובה כלי השיט + ניתן להגדיר את גובה כלי השיט כדי להימנע מגשרים נמוכים. נא לשים לב שאם הגשר נע, אנו נשתמש בגובהו במצב הפתוח. + יש להגדיר את גובה כלי השיט כדי להימנע מגשרים נמוכים. נא לשים לב שאם הגשר נע, אנו נשתמש בגובהו במצב הפתוח. + הגדרת רוחב כלי השיט כדי להימנע מגשרים צרים \ No newline at end of file From a1a0dc4d06e1d36e25cf100a263595642f736d2b Mon Sep 17 00:00:00 2001 From: Suren Date: Sat, 13 Jun 2020 16:20:07 +0000 Subject: [PATCH 069/107] Translated using Weblate (Armenian) Currently translated at 72.9% (2470 of 3388 strings) --- OsmAnd/res/values-hy/strings.xml | 722 +++++++++++++++++++------------ 1 file changed, 443 insertions(+), 279 deletions(-) diff --git a/OsmAnd/res/values-hy/strings.xml b/OsmAnd/res/values-hy/strings.xml index 88f581fcad..77df80502a 100644 --- a/OsmAnd/res/values-hy/strings.xml +++ b/OsmAnd/res/values-hy/strings.xml @@ -11,11 +11,11 @@ Նկարել Dropbox plugin-ը թույլ է տալիս սինխրոնիզացնել տրեքերը և Աուդիո/վիդեո նշումները ձեր Dropbox-ի հետ: Փոխել հերթականությունը - "Խնդրում ենք ուսումնասիրել «Contour lines» plugin-ի գնելու տարբերակը, որպեսզի աջակցել հետագա զարգացումը:" + Խնդրում ենք ուսումնասիրել «Contour lines» plugin-ի գնելու տարբերակը, որպեսզի աջակցել հետագա զարգացումը: Բարձրության գծեր փլագին Տեսանյութի ձայնագրում Աուդիո ձայնագրում - Ընտրեք տեսանյութի ֆորմատը։ + Ընտրեք տեսանյութի ֆորմատը՝ Տեսանյութի ֆորմատ Օգտագործել համակարգի ծրագիրը տեսաձայնագրման համար։ Օգտագործել արտաքին ծրագիր @@ -48,7 +48,7 @@ OSM փոփոխություններ Այլ գործողություններ Դադարեցնել երթուղին - "OSMChange ֆայլը %1$s ստեղծվեց" + OSMChange ֆայլը %1$s ստեղծվեց Ջնջել կետը Ժամանակ ճշգրտություն @@ -92,8 +92,8 @@ Կոնտուրային գծերի/եզրագծերի տվյալներ Միացնել ճշգրիտ երթուղիների հաշվարկի ռեժիմը։ Այս ռեժիմը դեր սահմանափակված է հեռավորությամբ և դանդախ է։ Dropbox փլագին - Ընտրել ըստ հարցման - Ընտրել default Widget գործողություն։ + Ընտրել ըստ հարցման\? + Ընտրել default Widget գործողություն՝ Default վիդջետի գործողություն Կատարվում է Աուդիո/վիդեո ձայնագրում, դադարեցնելու համար սեխմեք AV վիջետը։ Նվագում է ձայնագրությունը\n%1$s @@ -103,7 +103,7 @@ Կատարել աուդիո նշում Կատարել վիդեո նշում Աուդիո-ձայնագրությունների շերտ - Ձայնագրությունը հնարավոր չէ նվագել + Ձայնագրությունը հնարավոր չէ նվագել։ Ջնջել ձայնագրությունը Նվագել Գրանցում %1$s %3$s %2$s @@ -126,7 +126,7 @@ Նախընտրելի ավտոմայրուղիներ Խուսափել վճարովի ճանապարհներից Խուսափել հողածածկ ճանապարհներից - Խուսափել հողածածկ ճանապարհները։ + Խուսափել հողածածկ ճանապարհները Խուսափել լաստանավերից Խուսափել լաստանավերը Խուսափել ավտոմայրուղիներից @@ -136,7 +136,7 @@ Այս plugin-նը ապահովում է քարտեզի էկրանի վրա վիջեթ, որը հնարավորություն է տալիս ստեղծել ուղիներ, քարտեզի վրա կտտացնելով, նաև օգտագործել կամ փոփոխել առկա GPX ֆայլերը, ուղեւորություն պլանավորել և չափել կետերի միջև հեռավորությունը։ Ոչ Այո - Չհաջողվեց փոփոխել նշումը + Չհաջողվեց փոփոխել նշումը: Ձևափոխել նշումը Ձևափոխել OSM նշումը Ավելացնել սկզբնակետի պատճեն որպես նպատակակետ։ @@ -146,7 +146,7 @@ Օգտագործել համակարգի ստեղնաշարը Ընտրեք կոորդինատների մուտքագրման ձևաչափը: Դուք միշտ կարող եք փոխել այն սեղմելով Հատկություններ։ Կոորդինատների արագ մուտքագրում - Խուսափել սառույցի ճանապարհներից, ծանծաղուտ + Խուսափել սառույցի ճանապարհներից կամ ծանծաղուտներ Խուսափել սառույցի ճանապարհներից և ծանծաղուտներից։ Օգտագործել դիրքը Ավելացրեք ձեր դիրքը, որպես մեկնարկային կետ, երթուղին կատարյալ պլանավորելու համար։ @@ -163,14 +163,14 @@ Ցույց տալ սլաքները քարտեզի վրա Ցույց տալ անցած Թաքցնել անցած - Ջնջել քարտեզի Մարկերներից - նվազում - աճող - "Ավելացման ամսաթիվ " + Ջնջել Մարկերներից + Ֆ-Ա + Ա-Ֆ + Ավելացված է Դասավորել ըստ: - Ընտրեք, թե ինչպես ցույց տա քարտեզի էկրանին մարկերները քարտեզագրելու հեռավորությունը եւ ուղղությունը: + Ընտրեք, թե ինչպես ցույց տա քարտեզի վրա մարկերները քարտեզագրելու հեռավորությունը եւ ուղղությունը: Քարտեզի կողմնորոշման շեմը - "Ընտրեք, թե ինչ արագության հասնելուց քարտեզի կողմնորոշումը կպոխվի \"Շարժման ուղղություն\" դեպի «Կողմնացույց»։" + Ընտրեք, թե ինչ արագության հասնելուց քարտեզի կողմնորոշումը կպոխվի \"Շարժման ուղղություն\" դեպի «Կողմնացույց»։ Բոլոր Մարկերները տեղափոխվել են պատմություն Քարտեզի Մարկերները տեղափոխվել են պատմություն Քարտեզի Մարկերները տեղափոխվեցին ակտիվ @@ -186,7 +186,7 @@ Հեռավորության ցուցիչ Դասավորել ըստ Առանց անիմացիաները - Անջատում է անիմացիաները։ + Անջատում է քարտեզի անիմացիաները։ Ցուցադրել քարտեզի վրա Ելք առանց պահպանման? Գիծ @@ -198,7 +198,7 @@ Ավելացել կետ Ընտրանքներ OsmAnd կմիացնի կետերը երթուղիների հետ ընտրված պրոֆիլի համար։ - "Պահպանել կետերը որպես երթուղի կամ որպես գիծ:" + Պահպանել կետերը որպես երթուղի կամ որպես գիծ: Ընտրեք նավիգացիոն պրոֆիլը Անհրաժեշտ է ավելացնել գոնե մեկ կետ։ GPX Ֆայլի անունը՝ @@ -206,10 +206,10 @@ Դիտեք քարտեզը եւ ավելացրեք կետերը Չափել հեռավորությունը Դադար/վերսկսել նավիգացիյան - "Սեղմել այս կոճակը նավիգացիան կասեցնելու կամ վերսկսելու։" + Սեղմել այս կոճակը նավիգացիան կասեցնելու կամ վերսկսելու։ Ցույց տալ \'Նավիգացիան ավարտվեց\' երկխոսությունը Սկսել / ավարտել նավարկությունը - Հպեք այս կոճակը, նավիգացիան սկսելու կամ ավարտելու համար: + Նավիգացիան սկսելու կամ ավարտելու համար կոճակը: Պահպանել թղթապանակներում գրանցված տրեկերը ամսական Պահպանել տրեկները ենթա-թղթապանակներում ըստ գրանցված ամսին (օրինակ 2018-01)։ Վերագործարկեք @@ -219,47 +219,47 @@ Սխալ օգտագործողի անուն (username) Մինչև Սկսած - Դիտել միայն ավելացրած լուսանկարներ + Ցույց տալ միայն ավելացրած լուսանկարներ Ամսաթիվ - "Մուտքագրեք օգտատերի անունը" + Մուտքագրեք օգտատերի անունը Դիտել լուսանկարները ավելացրած օգտագործողի կողմից Օգտատերի անունը Դասավորել լուսանկարները ըստ ուղարկողի, ըստ տիպի, կամ ամսաթվի: Միայն մեծ մասշտաբի համար: Շառավիղ-քանոն Թույլտվություն - OsmAnd-ը չի կարող ներմուծել ֆայլը: Ստուգեք, արդյոք OsmAnd-ը իրավունք ունի կարդալ ֆայլը իր գտնվելու վայրից: + Հնարավոր չէ ներմուծել ֆայլը: Ստուգեք, արդյոք OsmAnd-ը իրավունք ունի կարդալ ֆայլը գտնվելու վայրից: Ուղղված հեռավորությունը Ուղարկել լուսանկարներ Mapillary- ին Բացել Mapillary Տեղադրել Կատարելագործել լուսանկարի ծածկույթը Mapillary- ի միջոցով - "Տեղադրել Mapillary ծրագիրը լուսանկարն կամ մի շարք լուսանկարներ կցելու քարտեզին գտնվելու վայրում:" + Տեղադրել Mapillary ծրագիրը լուսանկարն կամ մի շարք լուսանկարներ կցելու քարտեզին գտնվելու վայրում: Առցանց լուսանկարներ Ավելացնել լուսանկարներ - Այս վայրի համար լուսանկարներ չունենք։ - Նպաստել այս դիրքի համար ձեր սեփական փողոցային դիտարկումներով Mapillary-ի միջոցով: + Այստեղ լուսանկարներ չունենք։ + Կիսվեք փողոցի լուսանկարներով Mapillary- ի միջոցով: Mapillary վիջեթը Թույլ է տալիս արագորեն նպաստել Mapillary-ին։ Առցանց փողոցային նկարներ բոլորի համար: Բացահայտեք վայրերը, համագործակցեք, նկարեք աշխարհը: Մափիլարի(Mapillary) Փողոցային նկարներ բոլորի համար: Բացահայտեք վայրերը, համագործակցեք, նկարեք աշխարհը: - "Նպատակակետը գտնվում է մասնավոր տարածքում: Թույլատրել այս ուղևորությանը մասնավոր ճանապարհներ մուտք գործել\?" + Նպատակակետը գտնվում է մասնավոր տարածքում: Թույլատրել այս ուղևորությանը մասնավոր ճանապարհներ մուտք գործել\? Նորից որոնեք Ավելացնել որոնման շառավղը Ոչինչ չի գտնվել - "Փոխել հարցումը կամ ավելացնել որոնման շառավիղը։" + Փոխել հարցումը կամ ավելացնել որոնման շառավիղը։ Ցույց տալ/թաքցնել OSM նշումները Ցույց տալ OSM նշումները Թաքցնել OSM նշումները - Գործողությունների կոճակը սխմելով, քարտեզի վրա ցույց կտա կամ կթաքցնի OSM-ի Նշումները: + Քարտեզի վրա ցույց տալ կամ թաքցնել OSM նշումները կոճակը: Դասավորված է ըստ հեռավորության Որոնում Սիրվածում - Ներբեռնել \"Ռելիեֆի ստվերները\" հատուկ քարտեզ այս տարածքի համար: - Տեղադրել Contour Lines plugin \"Ռելիեֆի ստվերները\" ցուցադրելու համար - "Թաքցնել մոտեցման մասշտաբից" - Ներբեռնել \"Եզրագծեր\" հատուկ քարտեզ այս տարածքի համար: + Ներբեռնել \"Ռելիեֆի ստվերները\" այս տարածքի համար: + Տեղադրել Contour Lines plugin \"Ռելիեֆի ստվերները\" ցուցադրելու համար: + Թաքցնել մոտեցման մասշտաբից + Ներբեռնել \"Եզրագծեր\" այս տարածքի համար: Պլագին - "\"Եզրագծերը\" դիտելու համար անհրաժեշտ է գնել և տեղադրել \"Contour Lines\" plugin" + \"Եզրագծերը\" դիտելու համար անհրաժեշտ է գնել և տեղադրել \"Contour Lines\" plugin: Գունային սխեմա Ցուցադրել խոշորացման մակարդակից Թույլ տալ մասնավոր մուտք @@ -273,21 +273,21 @@ Ընտրեք փողոցը %1$s Մուտքագրեք հասցեն - Մուտքագրեք քաղաքի անումը + Մուտքագրեք քաղաք/վայր Մուտքագրեք փոստային կոդը Մոտակա քաղաքները Ընտրեք քաղաքը - Ընտրեք փոստային կոդը + Փոստային կոդը փնտրում Քարտեզի ավտոմասշտաբ on/off - Սխմելով այս գործողությունների կոճակը ակտիվացնում է ավտոմասշտաբի on/off համաձայն ձեր արագությանը: + Այս կոճակը ակտիվացնում է ավտոմասշտաբի on/off համաձայն ձեր արագությանը: Միացնել ավտոմասշտաբ Անջատել ավտոմաստաբ - Ավելացնել նպատակակետ + Տեղադրեք նպատակակետը Փոխարինել նպատակակետը Ավելացնել առաջին միջանկյալ կետը - Սխմելով այս գործողությունների կոճակը, ավելացննում նպատակակետ էկրանի կենտրոնում։ Մինչ այդ ընտրած նպատակակետը կդառնա միջանկյալ կետ։ - Սխմելով այս գործողությունների կոճակը, տեղափոխում նպատակակետը էկրանի կենտրոն։ - Սխմելով այս գործողությունների կոճակը, ավելացննում է առաջին միջանկյալ կետ էկրանի կենտրոնում։ + Այս կոճակը, նպատակակետ է ավելացննում էկրանի կենտրոնում։ Մինչ այդ ընտրած նպատակակետը կդառնա միջանկյալ կետ։ + Այս գործողությունների կոճակը, նպատակակետը տեղափոխում է կրանի կենտրոն։ + Այս գործողությունների կոճակը, ավելացննում է առաջին միջանկյալ կետ էկրանի կենտրոնում։ Ծածկույթի քարտեզը անջատված է Նեքեվի շերնը անջատված է Սխալ @@ -317,7 +317,7 @@ Լանջ Ավելացնել նոր թղթապանակ Կետ(եր)ը ջնջված է: - Դուք մտադիր եք ջնջել %1$d կետ(եր)ը: Համոզված եք? + Համոզված եք, որ ցանկանում եք ջնջել %1$d կետ(եր)\? Ճանապարհային կետեր, POI, հատկանիշներ Տրեկ Առավելագույն արագություն @@ -329,7 +329,7 @@ Ժամաննամ ժամկետը Գույնը Ընտրեք թղթապանակ GPX համար - Ֆայլը չի կարող տեղափոխվել: + Չհաջողվեց տեղափոխել ֆայլը: Տեղափոխել Տրեկեր Վարորդական ոճ @@ -356,11 +356,11 @@ Թաքցնել ջուրը Հին որոնման տեսակը Ցույց տալ հին որոնման տեսակը - Թույլատրել ավտոմայրուղիներ - Թույլատրել ավտոմայրուղիներ։ - Վերբեռնել ձեր OSM \"Նշումը\" անանուն կամ ձեր OpenStreetMap.org պրոֆիլի միջոցով: + Օգտագործել մայրուղի + Թույլատրում է ավտոմայրուղիներ։ + Վերբեռնել ձեր OSM նշումը անանուն կամ ձեր OpenStreetMap.org պրոֆիլի միջոցով: Վիքիպեդիայի հոդվածներ - Որոնել քաղաք կամ երկիր + Քաղաք կամ երկիր Վերցրեք %1$d ելքը Վերբեռնեք POI Ուղևորության հաշվարկ @@ -374,7 +374,7 @@ Ուղևորություն Տվյալներ չկա Սուրբ Ծնունդ POI - Ցույց տալ Սուրբ Ծնունդ POI? + Ցույց տալ Սուրբ Ծնունդի POI\? Ճանապարհային ծածկույթի որակը Մուտքագրել քաղաքի անունը, հասցեն, POI Խմբագրել կատեգորիաները @@ -388,13 +388,13 @@ Ջնջել ֆիլտրը Նոր ֆիլտր Մուտքագրեք նոր ֆիլտրի անունը: Դուք կարող եք գտնել այն \"Կատեգորիաների\" ցանկում: - "Բաժանորդային վճարը գանձվում է ամսական կտրվածքով:Դուք կարող եք չեղարկել բաժանորդագրությունը Google Play-յում ցանկացած պահի:" - Նվիրատվություն OpenStreetMap համայնքին - Ձեր նվիրատվության մի մասը ուղարկվում է OSM մասնակիցներին, որոնք փոփոխություններ են մտցմում OpenStreetMap-ուն: Բաժանորդագրության արժեքը մնում է նույնը: + Բաժանորդային վճարը գանձվում է ամսական կտրվածքով:Դուք կարող եք չեղարկել բաժանորդագրությունը Google Play-յում ցանկացած պահի: + Նվիրատվություն OSM համայնքին + Ձեր նվիրատվության մի մասը ուղարկվում է OSM մասնակիցներին։ Բաժանորդագրության արժեքը մնում է նույնը: Բաժանորդագրությունը հնարավորութուն է տալիս անսահմանափակ թարմացումներ ներբեռնել աշխարհի ցանկացած քարտեզներ ամեն ժամ, ամենօրյա, շաբաթական: Ստանալ այն Ստանալ %1$s - Ստացեք քարտեզի անսահմանափակ ներբեռնման հնարավորութուն ինչպես նաև քարտեզների թարմացում ավելի հաճախ, քան ամիսը մեկ անգամ`շաբաթական, ամենօրյա կամ ամեն ժամ: + Ստացեք քարտեզի անսահմանափակ ներբեռնման հնարավորութուն նաև քարտեզների թարմացում ամիսը մեկ անգամ, շաբաթական, ամենօրյա կամ ամեն ժամ: Անսահմանափակ քարտեզների ներբեռնում , թարմացումներ, եւ Wikipedia plugin։ Մղոններ/մետր Բաց թողնել քարտեզների ներբեռնումը @@ -409,7 +409,7 @@ Ազատ տեղ OsmAnd-ը կպահպանի տվյալները (քարտեզներ, GPX, երթուղիներ և այլն) %1$s։ Տալ թույլտվություն - "Միացնել \"Իմ Դիրքի\" անիմացումը քարտեզի համայնապատկերում նավիգացիայի ժամանակ։" + Միացնել \"Իմ Դիրքի\"անիմացումը քարտեզի համայնապատկերում նավիգացիայի ժամանակ։ Ծովային խորության կետերը հարավային կիսագնդում Ծովային խորության կետերը հյուսիսային կիսագնդում OsmAnd հավաքում է միայն այն տեղեկատվությունները, որոնք վերաբերվում են հավելվածին օգտագործման։ Ձեր գտնվելու վայրը երբեք չի ուղարկվի, ոչ էլ այն, ինչ դուք մուտք եք գործել հավեվածում կամ ձեր դիտած, որոնման և ներբեռնելու տարածքների մանրամասները: @@ -422,7 +422,7 @@ Ֆիլտր՝ Նշանակել նվազագույն հեռավորությունը այս կետից նոր կետ գրանցելու համար։ Նվազագույն ճշգրտությունը մուտքագրելու համար Ֆիլտր՝ Չարձանագրել, եթե այդ ճշգրտության չի հասել։ - Սուրբ Ծննդյան եւ Ամանորյա տոների նախօրեին դուք կարող եք ընտրել Սուրբ Ծնունդի հետ կապված POI-ների ցուցադրումը՝ տոնածառեր, տոնավաճառներ և այլն: + Սուրբ Ծննդյան եւ Ամանորյա տոների նախօրեին դուք կարող եք ընտրել Սուրբ Ծնունդի հետ կապված POI-ների ցուցադրումը՝ ինչպիսիք են տոնածառեր, տոնավաճառներ և այլն: Բաց-շագանակագույն Մուգ շագանակագույն Contour lines գունային սխեման @@ -433,7 +433,7 @@ Չստուգել թարմացումների համար կամ թարմացումներ կապված OsmAnd-ի զեղչեր հետ։ Չցուցադրել թարմացումներ/նոր տարբերակներ Թարմացնել բոլոր քարտեզները հիմա? - "Ջնջել բոլոր տայլերը" + Ջնջել բոլոր տայլերը Վառելիք տնտեսող ճանապարհ Կիրառել վառելիք տնտեսող ճանապարհ (սովորաբար ավելի կարճ)։ Վստահ եք, որ ցանկանում եք փոխարինել Սիրածները %1$s\? @@ -465,7 +465,7 @@ Տեքաշարժեք քարտեզը որպեսզի փոխեք մարկերի դիրքը Բաժանորդագրվեք մեզ Ձայնով ազդարարել նպատակակետի ուղղութունը։ - "Միացնել նավիգացիան հաշվը առնելով OsmAnd Live թարմացումները։" + Միացնել նավիգացիան հաշվը առնելով OsmAnd Live թարմացումները։ OsmAnd Live նավիգացիա Նպատակակետը սահմանված չէ Մագնիսական կրող @@ -486,7 +486,7 @@ Մուտքագրեք անուն Մուտքագրեք կատեգորիան Մուտքագրեք նկարագրություն: - "Քարտեզ կցված է գտնվելու վայրին" + Քարտեզ կցված է գտնվելու վայրին Փակել ցանկը Ընդլայնված ցուցակ Դատարկ ցուցակ @@ -503,29 +503,29 @@ Թավատառ Խնդրում ենք ավելացնել մարկերներ քարտեզի վրա Ոչ մի ճանապարհային նշան չի գտնվել - Անանուն օգտվողը չի կարող՝ + Անանուն օգտվողները չեն կարող՝ \n-Ստեղծել խմբեր; \n-Խմբերի և սարքերի համաժամեցում սերվերի հետ; \n-Կառավարել խմբերը և սարքերը անձնական էջում: Հաշվետվությունում - "Այժմ ծրագիրը իրավունք ունի մուտթագրել տվյալներ արտաքին պահեստավորման սարքի վրա։ Պահանջվում է վերագործարկել ծրագիրը։" + Այժմ ծրագիրը իրավունք ունի մուտթագրել տվյալներ արտաքին պահեստավորման սարքի վրա։ Պահանջվում է վերագործարկել ծրագիրը։ Տեղափոխել ↑ Տեղափոխել ↓ - "Ավարտել նավարկությունը" + Ավարտել նավարկությունը Խուսափել ճանապարհներից - Ընտրել տվյալների պահպանման համապատասխան վայր քանի որ ընտրված թղթապանակը միայն կարդալու համար է: + Ընտրվել է ներոին տվյալների պահպանման վայր քանի որ ընտրված թղթապանակը միայն կարդալու համար է: Խնդրում ենք ընտրել թղթապանակը, որը մատչելի է արձանագրելու համար։ Համատեղ հիշողություն Վերին վահանակ Լրիվ հաշվետվությունում Վերահաշվարկել երթուղին - OpenStreetMap մուտքանունը և գաղտնաբառը + OSM մուտքանունը և գաղտնաբառը Նվիրատվություններ Ստացողների քանակը - "Խմբագրումները %1$s, ռանգ %2$s, Ընդհանուր խմբագրումներ %3$s" + Խմբագրումները %1$s, ռանգ %2$s, ընդհանուր խմբագրումներ %3$s OSM քարտեզագրողների վարկանիշը OsmAnd Live բաժանորդագրություն Բաժանորդագրվել - Անհրաժեշտ է Ձեզ տրամադրել տեղեկություններ ներդրումների մասին: + Անհրաժեշտ է Ձեր ներդրումների մասին Ձեզ տեղեկություններ տրամադրելու համար: Հանրային անուն Մի ցուցադրեք իմ անունը զեկույցներում Աջակցվող տարածաշրջան @@ -534,7 +534,7 @@ Ակտիվ Ոչ ակտիվ Խնդրում ենք մուտքագրեք ճիշտ e-mail հասցեն - Մուտքագրեք անուն + Մուտքագրեք հանրային անուն Շնորհակալություն, աջակցելու OsmAnd-ին համար! \nՆոր առանձնահատկություններ ակտիվացնելու համար անհրաժեշտ է վերագործարկել OsmAnd։ Ձեր նվիրատվության մի մասը կուղարկվի OpenStreetMap նախագծի մասնակիցներին, ովքեր փոփոխություններ են կատարել այս տարածաշրջանի քարտեզի վրա: @@ -559,7 +559,7 @@ Ակտիվ մարկերներ Մարկերներ Մարկերներ - Ցուցադրել MTB երթուղիները + Լեռնային հեծանվների համար երթուղիները Ցուցադրել պոլիգոններ Գտնել կայանատեղ Կարգավիճակ @@ -588,7 +588,7 @@ Ընտրեք ճանապարհներ, որոնք ցանկանում եք խուսափել նավարկության ժամանակ։ Ձայն Ցանկալի է անջատել պոլիգենների ցուցադրումը։ - "Clip երկարությունը" + Clip երկարությունը Ձայնագրված տեսահոլովակի(clip) երկարության սահմանաչափը։ Հիշողության ծավալը, որը կարող է զբաղեցված լինի բոլոր clips-ներով։ Հեռավորություն։ @@ -611,21 +611,27 @@ Շրջագայություն Այս գործառույթն օգտագործելու համար պետք է ավելացնեք առնվազն մեկ մարկեր: Միացնել արագ գրանցումը - Ցուցադրել համակարգի ծանուցումը, որը թույլ կտա սկսել ուղեւորության գրանցումը։ + Ցուցադրել ծանուցումը, որը թույլ կտա սկսել ուղեւորության գրանցումը։ Դադարեցվել է Գրանցված է Գրանցում - "Այս բաժանորդագրությունը հնարավորություն է տալիս ժամը մեկ անգամ թարմացումներ ստանալ աշխարհի բոլոր քարտեզների համար: Եկամտի մի մասը վերադառնում է OSM համայնքին և վճարվում է յուրաքանչյուր OSM ներդրման համար: Եթե սիրում եք OsmAnd-ը և OSM-ը և ուզում եք աջակցել նրանց, սա կատարյալ եղանակն է դա անել:" - Ծրագիրը թույլտվություն չունի մուտք գործի տվյալները պահպանման վայրը: - Ծրագիրը թույլտվություն չունի տեսախցիկի օգտագործման համար։ - Ծրագիրը թույլտվություն չունի խոսափողի օգտագործման համար։ + Այս բաժանորդագրությունը հնարավորություն է տալիս ժամը մեկ անգամ թարմացումներ ստանալ աշխարհի բոլոր քարտեզների համար: +\nԵկամտի մի մասը վերադառնում է OSM համայնքին և վճարվում է յուրաքանչյուր OSM ներդրման համար: +\nԵթե սիրում եք OsmAnd-ը և OSM-ը և ուզում եք աջակցել նրանց, սա կատարյալ եղանակն է դա անել: + Թույլատրել մուտք գործել գտնվելու վայրի տվյալներին: + Թույլատրել տեսախցիկի օգտագործը։ + Տրամադրել մուտք խոսափողի օգտագործման համար։ Ուղղության ցուցում շոշափման եղանակով - Բավարար տեղ չկա: Պահպանելու համար անհրաժեշտ է {3} ՄԲ ժամանակավոր, {1} ՄԲ մշտապես: Առկա է միայն {2} ՄԲ: - Ներբեռնել {0} ֆայլ(եր)? Օգտագործված պահեստային տարածքը {3} ՄԲ ժամանակավոր է, {1} ՄԲ մշտապես: (Առկա է {2} ՄԲ:) - Ներբեռնեք {0} ֆայլ (եր)? Օգտագործված պահեստային տարածքը`{1} ՄԲ է։ (Առկա տարածքը {2} ՄԲ է:) + Բավարար տեղ չկա: +\nՊահպանելու համար անհրաժեշտ է {3} ՄԲ ժամանակավոր, {1} ՄԲ մշտապես: +\nԱռկա է միայն {2} ՄԲ + Ներբեռնել {0} ֆայլ(եր)\? +\nՕգտագործված պահեստային տարածքը {3} ՄԲ ժամանակավոր է, {1} ՄԲ մշտապես: (Առկա է {2} ՄԲ:) + Ներբեռնեք {0} ֆայլ (եր)\? +\nՕգտագործված պահեստային տարածքը`{1} ՄԲ է։ (Առկա տարածքը {2} ՄԲ է:)։ Պահպանման տարացքի ծավալը Խնդրում ենք նշել ճիշտ POI տեսակի կամ բաց թողնել այն։ - Մենյուի կոճակը բացում է Վահանակը, այլ ոչ Մենյու + Մենյուի կոճակը բացում է վահանակը, այլ ոչ մենյու Մուտք քարտեզից \'Off\' ուղղակիորեն մեկնարկում է քարտեզը։ Ցույց տալ սկզբից @@ -636,9 +642,9 @@ Ավելացնել OSM նշումը OSM նշումը կրկին բացված է OSM նշումին ավելացվել է մեկնաբանություն - "OSM նշումը հեռացվեց" - "OSM նշում ստեղծվել է" - "OSM նշում" + OSM նշումը հեռացվեց + OSM նշում ստեղծվել է + OSM նշում Ստեղծել նշում Ավելացնել մեկնաբանություն Վերաբացել նշումը @@ -648,14 +654,14 @@ Գրանցումների ավտո-պառակտում դադարից հետո Գրանցումների պառակտում Օգտագործել գրանցումների պառակտումը - Նշումը չհաջողվեց ստեղծվել + Նշումը չհաջողվեց ստեղծվել: Նշումը փակվեց - Նշումը չփակվեց + Նշումը չփակվեց: OSM գաղտնաբառ (ըստ ցանկության) Մեկնաբանություն Հեղինակի անունը - Մեկնաբանությունը չավելացվեց - "Մեկնաբանությունը ավելացվեց" + Չհաջողվեց մեկնաբանություն ավելացնել: + Մեկնաբանությունը ավելացվեց Հաստատել Ջնջել GPX կետը? Խմբագրել GPX կետը @@ -713,13 +719,13 @@ GPX ֆայլը կոորդինատներով։ Գտնվելու վայրերը Պլագիններ - Խուսափեք բեռնատար գնացքներից - "Խուսափեք գնացքներից" + Առանց բեռնատար գնացքների + Խուսափեք գնացքներից Վտանգ Համարձակ ուրվագիծ Թարմացում չկա Ավտո-թարմացում - "Սկզբնական կարգաբերումներ (13)" + Սկզբնական կարգաբերումներ (13) Սկզբնական կարգաբերումներ (կիսաթափանցիկ կապույտ) GPX-ի գույնը GPX-ի գույնը @@ -733,9 +739,9 @@ Դեղին Կիսաթափանցիկ դեղին Բաց կանաչ - "Կիսաթափանցիկ բաց կանաչ" + Կիսաթափանցիկ բաց կանաչ Կանաչ - "Կիսաթափանցիկ կանաչ" + Կիսաթափանցիկ կանաչ Կապույտ Կիսաթափանցիկ կապույտ Կապույտ @@ -745,7 +751,7 @@ Թափանցիկ վարդագույն Շագանակագույն Թափանցիկ մանուշակագույն - Փոփոխությունները կիրառելու համար պետք է վերագործարկեք հավելվածը: + Փոփոխությունները կիրառելու համար պետք է վերագործարկել: Լուսավոր Մութ Բենգալերեն @@ -798,7 +804,7 @@ Գույնը ըստ OSMC արշավային խորհրդանիշի Ելք Տան համարները - "Տեղափոխել OsmAnd-ի տվյալները նոր նշանակման վայր\?" + Տեղափոխել OsmAnd-ի տվյալները նոր նշանակման վայր\? Հնարավոր չէ ստեղծել քարտեզներ նշված դիրեկտորիայում Չհաջողվեց տեղափոխել ֆայլեր Արտաքին պահեստավորման սարք @@ -820,7 +826,7 @@ Որոնում Ցույց տալ նկարագրությունը։ Հաղորդագրություն - A-GPS-ի վերջին տվյալները ներբեռնվել են` %1$s + A-GPS-ի տվյալները ներբեռնվել են` %1$s Շատ երկրներում (Գերմանիա, Ֆրանսիա, Իտալիա եւ այլն) արագության խցիկի մասին զգուշացումների օգտագործումը անօրինական է։ OsmAnd-ը ոչ մի պատասխանատվություն չի կրում, եթե Դուք խախտում եք օրենքը ։ Ընտրեք «այո», միայն այն դեպքում, եթե դուք իրավասու եք օգտագործել այս հնարավորությունը: Ներբեռնել քարտեզներ Ճանապարհային նշանների և կանոնների ճիշտ ցուցադրման համար ընտրեք ձեր շրջանը: @@ -829,8 +835,8 @@ Ընթացիկ երթուղին OSM-ի փոփոխությունները մուտքագրվել են տեղական տվյալների բազայում Նշել ջնջելու համար - Դուք մտադիր եք ջնջել %1$d նշումներ: Համոզված եք? - Դուք մտադիր եք %1$d փոփոխություններ ուղարկել OSM- ին: Համոզված եք? + Դուք համոզված եք, որ ուզուն եք ջնջել %1$d նշումներ\? + Դուք համոզված եք, որ ուզուն եք %1$d փոփոխություններ ուղարկել OSM- ին\? Մաքրել պատմությունը? Նշեք սպասման ժամանակը երթուղու պլանավորման էկրանին։ Նավիգացիաի մեկնարկի հետաձքումը… @@ -894,7 +900,7 @@ Հիշել ընտրությունը Թարմացնել Ներբեռնել - Ներբեռնում + Ներբեռնում… Ներբեռնումը ավարտվեց I/O սխալ տեղի ունեցավ Անսպասելի սխալ @@ -924,51 +930,51 @@ Տրեկի հատվածներ Տրեկի կետերը Առցանց քարտեզներ - "Այս plugin-ի միջոցով Դուք կարող եք մուտք գործել առցանց (այսպես կոչված սալիկների կամ ռաստր) քարտեզների, նախապես սահմանված OpenStreetMap սալիկներից (նման Mapnik), արբանյակային պատկերներ եւ հատուկ նպատակային շերտեր, ինչպիսիք են եղանակային քարտեզները, կլիմայական քարտեզները, երկրաբանական քարտեզները, խճուղային շերտերը եւ այլն: + Այս plugin-ի միջոցով Դուք կարող եք մուտք գործել առցանց (այսպես կոչված սալիկների կամ ռաստր) քարտեզների, նախապես սահմանված OpenStreetMap սալիկներից (նման Mapnik), արբանյակային պատկերներ եւ հատուկ նպատակային շերտեր, ինչպիսիք են եղանակային քարտեզները, կլիմայական քարտեզները, երկրաբանական քարտեզները, խճուղային շերտերը եւ այլն: \n \nԱյս քարտեզներից յուրաքանչյուրը կարող է օգտագործվել որպես հիմնական (բազային) քարտեզ, որը ցուցադրվում է OsmAnd քարտեզի էկրանին, կամ որպես կափարիչ կամ ստորագրված այլ բազային քարտեզի (նման OsmAnd-ի ստանդարտ անցանց քարտեզները): Ցանկացած ստորերկրյա քարտեզի առավել տեսանելի դարձնելու համար OsmAnd վեկտորի քարտեզները հեշտությամբ կարելի է թաքցնել «Կարգավորեք քարտեզը» ցանկի միջոցով: \n -\nՍալիկի քարտեզները կարելի է ձեռք բերել անմիջապես առցանց աղբյուրների միջոցով կամ կարող են պատրաստվել անցանց օգտագործման համար (և պատճենել OsmAnd-ի տվյալների պանակում) որպես SQLite տվյալների բազա, որը կարող է արտադրվել 3-րդ կողմի քարտեզի պատրաստման գործիքների կողմից:" +\nՍալիկի քարտեզները կարելի է ձեռք բերել անմիջապես առցանց աղբյուրների միջոցով կամ կարող են պատրաստվել անցանց օգտագործման համար (և պատճենել OsmAnd-ի տվյալների պանակում) որպես SQLite տվյալների բազա, որը կարող է արտադրվել 3-րդ կողմի քարտեզի պատրաստման գործիքների կողմից: Ուղեւորության գրանցում - "Այս plugin-նը ակտիվացնում է հետևյալ ֆունկցիաները`գրանցում և պահպանում ձեր տրեկերը, ձեռքով հպելով GPX-ի գրանցման վիջեթը քարտեզի էկրանին կամ ավտոմատ կերպով մուտքագրելու ձեր բոլոր նավիգացիոն երթուղիները GPX ֆայլում: + Այս plugin-նը ակտիվացնում է հետևյալ ֆունկցիաները`գրանցում և պահպանում ձեր տրեկերը, ձեռքով հպելով GPX-ի գրանցման վիջեթը քարտեզի էկրանին կամ ավտոմատ կերպով մուտքագրելու ձեր բոլոր նավիգացիոն երթուղիները GPX ֆայլում: \n -\nԳրանցված տրեկերը կարող են տարածվել ձեր ընկերների հետ կամ օգտագործել OSM-ի ներդրումների համար: Մարզիկները կարող են օգտվել արձանագրված տրեկերից, որոնք կարող են վերահսկել իրենց դասընթացները: Որոշ հիմնական տրեկերի վերլուծություն կարելի է իրականացնել ուղղակիորեն OsmAnd-ում, նման գրիչ անգամները, միջին արագությունը և այլն, և տրեկերը կարող են նաև վերլուծվել հատուկ 3-րդ կողմի վերլուծության գործիքներում:" +\nԳրանցված տրեկերը կարող են տարածվել ձեր ընկերների հետ կամ օգտագործել OSM-ի ներդրումների համար: Մարզիկները կարող են օգտվել արձանագրված տրեկերից, որոնք կարող են վերահսկել իրենց դասընթացները: Որոշ հիմնական տրեկերի վերլուծություն կարելի է իրականացնել ուղղակիորեն OsmAnd-ում, նման գրիչ անգամները, միջին արագությունը և այլն, և տրեկերը կարող են նաև վերլուծվել հատուկ 3-րդ կողմի վերլուծության գործիքներում: OsmAnd-ի plugin բարձրության գծերի համար - "Այս plugin-ը ապահովում է ինչպես եզրագծային կափարիչը, այնպես էլ (ռելիեֆը) բլուրային շերտ, որը ցուցադրվում է OsmAnd-ի ստանդարտ քարտեզների վրա: Այս ֆունկցիան շատ բարձր է գնահատվելու մարզիկների, զբոսաշրջիկների, և բոլոր նրանց կողմից, ովքեր հետաքրքրված են լանդշաֆտի կառուցվածքով: -\n -\nՀամաշխարհային տվյալները (70° հյուսիսից 70° հարավ) հիմնված են SRTM-ի (Shuttle Radar Topography Mission) և ASTER- ի (Advanced Spaceborne Thermal Emission and Reflection Radiometer) կողմից չափումների վրա, ՆԱՍԱ-ի Earth Watching-ի առաջատար արբանյակի Համակարգը: ASTER-ն համագործակցային ջանք է ՆԱՍԱ-ի, Ճապոնիայի էկոնոմիկայի, առեւտրի եւ արդյունաբերության նախարարության (METI) և Ճապոնիայի տիեզերական համակարգերի (J-spacesystems) միջև:" + Այս plugin-ը ապահովում է ինչպես եզրագծային կափարիչը, այնպես էլ (ռելիեֆը) բլուրային շերտ, որը ցուցադրվում է OsmAnd-ի ստանդարտ քարտեզների վրա: Այս ֆունկցիան շատ բարձր է գնահատվելու մարզիկների, զբոսաշրջիկների և բոլոր նրանց կողմից, ովքեր հետաքրքրված են լանդշաֆտի կառուցվածքով: +\n +\nՀամաշխարհային տվյալները (70° հյուսիսից 70° հարավ) հիմնված են SRTM-ի (Shuttle Radar Topography Mission) և ASTER- ի (Advanced Spaceborne Thermal Emission and Reflection Radiometer) կողմից չափումների վրա, ՆԱՍԱ-ի Earth Watching-ի առաջատար արբանյակի Համակարգը: ASTER-ն համագործակցային ջանք է ՆԱՍԱ-ի, Ճապոնիայի էկոնոմիկայի, առեւտրի եւ արդյունաբերության նախարարության (METI) և Ճապոնիայի տիեզերական համակարգերի (J-spacesystems) միջև: Բարձունքների գծեր (եզրագծեր) Այս plugin-ը ապահովում է ինչպես եզրագծային կափարիչը, այնպես էլ (ռելիեֆը) բլուրային շերտ, որը ցուցադրվում է OsmAnd-ի ստանդարտ քարտեզների վրա: Այս ֆունկցիան շատ բարձր է գնահատվելու մարզիկների, զբոսաշրջիկների, և բոլոր նրանց կողմից, ովքեր հետաքրքրված են լանդշաֆտի կառուցվածքով: \n \nՀամաշխարհային տվյալները (70° հյուսիսից 70° հարավ) հիմնված են SRTM-ի (Shuttle Radar Topography Mission) և ASTER- ի (Advanced Spaceborne Thermal Emission and Reflection Radiometer) կողմից չափումների վրա, ՆԱՍԱ-ի Earth Watching-ի առաջատար արբանյակի Համակարգը: ASTER-ն համագործակցային ջանք է ՆԱՍԱ-ի, Ճապոնիայի էկոնոմիկայի, առեւտրի եւ արդյունաբերության նախարարության (METI) և Ճապոնիայի տիեզերական համակարգերի (J-spacesystems) միջև: Տուրիստական քարտեզ - "Այս դիտարկումը ակտիվացնելուց OsmAnd-ի քարտեզի ոճը փոխվում է «Touring view»-ի ոճի , սա հատուկ բարձր մանրամասն դիտարկում է ճանապարհորդների և պրոֆեսիոնալ վարորդների համար: -\n -\nԱյս դիտումը ապահովում է քարտեզի վրա առկա առավելագույն քանակի ճամփորդության մանրամասները(մասնավորապես, ճանապարհներ, տրեկներ, ուղիներ և կողմնորոշման նշաններ): -\n -\nԱյն նաեւ հստակ պատկերում է բոլոր տեսակի ճանապարհների միանգամայն գունավոր կոդավորումով, ինչը օգտակար է, երբ, օրինակ, մեծ մեքենաներ վարելու դեպքում: -\n -\nԵվ այն ապահովում է հատուկ զբոսաշրջային տարբերակներ, ինչպիսիք են հեծանվային երթուղիները կամ Ալպիական լեռնային ճանապարհները: -\n -\nՀատուկ քարտեզի ներբեռնում չի պահանջվում, դիտումը հնարավոր է մեր ստանդարտ քարտեզներից: -\n -\nԱյս դիտումը կարող է վերադարձվել կամ կրկին անջատել այն այս կետից, կամ փոխելով «Քարտեզի ոճը», «Կարգավորել քարտեզը» կետից, ըստ ցանկության:" + Այս դիտարկումը ակտիվացնելուց OsmAnd-ի քարտեզի ոճը փոխվում է «Touring view»-ի ոճի, սա հատուկ բարձր մանրամասն դիտարկում է ճանապարհորդների և պրոֆեսիոնալ վարորդների համար: +\n +\nԱյս դիտումը ապահովում է քարտեզի վրա առկա առավելագույն քանակի ճամփորդության մանրամասները(մասնավորապես, ճանապարհներ, տրեկներ, ուղիներ և կողմնորոշման նշաններ): +\n +\nԱյն նաեւ հստակ պատկերում է բոլոր տեսակի ճանապարհների միանգամայն գունավոր կոդավորումով, ինչը օգտակար է, երբ, օրինակ, մեծ մեքենաներ վարելու դեպքում: +\n +\nԵվ այն ապահովում է հատուկ զբոսաշրջային տարբերակներ, ինչպիսիք են հեծանվային երթուղիները կամ Ալպիական լեռնային ճանապարհները: +\n +\nՀատուկ քարտեզի ներբեռնում չի պահանջվում, դիտումը հնարավոր է մեր ստանդարտ քարտեզներից: +\n +\nԱյս դիտումը կարող է վերադարձվել կամ կրկին անջատել այն այս կետից, կամ փոխելով «Քարտեզի ոճը», «Կարգավորել քարտեզը» կետից, ըստ ցանկության: Ծովային քարտեզի դիտում Դահուկային քարտեզի դիտում Աուդիո և վիդեո նշումներ - "Աուդիո/Վիդեո նշումների plugin-ը հնարավորություն են տալիս ստեղծել աուդիո/լուսանկարներ/վիդեո նշումներ վարելու ժամանակ կամ կոճակի միջոցով քարտեզի էկրանին վրա կամ անմիջապես համատեքստային մենյուի միջոցով ցանկացած դիրքի համար քարտեզի վրա:" + Աուդիո/Վիդեո նշումների plugin-ը հնարավորություն են տալիս ստեղծել աուդիո/լուսանկարներ/վիդեո նշումներ վարելու ժամանակ կամ կոճակի միջոցով քարտեզի էկրանին վրա կամ անմիջապես համատեքստային մենյուի միջոցով ցանկացած դիրքի համար քարտեզի վրա: Ավտոկայանատեղ Ավտոկայանատեղ plugin-ը թույլ է տալիս գրանցել, թե որտեղ է ձեր մեքենան կայանել և որքան ժամանակ է մնացել ավտոկայանատեղը ազատելու (եթե առկա է ժամկետ): \nԹե տեղը, թե ժամանակը տեսանելի են OsmAnd-ի վահանակի վրա, ինչպես նաև քարտեզի էկրանին ինչպես նաև վիդժետի մեջ: Android օրացույցին կարելի է միացնել որպես հիշեցում: Հատուկ հնարավորություններ - "The plugin-ն սարքի համար ավելացնում հատուկ հնարավորությունների աջակցում ուղղակիորեն OsmAnd-ում: Սա հեշտացնում է, օրինակ, TTS-ի ձայնի ելքային արագությունը հարմարեցնելու համար, կարգավորել նավիգացիայի ուղղվածությունը էկրանի վրա, վերահսկեք սանդղակը կամ ձայնային հետադարձ կապի հրամանները ավտո անոտացիաներ անելու դեպքում ձեր դիրքի վերաբերյալ:" + The plugin-ն սարքի համար ավելացնում հատուկ հնարավորությունների աջակցում ուղղակիորեն OsmAnd-ում: Սա հեշտացնում է, օրինակ, TTS-ի ձայնի ելքային արագությունը հարմարեցնելու համար, կարգավորել նավիգացիայի ուղղվածությունը էկրանի վրա, վերահսկեք սանդղակը կամ ձայնային հետադարձ կապի հրամանները ավտո անոտացիաներ անելու դեպքում ձեր դիրքի վերաբերյալ: Սխալ մուտքագրում Մուտքագրեք նոր անուն Վերադառնալ Դիտել OSM-ի խմբագրում Կետերը ավելացվել են քարտեզի մարկերներին - "Այս OsmAnd-ի plugin-ի միջոցով կարելի է ներդրում կատարել OSM-ի, ինչպիսիք են OSM POI-ի օբյեկտների ստեղծում կամ փոփոխում, OSM նշումների բացումը կամ մեկնաբանումը և վերբեռնում արձանագրված GPX ֆայլերը: OSM-ն գլոբալ հանրային քարտեզագրման նախագիծ է, որը կառավարվում է OSM համայնքի կողմից: Մանրամասների համար այցելեք https://openstreetmap.org: Ակտիվ մասնակցությունը գնահատվում է, և ներդրումները կարող են կատարվել ուղղակիորեն OsmAnd-ից, եթե նշեք ձեր անձնական OSM-ի հավատարմագրերը հավելվածում:" + Այս OsmAnd-ի plugin-ի միջոցով կարելի է ներդրում կատարել OSM-ի, ինչպիսիք են OSM POI-ի օբյեկտների ստեղծում կամ փոփոխում, OSM նշումների բացումը կամ մեկնաբանումը և վերբեռնում արձանագրված GPX ֆայլերը: OSM-ն գլոբալ հանրային քարտեզագրման նախագիծ է, որը կառավարվում է OSM համայնքի կողմից: Մանրամասների համար այցելեք https://openstreetmap.org: Ակտիվ մասնակցությունը գնահատվում է, և ներդրումները կարող են կատարվել ուղղակիորեն OsmAnd-ից, եթե նշեք ձեր անձնական OSM-ի հավատարմագրերը հավելվածում: Այս plugin-նը ցուցադրում է գործառույթների մշակման և կարգաբերման պարամետրեր, ինչպիսիք են երթուղու ստուգումը կամ մոդելավորումը,քարտեզի ցուցադրման կատարումը, ձայնային հուշումները ստուգելը: Այս կարգավորումները մշակողների համար են և հասարակ օգտագործողների համար անհրաժեշտ չեն: OsmAnd-ի կարգավորումը և զարգացումը Չհաջողվեց վերանվանել: @@ -986,8 +992,8 @@ Ազատ է %1$s Սարքի հիշողությունը Լեռնադահուկորդ երթուղու տեսակը - "Լեռնադահուկային քարտեզների ցուցադրման համար անհրաժեշտ է ներբեռնել հատուկ քարտեզ" - "Ծովային քարտեզների ցուցադրման համար անհրաժեշտ է ներբեռնել հատուկ քարտեզ" + Ներբեռնեք հատուկ քարտեզներ լեռնադահուկային առարկաները ցուցադրման համար։ + Ծովային քարտեզների ցուցադրման համար անհրաժեշտ է ներբեռնել հատուկ քարտեզ։ Խմբագրել խումբը Ավտոկայանատեղ ՋՆՋԵԼ TAG-ը @@ -1013,8 +1019,8 @@ Ցուցադրել երկաթուղային անցումները Ցույց տալ հետիոտնային անցումներ Ամերիկայի ճանապարհների ատլաս - "Չօգտագործել երթուղային 1.9 տարբերակը" - "Չօգտագործել երթուղային 1.9 տարբերակում ներկայացված ալգորիթմը։" + Չօգտագործել երթուղային 1.9 տարբերակը + Չօգտագործել երթուղային 1.9 տարբերակում ներկայացված ալգորիթմը։ Ներբեռնել անցանց քարտեզները? Ներբեռնված քարտեզներ %1$s Ներբեռնեք նոր քարտեզ @@ -1104,7 +1110,7 @@ Նավիգացիայի ընթացքում GPX տրեկները ինքնաբերաբար կպահպանվեն տրեկների թղթապանակում։ Մուտքագրման ժամանակի ընդմիջումը Նավիգացիայի ընթացքում մուտքագրման ժամանակի ընդմիջումը - Ընտրեք մուտքագրման ժամանակի ընդմիջումը նավիգացիայի ընթացքում։ + Ընտրեք մուտքագրման ժամանակի ընդմիջումը նավիգացիայի ընթացքում Ընտրեք ձայնային ուղեցույցի լեզուն նավիգացիայի համար։ Ձայնի ուղեցույց Միացնել HTTP proxy սերվեր @@ -1117,7 +1123,7 @@ Տևողություն Հեռավորություն Միջին - "%1$d %2$d ից" + %1$d %2$d ից Վերելք/Ծագում Ժամանակն շարժման մեջ Max/Min @@ -1142,7 +1148,7 @@ Առաջ Վահանակը Ուղարկել տրեկինգ տվյալները նշված վեբ ծառայությանը, եթե GPX գրանցումը միացված է: - "Առցանց հետևում(tracking) (GPX պահանջվում է)" + Առցանց հետևում(tracking) (GPX պահանջվում է) Սկսեք առցանց հետևելուն(tracking) Դադարեցնել առցանց հետևելուն(tracking) Սկսել GPX գրանցումը @@ -1161,7 +1167,7 @@ Ցույց տալ ճանապարհների ծածկույթի տեսակը Ցուցադրել հեծանիվային երթուղիները Ներբեռնումներ չկան, խնդրում ենք ստուգել ձեր Ինտերնետ կապը: - "Ոչինչ չի գտնվել: Դուք կարող եք ստեղծել քարտեզը ինքնուրույն (տես https://osmand.net):" + Ոչինչ չի գտնվել: Դուք կարող եք ստեղծել քարտեզը ինքնուրույն (տես https://osmand.net): Ընտրված GPX ֆայլեր չկան: Ընտրելու համար երկար սխմեք հասանելի տրեկի վրա։ Ընտրեք ցույց տալու համար Բաժանման ընդմիջումի ժամանակը @@ -1171,7 +1177,7 @@ Ցույց տալ խոշորացման կոճակները Պահպանել որպես «Սիրված» խումբ Ընտրեք նպատակակետերը - "POI կետերի պիտակները" + POI կետերի պիտակները Բեռնում %1$s… Ընթացիկ ժամը Կետ @@ -1290,10 +1296,10 @@ Android 4.4 (KitKat) տարբերակից սկսած քարտը չեք կարող բեռնել և թարմացնել հին պահեստային ֆոլդերում (%s): Պատճենել բոլոր OsmAnd ֆայլերը նոր պահպանման վայրում? \n…Ծանոթագրություն 1. Ձեր հին ֆայլերը կմնան անփոփոխ (բայց կարող են ջնջվել ձեռքով): \n…Ծանոթագրություն 2. Երբ ֆայլերը փոխանցեք նոր պահպանման վայր, «OsmAnd»-ի և «OsmAnd+» ֆայլերի համատեղ օգտագործումը հնարավոր չի լինի: - "Ֆայլի պատճենում (%s) նոր վայր…" - "OsmAnd-ի տվյալների Ֆայլերի պատճենում նոր վայր (%s)…" + Ֆայլի պատճենում (%s) նոր վայր… + OsmAnd-ի տվյալների Ֆայլերի պատճենում նոր վայր (%s)… Պատճենահանում OsmAnd-ի տվյալների ֆայլերը… - "Հաշվարկել OsmAnd երթուղին անցանց " + Հաշվարկել OsmAnd երթուղին անցանց Բեռնատար Նավարկության կարգավորումները Երթուղու կարգավորումները @@ -1328,7 +1334,7 @@ Առավելագույն խոշորացում՝ %1$s Նվազագույն խոշորացում՝ %1$s Տայլերի տվյալները՝ %1$s - "Տայլերի աղբյուրը %1$s պահպանվեց" + Տայլերի աղբյուրը %1$s պահպանվեց Մերկատորի էլիպտիկ նախագծումը Առավելագույն խոշորացում Լրանում է (րոպե) @@ -1370,13 +1376,13 @@ Որոնել փողոցը մոտակա բնակավայրերում Միջանկյալ նպատակակետերը տեղադրված են օպտիմալ երթուղով ընթացիկ դիրքից դեպի նպատակակետը: Դասավորել ըստ հեռավորության - OSM-ի փոփոխությունների կրկնօրինակումը ձախողվել է + OSM-ի փոփոխությունների կրկնօրինակումը ձախողվել է։ Կրկնօրինակել OSM-ի փոփոխությունները Այս plugin-նը ապահովում է էներգախնայողության ռեժիմում նավարկություն և երթուղիների գրանցում: Plugin-նը գործարկում է ֆոնային ռեժիմում և պարբերաբար ակտիվացնում GPS-ը: Տեղադրել տարբերակը Վիքիպեդիա Հեռավորության չափում - "Դիրքը դեռ հայտնի չէ, որպեսզի կապել նշումի հետ:«Օգտագործեք դիրղը...» նշումը նշված դիրքին նշանակելու համար։" + Դիրքը դեռ հայտնի չէ, որպեսզի կապել նշումի հետ:«Օգտագործեք դիրղը...» նշումը նշված դիրքին նշանակելու համար։ Աուդիո նշումներ մասեր Բարձունքների գծեր @@ -1398,7 +1404,7 @@ Որոնել ըստ գյուղի և փոստային բաժանմունքի(ինդեքսի) Ընտրեք, թե ինչպես ցույց տալ միայն ճանապարհային քարտեզները՝ Միայն ճանապարհների քարտեզները - "Գործարկել հավելվածը անվտանգ ռեժիմում (դանդաղեցնում է հավելվածի աշխատանքը, օգտագործելով միայն Android գործառույթները):" + Գործարկել հավելվածը անվտանգ ռեժիմում (դանդաղեցնում է հավելվածի աշխատանքը, օգտագործելով միայն Android գործառույթները): Անվտանգ ռեժիմ Հավելվածը գործարկվել է անվտանգ ռեժիմով (անջատել «Կարգավորումներ»-ում): Փոխել «changeset» @@ -1406,7 +1412,7 @@ Ընտրեք ճանապարհների գունավորման սխեման՝ Ճանապարհների գունավորման սխեման Ցուցադրել ուղղությունը դեպի նպատակակետը - "Միացնել «Ուղևորության գրանցում» plugin-ը մոնիտորինգի ծառայություններից օգտվելու համար (GPX գրանցում, online ուղեկցում)" + Միացնել «Ուղևորության գրանցում» plugin-ը մոնիտորինգի ծառայություններից օգտվելու համար (GPX գրանցում, online ուղեկցում) Արագ երթուղու հաշվառկում (հավանաբար ոչ օպտիմալ) Միացրեք GPS-ը «Կարգավորումներ»-ում Մոնիտորինգի ծառայություններ @@ -1439,7 +1445,7 @@ Մթերային խանութներ Զբոսաշրջիկների համար Լիցքավորման կետեր - "Ցույց տալ ազդանշանները…" + Ցույց տալ ազդանշանները… Ցույց տալ արագության սահմանափակումները, արագաչափ տեսախցիկները, թունելները և արհեստական անհարթությունները (speed bumps)։ Նավարկել կողմնացույցի օգնությամբ, եթե շարժման ուղղությունը հայտնի չէ։ Օգտագործեք կողմնացույցը @@ -1452,21 +1458,86 @@ Ընդհատել երաժշտությունը OsmAnd քարտեզներ և նավիգացիա OsmAnd - ճանապարհորդելու համար նավիգացիոն ծրագիր է բաց կոդով - "OsmAnd (OSM Automated Navigation Directions) OsmAnd-ը բաց կոդով նավիգացիոն ծրագիր է, որը հնարավորություն է տալիս մուտք գործել համաշխարհային OpenStreetMap (OSM) տվյալների լայն շրջանակ: Բոլոր քարտեզները (վեկտորային կամ կղմինդր) և դրա հետ կապված տվյալները կարող են պահվել հեռախոսի հիշողության քարտում անցանց օգտագործման համար: OsmAnd-ն առաջարկում է նաև անցանց և առցանց երթուղիների ֆունկցիոնալություն, այդ թվում`մանրամասն ձայնային ուղեցույց: Հիմնական առանձնահատկություններից մի քանիսը`- Ամբողջությամբ անցանց ֆունկցիոնալությունը (պահեստավորվող վեկտոր կամ կղմինդր քարտեզներ սարքի հիշողութունում)։ - Կոմպակտ անցանց քարտեզներ ամբողջ աշխարհի համար։ - Երկրի կամ տարածաշրջանի քարտեզները ներբեռնում ուղղակիորեն հավելվածից։ - Հնարավոր է մի քանի քարտեզի շերտերի կափարիչ , ինչպիսիք են GPX-ը կամ նավիգացիոն ուղիները(tracks), POI, «Սիրված»(Favorites), Եզրագծերը(Contour lines), հասարակական տրանսպորտի կանգառները, հարմարեցված թափանցիկությամբ լրացուցիչ քարտեզներ։ - Հասցեների և տեղերի (POIs) անցանց որոնում։ - Ավտոմատ կերպով երթուղու հաշվարկ միջին հեռավորությունների համար։ - Մեքենա, հեծանիվ և հետիոտն ռեժիմներ։ - Ընտրովի՝ ցերեկային / գիշերային ռեժիմների ավտոմատացված դիտում։ - Ընտրովի՝ արագություննից կախված քարտեզի ընդլայնում։ - Ընտրովի՝ քարտեզի հավասարեցում, ըստ կողմնացույցի կամ շարժման ուղղության։ - Ընտրովի՝ գծի ուղեցույց, արագության սահմանափակուման ցուցադռումը, արձանագրված և TTS ձայներ: OsmAnd-ի այս անվճար տարբերակի սահմանափակումները. - Քարտեզների ներբեռնումների քանակը սահմանափակ է, - Հասանելի չեն Վիքիպեդիա POIs-ները: Osm-ը ակտիվորեն զարգանում է, և մեր նախագիծը և դրա հետագա առաջընթացը հիմնված են ֆինանսական ներդրումները վրա, որը հնարավորություն է տալիս մշակել և փորձարկել է նոր ֆունկցիոնալությունըԽնդրեմ։ Խնդրում ենք մտածեք OsmAnd+ գնելու մասին կամ ֆինանսավորեք կոնկրետ նոր հատկություններ, կամ նվիրատվություն արեք osmand.net կայքում։" - "OsmAnd (OSM Automated Navigation Directions) հանդիսանում է որպեսզ քարտեզ և նավիգացիոն հավելված ազատ մուտթով բարձրորակ OpenStreetMap (OSM) տվյալներին։ -\nՎայելեք ձայնային և օպտիկական նավիգատորի հնարավորությունները, դիտելով POIs, ստեղծեք և կառավարեք GPX track-րը, օգտագործելով եզրագծերի(contour lines) արտացոլման և բարձրությանների տեղեկատվություն (plugin-ի միջոցով), մեքենավարման, հեծանվավազքի, հետիոտների ռեժիմների միջև ընտրում, OSM խմբագրում և այլնի:" - "GPS նավիգացիան • Դուք կարող եք ընտրել անցանց (չկա ռոումինգի վճարներ, արտերկրում) կամ առցանց (արագ) ռեժիմ • Ձայնային ուղեկցումը առաջնորդում է Ձեզ ճանապարհով (ձայնագրված և սինթեզված(TTS) ձայն) • Երթուղին վերահաշվարկվում է եթե դուք շեղվում եք նրանից • Ճանապարհային ուղեցույցը, փողոցների անունները և նախատեսված ժամանման ժամանակը կօգնեն Ձեզ ճանապարհին • Ձեր ճանապարհորդությունը ավելի անվտանգ դարձնելու համար, օրվա/գիշերային ռեժիմը փոփոխվոմ է ավտոմատ կերպով • Դուք կարող եք ընտրել ցույց տալ արագության սահմանափակմները և ստանալ զգուշացումներ, եթե գերազանցեք այն • Քարտեզի ընդլայնումը հարմարվում է ըստ ձեր արագությանը • Դուք կարող եք որոնել Ձեր նպատակակետը ըստ հասցեյի, ըստ տեսակի (օրինակ`ավտոկանգառ, ռեստորան, հյուրանոց, բենզալցակայան, թանգարան) կամ ըստ աշխարհագրական կոորդինատների • Աջակցում է երթուղու միջանկյալ կետերը ձեր երթուղու վրա • Դուք կարող եք արձանագրել ձեր սեփական կամ բեռնել GPX track, և հետեւել նրան" + OsmAnd (OSM Automated Navigation Directions) +\n +\nOsmAnd-ը բաց կոդով նավիգացիոն ծրագիր է, որը հնարավորություն է տալիս մուտք գործել համաշխարհային OpenStreetMap (OSM) տվյալների լայն շրջանակ: Բոլոր քարտեզները (վեկտորային կամ կղմինդր) և դրա հետ կապված տվյալները կարող են պահվել հեռախոսի հիշողության քարտում անցանց օգտագործման համար: Առաջարկվում է նաև անցանց և առցանց երթուղիների ֆունկցիոնալություն, այդ թվում`մանրամասն ձայնային ուղեցույց: +\n +\nՀիմնական առանձնահատկություններից մի քանիսը` +\n- Ամբողջությամբ անցանց ֆունկցիոնալությունը (պահեստավորվող վեկտոր կամ կղմինդր քարտեզներ սարքի հիշողութունում)։ +\n- Կոմպակտ անցանց քարտեզներ ամբողջ աշխարհի համար։ +\n- Երկրի կամ տարածաշրջանի քարտեզները ներբեռնում ուղղակիորեն հավելվածից։ +\n- Հնարավոր է մի քանի քարտեզի շերտերի կափարիչ, ինչպիսիք են GPX-ը կամ նավիգացիոն ուղիները(tracks), POI, «Սիրված»(Favorites), Եզրագծերը(Contour lines), հասարակական տրանսպորտի կանգառները, հարմարեցված թափանցիկությամբ լրացուցիչ քարտեզներ։ +\n- Հասցեների և տեղերի (POIs) անցանց որոնում։ +\n- Ավտոմատ կերպով երթուղու հաշվարկ միջին հեռավորությունների համար։ +\n- Մեքենա, հեծանիվ և հետիոտն ռեժիմներ։ +\n- Ընտրովի՝ ցերեկային/գիշերային ռեժիմների ավտոմատացված դիտում։ +\n- Ընտրովի՝ արագություննից կախված քարտեզի ընդլայնում։ +\n- Ընտրովի՝ քարտեզի հավասարեցում, ըստ կողմնացույցի կամ շարժման ուղղության։ +\n- Ընտրովի՝ գծի ուղեցույց, արագության սահմանափակուման ցուցադռումը, արձանագրված և TTS ձայներ: +\n +\nOsmAnd-ի այս անվճար տարբերակի սահմանափակումները։ +\n- Քարտեզների ներբեռնումների քանակը սահմանափակ է։ +\n- Հասանելի չեն Վիքիպեդիա POIs-ները: +\n +\nOsmAnd-ը ակտիվորեն զարգանում է, և մեր նախագիծը և դրա հետագա առաջընթացը հիմնված են ֆինանսական ներդրումները վրա, որը հնարավորություն է տալիս մշակել և փորձարկել է նոր ֆունկցիոնալությունըԽնդրեմ։ Խնդրում ենք մտածեք OsmAnd+ գնելու մասին կամ ֆինանսավորեք կոնկրետ նոր հատկություններ, կամ նվիրատվություն արեք osmand.net կայքում։ + OsmAnd (OSM Automated Navigation Directions) հանդիսանում է որպեսզ քարտեզ և նավիգացիոն հավելված ազատ մուտթով բարձրորակ OpenStreetMap (OSM) տվյալներին։ +\n +\nՎայելեք ձայնային և օպտիկական նավիգատորի հնարավորությունները, դիտելով POIs, ստեղծեք և կառավարեք GPX track-րը, օգտագործելով եզրագծերի(contour lines) արտացոլման և բարձրությանների տեղեկատվություն (plugin-ի միջոցով), մեքենավարման, հեծանվավազքի, հետիոտների ռեժիմների միջև ընտրում, OSM խմբագրում և այլնի: + GPS նավիգացիան +\n• Դուք կարող եք ընտրել անցանց (չկա ռոումինգի վճարներ, արտերկրում) կամ առցանց (արագ) ռեժիմ +\n• Ձայնային ուղեկցումը առաջնորդում է Ձեզ ճանապարհով (ձայնագրված և սինթեզված(TTS) ձայն) +\n• Երթուղին վերահաշվարկվում է եթե դուք շեղվում եք նրանից +\n• Ճանապարհային ուղեցույցը, փողոցների անունները և նախատեսված ժամանման ժամանակը կօգնեն Ձեզ ճանապարհին +\n• Ձեր ճանապարհորդությունը ավելի անվտանգ դարձնելու համար, օրվա/գիշերային ռեժիմը փոփոխվոմ է ավտոմատ կերպով +\n• Դուք կարող եք ընտրել ցույց տալ արագության սահմանափակմները և ստանալ զգուշացումներ, եթե գերազանցեք այն +\n• Քարտեզի ընդլայնումը հարմարվում է ըստ ձեր արագությանը +\n• Դուք կարող եք որոնել Ձեր նպատակակետը ըստ հասցեյի, ըստ տեսակի (օրինակ`ավտոկանգառ, ռեստորան, հյուրանոց, բենզալցակայան, թանգարան) կամ ըստ աշխարհագրական կոորդինատների +\n• Աջակցում է երթուղու միջանկյալ կետերը ձեր երթուղու վրա +\n• Դուք կարող եք արձանագրել ձեր սեփական կամ բեռնել GPX track, և հետեւել նրան +\n Քարտեզ -\n• Ցուցադրում է Ձեր շուրջը գտնվող POIs (հետաքրքրության կետ) \t\t +\n• Ցուցադրում է Ձեր շուրջը գտնվող POIs (հետաքրքրության կետ) \t\t \n• Կարգավորում է քարտեզը ըստ Ձեր շարժման ուղղությամբ \n• Ցույց է տալիս, թե որտեղ եք գտնվում և որտեղ եք նայում +\n• Կիսվեք ձեր գտնվելու վայրով, որպեսզի ձեր ընկերները կարողանան գտնել ձեզ +\n• Ձեր ամենակարևոր տեղերը պահպանում է «Ընտրյալների» մեջ \n• Թույլ է տալիս ընտրել, թե ինչպես ցուցադրել անունները քարտեզի վրա`անգլերեն, տեղական կամ հնչյունական ուղղագրությամբ -\n• Ցուցադրում է մասնագիտացված օնլայն սալիկներ, արբանյակային դիտում (Bing-ից), տարբեր կափարիչներ, ինչպիսիք են շրջագայությունը/նավիգացիան GPX tracks և լրացուցիչ շերտերով`հարմարեցված թափանցիկությամբ - "OsmAnd-ի լեռնադահուկային քարտեզների plugin-նը հնարավորություն է տալիս տեսնել լեռնադահուկային ուղիները բարդության աստիճանի և որոշ լրացուցիչ տեղեկություններ, ինչպես նաև վերելակների տեղակայման և այլ օբյեկտների:" - "Հեծանվավազք • Գտնել հեծանվային ուղիներ քարտեզի վրա • Հեծանվային ռեժիմում GPS նավիգացիան, կառուցում է ձեր երթուղին հեծանվային ուղիներով • Դուք կարող եք տեսնել ձեր արագությունը և բարձրությունը • GPX ձայնագրման տարբերակը թույլ է տալիս արձանագրել ձեր ուղևորությունը և կիսել այն • Լրացուցիչ plugin-ի միջոցով կարող եք միացնել եզրագծերի(contour lines) և բլուր-ստվերում(hill-shading) ցուցադրումը" - "Քայլում, արշավ, քաղաքային շրջագայություն • Քարտեզը ցույց է տալիս, որ դուք քայլում եք և արշավներ եք անում • Վիքիպեդիան ձեր նախընտրած լեզվով կարող է պատմել ձեզ շրջագայության ժամանակ քաղաքներում • Հասարակական տրանսպորտի կանգառները (ավտոբուս, տրամվայ, գնացք), ներառյալ գծի անունները, օգնում են նավարկելու նոր քաղաքում • GPS նավիգացիան հետիոտնային ռեժիմում կառուցում է ձեր երթուղին, օգտագործելով քայլելու ճանապարհները • Դուք կարող եք վերբեռնել և հետեւել GPX երթուղին կամ գրանցել և կիսվել ձեր սեփական" - "Նպաստել OSM-ին • Զեկուցել սխալների մասին • Վերբեռնել GPX track-եր OSM ուղղակիորեն հավելվածից • Ավելացրեք POIs և ուղղակիորեն վերբեռնել դրանք OSM-ում (կամ ավելի ուշ, եթե անցանց եք)" - "Osmand-ը ակտիվորեն զարգացող նախագիծ է`բաց կոդով: Յուրաքանչյուրը կարող է նպաստել նախագծին, հաղորդելով է սխալները, բարելավելով թարգմանությունները կամ նոր առանձնահատկություններ կոդավորման: Ծրագիրն անընդհատ կատարելագործման վիճակում է, մշակողների և օգտագործողների միջև բոլոր այդ ձևերի փոխհարաբերությունների շնորհիվ: Ծրագրի առաջընթացը նաև կախված է ֆինանսական գործառույթներից, նոր ֆունկցիաների գրելու և փորձարկելու համար: Քարտեզի մոտավոր լուսաբանում և որակը. • Արևմտյան Եվրոպայում **** • Արևելյան Եվրոպա: *** • Ռուսաստան: *** • Հյուսիսային Ամերիկա: *** • Հարավային Ամերիկա: ** • ** • Ասիա, Ճապոնիա և Հարավային Կորեա: * ** • Մերձավոր Արեւելք։ ** • Աֆրիկա։ ** • Antarctica: * Շատ երկրներում հասանելի է ներբեռնման համար: Ստացեք մի հուսալի նավարկում ձեր երկրի համար, լինի դա Ֆրանսիան, Գերմանիան, Մեքսիկա, Միացյալ Թագավորություն, Իսպանիան, Նիդերլանդները, ԱՄՆ, Ռուսաստան, Բրազիլիա, կամ որեւէ այլ։" +\n• Ցուցադրում է մասնագիտացված օնլայն սալիկներ, արբանյակային դիտում (Bing-ից), տարբեր կափարիչներ, ինչպիսիք են շրջագայությունը/նավիգացիան GPX tracks և լրացուցիչ շերտերով`հարմարեցված թափանցիկությամբ +\n + Դահուկավազք +\n• OsmAnd-ի լեռնադահուկային քարտեզների plugin-նը հնարավորություն է տալիս տեսնել լեռնադահուկային ուղիները բարդության աստիճանի և որոշ լրացուցիչ տեղեկություններ, ինչպես նաև վերելակների տեղակայման և այլ օբյեկտների: + Հեծանվավազք +\n • Գտնել հեծանվային ուղիներ քարտեզի վրա +\n• Հեծանվային ռեժիմում GPS նավիգացիան, կառուցում է ձեր երթուղին հեծանվային ուղիներով +\n• Դուք կարող եք տեսնել ձեր արագությունը և բարձրությունը +\n• GPX ձայնագրման տարբերակը թույլ է տալիս արձանագրել ձեր ուղևորությունը և կիսել այն +\n• Լրացուցիչ plugin-ի միջոցով կարող եք միացնել եզրագծերի(contour lines) և բլուր-ստվերում(hill-shading) ցուցադրումը + Քայլում, արշավ, քաղաքային շրջագայություն +\n• Քարտեզը ցույց է տալիս, որ դուք քայլում եք և արշավներ եք անում +\n• Վիքիպեդիան ձեր նախընտրած լեզվով կարող է պատմել ձեզ շրջագայության ժամանակ քաղաքներում +\n• Հասարակական տրանսպորտի կանգառները (ավտոբուս, տրամվայ, գնացք), ներառյալ գծի անունները, օգնում են նավարկելու նոր քաղաքում +\n• GPS նավիգացիան հետիոտնային ռեժիմում կառուցում է ձեր երթուղին, օգտագործելով քայլելու ճանապարհները +\n• Դուք կարող եք վերբեռնել և հետեւել GPX երթուղին կամ գրանցել և կիսվել ձեր սեփական +\n + Նպաստել OSM-ին +\n• Զեկուցել սխալների մասին +\n• Վերբեռնել GPX track-եր OSM ուղղակիորեն հավելվածից +\n• Ավելացրեք (POIs) և ուղղակիորեն վերբեռնել դրանք OSM-ում (կամ ավելի ուշ, եթե անցանց եք) +\n + Osmand-ը ակտիվորեն զարգացող նախագիծ է`բաց կոդով: Յուրաքանչյուրը կարող է նպաստել նախագծին, հաղորդելով է սխալները, բարելավելով թարգմանությունները կամ նոր առանձնահատկություններ կոդավորման: Ծրագիրն անընդհատ կատարելագործման վիճակում է, մշակողների և օգտագործողների միջև բոլոր այդ ձևերի փոխհարաբերությունների շնորհիվ: Ծրագրի առաջընթացը նաև կախված է ֆինանսական գործառույթներից, նոր ֆունկցիաների գրելու և փորձարկելու համար: +\nՔարտեզի մոտավոր լուսաբանում և որակը՝ +\n • Արևմտյան Եվրոպայում **** +\n• Արևելյան Եվրոպա: *** +\n• Ռուսաստան: *** +\n• Հյուսիսային Ամերիկա: *** +\n• Հարավային Ամերիկա: ** +\n• Ասիա: ** +\n• Ճապոնիա և Հարավային Կորեա: *** +\n• Մերձավոր Արեւելք։ ** +\n• Աֆրիկա։ ** +\n• Անտարկտիկա: * +\nՇատ երկրներում հասանելի է ներբեռնման համար: +\nՍտացեք մի հուսալի նավարկում ձեր երկրի համար, լինի դա Ֆրանսիան, Գերմանիան, Մեքսիկա, Միացյալ Թագավորություն, Իսպանիան, Նիդերլանդները, ԱՄՆ, Ռուսաստան, Բրազիլիա, կամ որեւէ այլ։ OsmAnd+ քարտեզներ և նավիգացիա OsmAnd - ճանապարհորդելու համար նավիգացիոն ծրագիր է բաց կոդով Ներմուծեք որպես GPX ֆայլ @@ -1474,21 +1545,96 @@ Ներմուծել ֆայլը Ստանում է այս երթուղին Հարաբերական կրող - "OsmAnd+ (OSM Automated Navigation Directions) OsmAnd+-ը բաց կոդով նավիգացիոն ծրագիր է, որը հնարավորություն է տալիս մուտք գործել համաշխարհային OpenStreetMap (OSM) տվյալների լայն շրջանակ: Բոլոր քարտեզները (վեկտորային կամ կղմինդր) և դրա հետ կապված տվյալները կարող են պահվել հեռախոսի հիշողության քարտում անցանց օգտագործման համար: OsmAnd+-ն առաջարկում է նաև անցանց և առցանց երթուղիների ֆունկցիոնալություն, այդ թվում`մանրամասն ձայնային ուղեցույց: OsmAnd+ - հավելվածի վճարովի տարբերակն է, ձեռք բերելով այն, աջակցեկցում եք նախագծին, ֆինանսավորում եք նոր առանձնահատկությունների զարգացումը և ստանում եք վերջին թարմացումները: Հիմնական առանձնահատկություններից մի քանիսը`- Ամբողջությամբ անցանց ֆունկցիոնալությունը (պահեստավորվող վեկտոր կամ կղմինդր քարտեզներ սարքի հիշողութունում)։ - Կոմպակտ անցանց քարտեզներ ամբողջ աշխարհի համար։ - Երկրի կամ տարածաշրջանի քարտեզները անսահմանափակ ներբեռնում ուղղակիորեն հավելվածից։ - Անցանց Վիքիպեդիա տվյալներ (ներբեռնել Վիքիպեդիա POIs), տեսարժան վայրերի համար։ - Հնարավոր է մի քանի քարտեզի շերտերի կափարիչ , ինչպիսիք են GPX-ը կամ նավիգացիոն ուղիները(tracks), POI, «Սիրված»(Favorites), Եզրագծերը(Contour lines), հասարակական տրանսպորտի կանգառները, հարմարեցված թափանցիկությամբ լրացուցիչ քարտեզներ։ - Հասցեների և տեղերի (POIs) անցանց որոնում։ - Ավտոմատ կերպով երթուղու հաշվարկ միջին հեռավորությունների համար։ - Մեքենա, հեծանիվ և հետիոտն ռեժիմներ։ - Ընտրովի՝ ցերեկային / գիշերային ռեժիմների ավտոմատացված դիտում։ - Ընտրովի՝ արագություննից կախված քարտեզի ընդլայնում։ - Ընտրովի՝ քարտեզի հավասարեցում, ըստ կողմնացույցի կամ շարժման ուղղության։ - Ընտրովի՝ գծի ուղեցույց, արագության սահմանափակուման ցուցադռումը, արձանագրված և TTS ձայներ" - "OsmAnd+ (OSM Automated Navigation Directions) հանդիսանում է որպեսզ քարտեզ և նավիգացիոն հավելված ազատ մուտթով բարձրորակ OpenStreetMap (OSM) տվյալներին։ Վայելեք ձայնային և օպտիկական նավիգատորի հնարավորությունները, դիտելով POIs, ստեղծեք և կառավարեք GPX track-րը, օգտագործելով եզրագծերի(contour lines) արտացոլման և բարձրությանների տեղեկատվություն (plugin-ի միջոցով), մեքենավարման, հեծանվավազքի, հետիոտների ռեժիմների միջև ընտրում, OSM խմբագրում և այլնի: OsmAnd+ - հավելվածի վճարովի տարբերակն է, ձեռք բերելով այն, աջակցեկցում եք նախագծին, ֆինանսավորում եք նոր առանձնահատկությունների զարգացումը և ստանում եք վերջին թարմացումները: Հիմնական առանձնահատկություններից մի քանիսը`" - "Նավիգացիան • Աշխատում է առցանց (արագ) կամ անցանց (չկա ռոումինգի վճարներ, արտերկրում) • Ձայնային ուղեկցումը առաջնորդում է Ձեզ ճանապարհով (ձայնագրված և սինթեզված(TTS) ձայն) • Ճանապարհային ուղեցույցը, փողոցների անունները և նախատեսված ժամանման ժամանակը • Աջակցում է երթուղու միջանկյալ կետերը ձեր երթուղու վրա • Երթուղին վերահաշվարկվում է եթե դուք շեղվում եք նրանից • Դուք կարող եք որոնել Ձեր նպատակակետը ըստ հասցեյի, ըստ տեսակի (օրինակ`Ավտոկանգառ, ռեստորան, հյուրանոց, բենզալցակայան, թանգարան) կամ ըստ աշխարհագրական կոորդինատների" + OsmAnd+ (OSM Automated Navigation Directions) +\n +\nOsmAnd+-ը բաց կոդով նավիգացիոն ծրագիր է, որը հնարավորություն է տալիս մուտք գործել համաշխարհային OpenStreetMap (OSM) տվյալների լայն շրջանակ: Բոլոր քարտեզները (վեկտորային կամ կղմինդր) և դրա հետ կապված տվյալները կարող են պահվել հեռախոսի հիշողության քարտում անցանց օգտագործման համար: +\n +\nOsmAnd+-ն առաջարկում է նաև անցանց և առցանց երթուղիների ֆունկցիոնալություն, այդ թվում`մանրամասն ձայնային ուղեցույց: OsmAnd+ - հավելվածի վճարովի տարբերակն է, ձեռք բերելով այն, աջակցեկցում եք նախագծին, ֆինանսավորում եք նոր առանձնահատկությունների զարգացումը և ստանում եք վերջին թարմացումները: +\n +\nՀիմնական առանձնահատկություններից մի քանիսը` +\n- Ամբողջությամբ անցանց ֆունկցիոնալությունը (պահեստավորվող վեկտոր կամ կղմինդր քարտեզներ սարքի հիշողութունում)։ +\n- Կոմպակտ անցանց քարտեզներ ամբողջ աշխարհի համար։ +\n- Երկրի կամ տարածաշրջանի քարտեզները անսահմանափակ ներբեռնում ուղղակիորեն հավելվածից։ +\n- Անցանց Վիքիպեդիա տվյալներ (ներբեռնել Վիքիպեդիա POIs), տեսարժան վայրերի համար։ +\n- Հնարավոր է մի քանի քարտեզի շերտերի կափարիչ, ինչպիսիք են GPX-ը կամ նավիգացիոն ուղիները(tracks), POI, «Սիրված»(Favorites),Եզրագծերը(Contour lines), հասարակական տրանսպորտի կանգառները, հարմարեցված թափանցիկությամբ լրացուցիչ քարտեզներ։ +\n +\n- Հասցեների և տեղերի (POIs) անցանց որոնում։ +\n- Ավտոմատ կերպով երթուղու հաշվարկ միջին հեռավորությունների համար։ +\n- Մեքենա, հեծանիվ և հետիոտն ռեժիմներ։ +\n- Ընտրովի՝ ցերեկային/գիշերային ռեժիմների ավտոմատացված դիտում։ +\n- Ընտրովի՝ արագություննից կախված քարտեզի ընդլայնում։ +\n- Ընտրովի՝ քարտեզի հավասարեցում, ըստ կողմնացույցի կամ շարժման ուղղության։ +\n- Ընտրովի՝ գծի ուղեցույց, արագության սահմանափակուման ցուցադռումը, արձանագրված և TTS ձայներ +\n + OsmAnd+(OSM Automated Navigation Directions) հանդիսանում է որպեսզ քարտեզ և նավիգացիոն հավելված ազատ մուտթով բարձրորակ OpenStreetMap(OSM) տվյալներին։ +\nՎայելեք ձայնային և օպտիկական նավիգատորի հնարավորությունները, դիտելով POIs, ստեղծեք և կառավարեք GPX track-րը, օգտագործելով եզրագծերի(contour lines) արտացոլման և բարձրությանների տեղեկատվություն (plugin-ի միջոցով), մեքենավարման, հեծանվավազքի, հետիոտների ռեժիմների միջև ընտրում, OSM խմբագրում և այլնի: +\n +\n OsmAnd+- հավելվածի վճարովի տարբերակն է, ձեռք բերելով այն, աջակցեկցում եք նախագծին, ֆինանսավորում եք նոր առանձնահատկությունների զարգացումը և ստանում եք վերջին թարմացումները: +\n +\nՀիմնական առանձնահատկություններից մի քանիսը` + Նավիգացիան +\n• Աշխատում է առցանց (արագ) կամ անցանց (չկա ռոումինգի վճարներ, արտերկրում) +\n• Ձայնային ուղեկցումը առաջնորդում է Ձեզ ճանապարհով (ձայնագրված և սինթեզված ձայն) +\n• Ճանապարհային ուղեցույցը, փողոցների անունները և նախատեսված ժամանման ժամանակը +\n• Աջակցում է երթուղու միջանկյալ կետերը ձեր երթուղու վրա +\n• Երթուղին վերահաշվարկվում է եթե դուք շեղվում եք նրանից +\n• Որոնեք ըստ հասցեյի, տեսակի (օրինակ`Րեստորան, հյուրանոց, բենզալցակայան, թանգարան) կամ ըստ աշխարհագրական կոորդինատների +\n "Ավելացնել մենյուի ցանկում հին որոնումը։" - "Վերագրանցել կլիպները(clips), երբ սահմանվաշ պահեստային ծավալը գերազանցում է։" - "Քարտեզի դիտում • Ցուցադրում է ձեր դիրքը և կողմնորոշումը • Կարգավորում է քարտեզը ըստ Ձեր շարժման ուղղությամբ • Պահպանում է ձեր ամենակարևոր տեղերը «Սիրված»-ում (Favorites) • Ցուցադրում է Ձեր շուրջը գտնվող POIs (հետաքրքրության կետ) • Ցուցադրում է մասնագիտացված օնլայն սալիկներ, արբանյակային դիտում (Bing-ից), տարբեր կափարիչներ, ինչպիսիք են շրջագայությունը/նավիգացիան GPX tracks և լրացուցիչ շերտերով`հարմարեցված թափանցիկությամբ • Թույլ է տալիս ընտրել, թե ինչպես ցուցադրել անունները քարտեզի վրա`անգլերեն, տեղական կամ հնչյունական ուղղագրությամբ" - "Հհարավորություն է տալիս օգտագործել OSM և Wikipedia տվյալները • Բարձրորակ տեղեկատվություն աշխարհի լավագույն համագործակցային նախագծերից • OSM տվյալներ ըստ երկրի կամ տարածաշրջանի • Վիքիպեդիա POIs, մեծ տեսարժան վայրեր դիտելու համար • Անսահմանափակ անվճար ներլցումներ, անմիջապես հավելվածից • Կոմպակտ անցանց վեկտորային քարտեզները թարմացվում են առնվազն ամիսը մեկ անգամ • Ընտրություն միջև ամբողջական տարածաշրջանային տվյալների և ճանապարհային ցանցի (օրինակ, ամբողջ Ճապոնիայն 700 ՄԲ կամ 200 ՄԲ միայն ճանապարհային ցանցի համար)" - Անվտանգության հատկություններ • Լրացուցիչ ավտոմատացված օրվա/գիշերային դիտման անցում • Լրացուցիչ արագության ցուցադրման ցուցադրություն, հիշեցում, եթե այն գերազանցում է • Արագության սահմանափակումների ցուցադռումը և զգուշացում այն գերազանցելու դեպկում • Փոխանակեք ձեր գտնվելու վայրը, որպեսզի ձեր ընկերները կարողանան գտնել ձեզ - "Հեծանվի և հետիոտն հատկություններ • Դիտեք ոտքով, արշավային և հեծանվային ուղիները • Հեծանվային և հետիոտնային հատուկ երթուղիների ցուցադրման ռեժիմներ • Հասարակական տրանսպորտի կանգառները (ավտոբուս, տրամվայ, գնացք), ներառյալ գծի անունները, օգնում են նավարկելու անծանոթ քաղաքում • Դուք կարող եք տեսնել ձեր արագությունը և բարձրությունը • Լրացուցիչ plugin-ի միջոցով կարող եք միացնել եզրագծերի(contour lines) և բլուր-ստվերում(hill-shading) ցուցադրումը" - "Ուղղակի նպաստել OSM-ին • Զեկուցել սխալների մասին • Վերբեռնել GPX track-եր OSM ուղղակիորեն հավելվածից • Ավելացրեք POIs և ուղղակիորեն վերբեռնել դրանք OSM-ում (կամ ավելի ուշ, եթե անցանց եք) • Ուղեւորության գրանցումը նաև ֆոնային ռեժիմում (սարքը գտնվում է քնի ռեժիմում)։ Osmand-ը ակտիվորեն զարգացող նախագիծ է`բաց կոդով: Յուրաքանչյուրը կարող է նպաստել նախագծին, հաղորդելով է սխալները, բարելավելով թարգմանությունները կամ նոր առանձնահատկություններ կոդավորման: Ծրագիրն անընդհատ կատարելագործման վիճակում է, մշակողների և օգտագործողների միջև բոլոր այդ ձևերի փոխհարաբերությունների շնորհիվ: Ծրագրի առաջընթացը նաև կախված է ֆինանսական գործառույթներից, նոր ֆունկցիաների գրելու և փորձարկելու համար․" - "Քարտեզի մոտավոր լուսաբանում և որակը. • Արևմտյան Եվրոպայում **** • Արևելյան Եվրոպա: *** • Ռուսաստան: *** • Հյուսիսային Ամերիկա: *** • Հարավային Ամերիկա: ** • ** • Ասիա, Ճապոնիա և Հարավային Կորեա: * ** • Մերձավոր Արեւելք։ ** • Աֆրիկա։ ** • Antarctica: * Շատ երկրներում հասանելի է ներբեռնման համար: Ստացեք մի հուսալի նավարկում ձեր երկրի համար, լինի դա Ֆրանսիան, Գերմանիան, Մեքսիկա, Միացյալ Թագավորություն, Իսպանիան, Նիդերլանդները, ԱՄՆ, Ռուսաստան, Բրազիլիա, կամ որեւէ այլ,… -\n" + Վերագրանցել կլիպները(clips), երբ սահմանվաշ պահեստային ծավալը գերազանցում է։ + Քարտեզի դիտում +\n• Ցուցադրում է ձեր դիրքը և կողմնորոշումը +\n• Կարգավորում է քարտեզը ըստ Ձեր շարժման ուղղությամբ +\n• Պահպանում է ձեր ամենակարևոր տեղերը «Սիրված»-ում (Favorites) +\n• Ցուցադրում է Ձեր շուրջը գտնվող POIs (հետաքրքրության կետ) +\n• Ցուցադրում է մասնագիտացված օնլայն սալիկներ, արբանյակային դիտում (Bing-ից), տարբեր կափարիչներ, ինչպիսիք են շրջագայությունը/նավիգացիան GPX tracks և լրացուցիչ շերտերով`հարմարեցված թափանցիկությամբ +\n• Թույլ է տալիս ընտրել, թե ինչպես ցուցադրել անունները քարտեզի վրա`անգլերեն, տեղական կամ հնչյունական ուղղագրությամբ +\n + Հհարավորություն է տալիս օգտագործել OSM և Wikipedia տվյալները +\n• Բարձրորակ տեղեկատվություն աշխարհի լավագույն համագործակցային նախագծերից +\n• OSM տվյալներ ըստ երկրի կամ տարածաշրջանի • Վիքիպեդիա POIs, մեծ տեսարժան վայրեր դիտելու համար +\n• Wikipedia POI- ներ, հիանալի տեսարժան վայրերի համար +\n• Անսահմանափակ անվճար ներլցումներ, անմիջապես հավելվածից +\n• Կոմպակտ անցանց վեկտորային քարտեզները թարմացվում են առնվազն ամիսը մեկ անգամ +\n +\n• Ընտրություն միջև ամբողջական տարածաշրջանային տվյալների և ճանապարհային ցանցի (օրինակ, ամբողջ Ճապոնիայն 700 ՄԲ կամ 200 ՄԲ միայն ճանապարհային ցանցի համար) + Անվտանգության հատկություններ +\n• Լրացուցիչ ավտոմատացված օրվա/գիշերային դիտման անցում +\n• Լրացուցիչ արագության ցուցադրման ցուցադրություն, հիշեցում, եթե այն գերազանցում է +\n• Արագության սահմանափակումների ցուցադռումը և զգուշացում այն գերազանցելու դեպկում +\n• Փոխանակեք ձեր գտնվելու վայրը, որպեսզի ձեր ընկերները կարողանան գտնել ձեզ +\n + Հեծանվի և հետիոտն հատկություններ +\n• Դիտեք ոտքով, արշավային և հեծանվային ուղիները +\n• Հեծանվային և հետիոտնային հատուկ երթուղիների ցուցադրման ռեժիմներ +\n• Հասարակական տրանսպորտի կանգառները (ավտոբուս, տրամվայ, գնացք), ներառյալ գծի անունները, օգնում են նավարկելու անծանոթ քաղաքում +\n• Ուղևորության ձայնագրում տեղական GPX ֆայլ կամ առցանց ծառայության +\n• Դուք կարող եք տեսնել ձեր արագությունը և բարձրությունը +\n• Լրացուցիչ plugin-ի միջոցով կարող եք միացնել եզրագծերի(contour lines) և բլուր-ստվերում(hill-shading) ցուցադրումը + Ուղղակի նպաստել OSM-ին +\n• Զեկուցել սխալների մասին +\n• Վերբեռնել GPX track-եր OSM ուղղակիորեն հավելվածից +\n• Ավելացրեք POIs և ուղղակիորեն վերբեռնել դրանք OSM-ում (կամ ավելի ուշ, եթե անցանց եք) +\n• Ուղեւորության գրանցումը նաև ֆոնային ռեժիմում (սարքը գտնվում է քնի ռեժիմում) +\nOsmand-ը ակտիվորեն զարգացող նախագիծ է`բաց կոդով: Յուրաքանչյուրը կարող է նպաստել նախագծին, հաղորդելով է սխալները, բարելավելով թարգմանությունները կամ նոր առանձնահատկություններ կոդավորման: Ծրագիրն անընդհատ կատարելագործման վիճակում է, մշակողների և օգտագործողների միջև բոլոր այդ ձևերի փոխհարաբերությունների շնորհիվ: Ծրագրի առաջընթացը նաև կախված է ֆինանսական գործառույթներից, նոր ֆունկցիաների գրելու և փորձարկելու համար: +\n + Քարտեզի մոտավոր լուսաբանում և որակը. +\n • Արևմտյան Եվրոպայում **** +\n• Արևելյան Եվրոպա: *** +\n• Ռուսաստան: *** +\n• Հյուսիսային Ամերիկա: *** +\n• Հարավային Ամերիկա: ** +\n• Ասիա** +\n• Ճապոնիա և Հարավային Կորեա: *** +\n• Մերձավոր Արեւելք։ ** +\n• Աֆրիկա։ ** +\n• Անտարկտիկա: * +\nՇատ երկրներում հասանելի է ներբեռնման համար: +\nՍտացեք մի հուսալի նավարկում ձեր երկրի համար, լինի դա Ֆրանսիան, Գերմանիան, Մեքսիկա, Միացյալ Թագավորություն, Իսպանիան, Նիդերլանդները, ԱՄՆ, Ռուսաստան, Բրազիլիա, կամ որեւէ այլ,… +\n Ստեղծել ֆիլտր POI համար Տրանսպորտի տեսակը՝ - Ընտրեք տրանսպորտի տեսակը + Ընտրեք տրանսպորտի տեսակը՝ Արևածագ՝ %1$s \nՄայրամուտ՝ %2$s Արևածագ/մայրամուտ @@ -1531,13 +1677,13 @@ Ցույց տալ արագաչափ տեսախցիկները Ցույց տալ արագության սահմանափակումը Խուսափել վճարովի ճանապարհներից - "Նախորդ երթուղին չի ավարտվել: Շարունակել հետևել այն? (%1$s վայրկյան)" + Նախորդ երթուղին չի ավարտվել: Շարունակել հետևել այն\? (%1$s վայրկյան) Երթուղին կվերահաշվարկվի դիրը որոշելուց հետո Ժամ Րոպեներ Ավտոմեքենան կայանված է - Ընտրեք երթուղու մոդելավորման արագությունը - "Հատկացված հիշողություն %1$s ՄԲ (Android սահմանափակում %2$s ՄԲ, Dalvik %3$s ՄԲ)։" + Ընտրեք երթուղու մոդելավորման արագությունը՝ + Հատկացված հիշողություն %1$s ՄԲ(Android սահմանափակում %2$s ՄԲ, Dalvik %3$s ՄԲ)։ Հատկացված է հիշողություն Ընդհանուր ֆիզիկական հիշողությունը Երթուղու սկիզբը շատ հեռու է մոտակա ճանապարհից: @@ -1546,7 +1692,7 @@ Զգուշացում Օրացույցին արդեն ավելացվել է հիշեցում սահմանափակ կայանատեղի վերաբերյալ: Ձեզ հարկավոր է լինելու ձեռքով հեռացնել այն: Սահմանեք առավելագույն ժամկետը կայանատեղի համար - "Ցանկանում եք ջնջել կայանատեղի նշանը?" + Ցանկանում եք ջնջել կայանատեղի նշանը\? Ջնջել կայանատեղի նշանը Ընտրեք կայանատեղի տեսակը Ժամանակային սահմանափակումով @@ -1568,10 +1714,11 @@ Հնարավորինս շուտ Կիսվել(ուղարկել) երթուղին GPX ֆայլի տեսքով Երթուղին տրամադրվել է OsmAnd-ի միջոցով - "Շրջանաձև երթևեկություն %1$d ելք" + Շրջանաձև երթևեկություն %1$d ելք Պահեք ձախ կողմում Պահեք աջ կողմում - "Ընդհանուր համակարգային հիշողությունն առանձնացված հավելվածին %1$s ՄԲ (Dalvik %2$s ՄԲ, other %3$s ՄԲ)։ Համամասնական հիշողություն %4$s ՄԲ (Android-ի սահմանափակումը %5$s ՄԲ, Dalvik %6$s ՄԲ)." + Ընդհանուր համակարգային հիշողությունն առանձնացված հավելվածին %1$s ՄԲ(Dalvik %2$s ՄԲ, other %3$s ՄԲ)։ +\nՀամամասնական հիշողություն %4$s ՄԲ(Android-ի սահմանափակումը %5$s ՄԲ, Dalvik %6$s ՄԲ)։ Ցուցադրել միայն պոլիգոնների սահմանները։ Պոլիգոններ Ցուցադրման ռեժիմ @@ -1583,24 +1730,24 @@ Routing-ի տվյալներ Ձևաչափ POI որոնումը - "Որոնում ըստ հասցեի" + Որոնում ըստ հասցեի Կոորդինատներ Հանրային տրանսպորտի որոնում Որոնում «Սիրված»-ում(Favorites) ըստ OsmAnd անցանց նավարկությունը ժամանակավորապես հասանելի չէ: Ձախակողմյան երթևեկություն Ընտրեք ձախակողմյան երթևեկող երկրների համար։ - "Սխմեք ցանկացած տարր,տեսնել ավելի մանրամասն տեղեկություններ տեսնելու համար, սխմեք և երկար պահեք`անջատելու կամ ջնջելու համար: Սարքի ընթացիկ տվյալները (%1$s ազատ է)՝" - Մեկնարկի դիքը դեռ որոշված չէ - Որոշում ենք գտնվելու վայրը + Սխմեք ցանկացած տարր,տեսնել ավելի մանրամասն տեղեկություններ տեսնելու համար, սխմեք և երկար պահեք`անջատելու կամ ջնջելու համար: Սարքի ընթացիկ տվյալները (%1$s ազատ է)՝ + Մեկնարկի դիքը դեռ որոշված չէ։ + Որոշում ենք գտնվելու վայրը։ Փոփոխել թափանցիկությունը (0 - թափանցիկ, 255 - անթափանցիկ) Ընդհատել ֆայլի ներբեռնումը? - "Շնորհակալություն OsmAnd-ի օգտագործման համար:Հավելվածըօգտագործելու համար պահանջվում են մանրամասն քարտեզներ, որոնք կարելի է ներբեռնել հետևյալ կերպ \"Կառավարում\" → \" Քարտեզների կառավարում\". Ներբեռնումից հետո Դուք կարող եք դիտել քարտեզներ, որոնել հասցեներ, POI և հասարակական տրանսպորտ։" - "Հիմնական քարտեզը անհրաժեշտ է հավելվածի ճիշտ աշխատանքի համար և ավտոմատ ընտրված է ներբեռնելու համար:" + Շնորհակալություն OsmAnd-ի օգտագործման համար: Հավելվածըօգտագործելու համար պահանջվում են մանրամասն քարտեզներ, որոնք կարելի է ներբեռնել հետևյալ կերպ \"Կառավարում\"→\"Քարտեզների կառավարում\"։ Ներբեռնումից հետո Դուք կարող եք դիտել քարտեզներ, որոնել հասցեներ, POI և հասարակական տրանսպորտ։ + Հիմնական քարտեզը անհրաժեշտ է հավելվածի ճիշտ աշխատանքի համար և ավտոմատ ընտրված է ներբեռնելու համար: Առցանց և քեշավորված քարտեզներ (tile maps) Ստանդարտ քարտեզներ (վեկտորային) - "Քարտեզների ֆայլերը ներբեռնում և կառավարում ձեր սարքում։" - "Միացրեք «Online maps» plugin-ը տարբեր քարտեզային աղբյուրներ ընտրելու համար" + Քարտեզների ֆայլերը ներբեռնում և կառավարում ձեր սարքում։ + Միացրեք «Online maps» plugin-ը տարբեր քարտեզային աղբյուրներ ընտրելու համար Առցանց քարտեզներ Օգտագործեք առցանց քարտեզներ (ներբեռնեք և քեշավորեք սալիկներ(tiles) SD քարտում)։ «Կարգավորումներ» առցանց քարտեզների և շերտերի(tile) աղբյուրների։ @@ -1608,10 +1755,10 @@ Plugins-ը ակտիվացնում է հավելվածի լրացուցիչ հնարավորությունները։ Պլագիններ Վեկտորային քարտեզները կարող են ավելի արագ ցուցադրվել: Բոլոր սարքերը չեն աջակցում: - Ընտրեք ձայնը և ստուգեք աշխատեցնելով հրահանգները + Ընտրեք ձայնը և ստուգեք աշխատեցնելով հրահանգները՝ Արագ մատուցում (ցուցադրում) Ձայնային հրահանգների ստուգում - "Ընթացիկ դիրքի համար քարտեզները բացակայում են։ Ներբեռնեք քարտեզներ օգտագործելով մենյուն «Կառավարում» → «Քարտեզների կառավարում» կամ միացրեք «Online maps» plugin-ը («Առցանց քարտեզներ»)." + Ընթացիկ դիրքի համար քարտեզները բացակայում են։ Ներբեռնեք քարտեզներ օգտագործելով մենյուն «Կառավարում»→«Քարտեզների կառավարում» կամ միացրեք «Online maps» plugin-ը («Առցանց քարտեզներ»). Ուղարկել GPX ֆայլերը OSM-ին? Տեսանելիություն Թեգեր(Tags) @@ -1659,14 +1806,14 @@ Ճշգրտություն Բարձրություն Տեղեկատվություն չկան - "Աշխարհայացքով (Sidewise) (8 հատված)" + Աշխարհայացքով (Sidewise) (8 հատված) ժամացույցի սլաքի ուղղությամբ (12 հատված) Ուղղության ոճը - "Ընտրեք հարաբերական ուղղությունները ոճը արտահայտելու համար շարժվելու ընթացքում։" + Ընտրեք հարաբերական ուղղությունները ոճը արտահայտելու համար շարժվելու ընթացքում Ավտոմատ հայտարարել Դադարեցնել ավտո հայտարարությունը Ես այստեղ եմ - "Փոխել քարտեզի սանդղակը trackball-ի հորիզոնական շարժումների հետ։" + Փոխել քարտեզի սանդղակը trackball-ի հորիզոնական շարժումների հետ։ Օգտագործել trackball-ը մասշտաբը փոխելու համար Մատչելիության հետ կապված «Կարգավուրումներ»։ Մի քիչ շուտ @@ -1690,11 +1837,11 @@ Անցանց(տեղում) պահպանված OSM POIs/Նշումները Ցույց տալ և կառավարել OSM POIs/Նշումները, որոնք տեղադրված են տեղական(սարի վհա) տվյալների բազայում։ Նշել առցանց դիտարկման ժամանակահատվածը։ - "Առցանց վերահսկողության ժամանակահատված" + Առցանց վերահսկողության ժամանակահատված Նշեք կայքի հասցեն`պարամետրերի շարադրանքով` lat={0}, lon ={1}, timestamp ={2}, hdop ={3}, բարձրությունը ={4}, արագ ={5}, bearing={6}։ Առցանց հսկողության վեբ կայքի հասցեն Ժամանակային բուֆեր առցանց դիտարկման համար - "Նշեք ժամանակի բուֆերը, դիրքերի պահպանման համար ցանցի բացակայության դեպքում" + Նշեք ժամանակի բուֆերը, դիրքերի պահպանման համար ցանցի բացակայության դեպքում Դուք կարող եք գրանցել track-ը օգտագործելով GPX վիջեթը կամ ընտրել «Ուղևորության գրանցում» «Կարգավորումներում»: Ցուցադրել ընթացիկ երթուղին Դուք կարող եք ներբեռնել կամ թարմացնել %1$s քարտեզներ։ @@ -1762,10 +1909,10 @@ POIs-ի որոնման համար տեղական տվյալները չգտնվեցին: Որոնել ըստ անվան POI-ի տվյալները «%1$s» հնացած են և կարող են ջնջվել: - "Թարմացվող POI-ների ֆայլը չի գտնվել և չի կարող ստեղծվել:" + Թարմացվող POI-ների ֆայլը չի գտնվել և չի կարող ստեղծվել: Թարմացնել մինչ OsmAnd+ Խնդրում ենք թարմացնել հավելվածը նոր աֆյլերը օգտագործելու համար: - "Nominatim (ըստ անվան)" + Nominatim (ըստ անվան) Դիրքի որոնում… Իմ դիրքը (որոշված է) Հասցե… @@ -1776,14 +1923,14 @@ Որոնել մոտակայքում Երթուղին պահպանվեց \'%1$s\'։ Ֆայլի անունը՝ - "Նման անվանումով Ֆայլը արդեն գոյություն ունի:" + Նման անվանումով Ֆայլը արդեն գոյություն ունի: Կիսվել GPX ֆայլերով OSM համայնքի հետ,քարտեզի բարելավման համար: %1$d из %2$d օբյեկտ(ներ) վերբեռնվեց: Ուղարկել OSM-ին Մանրամասն քարտեզ Ցույց տալ մանրամասները (ճանապարհներ և այլն), սկսած փոքր մասշտաբից։ «Սիրված» կետերը ջնջված են: - "Դուք մտադիր եք ջնջել %1$d «Սիրված(ներ)» և %2$d «Սիրված» խմբեր(ը): Համոզված եք?" + Դուք մտադիր եք ջնջել %1$d «Սիրված(ներ)» և %2$d «Սիրված» խմբեր(ը): Համոզված եք\? Տուն Ընկերներ Տեղեր @@ -1791,12 +1938,12 @@ Անուն Կատեգորիա Ոչ, շնորհակալություն - "Խնդրում ենք ներբեռնել World_basemap_x.obf քարտեզը հավելվածի լիարժեք աշխատանքի համար:" + Խնդրում ենք ներբեռնել World base map քարտեզը հավելվածի լիարժեք աշխատանքի համար: Տեղական(\'offline\') տվյալներ բացակայում են SD քարտի վրա: Խնդրում ենք ներբեռնել դրանք`հավելվածը առանց ինտերնետի օգտագործելու համար: Թողարկման ամսաթիվ Ներբեռնված է %1$d օբյեկտներից %2$d արխիվացվել է: - "%1$d օբյեկտներից %2$d ջնջված է:" + %1$d օբյեկտներից %2$d ջնջված է: %1$d օբյեկտներից %2$d ակտիվացված է: Չկա օբյեկտներ, որ %1$s Դուք պատրաստվում եք %1$s %2$s օբյեկտ(ներ): Համոզված եք? @@ -1813,18 +1960,18 @@ POI տյալներ TTS ձայն Նոր որոնում - Ընտրեք տեքստի տարրերի չափը քարտեզի վրա։ + Ընտրեք տեքստի տարրերի չափը քարտեզի վրա՝ Տեքստի չափսը Տրամադրել տեղեկություն խնդիրների վերաբերյալ Ցուցադրում մատուցման կատարողականը։ Բացվում են նոր տվյալները… - "Դուք պատրաստվում եք օգտագործել Ինտերնետ երթուղիները, սակայն ակտիվ ինտերնետ կապ չեք ունենում:" + Դուք պատրաստվում եք օգտագործել Ինտերնետ երթուղիները, սակայն ակտիվ ինտերնետ կապ չեք ունենում: Լեզուն չի աջակցվում - Ընտրված լեզուն չի աջակցվում ակտիվ Android TTS-ի կողմից( text-to-speech): Գտեք մեկ այլ TTS Google Play-ում\? Հակառակ դեպքում, կօգտագործվվի նախադրված TTS լեզուն: + Ընտրված լեզուն չի աջակցվում ակտիվ Android TTS-ի կողմից( text-to-speech): Գտեք մեկ այլ TTS Google Play-ում\? Հակառակ դեպքում, կօգտագործվվի նախադրված TTS լեզուն\? Տվյալները բացակայում են Տվյալ լեզվի համար TTS տվյալներ չկան: Ցանկանում եք ներբեռնել դրանք Google Play-ից? Ընտրել հակառակ ուղղությունը - "Օգտագործեք ընթացիկ նպատակակետը" + Օգտագործեք ընթացիկ նպատակակետը Անցնել ամբողջ երթուղին Այս դիրքի համար հասանելի են տեղական(offline) վեկտորային քարտեզները: \n\t @@ -1834,17 +1981,17 @@ Հեռախոսազանգի աուդիո (ընդհատում BT) Ծանուցման հոսքը Երաժշտության հոսքը - "Քարտեզի շերտը %1$s չի կարող ներբեռնված լինել հավելվածով, փորձեք կրկին տեղադրեք այն:" - "Փոխել overlay քարտեզի թափանցիկությունը։" + Քարտեզի շերտը %1$s չի կարող ներբեռնված լինել հավելվածով, փորձեք կրկին տեղադրեք այն: + Փոխել overlay քարտեզի թափանցիկությունը։ Ծածկույթի թափանցիկությունը Փոխել հիմնական քարտեզի թափանցիկությունը։ Հիմնական քարտեզը թափանցիկությունը Տակդիր քարտեզ… Տակդիր քարտեզ - Ընտրեք տակդիր շերտը հիմնական քարտեզի համար։ + Ընտրեք տակդիր շերտը հիմնական քարտեզի համար Կափարիչ քարտեզ… Կափարիչ քարտեզ - Ընտրեք կափարիչ շերտը հինական քարտեզի համար։ + Ընտրեք կափարիչ շերտը հինական քարտեզի համար Քարտեզը արդեն տեղադրված է, «Կարգավորումները» կթարմացվեն։ Ընտրեք քարտեզ տեղադրելու կամ թարմացնելու համար։ Այս գործողության համար անհրաժեշտ է ինտերնետ կապ։ @@ -1855,11 +2002,11 @@ Հնարավոր չէ կատարել անցանց(offline) որոնում: Որոնում ըստ աշխարհագրական դիրքի Համակարգային - "Այս plugin-ը հարստացնում է OsmAnd նավարկության հավելվածը ինչպես նաևւ ծովային քարտեզներով նավակների համար, ծովագնացության և այլ տեսակի ջրային շրջաններում + Այս plugin-ը հարստացնում է OsmAnd նավարկության հավելվածը ինչպես նաև ծովային քարտեզներով նավակների համար, ծովագնացության և այլ տեսակի ջրային շրջաններում: \n -\nOsmAnd-ի հատուկ քարտեզների add-on-ը կտրամադրի բոլոր ծովային նավագնացության նշանները և աղյուսակը, ներքին, ինչպես նաև մոտակա նավարկության համար: Յուրաքանչյուր նավագնացության նշանի նկարագրությունը ապահովում է նրանց և դրանց իմաստը հայտնաբերելու համար անհրաժեշտ մանրամասները(կատեգորիա, ձև, գույն, հաջորդականություն, հղում և այլն): +\nOsmAnd-ի հատուկ քարտեզների add-on-ը կտրամադրի բոլոր ծովային նավագնացության նշանները և աղյուսակը, ներքին, ինչպես նաև մոտակա նավարկության համար: Յուրաքանչյուր նավագնացության նշանի նկարագրությունը ապահովում է նրանց և դրանց իմաստը հայտնաբերելու համար անհրաժեշտ մանրամասները(կատեգորիա, ձև, գույն, հաջորդականություն, հղում և այլն): \n -\nOsmAnd-ի ավանդական քարտեզի ոճերից մեկին վերադառնալու համար պարզապես կամ ապաակտիվացրեք այս հավելվածը կամ ըստ ցանկության փոխեք «Քարտեզի ոճը» «Քարտեզի կարգավորում» մենույում:" +\nOsmAnd-ի ավանդական քարտեզի ոճերից մեկին վերադառնալու համար պարզապես կամ ապաակտիվացրեք այս հավելվածը կամ ըստ ցանկության փոխեք «Քարտեզի ոճը» «Քարտեզի կարգավորում» մենույում: Ընտրել ծրագրի լեզուն (ուժի մեջ է մտնում OsmAnd-ի վերագործարկից հետո)։ Տեղայնացումը (լեզուն) թերի @@ -1916,9 +2063,9 @@ Ռաստրային(tiles) քարտեզները օգտագործում… Տեղական(offline) քարտեզի «{0}» համար հիշողությունը բավարար չէ Տեղական քարտեզի(offline) տարբերակը «{0}» չի աջակցվում - "OsmAnd-ի offline նավարկությունը փորձարարական է և չի աշխատում ավելի քան 20 կիլոմետր հեռավորության վրա: -\n -\nԱյս դեպքում ժամանակավորապես կօգտագործվի CloudMade առցանց ծառայությունը երթուղին հաշվարկելու համար:" + OsmAnd-ի offline նավարկությունը փորձարարական է և չի աշխատում ավելի քան 20 կիլոմետր հեռավորության վրա: +\n +\nԱյս դեպքում ժամանակավորապես կօգտագործվի CloudMade առցանց ծառայությունը երթուղին հաշվարկելու համար: Նշված գրացուցակը(folder) հնարավոր չէ գտնել: Հին տեղադրված հավելվածում բոլոր անցանց(offline) տվյալները աջակցվում են հավելվածի նոր տարբերակում,այնուամենայնիվ «Սիրված»(Favorite) կետերը պետք է բեռնաթափվեն հավելվածի նախորդ տարբերակից և բեռնվեն նորի մեջ: Հավաքացուն {0} տեղադրված ({1}): @@ -1946,18 +2093,18 @@ Ընտրված քարտեզը չի կարող ներբեռնված լինել Շարունակական rendering Ընտրեք քարտեզի ցուցադրուման ձևը։ - Քարտեզը ցուցադրելու ժամանակ անսպասելի սխալ տեղի ունեցավ + Քարտեզը ցուցադրելու ժամանակ անսպասելի սխալ տեղի ունեցավ։ Համատեքստային մենյու… Ոճը ներբեռնված է - Այս ոճը տեղադրելու ընթացքում սխալ տեղի ունեցավ + Այս ոճը տեղադրելու ընթացքում սխալ տեղի ունեցավ։ Վեկտորային քարտեզի մատուցման ոճ - Ընտրեք քարտեզի ցուցադրելու ոճը։ + Ընտրեք քարտեզի ցուցադրելու ոճը Դիտել POI կայքը Ցույց տալ POI հեռախոսը ֆիլտր HD Էկրան Հասարակական տրանսպորտի որոնում - "Տրանսպորտային որոնման արդյունքը (նպատակակետ չկա):" + Տրանսպորտային որոնման արդյունքը (նպատակակետ չկա): Տրանսպորտային որոնման արդյունքը (մինչ նպատակակետ {0})՝ Տրանսպորտի որոնում նորից Ձայնային տվյալները (ձայնագրություն) @@ -1965,21 +2112,21 @@ Վեկտորային(offline) քարտեզները ներբեռնված չեն հավելվածի մեջ GPX ֆայլերը չեն գտնվել թղթապանակում GPX ֆայլեր… - GPX տվյալների ընթերցման սխալ + GPX տվյալների ընթերցման սխալ։ Տեղական վեկտորային(Offline) քարտեզներ Տրանսպորտի որոնում կանգառում Խմբագրել POI Ջնջել POI Կողմնացույցի ուղղությամբ Շարժման ուղղությամբ - "Չպտտել (հյուսիսը վերեվում)" - Ընտրեք քարտեզի պտտման ձևը։ + Չպտտել (հյուսիսը վերեվում) + Ընտրեք քարտեզի պտտման ձևը՝ Քարտեզի կողմնորոշումը Ցույց տալ երթուղին «Սիրվածները» ներմուծվել են «Սիրված» կետեր չկան պահպանելու համար «Սիրված» կետերը կիսեցին(ուղարկված) OsmAnd-ի միջոցով - Հնարավոր չէ բեռնել GPX + Հնարավոր չէ բեռնել GPX։ Ուղարկել զեկույց Մուտքագրեք հարցում POI որոնման համար Ցանկացած @@ -1996,7 +2143,7 @@ Պահպանել տվյալները որպես GPX ֆայլ թե պահպանել որպես «Սիրված» կետեր? GPX ֆայլ չի գտնվել, որը պարունակում է «Սիրված» կետեր {0} մեջ «Սիրված» կետերը պահպանվեցին {0} մեջ - "Տեղական վեկտորային(offline) քարտեզներ չեն գտնվել: Ներբեռնեք դրանք Ինտերնետից:" + Տեղական վեկտորային(offline) քարտեզներ չեն գտնվել: Ներբեռնեք դրանք Ինտերնետից: Ընտրեք առավելագույն ժամանակը դիրքի որոնման համար։ Սպասման ժամանակը Որտեղ եմ ես? @@ -2005,8 +2152,8 @@ GPS վայրկյան րոպ․ - Ընտրեք արթնացման ժամանակի ընդմիջումը ֆոնային ծառայության համար։ - Ֆոնային ծառայության համար ընտրել դիրքորոշման աղբյուր։ + Ընտրեք արթնացման ժամանակի ընդմիջումը ֆոնային ծառայության համար՝ + Ֆոնային ծառայության համար ընտրել դիրքորոշման աղբյուր՝ Դիրքորոշման աղբյուր Հետևում է ձեր գտնվելու վայրը, երբ էկրանը անջատված է: Միացնում է OsmAnd-ը ֆոնին ռեժիմում @@ -2043,7 +2190,7 @@ Ազդանշանի որոնում… Որոնել ընթացիկ քարտեզի կենտրոնի շուրջ Որոնել մոտակայքում - Ժամանակի ձևաչափը խմբագրման ենթակա չէ + Ժամանակի ձևաչափը խմբագրման ենթակա չէ։ Ավելացնել նոր կանոն Երթուղիներ Կանգառ @@ -2061,14 +2208,14 @@ Ցույց տալ տրանսպորտի կանգառները Նավիգացիոն հավելված OsmAnd POI-ի տվյալները թարմացվեցին ({0} բեռնված էին) - Չհաջողվեց թարմացնել տեղական POI ցուցակը + Չհաջողվեց թարմացնել տեղական POI ցուցակը։ Այս տարածքի համար POI տվյալներ չկան POI թարմացումը հասանելի չէ փոքր մասշտաբների համար Թարմացնել POI-ը Թարմացնել տեղական տվյալները ինտերնետի միջոցով? Քաղաք՝ {0} Փողոց՝ {0}, {1} - "Խաչմերուկ՝ {0} x {1} {2}-ում" + Խաչմերուկ՝ {0} x {1} {2}-ում Շենք՝ {0}, {1}, {2} Սիրված Տվյալների վերբեռնում… @@ -2110,12 +2257,12 @@ Բեռնվում են փողոցները… Բեռնվում են քաղաքները… POI - Չհաջողվեց պահպանել GPX ֆայլը - Հնարավոր չէ հաշվարկել երթուղին - Հնարավոր չէ հաշվարկել երթուղին - Հնարավոր չէ երթուղին հաշվարկել + Չհաջողվեց պահպանել GPX ֆայլը։ + Հնարավոր չէ հաշվարկել երթուղին։ + Հնարավոր չէ հաշվարկել երթուղին։ + Հնարավոր չէ երթուղին հաշվարկել։ Նոր երթուղի հաշվարկվեց, հեռավորությունը - Դուք ժամանել են ձեր նշանակման վայրը + Դուք ժամանել եք։ Սխալ կոորդինատներ Վերադառնալ OsmAnd քարտեզին Տվյալների բեռնում… @@ -2216,7 +2363,7 @@ Անջատիչի ձայնը Ընտրեք, արդյոք, լուսանկարելիս նվագել անջատիչի ձայնը: Լուսանկարի չափը - Ընտրեք ներքին տեսախցիկի պատկերի չափը: + Ընտրեք տեսախցիկի և պատկերի չափը Սխալ ձևաչափ՝ %s Անհրաժեշտ է ինտերնետ կապ այս plugin-ը տեղադրելու համար: Ստանալ @@ -2275,9 +2422,9 @@ Ամբողջական տարբերակը Ներբեռնումներ Ճանապարհային քարտեզի կարիք չկա, դուք արդեն ունեք ստանդարտ (ամբողջական) քարտեզ, ներբեռնել ճանապարհային քարտեզը\? - "%1$.1f %2$.1f ՄԲ" + %1$.1f %2$.1f ՄԲ %.1f ՄԲ - "Թարմացնել բոլորը (%1$s ՄԲ)" + Թարմացնել բոլորը (%1$s ՄԲ) Օգտագործված է անվճար ներբեռնումներ Ցույց տալ օգտագործված անվճար ներբեռնումները։ Ընտրեք որտեղ եք ցանկանում պահել քարտեզների ֆայլերը և այլ տվյալներ: @@ -2320,7 +2467,7 @@ Շաբաթական Առավոտ Գիշեր - Ընտրեք ամիսը և երկիրը + Ընտրեք ամիսը և երկիրը՝ Ներդրողների թիվը Խմբագրումների քանակը Հաշվետվություն @@ -2335,7 +2482,7 @@ Ձայնագրել նոր աուդիո նշում Ձայնագրել նոր վիդեո նշում Անել նոր լուսանկար-նշում - "Ավելացնել OSM Նշում" + Ավելացնել OSM Նշում Ձայնը on/off Միացնել ձայնը Անջատել ձայնը @@ -2362,16 +2509,16 @@ Տեղ Արագ գործողության համար նշված անունն արդեն օգտագործված է: Կպահպանվի որպես %1$s, կրկնօրինակումը կանխելու համար: Կրկնօրինակ անուն գտնվեց - "Սեղմելով գործողության կոճակը ցույց կտա կամ կթաքցնի «Սիրված» կետերը քարտեզի վրա:" - "Սեղմելով գործողության կոճակը ցույց կտա կամ կթաքցնի POI կետերը քարտեզի վրա:" + Սեղմելով գործողության կոճակը ցույց կտա կամ կթաքցնի «Սիրված» կետերը քարտեզի վրա: + Սեղմելով գործողության կոճակը ցույց կտա կամ կթաքցնի POI կետերը քարտեզի վրա: Ցուցադրել/թաքցնել «Սիրված»-ը Ցուցադրել «Սիրված»-ը Թաքցնել «Սիրված»-ը - "Ցուցադրել/թաքցնել POI" + Ցուցադրել/թաքցնել POI Ցուցադրել %1$s Թաքցնել %1$s Ավելացնել կատեգորիա - "Ստեղծել գործողություններ" + Ստեղծել գործողություններ Կարգավորել քարտեզը Նավիգացիա Թողնել դատարկ, որ օգտագործել հասցե կամ վայրի անվանումը. @@ -2435,7 +2582,7 @@ Ցուցադրել թվային վահանակը Նշել անցած Ստեղծեք կամ փոփոխել OSM օբյեկտները - Ստեղծեք կամ փոփոխեք OSM POI-րը, բացեք կամ մեկնաբանեք OSM-ի նշումները և ուղարկեք գրանցված GPX ֆայլեր: + Ստեղծեք կամ փոփոխեք OSM POI, բացեք կամ մեկնաբանեք OSM նշումները և ուղարկեք գրանցված GPX ֆայլեր: Ջնջված է Խմբագրվեց Ավելացված է @@ -2466,12 +2613,11 @@ \n \n \n - Փոխել որոնման հարցումը: + Փոխեք որոնման հարցումը: Գործողություններ Մարկեր Մարկեր %s ակտիվացված է: - "Քարտեզի վրա մարկերի նշումը, տեղափոխելու է այն առաջին տեղը ակտիվ մարկերների ցուցակում, -\nառանց կոնտեքստային մենյուն բացելու։" + Քարտեզի վրա մարկերի նշումը, տեղափոխելու է այն առաջին տեղը ակտիվ մարկերների ցուցակում, առանց կոնտեքստային մենյուն բացելու։ Մեկ սեղմումով ակտիվացում Նշումներ կատարեք: Տեղադրեք աուդիո, վիդեո կամ ֆոտո գրառումներ քարտեզի ցանկացած կետի վրա, օգտագործելով վիջեթ կամ համատեքստային մենյու: @@ -2482,22 +2628,22 @@ Ցուցադրել ուղեցույցները ձեր գտնվելու վայրից մինչև ակտիվ մարկերներ: Ցուցադրել մեկ կամ երկու նետ, նշելով ակտիվ մարկերների ուղղությունը: Ընտրեք, թե ինչպես ցուցադրեք հեռավորությունը մինչև ակտիվ մարկերներին: - Ընտրեք, թե որքան \"ուղղության ցուցիչներ\" ցույց տալ: + Ընտրեք \"ուղղության ցուցիչներ\" քանակը: Սեղմելով քարտեզի վրա փոխարինում են հսկողության կոճակները եւ վիջեթները: Ամբողջ էկրանով ռեժիմ - "Խմբագրումները կազմում են %1$s, գումարը %2$s mBTC" - "OsmAnd-ի այս հավելվածը տրքմքդրում է մանրամասները գլոբալ ցածր լեռնադահուկային լանջերի, խաչաձեւ լեռնադահուկային լեռնանցքի, ալպիական լեռնադահուկային երթուղիների, ճոպանուղիների և լեռնադահուկային վերելակների մանրամասների մասին: -\n -\nԱյս տեսակը ակտիվացնելու դեպքում, քարտեզի ոճը փոխվում է «Ձմեռային եւ լեռնադահուկային սպորտին», ցույց տալով լանդշաֆտի բոլոր մանրամասները `ձմռանը նայելու ձևով: Այս (ձմեռային) տեսքը կարող է չեղյալ համարվել , այստեղ կրկին անջատելով այն, կամ եթե փոխեք «Քարտի ոճը» ցանկալի տեսք, «Քարտեզների կարգավորումը» ցանկում:" + Խմբագրումները կազմում են %1$s, գումարը %2$s mBTC + OsmAnd-ի այս հավելվածը տրքմքդրում է մանրամասները գլոբալ ցածր լեռնադահուկային լանջերի, խաչաձեւ լեռնադահուկային լեռնանցքի, ալպիական լեռնադահուկային երթուղիների, ճոպանուղիների և լեռնադահուկային վերելակների մանրամասների մասին: +\n +\nԱյս տեսակը ակտիվացնելու դեպքում, քարտեզի ոճը փոխվում է «Ձմեռային եւ լեռնադահուկային սպորտին», ցույց տալով լանդշաֆտի բոլոր մանրամասները`ձմռանը նայելու ձևով: Այս (ձմեռային) տեսքը կարող է չեղյալ համարվել , այստեղ կրկին անջատելով այն, կամ եթե փոխեք «Քարտի ոճը» ցանկալի տեսք, «Քարտեզների կարգավորումը» ցանկում: Մասշտաբով {0} ներբեռնել {1} սալիկներ ({2} ՄԲ) - "Չձգել պատկերացանցային(ռաստրային) քարտեզները բարձրորակ էկրանների վրա:" + Չձգել պատկերացանցային(ռաստրային) քարտեզները բարձրորակ էկրանների վրա: Կատարեք շրջադարձ(U-turn) և շարժվեք Ըստ սարքի Դիմանկարի ձև (Portrait) Լանդշաֆտ (Landscape) Էկրանի կողմնորոշումը (Screen orientation) Ընտրեք էկրանի կողմնորոշումը (Portrait, landscape, or device): - Հնարավոր չէ բեռնել տվյալների սերվերից + Հնարավոր չէ բեռնել տվյալների սերվերից։ Նշեք առավելագույն մաշտաբը առցանց քարտեզի սալիկները ներբեռնելու համար: Սալիկային(ռաստրային) քարտեզների աղբյուրը Կարգավորում(Setup) նավարկության: @@ -2507,22 +2653,22 @@ Ավելացնել կետեր երթուղուն OSM ստացողներ Ընդհանուր նվիրատվությունները - "GPX - JOSM կամ այլ OSM խմբագրիչների արտահանման համար:" - "OSC - OpenStreetMap արտահանման համար:" + GPX - JOSM կամ այլ OSM խմբագրիչների արտահանման համար: + OSC - OpenStreetMap արտահանման համար: GPX ֆայլ OSC ֆայլ Ընտրեք ֆայլի տեսակը - Ընտրեք արտահանման տեսակը`OSM նշումներ, POI կամ երկուսն էլ: + Արտահանել որպես`OSM նշումներ, POI կամ երկուսն էլ: Բոլոր տվյալները OSM նշումներ - "Վաղը կբացվի " + Վաղը կբացվի POI պիտակներ Առանց անունի Ցույց տալ փակած նշումները Ցույց տալ/թաքցնել OSM նշումները քարտեզի վրա: - "Lao " + Լաոտեան Ոչ աշխ․ օր - "Ձմեռային / լեռնադահուկային " + Ձմեռային և լեռնադահուկային Զբոսաշրջական տեսք Ծովային Պատճենահանել կետի անվանումը / POI @@ -2540,8 +2686,8 @@ Սկսել խմբագրելը Ստանալ անսահմանափակ մուտք Բարի գալուստ բաց բետա տարբերակ - Քարտեզի թարմացումներ`ամսական - Քարտեզի թարմացումները`ամեն ժամ m + Քարտեզների թարմացումներ`ամսական + Քարտեզների թարմացումները`ամեն ժամ Գնում հավելվածում Մեկանգամյա վճարում Մի անգամ գնելուց հետո այն մշտապես մատչելի կլինի ձեզ համար: @@ -2553,14 +2699,14 @@ Ընտրեք Փաթեթ Թաքցնել ամբողջական նկարագրությունը Ցույց տալ ամբողջական նկարագրությունը - Հարմար է օգտագործել անանցանելի ճանապարհներին երթեւեկության ժամանակ: Հարմար է կանաչ արբանյակային պատկերներով օգտագործելու համար, որպես քարտի հիմքը: Հիմնական առանձնահատկությունները`նվազեցված հիմնական ճանապարհների հաստությունը, ավալացված հաստությունը արահետների, ուղիներ, հեծանիվային և այլ երթուղիների: Այն հիմնված է «Տոպո» ոճովի վրա: - Ծովային նավարկության ոճը։ Հիմնական առանձնահատկությունները ` փարոսներ, գետի երթուղիները, ծովային երթուղիները և նշանները, նավահանգիստները, ծովային նավերի ծառայությունները, խորքային ուրվագիծը: - Դահուկային ոճ: Հիմնական առանձնահատկություններ. ցուցադրում - երթուղիների, լեռնադահուկային վերելակների և այլ լեռնադահուկային առանձնահատկություններ: Ավելի քիչ շեղող երկրորդային օբյեկտներ: - Պարզ և հակապատկեր ոճը ավտոմեքենաների նավարկության համար: Աչքերի համար հարմար է գիշերային ռեժիմում: Հիմնական առանձնահատկությունները. Եզրագծերը, հակապատկեր նարնջագույն ճանապարհներ, ավելի քիչ շեղող երկրորդային օբյեկտներ: - "Հակապատկեր ոճը, որը նախատեսված է հիմնականում արշավային զբոսանքի, հետիոտն և հեծանվային զբոսանքի համար. Լավ ընթեռնելիություն բարդ արտաքին լուսավորման ժամանակ. Հիմնական առանձնահատկությունները. հակապատկեր ճանապարհներ և բնական օբյեկտներ, տարբեր տեսակի երթուղիներ, ուրվագծային գծի առաջադեմ պարամետրերով, ավելի մանրամասն տեղեկատվություններ ներկայացված են համապատասխան մակարդակների չափման, քան հիմնական ոճում. Ճանապարհային որակի ծածկույթը տարբերակը թույլ է տալիս տարբերակել ճանապարհի տարբեր որակի մակերեսին. Չկան գիշերային ռեժիմ." - Հին ցուցադրման ոճը «Mapnik» է: Հիմնական առանձնահատկությունները` Գույները նման են «Mapnik» ոճին: - "Բարձր մանրամասն ոճ շրջագայության համար: Ներառում է կանխադրված ոճի բոլոր կազմաձևային տարբերակները, բացի այդ, ցուցադրվում է որքան հնարավոր է մանրամասն, մասնավորապես, բոլոր ճանապարհները, ճանապարհները և ճանապարհորդելու այլ ուղիներ: Հստակ տեսողական տարբերություն բոլոր տեսակների ճանապարհների միջև, բազմաթիվ զբոսաշրջային ատլասների հիշեցում: Արտաքին օգտագործման, ցերեկային և գիշերային ռեժիմի բարձր հակադրություն գունային սխեման:" - Ընդհանուր ոճ: Խիտ բնակեցված քաղաքներում պարզեցված ռենդերինգ: Հիմնական առանձնահատկություններ՝ Եզրագծային գծեր, երթուղիներ, ճանապարհերի մակերեսային որակնը, մուտքի սահմանափակումներ, ճանապարհային նշաններ, SAC սանդղակի երթուղիների արտացոլում, սպորտային համաձուլվածքների բնութագրեր: + Օգտագործել անանցանելի ճանապարհներին երթեւեկության ժամանակ: Հարմար է արբանյակային պատկերներով օգտագործելու համար, որպես քարտի հիմքը: Հիմնական առանձնահատկությունները`նվազեցված հիմնական ճանապարհների հաստությունը, ավալացված հաստությունը արահետների, ուղիներ, հեծանիվային և այլ երթուղիների: Այն հիմնված է «Տոպո» ոճովի վրա: + Ծովային նավարկության համար։ Հիմնական առանձնահատկությունները `փարոսներ, գետի երթուղիները, ծովային երթուղիները և նշանները, նավահանգիստները, ծովային նավերի ծառայությունները, խորքային ուրվագիծը: + Դահուկային ոճ: Ցուցադրում է - երթուղիների, լեռնադահուկային վերելակների և այլ լեռնադահուկային առանձնահատկություններ: Ավելի քիչ շեղող երկրորդային օբյեկտներ: + Պարզ ոճը ավտոմեքենաների նավարկության համար: Աչքերի համար հարմար է գիշերային ռեժիմում: Հիմնական առանձնահատկությունները. Եզրագծերը, հակապատկեր նարնջագույն ճանապարհներ, ավելի քիչ շեղող երկրորդային օբյեկտներ: + Հակապատկեր ոճը, որը նախատեսված է հիմնականում արշավային զբոսանքի, հետիոտն և հեծանվային զբոսանքի համար։ Լավ ընթեռնելիություն բարդ արտաքին լուսավորման ժամանակ։ Հիմնական առանձնահատկությունները: Հակապատկեր ճանապարհներ և բնական օբյեկտներ, տարբեր տեսակի երթուղիներ, ուրվագծային գծի առաջադեմ պարամետրերով, ավելի մանրամասն տեղեկատվություններ ներկայացված են համապատասխան մակարդակների չափման, քան հիմնական ոճում։ Ճանապարհային որակի ծածկույթը տարբերակը թույլ է տալիս տարբերակել ճանապարհի տարբեր որակի մակերեսին։ Չկան գիշերային ռեժիմ։ + Հին ցուցադրման ոճը «Mapnik» է: Գույները նման են «Mapnik» ոճին: + Բարձր մանրամասն ոճ շրջագայության համար: Ներառում է կանխադրված ոճի բոլոր կազմաձևային տարբերակները, բացի այդ, ցուցադրվում է որքան հնարավոր է մանրամասն, մասնավորապես, բոլոր ճանապարհները, ճանապարհները և ճանապարհորդելու այլ ուղիներ: Հստակ տեսողական տարբերություն բոլոր տեսակների ճանապարհների միջև, բազմաթիվ զբոսաշրջային ատլասների հիշեցում: Արտաքին օգտագործման, ցերեկային և գիշերային ռեժիմի բարձր հակադրություն գունային սխեման: + Ընդհանուր ոճ: Խիտ բնակեցված քաղաքներում պարզեցված ռենդերինգ: Եզրագծային գծեր, երթուղիներ, ճանապարհերի մակերեսային որակնը, մուտքի սահմանափակումներ, ճանապարհային նշաններ, SAC սանդղակի երթուղիների արտացոլում, սպորտային համաձուլվածքների բնութագրեր: Բացել Wikipedia հղումը առցանց Հղումը կբացվի վեբ բրաուզերում: Էջանշան @@ -2571,7 +2717,7 @@ Ցուցադրել նկարները Դուք չեղյալ եք հայտարարել ձեր OsmAnd Live բաժանորդագրությունը Վերսկսել բաժանորդագրությունը, որպեսզի շարունակել օգտագործել բոլոր հնարավորությունները՝ - Դուք կարող եք խմբագրեք Wikivoyage-ի ցանկացած հոդված։ Կիսվել գիտելիքներով, փորձով, տաղանդով, և Ձեր ուշադրությունը + Դուք կարող եք խմբագրեք Wikivoyage-ի ցանկացած հոդված։ Կիսվել գիտելիքներով, փորձով, տաղանդով, և Ձեր ուշադրությունը: Ճանապարհորդական ուղեցույցներ Ներբեռնել նկարներ Վիկիուղեցույց / Wikivoyage @@ -2583,12 +2729,12 @@ Ներբեռնեք Wikivoyage-ի ուղևորության ուղեցույցները` աշխարհի նշանավոր տեղերի մասին հոդվածներ դիտելու համար առանց ինտերնետի: Աշխարհի ուղեցույց, որը կարող է խմբագրել ցանկացած մեկը: Ուղեւորության ուղեցույցները ներկայումս հիմնված են Wikivoyage-ի վրա: Փորձեք անվճար բոլոր հնարավորությունները բետա տեստավորման ժամանակ: Հետագայում ուղեցույցը հասանելի կլինի OsmAnd Unlimited-ի և OsmAnd+ սեփականատերերի համար։ - "Տեսեք ուղեցույցները, OsmAnd-ում աշխարհի ամենահետաքրքիր վայրերը, առանց ինտերնետին միանալու:" + Տեսեք ուղեցույցները, OsmAnd-ում աշխարհի ամենահետաքրքիր վայրերը, առանց ինտերնետին միանալու: Գնեք հետեւյալներից մեկը, որպեսզի ստանաք ճանապարհորդական հոդվածները անցանց՝ - Ընտրեք համապատասխան կետը՝ + Ընտրեք համապատասխան կետը Ոչ Կատարել - "Միայն Wi-Fi " + Միայն Wi-Fi Ներբեռնել նկարներ Պատկերները հոդվածներից կարող են ներբեռնվել անցանց օգտագործման համար: \nԴուք միշտ կարող եք փոխել կարգավորումներում «Հետազոտել» → «Պարամետրեր»: @@ -2612,8 +2758,8 @@ Մաքրել բոլոր միջանկյալ կետերը Խումբը ջնջվել է Սպորտային համաձուլվածքներ - Հեռավորությունը`սկզբում հեռավորը - Հեռավորություն՝ սկզբում մոտակա + Սկզբում հեռավորը + Սկզբում մոտակա Մուտքագրեք երկայնությունը Մուտքագրեք լայնությունը Մուտքագրեք լայնությունը և երկայնությունը @@ -2633,11 +2779,11 @@ Սխալ քարտեզի ներմուծման ժամանակ Քարտեզը ներմուծված է Դարձրեք մեկնարկման կետ - "Ընթացիկ " + Ընթացիկ Ավելացնում է միջանկյալ կանգար Ավելացնում է առաջին կանգար Տեղափոխեք նպատակակետը և ստեղծել այն - "Wikivoyage Ուղեցույցի հոդվածներ" + Wikivoyage Ուղեցույցի հոդվածներ Ներբեռնեք Վիքիպեդիայի հոդվածները %1$s համար որպեսզի կարդալ դրանք անցանց: Ներբեռնել Wikipedia տվյալները Բացել հոդվածը առցանց @@ -2650,9 +2796,9 @@ Խմբագրել մարկերը Երրորդ կողմի հավելված Որոնել փողոց - Նախ ընտրեք քաղաքը + Նախ ընտրեք քաղաքը/տեղանքը Վերականգնել - "Մարկերները, որոնք ավելացված են որպես «Սիրված» խումբ կամ GPX կետեր և նշված են որպես անցած կետեր կմնամ քարտեզի վրա։ Եթե խումբը ակտիվ ճէ ապա կետերը կհեռացվեն քարտեզից։" + Մարկերները, որոնք ավելացված են որպես «Սիրված» խումբ կամ GPX կետեր և նշված են որպես անցած կետեր կմնամ քարտեզի վրա։ Եթե խումբը ակտիվ ճէ ապա կետերը կհեռացվեն քարտեզից։ Պահպանեք մարկերները քարտեզի վրա Այս կանգառում ավելի շատ տրանսպորտային միջոցներ կա: Շարունակելու համար OsmAnd-ին թույլտվություն տրամադրեք վայրը որոշելու հնարավորություն: @@ -2680,9 +2826,10 @@ \n \n " Ճանապարհի ուղղում… - Ավելացնել որոնման շառավիղը %1$s - Մենք կուղարկենք ձեր որոնման հարցումը՝ \"%1$s\", ինչպես նաև ձեր գտնվելու վայրը։ \n - \n" Մենք չենք հավաքում անձնական տեղեկություններ, որոնման տվյալները օգտագործվում են միայն, որոնման ալգորիթմը բարելավելու համար:" + Ավելացնել որոնման շառավիղը մինև %1$s + Մենք կուղարկենք ձեր որոնման հարցումը՝ \"%1$s\", ինչպես նաև ձեր գտնվելու վայրը։ +\n +\n Մենք չենք հավաքում անձնական տեղեկություններ, որոնման տվյալները օգտագործվում են միայն, որոնմանը բարելավելու համար: Ուղարկեք որոնման հարցումը\? Աշխարհ Կետը %1$s հեռացված է @@ -2692,7 +2839,7 @@ Դուք ավելացրեցիք կետեր - %1$s։ Մուտքագրեք ֆայլի անունը և սղմեք «Պահպանել»։ Խնդրում ենք ուղարկել այս սխալի ծանուցումը support@osmand.net Խմբագրել գործողությունը - "Ձեռք բերեք OsmAnd Live, որպեսզի կարողանաք օգտվել բոլոր հնարավորություններից՝ քարտեզների օրական թարմացում անսահմանափակ ներբեռնում, բոլոր plugin-րը Wikipedia, Wikivoyage և շատ ավելին։" + Ձեռք բերեք OsmAnd Live, որպեսզի կարողանաք օգտվել բոլոր հնարավորություններից՝ քարտեզների օրական թարմացում անսահմանափակ ներբեռնում, բոլոր plugin-րը Wikipedia, Wikivoyage և շատ ավելին։ Հիմնական ոճի ձևափոխում, հետիոտնային և հեծանվավազք ճանապարհների հակադրությունը ավելացնելու համար։ Օգտագործում է ժառանգական Mapnik գույները։ Contour lines & Hillshade Քարտեզներ Սև @@ -2700,10 +2847,10 @@ Միջանկյալ նպատակակետ ժամանելու ժամը Միջանկյալ նպատակակետ ժամանելու ժամը Քարտեզի ավտոմատ վերադարձումը միացված է։ - Սեղմեք կոճակը և լսեք համապատասխան ձայնային հրահանգները ու բացահայտեք բացակա կամ սխալ հրահանգները։ + Սեղմեք կոճակը և լսեք համապատասխան ձայնային հրահանգները ու բացահայտեք բացակա կամ սխալ հրահանգները Ելք դեպի Խուսափել մետրոյից և թեթև երկաթուղային տրանսպորտից - Դուք համոզված եք՞, որ ցանկանում եք ջնջել %s պրոֆիլը + Դուք համոզված եք՞, որ ցանկանում եք ջնջել \"%s\" պրոֆիլը Մոնոանիվ Սկուտեր Փոփոխությունների թիվը @@ -2714,33 +2861,50 @@ Անվճար Ստացեք %1$d %2$s at %3$s off. %1$s առաջինի %2$s - Ստորև բոլոր կարգավորումները վերաբերում են միայն ընտրված պրոֆիլին: - OsmAnd-ը օգտագործում է UTM Standard ձևաչափը, որը նման է, բայց նույնական չէ UTM Nato ձևաչափի հետ: + Պրոֆիլի կարգավորումները՝ + OsmAnd-ը օգտագործում է UTM Standard ձևաչափը, որը նման է, բայց նույնական չէ UTM NATO ձևաչափի հետ: Օրինակ UTM ստանդարտ \"Open Location Code\" - Ընտրված ձևաչափը կկիրառվի հավելվածի բոլոր տեղերում: - Փոխել նախնական կարգավորումներ - Չեղարկել փոփոխությունները - "Կիրառել ընթացիկ պրոֆիլին՝ %1$s" - "Կիրառել բոլոր պրոֆիլներին" + Ընտրված ձևաչափը կկիրառվի ամբողճ հավելվածում: + Փոխել կարգավորումները + Չեղարկել փոփոխությունը + Կիրառել միայն՝ %1$s + Կիրառել բոլոր պրոֆիլներին Հաղորդագրություն գործարկման ժամանակ Վերլուծություն Ցույց տալ քարտեզը նավիգացիայի ժամանակ արգելափակման էկրանին։ - Այս կարգավորումները ազդում են երթուղու կառուցման վրա: Կկիրառվի միայն ընտրված պրոֆիլի համար՝ %1$s։ + Կարգավորումները ազդում են երթուղու կառուցման վրա: Կկիրառվի ընտրված պրոֆիլի համար՝ %1$s։ Զարթոնքի ժամանակը Չափման միավորներ և ձեւաչափեր Արտաքին տեսք - սրբապատկերներ, վիջետներ + Քարտեզի տեսքը Քարտեզի տեսքը - Տեղադրված plugin-ների ցանկ + Տեղադրված plugin-ները Կարգավորել նավարկությունը - "Հավելվածի թեման, չափման միավորներ, տարածաշրջան" + Հավելվածի թեման, չափման միավորներ, տարածաշրջան Կարգավորել պրոֆիլը Ահազանգերը կցուցադրվեն էկրանի ներքևի ձախ անկյունում նավարկությոան ժամանակ։ Փոխարկել պրոֆիլը Լեզու Վերականգնել սկզբնական կարգավորումները Պրոֆիլը փոխվել է \"%s\" - All profile settings will be restored to their original state after creating/importing this profile. + Պրոֆիլի բոլոր կարգավորումները կվերականգնվեն իրենց բնօրինակ վիճակին `այս պրոֆիլը ստեղծելուց կամ ներմուծելուց հետո: + Ընտրեք, թե ինչպես պահպանել ներբեռնված շերտերը: + Կարող եք արագ գործողությունները արտահանել կամ ներմուծել հավելվածի պրոֆիլներով: + Ջնջել ամեն ինչ\? + Համոզված եք, որ ցանկանում եք ջնջել %d արագ գործողությունները\? + Էկրանի ժամանակը + Եթե գործառույթը «%1$s» միացված է, գործառնական ժամանակը կախված կլինի դրանից: + Դուք կարող եք սահմանել նավի բարձրությունը ցածր կամուրջներխուսափելու համար։ Հիշեք, որ եթե կամուրջը շարժական է, ապա մենք կօգտագործենք նրա բարձրությունը բաց վիճակում: + Կարգավորել Էկրանի անջատումը + տոնն + մետրեր + Ցուցադրել կամ թաքցնել քարտեզի լրացուցիչ մանրամասները + Գիշերային քարտեզ + Ավելացնել առցանց աղբյուր + Այս փոփոխությունների կիրառումը կմաքրի պահված տվյալները այս աղբյուրի համար + Սահմանեք նավի բարձրությունը + Սահմանեք նավի բարձրությունը`խուսափելու համար ցածր կամուրջներից: Հիշեք, եթե կամուրջը շարժական է, մենք կօգտագործենք դրա բարձրությունը բաց վիճակում: + Նեղ կամուրջներից խուսափելու համար նշեք նավի լայնությունը \ No newline at end of file From ae9227bd2e04026e581655e879ece38faaf739ec Mon Sep 17 00:00:00 2001 From: nasr pen Date: Sat, 13 Jun 2020 11:34:50 +0000 Subject: [PATCH 070/107] Translated using Weblate (Arabic) Currently translated at 99.3% (3367 of 3388 strings) --- OsmAnd/res/values-ar/strings.xml | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml index ef68e86faa..f5ad8011d6 100644 --- a/OsmAnd/res/values-ar/strings.xml +++ b/OsmAnd/res/values-ar/strings.xml @@ -2088,7 +2088,7 @@ اللون والسمك خذ المخرج %1$d ثم واصل المدينة أو المنطقة - مقالات ويكيبيديا القريبة + مقالات ويكيبيديا المجاورة استخدام الطرق السريعة السماح للطرق السريعة. الصربية (اللاتينية) @@ -3138,7 +3138,7 @@ يستخدم أوسماند تنسيق UTM وهو مشابه ولكن غير مطابق لتنسيق UTM الناتو. مثال معيار الإحداثيات - Open Location Code + فتح رمز الموقع سيتم تطبيق التنسيق المحدد في كل أنحاء التطبيق. يتم تحديد هذا الاعداد بشكل افتراضي للأوضاع: %s تغيير الإعدادات @@ -3599,7 +3599,7 @@ جولة التزلج الثلج مخصص البرنامج المساعد أوسماند - استبدل نقطة أخرى بالحالية + استبدل نقطة أخرى بالحالية. تم تطبيق التغييرات على %1$s ملف تعريف. لايمكن قراءة %1$s. لايمكن كتابة %1$s. @@ -3757,13 +3757,19 @@ حذف الكل؟ هل أنت متأكد من رغبتك في حذف الإجراءات السريعة %d نهائيًا؟ مهلة الشاشة - أساليب + نغمات أدل بعرض مركبتك، قد يتم تطبيق بعض القيود على المركبات العريضة. أدل بارتفاع مركبتك ،قد يتم تطبيق بعض القيود على المركبات المرتفعة. أدل بوزن مركبتك ،قد يتم تطبيق بعض القيود على المركبات الثقيلة. أمتار - التحكم في رؤية التفاصيل الإضافية الظاهرة على الخريطة + إظهار أو إخفاء التفاصيل الإضافية للخريطة خريطة ليلية كل الوقت ذوي الاحتياجات الخاصه. يتطلب \"إبقاء الشاشة قيد تشغيل\" تحت \"المهلة بعد الاستيقاظ\". + ضبط الارتفاع لتجنب الجسور المنخفضة. ضع في اعتبارك أنه إذا كان الجسر متحركاً ، فسوف نستخدم ارتفاعه في الحالة المفتوحة. + إضافة مصدر عبر الإنترنت + سيؤدي تطبيق التغييرات إلى مسح البيانات المخزنة مؤقتاً للمصدر هذا + ضبط ارتفاع السفينة + يمكنك ضبط ارتفاع الحاوية لتجنب الجسور المنخفضة. ضع في اعتبارك أنه إذا كان الجسر متحركاً ، فسوف نستخدم ارتفاعه في الحالة المفتوحة. + تحديد عرض السفينة لتجنب الجسور الضيقة \ No newline at end of file From fb7c8d1887ae410db893e0d0a6a834b116fa25c3 Mon Sep 17 00:00:00 2001 From: iman Date: Sat, 13 Jun 2020 08:42:20 +0000 Subject: [PATCH 071/107] Translated using Weblate (Persian) Currently translated at 99.8% (3382 of 3388 strings) --- OsmAnd/res/values-fa/strings.xml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-fa/strings.xml b/OsmAnd/res/values-fa/strings.xml index f416d3d50a..8835daf1f5 100644 --- a/OsmAnd/res/values-fa/strings.xml +++ b/OsmAnd/res/values-fa/strings.xml @@ -297,7 +297,7 @@ شروع هدایت لطفاً ابتدا مقصد را تنظیم کنید مسیریابی - ساعات کاری + ساعت کاری سابقه چیزی پیدا نشد در حال جست‌وجو… @@ -3811,4 +3811,8 @@ اتصال افزودن منبع آنلاین به‌کارگیری این تغییرات، دادهٔ ذخیره‌شده برای این منبعِ کاشی را پاک می‌کند + تنظیم ارتفاع کشتی + می‌توانید ارتفاع کشتی را برای پرهیز از پل‌های کوتاه وارد کنید. به یاد داشته باشید که اگر پل متحرک است، در حالت باز نیز ارتفاع کشتی را در نظر می‌گیریم. + ارتفاع کشتی را برای پرهیز از پل‌های کوتاه وارد کنید. به یاد داشته باشید که اگر پل متحرک است، در حالت باز نیز ارتفاع کشتی را در نظر می‌گیریم. + عرض کشتی را برای پرهیز از پل های باریک وارد کنید \ No newline at end of file From 262118cef5ecf54855eafc35d3961ad55440a821 Mon Sep 17 00:00:00 2001 From: Ajeje Brazorf Date: Sat, 13 Jun 2020 14:46:50 +0000 Subject: [PATCH 072/107] Translated using Weblate (Sardinian) Currently translated at 99.6% (3377 of 3388 strings) --- OsmAnd/res/values-sc/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OsmAnd/res/values-sc/strings.xml b/OsmAnd/res/values-sc/strings.xml index f18c6e0f61..1db7c16316 100644 --- a/OsmAnd/res/values-sc/strings.xml +++ b/OsmAnd/res/values-sc/strings.xml @@ -3780,4 +3780,8 @@ Tempus de blocu de s\'ischermu predefinidu Annanghe una mitza in lìnia Aplichende custas modìficas as a isboidare sa memòria temporànea pro custa mitza de tasseddos + Imposta s\'artària de sa barca + Podes impostare s\'artària de sa barca pro evitare sos pontes bassos. Ammenta·ti chi, si su ponte est mòbile, amus a impreare s\'artària sua de cando est abertu. + Imposta s\'artària de sa barca pro evitare sos pontes bassos. Ammenta·ti chi, si su ponte est mòbile, amus a impreare s\'artària sua de cando est abertu. + Imposta sa largària de sa barca pro evitare pontes astrintos \ No newline at end of file From 0fac918be9dc71811162f7adf88e4c8fef06c369 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1ns?= Date: Sat, 13 Jun 2020 23:22:46 +0000 Subject: [PATCH 073/107] Translated using Weblate (Galician) Currently translated at 100.0% (3388 of 3388 strings) --- OsmAnd/res/values-gl/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OsmAnd/res/values-gl/strings.xml b/OsmAnd/res/values-gl/strings.xml index 66600f4fbe..29481afc0c 100644 --- a/OsmAnd/res/values-gl/strings.xml +++ b/OsmAnd/res/values-gl/strings.xml @@ -3805,4 +3805,8 @@ Lon %2$s Desactivado. Require \'manter a pantalla acendida\' en \'tempo de espera após o acendido\'. Engadir fonte en liña Aplicando estas modificacións eliminarás os datos almacenados na caché para esta fonte de teselas + Definir altura da embarcación + Podes definir a altura da embarcación para evitar pontes baixas. Lémbrate se a ponte é móbil, empregaremos a súa altura no estado aberto. + Define o alto da embarcación para evitar pontes baixas. Lémbrate se a ponte é móbil, empregaremos a súa altura no estado aberto. + Estabelecer o largo da embarcación para evitar pontes estreitas \ No newline at end of file From 2dcb19c56ca441802fc8733f618df0d51b8f59c3 Mon Sep 17 00:00:00 2001 From: iman Date: Sat, 13 Jun 2020 08:46:24 +0000 Subject: [PATCH 074/107] Translated using Weblate (Persian) Currently translated at 36.5% (1391 of 3804 strings) --- OsmAnd/res/values-fa/phrases.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-fa/phrases.xml b/OsmAnd/res/values-fa/phrases.xml index 21fa180479..e56200c82b 100644 --- a/OsmAnd/res/values-fa/phrases.xml +++ b/OsmAnd/res/values-fa/phrases.xml @@ -1377,7 +1377,7 @@ نارگیل موز بادام - پرتغال + پرتقال غیررسمی ساختمان ویژه ممنوع @@ -1403,7 +1403,7 @@ رایانامه وب‌گاه تلفن - ساعت باز شد + ساعت کاری خروج ورودی اصلی محدودکننده ارتفاع From df83b5dce2e3d94e3993ebe66af92b227e0a7a8b Mon Sep 17 00:00:00 2001 From: Franco Date: Sat, 13 Jun 2020 20:23:58 +0000 Subject: [PATCH 075/107] Translated using Weblate (Spanish (Argentina)) Currently translated at 100.0% (3388 of 3388 strings) --- OsmAnd/res/values-es-rAR/strings.xml | 78 +++++++++++++++------------- 1 file changed, 42 insertions(+), 36 deletions(-) diff --git a/OsmAnd/res/values-es-rAR/strings.xml b/OsmAnd/res/values-es-rAR/strings.xml index f044d1fe95..5c15f4f2af 100644 --- a/OsmAnd/res/values-es-rAR/strings.xml +++ b/OsmAnd/res/values-es-rAR/strings.xml @@ -530,16 +530,16 @@ Versión: Información Información de la versión, licencias, miembros del proyecto - Zooms descargados: %1$s - Expira (minutos): %1$s + Niveles de zoom descargados: %1$s + Tiempo de expiración (minutos): %1$s Descargable: %1$s Zoom máximo: %1$s Zoom mínimo: %1$s Datos de teselas: %1$s Repositorio de teselas «%1$s» guardada - Mercator elíptica + Proyección elíptica de Mercator Zoom máximo - Expira (minutos) + Tiempo de expiración (minutos) Zoom mínimo URL Elegir existente… @@ -2342,18 +2342,17 @@ \n • (Opcional) Grabación del viaje en modo reposo (mientras el dispositivo está bloqueado) \n OsmAnd es un software de código abierto, activamente desarrollado. Cualquiera puede contribuir con la aplicación informando sobre errores, mejorando las traducciones o desarrollando nuevas funciones. Además, el proyecto también depende de contribuciones financieras para desarrollar y probar nuevas funcionalidades. \n - Cobertura y calidad aproximada del mapa: -\n • Europa Occidental: **** -\n • Europa Oriental: *** -\n • Rusia: *** -\n • Norteamérica: *** -\n • Sudamérica: ** -\n • Asia: ** -\n • Japón y Corea: *** -\n • Medio Oriente: ** -\n • África: ** -\n • Antártida: * -\n + Cobertura y calidad aproximada del mapa: +\n • Europa Occidental: **** +\n • Europa Oriental: *** +\n • Rusia: *** +\n • Norteamérica: *** +\n • Sudamérica: ** +\n • Asia: ** +\n • Japón y Corea: *** +\n • Medio Oriente: ** +\n • África: ** +\n • Antártida: * \n ¡Más países alrededor del globo están disponibles para descargar! Desde Afganistán a Zimbabue, desde Australia a Estados Unidos. Argentina, Brasil, Canadá, Francia, Alemania, México, Reino Unido, España, … \n OsmAnd+ (OSM Automated Navigation Directions, y en español, Guía de Navegación Automatizada de OSM) es una aplicación de mapa y navegación con acceso a los datos libres de OSM, en todo el mundo y de alta calidad. @@ -3249,7 +3248,7 @@ Análisis Mostrar el mapa en la pantalla de bloqueo durante la navegación. Ajustes para la navegación del perfil elegido «%1$s». - Tiempo de espera después del encendido + Tiempo de espera al encender Unidades y formatos Aspecto Apariencia del mapa @@ -3613,7 +3612,7 @@ Esquí de travesía Motonieve Complemento personalizado de OsmAnd - Reemplaza otro punto con esto + Reemplaza otro punto con esto. No se pudo leer desde «%1$s». No se pudo escribir en «%1$s». No se pudo importar desde «%1$s». @@ -3643,7 +3642,7 @@ Algunos artículos de Wikipedia pueden no estar disponibles en tu idioma, elige los idiomas en los que los artículos de Wikipedia aparecerán en el mapa. \nPodrás cambiar entre todos los idiomas disponibles mientras lees el artículo. Se necesitan mapas adicionales para ver los puntos de interés de Wikipedia en el mapa. - Marca los idiomas en los que los artículos de Wikipedia aparecerán en el mapa. Puedes cambiar entre todos los idiomas disponibles mientras lees el artículo. + Marca los idiomas de los artículos de Wikipedia en el mapa. Cambia a cualquier idioma disponible mientras lees el artículo. Es posible que algunos artículos de Wikipedia no estén disponibles en tu idioma. Cantonés Min del Sur @@ -3734,7 +3733,7 @@ El GPX de OsmAnd no está bien formado, por favor, contacta con el equipo de soporte para investigar más a fondo. Siempre Control de pantalla - Apaga la pantalla después del tiempo de espera del sistema. + Apaga la pantalla según el tiempo de espera del sistema. Usar el tiempo de espera de la pantalla del sistema Opciones de activación de la pantalla: Elige las opciones de activación de la pantalla (asegúrate de que OsmAnd esté en primer plano al bloquear el dispositivo): @@ -3746,7 +3745,7 @@ Elige el tiempo de espera de la pantalla luego del encendido. («%1$s» no aplica ningún tiempo de espera.) Mantener la pantalla encendida Mantener la pantalla apagada - Si la opción «%1$s» está activada, el tiempo de actividad dependerá de ello. + Si «%1$s» está activado, el tiempo de actividad dependerá de ello. Proyección de pseudo-Mercator Un archivo de imagen por tesela Archivo SQLiteDB @@ -3756,29 +3755,36 @@ Tiempo de expiración Proyección de Mercator Formato de almacenamiento - Define el nivel de zoom mínimo y máximo en el que se muestra o carga el mapa en línea. - Estos parámetros afectan a la visualización al usarlos como mapa, superposición o subyacencia. -\n -\n%1$s: El mapa se limita a los zoom elegidos. -\n -\n%2$s: Niveles de zoom en los que las teselas originales son visibles. El aumento o reducción de escala ocurrirá fuera de estos valores. - Tiempo de expiración en minutos. Las teselas almacenadas serán recargadas después del tiempo indicado. Deja este campo vacío para que nunca se refresquen las teselas de este repositorio. -\n -\nUn día son 1440 minutos. -\nUna semana son 10 080 minutos. + Define un nivel de zoom mínimo y máximo para mostrar o cargar el mapa en línea. + Afectan a la pantalla al usarlos como mapa, superposición o subyacencia. +\n +\n%1$s: El mapa está limitado al rango de zoom elegidos. +\n +\n%2$s son los niveles en los que las teselas originales son visibles, el aumento o reducción de escala ocurrirá fuera de estos valores. + Las teselas almacenadas serán renovadas después del número especificado en minutos. Dejar este campo vacío para que nunca se renueven las teselas de este repositorio. +\n +\nUn día son 1440 minutos. +\nUna semana son 10 080 minutos. \nUn mes son 43 829 minutos. - Elige cómo se almacenarán las teselas descargadas. + Elige cómo almacenar las teselas descargadas. Tiempo predefinido de la espera de la pantalla Puedes exportar o importar acciones rápidas con perfiles de aplicación. ¿Borrar todo\? ¿Borrar irrevocablemente %d acciones rápidas\? - Proporciona el ancho del vehículo. Se pueden aplicar algunas restricciones de ruta para vehículos anchos. - Proporciona la altura del vehículo, se pueden aplicar algunas restricciones de ruta para vehículos altos. - Proporciona el peso del vehículo, se pueden aplicar algunas restricciones de ruta para vehículos pesados. + Proporciona el ancho del vehículo, pueden aplicarse algunas restricciones de ruta para vehículos anchos. + Proporciona la altura del vehículo, pueden aplicarse algunas restricciones de ruta para vehículos altos. + Proporciona el peso del vehículo, pueden aplicarse algunas restricciones de ruta para vehículos pesados. Tiempo de espera de la pantalla tonos metros - Controla la visibilidad de los detalles adicionales que se muestran en el mapa + Muestra u oculta los detalles adicionales del mapa Mapa nocturno Todo el tiempo + Desactivado. Es necesario activar «Mantener la pantalla encendida» en «Tiempo de espera al encender». + Añadir repositorio en línea + Al aplicar estos cambios, los datos almacenados serán borrados para este repositorio de teselas + Definir altura de la embarcación + Define la altura de la embarcación para evitar puentes bajos. Tener en cuenta que si el puente es móvil, usaremos su altura en estado abierto. + Puedes definir la altura de la embarcación para evitar puentes bajos. Tener en cuenta que si el puente es móvil, usaremos su altura en estado abierto. + Define el ancho de la embarcación para evitar puentes estrechos \ No newline at end of file From c4338148681d557ed838d31e0dae5c7ce36f60f1 Mon Sep 17 00:00:00 2001 From: Eduardo Addad de Oliveira Date: Fri, 12 Jun 2020 23:38:15 +0000 Subject: [PATCH 076/107] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (3388 of 3388 strings) --- OsmAnd/res/values-pt-rBR/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OsmAnd/res/values-pt-rBR/strings.xml b/OsmAnd/res/values-pt-rBR/strings.xml index 2950fbc074..bd0d10b4ab 100644 --- a/OsmAnd/res/values-pt-rBR/strings.xml +++ b/OsmAnd/res/values-pt-rBR/strings.xml @@ -3765,4 +3765,8 @@ Pôr do Sol: %2$s Desativado. Requer \'manter a tela ligada\' em \'tempo limite após a ativação\'. Adicionar fonte online A aplicação dessas alterações limpará os dados em cache dessa origem de bloco + Definir altura da embarcação + Você pode definir a altura da embarcação para evitar pontes baixas. Lembre-se, se a ponte for móvel, usaremos sua altura no estado aberto. + Defina a altura do vaso para evitar pontes baixas. Lembre-se, se a ponte for móvel, usaremos sua altura no estado aberto. + Defina a largura da embarcação para evitar pontes estreitas \ No newline at end of file From 5e2670214684e34675ad9f208df320527c598425 Mon Sep 17 00:00:00 2001 From: Franco Date: Sat, 13 Jun 2020 20:57:47 +0000 Subject: [PATCH 077/107] Translated using Weblate (Spanish (American)) Currently translated at 100.0% (3388 of 3388 strings) --- OsmAnd/res/values-es-rUS/strings.xml | 97 +++++++++++++++++++++------- 1 file changed, 75 insertions(+), 22 deletions(-) diff --git a/OsmAnd/res/values-es-rUS/strings.xml b/OsmAnd/res/values-es-rUS/strings.xml index fcf14f9028..926413bb31 100644 --- a/OsmAnd/res/values-es-rUS/strings.xml +++ b/OsmAnd/res/values-es-rUS/strings.xml @@ -530,16 +530,16 @@ Versión: Información Información de la versión, licencias, miembros del proyecto - Zooms descargados: %1$s - Expira (minutos): %1$s + Niveles de zoom descargados: %1$s + Tiempo de expiración (minutos): %1$s Descargable: %1$s Zoom máximo: %1$s Zoom mínimo: %1$s Datos de teselas: %1$s Repositorio de teselas «%1$s» guardada - Mercator elíptica + Proyección elíptica de Mercator Zoom máximo - Expira (minutos) + Tiempo de expiración (minutos) Zoom mínimo URL Elegir existente… @@ -2342,18 +2342,17 @@ \n • (Opcional) Grabación del viaje en modo reposo (mientras el dispositivo está bloqueado) \n OsmAnd es un software de código abierto, activamente desarrollado. Cualquiera puede contribuir con la aplicación informando sobre errores, mejorando las traducciones o desarrollando nuevas funciones. Además, el proyecto también depende de contribuciones financieras para desarrollar y probar nuevas funcionalidades. \n - Cobertura y calidad aproximada del mapa: -\n • Europa Occidental: **** -\n • Europa Oriental: *** -\n • Rusia: *** -\n • Norteamérica: *** -\n • Sudamérica: ** -\n • Asia: ** -\n • Japón y Corea: *** -\n • Medio Oriente: ** -\n • África: ** -\n • Antártida: * -\n + Cobertura y calidad aproximada del mapa: +\n • Europa Occidental: **** +\n • Europa Oriental: *** +\n • Rusia: *** +\n • Norteamérica: *** +\n • Sudamérica: ** +\n • Asia: ** +\n • Japón y Corea: *** +\n • Medio Oriente: ** +\n • África: ** +\n • Antártida: * \n ¡Más países alrededor del globo están disponibles para descargar! Desde Afganistán a Zimbabue, desde Australia a Estados Unidos. Argentina, Brasil, Canadá, Francia, Alemania, México, Reino Unido, España, … \n OsmAnd+ (OSM Automated Navigation Directions, y en español, Guía de Navegación Automatizada de OSM) es una aplicación de mapa y navegación con acceso a los datos libres de OSM, en todo el mundo y de alta calidad. @@ -3177,7 +3176,7 @@ Despertar al girar Define durante cuánto tiempo debe estar encendida la pantalla. Usar sensor de proximidad - Mueve la mano sobre la parte superior de la pantalla para encenderla mientras navegas. + Al mover la mano por la pantalla, se encenderá. Grado 1 Grado 2 Grado 3 @@ -3249,7 +3248,7 @@ Análisis Mostrar el mapa en la pantalla de bloqueo durante la navegación. Ajustes para la navegación del perfil elegido «%1$s». - Duración del encendido + Tiempo de espera al encender Unidades y formatos Aspecto Apariencia del mapa @@ -3462,7 +3461,7 @@ Efecto secundario: En la traza faltarán todos los tramos en los que no se haya cumplido el criterio de velocidad mínima (por ejemplo, cuando se empuja la bicicleta por una colina empinada). Además, no habrá información sobre los períodos de descanso, como las pausas. Esto tiene efectos en cualquier análisis o post-proceso, como cuando se trata de determinar la duración total del viaje, el tiempo en movimiento, o la velocidad promedio. Recomendación: Prueba primero a utilizar la detección de movimiento mediante el filtro de desplazamiento mínimo de registro (B), puede producir mejores resultados y perderá menos datos. Si las trazas siguen siendo ruidosas a bajas velocidades, prueba aquí con valores distintos de cero. Tenga en cuenta que algunas mediciones pueden no informar ningún valor de velocidad (algunos métodos basados en la red), en cuyo caso no se registraría nada. Observación: comprobar velocidad > 0: La mayoría de los chipsets de GPS informan un valor de velocidad sólo si el algoritmo determina que está en movimiento. Por lo tanto, el uso del ajuste > 0 en este filtro, en cierto sentido utiliza la detección de movimiento del conjunto de chips del GPS. Pero incluso si no se filtra aquí en el momento de la grabación, seguimos utilizando esta función en nuestro análisis GPX para determinar la distancia corregida, es decir, el valor que se muestra en ese campo es la distancia grabada en movimiento. - Esto registrará solo los puntos medidos con una indicación de precisión mínima (en metros o pies, según lo informado por Android para su conjunto de chips). La precisión se refiere a cuán cerca están sus mediciones de la ubicación real, y no está directamente relacionada con la precisión, que es la dispersión de las mediciones repetidas. + Esto registrará solo los puntos medidos con una indicación de precisión mínima (en metros o pies, según lo informado por Android para su conjunto de chips). La precisión es la proximidad de las mediciones a la ubicación real y no está directamente relacionada con la precisión, que es la dispersión de las mediciones repetidas. Efecto secundario: Como resultado del filtrado por precisión, pueden faltar puntos por ejemplo debajo de puentes, bajo árboles, entre edificios altos o con ciertas condiciones climáticas. Recomendación: Es difícil predecir lo que se grabará y lo que no, puede ser mejor apagar este filtro. Observación: Si el GPS se hubiera apagado inmediatamente antes de una grabación, el primer punto medido podría tener una precisión disminuida, por lo que en nuestro código puede que queramos esperar un segundo más o menos antes de grabar un punto (o grabar el mejor de 3 puntos consecutivos, etc.), pero esto todavía no se ha implementado. @@ -3612,7 +3611,7 @@ Esquí de travesía Motonieve Complemento personalizado de OsmAnd - Reemplaza otro punto con esto + Reemplaza otro punto con esto. Cambios aplicados al perfil «%1$s». No se pudo leer desde «%1$s». No se pudo escribir en «%1$s». @@ -3648,7 +3647,7 @@ OsmAnd Tracker Suscripción - OsmAnd Live Es posible que algunos artículos de Wikipedia no estén disponibles en tu idioma. - Marca los idiomas en los que los artículos de Wikipedia aparecerán en el mapa. Puedes cambiar entre todos los idiomas disponibles mientras lees el artículo. + Marca los idiomas de los artículos de Wikipedia en el mapa. Cambia a cualquier idioma disponible mientras lees el artículo. Combina tipos de PDI de diferentes categorías. Pulsa «Alternar» para marcar todo y el lado izquierdo para elegir una categoría. Buscar por tipos de PDI Regla radial @@ -3730,5 +3729,59 @@ No se pudo encontrar ninguno de estos perfiles. Tipo no admitido Mapa mundial general (detallado) - El GPX de OsmAnd no está bien formado, por favor, contacta con el equipo de soporte para investigar más a fondo + El GPX de OsmAnd no está bien formado, por favor, contacta con el equipo de soporte para investigar más a fondo. + Proporciona el ancho del vehículo, pueden aplicarse algunas restricciones de ruta para vehículos anchos. + Proporciona el peso del vehículo, pueden aplicarse algunas restricciones de ruta para vehículos pesados. + Define el ancho de la embarcación para evitar puentes estrechos + Definir altura de la embarcación + Puedes definir la altura de la embarcación para evitar puentes bajos. Tener en cuenta que si el puente es móvil, usaremos su altura en estado abierto. + Define la altura de la embarcación para evitar puentes bajos. Tener en cuenta que si el puente es móvil, usaremos su altura en estado abierto. + Elige el tiempo de espera de la pantalla luego del encendido. («%1$s» no aplica ningún tiempo de espera.) + Sensor de proximidad + Desactivado. Es necesario activar «Mantener la pantalla encendida» en «Tiempo de espera al encender». + Al pulsar el botón de encendido del dispositivo, se encenderá la pantalla de bloqueo con OsmAnd sobre ella. + Botón de encendido + Cada indicación de navegación activará la pantalla. + Indicaciones de navegación + Elige las opciones de activación de la pantalla (asegúrate de que OsmAnd esté en primer plano al bloquear el dispositivo): + Elige cómo almacenar las teselas descargadas. + Apaga la pantalla según el tiempo de espera del sistema. + Usar el tiempo de espera de la pantalla del sistema + Formato de almacenamiento + Archivo SQLiteDB + tonos + Mapa nocturno + metros + ¿Borrar todo\? + Siempre + Si «%1$s» está activado, el tiempo de actividad dependerá de ello. + Tiempo de espera de la pantalla + Control de pantalla + Proyección de pseudo-Mercator + Ingresa o pega la URL del repositorio en línea. + Proporciona un nombre para el repositorio del mapa en línea. + Un archivo de imagen por tesela + Proyección de Mercator + Afectan a la pantalla al usarlos como mapa, superposición o subyacencia. +\n +\n%1$s: El mapa está limitado al rango de zoom elegidos. +\n +\n%2$s son los niveles en los que las teselas originales son visibles, el aumento o reducción de escala ocurrirá fuera de estos valores. + Define un nivel de zoom mínimo y máximo para mostrar o cargar el mapa en línea. + Mantener la pantalla encendida + Mantener la pantalla apagada + Proporciona la altura del vehículo, pueden aplicarse algunas restricciones de ruta para vehículos altos. + Puedes exportar o importar acciones rápidas con perfiles de aplicación. + Las teselas almacenadas serán renovadas después del número especificado en minutos. Dejar este campo vacío para que nunca se renueven las teselas de este repositorio. +\n +\nUn día son 1440 minutos. +\nUna semana son 10 080 minutos. +\nUn mes son 43 829 minutos. + Tiempo de expiración + Editar repositorio en línea + Muestra u oculta los detalles adicionales del mapa + ¿Borrar irrevocablemente %d acciones rápidas\? + Tiempo predefinido de la espera de la pantalla + Al aplicar estos cambios, los datos almacenados serán borrados para este repositorio de teselas + Añadir repositorio en línea \ No newline at end of file From cb81645e003e608a7d6e57c8aa053763b17c58eb Mon Sep 17 00:00:00 2001 From: Verdulo Date: Fri, 12 Jun 2020 23:28:34 +0000 Subject: [PATCH 078/107] Translated using Weblate (Esperanto) Currently translated at 100.0% (3388 of 3388 strings) --- OsmAnd/res/values-eo/strings.xml | 38 ++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/OsmAnd/res/values-eo/strings.xml b/OsmAnd/res/values-eo/strings.xml index cd0d018087..16ecc9e11a 100644 --- a/OsmAnd/res/values-eo/strings.xml +++ b/OsmAnd/res/values-eo/strings.xml @@ -176,7 +176,7 @@ Usono Kanado Eŭropo, Azio, Latin-Ameriko kaj similaj - Britujo, Barato kaj similaj + Britujo, Hindujo kaj similaj Nordameriko Eŭropo - Nederlando Nordameriko - Usono @@ -852,15 +852,15 @@ Fundamenta mapo de mondo Map-skalado Elŝutitaj niveloj de pligrandigo: %1$s - Senvalidiĝos (minutoj): %1$s + Senvalidiĝos post (minutoj): %1$s Elŝuteblaj: %1$s Maksimuma skalo: %1$s Minimuma skalo: %1$s Kahelaj datumoj: %1$s Konservis kahelfonton %1$s - Elipsa merkatora + Elipsa merkatora projekcio Maksimuma skalo - Senvalidiĝos (minutoj) + Senvalidiĝos post (minutoj) Minimuma skalo URL Elekti ekzistantan… @@ -2344,17 +2344,17 @@ \n OsmAnd estas malfermkoda kaj daŭre evoluigata programaro. Ĉiu povas kontribui al la aplikaĵo per raporti erarojn, plibonigi tradukojn aŭ programi novajn funkciojn. La projekto baziĝas sur monaj donacoj por fondi kodumadon kaj testi novajn funkciojn. \n Proksimuma map‑atingo kaj kvalito: -\n • Okcidenta Eŭropo: ☆☆☆☆ -\n • Orienta Eŭropo: ☆☆☆ -\n • Rusujo: ☆☆☆ -\n • Nordameriko: ☆☆☆ -\n • Sudameriko: ☆☆ -\n • Azio: ☆☆ -\n • Japanujo kaj Koreujo: ☆☆☆ -\n • Proksim-Oriento: ☆☆ -\n • Afriko: ☆☆ -\n • Antarkto: ☆ -\nMapoj de preskaŭ ĉiuj landoj de la mondo estas elŝuteblaj! +\n • Okcidenta Eŭropo: ☆☆☆☆ +\n • Orienta Eŭropo: ☆☆☆ +\n • Rusujo: ☆☆☆ +\n • Nordameriko: ☆☆☆ +\n • Sudameriko: ☆☆ +\n • Azio: ☆☆ +\n • Japanujo kaj Koreujo: ☆☆☆ +\n • Proksim-Oriento: ☆☆ +\n • Afriko: ☆☆ +\n • Antarkto: ☆ +\nMapoj de preskaŭ ĉiuj landoj de la mondo estas elŝuteblaj! \nDe Afganujo al Zimbabvo, de Aŭstralio al Usono, Argentino, Brazilo, Kanado, Francujo, Germanujo, Meksiko, Britujo, Hispanujo… \n Restarigi aĉetaĵojn @@ -3609,7 +3609,7 @@ Ski‑ekskursado Motorsledo Propra OsmAnd-kromprogramo - Anstataŭigi alian punkton per tiu ĉi + Anstataŭigi alian punkton per tiu ĉi. Aplikis ŝanĝojn al la profilo “%1$s”. Ne povas legi el “%1$s”. Ne povas skribi al “%1%s”. @@ -3637,7 +3637,7 @@ La jenaj elementoj estas kaŝitaj el la menuo, sed la rilataj eblaĵoj kaj kromprogramoj plue funkcios. Kaŝitaj Per kaŝi agordojn, ili revenos al la implicitaj valoroj. - Elektu lingvojn, en kiuj artikoloj de Vikipedio montriĝos sur la mapo. Vi povos baskuli inter ĉiuj disponeblaj lingvoj dum legi artikolon. + Elektu lingvojn por artikoloj de Vikipedio montrataj sur la mapo. Eblos baskuli inter ĉiuj disponeblaj lingvoj dum legi artikolon. Iuj artikoloj de Vikipedio povas ne esti disponeblaj en via lingvo. Kantona Minnana @@ -3778,4 +3778,8 @@ Malŝaltita. Postulas “teni ekranon aktiva” en la sekcio “aktiveca periodo de ekrano”. Per apliki tiujn ĉi ŝanĝojn, la kaŝmemorigitaj datumoj por tiu ĉi fonto de kaheloj forviŝiĝos Aldoni enretan fonton + Enigu alton de akvoveturilo + Vi povas enigi alton de via akvoveturilo por eviti malaltajn pontojn. Estu konscia, ke se ponto estas movebla, la alto en ĝia malfermita stato estos uzata. + Enigu alton de akvoveturilo por eviti malaltajn pontojn. Estu konscia, ke se ponto estas movebla, la alto en ĝia malfermita stato estos uzata. + Enigu larĝon de akvoveturilo por eviti mallarĝajn pontojn \ No newline at end of file From a0822f831adc695afe8c58d33af766dc6c5f76a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sveinn=20=C3=AD=20Felli?= Date: Sat, 13 Jun 2020 09:33:38 +0000 Subject: [PATCH 079/107] Translated using Weblate (Icelandic) Currently translated at 99.9% (3387 of 3388 strings) --- OsmAnd/res/values-is/strings.xml | 73 ++++++++++++++++++++------------ 1 file changed, 47 insertions(+), 26 deletions(-) diff --git a/OsmAnd/res/values-is/strings.xml b/OsmAnd/res/values-is/strings.xml index 6b0602d089..318b978cdb 100644 --- a/OsmAnd/res/values-is/strings.xml +++ b/OsmAnd/res/values-is/strings.xml @@ -1608,7 +1608,7 @@ Sjómerki Reikna leiðina fyrst Kortaflísagögn: %1$s - Sporöskjulagað Mercator + Sporöskjulöguð Mercator Aðvaranir vegna umferðar Settu OSM-notandanafn og lykilorð inn í stillingarnar Leiðir til @@ -2027,19 +2027,19 @@ \n • Sendu inn GPX-ferla til OSM beint úr forritinu \n • Bættu við merkisstöðum og sendu þá beint inn til OSM (eða síðar ef engin nettenging er til staðar) \n - OsmAnd er opinn hugbúnaður og í stöðugri þróun. Hver sem er getur tekið þátt í gerð forritsins, til dæmis með því að tilkynna um hnökra, bæta þýðingar eða forrita nýja eiginleika. Lífleg staða verkefnisins og sífelldar endurbætur má þannig rekja til margra þátta samspils milli notenda og hönnuða. Verkefnið styðst líka við fjárhagslega styrki frá notendum sem nýtast til að fjármagna viðameiri forritun og prófanir. -\n Gæði og áætluð þekja landakorta: -\n • Vestur-Evrópa: **** -\n • Austur-Evrópa: *** -\n • Rússland: *** -\n • Norður-Ameríka: *** -\n • Suður-Ameríka: ** -\n • Asía: ** -\n • Japan & Kórea: *** -\n • Miðausturlönd: ** -\n • Afríka: ** -\n • Suðurskautslandið: * -\n Hægt er að sækja kort frá flestum heimsins löndum á netinu! + OsmAnd er opinn hugbúnaður og í stöðugri þróun. Hver sem er getur tekið þátt í gerð forritsins, til dæmis með því að tilkynna um hnökra, bæta þýðingar eða forrita nýja eiginleika. Lífleg staða verkefnisins og sífelldar endurbætur má þannig rekja til margra þátta samspils milli notenda og hönnuða. Verkefnið styðst líka við fjárhagslega styrki frá notendum sem nýtast til að fjármagna viðameiri forritun og prófanir. +\n Gæði og áætluð þekja landakorta: +\n • Vestur-Evrópa: **** +\n • Austur-Evrópa: *** +\n • Rússland: *** +\n • Norður-Ameríka: *** +\n • Suður-Ameríka: ** +\n • Asía: ** +\n • Japan og Kórea: *** +\n • Miðausturlönd: ** +\n • Afríka: ** +\n • Suðurskautslandið: * +\n Hægt er að sækja kort frá flestum heimsins löndum á netinu! \n Frá Afghanistan til Zimbabwe, frá Ástralíu til BNA. Argentína, Brasilía, Kanada, Frakkland, Þýskaland, Mexíkó, Spánn, eða eitthvað annað. Almenn skoðun landakorta í farsíma og flakk á ónettengdum sem nettengdum OSM-landakortum Leggðu þitt fram til OSM @@ -2345,10 +2345,10 @@ \n • Asía: ** \n • Japan & Kórea: *** \n • Miðausturlönd: ** -\n • Afríka: ** +\n • Afríka: ** \n • Antarktíka: * -\n Flest lönd í heiminum eru tiltæk sem niðurhalspakkar! -\n Frá Afghanistan til Simbabve, frá Ástralíu til BNA. Argentína, Brasilía, Kanada, Frakkland, Þýskaland, Mexíkó, UK, Spánn, … +\n Flest lönd í heiminum eru tiltæk sem niðurhalspakkar +\n Frá Afghanistan til Simbabve, frá Ástralíu til BNA. Argentína, Brasilía, Kanada, Frakkland, Þýskaland, Mexíkó, Bretland, Spánn, … \n Birta frá aðdráttarstigi (krefst hæðarlínugagna): Tímabiðminni fyrir rakningu með netstuðningi @@ -3617,7 +3617,7 @@ Hringur Tígull Ferningur - Skipta út öðrum punkti með þessum + Skipta út öðrum punkti með þessum. Breytingum beitt á \'%1$s\' sniðið. Gat ekki lesið úr \'%1$s\'. Gat ekki skrifað \'%1$s\'. @@ -3724,7 +3724,7 @@ Óstudd tegund Leiðsagnarleiðbeiningar Eftirlæti - Ef \"%1$s\" valkosturinn er virkur, mun tími virkni vera háður honum. + Ef \"%1$s\" er virkt, mun tími virkni vera háður því. Leiðsagnarsnið Halda áfram OsmAnd + Mapillary @@ -3740,19 +3740,40 @@ Settu inn nafn á nettengdum kortagjafa. Mæla vegalengd Gervi-Mercatorvörpun - Gildistími í mínútum. Kortaflísar í skyndiminni verða endurlesnar eftir tiltekinn tíma. Skildu þennan reit eftir auðan ef þú þarft ekki að láta endurlesa kortaflísar frá þessum kortagjafa. -\n -\nEinn dagur er 1.440 mínútur. -\nEin vika er 10.080 mínútur. -\nEinn mánuður er 43 829 mínútur. + Kortaflísar í skyndiminni verða endurlesnar eftir tiltekinn tíma. Skildu þennan reit eftir auðan ef þú þarft ekki að láta endurlesa kortaflísar frá þessum kortagjafa. +\n +\nEinn dagur er 1.440 mínútur. +\nEin vika er 10.080 mínútur. +\nEinn mánuður er 43.829 mínútur. Til baka í breytingar - Slekkur á skjánum eftir að tímamörkum kerfis fyrir skjá er náð. + Slekkur á skjánum miðað við tímamörk kerfisins. Ertu viss um að þú viljir eyða %d flýtiaðgerðum\? Ef ýtt er á þennan aðgerðahnapp verður skipt á milli valinna notkunarsniða. Eyða öllu\? Tímamörk skjás tónar metrar - Stýra sýnileika viðbótaratriða sem birtast á kortinu + Birta eða fela viðbótaratriði á kortinu Næturkort + Hefur áhrif á skjáinn þegar er notað sem kort eða yfirlag/undirlag. +\n +\n%1$s: Kortið takmarkast við svið valinna aðdráttarstiga. +\n +\n%2$s eru þau aðdráttarstig þar sem upprunalegir kortatíglar eru sýnilegir, kvörðun upp/niður mun eiga sér stað utan þessara gilda. + Bæta við gagnagjafa á netinu + Veldu hvernig skjárinn er vakinn úr dvala (gakktu úr skugga um að OsmAnd sé í forgrunni þegar tækinu er læst): + Settu hæð skips til að geta forðast lágar brýr. Hafðu í huga að ef um hreyfanlega brú er að ræða, þá er miðað við hæð í opinni stöðu. + Þú getur stillt hæð skips til að geta forðast lágar brýr. Hafðu í huga að ef um hreyfanlega brú er að ræða, þá er miðað við hæð í opinni stöðu. + Settu breidd skips til að geta forðast þröngar brýr + Séu þessar breytingar virkjaðar mun það hreinsa skyndiminnið fyrir þennan kortatíglagjafa + Settu inn þyngd farartækisins, takmarkanir geta verið á sumum leiðum varðandi þyngd farartækja. + Veldu tímamörk skjás eftir vöknun. (\"%1$s\" setur engin tímamörk.) + Óvirkt. Krefst þess að valið sé \'Halda skjá í gangi\' undir \'Tímamörk eftir vöknun\'. + Settu hæð skips + Settu inn hæð farartækisins, takmarkanir geta verið á sumum leiðum varðandi hæð farartækja. + Settu inn breidd farartækisins, takmarkanir geta verið á sumum leiðum varðandi breidd farartækja. + Stilltu lágmarks og hámarks aðdráttarstig þess að nettengt kort verður birt eða hlaðið inn. + GPX-ferill OsmAnd er gallaður, hafðu samband við aðstoðarteymið til að fá botn í þetta. + Ef ýtt er á aflhappinn verður kveikt á skjánum með OsmAnd ofan á læsiskjánum. + Þú getur flutt flýtiaðgerðir inn eða út með forritasniðum. \ No newline at end of file From 78f66889ba6378606dd9cb0e901b97856939b622 Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Sun, 14 Jun 2020 03:24:41 +0000 Subject: [PATCH 080/107] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (3388 of 3388 strings) --- OsmAnd/res/values-zh-rTW/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OsmAnd/res/values-zh-rTW/strings.xml b/OsmAnd/res/values-zh-rTW/strings.xml index 66609bb415..ebeb45ab27 100644 --- a/OsmAnd/res/values-zh-rTW/strings.xml +++ b/OsmAnd/res/values-zh-rTW/strings.xml @@ -3773,4 +3773,8 @@ 已停用。需要「喚醒後逾時」的「保持螢幕開啟」。 新增線上來源 套用這些變更將會清除這個圖磚來源的快取資料 + 設定船艦高度 + 您可以設定船艦高度以避免矮橋。請記住,如果橋是可動式的,我們將會使用其在開啟狀態的高度。 + 設定船艦高度以避免矮橋。請記住,如果橋是可動式的,我們將會使用其開啟狀態的高度。 + 設定船艦寬度以避免窄橋 \ No newline at end of file From 83f04c083f6de91e46c093a96c398d05a7e148e0 Mon Sep 17 00:00:00 2001 From: Suren Date: Sun, 14 Jun 2020 09:55:31 +0000 Subject: [PATCH 081/107] Translated using Weblate (Armenian) Currently translated at 73.4% (2488 of 3388 strings) --- OsmAnd/res/values-hy/strings.xml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/OsmAnd/res/values-hy/strings.xml b/OsmAnd/res/values-hy/strings.xml index 77df80502a..3ad4a7bfeb 100644 --- a/OsmAnd/res/values-hy/strings.xml +++ b/OsmAnd/res/values-hy/strings.xml @@ -64,7 +64,7 @@ Բացել առկա GPX ֆայլը Խնդրում ենք սպասել մինջև տվյալ պրոցեսը կվերջանա Սկսել նոր ենթաճանապարհ - Հեռավորության հաշվիչ և Պլանավորման Գործիք + Հեռավորության հաշվիչ և պլանավորման գործիք %1$s Ֆիլտրը ստեղծված է %1$s Ֆիլտրը ջնջված է Ջնջե՞լ տվյալ ֆիլտրը? @@ -133,7 +133,7 @@ Խուսափել ավտոմայրուղիներ Առավելագույն քաշը Նշեք ճանապարհների վրա թույլատրված մեքենայի քաշի սահմանը: - Այս plugin-նը ապահովում է քարտեզի էկրանի վրա վիջեթ, որը հնարավորություն է տալիս ստեղծել ուղիներ, քարտեզի վրա կտտացնելով, նաև օգտագործել կամ փոփոխել առկա GPX ֆայլերը, ուղեւորություն պլանավորել և չափել կետերի միջև հեռավորությունը։ + Ապահովում է քարտեզի էկրանի վրա վիջեթ, որը հնարավորություն է տալիս ստեղծել ուղիներ, քարտեզի վրա կտտացնելով, նաև օգտագործել կամ փոփոխել առկա GPX ֆայլերը, ուղեւորություն պլանավորել և չափել կետերի միջև հեռավորությունը։ Ոչ Այո Չհաջողվեց փոփոխել նշումը: @@ -964,7 +964,7 @@ Աուդիո և վիդեո նշումներ Աուդիո/Վիդեո նշումների plugin-ը հնարավորություն են տալիս ստեղծել աուդիո/լուսանկարներ/վիդեո նշումներ վարելու ժամանակ կամ կոճակի միջոցով քարտեզի էկրանին վրա կամ անմիջապես համատեքստային մենյուի միջոցով ցանկացած դիրքի համար քարտեզի վրա: Ավտոկայանատեղ - Ավտոկայանատեղ plugin-ը թույլ է տալիս գրանցել, թե որտեղ է ձեր մեքենան կայանել և որքան ժամանակ է մնացել ավտոկայանատեղը ազատելու (եթե առկա է ժամկետ): + Թույլ է տալիս գրանցել, թե որտեղ է ձեր մեքենան կայանել և որքան ժամանակ է մնացել ավտոկայանատեղը ազատելու (եթե առկա է ժամկետ): \nԹե տեղը, թե ժամանակը տեսանելի են OsmAnd-ի վահանակի վրա, ինչպես նաև քարտեզի էկրանին ինչպես նաև վիդժետի մեջ: Android օրացույցին կարելի է միացնել որպես հիշեցում: Հատուկ հնարավորություններ The plugin-ն սարքի համար ավելացնում հատուկ հնարավորությունների աջակցում ուղղակիորեն OsmAnd-ում: Սա հեշտացնում է, օրինակ, TTS-ի ձայնի ելքային արագությունը հարմարեցնելու համար, կարգավորել նավիգացիայի ուղղվածությունը էկրանի վրա, վերահսկեք սանդղակը կամ ձայնային հետադարձ կապի հրամանները ավտո անոտացիաներ անելու դեպքում ձեր դիրքի վերաբերյալ: @@ -975,7 +975,7 @@ OSM-ի խմբագրում Կետերը ավելացվել են քարտեզի մարկերներին Այս OsmAnd-ի plugin-ի միջոցով կարելի է ներդրում կատարել OSM-ի, ինչպիսիք են OSM POI-ի օբյեկտների ստեղծում կամ փոփոխում, OSM նշումների բացումը կամ մեկնաբանումը և վերբեռնում արձանագրված GPX ֆայլերը: OSM-ն գլոբալ հանրային քարտեզագրման նախագիծ է, որը կառավարվում է OSM համայնքի կողմից: Մանրամասների համար այցելեք https://openstreetmap.org: Ակտիվ մասնակցությունը գնահատվում է, և ներդրումները կարող են կատարվել ուղղակիորեն OsmAnd-ից, եթե նշեք ձեր անձնական OSM-ի հավատարմագրերը հավելվածում: - Այս plugin-նը ցուցադրում է գործառույթների մշակման և կարգաբերման պարամետրեր, ինչպիսիք են երթուղու ստուգումը կամ մոդելավորումը,քարտեզի ցուցադրման կատարումը, ձայնային հուշումները ստուգելը: Այս կարգավորումները մշակողների համար են և հասարակ օգտագործողների համար անհրաժեշտ չեն: + Կարգավորումներ զարգացման եւ կարգաբերման գործառույթների համար, ինչպիսիք են երթուղու ստուգումը կամ մոդելավորումը,քարտեզի ցուցադրման կատարումը, ձայնային հուշումները ստուգելը: Այս կարգավորումները մշակողների համար են և հասարակ օգտագործողների համար անհրաժեշտ չեն: OsmAnd-ի կարգավորումը և զարգացումը Չհաջողվեց վերանվանել: օր առաջ @@ -985,7 +985,7 @@ \nԼայնությունը %1$s \nԵրկայնություն %2$s Դիտել - Նշումներ + A/V նշումներ Առցանց քարտեզ Միայն ճանապարհները Լեռնադահուկային երթուղիները @@ -1077,10 +1077,10 @@ Դուք մուտք եք գործել որպես %1$s Արագության թույլատրելի գերազանցումը Ընտրեք արագության գերազանցման թույլատրելի արժեքը, որի գերազանցման դեպքում դուք կստանաք ձայնային նախազգուշացում։ - «Սիրված» կետի անունը փոխվել է %1$s որպեսզի հնարավոր լինի «սմայլիկ» պարունակող տողերը պահպանել ֆայլում։ + «Սիրված» կետի անունը փոխվել է %1$s, որպեսզի հնարավոր լինի «սմայլիկ» պարունակող տողերը պահպանել ֆայլում։ Տպել երթուղին Կրկնօրինակել «Սիրված» կետի անունը - «Սիրված» կետի նշված անվանումը արդեն օգտագործված է, անունների կրկնօրինակումը կանխելու համար անունը փոխվել է %1$s: + «Սիրված» կետը վերանվանվել է %1$s, անունների կրկնօրինակումը կանխելու համար: Սահմանեք տեքստի չափը քարտեզի համար։ Տեքստի չափը Արագության սահմանափակումը @@ -1103,7 +1103,7 @@ Միացնել GPS ֆոնի ռեժիմը Գրանցել տրեկը GPX ֆայլի տեքով Տրեկի գրանցումը ըստ պահանջի - Ընդհանուր դիրքի գրանցումը GPX ֆայլի տեսքով կարող եք միացնել կամ անջատել GPX վիջետի միջոցով քարտեզի էկրանից։ + Ընդհանուր դիրքի գրանցումը GPX ֆայլի տեսքով կարող եք միացնել կամ անջատել GPX վիջետի միջոցով քարտեզի վրա։ Պահպանել ընթացիկ տրեկը որպես GPX ֆայլ։ Պահպանել ընթացիկ տրեկը Նավիգացիայի ընթացքում ավտոմատ գրանցել տրեկը @@ -1116,9 +1116,9 @@ Միացնել HTTP proxy սերվեր Կարգավորել HTTP proxy սերերը բոլոր ցանցային հարցումների համար։ Proxy սերվերի հասցեն - Կարգավորեք Ձեր proxy սեվերի անունը(օրինակ 127.0.0.1)։ + Նշեք Ձեր proxy սեվերի անունը(օրինակ 127.0.0.1)։ Proxy սերվերի պորտը - Կարգավորեք proxy սերվերի պորտի համարը (օրինակ, 8118)։ + Նշեք Ձեր proxy սերվերի պորտի համարը (օրինակ, 8118)։ ժամ Տևողություն Հեռավորություն From f12846c3a89bdf3ebda73792bb9e4748504c4264 Mon Sep 17 00:00:00 2001 From: Softmap Date: Sun, 14 Jun 2020 20:18:56 +0000 Subject: [PATCH 082/107] Translated using Weblate (Arabic) Currently translated at 99.4% (3369 of 3388 strings) --- OsmAnd/res/values-ar/strings.xml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml index f5ad8011d6..86fe0ada27 100644 --- a/OsmAnd/res/values-ar/strings.xml +++ b/OsmAnd/res/values-ar/strings.xml @@ -2088,7 +2088,7 @@ اللون والسمك خذ المخرج %1$d ثم واصل المدينة أو المنطقة - مقالات ويكيبيديا المجاورة + مقالات ويكيبيديا مجاورة استخدام الطرق السريعة السماح للطرق السريعة. الصربية (اللاتينية) @@ -3730,7 +3730,7 @@ حدد مهلة الشاشة بعد الاستيقاظ. (\"%1$s\" لا ينطبق أي مهلة.) إبقاء الشاشة قيد التشغيل إبقاء الشاشة مطفأة - إذا تم تفعيل الخيار \"%1$s\" ، فسوف يعتمد وقت النشاط عليه. + إذا تم تفعيل \"%1$s\" ، فسوف يعتمد وقت النشاط على ذلك. إسقاط ميركاتور الوهمي ملف صورة واحد لكل إطار متجانب ملف SQLiteDB @@ -3741,19 +3741,19 @@ إسقاط مركاتور تنسيق التخزين تعيين الحد الأدنى والحد الأقصى لمستوى التكبير/التصغير الذي سيتم عرض الخريطة عبر الإنترنت أو تحميله. - ستؤثر هذه المعلمات على العرض عند استخدامها كخريطة أو تراكب/وضع. -\n -\n%1$s: ستقتصر الخريطة على التكبيرات المحددة. -\n -\n%2$s: مستويات التكبير التي ستكون فيها الإطارات المتجانبة الأصلية مرئية. سوف يحدث التحجيم أو التحجيم خارج هذه القيم. + يؤثر على الشاشة عند استخدامها كخريطة أو طبقة فوقية/تحتية. +\n +\n%1$s: تقتصر الخريطة على مستوى التكبير المحدد. +\n +\n%2$s هي مستويات التكبير التي ستكون فيها الإطارات المتجانبة الأصلية مرئية. سوف يحدث التحجيم للأكبر أو الأصغر خارج هذه القيم. وقت انتهاء الصلاحية بالدقائق. سيتم إعادة تحميل الإطارات المتجانبة المخزنة مؤقتًا بعد الوقت المحدد. اترك هذا الحقل فارغًا لعدم تحديث الإطارات المتجانبة لهذا المصدر. \n \nيوم واحد هو 1440 دقيقة. \nأسبوع واحد هو 10080 دقيقة. \nشهر واحد هو 43 829 دقيقة. - اختر كيفية تخزين الطبقات التي تم تنزيلها. + اختر كيفية تخزين الطبقات المنزلة. مهلة الشاشة الافتراضية - يمكنك تصدير أو استيراد إجراءات سريعة باستخدام ملفات تعريف بروفايل التطبيق. + يمكنك تصدير أو استيراد إجراءات سريعة باستخدام ملفات بروفايل التطبيق . حذف الكل؟ هل أنت متأكد من رغبتك في حذف الإجراءات السريعة %d نهائيًا؟ مهلة الشاشة From 45c2e67805d46ac5a02e08c8224cd38d15ddbbc6 Mon Sep 17 00:00:00 2001 From: Hakuchi Date: Sun, 14 Jun 2020 11:46:44 +0000 Subject: [PATCH 083/107] Translated using Weblate (German) Currently translated at 100.0% (3388 of 3388 strings) --- OsmAnd/res/values-de/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml index 8924917a19..cc8c9abc23 100644 --- a/OsmAnd/res/values-de/strings.xml +++ b/OsmAnd/res/values-de/strings.xml @@ -3785,4 +3785,8 @@ Deaktiviert. Erfordert \'Bildschirm eingeschaltet lassen\' unter \'Timeout nach dem Aufwachen\'. Online-Quelle hinzufügen Durch die Anwendung dieser Änderungen werden die zwischengespeicherten Daten für diese Kachelquelle gelöscht + Schiffshöhe einstellen + Sie können die Schiffshöhe einstellen, um niedrige Brücken zu vermeiden. Denken Sie daran, wenn die Brücke beweglich ist, werden wir ihre Höhe im offenen Zustand verwenden. + Stellen Sie die Schiffshöhe ein, um niedrige Brücken zu vermeiden.Denken Sie daran, wenn die Brücke beweglich ist, werden wir ihre Höhe im offenen Zustand verwenden. + Stellen Sie die Schiffsbreite ein, um schmale Brücken zu vermeiden \ No newline at end of file From 29c0c1f466d6d6acd6052028975d63adaa68657c Mon Sep 17 00:00:00 2001 From: ihor_ck Date: Mon, 15 Jun 2020 01:43:10 +0000 Subject: [PATCH 084/107] Translated using Weblate (Ukrainian) Currently translated at 99.4% (3371 of 3388 strings) --- OsmAnd/res/values-uk/strings.xml | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/OsmAnd/res/values-uk/strings.xml b/OsmAnd/res/values-uk/strings.xml index 751ebdfae2..8c7a07f72d 100644 --- a/OsmAnd/res/values-uk/strings.xml +++ b/OsmAnd/res/values-uk/strings.xml @@ -1050,7 +1050,7 @@ США Канада Європа, Азія, Латинська Америка та подібні - Великобританія, Індія & схожі + Великобританія, Індія та подібні FPS-відомості Версія: Про застосунок @@ -1061,7 +1061,7 @@ Максимальний масштаб: %1$s Мінімальний масштаб: %1$s Дата квадрату: %1$s - Джерело квадратів мапи %1$s збережене + Джерело квадратів мапи %1$s збережено Еліптичний Меркатор Максимальне збільшення Строк дії (в хвилинах) @@ -2421,7 +2421,7 @@ \n • Африка: ** \n • Антарктида: * \nБільшість країн по всьому світу доступні для завантаження! -\nОтримайте надійний навігатор у Вашій країні — будь то Україна, Франція, Німеччина, Мексика, Великобританія, Іспанія, Нідерланди, США, Росія, Бразилія чи будь-яка інша… +\nОтримайте надійний навігатор у Вашій країні — будь то Україна, Франція, Німеччина, Мексика, Великобританія, Іспанія, Нідерланди, США, Росія, Бразилія чи будь-яка інша… \n Назва містить занадто багато великих літер. Продовжити? Додати світлини @@ -3602,7 +3602,7 @@ Ромб Площа Восьмикутник - Замінити іншу точку цією + Замінити іншу точку цією. Гірськолижний туризм Снігохід Користувацький втулок OsmAnd @@ -3633,7 +3633,7 @@ Ви можете переміщувати елементи лише всередині цієї категорії. Втулок розробника Елементи - Виберіть мови, якими статті на Вікіпедії з’являться на мапі. Під час читання статті ви можете перемикатися між усіма доступними мовами. + Виберіть мови статей Вікіпедії на мапі. Перемикайтеся між усіма доступними мовами під час читання статті. Деякі статті у Вікіпедії можуть бути недоступними вашою мовою. Кантонська Південний Мін @@ -3728,9 +3728,7 @@ Використовувати системний час очікування Параметри увімкнення екрана Параметри увімкнення екрану (переконайтесь, що OsmAnd стоїть на передньому плані, коли пристрій заблоковано): - Екран увімкнеться автоматично за кілька секунд до вказівки щодо навігації за визначений час у опції «Час пробудження». -\n -\nПрацює лише під час навігації. + Екран увімкнеться під час вказівки щодо навігації. Вказівки з навігації Натисніть кнопку живлення пристрою, щоб увімкнути екран на передньому плані з OsmAnd. Кнопка живлення @@ -3738,7 +3736,7 @@ Час очікування екрану після увімкнення. («%1$s» вимикає вимкнення екрану.) Тримати екран увімкненим Тримати екран вимкненим - Якщо функцію \"%1$s\" увімкнено, час роботи залежатиме від неї. + Якщо параметр \"%1$s\" увімкнено, час роботи залежатиме від нього. Псевдопроєкція Меркатора Один файл зображення на плитку Файл SQLiteDB @@ -3768,7 +3766,7 @@ Вкажіть вагу транспортного засобу, для важких транспортних засобів можуть застосовуватися деякі обмеження на маршрути. тонни метри - Керування відображенням додаткових деталей на мапі + Показати або приховати додаткові деталі на мапі Нічна мапа Вкажіть ширину автомобіля, для великих транспортних засобів можуть застосовуватися обмеження на деяких маршрутах. Вкажіть висоту автомобіля, для великих транспортних засобів можуть застосовуватися обмеження на деяких маршрутах. From eec87a4d98a65b711dfd39696db57aa6fd6d9b12 Mon Sep 17 00:00:00 2001 From: Suren Date: Sun, 14 Jun 2020 10:10:48 +0000 Subject: [PATCH 085/107] Translated using Weblate (Armenian) Currently translated at 78.6% (2664 of 3388 strings) --- OsmAnd/res/values-hy/strings.xml | 210 +++++++++++++++++-------------- 1 file changed, 117 insertions(+), 93 deletions(-) diff --git a/OsmAnd/res/values-hy/strings.xml b/OsmAnd/res/values-hy/strings.xml index 3ad4a7bfeb..cfd3abd4d6 100644 --- a/OsmAnd/res/values-hy/strings.xml +++ b/OsmAnd/res/values-hy/strings.xml @@ -9,7 +9,7 @@ Նկար %1$s %2$s Նկարել Նկարել - Dropbox plugin-ը թույլ է տալիս սինխրոնիզացնել տրեքերը և Աուդիո/վիդեո նշումները ձեր Dropbox-ի հետ: + Թույլ է տալիս սինխրոնիզացնել տրեքերը և Աուդիո/վիդեո նշումները ձեր Dropbox-ի հետ: Փոխել հերթականությունը Խնդրում ենք ուսումնասիրել «Contour lines» plugin-ի գնելու տարբերակը, որպեսզի աջակցել հետագա զարգացումը: Բարձրության գծեր փլագին @@ -42,8 +42,8 @@ Վեբ կայք Հեռախոս Ուղևորության գրանցում - Ընտրեք ծրագրի թեման։ - Ընտրել հասցեն + Ընտրեք ծրագրի տեսքը։ + Նշեք հասցեն Ընտրել «Սիրված»-եր OSM փոփոխություններ Այլ գործողություններ @@ -65,8 +65,8 @@ Խնդրում ենք սպասել մինջև տվյալ պրոցեսը կվերջանա Սկսել նոր ենթաճանապարհ Հեռավորության հաշվիչ և պլանավորման գործիք - %1$s Ֆիլտրը ստեղծված է - %1$s Ֆիլտրը ջնջված է + \'%1$s\' Ֆիլտրը ստեղծված է + \'%1$s\' Ֆիլտրը ջնջված է Ջնջե՞լ տվյալ ֆիլտրը? Հիշել որպես փոփոխություն @@ -95,7 +95,7 @@ Ընտրել ըստ հարցման\? Ընտրել default Widget գործողություն՝ Default վիդջետի գործողություն - Կատարվում է Աուդիո/վիդեո ձայնագրում, դադարեցնելու համար սեխմեք AV վիջետը։ + Կատարվում է աուդիո/վիդեո ձայնագրում, դադարեցնելու համար սեխմեք AV վիջետը։ Նվագում է ձայնագրությունը\n%1$s Բացել արտաքին նվագարկիչով Ջնջել այս գրառումը\? @@ -114,22 +114,22 @@ Տարբերակ: Բեռնվող: %1$s Ընտրել GPX-… - Ընտրել Նպատակակետը + Նշել նպատակակետը Ընտրել քարտեզի վրա Սիրված - Խուսափել վճարովի ճանապարհներից - Առաջինը ընտրեք քաղաք կամ փողոց + Առանց վճարովի ճանապարհների + Առաջինը նշեք քաղաք կամ փողոց Սահմանել որպես նպատակակետ ուղու նախապատվություններ Երթուղու տեղեկատվություն Նախընտրելի ավտոճանապարհ Նախընտրելի ավտոմայրուղիներ Խուսափել վճարովի ճանապարհներից - Խուսափել հողածածկ ճանապարհներից + Առանց հողածածկ ճանապարհներից Խուսափել հողածածկ ճանապարհները - Խուսափել լաստանավերից + Առանց լաստանավերից Խուսափել լաստանավերը - Խուսափել ավտոմայրուղիներից + Առանց ավտոմայրուղիներից Խուսափել ավտոմայրուղիներ Առավելագույն քաշը Նշեք ճանապարհների վրա թույլատրված մեքենայի քաշի սահմանը: @@ -1151,7 +1151,7 @@ Առցանց հետևում(tracking) (GPX պահանջվում է) Սկսեք առցանց հետևելուն(tracking) Դադարեցնել առցանց հետևելուն(tracking) - Սկսել GPX գրանցումը + Շարունակել GPX գրանցումը Դադարեցնել GPX-ի գրանցումը Սկսել նոր սեգմենտ Շենքեր @@ -1168,15 +1168,15 @@ Ցուցադրել հեծանիվային երթուղիները Ներբեռնումներ չկան, խնդրում ենք ստուգել ձեր Ինտերնետ կապը: Ոչինչ չի գտնվել: Դուք կարող եք ստեղծել քարտեզը ինքնուրույն (տես https://osmand.net): - Ընտրված GPX ֆայլեր չկան: Ընտրելու համար երկար սխմեք հասանելի տրեկի վրա։ - Ընտրեք ցույց տալու համար + Նշեք GPX ֆայլը, երկար սխմելով։ + Ընտրեք track Բաժանման ընդմիջումի ժամանակը Դասակարգել ըստ հեռավորությանը Դասակարգել ըստ անունի Ցուցադրել խոշորացման կոճակները նավիգացիայի ընթացքում։ Ցույց տալ խոշորացման կոճակները Պահպանել որպես «Սիրված» խումբ - Ընտրեք նպատակակետերը + Նշեք նպատակակետերը POI կետերի պիտակները Բեռնում %1$s… Ընթացիկ ժամը @@ -1286,14 +1286,14 @@ Հաշվարկել երթուղին առաջին և վերջին հատվածի OsmAnd երթուղու սեգմենտին Օգտագործել նավարկության համար ցուցադրված track-ը? Ավելացնել որպես նպատակակետ - Խուսափել աստիճաններից + Առանց աստիճաններից Խուսափել աստիճաններից - Խուսափել սահմանի հատմունը + Առանց սահմանի հատմունը Խուսափել երկրի սահմանի հատումը Բարձրության սահմանափակում Նշեք մեքենայի բարձրությունը երթուղու հաշվարկի համար։ Տեղանքի ռելիեֆի(Hillshade) շերտը անջատված է - Android 4.4 (KitKat) տարբերակից սկսած քարտը չեք կարող բեռնել և թարմացնել հին պահեստային ֆոլդերում (%s): Պատճենել բոլոր OsmAnd ֆայլերը նոր պահպանման վայրում? + Android 4.4 (KitKat) տարբերակից սկսած պահեստային ֆոլդերը(%s) արժեզրկվել է: Պատճենել բոլոր OsmAnd ֆայլերը նոր պահպանման վայրում\? \n…Ծանոթագրություն 1. Ձեր հին ֆայլերը կմնան անփոփոխ (բայց կարող են ջնջվել ձեռքով): \n…Ծանոթագրություն 2. Երբ ֆայլերը փոխանցեք նոր պահպանման վայր, «OsmAnd»-ի և «OsmAnd+» ֆայլերի համատեղ օգտագործումը հնարավոր չի լինի: Ֆայլի պատճենում (%s) նոր վայր… @@ -1303,20 +1303,20 @@ Բեռնատար Նավարկության կարգավորումները Երթուղու կարգավորումները - Որոշեք արտասանության արագությունը TTS համար։ + Որոշեք արտասանության արագությունը տեքստ-խոսք(TTS) համար։ Արտասանության արագությունը Արագ երթուղու կառուծումը չհաջողվեծ (%s), չեղյալ համարեք դանդաղ հաշվարկին վերադառնալու համար։ Անջատեք 2 փուլային երթուղին ավտոմեքենայի նավարկության համար։ Անջատել բարդ երթուղին Նավիգացիոն նշաններ (լճակներ) - Ընտրեք պրոֆիլները որոնք տեսանելի կլինեն հավելվածում։ + Ընտրեք պրոֆիլները որոնք տեսանելի կլինեն։ Հավելվածի պրոֆիլներ Քարտեզի ցուցադրումը Ոտքով զբոսնելն (Hiking) Մոտոցիկլ Նավակ Ինքնաթիռ - Դուք պատրաստվում եք ջնջել %1$d OSM փոփոխություններ: Համոզված եք? + Դուք համոզված եք,որ ուզուն եք ջնջել %1$d OSM փոփոխություններ\? Խնդրում ենք սկզբից հաշվարկել երթուղին Կիրառել հաշվարկված երթուղու օգտագործումը Կիրառեք օգտագործվող GPX տրեկը @@ -1352,7 +1352,7 @@ Մեծ Բրիտանիան, Հնդկաստանը և այլն Ավստրալիա Հայտարարել… - Կարգավորել հնչեցումը՝ Փողոցների անվանումների, նախազգուշացումների (պառկած ոստիկանների, «Շարժումը առանց դադարեցնելու արգելված է»), արագության տեսախցիկներ, արագության սահմանափակումներ։ + Նշեք հնչեցումը՝ Փողոցների անվանումների, նախազգուշացումների (պառկած ոստիկանների, «Շարժումը առանց դադարեցնելու արգելված է»), արագության տեսախցիկներ, արագության սահմանափակումներ։ Փողոցների անունները (TTS) Արագության սահմանափակում Արագության վերահսկման տեսախցիկներ @@ -1401,7 +1401,7 @@ GPX Շենքեր չեն գտնվել: Ընտրեք քաղաք - Որոնել ըստ գյուղի և փոստային բաժանմունքի(ինդեքսի) + Որոնել ըստ գյուղի/ փոստային բաժանմունքի(ինդեքսի) Ընտրեք, թե ինչպես ցույց տալ միայն ճանապարհային քարտեզները՝ Միայն ճանապարհների քարտեզները Գործարկել հավելվածը անվտանգ ռեժիմում (դանդաղեցնում է հավելվածի աշխատանքը, օգտագործելով միայն Android գործառույթները): @@ -1446,18 +1446,18 @@ Զբոսաշրջիկների համար Լիցքավորման կետեր Ցույց տալ ազդանշանները… - Ցույց տալ արագության սահմանափակումները, արագաչափ տեսախցիկները, թունելները և արհեստական անհարթությունները (speed bumps)։ + Նշեք արագության սահմանափակումները, արագաչափ տեսախցիկները, թունելները և արհեստական անհարթությունները (speed bumps)։ Նավարկել կողմնացույցի օգնությամբ, եթե շարժման ուղղությունը հայտնի չէ։ Օգտագործեք կողմնացույցը - Խուսափել ավտոմայրուղիներից + Առանց ավտոմայրուղիներից Ավտոմատ կերպով փոխել քարտեզի մասշտաբը ըստ արագությանը։ Ավտո-մասշտաբ Կապել ընթացիկ դիրքը ճանապարհին։ Կապել ճանապարհին - Ձայնային հուշումների դադար, երաժշտական նվագարկում։ + Ձայնային հրահանգներ դադարեցնում են երաժշտության նվագումը։ Ընդհատել երաժշտությունը OsmAnd քարտեզներ և նավիգացիա - OsmAnd - ճանապարհորդելու համար նավիգացիոն ծրագիր է բաց կոդով + Գլոբալ քարտեզի դիտում և նավարկություն online և offline, OSM քարտեզների հիման վրա ամբողջ աշխարհում OsmAnd (OSM Automated Navigation Directions) \n \nOsmAnd-ը բաց կոդով նավիգացիոն ծրագիր է, որը հնարավորություն է տալիս մուտք գործել համաշխարհային OpenStreetMap (OSM) տվյալների լայն շրջանակ: Բոլոր քարտեզները (վեկտորային կամ կղմինդր) և դրա հետ կապված տվյալները կարող են պահվել հեռախոսի հիշողության քարտում անցանց օգտագործման համար: Առաջարկվում է նաև անցանց և առցանց երթուղիների ֆունկցիոնալություն, այդ թվում`մանրամասն ձայնային ուղեցույց: @@ -1641,8 +1641,8 @@ Քարտեզի ոճը Կարգավորել էկրանը Ցույց տար երթևեկության գոտիները - Խուսափել չմշակված ճանապարհներից - Խուսափել լաստանավերից + Առանց չմշակված ճանապարհներից + Առանց լաստանավերից Երթուղին կառուցման ժամանակ խուսափել… Լյումինեսցենտային երթուղիներ Քանոն @@ -1653,11 +1653,11 @@ Անջատեք \nֆոնային ռեժիմի Մշտական - Էկրանի բացելու համար թակել կողպեքի պատկերակին + Հպեք կողպեքի պատկերակին բացելու համար Փողոցի անունը Կարգավորել էկրանը Որտեղ եմ ես - Կողպել էկրանը + Կողպել Կողմնացույց Վերականգնել սկզբնական պարամետրերը Կայանատեղ @@ -1670,13 +1670,13 @@ Հաջորդ շրջադարձը (փոքր) Երկրորդ շրջադարձ Երթուղու ֆոքր քարտեզը - Կողպել էկրանը - Բացել էկրանը + Կողպել + Բացել Էկրանի կողպված է Սահմանել արթնացնման ժամանակահատվածը՝ Ցույց տալ արագաչափ տեսախցիկները Ցույց տալ արագության սահմանափակումը - Խուսափել վճարովի ճանապարհներից + Առանց վճարովի ճանապարհներից Նախորդ երթուղին չի ավարտվել: Շարունակել հետևել այն\? (%1$s վայրկյան) Երթուղին կվերահաշվարկվի դիրը որոշելուց հետո Ժամ @@ -1686,11 +1686,11 @@ Հատկացված հիշողություն %1$s ՄԲ(Android սահմանափակում %2$s ՄԲ, Dalvik %3$s ՄԲ)։ Հատկացված է հիշողություն Ընդհանուր ֆիզիկական հիշողությունը - Երթուղու սկիզբը շատ հեռու է մոտակա ճանապարհից: + Մեկնման կետը շատ հեռու է մոտակա ճանապարհից: Ընդհանուր վայրեր Վերցնել մեքենան կայանատեղից Զգուշացում - Օրացույցին արդեն ավելացվել է հիշեցում սահմանափակ կայանատեղի վերաբերյալ: Ձեզ հարկավոր է լինելու ձեռքով հեռացնել այն: + Օրացույցին ավելացվել է հիշեցում կայանատեղի սահմանափակման վերաբերյալ, որտեղ այն կարող է փոփոխվել կամ հեռացվել։ Սահմանեք առավելագույն ժամկետը կայանատեղի համար Ցանկանում եք ջնջել կայանատեղի նշանը\? Ջնջել կայանատեղի նշանը @@ -1740,8 +1740,8 @@ Սխմեք ցանկացած տարր,տեսնել ավելի մանրամասն տեղեկություններ տեսնելու համար, սխմեք և երկար պահեք`անջատելու կամ ջնջելու համար: Սարքի ընթացիկ տվյալները (%1$s ազատ է)՝ Մեկնարկի դիքը դեռ որոշված չէ։ Որոշում ենք գտնվելու վայրը։ - Փոփոխել թափանցիկությունը (0 - թափանցիկ, 255 - անթափանցիկ) - Ընդհատել ֆայլի ներբեռնումը? + Նշել թափանցիկությունը (0 - թափանցիկ, 255 - անթափանցիկ) + Ընդհատել ներբեռնումը\? Շնորհակալություն OsmAnd-ի օգտագործման համար: Հավելվածըօգտագործելու համար պահանջվում են մանրամասն քարտեզներ, որոնք կարելի է ներբեռնել հետևյալ կերպ \"Կառավարում\"→\"Քարտեզների կառավարում\"։ Ներբեռնումից հետո Դուք կարող եք դիտել քարտեզներ, որոնել հասցեներ, POI և հասարակական տրանսպորտ։ Հիմնական քարտեզը անհրաժեշտ է հավելվածի ճիշտ աշխատանքի համար և ավտոմատ ընտրված է ներբեռնելու համար: Առցանց և քեշավորված քարտեզներ (tile maps) @@ -1750,7 +1750,7 @@ Միացրեք «Online maps» plugin-ը տարբեր քարտեզային աղբյուրներ ընտրելու համար Առցանց քարտեզներ Օգտագործեք առցանց քարտեզներ (ներբեռնեք և քեշավորեք սալիկներ(tiles) SD քարտում)։ - «Կարգավորումներ» առցանց քարտեզների և շերտերի(tile) աղբյուրների։ + Ընտրեք առցանց կամ պահված քարտեզների սալիկը(tiles) աղբյուրները: Պլագիններ Plugins-ը ակտիվացնում է հավելվածի լրացուցիչ հնարավորությունները։ Պլագիններ @@ -1784,7 +1784,7 @@ արևելք արևելք-հարավ-արևելք հարավ-արևելք - հարավ-հարավ արևելյան + հարավ-հարավ-արևելյան հարավ հարավ-հարավ-արևմուտք հարավ-արևմուտք @@ -1829,13 +1829,13 @@ Միշտ օգտագործել անցանց խմբագրումը։ POI-ի փոփոխությունը հավելվածի մեջ չի ազդում ներբեռնված POI-րի վրա, փոփոխությունները պահպանվում են տեղական ֆայլում: Վերբեռնուն… - {0} POI/Նշումները վերբեռնվեցին + {0} POI/նշումները վերբեռնվեցին Վերբեռնել բոլորը - Վերբեռնել փոփոխությունը OSM-ը + Վերբեռնել փոփոխությունները OSM-ը Ջնջել փոփոխությունները Asynchronous OSM խմբագրում՝ - Անցանց(տեղում) պահպանված OSM POIs/Նշումները - Ցույց տալ և կառավարել OSM POIs/Նշումները, որոնք տեղադրված են տեղական(սարի վհա) տվյալների բազայում։ + Սարքում պահպանված OSM POIs/նշումները + Ցույց տալ և կառավարել OSM POIs/նշումները, որոնք տեղական(սարի վհա) տվյալների բազայում են։ Նշել առցանց դիտարկման ժամանակահատվածը։ Առցանց վերահսկողության ժամանակահատված Նշեք կայքի հասցեն`պարամետրերի շարադրանքով` lat={0}, lon ={1}, timestamp ={2}, hdop ={3}, բարձրությունը ={4}, արագ ={5}, bearing={6}։ @@ -1861,8 +1861,8 @@ Ավստրալիա և Օվկիանիա Համաշխարհային քարտեզներ Վիքիպեդիա - Ձայնային հուշում (արձանագրված, սահմանափակ հնարավորություններ) - Ձայնային հուշում (TTS-սինթեզված, նախընտրելի է) + Ձայնային հուշումներ (արձանագրված, սահմանափակ հնարավորություններով են) + Ձայնային հուշում (TTS, նախընտրելի է) Վիքիպեդիա (անցանց) Օգտվողի կողմից սահմանված «Սիրված»(Favorites) ֆայլը արդեն գոյություն ունի: Փոխարինել այն\? @@ -1875,7 +1875,7 @@ Էկրանի պարամետրերը, տեղայնացում, միավորներ և այլն։ Հավելվածի ընդհանուր կարգավորումները Ձեր OSM օգտվողի անունը (username) - Նշեք OSM-ի օգտվողի անունը (պահանջվում է OSM-ի հետ աշխատելու համար)։ + Անհրաժեշտ է openstreetmap.org մուտք գործելու համար։ Ձեր OSM գաղտնաբառը Ֆոնային ռեժիմ Աշխատեցնում է OsmAnd-ը ֆոնային ռեժիմում երբ էկրանը անջատված է։ @@ -1902,11 +1902,11 @@ Խոշոր քաղաք Ավարտել մոդելավորում Սկսեք մոդելավորում - Ֆայլը հնարավոր չե վերանվանել: + Չհաջողվեց վերանվանել ֆայլը: Նման անվանումով Ֆայլը արդեն գոյություն ունի: GPX երթուղին - Ոմանք POI կատեգորիաները համապատասխանում են հարցմանը, դուք կարող եք օգտագործել դրանք ֆիլտր ստեղծելու համար՝ - POIs-ի որոնման համար տեղական տվյալները չգտնվեցին: + Գտնվեց մի զարք փոխկապակցված POI կատեգորիաներ: + POIs-ի որոնման համար ներբեռնեք տեղական տվյալները: Որոնել ըստ անվան POI-ի տվյալները «%1$s» հնացած են և կարող են ջնջվել: Թարմացվող POI-ների ֆայլը չի գտնվել և չի կարող ստեղծվել: @@ -1980,11 +1980,11 @@ Ընտրեք ձայնային հրահանգների համար։ Հեռախոսազանգի աուդիո (ընդհատում BT) Ծանուցման հոսքը - Երաժշտության հոսքը + Երաժշտության/նավարկություն հոսքը Քարտեզի շերտը %1$s չի կարող ներբեռնված լինել հավելվածով, փորձեք կրկին տեղադրեք այն: Փոխել overlay քարտեզի թափանցիկությունը։ Ծածկույթի թափանցիկությունը - Փոխել հիմնական քարտեզի թափանցիկությունը։ + Կարգավորել հիմնական քարտեզի թափանցիկությունը։ Հիմնական քարտեզը թափանցիկությունը Տակդիր քարտեզ… Տակդիր քարտեզ @@ -2007,7 +2007,7 @@ \nOsmAnd-ի հատուկ քարտեզների add-on-ը կտրամադրի բոլոր ծովային նավագնացության նշանները և աղյուսակը, ներքին, ինչպես նաև մոտակա նավարկության համար: Յուրաքանչյուր նավագնացության նշանի նկարագրությունը ապահովում է նրանց և դրանց իմաստը հայտնաբերելու համար անհրաժեշտ մանրամասները(կատեգորիա, ձև, գույն, հաջորդականություն, հղում և այլն): \n \nOsmAnd-ի ավանդական քարտեզի ոճերից մեկին վերադառնալու համար պարզապես կամ ապաակտիվացրեք այս հավելվածը կամ ըստ ցանկության փոխեք «Քարտեզի ոճը» «Քարտեզի կարգավորում» մենույում: - Ընտրել ծրագրի լեզուն (ուժի մեջ է մտնում OsmAnd-ի վերագործարկից հետո)։ + Հավելվածի լեզուն (ուժի մեջ է մտնում OsmAnd-ի վերագործարկումից հետո)։ Տեղայնացումը (լեզուն) թերի Երկարության և արագության չափման միավորներ։ @@ -2066,7 +2066,7 @@ OsmAnd-ի offline նավարկությունը փորձարարական է և չի աշխատում ավելի քան 20 կիլոմետր հեռավորության վրա: \n \nԱյս դեպքում ժամանակավորապես կօգտագործվի CloudMade առցանց ծառայությունը երթուղին հաշվարկելու համար: - Նշված գրացուցակը(folder) հնարավոր չէ գտնել: + Հնարավոր չէ գտնել նշված թղթապանակը(folder)։ Հին տեղադրված հավելվածում բոլոր անցանց(offline) տվյալները աջակցվում են հավելվածի նոր տարբերակում,այնուամենայնիվ «Սիրված»(Favorite) կետերը պետք է բեռնաթափվեն հավելվածի նախորդ տարբերակից և բեռնվեն նորի մեջ: Հավաքացուն {0} տեղադրված ({1}): Հավաքացուն ներբեռնվում է… @@ -2075,13 +2075,13 @@ Ներբեռնվում են OsmAnd-ի հավաքացուները… Ընտրեք OsmAnd-ի տարբերակներից մեկը տեղադրելու համար \"GPS status\" հավելվածը չի գտնվել: Որոնել Google Play-ում? - Ձայնայիի հրահանգները մատչելի չէն: Գնացեք «Կարգավորումներ» → «Նավիգացիոն կարգավորումներ» → «Ձայնային տվյալներ» և նշեք ձայնային տվյալները կամ ներբեռնեք դրանք: - Ձայնի տվյալներ ընտրված չեն + Ձայնայիի հրահանգները մատչելի չէն: Անցեք «Կարգավորումներ» → «Նավիգացիոն կարգավորումներ», ընտրեք պրոֆիլը → «Ձայնային տվյալներ» և նշեք ձայնային տվյալները կամ ներբեռնեք դրանք: + Ընտրեք ձայնային տվյալների փաթեթը Ցերեկային Գիշերային Արևածագ/մայրամուտ Լույսի սենսոր - Ընտրեք քարտեզի ցերեկային/գիշերային ռեժիմը։ + Կարգավորեք քարտեզի ցերեկային/գիշերային ռեժիմը։ Ցերեկային/գիշերային ռեժիմ Ներբերնել {0} ֆայլ(եր) ({1} ՄԲ)? Ընտրվեց {0} @@ -2089,7 +2089,7 @@ Արագընթաց երթուղի Հաշվարկել արագընթաց երթուղի փոխարեն ամենակարճ։ Ներբեռնել քարտեզ - Ընտրեք առավելագույն մասշտաբ տեսանելի տարածքի ներբեռնման համար + Առավելագույն մասշտաբ տեսանելի տարածքի ներբեռնման համար Ընտրված քարտեզը չի կարող ներբեռնված լինել Շարունակական rendering Ընտրեք քարտեզի ցուցադրուման ձևը։ @@ -2108,7 +2108,7 @@ Տրանսպորտային որոնման արդյունքը (մինչ նպատակակետ {0})՝ Տրանսպորտի որոնում նորից Ձայնային տվյալները (ձայնագրություն) - Ձայնային տվյալներ(հրահանգներ) + Ձայնային հրահանգներ Վեկտորային(offline) քարտեզները ներբեռնված չեն հավելվածի մեջ GPX ֆայլերը չեն գտնվել թղթապանակում GPX ֆայլեր… @@ -2166,7 +2166,7 @@ Ձայնային տվյալները Initializing… Ձայնային տվյալները չեն ապահովվում հավելվածի ընթացիկ տարբերակով Ընտրված ձայնային տվյալները սխալ ձևաչափի են - Ընտրված ձայնային տվյալները հասանելի չեն + Ընտրված ձայնային հրահանգներ հասանելի չեն SD քարտը հասանելի չէ: \nԴուք չեք կարողանա աշխատել քարտի հետ: SD քարտը միայն կարդալու համար: @@ -2229,9 +2229,9 @@ Առցանց որոնում Մանրամասների մակարդակ Ընդհանուր հեռավորությունը = %1$s, ճանապարհորդության ժամանակը = %2$d ժ %3$d րոպ․։ - Ընտրեք առցանց կամ անցանց նավարկության ծառայություն: + Առցանց կամ անցանց նավարկության ծառայություն: Երթուղու հաշվարկում - SD քարտի տվյալների պահեստավորման պանակը հասանելի չէ: + SD քարտի պահեստավորման պանակը հասանելի չէ: Ցանկանում եք ներբեռնել {0} - {1} ? {0} տեղական(offline) քարտեզը արդեն առկա է ({1}): Թարմացնել այն ({2})\? Հասցե @@ -2264,7 +2264,7 @@ Նոր երթուղի հաշվարկվեց, հեռավորությունը Դուք ժամանել եք։ Սխալ կոորդինատներ - Վերադառնալ OsmAnd քարտեզին + Վերադառնալ քարտեզին Տվյալների բեռնում… Տեղական(offline) տվյալների ընթերցում… Հավելվածը ճիշտ չի ավարտվել իր աշխատանքը: «Log» ֆայլը գտնվում է {0}։ Տեղեկացրեք ծրագրավորողներին սխալի մասին և կցեք «Log» ֆայլը: @@ -2288,7 +2288,7 @@ Ընտրեք երկիրը Միացնել քարտեզի 3D ռեժիմը: Քարտեզի 3D տեսք - Ցուցադրել վերջին ընտրած POI-ին քարտեզի վրա: + Ցուցադրել վերջին օգտագործված POI-ները քարտեզի վրա: Ցույց տալ POI-ի Քարտեզի աղբյուրը Օգտագործել Ինտերնետը @@ -2305,7 +2305,7 @@ Ընտրեք շենք Ընտրեք տարածաշրջան ցանկից Ընտրեք խաչմերուկ - Մոտակա ծառայությունները + Ծառայություններ մոտակայքում Ավտոմեքենա Հեծանիվ Հետիոտն @@ -2314,10 +2314,10 @@ Մուտքագրեք լայնությունը և երկայնությունը հետեւյալ ձևաչափով (D - աստիճան, M - րոպե, S - վայրկյան) Երկարություն Լայնություն - DDD.DD - DDD MM.MM - DDD MM SS.SS - Ընտրեք հասցե + DDD.DDDDD + DDD MM.MMM + DDD MM SS.S + Հասցե Մարզ Քաղաք Փողոց @@ -2339,7 +2339,7 @@ Հանգույցը չի կարող գտնվել, կամ poi բաղկացած է մի քանի հանգույցներից, որ առայժմ չի աջակցվվում։ Ջնջել {0} (comment)\? POI ջնջում - POI ջնջվել է + Նջված է ջնջել {0} գործողությունը ավարտվեց: Չհաջողվեց կատարել գործողությունը {0}։ @@ -2353,15 +2353,15 @@ Հաստատել Ֆիլտր Տեսախցիկի ֆոկուսի ռեժիմը - Ընտրեք ներքին տեսախցիկի ֆոկուսի ռեժիմը: - Ավտո ֆոկուս + Ներքին տեսախցիկի ֆոկուսի ռեժիմը: + Ավտոֆոկուս Hyperfocal ֆոկուս Ընդլայնված դաշտը (EDOF) Ֆոկուսը անսահմանության վրա Մակրո ռեժիմ Շարունակական ֆոկուս Անջատիչի ձայնը - Ընտրեք, արդյոք, լուսանկարելիս նվագել անջատիչի ձայնը: + Արդյոք, լուսանկարելիս նվագել անջատիչի ձայնը: Լուսանկարի չափը Ընտրեք տեսախցիկի և պատկերի չափը Սխալ ձևաչափ՝ %s @@ -2370,7 +2370,7 @@ Երթուղու խելացի վերահաշվարկ Երկար ուղեւորությունների ժամանակ միայն վերահաշվարկել երթուղու նախնական մասը: Ձեզ դուր է գալիս OsmAnd? - Մենք շատ ենք հետաքրքրված ձեր կարծիքով, և մեր համար կարևոր է ձեր արձագանքը: + Մեր համար կարևոր է ձեր արձագանքը: Գնահատել հավելվածը Խնդրում ենք գնահատել OsmAnd-ը Google Play-ում Ասեք մեզ, թե ինչու։ @@ -2495,19 +2495,19 @@ Ջնջել գործողությունը Վստահ եք, որ ցանկանում եք ջնջել գործողությունըվ «%s»? Ցուցադրել «Սիրված» համար երկխոսությունը - Սեղմելով գործողության կոճակը, էկրանի կենտրոնում կտեղադրվի մարկեր: - Սեղմելով գործողության կոճակը, էկրանի կենտրոնում կտեղադրվի GPX կետ: - Սեղմելով գործողության կոճակը, էկրանի կենտրոնում կտեղադրվի աուդիո նշում: - Սեղմելով գործողության կոճակը, էկրանի կենտրոնում կտեղադրվի վիդեո նշում: - Սեղմելով գործողության կոճակը, էկրանի կենտրոնում կտեղադրվի լուսանկարային նշում: - Սեղմելով գործողության կոճակը, էկրանի կենտրոնում կտեղադրվի OSM նշում: - Սեղմելով գործողության կոճակը, էկրանի կենտրոնում կտեղադրվի POI: - Սեղմելով գործողության կոճակը, կանջատի կամ կակտիվացնի ձայնային ուղեցույցը նավիգացիայի ընթացքում: - Սեղմելով գործողության կոճակը, էկրանի կենտրոնում կտեղադրվի ավտոկայանատեղ: + Գործողության կոճակը, կտեղադրի էկրանի կենտրոնում մարկեր: + Գործողության կոճակը, կտեղադրի էկրանի կենտրոնում GPX կետ: + Գործողության կոճակը, կտեղադրի էկրանի կենտրոնում աուդիո նշում: + Գործողության կոճակը, կտեղադրի էկրանի կենտրոնում վիդեո նշում: + Գործողության կոճակը, կտեղադրի էկրանի կենտրոնում լուսանկարային նշում: + Գործողության կոճակը, կտեղադրի էկրանի կենտրոնում OSM նշում: + Գործողության կոճակը, կտեղադրի էկրանի կենտրոնում POI: + Գործողության կոճակը, կանջատի կամ կակտիվացնի ձայնային ուղեցույցը նավիգացիայի ընթացքում: + Գործողության կոճակը, կտեղադրի էկրանի կենտրոնում ավտոկայանատեղ: Ցույց տալ միջանկյալ երկխոսությունը " պահպանված է " Տեղ - Արագ գործողության համար նշված անունն արդեն օգտագործված է: Կպահպանվի որպես %1$s, կրկնօրինակումը կանխելու համար: + Արագ գործողության անունն փոխվել է: Կպահպանվի որպես %1$s, կրկնօրինակումը կանխելու համար: Կրկնօրինակ անուն գտնվեց Սեղմելով գործողության կոճակը ցույց կտա կամ կթաքցնի «Սիրված» կետերը քարտեզի վրա: Սեղմելով գործողության կոճակը ցույց կտա կամ կթաքցնի POI կետերը քարտեզի վրա: @@ -2524,11 +2524,11 @@ Թողնել դատարկ, որ օգտագործել հասցե կամ վայրի անվանումը. Այս հաղորդագրությունը ներառված է մեկնաբանության դաշտում: Հաղորդագրություն - Ընտրեք կատեգորիա, «Սիրված»-ում պահպանելու համար: + Կատեգորիա «Սիրված»-ում պահպանելու համար: Ընտրեք լրացուցիչ կատեգորիա: POI ցուցակ Քարտեզի վրա ցուցադրելու համար կարող եք ավելացնել մեկ կամ ավելի POI դասակարգեր: - Սեղմելով գործողության կոճակը թույլ կտա ցիկլային եղանակով անցնել տարբեր տարրերը այս ցանկում։ + Գործողության կոճակ, որը թույլ կտա ցիկլային եղանակով անցնել տարբեր տարրերը այս ցանկում։ Ավելացնել քարտեզի ոճը Լրացրեք բոլոր պարամետրերը Քարտեզների ոճը @@ -2547,7 +2547,7 @@ Փոխել կոճակի դիրքը Երկարատև սեղմումը և քաշելը փոխում է կոճակի դիրքը էկրանի վրա։ Գործողության անունը - Mapillary-ից լուսանկարներ դիտելու համար Ձեզ անհրաժեշտ է Ինտերնետ: + Mapillary-ից լուսանկարները հասանելի են միյան առցանց: Կրկնել Տրեկի (track) կետերը Ավելացնել խումբ @@ -2563,9 +2563,9 @@ Կետ 1 Երթուղու կետ 1 Ավելացնել GPX ֆայլերը - Ներմուծեք GPX ֆայլեր կամ տրեկների գրառում կատարեք: + Ներմուծեք GPX ֆայլեր կամ տրեկների գրառում: Ավելացնել «Սիրված»-եր - Ավելացնել «Սիրված»-եր քարտեզի վրա կամ ներմուծեք ֆայլից։ + «Սիրված»-երը կարող եք ներմուծել կամ ստեղծել, նշելով կետեր քարտեզի վրա։ Ներմուծել GPX ֆայլը Ֆայլ %1$s չի պարունակում կետեր, ներմուծել այդ որպես տրեկ? Տեղափոխել կետը @@ -2644,11 +2644,11 @@ Էկրանի կողմնորոշումը (Screen orientation) Ընտրեք էկրանի կողմնորոշումը (Portrait, landscape, or device): Հնարավոր չէ բեռնել տվյալների սերվերից։ - Նշեք առավելագույն մաշտաբը առցանց քարտեզի սալիկները ներբեռնելու համար: + Նշեք առավելագույն մաշտաբը առցանց քարտեզը ներբեռնելու համար: Սալիկային(ռաստրային) քարտեզների աղբյուրը Կարգավորում(Setup) նավարկության: Քարտեզի դիտում - Քարտեզի որոնում + Որոնում Քարտեզի վրա Նախադրվածի(preset) անունը Ավելացնել կետեր երթուղուն OSM ստացողներ @@ -2671,7 +2671,7 @@ Ձմեռային և լեռնադահուկային Զբոսաշրջական տեսք Ծովային - Պատճենահանել կետի անվանումը / POI + Պատճենահանել POI գտնվելու վայրը/անվանումը Դիրքը անուն չունի Առջևում թունել է Թունելներ @@ -2907,4 +2907,28 @@ Սահմանեք նավի բարձրությունը Սահմանեք նավի բարձրությունը`խուսափելու համար ցածր կամուրջներից: Հիշեք, եթե կամուրջը շարժական է, մենք կօգտագործենք դրա բարձրությունը բաց վիճակում: Նեղ կամուրջներից խուսափելու համար նշեք նավի լայնությունը + Միացման կոճակ + Մոտեցման ցուցիչ + Էկրանի միացած ժամանակը միացնելուց հետո։(«%1$s» անջատում է էկրանը անջատման ֆուկցիյան։) + Պահել էկրանի միացված + Պահել էկրանի անջատված + Մերկատորի կեղծ նախագծումը + Յուրաքանչյուր սալիկ իր ֆայլում + Файл SQLiteDB + Նշեք առցանց քարտեզի աղբյուրի անունը: + Մուտքագրեք կամ տեղադրեք առցանց աղբյուրի URL- ն: + Փոխել առցանցի աղբյուրը + Պիտանիության ժամկետը + Մերկատորի նախագծումը + Պահպանման ձևաչափը + Այս պարամետրերը ազդում են ցուցադրման վրա, երբ օգտագործվում են որպես քարտ կամ ենթաշերտ: +\n +\n%1$s: քարտեզը կսահմանափակվի ընտրված խոշորացման մակարդակներով: +\n +\n%2$s: խոշորացման մակարդակները, որոնցում տեսանելի կլինեն բնօրինակ սալիկները; մաշտաբի խոշորացնելը կամ պոքրացումը կարող են լինեն այդ արժեքներից դուրս: + Պահված սալիկները վերա-ներբեռնվեն նշված րոպեներից հետո: Թողեք այս դաշտը դատարկ, որպեսզի երբեք չթարմացվեն սալիկները այս աղբյուրի համար: +\n +\nՄի օր - 1440 րոպե: +\nՄեկ շաբաթ - 10.080 րոպե: +\nՄեկ ամիս - 43.829 րոպե: \ No newline at end of file From 09851d73a92b723b1ba6273ff472b92602850bb6 Mon Sep 17 00:00:00 2001 From: ce4 Date: Sun, 14 Jun 2020 11:51:17 +0000 Subject: [PATCH 086/107] Translated using Weblate (German) Currently translated at 100.0% (3804 of 3804 strings) --- OsmAnd/res/values-de/phrases.xml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/OsmAnd/res/values-de/phrases.xml b/OsmAnd/res/values-de/phrases.xml index 3e324f6503..ca5106565e 100644 --- a/OsmAnd/res/values-de/phrases.xml +++ b/OsmAnd/res/values-de/phrases.xml @@ -396,7 +396,7 @@ Steinbruch Rennstrecke Racquetball - Radiotechnikladen + Funktechnik/Elektronikladen Eisenbahnhaltestelle Bahnsteig Bahnhof @@ -475,7 +475,7 @@ Gebrauchtwarenladen Reifenhändler SES-Station - Schneiderei + Nähbedarf Unterstand Schiffsausrüster Historisches Schiff @@ -616,7 +616,7 @@ Lebensmittelgeschäft und Supermarkt Notfall Straßenhindernis - Tankstelle (alle Fzg.) + Tankstelle (alle Typen) ÖPNV von Menschenhand Wasserversorgung @@ -713,7 +713,7 @@ Forstwald Reservoir Allgemeine Sehenswürdigkeit - Biokraftstoff + Pflanzenölkraftstoff Übungsgelände Quartier Jagdhütte @@ -808,7 +808,7 @@ Gartenmöbelladen Ledergeschäft Musikgeschäft - Gerätetaucherbedarf + Tauchgerätebedarf Reifengeschäft Uhrengeschäft Poolzubehörgeschäft @@ -915,7 +915,7 @@ Reifen TV und Monitore Flaschen - Korken + Kork Druckerpatronen Farben Styropor @@ -948,7 +948,7 @@ Recyclingzentrum Aluminium Weiße Ware - Speiseöl + Frittieröl Motoröl Giftmüll Quecksilber @@ -1644,7 +1644,7 @@ Gartenstil: Küchengarten Gartenstil: Rosengarten Gartenstil: französisch - Liebeshotel + Stundenhotel Elektronische Geldbörsen UTA UTA-Karten nicht akzeptiert @@ -2800,7 +2800,7 @@ Signalton U-Bahnstation Spezialisierung - Charakteristisch + Flugmerkmale Religion Informationsinhalt Zusätzlich @@ -3621,7 +3621,7 @@ Zufahrt Fahrzeuge: ja Zufahrt Fahrzeuge: privat Zufahrt Fahrzeuge: nein - Zufahrt Fahrzeuge: für Anlieger + Zufahrt: Anlieger frei Zufahrt Fahrzeuge: gestattet Zufahrt Fahrzeuge: Kunden Zufahrt Fahrzeuge: militärisch From 6a0e5a16453bfef190ee4842de567f19648ac533 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=2E=20R=C3=BCdinger?= Date: Sun, 14 Jun 2020 12:00:14 +0000 Subject: [PATCH 087/107] Translated using Weblate (German) Currently translated at 100.0% (3804 of 3804 strings) --- OsmAnd/res/values-de/phrases.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-de/phrases.xml b/OsmAnd/res/values-de/phrases.xml index ca5106565e..9fa9a6b919 100644 --- a/OsmAnd/res/values-de/phrases.xml +++ b/OsmAnd/res/values-de/phrases.xml @@ -1914,7 +1914,7 @@ Kunstart: Statue Kunstart: Wandgemälde Kunstart: Architektur - Kunstart: Bild + Kunstart: Gemälde Kunstart: Stein Kunstart: Büste Kunstart: Installation From 8b5bd59d6044c32f4fd96971f98a1a6e88602c70 Mon Sep 17 00:00:00 2001 From: Hakuchi Date: Sun, 14 Jun 2020 12:01:27 +0000 Subject: [PATCH 088/107] Translated using Weblate (German) Currently translated at 100.0% (3804 of 3804 strings) --- OsmAnd/res/values-de/phrases.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-de/phrases.xml b/OsmAnd/res/values-de/phrases.xml index 9fa9a6b919..34361c5b27 100644 --- a/OsmAnd/res/values-de/phrases.xml +++ b/OsmAnd/res/values-de/phrases.xml @@ -2162,7 +2162,7 @@ Treppenzustand: schlecht Steinhügel Fassadendekoration - Art: Kriegsgräber + Art: Kriegsgrab Art: Hügelgrab Art: Felsgrab Art: Hypogäum From 63d3852aeedc1834f314f5ffe8689a4728740f3c Mon Sep 17 00:00:00 2001 From: Yldun Date: Sun, 14 Jun 2020 13:38:38 +0000 Subject: [PATCH 089/107] Translated using Weblate (French) Currently translated at 99.9% (3803 of 3804 strings) --- OsmAnd/res/values-fr/phrases.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OsmAnd/res/values-fr/phrases.xml b/OsmAnd/res/values-fr/phrases.xml index 2bb47af800..68e934c548 100644 --- a/OsmAnd/res/values-fr/phrases.xml +++ b/OsmAnd/res/values-fr/phrases.xml @@ -3820,4 +3820,8 @@ Uniquement si la marche est autorisée Signal pour trouver le pôle Pression + Aspiration + Pressurisé + Eaux souterraines + Tuyau \ No newline at end of file From 591fa4e6a78f1f6d61ea2e9b56013c3452900c47 Mon Sep 17 00:00:00 2001 From: Nazar-Kutz Date: Mon, 15 Jun 2020 13:41:46 +0300 Subject: [PATCH 090/107] Using same language for track names --- .../osmand/plus/activities/SavingTrackHelper.java | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/activities/SavingTrackHelper.java b/OsmAnd/src/net/osmand/plus/activities/SavingTrackHelper.java index e245642401..143ada1ae6 100644 --- a/OsmAnd/src/net/osmand/plus/activities/SavingTrackHelper.java +++ b/OsmAnd/src/net/osmand/plus/activities/SavingTrackHelper.java @@ -212,13 +212,12 @@ public class SavingTrackHelper extends SQLiteOpenHelper { log.debug("Filename: " + f); File fout = new File(dir, f + IndexConstants.GPX_FILE_EXT); if (!data.get(f).isEmpty()) { - Locale locale = Locale.getDefault(); WptPt pt = data.get(f).findPointToShow(); - String fileName = f + "_" + new SimpleDateFormat("HH-mm_EEE", locale).format(new Date(pt.time)); //$NON-NLS-1$ - Integer track_storage_directory = ctx.getSettings().TRACK_STORAGE_DIRECTORY.get(); - if (!track_storage_directory.equals(OsmandSettings.REC_DIRECTORY)) { - SimpleDateFormat dateDirFormat = new SimpleDateFormat("yyyy-MM", locale); -// if (track_storage_directory == OsmandSettings.DAILY_DIRECTORY) { + String fileName = f + "_" + new SimpleDateFormat("HH-mm_EEE", Locale.US).format(new Date(pt.time)); //$NON-NLS-1$ + Integer trackStorageDirectory = ctx.getSettings().TRACK_STORAGE_DIRECTORY.get(); + if (!OsmandSettings.REC_DIRECTORY.equals(trackStorageDirectory)) { + SimpleDateFormat dateDirFormat = new SimpleDateFormat("yyyy-MM", Locale.US); +// if (trackStorageDirectory == OsmandSettings.DAILY_DIRECTORY) { // dateDirFormat = new SimpleDateFormat("yyyy-MM-dd"); // } String dateDirName = dateDirFormat.format(new Date(pt.time)); @@ -370,7 +369,7 @@ public class SavingTrackHelper extends SQLiteOpenHelper { if(!newInterval) { segment.points.add(pt); } - String date = DateFormat.format("yyyy-MM-dd", time).toString(); //$NON-NLS-1$ + String date = new SimpleDateFormat("yyyy-MM-dd", Locale.US).format(new Date(time));; //$NON-NLS-1$ if (dataTracks.containsKey(date)) { GPXFile gpx = dataTracks.get(date); gpx.tracks.add(track); From 1c290033265b20d24129d8de3749cff91fa38ed8 Mon Sep 17 00:00:00 2001 From: veliymolfar Date: Mon, 15 Jun 2020 15:31:47 +0300 Subject: [PATCH 091/107] fix app bar shadow blink --- OsmAnd/res/values/integer.xml | 4 ++++ .../plus/settings/fragments/BaseSettingsFragment.java | 10 ---------- .../settings/fragments/ConfigureMenuItemsFragment.java | 1 - .../settings/fragments/ConfigureMenuRootFragment.java | 1 - 4 files changed, 4 insertions(+), 12 deletions(-) create mode 100644 OsmAnd/res/values/integer.xml diff --git a/OsmAnd/res/values/integer.xml b/OsmAnd/res/values/integer.xml new file mode 100644 index 0000000000..9d68d19142 --- /dev/null +++ b/OsmAnd/res/values/integer.xml @@ -0,0 +1,4 @@ + + + 0 + \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/BaseSettingsFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/BaseSettingsFragment.java index c6675831b6..d0ed8f7515 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/BaseSettingsFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/BaseSettingsFragment.java @@ -14,7 +14,6 @@ import android.text.style.StyleSpan; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.view.animation.Animation; import android.widget.CompoundButton; import android.widget.ImageView; import android.widget.TextView; @@ -374,15 +373,6 @@ public abstract class BaseSettingsFragment extends PreferenceFragmentCompat impl } } - @Nullable - @Override - public Animation onCreateAnimation(int transit, boolean enter, int nextAnim) { - Animation anim = new Animation() { - }; - anim.setDuration(0); - return anim; - } - @Override public void onAppModeChanged(ApplicationMode appMode) { this.appMode = appMode; diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/ConfigureMenuItemsFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/ConfigureMenuItemsFragment.java index 347514ac18..f4ed5187ca 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/ConfigureMenuItemsFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/ConfigureMenuItemsFragment.java @@ -106,7 +106,6 @@ public class ConfigureMenuItemsFragment extends BaseOsmAndFragment ConfigureMenuItemsFragment fragment = new ConfigureMenuItemsFragment(); fragment.setScreenType(type); fragment.setAppMode(appMode); - fragment.disableTransitionAnimation(); fm.beginTransaction() .replace(R.id.fragmentContainer, fragment, TAG) .addToBackStack(CONFIGURE_MENU_ITEMS_TAG) diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/ConfigureMenuRootFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/ConfigureMenuRootFragment.java index 6307cd065d..330f1c0a18 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/ConfigureMenuRootFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/ConfigureMenuRootFragment.java @@ -74,7 +74,6 @@ public class ConfigureMenuRootFragment extends BaseOsmAndFragment { ConfigureMenuRootFragment fragment = new ConfigureMenuRootFragment(); fragment.setAppMode(appMode); fragment.setTargetFragment(target, 0); - fragment.disableTransitionAnimation(); fragmentManager.beginTransaction() .replace(R.id.fragmentContainer, fragment, TAG) .addToBackStack(null) From ed36afdacfea45250e1447713865d98fa5810c24 Mon Sep 17 00:00:00 2001 From: veliymolfar Date: Mon, 15 Jun 2020 15:58:09 +0300 Subject: [PATCH 092/107] fix divider margin --- OsmAnd/src/net/osmand/plus/dialogs/DetailsBottomSheet.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/dialogs/DetailsBottomSheet.java b/OsmAnd/src/net/osmand/plus/dialogs/DetailsBottomSheet.java index 1da1408bbf..7a6c4f1ee3 100644 --- a/OsmAnd/src/net/osmand/plus/dialogs/DetailsBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/dialogs/DetailsBottomSheet.java @@ -148,7 +148,10 @@ public class DetailsBottomSheet extends BasePreferenceBottomSheet { String attrName = property.getAttrName(); if (MORE_DETAILED.equals(attrName) || SHOW_SURFACE_GRADE.equals(attrName) || COLORED_BUILDINGS.equals(attrName) || STREET_LIGHTING.equals(attrName)) { - items.add(new DividerItem(app)); + int margin = (int) getResources().getDimension(R.dimen.content_padding); + DividerItem divider = new DividerItem(app); + divider.setMargins(margin, 0, 0, 0); + items.add(divider); } } } From 3de146746ccbb9d2715f77b78041ce1d0fd2814b Mon Sep 17 00:00:00 2001 From: Dima-1 Date: Mon, 15 Jun 2020 16:23:49 +0300 Subject: [PATCH 093/107] Fix #8556 fix #9234 Favorites/GPX waypoint editing dialog does not show Save button --- .../editors/PointEditorFragmentNew.java | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragmentNew.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragmentNew.java index ab1c279ed6..38ac1d2dce 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragmentNew.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragmentNew.java @@ -4,6 +4,7 @@ import android.annotation.SuppressLint; import android.app.Activity; import android.content.Context; import android.content.DialogInterface; +import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.graphics.drawable.GradientDrawable; import android.os.Build; @@ -87,6 +88,7 @@ public abstract class PointEditorFragmentNew extends BaseOsmAndFragment { private OsmandApplication app; private View descriptionCaption; private EditText descriptionEdit; + private int layoutHeightPrevious = 0; @SuppressLint("ClickableViewAccessibility") @Override @@ -281,10 +283,29 @@ public abstract class PointEditorFragmentNew extends BaseOsmAndFragment { return false; } }); - + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + view.getViewTreeObserver().addOnGlobalLayoutListener(getOnGlobalLayoutListener()); + } return view; } + private ViewTreeObserver.OnGlobalLayoutListener getOnGlobalLayoutListener() { + return new ViewTreeObserver.OnGlobalLayoutListener() { + @Override + public void onGlobalLayout() { + Rect visibleDisplayFrame = new Rect(); + view.getWindowVisibleDisplayFrame(visibleDisplayFrame); + int layoutHeight = visibleDisplayFrame.bottom; + if (layoutHeight != layoutHeightPrevious) { + FrameLayout.LayoutParams rootViewLayout = (FrameLayout.LayoutParams) view.getLayoutParams(); + rootViewLayout.height = layoutHeight; + view.requestLayout(); + layoutHeightPrevious = layoutHeight; + } + } + }; + } + @Override public void onResume() { super.onResume(); From 1c81cd1d73161dab8a4f4447863402c1f1bc679d Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Mon, 15 Jun 2020 17:41:52 +0300 Subject: [PATCH 094/107] Select tracks from map initial commit --- .../plus/mapcontextmenu/MenuController.java | 4 + .../SelectedGpxMenuController.java | 176 ++++++++++++++++++ .../src/net/osmand/plus/views/GPXLayer.java | 100 +++++++++- 3 files changed, 277 insertions(+), 3 deletions(-) create mode 100644 OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuController.java index 10189546ac..774a0b933a 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuController.java @@ -32,6 +32,7 @@ import net.osmand.data.TransportStop; import net.osmand.map.OsmandRegions; import net.osmand.map.WorldRegion; import net.osmand.plus.GpxSelectionHelper.GpxDisplayItem; +import net.osmand.plus.GpxSelectionHelper.SelectedGpxFile; import net.osmand.plus.MapMarkersHelper.MapMarker; import net.osmand.plus.OsmAndFormatter; import net.osmand.plus.OsmandApplication; @@ -59,6 +60,7 @@ import net.osmand.plus.mapcontextmenu.controllers.MapMarkerMenuController; import net.osmand.plus.mapcontextmenu.controllers.MyLocationMenuController; import net.osmand.plus.mapcontextmenu.controllers.PointDescriptionMenuController; import net.osmand.plus.mapcontextmenu.controllers.RenderedObjectMenuController; +import net.osmand.plus.mapcontextmenu.controllers.SelectedGpxMenuController; import net.osmand.plus.mapcontextmenu.controllers.TargetPointMenuController; import net.osmand.plus.mapcontextmenu.controllers.TransportRouteController; import net.osmand.plus.mapcontextmenu.controllers.TransportStopController; @@ -227,6 +229,8 @@ public abstract class MenuController extends BaseMenuController implements Colla menuController = new RenderedObjectMenuController(mapActivity, pointDescription, (RenderedObject) object); } else if (object instanceof MapillaryImage) { menuController = new MapillaryMenuController(mapActivity, pointDescription, (MapillaryImage) object); + } else if (object instanceof SelectedGpxFile) { + menuController = new SelectedGpxMenuController(mapActivity, pointDescription, (SelectedGpxFile) object); } } if (menuController == null) { diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java new file mode 100644 index 0000000000..a8bab48698 --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java @@ -0,0 +1,176 @@ +package net.osmand.plus.mapcontextmenu.controllers; + +import android.app.ProgressDialog; +import android.content.Intent; +import android.graphics.drawable.Drawable; +import android.os.AsyncTask; + +import androidx.annotation.NonNull; + +import net.osmand.GPXUtilities; +import net.osmand.data.PointDescription; +import net.osmand.plus.GpxSelectionHelper; +import net.osmand.plus.GpxSelectionHelper.SelectedGpxFile; +import net.osmand.plus.OsmandApplication; +import net.osmand.plus.R; +import net.osmand.plus.activities.MapActivity; +import net.osmand.plus.activities.TrackActivity; +import net.osmand.plus.helpers.GpxUiHelper; +import net.osmand.plus.mapcontextmenu.MenuBuilder; +import net.osmand.plus.mapcontextmenu.MenuController; +import net.osmand.plus.settings.backend.OsmandSettings; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +public class SelectedGpxMenuController extends MenuController { + + private SelectedGpxFile item; + + public SelectedGpxMenuController(@NonNull final MapActivity mapActivity, @NonNull PointDescription pointDescription, @NonNull final SelectedGpxFile item) { + super(new MenuBuilder(mapActivity), pointDescription, mapActivity); + this.item = item; + + leftTitleButtonController = new TitleButtonController() { + @Override + public void buttonPressed() { + Intent intent = new Intent(mapActivity, mapActivity.getMyApplication().getAppCustomization().getTrackActivity()); + intent.putExtra(TrackActivity.TRACK_FILE_NAME, item.getGpxFile().path); + intent.putExtra(TrackActivity.OPEN_TRACKS_LIST, true); + intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); + mapActivity.startActivity(intent); + } + }; + leftTitleButtonController.caption = mapActivity.getString(R.string.shared_string_open_track); + leftTitleButtonController.startIconId = R.drawable.ic_action_folder; + + rightTitleButtonController = new TitleButtonController() { + @Override + public void buttonPressed() { + new OpenGpxDetailsTask(item).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + } + }; + rightTitleButtonController.caption = mapActivity.getString(R.string.analyze_on_map); + rightTitleButtonController.startIconId = R.drawable.ic_action_track_16; + } + + private class OpenGpxDetailsTask extends AsyncTask { + + private SelectedGpxFile item; + ProgressDialog progressDialog; + + OpenGpxDetailsTask(SelectedGpxFile item) { + this.item = item; + } + + @Override + protected void onPreExecute() { + if (item.getGpxFile().path != null) { + progressDialog = new ProgressDialog(getMapActivity()); + progressDialog.setTitle(""); + progressDialog.setMessage(getMapActivity().getResources().getString(R.string.loading_data)); + progressDialog.setCancelable(false); + progressDialog.show(); + } + } + + @Override + protected GpxSelectionHelper.GpxDisplayItem doInBackground(Void... voids) { + GpxSelectionHelper.GpxDisplayGroup gpxDisplayGroup = null; + GPXUtilities.GPXFile gpxFile = null; + GPXUtilities.Track generalTrack = null; + if (item.getGpxFile().path != null) { + gpxFile = GPXUtilities.loadGPXFile(new File(item.getGpxFile().path)); + } + if (gpxFile != null) { + generalTrack = gpxFile.getGeneralTrack(); + } + OsmandApplication app = getMapActivity().getMyApplication(); + if (generalTrack != null) { + gpxFile.addGeneralTrack(); + gpxDisplayGroup = app.getSelectedGpxHelper().buildGeneralGpxDisplayGroup(gpxFile, generalTrack); + } else if (gpxFile != null && gpxFile.tracks.size() > 0) { + gpxDisplayGroup = app.getSelectedGpxHelper().buildGeneralGpxDisplayGroup(gpxFile, gpxFile.tracks.get(0)); + } + List items = null; + if (gpxDisplayGroup != null) { + items = gpxDisplayGroup.getModifiableList(); + } + if (items != null && items.size() > 0) { + return items.get(0); + } + return null; + } + + @Override + protected void onPostExecute(GpxSelectionHelper.GpxDisplayItem gpxItem) { + if (progressDialog != null) { + progressDialog.dismiss(); + } + if (gpxItem != null && gpxItem.analysis != null) { + ArrayList list = new ArrayList<>(); + if (gpxItem.analysis.hasElevationData) { + list.add(GpxUiHelper.GPXDataSetType.ALTITUDE); + } + if (gpxItem.analysis.hasSpeedData) { + list.add(GpxUiHelper.GPXDataSetType.SPEED); + } else if (gpxItem.analysis.hasElevationData) { + list.add(GpxUiHelper.GPXDataSetType.SLOPE); + } + if (list.size() > 0) { + gpxItem.chartTypes = list.toArray(new GpxUiHelper.GPXDataSetType[list.size()]); + } + + OsmandApplication app = getMapActivity().getMyApplication(); + final OsmandSettings settings = app.getSettings(); + settings.setMapLocationToShow(gpxItem.locationStart.lat, gpxItem.locationStart.lon, + settings.getLastKnownMapZoom(), + new PointDescription(PointDescription.POINT_TYPE_WPT, gpxItem.name), + false, + gpxItem); + MapActivity.launchMapActivityMoveToTop(getMapActivity()); + } + } + } + + @Override + protected void setObject(Object object) { + if (object instanceof SelectedGpxFile) { + this.item = (SelectedGpxFile) object; + } + } + + @Override + protected Object getObject() { + return item; + } + + @NonNull + @Override + public String getTypeStr() { + return getPointDescription().getTypeName(); + } + + @NonNull + @Override + public String getCommonTypeStr() { + MapActivity mapActivity = getMapActivity(); + if (mapActivity != null) { + return mapActivity.getString(R.string.shared_string_gpx_track); + } else { + return ""; + } + } + + @Override + public boolean needStreetName() { + return false; + } + + @Override + public Drawable getRightIcon() { + int color = isLight() ? R.color.active_color_primary_light : R.color.active_color_primary_dark; + return getIcon(R.drawable.ic_action_polygom_dark, color); + } +} diff --git a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java index 6e1f63c3c0..65b89c36e4 100644 --- a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java @@ -28,6 +28,7 @@ import net.osmand.GPXUtilities; import net.osmand.GPXUtilities.GPXFile; import net.osmand.GPXUtilities.TrkSegment; import net.osmand.GPXUtilities.WptPt; +import net.osmand.PlatformUtil; import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.data.QuadRect; @@ -41,16 +42,19 @@ import net.osmand.plus.MapMarkersHelper; import net.osmand.plus.MapMarkersHelper.MapMarker; import net.osmand.plus.MapMarkersHelper.MapMarkersGroup; import net.osmand.plus.OsmandApplication; -import net.osmand.plus.settings.backend.OsmandSettings.CommonPreference; import net.osmand.plus.R; import net.osmand.plus.base.FavoriteImageDrawable; import net.osmand.plus.mapcontextmenu.other.TrackDetailsMenu.TrackChartPoints; import net.osmand.plus.render.OsmandRenderer; import net.osmand.plus.render.OsmandRenderer.RenderingContext; +import net.osmand.plus.settings.backend.OsmandSettings.CommonPreference; import net.osmand.plus.views.MapTextLayer.MapTextProvider; import net.osmand.render.RenderingRuleProperty; import net.osmand.render.RenderingRuleSearchRequest; import net.osmand.render.RenderingRulesStorage; +import net.osmand.util.Algorithms; + +import org.apache.commons.logging.Log; import java.io.File; import java.util.ArrayList; @@ -65,6 +69,8 @@ import static net.osmand.plus.dialogs.ConfigureMapMenu.CURRENT_TRACK_WIDTH_ATTR; public class GPXLayer extends OsmandMapLayer implements ContextMenuLayer.IContextMenuProvider, ContextMenuLayer.IMoveObjectProvider, MapTextProvider { + private static final double TOUCH_RADIUS_MULTIPLIER = 1.5; + private OsmandMapTileView view; private Paint paint; @@ -575,7 +581,7 @@ public class GPXLayer extends OsmandMapLayer implements ContextMenuLayer.IContex } private boolean calculateBelongs(int ex, int ey, int objx, int objy, int radius) { - return (Math.abs(objx - ex) <= radius * 1.5 && Math.abs(objy - ey) <= radius * 1.5); + return (Math.abs(objx - ex) <= radius * TOUCH_RADIUS_MULTIPLIER && Math.abs(objy - ey) <= radius * TOUCH_RADIUS_MULTIPLIER); // return Math.abs(objx - ex) <= radius && (ey - objy) <= radius / 2 && (objy - ey) <= 3 * radius ; } @@ -597,14 +603,101 @@ public class GPXLayer extends OsmandMapLayer implements ContextMenuLayer.IContex } } + private static final Log log = PlatformUtil.getLog(GPXLayer.class); + + public void getWptFromPoint2(RotatedTileBox tb, PointF point, List res) { + int r = getScaledTouchRadius(view.getApplication(), getDefaultRadiusPoi(tb)); + int mx = (int) point.x; + int my = (int) point.y; + List selectedGpxFiles = new ArrayList<>(selectedGpxHelper.getSelectedGPXFiles()); + for (SelectedGpxFile selectedGpxFile : selectedGpxFiles) { + boolean track = false; + List segments = selectedGpxFile.getPointsToDisplay(); + for (TrkSegment segment : segments) { + track |= track(tb, segment.points, (int) (r * TOUCH_RADIUS_MULTIPLIER), mx, my); + } + if (track) { + res.add(selectedGpxFile); + } + log.debug("found " + track); + } + } + + private boolean track(RotatedTileBox tb, List points, int r, int mx, int my) { + WptPt firstPoint = points.get(0); + int ppx = (int) tb.getPixXFromLatLon(firstPoint.lat, firstPoint.lon); + int ppy = (int) tb.getPixYFromLatLon(firstPoint.lat, firstPoint.lon); + int pcross = placeInBbox(ppx, ppy, mx, my, r, r); + + for (int i = 1; i < points.size(); i++) { + WptPt point = points.get(i); + int px = (int) tb.getPixXFromLatLon(point.lat, point.lon); + int py = (int) tb.getPixYFromLatLon(point.lat, point.lon); + int cross = placeInBbox(px, py, mx, my, r, r); + if (cross == 0) { + return true; + } + if ((pcross & cross) == 0) { + int mpx = px; + int mpy = py; + int mcross = cross; + while (Math.abs(mpx - ppx) > r || Math.abs(mpx - ppx) > r) { + int mpxnew = mpx / 2 + ppx / 2; + int mpynew = mpy / 2 + ppy / 2; + int mcrossnew = placeInBbox(mpx, mpy, mx, my, r, r); + if (mcrossnew == 0) { + return true; + } + if ((mcrossnew & mcross) != 0) { + mpx = mpxnew; + mpy = mpynew; + mcross = mcrossnew; + } else if ((mcrossnew & pcross) != 0) { + ppx = mpxnew; + ppy = mpynew; + pcross = mcrossnew; + } else { + // this should never happen theoretically + break; + } + } + } + pcross = cross; + ppx = px; + ppy = py; + } + return false; + } + + int placeInBbox(int x, int y, int mx, int my, int halfw, int halfh) { + int cross = 0; + cross |= (x < mx - halfw ? 1 : 0); + cross |= (x > mx + halfw ? 2 : 0); + cross |= (y < my - halfh ? 4 : 0); + cross |= (y > my + halfh ? 8 : 0); + return cross; + } + @Override public PointDescription getObjectName(Object o) { if (o instanceof WptPt) { return new PointDescription(PointDescription.POINT_TYPE_WPT, ((WptPt) o).name); //$NON-NLS-1$ + } else if (o instanceof SelectedGpxFile) { + SelectedGpxFile selectedGpxFile = (SelectedGpxFile) o; + String name = formatName(Algorithms.getFileWithoutDirs(selectedGpxFile.getGpxFile().path)); + return new PointDescription(PointDescription.POINT_TYPE_WPT, name); } return null; } + private String formatName(String name) { + int ext = name.lastIndexOf('.'); + if (ext != -1) { + name = name.substring(0, ext); + } + return name.replace('_', ' '); + } + @Override public boolean disableSingleTap() { return false; @@ -617,7 +710,7 @@ public class GPXLayer extends OsmandMapLayer implements ContextMenuLayer.IContex @Override public boolean isObjectClickable(Object o) { - return o instanceof WptPt; + return o instanceof WptPt || o instanceof SelectedGpxFile; } @Override @@ -629,6 +722,7 @@ public class GPXLayer extends OsmandMapLayer implements ContextMenuLayer.IContex public void collectObjectsFromPoint(PointF point, RotatedTileBox tileBox, List res, boolean unknownLocation) { if (tileBox.getZoom() >= startZoom) { getWptFromPoint(tileBox, point, res); + getWptFromPoint2(tileBox, point, res); } } From ddf1fe9da0b21a493a8689f67abb7c5ea20c2cb9 Mon Sep 17 00:00:00 2001 From: veliymolfar Date: Mon, 15 Jun 2020 18:13:43 +0300 Subject: [PATCH 095/107] text spacing fix --- .../plus/dialogs/DetailsBottomSheet.java | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/dialogs/DetailsBottomSheet.java b/OsmAnd/src/net/osmand/plus/dialogs/DetailsBottomSheet.java index 7a6c4f1ee3..d1e3b261c9 100644 --- a/OsmAnd/src/net/osmand/plus/dialogs/DetailsBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/dialogs/DetailsBottomSheet.java @@ -3,8 +3,11 @@ package net.osmand.plus.dialogs; import android.app.Activity; import android.content.DialogInterface; import android.os.Bundle; +import android.view.LayoutInflater; import android.view.View; +import android.view.ViewGroup; import android.widget.ArrayAdapter; +import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -46,6 +49,9 @@ public class DetailsBottomSheet extends BasePreferenceBottomSheet { private ArrayAdapter arrayAdapter; private ContextMenuAdapter adapter; private int position; + private int padding; + private int paddingSmall; + private int paddingHalf; public static void showInstance(@NonNull FragmentManager fm, List properties, @@ -67,6 +73,9 @@ public class DetailsBottomSheet extends BasePreferenceBottomSheet { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + padding = (int) getResources().getDimension(R.dimen.content_padding); + paddingSmall = (int) getResources().getDimension(R.dimen.content_padding_small); + paddingHalf = (int) getResources().getDimension(R.dimen.content_padding_half); app = requiredMyApplication(); if (properties == null || preferences == null) { properties = new ArrayList<>(); @@ -148,15 +157,30 @@ public class DetailsBottomSheet extends BasePreferenceBottomSheet { String attrName = property.getAttrName(); if (MORE_DETAILED.equals(attrName) || SHOW_SURFACE_GRADE.equals(attrName) || COLORED_BUILDINGS.equals(attrName) || STREET_LIGHTING.equals(attrName)) { - int margin = (int) getResources().getDimension(R.dimen.content_padding); DividerItem divider = new DividerItem(app); - divider.setMargins(margin, 0, 0, 0); + divider.setMargins(padding, 0, 0, 0); items.add(divider); } } } } + @Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) { + View view = super.onCreateView(inflater, parent, savedInstanceState); + if (view != null) { + float spacing = getResources().getDimension(R.dimen.line_spacing_extra_description); + TextView title = view.findViewById(R.id.title); + title.setPadding(padding, paddingHalf, padding, paddingHalf); + title.setMinHeight(0); + TextView description = view.findViewById(R.id.description); + description.setLineSpacing(spacing, 1.0f); + description.setPadding(padding, 0, padding, paddingSmall); + } + return view; + } + @Nullable private RenderingRuleProperty getStreetLightNightProp() { if (properties != null) { From 7b54aa7ae6de673e868ce2be5cb80087283631de Mon Sep 17 00:00:00 2001 From: Branko Kokanovic Date: Tue, 16 Jun 2020 00:39:25 +0000 Subject: [PATCH 096/107] Added translation using Weblate (Serbian (cyrillic)) --- OsmAnd/res/values-b+sr+Cyrl/phrases.xml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 OsmAnd/res/values-b+sr+Cyrl/phrases.xml diff --git a/OsmAnd/res/values-b+sr+Cyrl/phrases.xml b/OsmAnd/res/values-b+sr+Cyrl/phrases.xml new file mode 100644 index 0000000000..a6b3daec93 --- /dev/null +++ b/OsmAnd/res/values-b+sr+Cyrl/phrases.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file From 7d1a5d7649022696cf3b5b802a19291847e386bf Mon Sep 17 00:00:00 2001 From: Tymofij Lytvynenko Date: Mon, 15 Jun 2020 08:23:32 +0000 Subject: [PATCH 097/107] Translated using Weblate (Ukrainian) Currently translated at 100.0% (3388 of 3388 strings) --- OsmAnd/res/values-uk/strings.xml | 82 +++++++++++++++++--------------- 1 file changed, 44 insertions(+), 38 deletions(-) diff --git a/OsmAnd/res/values-uk/strings.xml b/OsmAnd/res/values-uk/strings.xml index 8c7a07f72d..67de37c7e0 100644 --- a/OsmAnd/res/values-uk/strings.xml +++ b/OsmAnd/res/values-uk/strings.xml @@ -34,7 +34,7 @@ Завантаження, перегляд подробиць та керування локальними мапами. Увімкніть втулок \'Мережеві мапи\', щоб вибирати різні джерела мап Мережеві мапи (растрові) - Використовувати мережеві мапи (завантажити та кешувати плитки на карті пам\'яті). + Використовувати мережеві мапи (завантажити та кешувати тайли на карті пам\'яті). Мережеві мапи Оберіть мережеві або кешовані джерела (тайлів) мап. Цей втулок надає можливість отримати доступ до багатьох видів мережевих (так званих растрових) мап які Ви хочете, від попередньо створених квадратів OpenStreetMap (на зразок стилю Mapnik) до супутникових знімків та особливих шарів, як-от погодні, кліматичні та землезнавчі (геологічні) мапи, шари рельєфу тощо. @@ -289,7 +289,7 @@ Верхній шар Виберіть накладку для основної мапи Мапа вже встановлена, \'Налаштування\' будуть оновлені. - Виберіть (плиткові) мапи для встановлення або оновлення. + Виберіть (тайлові) мапи для встановлення або оновлення. Неможливо виконати операцію без підключення до Інтернету. Завантажити ще… Використовувати растрові мапи для будь-чого поза цим рівнем. @@ -404,7 +404,7 @@ телефон фільтрувати Дисплей високої роздільної здатності - Не розтягувати (із розмиттям) плитки мап на дисплеях з високою роздільною здатністю. + Не розтягувати (із розмиттям) тайли мап на дисплеях з високою роздільною здатністю. Шукати громадський транспорт Пошук транспорту (нема цілі): Пошук транспорту ({0} до цілі): @@ -621,7 +621,7 @@ Використовувати Інтернет Показати Ваше місцерозташування Показати GPS-координати на мапі - Завантажити відсутні плитки мапи + Завантажити відсутні тайли мапи Навігаційна програма Вихід Пошук @@ -739,7 +739,7 @@ Продовжити рух попереднім незавершеним маршрутом? (%1$s секунд) Камери детектування швидкості Попередження про дорожній рух - Без платних доріг + Уник. платних доріг Назва вулиці Налаштування екрана Де я @@ -885,7 +885,7 @@ Аварійні служби Швидка побудова маршруту (можливо неоптимальна) Налаштування попередження про дорожній рух (обмеження швидкості, вимушені зупинки, штучні нерівності, тунелі), попередження про камери контролю швидкості, відомості про смуги руху. - Без автомагістралей + Уник. автомагістралей Прив\'язуватися до доріг під час навігації. Прив’язуватися до доріг Перегляд та навігація в автономному та мережевому режимах мапами OSM @@ -903,7 +903,7 @@ Налаштувати екран Смуги руху Лише асфальтовані дороги - Без поромів + Уник. поромів Уникати… Флуоресцентні маршрути Лінійка @@ -1055,14 +1055,14 @@ Версія: Про застосунок Версія, ліцензії, учасники проєкту - Завантажені масштаби: %1$s + Завантажені рівні масштабування: %1$s Строк дії (у хвилинах): %1$s Завантажувані: %1$s Максимальний масштаб: %1$s Мінімальний масштаб: %1$s Дата квадрату: %1$s Джерело квадратів мапи %1$s збережено - Еліптичний Меркатор + Еліптична проєкція Меркатора Максимальне збільшення Строк дії (в хвилинах) Мінімальне збільшення @@ -1226,13 +1226,13 @@ Відомості про маршрут Надавати перевагу автомагістралям Надавати перевагу автомагістралям - Без платних доріг + Уник. платних доріг Уникати платних доріг - Лише неасфальтовані дороги + Уник. ґрунтових доріг Уникати ґрунтових доріг - Без поромних переправ + Уник. поромних переправ Уникати поромних переправ - Без автомагістралей + Уник. автомагістралей Уникати автомагістралей Обмеження по вазі Вказати дозволений ліміт ваги автомобіля на маршрутах. @@ -1496,7 +1496,7 @@ Помічник мапера OSM Відомості A-GPS Керування - Правити + Редагувати Місця Пошук Показати опис. @@ -1701,7 +1701,7 @@ Пошук адреси Місця Плагіни - Без приміських поїздів + Уник. приміських поїздів Уникати приміських поїздів Небезпека Жирний контур @@ -1711,9 +1711,9 @@ Товщина GPX Вікіпедія Стиль доріг - Без сходів + Уник. сходів Уникати сходів - Без перетину кордону + Уник. перетину кордону Інші Додати Закладку видалити @@ -2725,10 +2725,10 @@ Завантажте путівники Вікімандрів, щоб переглянути статті про місця в усьому світі без підключення до Інтернету. Доступне оновлення Завантажити файл - Безкоштовний всесвітній путівник, який може редагувати кожен. + Безплатний всесвітній путівник, який може правити кожен. Туристичні путівники, в цей час, засновані на Вікімандрах. Перевірте усі функції безплатно під час відкритого бета-тестування. Потім, путівники будуть доступні передплатникам OsmAnd Unlimited і власникам OsmAnd+. - Вам можна і слід редагувати будь-яку статтю на Вікімандрах. Діліться знаннями, досвідом, талантом і Вашої увагою. - Розпочати редагування + Вам можна і слід правити будь-яку статтю на Вікімандрах. Діліться знаннями, досвідом, талантом і Вашої увагою. + Розпочати правку Отримати необмежений доступ Ласкаво просимо на відкрите бета-тестування Туристичні путівники @@ -2930,7 +2930,7 @@ Тверда Бетон Бруківка - Тротуарна плитка + Бруківка Галька Камінь Ковань @@ -2960,9 +2960,9 @@ Уникати автобусів і тролейбусів Уникати маршрутних таксі Уникати маршрутних таксі - Без потягів + Уник. потягів Уникати потягів - Без метро + Уник. метро Уникати метро та легкого рейкового траспорту Уникати поромних переправ Уникати поромних переправ @@ -3014,7 +3014,7 @@ Оберіть файл треку для слідування Перемикач для режимів дня та ночі OsmAnd. Ви використовуєте {0} мапу, надану OsmAnd. Хочете запустити повну версію OsmAnd\? - Без мостових та бруківки + Уник. мостових та бруківки Уникати мостові та бруківку Надіслати журнал Переміщено %1$d файлів (%2$s). @@ -3442,7 +3442,7 @@ Оголошення Ім\'я користувача і пароль Ці налаштування стосуються всіх профілів. - OSM-редагування + OSM-правлення Ви можете переглянути всі не завантажені зміни або помилки в OSM в %1$s. Завантажені точки не відображаються в OsmAnd. OSM Значок відображається під час навігації чи переміщення. @@ -3710,7 +3710,7 @@ Показати/приховати громадський транспорт Кнопка показу або приховування громадського транспорту на мапі. Створити / змінити POI - Додати / редагувати вибране + Додати / правити вибране Відновити типовий порядок елементів Повернутися до редагування Ви можете отримати доступ до цих дій, торкнувшись кнопки “%1$s”. @@ -3724,7 +3724,7 @@ OsmAnd GPX недостатньо сформований. Зверніться до служби підтримки для подальшого дослідження. Завжди Керування екраном - Екран буде вимикатися після певного періоду бездіяльності, зазначеного в системних налаштуваннях пристрою. + Вимикає екран відповідно до часу очікування екрана системи. Використовувати системний час очікування Параметри увімкнення екрана Параметри увімкнення екрану (переконайтесь, що OsmAnd стоїть на передньому плані, коли пристрій заблоковано): @@ -3738,24 +3738,24 @@ Тримати екран вимкненим Якщо параметр \"%1$s\" увімкнено, час роботи залежатиме від нього. Псевдопроєкція Меркатора - Один файл зображення на плитку + Один файл зображення на тайл Файл SQLiteDB Укажіть назву джерела мережевої мапи. Введіть або вставте URL-адресу для мережевого джерела. - Редагувати мережеве джерело + Змінити мережеве джерело Строк дії Проєкція Меркатора Формат зберігання - Встановіть щонайменший та щонайбільший рівень масштабування, при якому мережева мапа буде відображатися або завантажуватися. - Ці параметри впливатимуть на дисплей як мапи або накладки/підкладки. + Встановіть найменший та найбільший рівень масштабування для відображення або завантаження мережевої мапи. + Впливає на екран, коли використовується як мапа чи накладка/підкладка. \n -\n%1$s: мапа буде обмежена вибраними масштабами. +\n%1$s: мапа обмежена вибраним проміжком масштабування. \n -\n%2$s: рівні масштабу, на яких будуть видні первинні плитки. Масштабування буде відбуватися поза цими значеннями. - Час дії в хвилинах. Кешована плитка буде завантажена через визначений час. Залиште це поле порожнім, щоб ніколи не оновлювати плитки для цього джерела. -\n -\nОдин день - 1440 хвилин. -\nОдин тиждень - 10 080 хвилин. +\n%2$s: рівні масштабування, за яких буде видно первинні тайли; збільшення і зменшення масштабу може відбуватися поза цими значенями. + Кешовані тайли буде повторно завантажено через вказану кількість хвилин. Залиште це поле порожнім, щоб ніколи не оновлювати плитки для цього джерела. +\n +\nОдин день - 1440 хвилин. +\nОдин тиждень - 10 080 хвилин. \nОдин місяць - 43 829 хвилин. Виберіть спосіб зберігання завантажених плиток. Усталений час очікування екрану @@ -3763,7 +3763,7 @@ Видалити все\? Ви дійсно бажаєте безповоротно видалити %d швидких дій\? Час очікування екрана - Вкажіть вагу транспортного засобу, для важких транспортних засобів можуть застосовуватися деякі обмеження на маршрути. + Вкажіть вагу транспортного засобу, для важких транспортних засобів можуть застосовуватися деякі маршрутні обмеження. тонни метри Показати або приховати додаткові деталі на мапі @@ -3771,4 +3771,10 @@ Вкажіть ширину автомобіля, для великих транспортних засобів можуть застосовуватися обмеження на деяких маршрутах. Вкажіть висоту автомобіля, для великих транспортних засобів можуть застосовуватися обмеження на деяких маршрутах. Вимкнено. Потребує \'Тримати екран увімкненим\' у розділі \'Час очікування після пробудження\'. + Додати мережеве джерело + Застосування цих змін очистить кешовані дані для цього джерела плиток + Встановити висоту судна + Ви можете встановити висоту судна, щоб уникнути низьких мостів. Майте на увазі, якщо міст рухомий, використовуватиметься його висота у відкритому стані. + Встановіть висоту судна, щоб уникнути низьких мостів. Майте на увазі, якщо міст рухомий, використовуватиметься його висота у відкритому стані. + Встановіть ширину судна, щоб уникнути вузьких мостів \ No newline at end of file From 550cbf6610799fd8024312041016c749c6f1b9bd Mon Sep 17 00:00:00 2001 From: Branko Kokanovic Date: Tue, 16 Jun 2020 00:13:38 +0000 Subject: [PATCH 098/107] Translated using Weblate (Serbian) Currently translated at 96.1% (3257 of 3388 strings) --- OsmAnd/res/values-sr/strings.xml | 67 ++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/OsmAnd/res/values-sr/strings.xml b/OsmAnd/res/values-sr/strings.xml index 2e341576cf..8f8f55c5bf 100644 --- a/OsmAnd/res/values-sr/strings.xml +++ b/OsmAnd/res/values-sr/strings.xml @@ -3593,4 +3593,71 @@ Повратак уређивању Додај профил Промени профил апликације + Додатне карте + Неподржана радња %1$s + OsmAnd пратилац + OsmAnd + Mapillary + Брзе радње + Лењир пречника + Измери удаљеност + Путовање (Wikivoyage и Википедија) + Омиљени + Претплата - OsmAnd уживо + OsmAnd куповине + Упутство за легенду карте. + Профили навођења + Сакриј јавни превоз + Прикажи јавни превоз + Прикажи/сакриј јавни превоз + Дугме које приказује или скрива јавни превоз на карти. + Паркинг позиције + Поврати подразумевани поредак ставки + Акционо дугме мења између изабраних профила. + Неподржани тип + Унесите ширину возила, нека ограничења пута могу бити примењена за широка возила. + Унесите висину возила, нека ограничења пута могу бити примењена за висока возила. + Унесите тежину возила, нека ограничења пута могу бити примењена за тешка возила. + Искључи екран према системском времену закључавања. + Увек> + Контрола екрана + Користи системско време закључавања екрана + Одаберите опције паљења екрана (OsmAnd треба да буде иу предњем плану када се уређај закључа): + Свака инструкција навођења ће упалити екран. + Инструкције навођења + Притискањем дугмета за гашење уређаја ћете упалити екран са OsmAnd-ом преко закључаног екрана. + Дугме за гашење + Сензор близине + Држи екран упаљеним + Држи екран угашеним + Псеудо-Меркатор пројекција + Један фајл по сличици + SQLiteDB фајл + Унесите име за овај мрежни извор карте. + Унесите или налепите адресу мрежног извора. + Измени мрежни извор + Време истека + Меркатор пројекција + Формат складишта + Поставите минимални и максимални ниво увеличавања који приказује или учитава мрежну карту. + Искеширане сличице ће бити поново преузете после задатог броја минута. Оставите празно да никад не освежавате сличице из овог извора. +\n +\nЈедан дан је 1440 минута. +\nНедељу дана је 10 080 минута. +\nМесец дана је 43829 минута. + Одаберите како да складиштите преузете сличице. + Можете извозити или увозити брзе радње са апликативним профилима. + Обриши све\? + Да ли желите бесповратно да обришете %d брзих радњи\? + Време иксључивања екрана + Подразумевано време иксључивања екрана + тона + метара + Прикажи или сакриј додатне детаље карте + Ноћна карта + Додај мрежни извор + Применом ових измена ћете очистити искеширане податке за овај извор сличица + Подеси висину пловила + Можете подесити висину пловила да избегнете ниске мостове. Имајте на уму да, уколико мост може да се помера, користићемо његову висину када је отворен. + Подесите висину пловила да избегнете ниске мостове. Имајте на уму да, уколико мост може да се помера, користићемо његову висину када је отворен. + Подесите ширину пловила и избегните уске мостове \ No newline at end of file From 4c3cab3c5fbefa5c903e1c245eb072b3605f7e6c Mon Sep 17 00:00:00 2001 From: Branko Kokanovic Date: Tue, 16 Jun 2020 00:39:18 +0000 Subject: [PATCH 099/107] Translated using Weblate (Serbian) Currently translated at 71.7% (2730 of 3804 strings) --- OsmAnd/res/values-sr/phrases.xml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-sr/phrases.xml b/OsmAnd/res/values-sr/phrases.xml index 535199d938..45bdd10dac 100644 --- a/OsmAnd/res/values-sr/phrases.xml +++ b/OsmAnd/res/values-sr/phrases.xml @@ -163,7 +163,7 @@ Музички инструменти Новинарница Оптометрија - Органска храна + Органски производ Продавница боја Продавница кућних љубимаца Фото радња @@ -2731,4 +2731,9 @@ На отвореном Пољопривредна радња Тип: пољопривредно + Притисак + Видео + СМС + Статус + Тип \ No newline at end of file From 16a74c046083bd517edb86dbacf3384dfe2abbde Mon Sep 17 00:00:00 2001 From: veliymolfar Date: Tue, 16 Jun 2020 12:00:53 +0300 Subject: [PATCH 100/107] fix DetailsBottomSheet --- .../plus/dialogs/DetailsBottomSheet.java | 50 ++++++++++--------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/dialogs/DetailsBottomSheet.java b/OsmAnd/src/net/osmand/plus/dialogs/DetailsBottomSheet.java index d1e3b261c9..cae8be284e 100644 --- a/OsmAnd/src/net/osmand/plus/dialogs/DetailsBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/dialogs/DetailsBottomSheet.java @@ -3,14 +3,16 @@ package net.osmand.plus.dialogs; import android.app.Activity; import android.content.DialogInterface; import android.os.Bundle; -import android.view.LayoutInflater; +import android.util.TypedValue; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; +import android.widget.LinearLayout; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; import androidx.fragment.app.FragmentManager; import net.osmand.plus.ContextMenuAdapter; @@ -18,12 +20,12 @@ import net.osmand.plus.ContextMenuItem; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; +import net.osmand.plus.base.bottomsheetmenu.BaseBottomSheetItem; import net.osmand.plus.base.bottomsheetmenu.BottomSheetItemTwoChoicesButton; import net.osmand.plus.base.bottomsheetmenu.BottomSheetItemTwoChoicesButton.OnBottomBtnClickListener; import net.osmand.plus.base.bottomsheetmenu.BottomSheetItemWithCompoundButton; import net.osmand.plus.base.bottomsheetmenu.simpleitems.DividerItem; -import net.osmand.plus.base.bottomsheetmenu.simpleitems.ShortDescriptionItem; -import net.osmand.plus.base.bottomsheetmenu.simpleitems.TitleItem; +import net.osmand.plus.helpers.FontCache; import net.osmand.plus.settings.backend.OsmandSettings.CommonPreference; import net.osmand.plus.settings.bottomsheets.BasePreferenceBottomSheet; import net.osmand.render.RenderingRuleProperty; @@ -96,10 +98,27 @@ public class DetailsBottomSheet extends BasePreferenceBottomSheet { @Override public void createMenuItems(Bundle savedInstanceState) { int selectedProfileColorRes = app.getSettings().APPLICATION_MODE.get().getIconColorInfo().getColor(nightMode); - TitleItem titleItem = new TitleItem(getString(R.string.rendering_category_details)); - items.add(titleItem); - ShortDescriptionItem descriptionItem = new ShortDescriptionItem(getString(R.string.details_dialog_decr)); - items.add(descriptionItem); + float spacing = getResources().getDimension(R.dimen.line_spacing_extra_description); + LinearLayout linearLayout = new LinearLayout(app); + linearLayout.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); + linearLayout.setOrientation(LinearLayout.VERTICAL); + + TextView title = new TextView(app); + title.setPadding(padding, paddingHalf, padding, 0); + title.setTypeface(FontCache.getRobotoMedium(app)); + title.setText(R.string.rendering_category_details); + title.setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimensionPixelSize(R.dimen.default_list_text_size)); + title.setTextColor(nightMode ? ContextCompat.getColor(app, R.color.text_color_primary_dark) : ContextCompat.getColor(app, R.color.text_color_primary_light)); + + TextView description = new TextView(app); + description.setLineSpacing(spacing, 1.0f); + description.setPadding(padding, 0, padding, paddingSmall); + description.setText(R.string.details_dialog_decr); + description.setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimensionPixelSize(R.dimen.default_desc_text_size)); + description.setTextColor(nightMode ? ContextCompat.getColor(app, R.color.text_color_secondary_dark) : ContextCompat.getColor(app, R.color.text_color_secondary_light)); + linearLayout.addView(title); + linearLayout.addView(description); + items.add(new BaseBottomSheetItem.Builder().setCustomView(linearLayout).create()); if (preferences != null && properties != null) { RenderingRuleProperty streetLightNightProp = getStreetLightNightProp(); for (int i = 0; i < properties.size(); i++) { @@ -131,6 +150,7 @@ public class DetailsBottomSheet extends BasePreferenceBottomSheet { streetLightsNightPref.set(false); item[0].setChecked(checked); item[0].setIsLeftBtnSelected(true); + setupHeightAndBackground(getView()); } }) .create(); @@ -165,22 +185,6 @@ public class DetailsBottomSheet extends BasePreferenceBottomSheet { } } - @Nullable - @Override - public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) { - View view = super.onCreateView(inflater, parent, savedInstanceState); - if (view != null) { - float spacing = getResources().getDimension(R.dimen.line_spacing_extra_description); - TextView title = view.findViewById(R.id.title); - title.setPadding(padding, paddingHalf, padding, paddingHalf); - title.setMinHeight(0); - TextView description = view.findViewById(R.id.description); - description.setLineSpacing(spacing, 1.0f); - description.setPadding(padding, 0, padding, paddingSmall); - } - return view; - } - @Nullable private RenderingRuleProperty getStreetLightNightProp() { if (properties != null) { From f6052c62bea5d9f171ceb45d94abb599d880da52 Mon Sep 17 00:00:00 2001 From: vshcherb Date: Tue, 16 Jun 2020 12:03:14 +0200 Subject: [PATCH 101/107] Update GPXLayer.java --- OsmAnd/src/net/osmand/plus/views/GPXLayer.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java index 65b89c36e4..98c85a6953 100644 --- a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java @@ -581,12 +581,12 @@ public class GPXLayer extends OsmandMapLayer implements ContextMenuLayer.IContex } private boolean calculateBelongs(int ex, int ey, int objx, int objy, int radius) { - return (Math.abs(objx - ex) <= radius * TOUCH_RADIUS_MULTIPLIER && Math.abs(objy - ey) <= radius * TOUCH_RADIUS_MULTIPLIER); -// return Math.abs(objx - ex) <= radius && (ey - objy) <= radius / 2 && (objy - ey) <= 3 * radius ; + return (Math.abs(objx - ex) <= radius && Math.abs(objy - ey) <= radius); + } public void getWptFromPoint(RotatedTileBox tb, PointF point, List res) { - int r = getScaledTouchRadius(view.getApplication(), getDefaultRadiusPoi(tb)); + int r = (int) getScaledTouchRadius(view.getApplication(), getDefaultRadiusPoi(tb)) * TOUCH_RADIUS_MULTIPLIER; int ex = (int) point.x; int ey = (int) point.y; List selectedGpxFiles = new ArrayList<>(selectedGpxHelper.getSelectedGPXFiles()); @@ -641,10 +641,10 @@ public class GPXLayer extends OsmandMapLayer implements ContextMenuLayer.IContex int mpx = px; int mpy = py; int mcross = cross; - while (Math.abs(mpx - ppx) > r || Math.abs(mpx - ppx) > r) { + while (Math.abs(mpx - ppx) > r || Math.abs(mpy - ppy) > r) { int mpxnew = mpx / 2 + ppx / 2; int mpynew = mpy / 2 + ppy / 2; - int mcrossnew = placeInBbox(mpx, mpy, mx, my, r, r); + int mcrossnew = placeInBbox(mpxnew, mpynew, mx, my, r, r); if (mcrossnew == 0) { return true; } From abb98a940613871a2769af2d370f181a44ba5edc Mon Sep 17 00:00:00 2001 From: vshcherb Date: Tue, 16 Jun 2020 12:05:54 +0200 Subject: [PATCH 102/107] Update GPXLayer.java --- OsmAnd/src/net/osmand/plus/views/GPXLayer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java index 98c85a6953..8321de2367 100644 --- a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java @@ -614,7 +614,7 @@ public class GPXLayer extends OsmandMapLayer implements ContextMenuLayer.IContex boolean track = false; List segments = selectedGpxFile.getPointsToDisplay(); for (TrkSegment segment : segments) { - track |= track(tb, segment.points, (int) (r * TOUCH_RADIUS_MULTIPLIER), mx, my); + track |= track(tb, segment.points, (int) r, mx, my); } if (track) { res.add(selectedGpxFile); From d8fddfbac9c697ca52955c4bab5e958720fdb2f6 Mon Sep 17 00:00:00 2001 From: vshcherb Date: Tue, 16 Jun 2020 12:06:16 +0200 Subject: [PATCH 103/107] Update GPXLayer.java --- OsmAnd/src/net/osmand/plus/views/GPXLayer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java index 8321de2367..5b1bc142ae 100644 --- a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java @@ -586,7 +586,7 @@ public class GPXLayer extends OsmandMapLayer implements ContextMenuLayer.IContex } public void getWptFromPoint(RotatedTileBox tb, PointF point, List res) { - int r = (int) getScaledTouchRadius(view.getApplication(), getDefaultRadiusPoi(tb)) * TOUCH_RADIUS_MULTIPLIER; + int r = (int) (getScaledTouchRadius(view.getApplication(), getDefaultRadiusPoi(tb)) * TOUCH_RADIUS_MULTIPLIER); int ex = (int) point.x; int ey = (int) point.y; List selectedGpxFiles = new ArrayList<>(selectedGpxHelper.getSelectedGPXFiles()); From c1e9a74fc5b2583da0bdf36f695dae733c5cea06 Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Tue, 16 Jun 2020 15:51:30 +0300 Subject: [PATCH 104/107] Fix analyze on map --- .../src/net/osmand/data/PointDescription.java | 1 + .../SelectedGpxMenuController.java | 6 ++- .../src/net/osmand/plus/views/GPXLayer.java | 46 ++++++++----------- 3 files changed, 23 insertions(+), 30 deletions(-) diff --git a/OsmAnd/src/net/osmand/data/PointDescription.java b/OsmAnd/src/net/osmand/data/PointDescription.java index f77b841e1d..79b4cfe9e7 100644 --- a/OsmAnd/src/net/osmand/data/PointDescription.java +++ b/OsmAnd/src/net/osmand/data/PointDescription.java @@ -29,6 +29,7 @@ public class PointDescription { public static final String POINT_TYPE_FAVORITE = "favorite"; public static final String POINT_TYPE_WPT = "wpt"; + public static final String POINT_TYPE_GPX = "gpx"; public static final String POINT_TYPE_RTE = "rte"; public static final String POINT_TYPE_POI = "poi"; public static final String POINT_TYPE_ADDRESS = "address"; diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java index a8bab48698..b2e2b72eb1 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java @@ -122,14 +122,16 @@ public class SelectedGpxMenuController extends MenuController { gpxItem.chartTypes = list.toArray(new GpxUiHelper.GPXDataSetType[list.size()]); } - OsmandApplication app = getMapActivity().getMyApplication(); + MapActivity mapActivity = getMapActivity(); + OsmandApplication app = mapActivity.getMyApplication(); final OsmandSettings settings = app.getSettings(); settings.setMapLocationToShow(gpxItem.locationStart.lat, gpxItem.locationStart.lon, settings.getLastKnownMapZoom(), new PointDescription(PointDescription.POINT_TYPE_WPT, gpxItem.name), false, gpxItem); - MapActivity.launchMapActivityMoveToTop(getMapActivity()); + mapActivity.getContextMenu().hide(); + MapActivity.launchMapActivityMoveToTop(mapActivity); } } } diff --git a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java index 5b1bc142ae..ee73e581c9 100644 --- a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java @@ -28,7 +28,6 @@ import net.osmand.GPXUtilities; import net.osmand.GPXUtilities.GPXFile; import net.osmand.GPXUtilities.TrkSegment; import net.osmand.GPXUtilities.WptPt; -import net.osmand.PlatformUtil; import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.data.QuadRect; @@ -48,14 +47,14 @@ import net.osmand.plus.mapcontextmenu.other.TrackDetailsMenu.TrackChartPoints; import net.osmand.plus.render.OsmandRenderer; import net.osmand.plus.render.OsmandRenderer.RenderingContext; import net.osmand.plus.settings.backend.OsmandSettings.CommonPreference; +import net.osmand.plus.views.ContextMenuLayer.IContextMenuProvider; +import net.osmand.plus.views.ContextMenuLayer.IMoveObjectProvider; import net.osmand.plus.views.MapTextLayer.MapTextProvider; import net.osmand.render.RenderingRuleProperty; import net.osmand.render.RenderingRuleSearchRequest; import net.osmand.render.RenderingRulesStorage; import net.osmand.util.Algorithms; -import org.apache.commons.logging.Log; - import java.io.File; import java.util.ArrayList; import java.util.Arrays; @@ -66,10 +65,10 @@ import java.util.Map; import static net.osmand.plus.dialogs.ConfigureMapMenu.CURRENT_TRACK_COLOR_ATTR; import static net.osmand.plus.dialogs.ConfigureMapMenu.CURRENT_TRACK_WIDTH_ATTR; -public class GPXLayer extends OsmandMapLayer implements ContextMenuLayer.IContextMenuProvider, - ContextMenuLayer.IMoveObjectProvider, MapTextProvider { +public class GPXLayer extends OsmandMapLayer implements IContextMenuProvider, IMoveObjectProvider, MapTextProvider { private static final double TOUCH_RADIUS_MULTIPLIER = 1.5; + private static final int START_ZOOM = 7; private OsmandMapTileView view; @@ -89,9 +88,6 @@ public class GPXLayer extends OsmandMapLayer implements ContextMenuLayer.IContex private LayerDrawable selectedPoint; private TrackChartPoints trackChartPoints; - private static final int startZoom = 7; - - private GpxSelectionHelper selectedGpxHelper; private MapMarkersHelper mapMarkersHelper; private Paint paintBmp; @@ -102,15 +98,13 @@ public class GPXLayer extends OsmandMapLayer implements ContextMenuLayer.IContex private Paint paintOuterRect; private Paint paintInnerRect; - private Paint paintGridOuterCircle; + private Paint paintGridOuterCircle; private Paint paintGridCircle; private Paint paintTextIcon; private OsmandRenderer osmandRenderer; - private GPXFile gpx; - private ContextMenuLayer contextMenuLayer; @ColorInt private int visitedColor; @@ -296,7 +290,7 @@ public class GPXLayer extends OsmandMapLayer implements ContextMenuLayer.IContex private void drawSelectedFilesSplits(Canvas canvas, RotatedTileBox tileBox, List selectedGPXFiles, DrawSettings settings) { - if (tileBox.getZoom() >= startZoom) { + if (tileBox.getZoom() >= START_ZOOM) { // request to load for (SelectedGpxFile g : selectedGPXFiles) { List groups = g.getDisplayGroups(view.getApplication()); @@ -377,7 +371,7 @@ public class GPXLayer extends OsmandMapLayer implements ContextMenuLayer.IContex } private void drawSelectedFilesPoints(Canvas canvas, RotatedTileBox tileBox, List selectedGPXFiles) { - if (tileBox.getZoom() >= startZoom) { + if (tileBox.getZoom() >= START_ZOOM) { float textScale = view.getSettings().TEXT_SCALE.get(); float iconSize = FavoriteImageDrawable.getOrCreate(view.getContext(), 0, true, (WptPt) null).getIntrinsicWidth() * 3 / 2.5f * textScale; @@ -582,7 +576,6 @@ public class GPXLayer extends OsmandMapLayer implements ContextMenuLayer.IContex private boolean calculateBelongs(int ex, int ey, int objx, int objy, int radius) { return (Math.abs(objx - ex) <= radius && Math.abs(objy - ey) <= radius); - } public void getWptFromPoint(RotatedTileBox tb, PointF point, List res) { @@ -603,27 +596,24 @@ public class GPXLayer extends OsmandMapLayer implements ContextMenuLayer.IContex } } - private static final Log log = PlatformUtil.getLog(GPXLayer.class); - - public void getWptFromPoint2(RotatedTileBox tb, PointF point, List res) { + public void getTracksFromPoint(RotatedTileBox tb, PointF point, List res) { int r = getScaledTouchRadius(view.getApplication(), getDefaultRadiusPoi(tb)); int mx = (int) point.x; int my = (int) point.y; List selectedGpxFiles = new ArrayList<>(selectedGpxHelper.getSelectedGPXFiles()); for (SelectedGpxFile selectedGpxFile : selectedGpxFiles) { - boolean track = false; List segments = selectedGpxFile.getPointsToDisplay(); for (TrkSegment segment : segments) { - track |= track(tb, segment.points, (int) r, mx, my); + boolean nearSegment = isPointNearSegment(tb, segment.points, r, mx, my); + if (nearSegment) { + res.add(selectedGpxFile); + break; + } } - if (track) { - res.add(selectedGpxFile); - } - log.debug("found " + track); } } - private boolean track(RotatedTileBox tb, List points, int r, int mx, int my) { + private boolean isPointNearSegment(RotatedTileBox tb, List points, int r, int mx, int my) { WptPt firstPoint = points.get(0); int ppx = (int) tb.getPixXFromLatLon(firstPoint.lat, firstPoint.lon); int ppy = (int) tb.getPixYFromLatLon(firstPoint.lat, firstPoint.lon); @@ -681,11 +671,11 @@ public class GPXLayer extends OsmandMapLayer implements ContextMenuLayer.IContex @Override public PointDescription getObjectName(Object o) { if (o instanceof WptPt) { - return new PointDescription(PointDescription.POINT_TYPE_WPT, ((WptPt) o).name); //$NON-NLS-1$ + return new PointDescription(PointDescription.POINT_TYPE_WPT, ((WptPt) o).name); } else if (o instanceof SelectedGpxFile) { SelectedGpxFile selectedGpxFile = (SelectedGpxFile) o; String name = formatName(Algorithms.getFileWithoutDirs(selectedGpxFile.getGpxFile().path)); - return new PointDescription(PointDescription.POINT_TYPE_WPT, name); + return new PointDescription(PointDescription.POINT_TYPE_GPX, name); } return null; } @@ -720,9 +710,9 @@ public class GPXLayer extends OsmandMapLayer implements ContextMenuLayer.IContex @Override public void collectObjectsFromPoint(PointF point, RotatedTileBox tileBox, List res, boolean unknownLocation) { - if (tileBox.getZoom() >= startZoom) { + if (tileBox.getZoom() >= START_ZOOM) { getWptFromPoint(tileBox, point, res); - getWptFromPoint2(tileBox, point, res); + getTracksFromPoint(tileBox, point, res); } } From f19ae9cb574ae117107cf353a6f664bd238ba36b Mon Sep 17 00:00:00 2001 From: xmd5a Date: Tue, 16 Jun 2020 16:49:22 +0300 Subject: [PATCH 105/107] Add phrases --- OsmAnd/res/values/phrases.xml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values/phrases.xml b/OsmAnd/res/values/phrases.xml index 7c417ac997..3e75ab4935 100644 --- a/OsmAnd/res/values/phrases.xml +++ b/OsmAnd/res/values/phrases.xml @@ -134,6 +134,8 @@ SMS Video Pressure + Vibration + Arrow Store @@ -1539,7 +1541,7 @@ Yes Without tactile paving Yes - No + Sound: no Only when walking is allowed Rescue station @@ -4229,5 +4231,8 @@ Suction Pump status: missing beam + Vibration: no + Yes + Yes \ No newline at end of file From 45095ff4545f111493be95471924a1feb876528b Mon Sep 17 00:00:00 2001 From: Victor Shcherb Date: Tue, 16 Jun 2020 18:52:52 +0200 Subject: [PATCH 106/107] Fix turn lanes --- .../osmand/router/RouteResultPreparation.java | 216 ++++++++++-------- .../main/java/net/osmand/router/TurnType.java | 17 +- 2 files changed, 130 insertions(+), 103 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java b/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java index 14363c39af..205e4d505a 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java @@ -7,16 +7,18 @@ import java.text.MessageFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.Comparator; import java.util.Iterator; import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; +import java.util.Set; import org.apache.commons.logging.Log; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; -import gnu.trove.iterator.TIntIterator; import gnu.trove.list.array.TIntArrayList; import gnu.trove.set.hash.TIntHashSet; import net.osmand.PlatformUtil; @@ -798,9 +800,9 @@ public class RouteResultPreparation { if (dist < mergeDistance) { mergeTurnLanes(leftside, currentSegment, nextSegment); TurnType turnType = currentSegment.getTurnType(); - TIntHashSet possibleTurn = getPossibleTurnsFromActiveLanes(turnType.getLanes(), true); - if (possibleTurn.size() == 1) { - TurnType tt = TurnType.valueOf(possibleTurn.iterator().next(), currentSegment.getTurnType().isLeftSide()); + Integer[] possibleTurn = getPossibleTurnsFromActiveLanes(turnType.getLanes(), true); + if (possibleTurn.length == 1) { + TurnType tt = TurnType.valueOf(possibleTurn[0], currentSegment.getTurnType().isLeftSide()); tt.setLanes(turnType.getLanes()); tt.setSkipToSpeak(turnType.isSkipToSpeak()); currentSegment.setTurnType(tt); @@ -1267,8 +1269,6 @@ public class RouteResultPreparation { } } - t.setPossibleLeftTurn(possiblyLeftTurn); - t.setPossibleRightTurn(possiblyRightTurn); if (rs.keepLeft || rs.keepRight) { String[] splitLaneOptions = turnLanes.split("\\|", -1); int activeBeginIndex = findActiveIndex(rawLanes, splitLaneOptions, rs.leftLanes, true, @@ -1284,7 +1284,19 @@ public class RouteResultPreparation { rawLanes[k] |= 1; } } - int tp = inferSlightTurnFromLanes(rawLanes, rs); + int tp = inferSlightTurnFromActiveLanes(rawLanes, rs.keepLeft, rs.keepRight); + // Checking to see that there is only one unique turn + if (tp != 0) { + // add extra lanes with same turn + for(int i = 0; i < rawLanes.length; i++) { + if(TurnType.getSecondaryTurn(rawLanes[i]) == tp) { + TurnType.setSecondaryToPrimary(rawLanes, i); + rawLanes[i] |= 1; + } else if(TurnType.getPrimaryTurn(rawLanes[i]) == tp) { + rawLanes[i] |= 1; + } + } + } if (tp != t.getValue() && tp != 0) { t = TurnType.valueOf(tp, leftSide); } else { @@ -1295,31 +1307,42 @@ public class RouteResultPreparation { } } } else { + // case for go straight and identify correct turn:lane to go straight + Integer[] possibleTurns = getPossibleTurns(rawLanes, false, false); + int tp = TurnType.C; + if (possibleTurns.length == 1) { + tp = possibleTurns[0]; + } else if (possibleTurns.length == 3) { + if ((!possiblyLeftTurn || !possiblyRightTurn) && TurnType.isSlightTurn(possibleTurns[1])) { + tp = possibleTurns[1]; + t = TurnType.valueOf(tp, leftSide); + } + } for (int k = 0; k < rawLanes.length; k++) { int turn = TurnType.getPrimaryTurn(rawLanes[k]); int sturn = TurnType.getSecondaryTurn(rawLanes[k]); int tturn = TurnType.getTertiaryTurn(rawLanes[k]); - + boolean active = false; + // some turns go through many segments (to turn right or left) // so on one first segment the lane could be available and may be only 1 possible // all undesired lanes will be disabled through the 2nd pass - if((TurnType.isRightTurn(sturn) && possiblyRightTurn) || - (TurnType.isLeftTurn(sturn) && possiblyLeftTurn)) { - // we can't predict here whether it will be a left turn or straight on, + if ((TurnType.isRightTurn(sturn) && possiblyRightTurn) + || (TurnType.isLeftTurn(sturn) && possiblyLeftTurn)) { + // we can't predict here whether it will be a left turn or straight on, // it could be done during 2nd pass - TurnType.setPrimaryTurn(rawLanes, k, sturn); - TurnType.setSecondaryTurn(rawLanes, k, turn); + TurnType.setSecondaryToPrimary(rawLanes, k); active = true; - } else if((TurnType.isRightTurn(tturn) && possiblyRightTurn) || - (TurnType.isLeftTurn(tturn) && possiblyLeftTurn)) { - TurnType.setPrimaryTurn(rawLanes, k, tturn); - TurnType.setTertiaryTurn(rawLanes, k, turn); + } else if ((TurnType.isRightTurn(tturn) && possiblyRightTurn) + || (TurnType.isLeftTurn(tturn) && possiblyLeftTurn)) { + TurnType.setTertiaryToPrimary(rawLanes, k); active = true; - } else if((TurnType.isRightTurn(turn) && possiblyRightTurn) || - (TurnType.isLeftTurn(turn) && possiblyLeftTurn)) { + } else if ((TurnType.isRightTurn(turn) && possiblyRightTurn) + || (TurnType.isLeftTurn(turn) && possiblyLeftTurn)) { active = true; - } else if (turn == TurnType.C) { + // } else if (turn == TurnType.C) { + } else if (turn == tp) { active = true; } if (active) { @@ -1329,6 +1352,8 @@ public class RouteResultPreparation { } t.setSkipToSpeak(!rs.speak); t.setLanes(rawLanes); + t.setPossibleLeftTurn(possiblyLeftTurn); + t.setPossibleRightTurn(possiblyRightTurn); return t; } @@ -1571,10 +1596,8 @@ public class RouteResultPreparation { int[] lanes = new int[splitLaneOptions.length]; for (int i = 0; i < splitLaneOptions.length; i++) { String[] laneOptions = splitLaneOptions[i].split(";"); - boolean isTertiaryTurn = false; for (int j = 0; j < laneOptions.length; j++) { int turn = TurnType.convertType(laneOptions[j]); - final int primary = TurnType.getPrimaryTurn(lanes[i]); if (primary == 0) { TurnType.setPrimaryTurnAndReset(lanes, i, turn); @@ -1584,12 +1607,12 @@ public class RouteResultPreparation { (TurnType.isLeftTurn(calcTurnType) && TurnType.isLeftTurn(turn)) ) { TurnType.setPrimaryTurnShiftOthers(lanes, i, turn); - } else if (!isTertiaryTurn) { - TurnType.setSecondaryTurnShiftOthers(lanes, i, turn); - isTertiaryTurn = true; - } else { + } else if (TurnType.getSecondaryTurn(lanes[i]) == 0) { + TurnType.setSecondaryTurn(lanes, i, turn); + } else if (TurnType.getTertiaryTurn(lanes[i]) == 0) { TurnType.setTertiaryTurn(lanes, i, turn); - break; + } else { + // ignore } } } @@ -1597,95 +1620,90 @@ public class RouteResultPreparation { return lanes; } - private int inferSlightTurnFromLanes(int[] oLanes, RoadSplitStructure rs) { - TIntHashSet possibleTurns = getPossibleTurnsFromActiveLanes(oLanes, false); - if (possibleTurns.isEmpty()) { + + private int inferSlightTurnFromActiveLanes(int[] oLanes, boolean mostLeft, boolean mostRight) { + Integer[] possibleTurns = getPossibleTurns(oLanes, false, true); + if (possibleTurns.length == 0) { // No common turns, so can't determine anything. return 0; } int infer = 0; - if (possibleTurns.size() == 1) { - infer = possibleTurns.iterator().next(); - } else if (possibleTurns.size() > 1) { - if (rs.keepLeft && rs.keepRight && possibleTurns.contains(TurnType.C)) { - infer = TurnType.C; - } else if (rs.keepLeft || rs.keepRight) { - TIntIterator it = possibleTurns.iterator(); - infer = it.next(); - while(it.hasNext()) { - int next = it.next(); - int orderInfer = TurnType.orderFromLeftToRight(infer); - int orderNext = TurnType.orderFromLeftToRight(next) ; - if(rs.keepLeft && orderNext < orderInfer) { - infer = next; - } else if(rs.keepRight && orderNext > orderInfer) { - infer = next; - } - } - } - } - - // Checking to see that there is only one unique turn - if (infer != 0) { - for(int i = 0; i < oLanes.length; i++) { - if(TurnType.getSecondaryTurn(oLanes[i]) == infer) { - int pt = TurnType.getPrimaryTurn(oLanes[i]); - int en = oLanes[i] & 1; - TurnType.setPrimaryTurnAndReset(oLanes, i, infer); - oLanes[i] |= en; - TurnType.setSecondaryTurn(oLanes, i, pt); - } - + if (possibleTurns.length == 1) { + infer = possibleTurns[0]; + } else { + if (mostLeft && !mostRight) { + infer = possibleTurns[0]; + } else if(mostRight && !mostLeft) { + infer = possibleTurns[possibleTurns.length - 1]; + } else { + infer = possibleTurns[1]; +// infer = TurnType.C; } } return infer; } - private TIntHashSet getPossibleTurnsFromActiveLanes(int[] oLanes, boolean onlyPrimary) { - TIntHashSet possibleTurns = new TIntHashSet(); + private Integer[] getPossibleTurnsFromActiveLanes(int[] oLanes, boolean onlyPrimary) { + return getPossibleTurns(oLanes, onlyPrimary, true); + } + + private Integer[] getPossibleTurns(int[] oLanes, boolean onlyPrimary, boolean uniqueFromActive) { + Set possibleTurns = new LinkedHashSet<>(); + Set upossibleTurns = new LinkedHashSet<>(); for (int i = 0; i < oLanes.length; i++) { - if ((oLanes[i] & 1) == 0) { - continue; + // Nothing is in the list to compare to, so add the first elements + upossibleTurns.clear(); + upossibleTurns.add(TurnType.getPrimaryTurn(oLanes[i])); + if (!onlyPrimary && TurnType.getSecondaryTurn(oLanes[i]) != 0) { + upossibleTurns.add(TurnType.getSecondaryTurn(oLanes[i])); } - if (possibleTurns.isEmpty()) { - // Nothing is in the list to compare to, so add the first elements - possibleTurns.add(TurnType.getPrimaryTurn(oLanes[i])); - if (!onlyPrimary && TurnType.getSecondaryTurn(oLanes[i]) != 0) { - possibleTurns.add(TurnType.getSecondaryTurn(oLanes[i])); - } - if (!onlyPrimary && TurnType.getTertiaryTurn(oLanes[i]) != 0) { - possibleTurns.add(TurnType.getTertiaryTurn(oLanes[i])); - } - } else { - TIntArrayList laneTurns = new TIntArrayList(); - laneTurns.add(TurnType.getPrimaryTurn(oLanes[i])); - if (!onlyPrimary && TurnType.getSecondaryTurn(oLanes[i]) != 0) { - laneTurns.add(TurnType.getSecondaryTurn(oLanes[i])); - } - if (!onlyPrimary && TurnType.getTertiaryTurn(oLanes[i]) != 0) { - laneTurns.add(TurnType.getTertiaryTurn(oLanes[i])); - } - possibleTurns.retainAll(laneTurns); - if (possibleTurns.isEmpty()) { - // No common turns, so can't determine anything. - return possibleTurns; + if (!onlyPrimary && TurnType.getTertiaryTurn(oLanes[i]) != 0) { + upossibleTurns.add(TurnType.getTertiaryTurn(oLanes[i])); + } + if (!uniqueFromActive) { + possibleTurns.addAll(upossibleTurns); +// if (!possibleTurns.isEmpty()) { +// possibleTurns.retainAll(upossibleTurns); +// if(possibleTurns.isEmpty()) { +// break; +// } +// } else { +// possibleTurns.addAll(upossibleTurns); +// } + } else if ((oLanes[i] & 1) == 1) { + if (!possibleTurns.isEmpty()) { + possibleTurns.retainAll(upossibleTurns); + if(possibleTurns.isEmpty()) { + break; + } + } else { + possibleTurns.addAll(upossibleTurns); } } } - // Remove all turns from lanes not selected...because those aren't it - for (int i = 0; i < oLanes.length; i++) { - if ((oLanes[i] & 1) == 0 && !possibleTurns.isEmpty()) { - possibleTurns.remove((Integer) TurnType.getPrimaryTurn(oLanes[i])); - if (TurnType.getSecondaryTurn(oLanes[i]) != 0) { - possibleTurns.remove((Integer) TurnType.getSecondaryTurn(oLanes[i])); - } - if (TurnType.getTertiaryTurn(oLanes[i]) != 0) { - possibleTurns.remove((Integer) TurnType.getTertiaryTurn(oLanes[i])); + if (uniqueFromActive) { + for (int i = 0; i < oLanes.length; i++) { + if ((oLanes[i] & 1) == 0) { + possibleTurns.remove((Integer) TurnType.getPrimaryTurn(oLanes[i])); + if (TurnType.getSecondaryTurn(oLanes[i]) != 0) { + possibleTurns.remove((Integer) TurnType.getSecondaryTurn(oLanes[i])); + } + if (TurnType.getTertiaryTurn(oLanes[i]) != 0) { + possibleTurns.remove((Integer) TurnType.getTertiaryTurn(oLanes[i])); + } } } } - return possibleTurns; + Integer[] array = possibleTurns.toArray(new Integer[possibleTurns.size()]); + Arrays.sort(array, new Comparator() { + + @Override + public int compare(Integer o1, Integer o2) { + return Integer.compare(TurnType.orderFromLeftToRight(o1), TurnType.orderFromLeftToRight(o2)); + } + }); + return array; } private boolean isMotorway(RouteSegmentResult s){ @@ -1754,7 +1772,7 @@ public class RouteResultPreparation { if (routeSegment.road.getId() != road.getId() && routeSegment.road.getId() != previousRoadId) { RouteDataObject addRoad = routeSegment.road; checkAndInitRouteRegion(ctx, addRoad); - // TODO restrictions can be considered as well + // Future: restrictions can be considered as well int oneWay = ctx.getRouter().isOneWay(addRoad); if (oneWay >= 0 && routeSegment.getSegmentStart() < addRoad.getPointsLength() - 1) { long pointL = getPoint(addRoad, routeSegment.getSegmentStart() + 1); diff --git a/OsmAnd-java/src/main/java/net/osmand/router/TurnType.java b/OsmAnd-java/src/main/java/net/osmand/router/TurnType.java index 9689e7d40e..7b67669cf3 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/TurnType.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/TurnType.java @@ -210,16 +210,25 @@ public class TurnType { public static void setPrimaryTurnShiftOthers(int[] lanes, int lane, int turnType) { int pt = getPrimaryTurn(lanes[lane]); int st = getSecondaryTurn(lanes[lane]); - //int tt = getTertiaryTurn(lanes[lane]); + //int tt = getTertiaryTurn(lanes[lane]); is lost here setPrimaryTurnAndReset(lanes, lane, turnType); setSecondaryTurn(lanes, lane, pt); setTertiaryTurn(lanes, lane, st); } - public static void setSecondaryTurnShiftOthers(int[] lanes, int lane, int turnType) { + public static void setSecondaryToPrimary(int[] lanes, int lane) { int st = getSecondaryTurn(lanes[lane]); - //int tt = getTertiaryTurn(lanes[lane]); - setSecondaryTurn(lanes, lane, turnType); + int pt = getPrimaryTurn(lanes[lane]); + setPrimaryTurn(lanes, lane, st); + setSecondaryTurn(lanes, lane, pt); + } + + public static void setTertiaryToPrimary(int[] lanes, int lane) { + int st = getSecondaryTurn(lanes[lane]); + int pt = getPrimaryTurn(lanes[lane]); + int tt = getTertiaryTurn(lanes[lane]); + setPrimaryTurn(lanes, lane, tt); + setSecondaryTurn(lanes, lane, pt); setTertiaryTurn(lanes, lane, st); } From b7c42d47b09d0ad9bf67eaac94a664a32525dbc8 Mon Sep 17 00:00:00 2001 From: Victor Shcherb Date: Tue, 16 Jun 2020 23:30:59 +0200 Subject: [PATCH 107/107] Fix #9147 --- .../osmand/search/core/SearchCoreFactory.java | 39 ++++++++++++------- .../test/resources/search/navacerrada.json | 6 +-- 2 files changed, 28 insertions(+), 17 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/search/core/SearchCoreFactory.java b/OsmAnd-java/src/main/java/net/osmand/search/core/SearchCoreFactory.java index e7573cca4f..bf6924c8fc 100644 --- a/OsmAnd-java/src/main/java/net/osmand/search/core/SearchCoreFactory.java +++ b/OsmAnd-java/src/main/java/net/osmand/search/core/SearchCoreFactory.java @@ -140,10 +140,16 @@ public class SearchCoreFactory { protected void subSearchApiOrPublish(SearchPhrase phrase, SearchResultMatcher resultMatcher, SearchResult res, SearchBaseAPI api) throws IOException { + subSearchApiOrPublish(phrase, resultMatcher, res, api, true); + } + + protected void subSearchApiOrPublish(SearchPhrase phrase, SearchResultMatcher resultMatcher, SearchResult res, SearchBaseAPI api, + boolean publish) + throws IOException { phrase.countUnknownWordsMatchMainResult(res); boolean firstUnknownWordMatches = res.firstUnknownWordMatches; List leftUnknownSearchWords = new ArrayList(phrase.getUnknownSearchWords()); - if(res.otherWordsMatch != null) { + if (res.otherWordsMatch != null) { leftUnknownSearchWords.removeAll(res.otherWordsMatch); } SearchResult newParentSearchResult = null; @@ -187,19 +193,23 @@ public class SearchCoreFactory { leftUnknownSearchWords.add(0, phrase.getFirstUnknownSearchWord()); } // publish result to set parentSearchResult before search - if(newParentSearchResult != null) { - SearchResult prev = resultMatcher.setParentSearchResult(newParentSearchResult); - resultMatcher.publish(res); - resultMatcher.setParentSearchResult(prev); - } else { - resultMatcher.publish(res); + if (publish) { + if (newParentSearchResult != null) { + SearchResult prev = resultMatcher.setParentSearchResult(newParentSearchResult); + resultMatcher.publish(res); + resultMatcher.setParentSearchResult(prev); + } else { + resultMatcher.publish(res); + } } if (!leftUnknownSearchWords.isEmpty() && api != null && api.isSearchAvailable(phrase)) { SearchPhrase nphrase = phrase.selectWord(res, leftUnknownSearchWords, phrase.isLastUnknownSearchWordComplete()); - SearchResult prev = resultMatcher.setParentSearchResult(res); + SearchResult prev = resultMatcher.setParentSearchResult(publish ? res : + resultMatcher.getParentSearchResult()); api.search(nphrase, resultMatcher); resultMatcher.setParentSearchResult(prev); } + } @Override @@ -1103,11 +1113,11 @@ public class SearchCoreFactory { res.localeName = object.getName(phrase.getSettings().getLang(), phrase.getSettings().isTransliterate()); res.otherNames = object.getAllNames(true); + boolean pub = true; if (object.getName().startsWith("<")) { // streets related to city - continue; - } - if (phrase.isUnknownSearchWordPresent() + pub = false; + } else if (phrase.isUnknownSearchWordPresent() && !(nm.matches(res.localeName) || nm.matches(res.otherNames))) { continue; } @@ -1119,7 +1129,7 @@ public class SearchCoreFactory { res.priority = SEARCH_STREET_BY_CITY_PRIORITY; //res.priorityDistance = 1; res.objectType = ObjectType.STREET; - subSearchApiOrPublish(phrase, resultMatcher, res, streetsAPI); + subSearchApiOrPublish(phrase, resultMatcher, res, streetsAPI, pub); if (limit++ > LIMIT) { break; } @@ -1227,8 +1237,8 @@ public class SearchCoreFactory { res.file = file; res.priority = priority; res.priorityDistance = 0; - // TOOO phrase.countUnknownWordsMatchMainResult(res); res.firstUnknownWordMatches = startMatch.matches(res.localeName); + // phrase.countUnknownWordsMatchMainResult(res); // same as above res.relatedObject = s; res.localeRelatedObjectName = s.getName(phrase.getSettings().getLang(), phrase.getSettings().isTransliterate()); res.objectType = ObjectType.HOUSE; @@ -1239,6 +1249,7 @@ public class SearchCoreFactory { res.location = b.getLocation(); } res.preferredZoom = 17; + resultMatcher.publish(res); } String streetIntersection = phrase.getUnknownWordToSearch(); @@ -1252,7 +1263,6 @@ public class SearchCoreFactory { || !phrase.isSearchTypeAllowed(ObjectType.STREET_INTERSECTION)) { continue; } - // TOOO phrase.countUnknownWordsMatchMainResult(res); res.otherNames = street.getAllNames(true); res.localeName = street.getName(phrase.getSettings().getLang(), phrase.getSettings().isTransliterate()); res.object = street; @@ -1264,6 +1274,7 @@ public class SearchCoreFactory { res.objectType = ObjectType.STREET_INTERSECTION; res.location = street.getLocation(); res.preferredZoom = 16; + phrase.countUnknownWordsMatchMainResult(res); resultMatcher.publish(res); } } diff --git a/OsmAnd-java/src/test/resources/search/navacerrada.json b/OsmAnd-java/src/test/resources/search/navacerrada.json index 8bf429fc8a..b867103ed5 100644 --- a/OsmAnd-java/src/test/resources/search/navacerrada.json +++ b/OsmAnd-java/src/test/resources/search/navacerrada.json @@ -12,7 +12,8 @@ "phrase": "Calle de las eras 5, Navacerrada", "results": [ "5, Calle de las Eras (Uranización Los Corales), Navacerrada [[6, HOUSE, 0.043, 70.17 km]]", - "Calle de las Eras (Uranización Los Corales), Navacerrada [[5, STREET, 0.310, 70.15 km]]" + "Calle de las Eras (Uranización Los Corales), Navacerrada [[5, STREET, 0.310, 70.15 km]]", + "Calle del Sotillo (Uranización Los Corales), Pasaje de las Eras (Uranización Los Corales), Navacerrada [[5, STREET_INTERSECTION, 0.043, 70.23 km]]" ], "extra-results": [ "5, Calle Navacerrada (Urb. Las Suertes), Las Suertes [[4, HOUSE, 0.430, 60.50 km]]", @@ -31,8 +32,7 @@ "Calle de las Cruces (Residencial Sanabria), Navacerrada [[4, STREET, 0.310, 70.14 km]]", "Calle de las Escuelas, Navacerrada [[4, STREET, 0.310, 70.17 km]]", "Calle de las Huertas (Residencial Sanabria), Navacerrada [[4, STREET, 0.310, 70.18 km]]", - "Calle de la Virgen de las Nieves, Puerto de Navacerrada [[4, STREET, 0.310, 74.59 km]]", - "Calle del Sotillo (Uranización Los Corales), Pasaje de las Eras (Uranización Los Corales), Navacerrada [[4, STREET_INTERSECTION, 0.043, 70.23 km]]" + "Calle de la Virgen de las Nieves, Puerto de Navacerrada [[4, STREET, 0.310, 74.59 km]]" ], "amenities": [ {