From f9eef5eaa1459b2f54d9a028724e661cd44e4df2 Mon Sep 17 00:00:00 2001 From: Viktor Govako Date: Sat, 20 May 2023 21:21:15 -0300 Subject: [PATCH 01/18] [drape] Safe input text check. Signed-off-by: Viktor Govako --- drape_frontend/text_layout.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drape_frontend/text_layout.cpp b/drape_frontend/text_layout.cpp index 6bd0f99c24..108fcee10f 100644 --- a/drape_frontend/text_layout.cpp +++ b/drape_frontend/text_layout.cpp @@ -348,6 +348,10 @@ StraightTextLayout::StraightTextLayout(strings::UniString const & text, float fo bool forceNoWrap) { strings::UniString visibleText = bidi::log2vis(text); + // Possible if name has strange symbols only. + if (visibleText.empty()) + return; + buffer_vector delimIndexes; if (visibleText == text && !forceNoWrap) SplitText(visibleText, delimIndexes); -- 2.45.3 From 96a19e4d9c51a495625768e08af3ad444d649b38 Mon Sep 17 00:00:00 2001 From: Viktor Govako Date: Thu, 18 May 2023 19:03:08 -0300 Subject: [PATCH 02/18] [routing] Fixed speed calculation for cycleway && bicycle=yes roads. Signed-off-by: Viktor Govako --- routing_common/vehicle_model.cpp | 37 ++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/routing_common/vehicle_model.cpp b/routing_common/vehicle_model.cpp index ae34bd47f5..f2f7fe795a 100644 --- a/routing_common/vehicle_model.cpp +++ b/routing_common/vehicle_model.cpp @@ -125,10 +125,9 @@ void VehicleModel::GetAdditionalRoadSpeed(uint32_t type, bool isCityRoad, auto const * s = m_addRoadTypes.Find(type); if (s) { - auto const & res = isCityRoad ? s->m_inCity : s->m_outCity; - // Take max, because combination of highway=footway + bicycle=yes should emit best bicycle speed - // even if highway=footway is prohibited for cycling and has small dismount speed. - speed = speed ? Pick(*speed, res) : res; + // Now we have only 1 additional type "yes" for all models. + ASSERT(!speed, ()); + speed = isCityRoad ? s->m_inCity : s->m_outCity; } } @@ -159,25 +158,30 @@ SpeedKMpH VehicleModel::GetTypeSpeedImpl(feature::TypesHolder const & types, Spe ASSERT(s != kInvalidSpeed, (*hwType, params.m_forward, params.m_maxspeed)); speed = {static_cast(s)}; } - else if (!isCar && additionalRoadSpeed) - { - // Take additional speed for bicycle and pedestrian only. Car should take highway speed first. - speed = *additionalRoadSpeed; - } else { auto const * s = m_highwayBasedInfo.m_speeds.Find(*hwType); ASSERT(s, ("Key:", *hwType, "is not found.")); speed = s->GetSpeed(isCityRoad); - // Override the global default speed with the MWM's saved default speed if they are not significantly differ (2x), - // to avoid anomaly peaks (especially for tracks). - if (isCar && params.m_defSpeedKmPH != kInvalidSpeed && - fabs(speed.m_weight - params.m_defSpeedKmPH) / speed.m_weight < 1.0) + if (isCar) { - double const factor = speed.m_eta / speed.m_weight; - speed.m_weight = params.m_defSpeedKmPH; - speed.m_eta = speed.m_weight * factor; + // Override the global default speed with the MWM's saved default speed if they are not significantly differ (2x), + // to avoid anomaly peaks (especially for tracks). + /// @todo MWM saved speeds should be validated in generator. + if (params.m_defSpeedKmPH != kInvalidSpeed && + fabs(speed.m_weight - params.m_defSpeedKmPH) / speed.m_weight < 1.0) + { + double const factor = speed.m_eta / speed.m_weight; + speed.m_weight = params.m_defSpeedKmPH; + speed.m_eta = speed.m_weight * factor; + } + } + else + { + // Take additional speed for bicycle and pedestrian only. + if (additionalRoadSpeed) + speed = Pick(speed, *additionalRoadSpeed); } } @@ -190,6 +194,7 @@ SpeedKMpH VehicleModel::GetTypeSpeedImpl(feature::TypesHolder const & types, Spe } else { + // In case if we have highway=footway + motorcar=yes :) ASSERT(additionalRoadSpeed, ()); if (additionalRoadSpeed) speed = *additionalRoadSpeed; -- 2.45.3 From 2a435adba65638621d1a65f3f0d1d39fb5ed50ef Mon Sep 17 00:00:00 2001 From: Viktor Govako Date: Thu, 18 May 2023 20:35:25 -0300 Subject: [PATCH 03/18] [routing] Changed car tertiary speed 60->50. Signed-off-by: Viktor Govako --- routing_common/car_model_coefs.hpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/routing_common/car_model_coefs.hpp b/routing_common/car_model_coefs.hpp index 83df2fd21e..5646f13f3e 100644 --- a/routing_common/car_model_coefs.hpp +++ b/routing_common/car_model_coefs.hpp @@ -48,8 +48,7 @@ HighwayBasedSpeeds const kHighwayBasedSpeeds = { {HighwayType::HighwaySecondary, InOutCitySpeedKMpH(60.00 /* in city */, 70.00 /* out city */)}, {HighwayType::HighwaySecondaryLink, InOutCitySpeedKMpH(48.00 /* in city */, 56.00 /* out city */)}, {HighwayType::HighwayService, InOutCitySpeedKMpH({15.00, 15.00} /* in city */, {15.00, 15.00} /* out city */)}, - /// @todo Why tertiary is the only road with inCity speed _bigger_ than outCity? - {HighwayType::HighwayTertiary, InOutCitySpeedKMpH(60.00 /* in city */, 50.00 /* out city */)}, + {HighwayType::HighwayTertiary, InOutCitySpeedKMpH(50.00 /* in city */, 50.00 /* out city */)}, {HighwayType::HighwayTertiaryLink, InOutCitySpeedKMpH({40.95, 34.97} /* in city */, {45.45, 39.73} /* out city */)}, {HighwayType::HighwayTrack, InOutCitySpeedKMpH({5.00, 5.00} /* in city */, {5.00, 5.00} /* out city */)}, {HighwayType::HighwayTrunk, InOutCitySpeedKMpH(90.00 /* in city */, 103.00 /* out city */)}, -- 2.45.3 From f8bb50d2cbc370b4c801d789175bc62644aeaa6a Mon Sep 17 00:00:00 2001 From: Alexander Borsuk Date: Thu, 11 May 2023 00:48:40 +0200 Subject: [PATCH 04/18] [tools] Translate strings using DeepL free API + Google Translate Signed-off-by: Alexander Borsuk --- tools/python/translate.py | 133 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100755 tools/python/translate.py diff --git a/tools/python/translate.py b/tools/python/translate.py new file mode 100755 index 0000000000..11ecb8c0de --- /dev/null +++ b/tools/python/translate.py @@ -0,0 +1,133 @@ +#!/usr/bin/env python3 + +# Requires `brew install translate-shell` +# and DEEPL_FREE_API_KEY or DEEPL_API_KEY environment variables set. + +import os +import subprocess +import requests +import json +import sys + +# Use DeepL when possible with a fall back to Google. +GOOGLE_TARGET_LANGUAGES = [ + 'ar', + 'be', + 'ca', + 'eu', + 'fa', + 'he', + 'mr', + 'th', + 'vi', + 'zh-TW', # zh-Hant in OM +] + +DEEPL_TARGET_LANGUAGES = [ + 'bg', + 'cs', + 'da', + 'de', + 'el', + 'en-GB', + 'en-US', # en in OM + 'es', + 'et', + 'fi', + 'fr', + 'hu', + 'id', + 'it', + 'ja', + 'ko', +# 'lt', +# 'lv', + 'nb', + 'nl', + 'pl', + 'pt-BR', + 'pt-PT', # pt in OM + 'ro', + 'ru', + 'sk', +# 'sl', + 'sv', + 'tr', + 'uk', + 'zh', # zh-Hans in OM +] + + +def get_api_key(): + key = os.environ.get('DEEPL_FREE_API_KEY') + if key == None: + key = os.environ.get('DEEPL_API_KEY') + if key == None: + print('Error: DEEPL_FREE_API_KEY or DEEPL_API_KEY env variables are not set') + exit(1) + return key + +def google_translate(text): + fromTo = 'en:' + for lang in GOOGLE_TARGET_LANGUAGES: + fromTo += lang + '+' + # Remove last + + fromTo = fromTo[:-1] + res = subprocess.run(['trans', '-b', '-no-bidi', fromTo, text], text=True, capture_output=True) + if res.returncode != 0: + print('Error running trans program:') + print(res.stderr) + exit(1) + + print('\nGoogle translations:') + translations = {} + i = 0 + for line in res.stdout.splitlines(): + lang = GOOGLE_TARGET_LANGUAGES[i] + if lang == 'zh-TW': + lang = 'zh-Hant' + translations[lang] = line + i = i + 1 + print(lang + ' = ' + line) + return translations + +def deepl_translate_one(text, target_language): + url = 'https://api-free.deepl.com/v2/translate' + payload = { + 'auth_key': get_api_key(), + 'text': text, + 'target_lang': target_language, + } + headers = {'Content-Type': 'application/x-www-form-urlencoded'} + response = requests.request('POST', url, headers=headers, data=payload) + return response.json()['translations'][0]['text'] + +def deepl_translate(text): + translations = {} + print('Deepl translations:') + for lang in DEEPL_TARGET_LANGUAGES: + translation = deepl_translate_one(text, lang) + if lang == 'pt-PT': + lang = 'pt' + elif lang == 'zh': + lang = 'zh-Hans' + elif lang == 'en-US': + lang = 'en' + translations[lang] = translation + print(lang + ' = ' + translation) + return translations + +if __name__ == '__main__': + text_to_translate = sys.argv[1] + + translations = deepl_translate(text_to_translate) + google_translations = google_translate(text_to_translate) + translations.update(google_translations) + + print('\nMerged Deepl and Google translations:') + en = translations.pop('en') + langs = list(translations.keys()) + langs.sort() + print('en =', en) + for lang in langs: + print(lang, '=', translations[lang]) -- 2.45.3 From deb88bae4c99b8ee0181d7bce5b12a30f35dac97 Mon Sep 17 00:00:00 2001 From: Alexander Borsuk Date: Sat, 13 May 2023 23:55:24 +0200 Subject: [PATCH 05/18] Added es-MX, removed duplicates for regional dialects Signed-off-by: Alexander Borsuk --- tools/python/translate.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tools/python/translate.py b/tools/python/translate.py index 11ecb8c0de..71cced10f5 100755 --- a/tools/python/translate.py +++ b/tools/python/translate.py @@ -14,6 +14,7 @@ GOOGLE_TARGET_LANGUAGES = [ 'ar', 'be', 'ca', + 'es-MX', 'eu', 'fa', 'he', @@ -123,6 +124,11 @@ if __name__ == '__main__': translations = deepl_translate(text_to_translate) google_translations = google_translate(text_to_translate) translations.update(google_translations) + # Remove duplicates for regional variations. + for regional in ['en-GB', 'es-MX', 'pt-BR']: + main = regional.split('-')[0] # 'en', 'es', 'pt'... + if translations[regional] == translations[main]: + translations.pop(regional) print('\nMerged Deepl and Google translations:') en = translations.pop('en') -- 2.45.3 From afabf855894ed3c39dc74314701939b848684c7e Mon Sep 17 00:00:00 2001 From: Alexander Borsuk Date: Mon, 22 May 2023 01:06:22 +0200 Subject: [PATCH 06/18] [tools] Enabled lt and sw, print both formats at the same time Signed-off-by: Alexander Borsuk --- tools/python/translate.py | 47 ++++++++++++++++++++++++++++++++------- 1 file changed, 39 insertions(+), 8 deletions(-) diff --git a/tools/python/translate.py b/tools/python/translate.py index 71cced10f5..db157ad64d 100755 --- a/tools/python/translate.py +++ b/tools/python/translate.py @@ -5,11 +5,15 @@ import os import subprocess +import platform import requests -import json +import shutil import sys +TRANS_CMD = 'trans' + # Use DeepL when possible with a fall back to Google. +# List of Google Translate target languages: https://cloud.google.com/translate/docs/languages GOOGLE_TARGET_LANGUAGES = [ 'ar', 'be', @@ -19,11 +23,13 @@ GOOGLE_TARGET_LANGUAGES = [ 'fa', 'he', 'mr', + 'sw', 'th', 'vi', 'zh-TW', # zh-Hant in OM ] +# See https://www.deepl.com/docs-api/translate-text/translate-text/ for target languages. DEEPL_TARGET_LANGUAGES = [ 'bg', 'cs', @@ -41,7 +47,7 @@ DEEPL_TARGET_LANGUAGES = [ 'it', 'ja', 'ko', -# 'lt', + 'lt', # 'lv', 'nb', 'nl', @@ -74,7 +80,7 @@ def google_translate(text): fromTo += lang + '+' # Remove last + fromTo = fromTo[:-1] - res = subprocess.run(['trans', '-b', '-no-bidi', fromTo, text], text=True, capture_output=True) + res = subprocess.run([TRANS_CMD, '-b', '-no-bidi', fromTo, text], text=True, capture_output=True) if res.returncode != 0: print('Error running trans program:') print(res.stderr) @@ -87,7 +93,7 @@ def google_translate(text): lang = GOOGLE_TARGET_LANGUAGES[i] if lang == 'zh-TW': lang = 'zh-Hant' - translations[lang] = line + translations[lang] = line.capitalize() i = i + 1 print(lang + ' = ' + line) return translations @@ -114,12 +120,30 @@ def deepl_translate(text): lang = 'zh-Hans' elif lang == 'en-US': lang = 'en' - translations[lang] = translation + translations[lang] = translation.capitalize() print(lang + ' = ' + translation) return translations +def usage(): + print('Usage:', sys.argv[0], 'Some English text to translate') + if shutil.which(TRANS_CMD) == None: + print(TRANS_CMD, ' program for Google Translate is not installed.') + if platform.system() == 'Darwin': + print('Install it using `brew install translate-shell`') + else: + print('See https://www.soimort.org/translate-shell/ for installation instructions') + if __name__ == '__main__': - text_to_translate = sys.argv[1] + if len(sys.argv) < 2: + usage() + exit(1) + + if not 'DEEPL_FREE_API_KEY' in os.environ and not 'DEEPL_API_KEY' in os.environ: + print('Error: neither DEEPL_FREE_API_KEY nor DEEPL_API_KEY environment variables are set.') + print('DeepL translations are not available.') + exit(1) + + text_to_translate = ' '.join(sys.argv[1:]) translations = deepl_translate(text_to_translate) google_translations = google_translate(text_to_translate) @@ -134,6 +158,13 @@ if __name__ == '__main__': en = translations.pop('en') langs = list(translations.keys()) langs.sort() - print('en =', en) + + print('============ strings.txt format ============') + print(' en =', en) for lang in langs: - print(lang, '=', translations[lang]) + print(' ', lang, '=', translations[lang]) + + print('============ categories.txt format ============') + print('en:' + en) + for lang in langs: + print(lang + ':' + translations[lang]) -- 2.45.3 From adc646c2a83486ad50c07dfdc242328c09f61698 Mon Sep 17 00:00:00 2001 From: Alexander Borsuk Date: Mon, 22 May 2023 01:45:06 +0200 Subject: [PATCH 07/18] [tools] Comment how to register a free DeepL API account Signed-off-by: Alexander Borsuk --- tools/python/translate.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/python/translate.py b/tools/python/translate.py index db157ad64d..351d9a302c 100755 --- a/tools/python/translate.py +++ b/tools/python/translate.py @@ -140,7 +140,9 @@ if __name__ == '__main__': if not 'DEEPL_FREE_API_KEY' in os.environ and not 'DEEPL_API_KEY' in os.environ: print('Error: neither DEEPL_FREE_API_KEY nor DEEPL_API_KEY environment variables are set.') - print('DeepL translations are not available.') + print('DeepL translations are not available. Register for a free Developer API account here:') + print('https://www.deepl.com/pro#developer') + print('and get the API key here: https://www.deepl.com/account/summary') exit(1) text_to_translate = ' '.join(sys.argv[1:]) -- 2.45.3 From a743aba0560e97f04c0b91c32675ae9b2e121f4e Mon Sep 17 00:00:00 2001 From: Andrew Shkrob Date: Thu, 18 May 2023 22:58:43 +0200 Subject: [PATCH 08/18] [cmake] Group targets into folders Signed-off-by: Andrew Shkrob --- 3party/CMakeLists.txt | 59 ++++++++++++++++++++++++++++++++++++++++++ CMakeLists.txt | 60 ++----------------------------------------- 2 files changed, 61 insertions(+), 58 deletions(-) create mode 100644 3party/CMakeLists.txt diff --git a/3party/CMakeLists.txt b/3party/CMakeLists.txt new file mode 100644 index 0000000000..9c9674a1b3 --- /dev/null +++ b/3party/CMakeLists.txt @@ -0,0 +1,59 @@ +if (NOT WITH_SYSTEM_PROVIDED_3PARTY) + # Configure expat library. + # Suppress "Policy CMP0077 is not set: option() honors normal variables" + # for the expat options below. + set(CMAKE_POLICY_DEFAULT_CMP0077 NEW) + set(EXPAT_BUILD_TOOLS OFF) + set(EXPAT_BUILD_EXAMPLES OFF) + set(EXPAT_BUILD_TESTS OFF) + set(EXPAT_BUILD_DOCS OFF) + set(EXPAT_BUILD_PKGCONFIG OFF) + set(EXPAT_ENABLE_INSTALL OFF) + set(EXPAT_SHARED_LIBS OFF) + add_subdirectory(expat/expat) + + # Configure Jansson library. + set(JANSSON_BUILD_DOCS OFF) + set(JANSSON_BUILD_MAN OFF) + set(JANSSON_EXAMPLES OFF) + set(JANSSON_INSTALL OFF) + set(JANSSON_WITHOUT_TESTS ON) + add_subdirectory(jansson/jansson/) + target_include_directories(jansson INTERFACE "${PROJECT_BINARY_DIR}/3party/jansson/jansson/include") + + # Add gflags library. + add_subdirectory(gflags) + target_compile_options(gflags_nothreads_static PRIVATE $<$:-Wno-subobject-linkage>) + # Not needed for the usual build process, but it fixes QtCreator editor, + # that doesn't see gflags/gflags.h in binary dir (gflags has tricky cmake configuration). + if (PLATFORM_DESKTOP) + include_directories("${PROJECT_BINARY_DIR}/3party/gflags/include") + endif() + + # Add pugixml library. + add_subdirectory(pugixml) + + # Add protobuf library. + add_subdirectory(protobuf) +endif() + +add_subdirectory(agg) +add_subdirectory(bsdiff-courgette) + +if (NOT LINUX_DETECTED) + add_subdirectory(freetype) + add_subdirectory(icu) +endif() + +add_subdirectory(liboauthcpp) +add_subdirectory(minizip) +add_subdirectory(opening_hours) +add_subdirectory(sdf_image) +add_subdirectory(stb_image) +add_subdirectory(succinct) +add_subdirectory(open-location-code) +add_subdirectory(vulkan_wrapper) + +if (PLATFORM_DESKTOP) + add_subdirectory(libtess2) +endif() diff --git a/CMakeLists.txt b/CMakeLists.txt index 62561f5b9e..34978954ce 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -290,69 +290,13 @@ if (USE_PCH) ${OMIM_PCH_TARGET_NAME} ) endif() + # Include 3party dependencies. - -if (NOT WITH_SYSTEM_PROVIDED_3PARTY) - # Configure expat library. - # Suppress "Policy CMP0077 is not set: option() honors normal variables" - # for the expat options below. - set(CMAKE_POLICY_DEFAULT_CMP0077 NEW) - set(EXPAT_BUILD_TOOLS OFF) - set(EXPAT_BUILD_EXAMPLES OFF) - set(EXPAT_BUILD_TESTS OFF) - set(EXPAT_BUILD_DOCS OFF) - set(EXPAT_BUILD_PKGCONFIG OFF) - set(EXPAT_ENABLE_INSTALL OFF) - set(EXPAT_SHARED_LIBS OFF) - add_subdirectory(3party/expat/expat) - - # Configure Jansson library. - set(JANSSON_BUILD_DOCS OFF) - set(JANSSON_BUILD_MAN OFF) - set(JANSSON_EXAMPLES OFF) - set(JANSSON_INSTALL OFF) - set(JANSSON_WITHOUT_TESTS ON) - add_subdirectory(3party/jansson/jansson/) - target_include_directories(jansson INTERFACE "${PROJECT_BINARY_DIR}/3party/jansson/jansson/include") - - # Add gflags library. - add_subdirectory(3party/gflags) - target_compile_options(gflags_nothreads_static PRIVATE $<$:-Wno-subobject-linkage>) - # Not needed for the usual build process, but it fixes QtCreator editor, - # that doesn't see gflags/gflags.h in binary dir (gflags has tricky cmake configuration). - if (PLATFORM_DESKTOP) - include_directories("${PROJECT_BINARY_DIR}/3party/gflags/include") - endif() - - # Add pugixml library. - add_subdirectory(3party/pugixml) - - # Add protobuf library. - add_subdirectory(${OMIM_ROOT}/3party/protobuf) -endif() - -add_subdirectory(3party/agg) -add_subdirectory(3party/bsdiff-courgette) +add_subdirectory(3party) if (LINUX_DETECTED) find_package(ICU COMPONENTS uc i18n data REQUIRED) find_package(Freetype REQUIRED) -else() - add_subdirectory(3party/freetype) - add_subdirectory(3party/icu) -endif() - -add_subdirectory(3party/liboauthcpp) -add_subdirectory(3party/minizip) -add_subdirectory(3party/opening_hours) -add_subdirectory(3party/sdf_image) -add_subdirectory(3party/stb_image) -add_subdirectory(3party/succinct) -add_subdirectory(3party/open-location-code) -add_subdirectory(3party/vulkan_wrapper) - -if (PLATFORM_DESKTOP) - add_subdirectory(3party/libtess2) endif() find_package(Python3 COMPONENTS Interpreter) -- 2.45.3 From 082cc510cafca074fa9904d3b1117fcbe2cc4efa Mon Sep 17 00:00:00 2001 From: Arnaud Vergnet Date: Thu, 25 May 2023 22:19:40 +0200 Subject: [PATCH 09/18] [android] prevent clicks through routing menu Signed-off-by: Arnaud Vergnet --- android/res/layout/menu.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/android/res/layout/menu.xml b/android/res/layout/menu.xml index ee87b0e0e2..fc915095b6 100644 --- a/android/res/layout/menu.xml +++ b/android/res/layout/menu.xml @@ -5,6 +5,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?cardBackground" + android:clickable="true" android:visibility="gone" tools:visibility="visible"> -- 2.45.3 From 23ec8ec9f2e397c6e6b91c908401b639053c874c Mon Sep 17 00:00:00 2001 From: Arnaud Vergnet Date: Thu, 25 May 2023 22:23:58 +0200 Subject: [PATCH 10/18] [android] prevent clicks through navigation mode header Signed-off-by: Arnaud Vergnet --- android/res/layout/layout_nav_top.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/android/res/layout/layout_nav_top.xml b/android/res/layout/layout_nav_top.xml index 539446b49b..18807be958 100644 --- a/android/res/layout/layout_nav_top.xml +++ b/android/res/layout/layout_nav_top.xml @@ -15,6 +15,7 @@ android:layout_height="wrap_content" android:elevation="@dimen/nav_elevation" app:layout_constraintTop_toTopOf="parent" + android:clickable="true" android:background="?cardBackground"> Date: Fri, 5 May 2023 10:36:12 -0300 Subject: [PATCH 11/18] [qt] Set OGL v3.2 on startup. Signed-off-by: Viktor Govako --- qt/main.cpp | 16 +++++----------- qt/qt_common/map_widget.cpp | 26 ++++++++++++++------------ 2 files changed, 19 insertions(+), 23 deletions(-) diff --git a/qt/main.cpp b/qt/main.cpp index adefaa32c1..06f8b07e5a 100644 --- a/qt/main.cpp +++ b/qt/main.cpp @@ -203,7 +203,6 @@ int main(int argc, char * argv[]) screenshotParams->m_dpiScale = FLAGS_dpi_scale; } - QSurfaceFormat fmt; fmt.setAlphaBufferSize(8); fmt.setBlueBufferSize(8); @@ -215,20 +214,15 @@ int main(int argc, char * argv[]) fmt.setSwapInterval(1); fmt.setDepthBufferSize(16); - // This is a workaround for some systems, - // including MacOs and older Linux distros, which rely on X.org and Mesa. - // Where somehow the driver itself doesn't - // make all the otherwise supported GLSL versions available by default - // and such requests are somehow disregarded at later stages of execution. - // This setting here will be potentially overwritten and overruled anyway, - // and only needed to ensure that we have the needed GLSL compiler available - // later when we need it. - if (app.platformName() == QString("xcb") || - app.platformName() == QString("cocoa")) + // Set proper OGL version now (needed for "cocoa" or "xcb"), but have troubles with "wayland" devices. + // It will be resolved later in MapWidget::initializeGL when OGL context is available. + if (app.platformName() != QString("wayland")) { + LOG(LINFO, ("Set default OGL version to 3.2")); fmt.setProfile(QSurfaceFormat::CoreProfile); fmt.setVersion(3, 2); } + #ifdef ENABLE_OPENGL_DIAGNOSTICS fmt.setOption(QSurfaceFormat::DebugContext); #endif diff --git a/qt/qt_common/map_widget.cpp b/qt/qt_common/map_widget.cpp index 36b6747cb1..bebba3c812 100644 --- a/qt/qt_common/map_widget.cpp +++ b/qt/qt_common/map_widget.cpp @@ -377,20 +377,22 @@ void MapWidget::initializeGL() // TODO: Separate apiOpenGL3 from apiOpenGLES3, and use that for the currend shader code. m_apiOpenGLES3 = true; } + + auto fmt = context()->format(); + if (m_apiOpenGLES3) + { + fmt.setProfile(QSurfaceFormat::CoreProfile); + fmt.setVersion(3, 2); + } + else + { + fmt.setProfile(QSurfaceFormat::CompatibilityProfile); + fmt.setVersion(2, 1); + } + + QSurfaceFormat::setDefaultFormat(fmt); } #endif - auto fmt = context()->format(); - if (m_apiOpenGLES3) - { - fmt.setProfile(QSurfaceFormat::CoreProfile); - fmt.setVersion(3, 2); - } - else - { - fmt.setProfile(QSurfaceFormat::CompatibilityProfile); - fmt.setVersion(2, 1); - } - QSurfaceFormat::setDefaultFormat(fmt); m_contextFactory.reset(new QtOGLContextFactory(context())); -- 2.45.3 From ec56bd5a4a397e393d7b5726c3988fc0d38d7270 Mon Sep 17 00:00:00 2001 From: Alexander Borsuk Date: Thu, 25 May 2023 22:36:01 +0200 Subject: [PATCH 12/18] [tools] Updated translate script docs, added lt to Google Translate Signed-off-by: Alexander Borsuk --- docs/TRANSLATIONS.md | 23 ++++++++++++++++++++--- tools/unix/translate_categories.sh | 6 +++++- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/docs/TRANSLATIONS.md b/docs/TRANSLATIONS.md index ec754987a7..e88fe47e6e 100644 --- a/docs/TRANSLATIONS.md +++ b/docs/TRANSLATIONS.md @@ -50,11 +50,28 @@ There are many more other options, e.g. print various translation statistics, va Check `tools/python/strings_utils.py -h` to see all of them. In some cases automatically translated strings are better than no translation at all. -There is a script to automate given string's translation into multiple languages. -Please [install Translate Shell](https://www.soimort.org/translate-shell/#installation) first to be able to run it. +There are two scripts to automate given string's translation into multiple languages. +Please [install Translate Shell](https://www.soimort.org/translate-shell/#installation) first to be able to run them. + +### DeepL + Google Translate fallback + +The first one uses free DeepL API where possible and provides a significantly better quality translations. +It requires registering a [DeepL account](https://www.deepl.com/pro#developer) and [getting API key](https://www.deepl.com/account/summary). +You may be asked for a credit card for verification, but it won't be charged. ```bash -# This generates translations in categories.txt format +export DEEPL_FREE_API_KEY= +# Generates translations in both categories.txt and strings.txt formats at the same time. +tools/python/translate.py English text to translate here +``` + +### Google Translate only + +The second one is not recommended, it uses Google API and sometimes translations are incorrect. +Also it does not support European Portuguese (pt or pt-PT), and always generates Brazil Portuguese. + +```bash +# Generates translations in categories.txt format tools/unix/translate_categories.sh "Route" # Translations in strings.txt format DELIM=" = " tools/unix/translate_categories.sh "Route" diff --git a/tools/unix/translate_categories.sh b/tools/unix/translate_categories.sh index 06c0017300..362412e47e 100755 --- a/tools/unix/translate_categories.sh +++ b/tools/unix/translate_categories.sh @@ -9,6 +9,10 @@ set -euo pipefail +echo "!!! This script is outdated, please use a better quality DeepL translations script" +echo "!!! tools/python/translate.py" +echo "" + DELIM=${DELIM:-:} case $# in @@ -27,7 +31,7 @@ esac # Note: default Google engine doesn't properly support European Portuguese (pt-PT) # and always produces Brazilian translations. Need to use Deepl. -LANGUAGES=( en ar be bg ca cs da de el es et eu fa 'fi' fr he hu id it ja ko mr nb nl pl pt pt-BR ro ru sk sv sw th tr uk vi zh-CN zh-TW ) +LANGUAGES=( en ar be bg ca cs da de el es et eu fa 'fi' fr he hu id it ja ko lt mr nb nl pl pt pt-BR ro ru sk sv sw th tr uk vi zh-CN zh-TW ) for lang in "${LANGUAGES[@]}"; do # -no-bidi fixes wrong characters order for RTL languages. -- 2.45.3 From ad4bf7e3a0866d90d2bdf3fcd5608834213452c3 Mon Sep 17 00:00:00 2001 From: Alexander Borsuk Date: Thu, 25 May 2023 22:37:50 +0200 Subject: [PATCH 13/18] [tools] Fixed dependabot warning Signed-off-by: Alexander Borsuk --- tools/python/descriptions/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/python/descriptions/requirements.txt b/tools/python/descriptions/requirements.txt index e206ccfe6e..a9a5f1e71e 100644 --- a/tools/python/descriptions/requirements.txt +++ b/tools/python/descriptions/requirements.txt @@ -1,5 +1,5 @@ htmlmin==0.1.12 -requests==2.23.0 +requests>=2.31.0 beautifulsoup4==4.9.1 wikidata==0.6.1 wikipedia-api==0.5.4 -- 2.45.3 From 9e3697316044a98d9dc8e0aafc9bc63e06694e90 Mon Sep 17 00:00:00 2001 From: Viktor Govako Date: Sun, 21 May 2023 15:22:36 -0300 Subject: [PATCH 14/18] [classifier] Added railway-station-funicular. Signed-off-by: Viktor Govako --- data/categories.txt | 39 ++++++++++++++++++++++++++ data/mapcss-mapping.csv | 2 +- data/strings/types_strings.txt | 39 ++++++++++++++++++++++---- data/styles/clear/include/Icons.mapcss | 5 ++++ 4 files changed, 78 insertions(+), 7 deletions(-) diff --git a/data/categories.txt b/data/categories.txt index 16180a7118..22d87511f9 100644 --- a/data/categories.txt +++ b/data/categories.txt @@ -2433,6 +2433,45 @@ sk:3Železničná stanica|vlakové nástupište|2vlak sw:Kituo cha treni|treni|usafiri fa:ایستگاه قطار|ایستگاه تراموا +railway-station-funicular +en:Funicular +ar:حبلي +be:Фунікулёр +bg:Фуникуляр +ca:Funicular +cs:Lanovka +da:Funicular +de:Standseilbahn +el:Μονωτικό τρενάκι +es:Funicular +et:Funicular +eu:Funikularra +fa:فونیکولور +fi:Köysirata +fr:Funiculaire +he:רַכֶּבֶל +hu:Funicular +id:Kereta gantung +it:Funicolare +ja:フニクラ +ko:케이블카 +mr:फ्युनिक्युलर +nb:Kabelbane +nl:Tunnel +pl:Kolejka linowa +pt:Funicular +ro:Funicular +ru:Фуникулер +sk:Lanovka +sv:Linbana +sw:Funicular +th:รถกระเช้าไฟฟ้า +tr:Füniküler +uk:Фунікулер +vi:Đường sắt leo núi +zh-Hans:缆车 +zh-Hant:纜車 + railway-subway_entrance|railway-station-subway|@transport en:3Subway|3tube|3metro|3underground|U+1F687 ru:3Метро diff --git a/data/mapcss-mapping.csv b/data/mapcss-mapping.csv index a702b4c945..8a5876d6a1 100644 --- a/data/mapcss-mapping.csv +++ b/data/mapcss-mapping.csv @@ -574,7 +574,7 @@ deprecated|deprecated;573;x deprecated|deprecated;574;x aerialway|rope_tow;575; natural|pond;576;natural|water|pond -deprecated|deprecated;577;x +railway|station|funicular;[railway=station][station=funicular];;name;int_name;577; highway|secondary_link|tunnel;[highway=secondary_link][tunnel?];;name;int_name;578; deprecated|deprecated;579;x deprecated|deprecated;580;x diff --git a/data/strings/types_strings.txt b/data/strings/types_strings.txt index d9bad5a88c..e42517e293 100644 --- a/data/strings/types_strings.txt +++ b/data/strings/types_strings.txt @@ -18382,19 +18382,43 @@ [type.railway.funicular] en = Funicular + ar = حبلي + be = Фунікулёр + bg = Фуникуляр + ca = Funicular + cs = Lanovka + da = Funicular de = Standseilbahn + el = Μονωτικό τρενάκι es = Funicular - et = Funikulöör + et = Funicular + eu = Funikularra + fa = فونیکولور + fi = Köysirata fr = Funiculaire - ja = ケーブルカー - mr = हवाई रज्जुमार्ग - nl = Kabelspoorweg + he = רַכֶּבֶל + hu = Funicular + id = Kereta gantung + it = Funicolare + ja = フニクラ + ko = 케이블카 + lt = Funikulierius + mr = फ्युनिक्युलर + nb = Kabelbane + nl = Tunnel + pl = Kolejka linowa pt = Funicular - pt-BR = Funicular + ro = Funicular ru = Фуникулер + sk = Lanovka + sv = Linbana + sw = Funicular + th = รถกระเช้าไฟฟ้า tr = Füniküler uk = Фунікулер - zh-Hans = 缆索铁路轨道 + vi = Đường sắt leo núi + zh-Hans = 缆车 + zh-Hant = 纜車 [type.railway.funicular.bridge] en = Funicular Bridge @@ -18888,6 +18912,9 @@ zh-Hans = 火车站 zh-Hant = 火車站 + [type.railway.station.funicular] + ref = type.railway.funicular + [type.railway.station.light_rail] ref = type.railway.station en = Light Rail Station diff --git a/data/styles/clear/include/Icons.mapcss b/data/styles/clear/include/Icons.mapcss index 9021cc9866..6833913126 100644 --- a/data/styles/clear/include/Icons.mapcss +++ b/data/styles/clear/include/Icons.mapcss @@ -942,6 +942,11 @@ node|z17-[aerialway=station], node|z17-[railway=level_crossing] {icon-image: railway-crossing-m.svg;} +node|z15-[railway=station][station=funicular], +{icon-image: funicular-m.svg;text-offset: 1;font-size: 10;} +node|z17-[aerialway=station], +{font-size: 12;} + /* 4.TOURISM */ /* 4.1 Main POI */ -- 2.45.3 From bd5f141cf845abcd08fc7dfd80763cfe60024fa8 Mon Sep 17 00:00:00 2001 From: Viktor Govako Date: Sun, 21 May 2023 15:31:35 -0300 Subject: [PATCH 15/18] [classifier] Added hwtag-nocycleway/nosidewalk tags. Signed-off-by: Viktor Govako --- data/mapcss-mapping.csv | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/mapcss-mapping.csv b/data/mapcss-mapping.csv index 8a5876d6a1..2b5997e898 100644 --- a/data/mapcss-mapping.csv +++ b/data/mapcss-mapping.csv @@ -252,7 +252,7 @@ amenity|grave_yard;251; waterway|canal|tunnel;[waterway=canal][tunnel?];;name;int_name;252; piste:type|downhill|easy;[piste:type=downhill][piste:difficulty=easy];;name;int_name;253; waterway|ditch|tunnel;[waterway=ditch][tunnel?];;name;int_name;254; -deprecated|deprecated;255;x +hwtag|nosidewalk;255; piste:type|downhill|intermediate;[piste:type=downhill][piste:difficulty=intermediate];;name;int_name;256; railway|subway_entrance;257; amenity|charging_station|bicycle;[amenity=charging_station][bicycle?];;name;int_name;258; @@ -316,7 +316,7 @@ aeroway|gate;315; railway|preserved;316; highway|path|horse;[highway=path][horse?];;name;int_name;317; landuse|field;318; -deprecated|deprecated;319;x +hwtag|nocycleway;319; leisure|water_park;320; natural|wetland|bog;[natural=wetland][wetland=bog];;name;int_name;321; man_made|windmill;322; -- 2.45.3 From eb85ffa32da8ad9a0748bec0fd401811787fd0cc Mon Sep 17 00:00:00 2001 From: Viktor Govako Date: Thu, 25 May 2023 13:04:19 -0300 Subject: [PATCH 16/18] [styles] Regenerated. Signed-off-by: Viktor Govako --- data/classificator.txt | 6 + data/drules_proto.bin | Bin 317866 -> 318787 bytes data/drules_proto.txt | 314 ++++++++++++++++++++++++++++ data/drules_proto_clear.bin | Bin 318573 -> 319494 bytes data/drules_proto_clear.txt | 314 ++++++++++++++++++++++++++++ data/drules_proto_dark.bin | Bin 316905 -> 317812 bytes data/drules_proto_dark.txt | 314 ++++++++++++++++++++++++++++ data/drules_proto_vehicle_clear.bin | Bin 241213 -> 241766 bytes data/drules_proto_vehicle_clear.txt | 185 ++++++++++++++++ data/drules_proto_vehicle_dark.bin | Bin 240049 -> 240602 bytes data/drules_proto_vehicle_dark.txt | 185 ++++++++++++++++ data/types.txt | 10 +- data/visibility.txt | 6 + 13 files changed, 1329 insertions(+), 5 deletions(-) diff --git a/data/classificator.txt b/data/classificator.txt index 94f1ce1174..fba346a4ec 100644 --- a/data/classificator.txt +++ b/data/classificator.txt @@ -542,7 +542,9 @@ world + lit - nobicycle - nocar - + nocycleway - nofoot - + nosidewalk - onedir_bicycle - oneway - private - @@ -856,6 +858,7 @@ world + tunnel - {} station + + funicular - light_rail - monorail - subway + @@ -1319,6 +1322,9 @@ world + drain + tunnel - {} + fish_pass + + tunnel - + {} lock_gate - river + tunnel - diff --git a/data/drules_proto.bin b/data/drules_proto.bin index 69b201bfa71f50ae344953c84589418f11262a2c..a6ba5a7d445f8ff961cbb0f0882b30b8c388cdca 100644 GIT binary patch delta 246 zcmZ3rS@`fS;f5B*Elf72W#6-KNfsq$=9DK^>K2zImSpDV>86$DWhR&ABo&~(qXWBmJBFl1a01bZ+r2qf` diff --git a/data/drules_proto.txt b/data/drules_proto.txt index 1b3ec6bbe2..8bbabf1b3d 100644 --- a/data/drules_proto.txt +++ b/data/drules_proto.txt @@ -59961,6 +59961,209 @@ cont { } } } +cont { + name: "railway-station-funicular" + element { + scale: 12 + symbol { + name: "train-s" + priority: 16961 + } + caption { + primary { + height: 9 + color: 2236962 + stroke_color: 1728053247 + offset_y: 1 + is_optional: true + } + secondary { + height: 8 + color: 2236962 + stroke_color: 1728053247 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 13 + symbol { + name: "train-s" + priority: 16961 + } + caption { + primary { + height: 10 + color: 2236962 + stroke_color: 1728053247 + offset_y: 1 + is_optional: true + } + secondary { + height: 9 + color: 2236962 + stroke_color: 1728053247 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 14 + symbol { + name: "train-s" + priority: 16961 + } + caption { + primary { + height: 11 + color: 2236962 + stroke_color: 1308622847 + offset_y: 1 + is_optional: true + } + secondary { + height: 10 + color: 2236962 + stroke_color: 1308622847 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 15 + symbol { + name: "funicular-m" + priority: 16961 + } + caption { + primary { + height: 10 + color: 2236962 + stroke_color: 872415231 + offset_y: 1 + is_optional: true + } + secondary { + height: 10 + color: 2236962 + stroke_color: 872415231 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 16 + symbol { + name: "funicular-m" + priority: 16961 + } + caption { + primary { + height: 10 + color: 2236962 + stroke_color: 872415231 + offset_y: 1 + is_optional: true + } + secondary { + height: 11 + color: 2236962 + stroke_color: 872415231 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 17 + symbol { + name: "funicular-m" + priority: 16961 + } + caption { + primary { + height: 10 + color: 2236962 + stroke_color: 452984831 + offset_y: 1 + is_optional: true + } + secondary { + height: 12 + color: 2236962 + stroke_color: 452984831 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 18 + symbol { + name: "funicular-m" + priority: 16961 + } + caption { + primary { + height: 10 + color: 2236962 + stroke_color: 452984831 + offset_y: 1 + is_optional: true + } + secondary { + height: 12 + color: 2236962 + stroke_color: 452984831 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 19 + symbol { + name: "funicular-m" + priority: 16961 + } + caption { + primary { + height: 10 + color: 2236962 + stroke_color: 452984831 + offset_y: 1 + is_optional: true + } + secondary { + height: 12 + color: 2236962 + stroke_color: 452984831 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } +} cont { name: "railway-station-light_rail" element { @@ -100964,6 +101167,117 @@ cont { } } } +cont { + name: "waterway-fish_pass" + element { + scale: 13 + lines { + width: 0.7 + color: 3584191 + priority: 1009 + cap: BUTTCAP + } + path_text { + primary { + height: 10 + color: 4495803 + } + priority: 16950 + } + } + element { + scale: 14 + lines { + width: 1.0 + color: 3584191 + priority: 1009 + cap: BUTTCAP + } + path_text { + primary { + height: 10 + color: 4495803 + } + priority: 16950 + } + } + element { + scale: 15 + lines { + width: 1.6 + color: 3584191 + priority: 1009 + cap: BUTTCAP + } + path_text { + primary { + height: 11 + color: 4495803 + } + priority: 16950 + } + } + element { + scale: 16 + lines { + width: 1.6 + color: 3584191 + priority: 1009 + } + path_text { + primary { + height: 11 + color: 4495803 + } + priority: 16950 + } + } + element { + scale: 17 + lines { + width: 1.6 + color: 3584191 + priority: 1009 + } + path_text { + primary { + height: 11 + color: 4495803 + } + priority: 16950 + } + } + element { + scale: 18 + lines { + width: 1.6 + color: 3584191 + priority: 1009 + } + path_text { + primary { + height: 12 + color: 4495803 + } + priority: 16950 + } + } + element { + scale: 19 + lines { + width: 1.6 + color: 3584191 + priority: 1009 + } + path_text { + primary { + height: 12 + color: 4495803 + } + priority: 16950 + } + } +} cont { name: "waterway-lock_gate" element { diff --git a/data/drules_proto_clear.bin b/data/drules_proto_clear.bin index 67317ac8677abadb9475876bff838dee8886ee75..ceae79d4e00706b5b97515a021e98b233ed2d442 100644 GIT binary patch delta 268 zcmaF6L%8jLa6=2@7N+Y*72mUPNfsq$=9DK^>K2zImSpDV>86$DWhR&ABo+y|aqvuc zJjNt4ecfTEgCbrW{7Qmc+;C~#T#18|4``}PUvQpD1Sl(jO;&2U!*M1#87~e&4A~Y& zEn_Z04zB6(N0|(ODuf8C5XP%Qzx~=#CLm_se(fmBD@L&;Ok6_ci6yB;AkU>`7H7m4 UBo-HMw?D%o$hiH$ahA0r080c}NdN!< delta 33 ocmZoWApCZRa6=2@7N+Y*+dWS(0WtG-&l4;!8MjBCW?3r&00_kn^Z)<= diff --git a/data/drules_proto_clear.txt b/data/drules_proto_clear.txt index 03b08a65e8..09eda51253 100644 --- a/data/drules_proto_clear.txt +++ b/data/drules_proto_clear.txt @@ -59463,6 +59463,209 @@ cont { } } } +cont { + name: "railway-station-funicular" + element { + scale: 12 + symbol { + name: "train-s" + priority: 16961 + } + caption { + primary { + height: 9 + color: 2236962 + stroke_color: 1728053247 + offset_y: 1 + is_optional: true + } + secondary { + height: 8 + color: 2236962 + stroke_color: 1728053247 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 13 + symbol { + name: "train-s" + priority: 16961 + } + caption { + primary { + height: 10 + color: 2236962 + stroke_color: 1728053247 + offset_y: 1 + is_optional: true + } + secondary { + height: 9 + color: 2236962 + stroke_color: 1728053247 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 14 + symbol { + name: "train-s" + priority: 16961 + } + caption { + primary { + height: 11 + color: 2236962 + stroke_color: 1308622847 + offset_y: 1 + is_optional: true + } + secondary { + height: 10 + color: 2236962 + stroke_color: 1308622847 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 15 + symbol { + name: "funicular-m" + priority: 16961 + } + caption { + primary { + height: 10 + color: 2236962 + stroke_color: 872415231 + offset_y: 1 + is_optional: true + } + secondary { + height: 10 + color: 2236962 + stroke_color: 872415231 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 16 + symbol { + name: "funicular-m" + priority: 16961 + } + caption { + primary { + height: 10 + color: 2236962 + stroke_color: 872415231 + offset_y: 1 + is_optional: true + } + secondary { + height: 11 + color: 2236962 + stroke_color: 872415231 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 17 + symbol { + name: "funicular-m" + priority: 16961 + } + caption { + primary { + height: 10 + color: 2236962 + stroke_color: 452984831 + offset_y: 1 + is_optional: true + } + secondary { + height: 12 + color: 2236962 + stroke_color: 452984831 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 18 + symbol { + name: "funicular-m" + priority: 16961 + } + caption { + primary { + height: 10 + color: 2236962 + stroke_color: 452984831 + offset_y: 1 + is_optional: true + } + secondary { + height: 12 + color: 2236962 + stroke_color: 452984831 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 19 + symbol { + name: "funicular-m" + priority: 16961 + } + caption { + primary { + height: 10 + color: 2236962 + stroke_color: 452984831 + offset_y: 1 + is_optional: true + } + secondary { + height: 12 + color: 2236962 + stroke_color: 452984831 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } +} cont { name: "railway-station-light_rail" element { @@ -100369,6 +100572,117 @@ cont { } } } +cont { + name: "waterway-fish_pass" + element { + scale: 13 + lines { + width: 0.7 + color: 3584191 + priority: 1009 + cap: BUTTCAP + } + path_text { + primary { + height: 10 + color: 4495803 + } + priority: 16950 + } + } + element { + scale: 14 + lines { + width: 1.0 + color: 3584191 + priority: 1009 + cap: BUTTCAP + } + path_text { + primary { + height: 10 + color: 4495803 + } + priority: 16950 + } + } + element { + scale: 15 + lines { + width: 1.6 + color: 3584191 + priority: 1009 + cap: BUTTCAP + } + path_text { + primary { + height: 11 + color: 4495803 + } + priority: 16950 + } + } + element { + scale: 16 + lines { + width: 1.6 + color: 3584191 + priority: 1009 + } + path_text { + primary { + height: 11 + color: 4495803 + } + priority: 16950 + } + } + element { + scale: 17 + lines { + width: 1.6 + color: 3584191 + priority: 1009 + } + path_text { + primary { + height: 11 + color: 4495803 + } + priority: 16950 + } + } + element { + scale: 18 + lines { + width: 1.6 + color: 3584191 + priority: 1009 + } + path_text { + primary { + height: 12 + color: 4495803 + } + priority: 16950 + } + } + element { + scale: 19 + lines { + width: 1.6 + color: 3584191 + priority: 1009 + } + path_text { + primary { + height: 12 + color: 4495803 + } + priority: 16950 + } + } +} cont { name: "waterway-lock_gate" element { diff --git a/data/drules_proto_dark.bin b/data/drules_proto_dark.bin index ef082edfce393f1f668cb267c07b1806f903a78b..859164d5924f22ae40e677dca9edbe14d53f642c 100644 GIT binary patch delta 238 zcmaF4TKLN*;f5B*Elm0cWZ$!JNfsq$=9DK^>K2zImSpDV>86$DWhR&ABo6H8KyK+aFgEY658NGvYi{_rRZGvoFR2U#pd080E$ AW&i*H delta 33 ocmeyeN%-Yz;f5B*Elm0c+7}*T0%GRv3lFh0GH$m%%3>)301gihi~s-t diff --git a/data/drules_proto_dark.txt b/data/drules_proto_dark.txt index 9619a9c7de..3a12b21413 100644 --- a/data/drules_proto_dark.txt +++ b/data/drules_proto_dark.txt @@ -59548,6 +59548,209 @@ cont { } } } +cont { + name: "railway-station-funicular" + element { + scale: 12 + symbol { + name: "train-s" + priority: 16961 + } + caption { + primary { + height: 9 + color: 8947848 + stroke_color: 1712394496 + offset_y: 1 + is_optional: true + } + secondary { + height: 8 + color: 8947848 + stroke_color: 1712394496 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 13 + symbol { + name: "train-s" + priority: 16961 + } + caption { + primary { + height: 10 + color: 8947848 + stroke_color: 1712394496 + offset_y: 1 + is_optional: true + } + secondary { + height: 9 + color: 8947848 + stroke_color: 1712394496 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 14 + symbol { + name: "train-s" + priority: 16961 + } + caption { + primary { + height: 11 + color: 8947848 + stroke_color: 1292964096 + offset_y: 1 + is_optional: true + } + secondary { + height: 10 + color: 8947848 + stroke_color: 1292964096 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 15 + symbol { + name: "funicular-m" + priority: 16961 + } + caption { + primary { + height: 10 + color: 8947848 + stroke_color: 856756480 + offset_y: 1 + is_optional: true + } + secondary { + height: 10 + color: 8947848 + stroke_color: 856756480 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 16 + symbol { + name: "funicular-m" + priority: 16961 + } + caption { + primary { + height: 10 + color: 8947848 + stroke_color: 856756480 + offset_y: 1 + is_optional: true + } + secondary { + height: 11 + color: 8947848 + stroke_color: 856756480 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 17 + symbol { + name: "funicular-m" + priority: 16961 + } + caption { + primary { + height: 10 + color: 8947848 + stroke_color: 437326080 + offset_y: 1 + is_optional: true + } + secondary { + height: 12 + color: 8947848 + stroke_color: 437326080 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 18 + symbol { + name: "funicular-m" + priority: 16961 + } + caption { + primary { + height: 10 + color: 8947848 + stroke_color: 437326080 + offset_y: 1 + is_optional: true + } + secondary { + height: 12 + color: 8947848 + stroke_color: 437326080 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 19 + symbol { + name: "funicular-m" + priority: 16961 + } + caption { + primary { + height: 10 + color: 8947848 + stroke_color: 437326080 + offset_y: 1 + is_optional: true + } + secondary { + height: 12 + color: 8947848 + stroke_color: 437326080 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } +} cont { name: "railway-station-light_rail" element { @@ -100454,6 +100657,117 @@ cont { } } } +cont { + name: "waterway-fish_pass" + element { + scale: 13 + lines { + width: 0.7 + color: 401446 + priority: 1009 + cap: BUTTCAP + } + path_text { + primary { + height: 10 + color: 19033 + } + priority: 16950 + } + } + element { + scale: 14 + lines { + width: 1.0 + color: 401446 + priority: 1009 + cap: BUTTCAP + } + path_text { + primary { + height: 10 + color: 19033 + } + priority: 16950 + } + } + element { + scale: 15 + lines { + width: 1.6 + color: 401446 + priority: 1009 + cap: BUTTCAP + } + path_text { + primary { + height: 11 + color: 19033 + } + priority: 16950 + } + } + element { + scale: 16 + lines { + width: 1.6 + color: 401446 + priority: 1009 + } + path_text { + primary { + height: 11 + color: 19033 + } + priority: 16950 + } + } + element { + scale: 17 + lines { + width: 1.6 + color: 401446 + priority: 1009 + } + path_text { + primary { + height: 11 + color: 19033 + } + priority: 16950 + } + } + element { + scale: 18 + lines { + width: 1.6 + color: 401446 + priority: 1009 + } + path_text { + primary { + height: 12 + color: 19033 + } + priority: 16950 + } + } + element { + scale: 19 + lines { + width: 1.6 + color: 401446 + priority: 1009 + } + path_text { + primary { + height: 12 + color: 19033 + } + priority: 16950 + } + } +} cont { name: "waterway-lock_gate" element { diff --git a/data/drules_proto_vehicle_clear.bin b/data/drules_proto_vehicle_clear.bin index f85ae8be271cf813903b052db7a816e554cf22bc..5c8ea911e06c048400b82f9c99baa9ad3d055440 100644 GIT binary patch delta 44 zcmdmchws?~zJ@J~nx7b#O`n*_B+QvsnwObenv+|zJ@J~nxEQ(zA$bN`obi#2LO6!3TXfU diff --git a/data/drules_proto_vehicle_clear.txt b/data/drules_proto_vehicle_clear.txt index 972f899def..d9b77f46db 100644 --- a/data/drules_proto_vehicle_clear.txt +++ b/data/drules_proto_vehicle_clear.txt @@ -40479,6 +40479,191 @@ cont { } } } +cont { + name: "railway-station-funicular" + element { + scale: 12 + symbol { + name: "train-s" + priority: 16926 + } + } + element { + scale: 13 + symbol { + name: "train-m" + priority: 16926 + } + caption { + primary { + height: 11 + color: 3355443 + stroke_color: 1728053247 + offset_y: 1 + is_optional: true + } + secondary { + height: 9 + color: 3355443 + stroke_color: 1728053247 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15926 + } + } + element { + scale: 14 + symbol { + name: "train-m" + priority: 16926 + } + caption { + primary { + height: 12 + color: 3355443 + stroke_color: 1308622847 + offset_y: 1 + is_optional: true + } + secondary { + height: 10 + color: 3355443 + stroke_color: 1308622847 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15926 + } + } + element { + scale: 15 + symbol { + name: "train-m" + priority: 16926 + } + caption { + primary { + height: 12 + color: 3355443 + stroke_color: 872415231 + offset_y: 1 + is_optional: true + } + secondary { + height: 10 + color: 3355443 + stroke_color: 872415231 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15926 + } + } + element { + scale: 16 + symbol { + name: "train-m" + priority: 16926 + } + caption { + primary { + height: 13 + color: 3355443 + stroke_color: 872415231 + offset_y: 1 + is_optional: true + } + secondary { + height: 11 + color: 3355443 + stroke_color: 872415231 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15926 + } + } + element { + scale: 17 + symbol { + name: "train-m" + priority: 16926 + } + caption { + primary { + height: 14 + color: 3355443 + stroke_color: 452984831 + offset_y: 1 + is_optional: true + } + secondary { + height: 12 + color: 3355443 + stroke_color: 452984831 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15926 + } + } + element { + scale: 18 + symbol { + name: "train-m" + priority: 16926 + } + caption { + primary { + height: 14 + color: 3355443 + stroke_color: 452984831 + offset_y: 1 + is_optional: true + } + secondary { + height: 12 + color: 3355443 + stroke_color: 452984831 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15926 + } + } + element { + scale: 19 + symbol { + name: "train-m" + priority: 16926 + } + caption { + primary { + height: 14 + color: 3355443 + stroke_color: 452984831 + offset_y: 1 + is_optional: true + } + secondary { + height: 12 + color: 3355443 + stroke_color: 452984831 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15926 + } + } +} cont { name: "railway-station-light_rail" element { diff --git a/data/drules_proto_vehicle_dark.bin b/data/drules_proto_vehicle_dark.bin index 6831542d96c132aee2f80cb3618e0e5151c9b5ed..6d04d1f08163d8d630fa59623fd2004f4b7e06c8 100644 GIT binary patch delta 57 zcmdmZneWzhzJ@J~iSJ~Wv2aNiC1&Q7Csyhfmn4>C=I80AmF8t8m*ylEZLfdF$ivj0 N_>OUV;yb2*-2l4_7yAGJ delta 21 dcmcb0op0l1zJ@J~iSOFGJ}_?Y`oI*h8vuO~3l;zX diff --git a/data/drules_proto_vehicle_dark.txt b/data/drules_proto_vehicle_dark.txt index 815859342e..1cd0cfbe64 100644 --- a/data/drules_proto_vehicle_dark.txt +++ b/data/drules_proto_vehicle_dark.txt @@ -40803,6 +40803,191 @@ cont { } } } +cont { + name: "railway-station-funicular" + element { + scale: 12 + symbol { + name: "train-s" + priority: 16926 + } + } + element { + scale: 13 + symbol { + name: "train-m" + priority: 16926 + } + caption { + primary { + height: 11 + color: 8947848 + stroke_color: 1712394496 + offset_y: 1 + is_optional: true + } + secondary { + height: 9 + color: 8947848 + stroke_color: 1712394496 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15926 + } + } + element { + scale: 14 + symbol { + name: "train-m" + priority: 16926 + } + caption { + primary { + height: 12 + color: 8947848 + stroke_color: 1292964096 + offset_y: 1 + is_optional: true + } + secondary { + height: 10 + color: 8947848 + stroke_color: 1292964096 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15926 + } + } + element { + scale: 15 + symbol { + name: "train-m" + priority: 16926 + } + caption { + primary { + height: 12 + color: 8947848 + stroke_color: 856756480 + offset_y: 1 + is_optional: true + } + secondary { + height: 10 + color: 8947848 + stroke_color: 856756480 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15926 + } + } + element { + scale: 16 + symbol { + name: "train-m" + priority: 16926 + } + caption { + primary { + height: 13 + color: 8947848 + stroke_color: 856756480 + offset_y: 1 + is_optional: true + } + secondary { + height: 11 + color: 8947848 + stroke_color: 856756480 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15926 + } + } + element { + scale: 17 + symbol { + name: "train-m" + priority: 16926 + } + caption { + primary { + height: 14 + color: 8947848 + stroke_color: 437326080 + offset_y: 1 + is_optional: true + } + secondary { + height: 12 + color: 8947848 + stroke_color: 437326080 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15926 + } + } + element { + scale: 18 + symbol { + name: "train-m" + priority: 16926 + } + caption { + primary { + height: 14 + color: 8947848 + stroke_color: 437326080 + offset_y: 1 + is_optional: true + } + secondary { + height: 12 + color: 8947848 + stroke_color: 437326080 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15926 + } + } + element { + scale: 19 + symbol { + name: "train-m" + priority: 16926 + } + caption { + primary { + height: 14 + color: 8947848 + stroke_color: 437326080 + offset_y: 1 + is_optional: true + } + secondary { + height: 12 + color: 8947848 + stroke_color: 437326080 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15926 + } + } +} cont { name: "railway-station-light_rail" element { diff --git a/data/types.txt b/data/types.txt index 8e605fbefa..bcfe0d7836 100644 --- a/data/types.txt +++ b/data/types.txt @@ -252,7 +252,7 @@ landuse|forest|deciduous *waterway|canal|tunnel *piste:type|downhill|easy *waterway|ditch|tunnel -mapswithme +*hwtag|nosidewalk *piste:type|downhill|intermediate *railway|subway_entrance *amenity|charging_station|bicycle @@ -316,7 +316,7 @@ man_made|pipeline *railway|preserved *highway|path|horse *landuse|field -mapswithme +*hwtag|nocycleway *leisure|water_park *natural|wetland|bog *man_made|windmill @@ -493,8 +493,8 @@ mapswithme *highway|tertiary_link|bridge mapswithme *amenity|parking|park_and_ride -mapswithme -mapswithme +*waterway|fish_pass +*waterway|fish_pass|tunnel *natural|water|lock waterway|canal mapswithme @@ -574,7 +574,7 @@ mapswithme mapswithme *aerialway|rope_tow natural|water|pond -mapswithme +*railway|station|funicular *highway|secondary_link|tunnel mapswithme mapswithme diff --git a/data/visibility.txt b/data/visibility.txt index cc57694a73..1d2353fbb2 100644 --- a/data/visibility.txt +++ b/data/visibility.txt @@ -542,7 +542,9 @@ world 00000000000000000000 + lit 00000000000000000000 - nobicycle 00000000000000000000 - nocar 00000000000000000000 - + nocycleway 00000000000000000000 - nofoot 00000000000000000000 - + nosidewalk 00000000000000000000 - onedir_bicycle 00000000000000000000 - oneway 00000000000000011111 - private 00000000000000000000 - @@ -856,6 +858,7 @@ world 00000000000000000000 + tunnel 00000000000000000000 - {} station 00000000000011111111 + + funicular 00000000000011111111 - light_rail 00000000000011111111 - monorail 00000000000011111111 - subway 00000000000001111111 + @@ -1319,6 +1322,9 @@ world 00000000000000000000 + drain 00000000000000000111 + tunnel 00000000000000000000 - {} + fish_pass 00000000000000000000 + + tunnel 00000000000000000000 - + {} lock_gate 00000000000000001111 - river 00000000001111111111 + tunnel 00000000000111111111 - -- 2.45.3 From 0606230d263cd83d1fcc3564d248035acc2ac43e Mon Sep 17 00:00:00 2001 From: Viktor Govako Date: Thu, 25 May 2023 13:05:02 -0300 Subject: [PATCH 17/18] [strings] Regenerated. Signed-off-by: Viktor Govako --- android/res/values-ar/strings.xml | 2 ++ android/res/values-be/strings.xml | 2 ++ android/res/values-bg/strings.xml | 2 ++ android/res/values-ca/strings.xml | 2 ++ android/res/values-cs/strings.xml | 2 ++ android/res/values-da/strings.xml | 2 ++ android/res/values-de/strings.xml | 2 ++ android/res/values-el/strings.xml | 2 ++ android/res/values-es/strings.xml | 1 + android/res/values-et/strings.xml | 3 ++- android/res/values-eu/strings.xml | 2 ++ android/res/values-fa/strings.xml | 2 ++ android/res/values-fi/strings.xml | 2 ++ android/res/values-fr/strings.xml | 1 + android/res/values-hu/strings.xml | 2 ++ android/res/values-in/strings.xml | 2 ++ android/res/values-it/strings.xml | 2 ++ android/res/values-iw/strings.xml | 2 ++ android/res/values-ja/strings.xml | 3 ++- android/res/values-ko/strings.xml | 2 ++ android/res/values-mr/strings.xml | 3 ++- android/res/values-nb/strings.xml | 2 ++ android/res/values-nl/strings.xml | 3 ++- android/res/values-pl/strings.xml | 2 ++ android/res/values-pt-rBR/strings.xml | 1 - android/res/values-pt/strings.xml | 1 + android/res/values-ro/strings.xml | 2 ++ android/res/values-ru/strings.xml | 1 + android/res/values-sk/strings.xml | 2 ++ android/res/values-sv/strings.xml | 2 ++ android/res/values-sw/strings.xml | 2 ++ android/res/values-th/strings.xml | 2 ++ android/res/values-tr/strings.xml | 1 + android/res/values-uk/strings.xml | 1 + android/res/values-vi/strings.xml | 2 ++ android/res/values-zh-rTW/strings.xml | 2 ++ android/res/values-zh/strings.xml | 3 ++- android/res/values/strings.xml | 2 ++ iphone/Maps/LocalizedStrings/ar.lproj/Localizable.strings | 6 +++++- iphone/Maps/LocalizedStrings/be.lproj/Localizable.strings | 6 +++++- iphone/Maps/LocalizedStrings/bg.lproj/Localizable.strings | 6 +++++- iphone/Maps/LocalizedStrings/ca.lproj/Localizable.strings | 4 ++++ iphone/Maps/LocalizedStrings/cs.lproj/Localizable.strings | 6 +++++- iphone/Maps/LocalizedStrings/da.lproj/Localizable.strings | 4 ++++ iphone/Maps/LocalizedStrings/de.lproj/Localizable.strings | 4 ++++ iphone/Maps/LocalizedStrings/el.lproj/Localizable.strings | 6 +++++- .../Maps/LocalizedStrings/en-GB.lproj/Localizable.strings | 4 ++++ iphone/Maps/LocalizedStrings/en.lproj/Localizable.strings | 4 ++++ .../Maps/LocalizedStrings/es-MX.lproj/Localizable.strings | 4 ++++ iphone/Maps/LocalizedStrings/es.lproj/Localizable.strings | 4 ++++ iphone/Maps/LocalizedStrings/et.lproj/Localizable.strings | 6 +++++- iphone/Maps/LocalizedStrings/eu.lproj/Localizable.strings | 6 +++++- iphone/Maps/LocalizedStrings/fa.lproj/Localizable.strings | 6 +++++- iphone/Maps/LocalizedStrings/fi.lproj/Localizable.strings | 6 +++++- iphone/Maps/LocalizedStrings/fr.lproj/Localizable.strings | 4 ++++ iphone/Maps/LocalizedStrings/he.lproj/Localizable.strings | 6 +++++- iphone/Maps/LocalizedStrings/hu.lproj/Localizable.strings | 4 ++++ iphone/Maps/LocalizedStrings/id.lproj/Localizable.strings | 6 +++++- iphone/Maps/LocalizedStrings/it.lproj/Localizable.strings | 6 +++++- iphone/Maps/LocalizedStrings/ja.lproj/Localizable.strings | 6 +++++- iphone/Maps/LocalizedStrings/ko.lproj/Localizable.strings | 6 +++++- iphone/Maps/LocalizedStrings/mr.lproj/Localizable.strings | 6 +++++- iphone/Maps/LocalizedStrings/nb.lproj/Localizable.strings | 6 +++++- iphone/Maps/LocalizedStrings/nl.lproj/Localizable.strings | 6 +++++- iphone/Maps/LocalizedStrings/pl.lproj/Localizable.strings | 6 +++++- .../Maps/LocalizedStrings/pt-BR.lproj/Localizable.strings | 4 ++++ iphone/Maps/LocalizedStrings/pt.lproj/Localizable.strings | 4 ++++ iphone/Maps/LocalizedStrings/ro.lproj/Localizable.strings | 4 ++++ iphone/Maps/LocalizedStrings/ru.lproj/Localizable.strings | 4 ++++ iphone/Maps/LocalizedStrings/sk.lproj/Localizable.strings | 6 +++++- iphone/Maps/LocalizedStrings/sv.lproj/Localizable.strings | 6 +++++- iphone/Maps/LocalizedStrings/sw.lproj/Localizable.strings | 4 ++++ iphone/Maps/LocalizedStrings/th.lproj/Localizable.strings | 6 +++++- iphone/Maps/LocalizedStrings/tr.lproj/Localizable.strings | 4 ++++ iphone/Maps/LocalizedStrings/uk.lproj/Localizable.strings | 4 ++++ iphone/Maps/LocalizedStrings/vi.lproj/Localizable.strings | 6 +++++- .../Maps/LocalizedStrings/zh-Hans.lproj/Localizable.strings | 6 +++++- .../Maps/LocalizedStrings/zh-Hant.lproj/Localizable.strings | 6 +++++- 78 files changed, 252 insertions(+), 30 deletions(-) diff --git a/android/res/values-ar/strings.xml b/android/res/values-ar/strings.xml index 81e3b70f68..f67f43f0aa 100644 --- a/android/res/values-ar/strings.xml +++ b/android/res/values-ar/strings.xml @@ -1408,11 +1408,13 @@ عمود كهرباء محطة كهرباء فرعية عمود كهرباء + حبلي محطة سكك حديدية مزلقان اتجاه واحد خط سكة حديد محطة سكك حديدية + حبلي محطة سكك حديدية محطة سكك حديدية محطة مترو diff --git a/android/res/values-be/strings.xml b/android/res/values-be/strings.xml index 98a8fa7853..3a49cf9a18 100644 --- a/android/res/values-be/strings.xml +++ b/android/res/values-be/strings.xml @@ -1068,7 +1068,9 @@ Гідраэлектрастанцыя Сонечная электрастанцыя Ветраэлектрастанцыя + Фунікулёр Чыгуначная платформа + Фунікулёр Мэбля для ванных пакояў Напоі Крама канабіса diff --git a/android/res/values-bg/strings.xml b/android/res/values-bg/strings.xml index 5c24378b60..b7a38524d9 100644 --- a/android/res/values-bg/strings.xml +++ b/android/res/values-bg/strings.xml @@ -939,6 +939,8 @@ Водноелектрическа централа Слънчева електроцентрала Вятърна електроцентрала + Фуникуляр + Фуникуляр Обзавеждане за баня Магазин за канабис Килими diff --git a/android/res/values-ca/strings.xml b/android/res/values-ca/strings.xml index 6391655a57..bcbc07d0d3 100644 --- a/android/res/values-ca/strings.xml +++ b/android/res/values-ca/strings.xml @@ -757,6 +757,8 @@ Central hidroelèctrica Central d\'energia solar Central eòlica + Funicular + Funicular Mobles de bany Botiga de cànnabis Catifes diff --git a/android/res/values-cs/strings.xml b/android/res/values-cs/strings.xml index beeca4dfba..6c47bfc0ec 100644 --- a/android/res/values-cs/strings.xml +++ b/android/res/values-cs/strings.xml @@ -1304,11 +1304,13 @@ Sloup elektrického vedení Rozvodna Sloup elektrického vedení + Lanovka Železniční stanice Přejezd Jednokolejná železnice Železnice Železniční stanice + Lanovka Železniční stanice Železniční stanice Metro diff --git a/android/res/values-da/strings.xml b/android/res/values-da/strings.xml index c7ea4249ac..7b66ff2a8d 100644 --- a/android/res/values-da/strings.xml +++ b/android/res/values-da/strings.xml @@ -1285,11 +1285,13 @@ El-pol Transformerstation El-pol + Funicular Togstation Niveauskæring Monorail Jernbane Togstation + Funicular Togstation Togstation Metro diff --git a/android/res/values-de/strings.xml b/android/res/values-de/strings.xml index aa64a33287..a084bb3cc2 100644 --- a/android/res/values-de/strings.xml +++ b/android/res/values-de/strings.xml @@ -1481,6 +1481,7 @@ Anschlussgleis Anschlussgleis Bahnhof + Standseilbahn Stadtbahnbahnhof Bahnhof U-Bahn-Station @@ -1900,6 +1901,7 @@ Wasserweg Kanal Kanal + Fischtreppe Staudamm Graben Graben diff --git a/android/res/values-el/strings.xml b/android/res/values-el/strings.xml index cbe01fe622..f863481417 100644 --- a/android/res/values-el/strings.xml +++ b/android/res/values-el/strings.xml @@ -1297,11 +1297,13 @@ Πυλώνες μεταφοράς ρεύματος Υποσταθμός Πυλώνες μεταφοράς ρεύματος + Μονωτικό τρενάκι Σιδηροδρομικός σταθμός Σιδηροδρομική διέλευση Μονοαξονικός σιδηρόδρομος Σιδηρόδρομος Σιδηροδρομικός σταθμός + Μονωτικό τρενάκι Σιδηροδρομικός σταθμός Σιδηροδρομικός σταθμός Μετρό diff --git a/android/res/values-es/strings.xml b/android/res/values-es/strings.xml index b0b93ee4ef..25f116c878 100644 --- a/android/res/values-es/strings.xml +++ b/android/res/values-es/strings.xml @@ -1483,6 +1483,7 @@ Plataforma de vía férrea Ferrocarril Estación de tren + Funicular Estación de tren Estación de tren Metro diff --git a/android/res/values-et/strings.xml b/android/res/values-et/strings.xml index e0a75fa2d8..c331b9440a 100644 --- a/android/res/values-et/strings.xml +++ b/android/res/values-et/strings.xml @@ -1471,7 +1471,7 @@ Raudtee ehitus Raudtee ülesõit Kasutamata raudtee - Funikulöör + Funicular Funikulöör Funikulöör Murdepunkt @@ -1501,6 +1501,7 @@ Rööbastee sild Rööbastee tunnel Raudtee jaam + Funicular Raudtee jaam Raudtee jaam Metroo diff --git a/android/res/values-eu/strings.xml b/android/res/values-eu/strings.xml index 9a450598cc..1819fb447e 100644 --- a/android/res/values-eu/strings.xml +++ b/android/res/values-eu/strings.xml @@ -1406,11 +1406,13 @@ Azpiestazioa Zutabe elektrikoa Garraio publikoa + Funikularra Tren geltokian Trenbide-pasagunea Tren monoraila Trenbidea Tren geltokian + Funikularra Tren geltokian Tren geltokian Metroa diff --git a/android/res/values-fa/strings.xml b/android/res/values-fa/strings.xml index 2d5eb6b5a9..8a44aefc6b 100644 --- a/android/res/values-fa/strings.xml +++ b/android/res/values-fa/strings.xml @@ -1207,11 +1207,13 @@ نیروگاه بادی برج قدرت برج قدرت + فونیکولور ایستگاه قطار تقاطع راه آهن مونوریل راه آهن ایستگاه قطار + فونیکولور ایستگاه قطار ایستگاه قطار حمل و نقل diff --git a/android/res/values-fi/strings.xml b/android/res/values-fi/strings.xml index 34c3baabb7..25a00b0ac5 100644 --- a/android/res/values-fi/strings.xml +++ b/android/res/values-fi/strings.xml @@ -1346,11 +1346,13 @@ Sähköpylväs Muuntoasema Sähköpylväs + Köysirata Rautatieasema Rautatien tasoristeys Monorail (kohorata) Rautatie Rautatieasema + Köysirata Rautatieasema Rautatieasema Metro diff --git a/android/res/values-fr/strings.xml b/android/res/values-fr/strings.xml index 73fbfacbb9..acb3c8984d 100644 --- a/android/res/values-fr/strings.xml +++ b/android/res/values-fr/strings.xml @@ -1450,6 +1450,7 @@ Chemin de fer Chemin de fer Gare + Funiculaire Gare Gare Station de métro diff --git a/android/res/values-hu/strings.xml b/android/res/values-hu/strings.xml index 2460c9804d..3777578cae 100644 --- a/android/res/values-hu/strings.xml +++ b/android/res/values-hu/strings.xml @@ -1314,11 +1314,13 @@ Villanyoszlop Kapcsolószekrény Villanyoszlop + Funicular Vonatmegálló Vasúti átjáró Egysínű vasút Vasút Vonatmegálló + Funicular Vonatmegálló Vonatmegálló Földalatti diff --git a/android/res/values-in/strings.xml b/android/res/values-in/strings.xml index 768998dbe0..7de98379c8 100644 --- a/android/res/values-in/strings.xml +++ b/android/res/values-in/strings.xml @@ -1289,11 +1289,13 @@ Menara listrik Stasiun bawah tanah Menara listrik + Kereta gantung Rel kereta api Perlintasan Kereta Api Monorel Kereta api Rel kereta api + Kereta gantung Rel kereta api Rel kereta api Stasiun bawah tanah diff --git a/android/res/values-it/strings.xml b/android/res/values-it/strings.xml index 5645466a7b..3c6a0eb846 100644 --- a/android/res/values-it/strings.xml +++ b/android/res/values-it/strings.xml @@ -1423,12 +1423,14 @@ Trasporto pubblico Ferrovia Binari in costruzione + Funicolare Stazione ferroviaria Passaggio a livello Metropolitana Monorotaia Binari Stazione ferroviaria + Funicolare Stazione ferroviaria Stazione ferroviaria Stazione della metrò diff --git a/android/res/values-iw/strings.xml b/android/res/values-iw/strings.xml index 577925f004..50d7a0eb65 100644 --- a/android/res/values-iw/strings.xml +++ b/android/res/values-iw/strings.xml @@ -610,6 +610,8 @@ תחנת כוח הידרואלקטרית תחנת כוח סולארית תחנת כוח רוח + רַכֶּבֶל + רַכֶּבֶל ריהוט חדר רחצה חנות קנאביס שטיחים diff --git a/android/res/values-ja/strings.xml b/android/res/values-ja/strings.xml index d1940b3f9b..1a03ac7752 100644 --- a/android/res/values-ja/strings.xml +++ b/android/res/values-ja/strings.xml @@ -1390,7 +1390,7 @@ 建設中の鉄道 歩行者用踏切 休止線 - ケーブルカー + フニクラ ケーブルカー(橋) ケーブルカー(トンネル) 鉄道駅 @@ -1420,6 +1420,7 @@ 引き込み線(橋) 引き込み線(トンネル) 鉄道駅 + フニクラ 鉄道駅 鉄道駅 地下鉄 diff --git a/android/res/values-ko/strings.xml b/android/res/values-ko/strings.xml index e96c48e3e9..19fad7a603 100644 --- a/android/res/values-ko/strings.xml +++ b/android/res/values-ko/strings.xml @@ -1294,11 +1294,13 @@ 전봇대 변전소 전봇대 + 케이블카 기차역 철도 건널목 모노레일 철로 기차역 + 케이블카 기차역 기차역 지하철 diff --git a/android/res/values-mr/strings.xml b/android/res/values-mr/strings.xml index e39f270e78..cb1f386289 100644 --- a/android/res/values-mr/strings.xml +++ b/android/res/values-mr/strings.xml @@ -1336,7 +1336,7 @@ रेल्वे रेल्वेचे बांधकाम रेल्वे ओलांडणी - हवाई रज्जुमार्ग + फ्युनिक्युलर हवाई रज्जुमार्ग हवाई रज्जुमार्ग रेल्वे स्थानक @@ -1353,6 +1353,7 @@ रेल्वे रेल्वे रेल्वे स्थानक + फ्युनिक्युलर रेल्वे स्थानक रेल्वे स्थानक भुयारी मार्ग diff --git a/android/res/values-nb/strings.xml b/android/res/values-nb/strings.xml index cfc9f2c720..36d4ea7a1d 100644 --- a/android/res/values-nb/strings.xml +++ b/android/res/values-nb/strings.xml @@ -1349,6 +1349,7 @@ Strømmast Offentlig transport Jernbane + Kabelbane Togstasjon Planovergang Monorail @@ -1357,6 +1358,7 @@ Museumsjernbane Toglinje Togstasjon + Kabelbane Togstasjon Togstasjon T-bane diff --git a/android/res/values-nl/strings.xml b/android/res/values-nl/strings.xml index e1af5a1a71..b679049308 100644 --- a/android/res/values-nl/strings.xml +++ b/android/res/values-nl/strings.xml @@ -1476,7 +1476,7 @@ Treinspoor in aanbouw Spoorwegovergang Ongebruikt spoor - Kabelspoorweg + Tunnel Kabelspoorbuur Kabelspoortunnel Station @@ -1506,6 +1506,7 @@ Zijspoor-brug Zijspoor-tunnel Station + Tunnel Station Station Metrostation diff --git a/android/res/values-pl/strings.xml b/android/res/values-pl/strings.xml index 70e3000b77..1019391998 100644 --- a/android/res/values-pl/strings.xml +++ b/android/res/values-pl/strings.xml @@ -1439,11 +1439,13 @@ Transport publiczny Przystanek transportu publicznego Kolej + Kolejka linowa Przystanek kolejowy Przejazd kolejowy Kolej jednoszynowa Kolej Dworzec kolejowy + Kolejka linowa Dworzec kolejowy Dworzec kolejowy Metro diff --git a/android/res/values-pt-rBR/strings.xml b/android/res/values-pt-rBR/strings.xml index d9e1612a34..8e346800a9 100644 --- a/android/res/values-pt-rBR/strings.xml +++ b/android/res/values-pt-rBR/strings.xml @@ -1330,7 +1330,6 @@ Ferrovia em construção Passagem pedestre Ferrovia em desuso - Funicular Funicular Funicular Ponto de parada diff --git a/android/res/values-pt/strings.xml b/android/res/values-pt/strings.xml index 693e6ac8ae..af564ed781 100644 --- a/android/res/values-pt/strings.xml +++ b/android/res/values-pt/strings.xml @@ -1454,6 +1454,7 @@ Ramal de ferrovia Ramal de ferrovia Estação de comboios + Funicular Estação de comboios Estação de comboios Estação de metro diff --git a/android/res/values-ro/strings.xml b/android/res/values-ro/strings.xml index 7152f47492..131da55358 100644 --- a/android/res/values-ro/strings.xml +++ b/android/res/values-ro/strings.xml @@ -1309,11 +1309,13 @@ Stâlp de electricitate Stație subterană Stâlp de electricitate + Funicular Feroviar Trecere feroviară Cale ferată monoșină Cale ferată Feroviar + Funicular Feroviar Feroviar Metrou diff --git a/android/res/values-ru/strings.xml b/android/res/values-ru/strings.xml index 4a663b252c..c5beacdd41 100644 --- a/android/res/values-ru/strings.xml +++ b/android/res/values-ru/strings.xml @@ -1531,6 +1531,7 @@ Подъездная Ж/Д Подъездная Ж/Д Ж/д станция + Фуникулер Ж/д станция Ж/д станция Метро diff --git a/android/res/values-sk/strings.xml b/android/res/values-sk/strings.xml index 7dddf741ec..d6d6c690fc 100644 --- a/android/res/values-sk/strings.xml +++ b/android/res/values-sk/strings.xml @@ -1287,11 +1287,13 @@ Stĺp elektrického vedenia Rozvodňa Stĺp elektrického vedenia + Lanovka Železničná stanica Križovanie úrovní Jednokoľajnicová dráha Železnica Železničná stanica + Lanovka Železničná stanica Železničná stanica Metro diff --git a/android/res/values-sv/strings.xml b/android/res/values-sv/strings.xml index ca93aab0d9..c81a75645e 100644 --- a/android/res/values-sv/strings.xml +++ b/android/res/values-sv/strings.xml @@ -1285,11 +1285,13 @@ Elstolpe Ställverk Elstolpe + Linbana Tågstation Järnvägskorsning Monorail Järnväg Tågstation + Linbana Tågstation Tågstation Tunnelbana diff --git a/android/res/values-sw/strings.xml b/android/res/values-sw/strings.xml index 950ea0abe0..c0fc760e36 100644 --- a/android/res/values-sw/strings.xml +++ b/android/res/values-sw/strings.xml @@ -539,9 +539,11 @@ Kiwanda cha umeme wa maji Kiwanda cha nishati ya jua Kiwanda cha nguvu cha upepo + Funicular Tambuka Reli Mfumo wa reli moja Njia ya Reli + Funicular Lango la kuingilia stesheni ya reli Lango la kuingilia stesheni ya reli Lango la kuingilia stesheni ya reli diff --git a/android/res/values-th/strings.xml b/android/res/values-th/strings.xml index 1d61e00201..951ed5bfc6 100644 --- a/android/res/values-th/strings.xml +++ b/android/res/values-th/strings.xml @@ -1294,11 +1294,13 @@ เสาไฟฟ้า สถานีไฟฟ้า เสาไฟฟ้า + รถกระเช้าไฟฟ้า สถานีรถไฟ ทางรถไฟตัดผ่านถนน รางรถไฟรางเดี่ยว รถไฟ สถานีรถไฟ + รถกระเช้าไฟฟ้า สถานีรถไฟ สถานีรถไฟ รถไฟ diff --git a/android/res/values-tr/strings.xml b/android/res/values-tr/strings.xml index 6224ce26a7..133a1d1fb8 100644 --- a/android/res/values-tr/strings.xml +++ b/android/res/values-tr/strings.xml @@ -1506,6 +1506,7 @@ Düz Ray Düz Ray Tren İstasyonu + Füniküler Tren İstasyonu Tren İstasyonu Metro diff --git a/android/res/values-uk/strings.xml b/android/res/values-uk/strings.xml index 99aee16f93..583b7f64cc 100644 --- a/android/res/values-uk/strings.xml +++ b/android/res/values-uk/strings.xml @@ -1491,6 +1491,7 @@ Під\'їздна залізниця Під\'їздна залізниця Залізничний вокзал + Фунікулер Залізничний вокзал Залізничний вокзал Метро diff --git a/android/res/values-vi/strings.xml b/android/res/values-vi/strings.xml index cfc6f262ad..0b0ad50350 100644 --- a/android/res/values-vi/strings.xml +++ b/android/res/values-vi/strings.xml @@ -1290,11 +1290,13 @@ Trụ Điện Trạm biến áp Trụ Điện + Đường sắt leo núi Đường tàu hỏa Chỗ qua đường sắt Đường sắt một chiều Đường sắt Đường tàu hỏa + Đường sắt leo núi Đường tàu hỏa Đường tàu hỏa Ngầm diff --git a/android/res/values-zh-rTW/strings.xml b/android/res/values-zh-rTW/strings.xml index c1457dc835..189bd835fb 100644 --- a/android/res/values-zh-rTW/strings.xml +++ b/android/res/values-zh-rTW/strings.xml @@ -1328,6 +1328,7 @@ 電塔 變電所 電塔 + 纜車 小站 鐵路道口 單軌軌道 @@ -1338,6 +1339,7 @@ 鐵路軌道 鐵路軌道 火車站 + 纜車 輕軌車站 單軌車站 捷運站 diff --git a/android/res/values-zh/strings.xml b/android/res/values-zh/strings.xml index f8229cf7f9..38b82da788 100644 --- a/android/res/values-zh/strings.xml +++ b/android/res/values-zh/strings.xml @@ -1402,7 +1402,7 @@ 铁路遗迹 在建铁路 废弃铁路 - 缆索铁路轨道 + 缆车 缆索铁路轨道 缆索铁路轨道 小站 @@ -1422,6 +1422,7 @@ 铁路轨道 铁路轨道 火车站 + 缆车 轻轨车站 单轨车站 地铁车站 diff --git a/android/res/values/strings.xml b/android/res/values/strings.xml index a3a5dfe158..f318df6c62 100644 --- a/android/res/values/strings.xml +++ b/android/res/values/strings.xml @@ -1568,6 +1568,7 @@ Spur Rail Bridge Spur Rail Tunnel Train Station + Funicular Light Rail Station Monorail Station Subway Station @@ -1989,6 +1990,7 @@ Waterway Canal Canal Tunnel + Fish Pass Dam Ditch Ditch diff --git a/iphone/Maps/LocalizedStrings/ar.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/ar.lproj/Localizable.strings index 2a57d7c6c6..94634d9e1c 100644 --- a/iphone/Maps/LocalizedStrings/ar.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/ar.lproj/Localizable.strings @@ -2735,7 +2735,7 @@ "type.railway.disused" = "Disused Railway"; -"type.railway.funicular" = "Funicular"; +"type.railway.funicular" = "حبلي"; "type.railway.funicular.bridge" = "Funicular Bridge"; @@ -2795,6 +2795,8 @@ "type.railway.station" = "محطة سكك حديدية"; +"type.railway.station.funicular" = "حبلي"; + "type.railway.station.light_rail" = "محطة سكك حديدية"; "type.railway.station.monorail" = "محطة سكك حديدية"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "قناة"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Dam"; "type.waterway.ditch" = "Ditch"; diff --git a/iphone/Maps/LocalizedStrings/be.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/be.lproj/Localizable.strings index fddc840d35..4a2a9182c4 100644 --- a/iphone/Maps/LocalizedStrings/be.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/be.lproj/Localizable.strings @@ -2735,7 +2735,7 @@ "type.railway.disused" = "Disused Railway"; -"type.railway.funicular" = "Funicular"; +"type.railway.funicular" = "Фунікулёр"; "type.railway.funicular.bridge" = "Funicular Bridge"; @@ -2795,6 +2795,8 @@ "type.railway.station" = "Train Station"; +"type.railway.station.funicular" = "Фунікулёр"; + "type.railway.station.light_rail" = "Train Station"; "type.railway.station.monorail" = "Train Station"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "Canal Tunnel"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Dam"; "type.waterway.ditch" = "Ditch"; diff --git a/iphone/Maps/LocalizedStrings/bg.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/bg.lproj/Localizable.strings index ad489ad52d..aa45fe2707 100644 --- a/iphone/Maps/LocalizedStrings/bg.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/bg.lproj/Localizable.strings @@ -2735,7 +2735,7 @@ "type.railway.disused" = "Disused Railway"; -"type.railway.funicular" = "Funicular"; +"type.railway.funicular" = "Фуникуляр"; "type.railway.funicular.bridge" = "Funicular Bridge"; @@ -2795,6 +2795,8 @@ "type.railway.station" = "Train Station"; +"type.railway.station.funicular" = "Фуникуляр"; + "type.railway.station.light_rail" = "Train Station"; "type.railway.station.monorail" = "Train Station"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "Canal Tunnel"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Dam"; "type.waterway.ditch" = "Ditch"; diff --git a/iphone/Maps/LocalizedStrings/ca.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/ca.lproj/Localizable.strings index 7049a237ff..2f75452b37 100644 --- a/iphone/Maps/LocalizedStrings/ca.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/ca.lproj/Localizable.strings @@ -2795,6 +2795,8 @@ "type.railway.station" = "Train Station"; +"type.railway.station.funicular" = "Funicular"; + "type.railway.station.light_rail" = "Train Station"; "type.railway.station.monorail" = "Train Station"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "Canal Tunnel"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Dam"; "type.waterway.ditch" = "Ditch"; diff --git a/iphone/Maps/LocalizedStrings/cs.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/cs.lproj/Localizable.strings index dff6549e66..4e332b7d51 100644 --- a/iphone/Maps/LocalizedStrings/cs.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/cs.lproj/Localizable.strings @@ -2735,7 +2735,7 @@ "type.railway.disused" = "Disused Railway"; -"type.railway.funicular" = "Funicular"; +"type.railway.funicular" = "Lanovka"; "type.railway.funicular.bridge" = "Funicular Bridge"; @@ -2795,6 +2795,8 @@ "type.railway.station" = "Železniční stanice"; +"type.railway.station.funicular" = "Lanovka"; + "type.railway.station.light_rail" = "Železniční stanice"; "type.railway.station.monorail" = "Železniční stanice"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "Kanál"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Dam"; "type.waterway.ditch" = "Ditch"; diff --git a/iphone/Maps/LocalizedStrings/da.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/da.lproj/Localizable.strings index b9c8555875..02cf9e5ac6 100644 --- a/iphone/Maps/LocalizedStrings/da.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/da.lproj/Localizable.strings @@ -2795,6 +2795,8 @@ "type.railway.station" = "Togstation"; +"type.railway.station.funicular" = "Funicular"; + "type.railway.station.light_rail" = "Togstation"; "type.railway.station.monorail" = "Togstation"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "Kanal"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Dam"; "type.waterway.ditch" = "Ditch"; diff --git a/iphone/Maps/LocalizedStrings/de.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/de.lproj/Localizable.strings index 8ac0e80243..eff6c0400b 100644 --- a/iphone/Maps/LocalizedStrings/de.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/de.lproj/Localizable.strings @@ -2795,6 +2795,8 @@ "type.railway.station" = "Bahnhof"; +"type.railway.station.funicular" = "Standseilbahn"; + "type.railway.station.light_rail" = "Stadtbahnbahnhof"; "type.railway.station.monorail" = "Bahnhof"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "Kanal"; +"type.waterway.fish_pass" = "Fischtreppe"; + "type.waterway.dam" = "Staudamm"; "type.waterway.ditch" = "Graben"; diff --git a/iphone/Maps/LocalizedStrings/el.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/el.lproj/Localizable.strings index f28ef31971..e7883163b4 100644 --- a/iphone/Maps/LocalizedStrings/el.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/el.lproj/Localizable.strings @@ -2735,7 +2735,7 @@ "type.railway.disused" = "Disused Railway"; -"type.railway.funicular" = "Funicular"; +"type.railway.funicular" = "Μονωτικό τρενάκι"; "type.railway.funicular.bridge" = "Funicular Bridge"; @@ -2795,6 +2795,8 @@ "type.railway.station" = "Σιδηροδρομικός σταθμός"; +"type.railway.station.funicular" = "Μονωτικό τρενάκι"; + "type.railway.station.light_rail" = "Σιδηροδρομικός σταθμός"; "type.railway.station.monorail" = "Σιδηροδρομικός σταθμός"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "Κανάλι"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Dam"; "type.waterway.ditch" = "Ditch"; diff --git a/iphone/Maps/LocalizedStrings/en-GB.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/en-GB.lproj/Localizable.strings index 02190e3c08..c2358d7e0b 100644 --- a/iphone/Maps/LocalizedStrings/en-GB.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/en-GB.lproj/Localizable.strings @@ -2795,6 +2795,8 @@ "type.railway.station" = "Train Station"; +"type.railway.station.funicular" = "Funicular"; + "type.railway.station.light_rail" = "Train Station"; "type.railway.station.monorail" = "Train Station"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "Canal Tunnel"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Dam"; "type.waterway.ditch" = "Ditch"; diff --git a/iphone/Maps/LocalizedStrings/en.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/en.lproj/Localizable.strings index abd2203d91..b2ecad6a8b 100644 --- a/iphone/Maps/LocalizedStrings/en.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/en.lproj/Localizable.strings @@ -2795,6 +2795,8 @@ "type.railway.station" = "Train Station"; +"type.railway.station.funicular" = "Funicular"; + "type.railway.station.light_rail" = "Light Rail Station"; "type.railway.station.monorail" = "Monorail Station"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "Canal Tunnel"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Dam"; "type.waterway.ditch" = "Ditch"; diff --git a/iphone/Maps/LocalizedStrings/es-MX.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/es-MX.lproj/Localizable.strings index c7bfefc138..5466745143 100644 --- a/iphone/Maps/LocalizedStrings/es-MX.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/es-MX.lproj/Localizable.strings @@ -2795,6 +2795,8 @@ "type.railway.station" = "Estación de tren"; +"type.railway.station.funicular" = "Funicular"; + "type.railway.station.light_rail" = "Estación de tren"; "type.railway.station.monorail" = "Estación de tren"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "Canal"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Presa"; "type.waterway.ditch" = "Zanja"; diff --git a/iphone/Maps/LocalizedStrings/es.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/es.lproj/Localizable.strings index bdc36bf35b..4e447efb50 100644 --- a/iphone/Maps/LocalizedStrings/es.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/es.lproj/Localizable.strings @@ -2795,6 +2795,8 @@ "type.railway.station" = "Estación de tren"; +"type.railway.station.funicular" = "Funicular"; + "type.railway.station.light_rail" = "Estación de tren"; "type.railway.station.monorail" = "Estación de tren"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "Canal"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Presa"; "type.waterway.ditch" = "Zanja"; diff --git a/iphone/Maps/LocalizedStrings/et.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/et.lproj/Localizable.strings index 6ae702aa86..ea53cee2df 100644 --- a/iphone/Maps/LocalizedStrings/et.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/et.lproj/Localizable.strings @@ -2735,7 +2735,7 @@ "type.railway.disused" = "Kasutamata raudtee"; -"type.railway.funicular" = "Funikulöör"; +"type.railway.funicular" = "Funicular"; "type.railway.funicular.bridge" = "Funikulöör"; @@ -2795,6 +2795,8 @@ "type.railway.station" = "Raudtee jaam"; +"type.railway.station.funicular" = "Funicular"; + "type.railway.station.light_rail" = "Raudtee jaam"; "type.railway.station.monorail" = "Raudtee jaam"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "Kanal"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Tamm"; "type.waterway.ditch" = "Kraav"; diff --git a/iphone/Maps/LocalizedStrings/eu.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/eu.lproj/Localizable.strings index bff8e17e23..593490d423 100644 --- a/iphone/Maps/LocalizedStrings/eu.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/eu.lproj/Localizable.strings @@ -2735,7 +2735,7 @@ "type.railway.disused" = "Disused Railway"; -"type.railway.funicular" = "Funicular"; +"type.railway.funicular" = "Funikularra"; "type.railway.funicular.bridge" = "Funicular Bridge"; @@ -2795,6 +2795,8 @@ "type.railway.station" = "Tren geltokian"; +"type.railway.station.funicular" = "Funikularra"; + "type.railway.station.light_rail" = "Tren geltokian"; "type.railway.station.monorail" = "Tren geltokian"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "Canal Tunnel"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Dam"; "type.waterway.ditch" = "Ditch"; diff --git a/iphone/Maps/LocalizedStrings/fa.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/fa.lproj/Localizable.strings index ef178ff88f..5183ca18fb 100644 --- a/iphone/Maps/LocalizedStrings/fa.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/fa.lproj/Localizable.strings @@ -2735,7 +2735,7 @@ "type.railway.disused" = "Disused Railway"; -"type.railway.funicular" = "Funicular"; +"type.railway.funicular" = "فونیکولور"; "type.railway.funicular.bridge" = "Funicular Bridge"; @@ -2795,6 +2795,8 @@ "type.railway.station" = "ایستگاه قطار"; +"type.railway.station.funicular" = "فونیکولور"; + "type.railway.station.light_rail" = "ایستگاه قطار"; "type.railway.station.monorail" = "ایستگاه قطار"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "کانال اب"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Dam"; "type.waterway.ditch" = "Ditch"; diff --git a/iphone/Maps/LocalizedStrings/fi.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/fi.lproj/Localizable.strings index 1064ba663e..827e5221f1 100644 --- a/iphone/Maps/LocalizedStrings/fi.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/fi.lproj/Localizable.strings @@ -2735,7 +2735,7 @@ "type.railway.disused" = "Disused Railway"; -"type.railway.funicular" = "Funicular"; +"type.railway.funicular" = "Köysirata"; "type.railway.funicular.bridge" = "Funicular Bridge"; @@ -2795,6 +2795,8 @@ "type.railway.station" = "Rautatieasema"; +"type.railway.station.funicular" = "Köysirata"; + "type.railway.station.light_rail" = "Rautatieasema"; "type.railway.station.monorail" = "Rautatieasema"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "Kanaali"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Pato"; "type.waterway.ditch" = "Oja"; diff --git a/iphone/Maps/LocalizedStrings/fr.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/fr.lproj/Localizable.strings index 82c92f8ee6..23739640c6 100644 --- a/iphone/Maps/LocalizedStrings/fr.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/fr.lproj/Localizable.strings @@ -2795,6 +2795,8 @@ "type.railway.station" = "Gare"; +"type.railway.station.funicular" = "Funiculaire"; + "type.railway.station.light_rail" = "Gare"; "type.railway.station.monorail" = "Gare"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "Canal Tunnel"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Barrage"; "type.waterway.ditch" = "Fossé"; diff --git a/iphone/Maps/LocalizedStrings/he.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/he.lproj/Localizable.strings index 4b29aaf4b4..634ea172e4 100644 --- a/iphone/Maps/LocalizedStrings/he.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/he.lproj/Localizable.strings @@ -2735,7 +2735,7 @@ "type.railway.disused" = "Disused Railway"; -"type.railway.funicular" = "Funicular"; +"type.railway.funicular" = "רַכֶּבֶל"; "type.railway.funicular.bridge" = "Funicular Bridge"; @@ -2795,6 +2795,8 @@ "type.railway.station" = "Train Station"; +"type.railway.station.funicular" = "רַכֶּבֶל"; + "type.railway.station.light_rail" = "Train Station"; "type.railway.station.monorail" = "Train Station"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "Canal Tunnel"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Dam"; "type.waterway.ditch" = "Ditch"; diff --git a/iphone/Maps/LocalizedStrings/hu.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/hu.lproj/Localizable.strings index 81cd92d1ed..145ab1751c 100644 --- a/iphone/Maps/LocalizedStrings/hu.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/hu.lproj/Localizable.strings @@ -2795,6 +2795,8 @@ "type.railway.station" = "Vonatmegálló"; +"type.railway.station.funicular" = "Funicular"; + "type.railway.station.light_rail" = "Vonatmegálló"; "type.railway.station.monorail" = "Vonatmegálló"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "Csatorna"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Dam"; "type.waterway.ditch" = "Ditch"; diff --git a/iphone/Maps/LocalizedStrings/id.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/id.lproj/Localizable.strings index 4bf4e3e9c4..cf965d9552 100644 --- a/iphone/Maps/LocalizedStrings/id.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/id.lproj/Localizable.strings @@ -2735,7 +2735,7 @@ "type.railway.disused" = "Disused Railway"; -"type.railway.funicular" = "Funicular"; +"type.railway.funicular" = "Kereta gantung"; "type.railway.funicular.bridge" = "Funicular Bridge"; @@ -2795,6 +2795,8 @@ "type.railway.station" = "Rel kereta api"; +"type.railway.station.funicular" = "Kereta gantung"; + "type.railway.station.light_rail" = "Rel kereta api"; "type.railway.station.monorail" = "Rel kereta api"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "Kanal"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Dam"; "type.waterway.ditch" = "Ditch"; diff --git a/iphone/Maps/LocalizedStrings/it.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/it.lproj/Localizable.strings index 810e53ebde..d5e677e3cc 100644 --- a/iphone/Maps/LocalizedStrings/it.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/it.lproj/Localizable.strings @@ -2735,7 +2735,7 @@ "type.railway.disused" = "Disused Railway"; -"type.railway.funicular" = "Funicular"; +"type.railway.funicular" = "Funicolare"; "type.railway.funicular.bridge" = "Funicular Bridge"; @@ -2795,6 +2795,8 @@ "type.railway.station" = "Stazione ferroviaria"; +"type.railway.station.funicular" = "Funicolare"; + "type.railway.station.light_rail" = "Stazione ferroviaria"; "type.railway.station.monorail" = "Stazione ferroviaria"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "Canale"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Diga"; "type.waterway.ditch" = "Fosso"; diff --git a/iphone/Maps/LocalizedStrings/ja.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/ja.lproj/Localizable.strings index 92748e801b..5a4c1e0de2 100644 --- a/iphone/Maps/LocalizedStrings/ja.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/ja.lproj/Localizable.strings @@ -2735,7 +2735,7 @@ "type.railway.disused" = "休止線"; -"type.railway.funicular" = "ケーブルカー"; +"type.railway.funicular" = "フニクラ"; "type.railway.funicular.bridge" = "ケーブルカー(橋)"; @@ -2795,6 +2795,8 @@ "type.railway.station" = "鉄道駅"; +"type.railway.station.funicular" = "フニクラ"; + "type.railway.station.light_rail" = "鉄道駅"; "type.railway.station.monorail" = "鉄道駅"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "運河"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "ダム"; "type.waterway.ditch" = "排水路"; diff --git a/iphone/Maps/LocalizedStrings/ko.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/ko.lproj/Localizable.strings index 6a00f85af0..d692118fe6 100644 --- a/iphone/Maps/LocalizedStrings/ko.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/ko.lproj/Localizable.strings @@ -2735,7 +2735,7 @@ "type.railway.disused" = "Disused Railway"; -"type.railway.funicular" = "Funicular"; +"type.railway.funicular" = "케이블카"; "type.railway.funicular.bridge" = "Funicular Bridge"; @@ -2795,6 +2795,8 @@ "type.railway.station" = "기차역"; +"type.railway.station.funicular" = "케이블카"; + "type.railway.station.light_rail" = "기차역"; "type.railway.station.monorail" = "기차역"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "운하"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Dam"; "type.waterway.ditch" = "Ditch"; diff --git a/iphone/Maps/LocalizedStrings/mr.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/mr.lproj/Localizable.strings index f0d587c4e2..a27baab3bc 100644 --- a/iphone/Maps/LocalizedStrings/mr.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/mr.lproj/Localizable.strings @@ -2735,7 +2735,7 @@ "type.railway.disused" = "Disused Railway"; -"type.railway.funicular" = "हवाई रज्जुमार्ग"; +"type.railway.funicular" = "फ्युनिक्युलर"; "type.railway.funicular.bridge" = "हवाई रज्जुमार्ग"; @@ -2795,6 +2795,8 @@ "type.railway.station" = "रेल्वे स्थानक"; +"type.railway.station.funicular" = "फ्युनिक्युलर"; + "type.railway.station.light_rail" = "रेल्वे स्थानक"; "type.railway.station.monorail" = "रेल्वे स्थानक"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "कालवा"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "धरण"; "type.waterway.ditch" = "खंदक"; diff --git a/iphone/Maps/LocalizedStrings/nb.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/nb.lproj/Localizable.strings index 214fb86a81..9291d9799c 100644 --- a/iphone/Maps/LocalizedStrings/nb.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/nb.lproj/Localizable.strings @@ -2735,7 +2735,7 @@ "type.railway.disused" = "Disused Railway"; -"type.railway.funicular" = "Funicular"; +"type.railway.funicular" = "Kabelbane"; "type.railway.funicular.bridge" = "Funicular Bridge"; @@ -2795,6 +2795,8 @@ "type.railway.station" = "Togstasjon"; +"type.railway.station.funicular" = "Kabelbane"; + "type.railway.station.light_rail" = "Togstasjon"; "type.railway.station.monorail" = "Togstasjon"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "Kanal"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Dam"; "type.waterway.ditch" = "Ditch"; diff --git a/iphone/Maps/LocalizedStrings/nl.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/nl.lproj/Localizable.strings index afbfba1ef4..ac5d2b5e06 100644 --- a/iphone/Maps/LocalizedStrings/nl.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/nl.lproj/Localizable.strings @@ -2735,7 +2735,7 @@ "type.railway.disused" = "Ongebruikt spoor"; -"type.railway.funicular" = "Kabelspoorweg"; +"type.railway.funicular" = "Tunnel"; "type.railway.funicular.bridge" = "Kabelspoorbuur"; @@ -2795,6 +2795,8 @@ "type.railway.station" = "Station"; +"type.railway.station.funicular" = "Tunnel"; + "type.railway.station.light_rail" = "Station"; "type.railway.station.monorail" = "Station"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "Kanaal"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Dam"; "type.waterway.ditch" = "Sloot"; diff --git a/iphone/Maps/LocalizedStrings/pl.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/pl.lproj/Localizable.strings index 7193eb4963..0d76b27281 100644 --- a/iphone/Maps/LocalizedStrings/pl.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/pl.lproj/Localizable.strings @@ -2735,7 +2735,7 @@ "type.railway.disused" = "Disused Railway"; -"type.railway.funicular" = "Funicular"; +"type.railway.funicular" = "Kolejka linowa"; "type.railway.funicular.bridge" = "Funicular Bridge"; @@ -2795,6 +2795,8 @@ "type.railway.station" = "Dworzec kolejowy"; +"type.railway.station.funicular" = "Kolejka linowa"; + "type.railway.station.light_rail" = "Dworzec kolejowy"; "type.railway.station.monorail" = "Dworzec kolejowy"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "Kanał"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Dam"; "type.waterway.ditch" = "Ditch"; diff --git a/iphone/Maps/LocalizedStrings/pt-BR.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/pt-BR.lproj/Localizable.strings index fe0b07e1b1..94029a5426 100644 --- a/iphone/Maps/LocalizedStrings/pt-BR.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/pt-BR.lproj/Localizable.strings @@ -2795,6 +2795,8 @@ "type.railway.station" = "Estação de trem"; +"type.railway.station.funicular" = "Funicular"; + "type.railway.station.light_rail" = "Estação de trem"; "type.railway.station.monorail" = "Estação de trem"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "Canal"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Usina"; "type.waterway.ditch" = "Vala"; diff --git a/iphone/Maps/LocalizedStrings/pt.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/pt.lproj/Localizable.strings index 897b8616be..ac8f0af133 100644 --- a/iphone/Maps/LocalizedStrings/pt.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/pt.lproj/Localizable.strings @@ -2795,6 +2795,8 @@ "type.railway.station" = "Estação de comboios"; +"type.railway.station.funicular" = "Funicular"; + "type.railway.station.light_rail" = "Estação de comboios"; "type.railway.station.monorail" = "Estação de comboios"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "Canal"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Barragem"; "type.waterway.ditch" = "Vala"; diff --git a/iphone/Maps/LocalizedStrings/ro.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/ro.lproj/Localizable.strings index b1aea77b38..f29a9c798f 100644 --- a/iphone/Maps/LocalizedStrings/ro.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/ro.lproj/Localizable.strings @@ -2795,6 +2795,8 @@ "type.railway.station" = "Feroviar"; +"type.railway.station.funicular" = "Funicular"; + "type.railway.station.light_rail" = "Feroviar"; "type.railway.station.monorail" = "Feroviar"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "Canal Tunnel"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Dam"; "type.waterway.ditch" = "Ditch"; diff --git a/iphone/Maps/LocalizedStrings/ru.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/ru.lproj/Localizable.strings index 14c4a20138..5750b9c0ac 100644 --- a/iphone/Maps/LocalizedStrings/ru.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/ru.lproj/Localizable.strings @@ -2795,6 +2795,8 @@ "type.railway.station" = "Ж/д станция"; +"type.railway.station.funicular" = "Фуникулер"; + "type.railway.station.light_rail" = "Ж/д станция"; "type.railway.station.monorail" = "Ж/д станция"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "Канал"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Дамба"; "type.waterway.ditch" = "Канава"; diff --git a/iphone/Maps/LocalizedStrings/sk.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/sk.lproj/Localizable.strings index 46dcf7e0fd..05751f3ad0 100644 --- a/iphone/Maps/LocalizedStrings/sk.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/sk.lproj/Localizable.strings @@ -2735,7 +2735,7 @@ "type.railway.disused" = "Disused Railway"; -"type.railway.funicular" = "Funicular"; +"type.railway.funicular" = "Lanovka"; "type.railway.funicular.bridge" = "Funicular Bridge"; @@ -2795,6 +2795,8 @@ "type.railway.station" = "Železničná stanica"; +"type.railway.station.funicular" = "Lanovka"; + "type.railway.station.light_rail" = "Železničná stanica"; "type.railway.station.monorail" = "Železničná stanica"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "Kanál"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Dam"; "type.waterway.ditch" = "Ditch"; diff --git a/iphone/Maps/LocalizedStrings/sv.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/sv.lproj/Localizable.strings index 937ac0e47a..7dd44d55e1 100644 --- a/iphone/Maps/LocalizedStrings/sv.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/sv.lproj/Localizable.strings @@ -2735,7 +2735,7 @@ "type.railway.disused" = "Disused Railway"; -"type.railway.funicular" = "Funicular"; +"type.railway.funicular" = "Linbana"; "type.railway.funicular.bridge" = "Funicular Bridge"; @@ -2795,6 +2795,8 @@ "type.railway.station" = "Tågstation"; +"type.railway.station.funicular" = "Linbana"; + "type.railway.station.light_rail" = "Tågstation"; "type.railway.station.monorail" = "Tågstation"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "Kanal"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Dam"; "type.waterway.ditch" = "Ditch"; diff --git a/iphone/Maps/LocalizedStrings/sw.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/sw.lproj/Localizable.strings index a3d622dad4..003a409e6e 100644 --- a/iphone/Maps/LocalizedStrings/sw.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/sw.lproj/Localizable.strings @@ -2795,6 +2795,8 @@ "type.railway.station" = "Train Station"; +"type.railway.station.funicular" = "Funicular"; + "type.railway.station.light_rail" = "Train Station"; "type.railway.station.monorail" = "Train Station"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "Canal Tunnel"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Dam"; "type.waterway.ditch" = "Ditch"; diff --git a/iphone/Maps/LocalizedStrings/th.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/th.lproj/Localizable.strings index 7f26580590..046829588e 100644 --- a/iphone/Maps/LocalizedStrings/th.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/th.lproj/Localizable.strings @@ -2735,7 +2735,7 @@ "type.railway.disused" = "Disused Railway"; -"type.railway.funicular" = "Funicular"; +"type.railway.funicular" = "รถกระเช้าไฟฟ้า"; "type.railway.funicular.bridge" = "Funicular Bridge"; @@ -2795,6 +2795,8 @@ "type.railway.station" = "สถานีรถไฟ"; +"type.railway.station.funicular" = "รถกระเช้าไฟฟ้า"; + "type.railway.station.light_rail" = "สถานีรถไฟ"; "type.railway.station.monorail" = "สถานีรถไฟ"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "คลอง"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Dam"; "type.waterway.ditch" = "Ditch"; diff --git a/iphone/Maps/LocalizedStrings/tr.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/tr.lproj/Localizable.strings index 86b1895bcc..588086513b 100644 --- a/iphone/Maps/LocalizedStrings/tr.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/tr.lproj/Localizable.strings @@ -2795,6 +2795,8 @@ "type.railway.station" = "Tren İstasyonu"; +"type.railway.station.funicular" = "Füniküler"; + "type.railway.station.light_rail" = "Tren İstasyonu"; "type.railway.station.monorail" = "Tren İstasyonu"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "Kanal"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Baraj"; "type.waterway.ditch" = "Hendek"; diff --git a/iphone/Maps/LocalizedStrings/uk.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/uk.lproj/Localizable.strings index 85ba297377..a789febee4 100644 --- a/iphone/Maps/LocalizedStrings/uk.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/uk.lproj/Localizable.strings @@ -2795,6 +2795,8 @@ "type.railway.station" = "Залізничний вокзал"; +"type.railway.station.funicular" = "Фунікулер"; + "type.railway.station.light_rail" = "Залізничний вокзал"; "type.railway.station.monorail" = "Залізничний вокзал"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "Канал"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Дамба"; "type.waterway.ditch" = "Канава"; diff --git a/iphone/Maps/LocalizedStrings/vi.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/vi.lproj/Localizable.strings index 7eb507590e..96afbd237f 100644 --- a/iphone/Maps/LocalizedStrings/vi.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/vi.lproj/Localizable.strings @@ -2735,7 +2735,7 @@ "type.railway.disused" = "Disused Railway"; -"type.railway.funicular" = "Funicular"; +"type.railway.funicular" = "Đường sắt leo núi"; "type.railway.funicular.bridge" = "Funicular Bridge"; @@ -2795,6 +2795,8 @@ "type.railway.station" = "Đường tàu hỏa"; +"type.railway.station.funicular" = "Đường sắt leo núi"; + "type.railway.station.light_rail" = "Đường tàu hỏa"; "type.railway.station.monorail" = "Đường tàu hỏa"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "Kênh"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Dam"; "type.waterway.ditch" = "Ditch"; diff --git a/iphone/Maps/LocalizedStrings/zh-Hans.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/zh-Hans.lproj/Localizable.strings index bfaa5e6199..58369047b2 100644 --- a/iphone/Maps/LocalizedStrings/zh-Hans.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/zh-Hans.lproj/Localizable.strings @@ -2735,7 +2735,7 @@ "type.railway.disused" = "废弃铁路"; -"type.railway.funicular" = "缆索铁路轨道"; +"type.railway.funicular" = "缆车"; "type.railway.funicular.bridge" = "缆索铁路轨道"; @@ -2795,6 +2795,8 @@ "type.railway.station" = "火车站"; +"type.railway.station.funicular" = "缆车"; + "type.railway.station.light_rail" = "轻轨车站"; "type.railway.station.monorail" = "单轨车站"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "运河"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "水坝"; "type.waterway.ditch" = "水沟"; diff --git a/iphone/Maps/LocalizedStrings/zh-Hant.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/zh-Hant.lproj/Localizable.strings index 10ba597f76..77c90da1e7 100644 --- a/iphone/Maps/LocalizedStrings/zh-Hant.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/zh-Hant.lproj/Localizable.strings @@ -2735,7 +2735,7 @@ "type.railway.disused" = "Disused Railway"; -"type.railway.funicular" = "Funicular"; +"type.railway.funicular" = "纜車"; "type.railway.funicular.bridge" = "Funicular Bridge"; @@ -2795,6 +2795,8 @@ "type.railway.station" = "火車站"; +"type.railway.station.funicular" = "纜車"; + "type.railway.station.light_rail" = "輕軌車站"; "type.railway.station.monorail" = "單軌車站"; @@ -3635,6 +3637,8 @@ "type.waterway.canal.tunnel" = "運河"; +"type.waterway.fish_pass" = "Fish Pass"; + "type.waterway.dam" = "Dam"; "type.waterway.ditch" = "Ditch"; -- 2.45.3 From 9f5b96663dab3749e00860a568bc81a20de81971 Mon Sep 17 00:00:00 2001 From: Viktor Govako Date: Fri, 19 May 2023 13:39:03 -0300 Subject: [PATCH 18/18] [routing] Use <1.0 speed factor for nocycleway/nosidewalk tags. Signed-off-by: Viktor Govako --- routing_common/bicycle_model.cpp | 6 +- routing_common/pedestrian_model.cpp | 6 +- .../vehicle_model_test.cpp | 88 +++++++++++++++++-- 3 files changed, 90 insertions(+), 10 deletions(-) diff --git a/routing_common/bicycle_model.cpp b/routing_common/bicycle_model.cpp index 45db54340f..ec3f3ce922 100644 --- a/routing_common/bicycle_model.cpp +++ b/routing_common/bicycle_model.cpp @@ -166,11 +166,13 @@ VehicleModel::LimitsInitList UkraineOptions() } VehicleModel::SurfaceInitList const kBicycleSurface = { - // {{surfaceType, surfaceType}, {weightFactor, etaFactor}} + // {{surfaceType}, {weightFactor, etaFactor}} {{"psurface", "paved_good"}, {1.0, 1.0}}, {{"psurface", "paved_bad"}, {0.8, 0.8}}, {{"psurface", "unpaved_good"}, {1.0, 1.0}}, - {{"psurface", "unpaved_bad"}, {0.3, 0.3}} + {{"psurface", "unpaved_bad"}, {0.3, 0.3}}, + // no dedicated cycleway, doesn't mean that bicycle is not allowed, just lower weight + {{"hwtag", "nocycleway"}, {0.8, 0.8}}, }; } // namespace bicycle_model diff --git a/routing_common/pedestrian_model.cpp b/routing_common/pedestrian_model.cpp index 5863135fbe..2d29fe4b0f 100644 --- a/routing_common/pedestrian_model.cpp +++ b/routing_common/pedestrian_model.cpp @@ -123,11 +123,13 @@ VehicleModel::LimitsInitList YesBridleway(VehicleModel::LimitsInitList res = kDe } VehicleModel::SurfaceInitList const kPedestrianSurface = { - // {{surfaceType, surfaceType}, {weightFactor, etaFactor}} + // {{surfaceType}, {weightFactor, etaFactor}} {{"psurface", "paved_good"}, {1.0, 1.0}}, {{"psurface", "paved_bad"}, {1.0, 1.0}}, {{"psurface", "unpaved_good"}, {1.0, 1.0}}, - {{"psurface", "unpaved_bad"}, {0.8, 0.8}} + {{"psurface", "unpaved_bad"}, {0.8, 0.8}}, + // no dedicated sidewalk, doesn't mean that foot is not allowed, just lower weight + {{"hwtag", "nosidewalk"}, {0.8, 0.8}}, }; } // namespace pedestrian_model diff --git a/routing_common/routing_common_tests/vehicle_model_test.cpp b/routing_common/routing_common_tests/vehicle_model_test.cpp index 17fa403b41..9bc0dfb9dc 100644 --- a/routing_common/routing_common_tests/vehicle_model_test.cpp +++ b/routing_common/routing_common_tests/vehicle_model_test.cpp @@ -1,9 +1,11 @@ #include "testing/testing.hpp" +#include "routing_common/bicycle_model.hpp" +#include "routing_common/car_model.hpp" #include "routing_common/car_model_coefs.hpp" #include "routing_common/maxspeed_conversion.hpp" +#include "routing_common/pedestrian_model.hpp" #include "routing_common/vehicle_model.hpp" -#include "routing_common/car_model.hpp" #include "indexer/classificator.hpp" #include "indexer/classificator_loader.hpp" @@ -13,6 +15,7 @@ #include "base/math.hpp" + namespace vehicle_model_test { using namespace routing; @@ -76,6 +79,8 @@ public: uint32_t primary, secondary, secondaryTunnel, secondaryBridge, residential; uint32_t oneway, pavedGood, pavedBad, unpavedGood, unpavedBad; + + static SpeedParams DefaultParams() { return {{}, kInvalidSpeed, false /* inCity */}; } }; class VehicleModelStub : public VehicleModel @@ -241,7 +246,8 @@ namespace bool LessSpeed(SpeedKMpH const & l, SpeedKMpH const & r) { TEST(l.IsValid() && r.IsValid(), (l, r)); - return l.m_weight < r.m_weight && l.m_eta < r.m_eta; + // Weight should be strict less, ETA may be equal. + return l.m_weight < r.m_weight && l.m_eta <= r.m_eta; } #define TEST_LESS_SPEED(l, r) TEST(LessSpeed(l, r), (l, r)) @@ -250,8 +256,9 @@ bool LessSpeed(SpeedKMpH const & l, SpeedKMpH const & r) UNIT_CLASS_TEST(VehicleModelTest, CarModel_TrackVsGravelTertiary) { auto const & model = CarModel::AllLimitsInstance(); - auto const & c = classif(); + auto const p = DefaultParams(); + feature::TypesHolder h1; h1.Add(c.GetTypeByPath({"highway", "track"})); @@ -263,17 +270,86 @@ UNIT_CLASS_TEST(VehicleModelTest, CarModel_TrackVsGravelTertiary) // Obvious that gravel tertiary (moreover with maxspeed=60kmh) should be better than track. { - SpeedParams p1({}, kInvalidSpeed, false /* inCity */); SpeedParams p2({measurement_utils::Units::Metric, 60, 60}, kInvalidSpeed, false /* inCity */); - TEST_LESS_SPEED(model.GetTypeSpeed(h1, p1), model.GetTypeSpeed(h2, p2)); + TEST_LESS_SPEED(model.GetTypeSpeed(h1, p), model.GetTypeSpeed(h2, p2)); } { - SpeedParams p({}, kInvalidSpeed, false /* inCity */); TEST_LESS_SPEED(model.GetTypeSpeed(h1, p), model.GetTypeSpeed(h2, p)); } } +UNIT_CLASS_TEST(VehicleModelTest, CarModel_Smoke) +{ + auto const & model = CarModel::AllLimitsInstance(); + auto const & c = classif(); + auto const p = DefaultParams(); + + feature::TypesHolder h1; + h1.Add(secondary); + + feature::TypesHolder h2; + h2.Add(secondary); + h2.Add(c.GetTypeByPath({"hwtag", "yescar"})); + + feature::TypesHolder h3; + h3.Add(c.GetTypeByPath({"highway", "tertiary"})); + + TEST_EQUAL(model.GetTypeSpeed(h1, p), model.GetTypeSpeed(h2, p), ()); + TEST_LESS_SPEED(model.GetTypeSpeed(h3, p), model.GetTypeSpeed(h2, p)); +} + +UNIT_CLASS_TEST(VehicleModelTest, BicycleModel_Smoke) +{ + auto const & model = BicycleModel::AllLimitsInstance(); + auto const & c = classif(); + auto const p = DefaultParams(); + + feature::TypesHolder h1; + h1.Add(c.GetTypeByPath({"highway", "cycleway"})); + h1.Add(c.GetTypeByPath({"hwtag", "yesbicycle"})); + + feature::TypesHolder h2; + h2.Add(c.GetTypeByPath({"highway", "cycleway"})); + + feature::TypesHolder h3; + h3.Add(secondary); + h3.Add(c.GetTypeByPath({"hwtag", "yesbicycle"})); + + feature::TypesHolder h4; + h4.Add(secondary); + + feature::TypesHolder h5; + h5.Add(secondary); + h5.Add(c.GetTypeByPath({"hwtag", "nocycleway"})); + + TEST_EQUAL(model.GetTypeSpeed(h1, p), model.GetTypeSpeed(h2, p), ()); + TEST_LESS_SPEED(model.GetTypeSpeed(h3, p), model.GetTypeSpeed(h2, p)); + TEST_LESS_SPEED(model.GetTypeSpeed(h4, p), model.GetTypeSpeed(h3, p)); + TEST_LESS_SPEED(model.GetTypeSpeed(h5, p), model.GetTypeSpeed(h4, p)); +} + +UNIT_CLASS_TEST(VehicleModelTest, PedestrianModel_Smoke) +{ + auto const & model = PedestrianModel::AllLimitsInstance(); + auto const & c = classif(); + auto const p = DefaultParams(); + + feature::TypesHolder h1; + h1.Add(residential); + h1.Add(c.GetTypeByPath({"hwtag", "yesfoot"})); + + feature::TypesHolder h2; + h2.Add(residential); + + feature::TypesHolder h3; + h3.Add(residential); + h3.Add(c.GetTypeByPath({"hwtag", "nosidewalk"})); + + TEST_LESS_SPEED(model.GetTypeSpeed(h2, p), model.GetTypeSpeed(h1, p)); + TEST_LESS_SPEED(model.GetTypeSpeed(h3, p), model.GetTypeSpeed(h2, p)); +} + #undef TEST_LESS_SPEED UNIT_TEST(VehicleModel_MultiplicationOperatorTest) -- 2.45.3