From b3dc1e22bcb92e1bb63f9bfaf996e30d1af18947 Mon Sep 17 00:00:00 2001 From: MbTy1 <141584968+MbTy1@users.noreply.github.com> Date: Sun, 1 Sep 2024 18:43:27 +0300 Subject: [PATCH 1/9] Update types_strings.txt Hebrew translate up to 16177 Signed-off-by: MbTy1 <141584968+MbTy1@users.noreply.github.com> --- data/strings/types_strings.txt | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/data/strings/types_strings.txt b/data/strings/types_strings.txt index e7434ee292..45a8ca96d4 100644 --- a/data/strings/types_strings.txt +++ b/data/strings/types_strings.txt @@ -397,7 +397,7 @@ eu = Ontziratzeko atea fi = Portti fr = Porte d'embarquement - he = שער + he = שער עליה למטוס it = Cancello aeroportuale ja = 搭乗口 mr = दार @@ -13763,6 +13763,7 @@ [type.highway.track.no.access] ref = type.highway.track + he = מסלול ללא גישה [type.highway.track.tunnel] ref = type.highway.road.tunnel @@ -15466,7 +15467,7 @@ fa = گردشگری fi = Alus fr = Navire - he = אונייה + he = ספינה hi = जलयान hu = Turizmus id = Pemandangan @@ -15833,7 +15834,7 @@ eu = Biribilgunea fi = Liikenneympyrä fr = Rond-point - he = מעגל תנועה + he = כיכר hi = गोल चक्कर it = Rotonda ja = ラウンドアバウト @@ -15862,6 +15863,7 @@ et = Maakasutus fi = Maankäyttö fr = Utilisation du sol + he = שימושי קרקע hi = भूमि उपयोग ja = 土地利用 mr = भूमी उपयोग @@ -15886,6 +15888,7 @@ et = Peenrad fi = Siirtolapuutarha fr = Jardins familiaux + he = חלקות חקלאיות it = Orti comunitari ja = 市民農園 mr = वाटप @@ -15950,6 +15953,7 @@ et = Ehitusmaa fi = Tuhoalue fr = Friche industrielle + he = קרקע מזוהמת ja = 再開発用地 pl = Teren do zabudowy pt = Terreno industrial devoluto @@ -15987,6 +15991,7 @@ fa = حیاط کلیسا fi = Kirkon piha fr = Cour d'église + he = חצר כנסיה hu = Templomkert id = Halaman gereja it = Sagrato della chiesa @@ -16070,6 +16075,7 @@ et = Haridusrajatised fi = Koulutuslaitos fr = Établissements éducatifs + he = קריית חינוך it = Strutture didattiche mr = शैक्षणिक सुविधा nl = Educatieve voorzieningen @@ -16097,6 +16103,7 @@ fa = زمین کشاورزی fi = Maatalousmaa fr = Terrains agricoles + he = אדמה חקלאית hu = Termőföld id = Lahan pertanian it = Terreno agricolo @@ -16129,6 +16136,7 @@ et = Taluõu fi = Maatila fr = Ferme + he = חצר חקלאית it = Fattoria ja = 農地 nl = Boerenerf -- 2.45.3 From 9546637ab737aa3ce5646b34f26b64f924ddb6c7 Mon Sep 17 00:00:00 2001 From: Alexander Borsuk Date: Sun, 1 Sep 2024 18:23:58 +0200 Subject: [PATCH 2/9] [strings] Regenerated he Signed-off-by: Alexander Borsuk --- .../app/src/main/res/values-iw/strings.xml | 17 +++++++++---- .../he.lproj/Localizable.strings | 24 +++++++++---------- 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/android/app/src/main/res/values-iw/strings.xml b/android/app/src/main/res/values-iw/strings.xml index 7aac91b036..f9a5609243 100644 --- a/android/app/src/main/res/values-iw/strings.xml +++ b/android/app/src/main/res/values-iw/strings.xml @@ -839,7 +839,7 @@ שדה תעופה שדה תעופה בינלאומי חניית מטוסים - שער + שער עליה למטוס מנחת מסוקים מסלול המראה מסלול הסעה @@ -1321,7 +1321,7 @@ גשר מסלול - מסלול + מסלול ללא גישה מִנהָרָה רמזור @@ -1393,7 +1393,7 @@ אנדרטה עמוד הקלון חורבות עתיקות - אונייה + ספינה טנק היסטורי קֶבֶר צלב בצד הדרך @@ -1414,15 +1414,22 @@ אינטרנט אינטרנט אלחוטי צומת - מעגל תנועה - מעגל תנועה + כיכר + כיכר + שימושי קרקע + חלקות חקלאיות אגן מים + קרקע מזוהמת בית קברות בית קברות נוצרי + חצר כנסיה אזור מסחרי אתר בניה + קריית חינוך + אדמה חקלאית + חצר חקלאית שדה ערוגת פרחים יער diff --git a/iphone/Maps/LocalizedStrings/he.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/he.lproj/Localizable.strings index 6458df16b6..7588e0d73f 100644 --- a/iphone/Maps/LocalizedStrings/he.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/he.lproj/Localizable.strings @@ -1423,7 +1423,7 @@ "type.aeroway.apron" = "חניית מטוסים"; -"type.aeroway.gate" = "שער"; +"type.aeroway.gate" = "שער עליה למטוס"; "type.aeroway.helipad" = "מנחת מסוקים"; @@ -2332,7 +2332,7 @@ "type.highway.track.grade1" = "מסלול"; -"type.highway.track.no.access" = "מסלול"; +"type.highway.track.no.access" = "מסלול ללא גישה"; /* These translations are used for all type.highway.*.tunnel. */ "type.highway.track.tunnel" = "מִנהָרָה"; @@ -2472,7 +2472,7 @@ "type.historic.ruins" = "חורבות עתיקות"; -"type.historic.ship" = "אונייה"; +"type.historic.ship" = "ספינה"; "type.historic.tank" = "טנק היסטורי"; @@ -2516,17 +2516,17 @@ "type.junction" = "צומת"; -"type.junction.circular" = "מעגל תנועה"; +"type.junction.circular" = "כיכר"; -"type.junction.roundabout" = "מעגל תנועה"; +"type.junction.roundabout" = "כיכר"; -"type.landuse" = "Landuse"; +"type.landuse" = "שימושי קרקע"; -"type.landuse.allotments" = "Allotments"; +"type.landuse.allotments" = "חלקות חקלאיות"; "type.landuse.basin" = "אגן מים"; -"type.landuse.brownfield" = "Brownfield"; +"type.landuse.brownfield" = "קרקע מזוהמת"; /* In most (European) countries, сemeteries are usually independent of places of worship (e.g. military cemeteries), while grave yards are usually the yard of a place of worship. */ "type.landuse.cemetery" = "בית קברות"; @@ -2534,17 +2534,17 @@ /* In most (European) countries, сemeteries are usually independent of places of worship (e.g. military cemeteries), while grave yards are usually the yard of a place of worship. */ "type.landuse.cemetery.christian" = "בית קברות נוצרי"; -"type.landuse.churchyard" = "Churchyard"; +"type.landuse.churchyard" = "חצר כנסיה"; "type.landuse.commercial" = "אזור מסחרי"; "type.landuse.construction" = "אתר בניה"; -"type.landuse.education" = "Educational Facility"; +"type.landuse.education" = "קריית חינוך"; -"type.landuse.farmland" = "Farmland"; +"type.landuse.farmland" = "אדמה חקלאית"; -"type.landuse.farmyard" = "Farmyard"; +"type.landuse.farmyard" = "חצר חקלאית"; "type.landuse.field" = "שדה"; -- 2.45.3 From 7c151ec2898c9f09b5438782479cbe4f7351f081 Mon Sep 17 00:00:00 2001 From: Alexander Borsuk Date: Sat, 31 Aug 2024 22:59:18 +0200 Subject: [PATCH 3/9] [ios] Minor fixes Signed-off-by: Alexander Borsuk --- .../MWMMapViewControlsManager+AddPlace.h | 6 +----- .../MWMPlacePageManagerHelper.h | 1 - .../MWMPlacePageManagerHelper.mm | 1 - map/framework.cpp | 19 ++++++++----------- xcode/base/base.xcodeproj/project.pbxproj | 2 +- xcode/drape/drape.xcodeproj/project.pbxproj | 4 +--- xcode/icu/icu.xcodeproj/project.pbxproj | 2 +- 7 files changed, 12 insertions(+), 23 deletions(-) diff --git a/iphone/Maps/Categories/MWMMapViewControlsManager+AddPlace.h b/iphone/Maps/Categories/MWMMapViewControlsManager+AddPlace.h index 5061ffca1d..88e8ed14c0 100644 --- a/iphone/Maps/Categories/MWMMapViewControlsManager+AddPlace.h +++ b/iphone/Maps/Categories/MWMMapViewControlsManager+AddPlace.h @@ -1,12 +1,8 @@ #import #include "geometry/point2d.hpp" -NS_ASSUME_NONNULL_BEGIN - @interface MWMMapViewControlsManager (AddPlace) -- (void)addPlace:(BOOL)isBusiness position:(m2::PointD const *)optionalPosition; +- (void)addPlace:(BOOL)isBusiness position:(nullable m2::PointD const *)optionalPosition; @end - -NS_ASSUME_NONNULL_END diff --git a/iphone/Maps/UI/PlacePage/PlacePageManager/MWMPlacePageManagerHelper.h b/iphone/Maps/UI/PlacePage/PlacePageManager/MWMPlacePageManagerHelper.h index b2e3964b0e..0b7efa3c19 100644 --- a/iphone/Maps/UI/PlacePage/PlacePageManager/MWMPlacePageManagerHelper.h +++ b/iphone/Maps/UI/PlacePage/PlacePageManager/MWMPlacePageManagerHelper.h @@ -31,7 +31,6 @@ + (void)editBookmark:(PlacePageData *)data; + (void)searchBookingHotels:(PlacePageData *)data; + (void)book:(PlacePageData *)data; -+ (void)share:(PlacePageData *)data; + (void)routeFrom:(PlacePageData *)data; + (void)routeTo:(PlacePageData *)data; + (void)routeAddStop:(PlacePageData *)data; diff --git a/iphone/Maps/UI/PlacePage/PlacePageManager/MWMPlacePageManagerHelper.mm b/iphone/Maps/UI/PlacePage/PlacePageManager/MWMPlacePageManagerHelper.mm index 05d2617e83..f6b78cdd17 100644 --- a/iphone/Maps/UI/PlacePage/PlacePageManager/MWMPlacePageManagerHelper.mm +++ b/iphone/Maps/UI/PlacePage/PlacePageManager/MWMPlacePageManagerHelper.mm @@ -38,7 +38,6 @@ - (void)editBookmark:(PlacePageData *)data; - (void)searchBookingHotels:(PlacePageData *)data; - (void)book:(PlacePageData *)data; -- (void)share:(PlacePageData *)data; - (void)routeFrom:(PlacePageData *)data; - (void)routeTo:(PlacePageData *)data; - (void)routeAddStop:(PlacePageData *)data; diff --git a/map/framework.cpp b/map/framework.cpp index 50a91c9e63..18621c9190 100644 --- a/map/framework.cpp +++ b/map/framework.cpp @@ -794,14 +794,14 @@ void Framework::FillRoadTypeMarkInfo(RoadWarningMark const & roadTypeMark, place void Framework::ShowBookmark(kml::MarkId id) { auto const * mark = m_bmManager->GetBookmark(id); + if (mark) ShowBookmark(mark); + else + ASSERT(false, ("ShowBookmark was called with invalid id", id)); } void Framework::ShowBookmark(Bookmark const * mark) { - if (mark == nullptr) - return; - StopLocationFollow(); place_page::BuildInfo info; @@ -816,11 +816,8 @@ void Framework::ShowBookmark(Bookmark const * mark) auto es = GetBookmarkManager().GetEditSession(); es.SetIsVisible(mark->GetGroupId(), true /* visible */); - if (m_drapeEngine != nullptr) - { - m_drapeEngine->SetModelViewCenter(mark->GetPivot(), scale, true /* isAnim */, - true /* trackVisibleViewport */); - } + if (m_drapeEngine) + m_drapeEngine->SetModelViewCenter(mark->GetPivot(), scale, true /* isAnim */, true /* trackVisibleViewport */); ActivateMapSelection(); } @@ -860,7 +857,7 @@ void Framework::ShowBookmarkCategory(kml::MarkGroupId categoryId, bool animation auto es = bm.GetEditSession(); es.SetIsVisible(categoryId, true /* visible */); - auto const trackIds = bm.GetTrackIds(categoryId); + auto const & trackIds = bm.GetTrackIds(categoryId); for (auto trackId : trackIds) { if (!bm.GetTrack(trackId)->IsInteractive()) @@ -881,7 +878,7 @@ void Framework::ShowFeature(FeatureID const & featureId) if (m_drapeEngine != nullptr) { - auto const pt = m_currentPlacePageInfo->GetMercator(); + auto const & pt = m_currentPlacePageInfo->GetMercator(); auto const scale = scales::GetUpperComfortScale(); m_drapeEngine->SetModelViewCenter(pt, scale, true /* isAnim */, true /* trackVisibleViewport */); } @@ -2171,7 +2168,7 @@ place_page::Info Framework::BuildPlacePageInfo(place_page::BuildInfo const & bui break; } default: - ASSERT(false, ("FindNearestUserMark returned invalid mark.")); + CHECK(false, ("Unexpected user mark type", mark->GetMarkType())); } SetPlacePageLocation(outInfo); diff --git a/xcode/base/base.xcodeproj/project.pbxproj b/xcode/base/base.xcodeproj/project.pbxproj index d14beb48b9..fc45f5fc66 100644 --- a/xcode/base/base.xcodeproj/project.pbxproj +++ b/xcode/base/base.xcodeproj/project.pbxproj @@ -631,7 +631,7 @@ attributes = { BuildIndependentTargetsInParallel = YES; DefaultBuildSystemTypeForWorkspace = Latest; - LastUpgradeCheck = 1510; + LastUpgradeCheck = 1600; TargetAttributes = { 39FD27061CC65A7100AFF551 = { CreatedOnToolsVersion = 7.2.1; diff --git a/xcode/drape/drape.xcodeproj/project.pbxproj b/xcode/drape/drape.xcodeproj/project.pbxproj index 4ada982dab..b690f10d78 100644 --- a/xcode/drape/drape.xcodeproj/project.pbxproj +++ b/xcode/drape/drape.xcodeproj/project.pbxproj @@ -384,7 +384,6 @@ 6729A5041A69213A007D5872 /* batcher_helpers.hpp */, 6729A5051A69213A007D5872 /* batcher.cpp */, 6729A5061A69213A007D5872 /* batcher.hpp */, - 670947181BDF9A4F005014C0 /* bidi.hpp */, 6729A5071A69213A007D5872 /* binding_info.cpp */, 6729A5081A69213A007D5872 /* binding_info.hpp */, 6729A5091A69213A007D5872 /* buffer_base.cpp */, @@ -557,7 +556,6 @@ 34C624CA1DABDB2000510300 /* static_texture.hpp in Headers */, 4577B25521F2035D00864FAC /* vulkan_texture.hpp in Headers */, 6729A5901A69213A007D5872 /* object_pool.hpp in Headers */, - 670947261BDF9A4F005014C0 /* bidi.hpp in Headers */, 6729A5A11A69213A007D5872 /* shader.hpp in Headers */, 4513BF0C1EC2F0760066565C /* framebuffer.hpp in Headers */, 6729A5641A69213A007D5872 /* attribute_buffer_mutator.hpp in Headers */, @@ -609,7 +607,7 @@ attributes = { BuildIndependentTargetsInParallel = YES; DefaultBuildSystemTypeForWorkspace = Latest; - LastUpgradeCheck = 1540; + LastUpgradeCheck = 1600; TargetAttributes = { 6729A4F01A691F6A007D5872 = { CreatedOnToolsVersion = 6.1.1; diff --git a/xcode/icu/icu.xcodeproj/project.pbxproj b/xcode/icu/icu.xcodeproj/project.pbxproj index e33866255d..9528f85d2c 100644 --- a/xcode/icu/icu.xcodeproj/project.pbxproj +++ b/xcode/icu/icu.xcodeproj/project.pbxproj @@ -1516,7 +1516,7 @@ attributes = { BuildIndependentTargetsInParallel = YES; DefaultBuildSystemTypeForWorkspace = Latest; - LastUpgradeCheck = 1510; + LastUpgradeCheck = 1600; TargetAttributes = { BBB165D61E8275120058BF1E = { CreatedOnToolsVersion = 8.2.1; -- 2.45.3 From f215bb67e31cae05694d2f61fb8b1768abdb06a2 Mon Sep 17 00:00:00 2001 From: Alexander Borsuk Date: Sat, 31 Aug 2024 23:03:55 +0200 Subject: [PATCH 4/9] Fixed crash when tapping on a text to select an intermediate stop (or any other non-bookmark UserMark) Signed-off-by: Alexander Borsuk --- map/framework.cpp | 168 ++++++++++++++++++++++------------------------ map/framework.hpp | 3 +- 2 files changed, 82 insertions(+), 89 deletions(-) diff --git a/map/framework.cpp b/map/framework.cpp index 18621c9190..c3e767a2da 100644 --- a/map/framework.cpp +++ b/map/framework.cpp @@ -569,6 +569,56 @@ void Framework::FillPointInfoForBookmark(Bookmark const & bmk, place_page::Info }); } +void Framework::FillUserMarkInfo(UserMark const * mark, place_page::Info & outInfo) +{ + outInfo.SetSelectedObject(df::SelectionShape::OBJECT_USER_MARK); + + switch (mark->GetMarkType()) + { + case UserMark::Type::API: + FillApiMarkInfo(*static_cast(mark), outInfo); + break; + case UserMark::Type::BOOKMARK: + FillBookmarkInfo(*static_cast(mark), outInfo); + break; + case UserMark::Type::SEARCH: + FillSearchResultInfo(*static_cast(mark), outInfo); + break; + case UserMark::Type::ROUTING: + FillRouteMarkInfo(*static_cast(mark), outInfo); + break; + case UserMark::Type::ROAD_WARNING: + FillRoadTypeMarkInfo(*static_cast(mark), outInfo); + break; + case UserMark::Type::TRACK_INFO: + { + auto const & infoMark = *static_cast(mark); + BuildTrackPlacePage(GetBookmarkManager().GetTrackSelectionInfo(infoMark.GetTrackId()), outInfo); + return; + } + case UserMark::Type::TRACK_SELECTION: + { + auto const & selMark = *static_cast(mark); + BuildTrackPlacePage(GetBookmarkManager().GetTrackSelectionInfo(selMark.GetTrackId()), outInfo); + return; + } + case UserMark::Type::TRANSIT: + { + FillTransitMarkInfo(*static_cast(mark), outInfo); + break; + } + case UserMark::Type::SPEED_CAM: + { + FillSpeedCameraMarkInfo(*static_cast(mark), outInfo); + break; + } + default: + CHECK(false, ("Unexpected user mark type", mark->GetMarkType())); + } + + SetPlacePageLocation(outInfo); +} + void Framework::FillBookmarkInfo(Bookmark const & bmk, place_page::Info & info) const { info.SetBookmarkCategoryName(GetBookmarkManager().GetCategoryName(bmk.GetGroupId())); @@ -795,7 +845,7 @@ void Framework::ShowBookmark(kml::MarkId id) { auto const * mark = m_bmManager->GetBookmark(id); if (mark) - ShowBookmark(mark); + ShowBookmark(mark); else ASSERT(false, ("ShowBookmark was called with invalid id", id)); } @@ -2122,56 +2172,20 @@ place_page::Info Framework::BuildPlacePageInfo(place_page::BuildInfo const & bui if (buildInfo.IsUserMarkMatchingEnabled()) { - UserMark const * mark = FindUserMarkInTapPosition(buildInfo); - if (mark != nullptr) + UserMark const * mark = nullptr; + if (buildInfo.m_userMarkId != kml::kInvalidMarkId) { - outInfo.SetSelectedObject(df::SelectionShape::OBJECT_USER_MARK); - switch (mark->GetMarkType()) - { - case UserMark::Type::API: - FillApiMarkInfo(*static_cast(mark), outInfo); - break; - case UserMark::Type::BOOKMARK: - FillBookmarkInfo(*static_cast(mark), outInfo); - break; - case UserMark::Type::SEARCH: - FillSearchResultInfo(*static_cast(mark), outInfo); - break; - case UserMark::Type::ROUTING: - FillRouteMarkInfo(*static_cast(mark), outInfo); - break; - case UserMark::Type::ROAD_WARNING: - FillRoadTypeMarkInfo(*static_cast(mark), outInfo); - break; - case UserMark::Type::TRACK_INFO: - { - auto const & infoMark = *static_cast(mark); - BuildTrackPlacePage(GetBookmarkManager().GetTrackSelectionInfo(infoMark.GetTrackId()), - outInfo); - return outInfo; - } - case UserMark::Type::TRACK_SELECTION: - { - auto const & selMark = *static_cast(mark); - BuildTrackPlacePage(GetBookmarkManager().GetTrackSelectionInfo(selMark.GetTrackId()), - outInfo); - return outInfo; - } - case UserMark::Type::TRANSIT: - { - FillTransitMarkInfo(*static_cast(mark), outInfo); - break; - } - case UserMark::Type::SPEED_CAM: - { - FillSpeedCameraMarkInfo(*static_cast(mark), outInfo); - break; - } - default: - CHECK(false, ("Unexpected user mark type", mark->GetMarkType())); - } + auto const & bm = GetBookmarkManager(); + mark = bm.IsBookmark(buildInfo.m_userMarkId) ? bm.GetBookmark(buildInfo.m_userMarkId) : bm.GetUserMark(buildInfo.m_userMarkId); + ASSERT(mark, ("There is no user mark with id", buildInfo.m_userMarkId)); + } - SetPlacePageLocation(outInfo); + if (!mark) + mark = FindUserMarkInTapPosition(buildInfo); + + if (mark) + { + FillUserMarkInfo(mark, outInfo); return outInfo; } } @@ -2221,16 +2235,23 @@ place_page::Info Framework::BuildPlacePageInfo(place_page::BuildInfo const & bui // Selection circle should match feature FillFeatureInfo(selectedFeature, outInfo); - if (buildInfo.IsUserMarkMatchingEnabled() && !outInfo.IsBookmark() && !isBuildingSelected) - { - // Search for a bookmark at POI position instead of tap position - auto mark = FindBookMarkInPosition(outInfo.GetMercator()); - if (mark) - FillBookmarkInfo(*static_cast(mark), outInfo); - } - if (isBuildingSelected) - outInfo.SetMercator(buildInfo.m_mercator); // Move selection circle to tap position inside a building. + outInfo.SetMercator(buildInfo.m_mercator); // Move selection circle to the tap position inside a building. + else if (buildInfo.IsUserMarkMatchingEnabled() && !outInfo.IsBookmark()) + { + // Search for a user mark at POI position instead of tap position (an icon or text label was tapped). + double constexpr kEps = 1e-7; + auto const rect = df::TapInfo::GetPreciseTapRect(outInfo.GetMercator(), kEps); + UserMark const * mark = GetBookmarkManager().FindNearestUserMark( + [&rect](UserMark::Type) { return rect; }, + [](UserMark::Type) { return true; }); + if (mark) + { + FillUserMarkInfo(mark, outInfo); + SetPlacePageLocation(outInfo); + return outInfo; + } + } } else { @@ -2278,16 +2299,7 @@ Track::TrackSelectionInfo Framework::FindTrackInTapPosition(place_page::BuildInf UserMark const * Framework::FindUserMarkInTapPosition(place_page::BuildInfo const & buildInfo) const { - auto const & bm = GetBookmarkManager(); - if (buildInfo.m_userMarkId != kml::kInvalidMarkId) - { - auto mark = bm.IsBookmark(buildInfo.m_userMarkId) ? bm.GetBookmark(buildInfo.m_userMarkId) - : bm.GetUserMark(buildInfo.m_userMarkId); - if (mark != nullptr) - return mark; - } - - UserMark const * mark = bm.FindNearestUserMark( + UserMark const * mark = GetBookmarkManager().FindNearestUserMark( [this, &buildInfo](UserMark::Type type) { double constexpr kEps = 1e-7; @@ -2309,26 +2321,6 @@ UserMark const * Framework::FindUserMarkInTapPosition(place_page::BuildInfo cons return mark; } -UserMark const * Framework::FindBookMarkInPosition(m2::PointD const & mercator) const -{ - auto const & bm = GetBookmarkManager(); - - UserMark const * mark = bm.FindNearestUserMark( - [this, &mercator](UserMark::Type type) - { - if (type == UserMark::Type::BOOKMARK || type == UserMark::Type::TRACK_INFO) - return df::TapInfo::GetBookmarkTapRect(mercator, m_currentModelView); - - if (type == UserMark::Type::ROUTING || type == UserMark::Type::ROAD_WARNING) - return df::TapInfo::GetRoutingPointTapRect(mercator, m_currentModelView); - - return df::TapInfo::GetDefaultTapRect(mercator, m_currentModelView); - }, - [](UserMark::Type type) { return true; }); - - return mark; -} - void Framework::PredictLocation(double & lat, double & lon, double accuracy, double bearing, double speed, double elapsedSeconds) { diff --git a/map/framework.hpp b/map/framework.hpp index 42b15ee202..53ef163860 100644 --- a/map/framework.hpp +++ b/map/framework.hpp @@ -362,7 +362,6 @@ private: void BuildTrackPlacePage(Track::TrackSelectionInfo const & trackSelectionInfo, place_page::Info & info); Track::TrackSelectionInfo FindTrackInTapPosition(place_page::BuildInfo const & buildInfo) const; UserMark const * FindUserMarkInTapPosition(place_page::BuildInfo const & buildInfo) const; - UserMark const * FindBookMarkInPosition(m2::PointD const & mercator) const; FeatureID FindBuildingAtPoint(m2::PointD const & mercator) const; void UpdateMinBuildingsTapZoom(); @@ -610,6 +609,8 @@ private: void FillPostcodeInfo(std::string const & postcode, m2::PointD const & mercator, place_page::Info & info) const; + void FillUserMarkInfo(UserMark const * mark, place_page::Info & outInfo); + void FillInfoFromFeatureType(FeatureType & ft, place_page::Info & info) const; void FillApiMarkInfo(ApiMarkPoint const & api, place_page::Info & info) const; void FillSearchResultInfo(SearchMarkPoint const & smp, place_page::Info & info) const; -- 2.45.3 From dc4be12e06c5f567a986778f201d5b90c7fcbe80 Mon Sep 17 00:00:00 2001 From: Viktor Govako Date: Fri, 23 Aug 2024 21:04:23 -0300 Subject: [PATCH 5/9] [search] Process area highways for address matching. Signed-off-by: Viktor Govako --- data/osm_test_data/addr_area_street.osm | 551 ++++++++++++++++++ .../generator_tests/raw_generator_test.cpp | 2 + search/reverse_geocoder.cpp | 7 +- search/street_vicinity_loader.cpp | 18 +- search/street_vicinity_loader.hpp | 8 +- 5 files changed, 568 insertions(+), 18 deletions(-) create mode 100644 data/osm_test_data/addr_area_street.osm diff --git a/data/osm_test_data/addr_area_street.osm b/data/osm_test_data/addr_area_street.osm new file mode 100644 index 0000000000..95cf5ae4ed --- /dev/null +++ b/data/osm_test_data/addr_area_street.osm @@ -0,0 +1,551 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/generator/generator_tests/raw_generator_test.cpp b/generator/generator_tests/raw_generator_test.cpp index 81ca9632e8..8406528291 100644 --- a/generator/generator_tests/raw_generator_test.cpp +++ b/generator/generator_tests/raw_generator_test.cpp @@ -1126,6 +1126,7 @@ UNIT_CLASS_TEST(TestRawGenerator, CycleBarrier) TEST_EQUAL(carAcc, bicycleAcc, ()); } +// https://github.com/organicmaps/organicmaps/issues/9029 UNIT_CLASS_TEST(TestRawGenerator, Addr_Street_Place) { std::string const mwmName = "Address"; @@ -1140,6 +1141,7 @@ UNIT_CLASS_TEST(TestRawGenerator, Addr_Street_Place) { "./data/osm_test_data/addr_street_place.osm", 1, true, true }, { "./data/osm_test_data/addr_street_very_far.osm", 2, true, false }, { "./data/osm_test_data/zelenograd.osm", 1, false, true }, + { "./data/osm_test_data/addr_area_street.osm", 1, true, false }, }; for (auto const & data : arrFiles) diff --git a/search/reverse_geocoder.cpp b/search/reverse_geocoder.cpp index f26e886e93..0c55ce277a 100644 --- a/search/reverse_geocoder.cpp +++ b/search/reverse_geocoder.cpp @@ -4,6 +4,7 @@ #include "search/house_to_street_table.hpp" #include "search/mwm_context.hpp" #include "search/region_info_getter.hpp" +#include "search/street_vicinity_loader.hpp" #include "storage/country_info_getter.hpp" @@ -19,9 +20,8 @@ #include "base/stl_helpers.hpp" #include -#include #include -#include + namespace search { @@ -103,8 +103,7 @@ vector ReverseGeocoder::GetNearbyStreets( { return GetNearbyObjects(context, center, radiusM, [](FeatureType & ft) { - return ((ft.GetGeomType() == feature::GeomType::Line && ftypes::IsWayChecker::Instance()(ft)) || - ftypes::IsSquareChecker::Instance()(ft)); + return StreetVicinityLoader::IsStreet(ft); }); } diff --git a/search/street_vicinity_loader.cpp b/search/street_vicinity_loader.cpp index 4bac160db7..db3a0f0d24 100644 --- a/search/street_vicinity_loader.cpp +++ b/search/street_vicinity_loader.cpp @@ -41,17 +41,19 @@ StreetVicinityLoader::Street const & StreetVicinityLoader::GetStreet(uint32_t fe return r.first; } +bool StreetVicinityLoader::IsStreet(FeatureType & ft) +{ + auto const geomType = ft.GetGeomType(); + // Highway should be line or area. + bool const isLineOrArea = (geomType == feature::GeomType::Line || geomType == feature::GeomType::Area); + // Square also maybe a point (besides line or area). + return ((isLineOrArea && ftypes::IsWayChecker::Instance()(ft)) || ftypes::IsSquareChecker::Instance()(ft)); +} + void StreetVicinityLoader::LoadStreet(uint32_t featureId, Street & street) { auto feature = m_context->GetFeature(featureId); - if (!feature) - return; - - bool const isStreet = - (feature->GetGeomType() == feature::GeomType::Line && - ftypes::IsWayChecker::Instance()(*feature)) || - ftypes::IsSquareChecker::Instance()(*feature); - if (!isStreet) + if (!feature || !IsStreet(*feature)) return; /// @todo Can be optimized here. Do not aggregate rect, but aggregate covering intervals for each segment, instead. diff --git a/search/street_vicinity_loader.hpp b/search/street_vicinity_loader.hpp index d8ed41b00d..5c0a4e17ac 100644 --- a/search/street_vicinity_loader.hpp +++ b/search/street_vicinity_loader.hpp @@ -1,18 +1,12 @@ #pragma once #include "search/mwm_context.hpp" -//#include "search/projection_on_street.hpp" #include "search/stats_cache.hpp" -//#include "indexer/feature.hpp" -//#include "indexer/feature_algo.hpp" - #include "geometry/rect2d.hpp" #include "base/macros.hpp" -//#include -#include #include namespace search @@ -25,6 +19,8 @@ class MwmContext; class StreetVicinityLoader { public: + static bool IsStreet(FeatureType & ft); + struct Street { inline bool IsEmpty() const { return m_rect.IsEmptyInterior(); } -- 2.45.3 From 7fbf3f204b2a854562f5329e0260c8ed75a2cb80 Mon Sep 17 00:00:00 2001 From: Enrique Garcia Date: Sat, 31 Aug 2024 22:22:04 +0200 Subject: [PATCH 6/9] Support navigation with the keyboard arrows Signed-off-by: Enrique Garcia --- qt/qt_common/helpers.hpp | 4 ++-- qt/qt_common/map_widget.cpp | 40 ++++++++++++++++++++++++++++++++----- qt/qt_common/map_widget.hpp | 9 +++++++++ 3 files changed, 46 insertions(+), 7 deletions(-) diff --git a/qt/qt_common/helpers.hpp b/qt/qt_common/helpers.hpp index 75cfb07f70..e56484227a 100644 --- a/qt/qt_common/helpers.hpp +++ b/qt/qt_common/helpers.hpp @@ -19,9 +19,9 @@ bool IsAltModifier(QMouseEvent const * const e); struct Hotkey { Hotkey() = default; - Hotkey(int key, char const * slot) : m_key(key), m_slot(slot) {} + Hotkey(QKeySequence const & key, char const * slot) : m_key(key), m_slot(slot) {} - int m_key = 0; + QKeySequence m_key = 0; char const * m_slot = nullptr; }; diff --git a/qt/qt_common/map_widget.cpp b/qt/qt_common/map_widget.cpp index cb6d854ce9..59102ca1ea 100644 --- a/qt/qt_common/map_widget.cpp +++ b/qt/qt_common/map_widget.cpp @@ -25,6 +25,12 @@ #include #include +// Fraction of the viewport for a move event +static constexpr float kViewportFractionRoughMove = 0.2; + +// Fraction of the viewport for a small move event +static constexpr float kViewportFractionSmoothMove = 0.1; + namespace qt::common { //#define ENABLE_AA_SWITCH @@ -61,12 +67,20 @@ void MapWidget::BindHotkeys(QWidget & parent) {Qt::Key_Equal, SLOT(ScalePlus())}, {Qt::Key_Plus, SLOT(ScalePlus())}, {Qt::Key_Minus, SLOT(ScaleMinus())}, - {static_cast(Qt::ALT) + static_cast(Qt::Key_Equal), SLOT(ScalePlusLight())}, - {static_cast(Qt::ALT) + static_cast(Qt::Key_Plus), SLOT(ScalePlusLight())}, - {static_cast(Qt::ALT) + static_cast(Qt::Key_Minus), SLOT(ScaleMinusLight())}, + {Qt::Key_Right, SLOT(MoveRight())}, + {Qt::Key_Left, SLOT(MoveLeft())}, + {Qt::Key_Up, SLOT(MoveUp())}, + {Qt::Key_Down, SLOT(MoveDown())}, + {Qt::ALT | Qt::Key_Equal, SLOT(ScalePlusLight())}, + {Qt::ALT | Qt::Key_Plus, SLOT(ScalePlusLight())}, + {Qt::ALT | Qt::Key_Minus, SLOT(ScaleMinusLight())}, + {Qt::ALT | Qt::Key_Right, SLOT(MoveRightSmooth())}, + {Qt::ALT | Qt::Key_Left, SLOT(MoveLeftSmooth())}, + {Qt::ALT | Qt::Key_Up, SLOT(MoveUpSmooth())}, + {Qt::ALT | Qt::Key_Down, SLOT(MoveDownSmooth())}, #ifdef ENABLE_AA_SWITCH - {static_cast(Qt::ALT) + static_cast(Qt::Key_A), SLOT(AntialiasingOn())}, - {static_cast(Qt::ALT) + static_cast(Qt::Key_S), SLOT(AntialiasingOff())}, + {Qt::ALT | Qt::Key_A, SLOT(AntialiasingOn())}, + {Qt::ALT | Qt::Key_S, SLOT(AntialiasingOff())}, #endif }; @@ -118,6 +132,22 @@ void MapWidget::ScalePlusLight() { m_framework.Scale(Framework::SCALE_MAG_LIGHT, void MapWidget::ScaleMinusLight() { m_framework.Scale(Framework::SCALE_MIN_LIGHT, true); } +void MapWidget::MoveRight() { m_framework.Move(-kViewportFractionRoughMove, 0, true); } + +void MapWidget::MoveRightSmooth() { m_framework.Move(-kViewportFractionSmoothMove, 0, true); } + +void MapWidget::MoveLeft() { m_framework.Move(kViewportFractionRoughMove, 0, true); } + +void MapWidget::MoveLeftSmooth() { m_framework.Move(kViewportFractionSmoothMove, 0, true); } + +void MapWidget::MoveUp() { m_framework.Move(0, -kViewportFractionRoughMove, true); } + +void MapWidget::MoveUpSmooth() { m_framework.Move(0, -kViewportFractionSmoothMove, true); } + +void MapWidget::MoveDown() { m_framework.Move(0, kViewportFractionRoughMove, true); } + +void MapWidget::MoveDownSmooth() { m_framework.Move(0, kViewportFractionSmoothMove, true); } + void MapWidget::AntialiasingOn() { auto engine = m_framework.GetDrapeEngine(); diff --git a/qt/qt_common/map_widget.hpp b/qt/qt_common/map_widget.hpp index 0de92a4709..01d4ee22ae 100644 --- a/qt/qt_common/map_widget.hpp +++ b/qt/qt_common/map_widget.hpp @@ -47,6 +47,15 @@ public slots: void ScaleMinus(); void ScalePlusLight(); void ScaleMinusLight(); + void MoveRight(); + void MoveRightSmooth(); + void MoveLeft(); + void MoveLeftSmooth(); + void MoveUp(); + void MoveUpSmooth(); + void MoveDown(); + void MoveDownSmooth(); + void ScaleChanged(int action); void SliderPressed(); -- 2.45.3 From ddcc401b535513b9c316726bbd91a4d7deece639 Mon Sep 17 00:00:00 2001 From: Xevi Date: Sun, 1 Sep 2024 21:20:34 +0200 Subject: [PATCH 7/9] Fix sarch and add some catalan translations --- data/categories.txt | 45 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 42 insertions(+), 3 deletions(-) diff --git a/data/categories.txt b/data/categories.txt index 60f7092427..d00eccdf53 100644 --- a/data/categories.txt +++ b/data/categories.txt @@ -78,6 +78,7 @@ ru:Где поесть|Поесть|Еда|кушать|покушать be:Дзе паесці|паесці|ежа bg:Места за хапване|ядене|храна ar:طعام|أمكان لتناول الطعام +ca:On menjar|Menjar cs:Kde se najíst|Jídlo da:Spisesteder|Mad nl:Waar iets gaan eten|Eten @@ -161,6 +162,7 @@ ru:5Транспорт be:5Транспарт bg:5Транспорт ar:مواصلات|مواصلات +ca:Transport cs:Doprava da:5Transport nl:5Transport @@ -193,7 +195,6 @@ el:Συγκοινωνία he:תחבורה sk:Doprava fa:حمل و مواصلات -ca:Transport # First keyword should match [category_fuel] definition in strings.txt! @category_fuel @@ -573,7 +574,7 @@ en:2RV Facilities|4Caravan|Vanlife|5Campervan|5Motorhome ar:منشآت للمنازل المتنقلة be:Для аўтадамоў|5Аўтадом|5Трэйлер|5Караван|Дом на колах bg:За RV -ca:Caravanes +ca:Caravanes|Autocaravana cs:Pro RV da:Til RV de:Einrichtungen für Wohnmobile|4Wohnmobile @@ -606,7 +607,6 @@ uk:Для автобудинків|5Автодім|5Автобудинок|5Тр vi:Đối với RV zh-Hans:房车设施 zh-Hant:露營車設施 -ca:Autocaravana amenity-atm|@category_atm en:money|U+1F3E7|U+1F4B2|U+1F4B3|U+1F4B4|U+1F4B5|U+1F4B6|U+1F4B7 @@ -1080,6 +1080,7 @@ ru:3Булочная|3пекарня|Торт|3Торты|Пирожные be:3Булачная|3Пякарня|Торт|3Тарты bg:3Пекарна ar:مخبز|متجر +ca:Fleca cs:3Pekárna|Pekařství da:3Bager|bageri nl:3Bakkerij|Bakker|Gebak|Taart|3Taarten @@ -1126,6 +1127,7 @@ ru:4Косметика be:4Касметыка bg:4Козметика ar:مستحضرات تجميل|تجميل +ca:Cosmetics cs:4Kosmetika da:4Kosmetik fi:4Kosmetiikka|kauneudenhoito @@ -1238,6 +1240,7 @@ zh-Hant:熟食店 shop-farm|@category_food|@shop en:Farm food +ca:Granja|Agrobotiga de:4Hofladen|4Bauernhofladen et:Talutoit fr:4Produits fermiers|ferme @@ -1654,6 +1657,7 @@ ru:3Хозяйственный|Строительный|Стройтовары| ar:متجر عدد وأدوات|أدوات|عدة|متجر be:Гаспадарчы|Будаўнічы bg:НСС|строителни материали +ca:Ferreteria cs:Železářství da:Isenkræmmer|Byggemarked fi:Rautakauppa|Työkalukauppa @@ -1733,6 +1737,7 @@ en-US:4Jewelry ru:4Ювелирный|бижутерия bg:4Бижутерия|скъпоценни камъни ar:مجوهرات +ca:Joieria cs:Klenotnictví da:Smykkebutik|smykker|4juveler fi:Korukauppa @@ -2298,6 +2303,7 @@ el:Αγορά|αγορά|κατάστημα sk:3Trhovisko|samoobsluha sw:Soko fa:بازار +ca:Mercat amenity-money_transfer en:Money Transfer @@ -2344,6 +2350,7 @@ en:3Clothes|U+1F45A|U+1F457|U+1F456|U+1F455|clothing|wear ru:3Одежда|одежды bg:3Дрехи|магазин за дрехи ar:متجر ملابس|ملابس|متجر +ca:Botiga de roba|Roba cs:Oblečení da:Tøjbutik|tøjforretning|tøj nl:Kledingwinkel|4kleding @@ -2388,6 +2395,7 @@ hi:4कैंपर डीलर ru:Автодом|Продажа автодомов tr:Karavan galerisi uk:Продаж автобудинків +ca:Venda de caravanas|Venda de autocaravanas|Venda de motorhomes shop-car|@shop en:3Car Dealership|Auto Dealer|U+1F697|U+1F698|U+1F699 @@ -2397,6 +2405,7 @@ be:4Аўтасалон|Машыны ru:4Автосалон|Машины bg:Майстор|автомонтьор|автосалон ar:متجر سيارات|متجر +ca:Venda de cotxes|Concesionari cs:Obchod s auty da:Bilforhandler nl:Autohandelaar @@ -2436,6 +2445,7 @@ ru:4Веломагазин|велосипеды ar:متجر دراجات|متجر be:Веламагазін|Веласіпеды bg:4Веломагазин|велосипед|колело +ca:Botiga de bicicletes|4bicicleta|bici cs:3Cyklistický obchod|jízdní kolo|3kolo da:3Cykelforretning|cykelhandler|cykler fi:3Polkupyöräliike @@ -2475,6 +2485,7 @@ ru:3Киоск ar:كشك|متجر be:Кіеск|Шапік bg:3Киоск +ca:Quiosc cs:3Kiosk da:3Kiosk|pølsevogn nl:3Kiosk @@ -2510,6 +2521,7 @@ en:2Bus Stop|bus|stop|U+1F68C|U+1F68F|U+1F68E|U+1F690 ru:4Остановка|5автобус|4троллейбус bg:4автобусна спирка|4спирка|тролейбус ar:موقف حافلة|باص|حافلة|مواصلات|مواصلات +ca:Parada d'autobús|Parada cs:4Autobusová zastávka|autobus|2bus|4zastávka|stanice da:3Busstoppested|bus nl:3Bushalte|bus|halte @@ -2548,6 +2560,7 @@ en:3Tram Stop|tram|stop|U+1F683 ru:4Остановка|4трамвай bg:4трамвайна спирка|4спирка ar:موقف ترام|مواصلات|مواصلات +ca:Parada de tramvia|Parada cs:4Tramvajová zastávka|tramvaj|4zastávka|stanice da:3Sporvogn|station nl:3Tramhalte @@ -4845,6 +4858,7 @@ en:4College|U+1F3EB ru:4Колледж bg:4Колеж ar:كلية +ca:Col·legi cs:Vysoká škola da:Universitet|4college|gymnasium nl:Hogeschool|hoger beroepsonderwijs|hbo @@ -6455,6 +6469,7 @@ ru:4Укрытие|навес|4убежище be:4Прытулак bg:4Подслон|Убежище|4заслон ar:ملجأ +ca:Refugi cs:Přístřešek|úkryt da:Shelter|læskur|hytte nl:Beschutting @@ -6534,6 +6549,7 @@ en:3Lean-to Shelter|4Shelter|Refuge be:Бівальны навес bg:Подслон за бивак ar:ملجأ +ca:Refugi cs:Přístřešek|úkryt da:Shelter|læskur|hytte nl:Beschutting @@ -6614,6 +6630,7 @@ en:2Phone|U+260E|U+1F4DE|5Telephone ru:3Телефон|4таксофон bg:3Телефон|мобифон|обаждане ar:هاتف +ca:Telèfon cs:2Telefon|telefonní budka|telefonní automat da:2Telefon nl:2Telefoon|publieke telefoon @@ -7569,6 +7586,7 @@ en:Park|U+1F332|U+1F333|U+1F60C ru:Парк bg:Парк|отдих ar:حديقة +ca:Parc cs:Park da:Park nl:Park @@ -9398,6 +9416,7 @@ ru:3Питьевая вода be:3Пітная вада bg:3Питейна вода ar:مياه شرب +ca:3Aigua potable|Font d'aigua potable cs:4Pitná voda da:4Drikkevand nl:4Drinkwater @@ -9476,6 +9495,7 @@ ru:4Родник|ключ|источник be:4Крыніца bg:Извор ar:ينبوع +ca:Manantial cs:Pramen da:Kilde|kildevæld nl:Bron @@ -9515,6 +9535,7 @@ ru:4Колодец|скважина be:4Калодзеж|студня bg:5Кладенец ar:بئر ماء +ca:Pou cs:Studna da:Brønd nl:Waterbron @@ -10366,6 +10387,7 @@ en:4Carpenter ar:نجار be:Цясляр bg:4Дърводелство|дървар| +ca:Fuster cs:Truhlář da:Tømrer de:4Zimmermann @@ -10677,6 +10699,7 @@ en:5Metal Worker ar:عامل معادن be:5Металаканструкцыі bg:5Метални конструкции|металургия|ковач|метал|занаят +ca:Ferrer cs:Kovodílna da:5Metalarbejder de:4Schlosser @@ -10796,6 +10819,7 @@ en:House Painter|painter|decorator ar:رسام be:Мастак bg:Бояджия +ca:Pintor cs:Malíř da:Maler de:Maler @@ -10834,6 +10858,7 @@ en:4Photographer|photography Studio ar:مصور فوتوغرافي|استوديو تصوير be:Фатограф bg:4фотограф|албум|снимка|студио +ca:Fotògraf cs:4Fotograf|fotografické studio da:4Fotograf|studio de:4Fotograf|Fotostudio @@ -11333,6 +11358,7 @@ mr:दीपगृह man_made-survey_point en:4Survey Point|survey marker|survey benchmark|4geodetic mark|geodetic vertex|4triangulation station|4trigonometrical point|trig point|trig pillar|4trig station|trig beacon|trig be:4Геадэзічны пункт +ca:Punt geodèsic de:4Vermessungspunkt el:4Γεωδαιτικό σημείο et:4Vaatluspunkt|geodeetiline punkt|4trigonomeetriline punkt|triangulatsioonipunkt|trigopunkt|4triangulaator @@ -11429,6 +11455,7 @@ en:4Copyshop|copy shop|4printing|4photocopy ru:4Копировальный центр|4печать|полиграфия|ксерокс|принтер|копир bg:4Копирен център|4печат|полиграфия|принтер ar:محل نسخ|طباعة +ca:Copisteria cs:4Kopírovací obchod|4Tiskárny da:4Kopieringsbutik|4Trykkeri nl:4Copy shop|Kopieerwinkel|printer|4drukker @@ -12641,6 +12668,7 @@ mr:वर्तमानपत्र विक्रीयंत्र amenity-vending_machine-sweets en:4Sweets Dispenser|Sweets|4Candies|Lollies be:Аўтамат з прысмакамі|4прысмакі|4цукеркі +ca:Màquina expenedora de dolços de:Süßigkeitenautomat|Süßwaren|Süßigkeiten es:Máquina expendedora de dulces|Dulces|Chuches|Chucherías et:4Maiustuste automaat|Maiustused|4Kommid|Pulgakommid @@ -12733,6 +12761,7 @@ en:Garage ru:Гараж bg:Гараж ar:جراج +ca:Garatge cs:Garáž da:Garage nl:Garage @@ -12804,6 +12833,7 @@ zh-Hant:休息區 highway-services en:4Service Area|service station be:4Зона абслугоўвання +ca:Àrea de servei de:Raststätte es:Área de servicio et:Teenindusala @@ -13123,6 +13153,7 @@ en:3Car Parts|4Auto Parts ru:Автомобильные запчасти|4Автозапчасти|4запчасти bg:Автомобил|части|4авточасти ar:ﺓﺭﺎﻴﺴﻟﺍ ءﺍﺰﺟﺃ +ca:Peçes de cotxe cs:Autodíly da:Bildele nl:Auto onderdelen @@ -15981,6 +16012,7 @@ ar:محل مكملات غذائية be:Харчовыя дабаўкі bg:Хранителни добавки cs:Doplňky výživy +ca:Suplements nutricionals da:Kosttilskud de:Nahrungsergänzungsmittel el:Συμπληρώματα Διατροφής @@ -16019,6 +16051,7 @@ en:Paints ar:ﺕﺎﻧﺎﻫﺪﻟﺍ be:Фарбы bg:Бои +ca:Pintures cs:Barvy da:Maling de:Farben @@ -16058,6 +16091,7 @@ en:Perfumery ar:العطور be:Парфум|Парфумерыя bg:Парфюмерия +ca:Perfumería cs:Parfumerie da:Parfumeri de:4Parfümerie @@ -16097,6 +16131,7 @@ en:3Sewing Supplies|4Haberdashery ar:معدات الخياطة be:Швейныя прыналежнасці bg:Шивашки консумативи +ca:Material de costura|Mercería cs:Šicí potřeby da:Syudstyr de:Nähzubehör @@ -16175,6 +16210,7 @@ en:Tobacco ar:تبغ be:Тытунь bg:Тютюн +ca:Tabac cs:Tabák da:Tobak de:5Tabakwarengeschäft|Tabak|4Trafik @@ -16253,6 +16289,7 @@ en:Watches ar:ساعات be:Гадзіннік bg:Часовници +ca:Rellotger|Rellotgeria cs:Hodinky da:Ure de:Uhrengeschäft|Uhren @@ -16292,6 +16329,7 @@ en:Wholesale ar:متجر مواد بالجملة be:Аптовая bg:Магазин на едро +ca:Magatzem de roba al per major cs:Velkoobchodní prodejna da:Engros butik de:5Großhandelsgeschäft @@ -16328,6 +16366,7 @@ zh-Hant:批髮店 leisure-track en:Track +ca:Pista esportiva de:Laufbahn es:Pista deportiva et:Jooksurada -- 2.45.3 From 6776ad7251f151fe242625888f9efd0b142d37b7 Mon Sep 17 00:00:00 2001 From: Xevi Date: Mon, 2 Sep 2024 07:19:48 +0200 Subject: [PATCH 8/9] Order ca strings --- data/categories.txt | 60 ++++++++++++++++++++++++++++++--------------- 1 file changed, 40 insertions(+), 20 deletions(-) diff --git a/data/categories.txt b/data/categories.txt index d00eccdf53..cfd28ae3dc 100644 --- a/data/categories.txt +++ b/data/categories.txt @@ -203,6 +203,7 @@ ru:3бензин|3дизель|4топливо|газ be:3бензін|3дызель|4паліва|газ bg:Гориво|Бензиностанция ar:1وقود|بنزين|سولار|ديزل|وقود الحافلات +ca:Benzinera cs:2Čerpací stanice|Benzinová pumpa|benzinka da:Brændstof|Benzin nl:3Benzine @@ -236,7 +237,7 @@ he:גז sk:3Čerpacia stanica sw:Sheli fa:سوخت|بنزین|دیزل|گازوئیل -ca:Benzinera + # First keyword should match [category_parking] definition in strings.txt! @category_parking @@ -245,6 +246,7 @@ ru:4Парковка be:4Паркоўка bg:4Паркинг ar:موقف سيارات|مرافق ركن السيارات +ca:Aparcament cs:4Parkoviště da:4Parkering nl:4Parkeerplaats @@ -277,7 +279,7 @@ el:Χώρος στάθμευσης he:חניה sk:4Parkovisko fa:پارکینگ -ca:Aparcament + # First keyword should match [category_shopping] definition in strings.txt! @category_shopping @@ -286,6 +288,7 @@ ru:3Шоппинг|4Покупки ar:تسوق be:3Шопінг|4Закупы bg:3Шопинг +ca:Compres cs:Nákupy da:Indkøb de:4Shopping @@ -319,7 +322,7 @@ uk:3Шопінг vi:Đi mua sắm zh-Hans:购物 zh-Hant:購物 -ca:Compres + # First keyword should match [category_hotel] definition in strings.txt! @category_hotel @@ -328,6 +331,7 @@ ru:4Гостиница|отель|отели be:4Гатэль|гатэлі bg:Хотел|хотели ar:فندق|الفنادق +ca:Hotel|Hotels cs:Hotel|Hotely da:Hotel|Hoteller nl:Hotel|Hotels @@ -360,7 +364,7 @@ el:4Ξενοδοχείο|Διαμονή|Ξενοδοχεία he:מלון|בתי sk:Hotel|Hotely fa:هتل|هتل ها -ca:Hotel|Hotels + # First keyword should match [category_tourism] definition in strings.txt! @category_tourism @@ -369,6 +373,7 @@ ru:4Достопримечательности|3Туризм be:4Славутасці|4турызм bg:5Забележителности|4Туризъм ar:سياحة +ca:Turisme cs:Pamětihodnost da:5Seværdigheder|4Turisme|3sightseeing nl:5Bezienswaardigheden|4Toerisme @@ -401,7 +406,7 @@ el:4Αξιοθέατα he:נקודות עיניין sk:Pamätihodnosť fa:منظره|گردشگری -ca:Turisme + # First keyword should match [category_entertainment] definition in strings.txt! @category_entertainment @@ -410,6 +415,7 @@ ru:Развлечения be:Забавы bg:Развлечение ar:ترفيه وتسلية|تسلية +ca:Entreteniment cs:Zábava da:Underholdning nl:Uitgaan @@ -442,7 +448,7 @@ el:Ψυχαγωγία he:בידור sk:Zábava fa:سرگرمی -ca:Entreteniment + # First keyword should match [category_nightlife] definition in strings.txt! @category_nightlife @@ -451,6 +457,7 @@ ru:Ночная жизнь|С друзьями|Вечер с друзьями|п be:Начное жыццё|патусіць bg:Нощен живот|С приятели ar:أنشطة ترفيه ليلية +ca:Vida nocturna cs:Noční život da:Natteliv nl:Nachtleven @@ -483,7 +490,7 @@ el:Νυχτερινή Ζωή sk:Nočný život sw:Shughuli za usiku fa:تفریحات شبانه -ca:Vida nocturna + # First keyword should match [category_children] definition in strings.txt! @category_children @@ -492,6 +499,7 @@ ru:Отдых с детьми be:Сямейны адпачынак bg:Семейна почивка ar:عطلة عائلية +ca:Vacances familiars cs:Dovolená s dětmi da:Familieferie nl:Gezinsvakantie @@ -524,7 +532,7 @@ el:Οικογενειακές Διακοπές sk:Rodinná dovolenka sw:Mapumziko ya familia fa:تعطیلات خانوادگی -ca:Vacances familiars + # First keyword should match [category_atm] definition in strings.txt! @category_atm @@ -533,6 +541,7 @@ ru:3Банкомат be:3Банкамат bg:3Банкомат ar:ماكينة صرافة آلية|صراف|صراف آلي|صراف آلي +ca:Caixer automàtic cs:3Bankomat da:3Hæveautomat nl:3Geldautomaat @@ -566,7 +575,7 @@ he:כספומט sk:3Bankomat sw:Benki|fedha fa:خود پرداز -ca:Caixer automàtic + # First keyword should match [category_rv] definition in strings.txt! @category_rv @@ -613,6 +622,7 @@ en:money|U+1F3E7|U+1F4B2|U+1F4B3|U+1F4B4|U+1F4B5|U+1F4B6|U+1F4B7 ru:деньги bg:пари ar:ماكينة صراف آلي|الأموال|فلوس|صرافة آلية|نقود +ca:diners cs:spořitelna|peníze da:penge nl:geld @@ -643,7 +653,7 @@ zh-Hant:1atm|理財|錢|金錢 el:χρήματα sk:sporiteľna|peniaze fa:دستگاه خودپرداز -ca:diners + # First keyword should match [category_bank] definition in strings.txt! @category_bank @@ -652,6 +662,7 @@ ru:3Банк be:3Банк bg:3Банка ar:بنك +ca:Banc cs:3Banka da:3Bank nl:3Bank @@ -684,7 +695,7 @@ he:בנק sk:3Banka sw:Benki|fedha fa:بانک -ca:Banc + # First keyword should match [category_secondhand] definition in strings.txt! @category_secondhand @@ -732,6 +743,7 @@ en:money|U+1F3E6|U+1F4B0|U+1F4B2|U+1F4B3|U+1F4B4|U+1F4B5|U+1F4B6|U+1F4B7 ru:деньги bg:пари ar:بنك|الأموال|فلوس|نقود|مال +ca:diners cs:peníze da:3penge nl:geld @@ -761,7 +773,7 @@ zh-Hant:錢 el:χρήματα sk:peniaze fa:بانک -ca:diners + # First keyword should match [category_recycling] definition in strings.txt! @category_recycling @@ -770,6 +782,7 @@ ru:Переработка|5Переработка отходов|Утилиза be:Перапрацоўка|5Перапрацоўка адходаў|Утылізацыя адходаў|5Прыём другаснай сыравіны|5Здаць другсыравіну|Паасобны збор смецця|Сартаванне смецця|Паўторнае выкарыстанне|Утыль bg:Рециклиране|Преизползване|Разделно събиране|Сепаратор ar:إعادة تدوير|استغلال المخلفات|المواد القابلة لإعادة التدوير|جمع القمامة بشكل منفصل|فرز النفايات|إعادة الاستخدام +ca:Reciclatge|Reciclatge de residus|Eliminació de residus|Materials reciclables|Recollida selectiva d’escombraries|Classificació de residus|Reutilització cs:Recyklace|Využití odpadu|Recyklovatelné|Oddělený sběr odpadků|Třídění odpadu|Opětovné použití da:Genbrug|Affaldsudnyttelse|Genanvendelig|Separate dagrenovationer|Affaldssortering nl:Recycling|Afvalgebruik|Recyclebaar materiaal|Gescheiden afvalinzameling|Afval sorteren|Hergebruik @@ -801,13 +814,14 @@ sk:Recyklácia|Využitie odpadu|Recyklovateľné|Separovaný zber odpadu|Trieden zh-Hans:回收|废物利用|可回收物|垃圾分类收集|垃圾分类|再利用 zh-Hant:回收|廢物利用|可回收物|垃圾分類收集|垃圾分類|再利用 fa:بازیافت|مدیریت پسماند|مواد بازیافتنی|جمعآوری جداگانۀ زبالهها |تفکیک پسماند|بازمصرف -ca:Reciclatge|Reciclatge de residus|Eliminació de residus|Materials reciclables|Recollida selectiva d’escombraries|Classificació de residus|Reutilització + amenity-bureau_de_change en:3Currency Exchange|3exchange|money|U+1F4B1|U+1F4B2|U+1F4B4|U+1F4B5|U+1F4B6|U+1F4B7 ru:3Обмен валюты|обмен валют|обменник|4валюта|деньги bg:Чейндж бюро|пари|обмяна|валути ar:تحويل عملات|تغيير عملات|الصرف|الأموال|صرف عملات|صرف +ca:Canvi de divises|diners cs:3Směnárna|peníze da:3Vekselbureau|3penge nl:3Wisselkantoor|3geld wisselen|wisselen|geld @@ -838,13 +852,14 @@ zh-Hant:1匯率|理財|外幣|兌換|貨幣|換錢 el:Συνάλλαγμα|ανταλλακτήριο|χρήματα sk:3Zmenáreň|peniaze fa:صرافی -ca:Canvi de divises|diners + amenity-bar|amenity-pub|@category_eat|@category_nightlife en:2Bar|2pub|beer|drink|U+1F37A|U+1F37B|U+1F376|tavern|bars and pubs|brew pub|cocktail lounge ru:2Бар|2паб|пиво|выпить|пивной ресторан|пивбар|крафт|коктейль бар|пивная|коктейли|алкоголь|алкогольные напитки bg:2Бар|кръчма|бира|питие|напитка|таверна|коктейл|пиво|алкохол ar:بار|حانة|خمارة|بيرة|شراب +ca:Bar cs:2Bar|hospoda|pivo|pití|tekutiny da:2Bar|værtshus|kro|øl|pub|drink nl:2Bar|2pub|kroeg|bier|drinken @@ -877,13 +892,14 @@ el:Μπαρ|Παμπ|μπύρα|ποτό|φαγητό sk:2Bar|pohostinstvo|pivo|pitie|tekutiny sw:Baa|vinywaji fa:میکده|کاباره -ca:Bar + amenity-cafe|@category_eat en:3Cafe|3restaurant|U+2615|U+1F356|U+1F357|U+1F35A|U+1F35B|U+1F35C|U+1F35D|U+1F363|U+1F366|U+1F367|U+1F368|U+1F369|U+1F370|U+1F372|U+1F374|U+1F377|U+1F60B|U+1F375|coffee|cafeteria ru:3Кафе|3ресторан|кофейня|кофе bg:3Кафе|3ресторант|кафене ar:مقهى|مطعم|طعام|قهوة|كافتيريا +ca:Cafè|Cafeteria cs:3Kavárna|restaurace|hospoda da:3Café|restaurant nl:3Tearoom|3brasserie|3café|3restaurant @@ -916,13 +932,14 @@ el:Καφετέρια|εστιατόριο|φαγητό sk:3Kaviareň|reštaurácia|pohostinstvo sw:Mgahawa|hoteli|chakula fa:کافه|قهوه فروشی|قهوه خانه -ca:Cafè|Cafeteria + amenity-fast_food|@category_eat en:4Fast Food|3restaurant|3cafe|takeaway|U+1F354|U+1F355|U+1F35F|U+1F363|U+1F366|U+1F367|U+1F368|U+1F369|U+1F370|U+1F372|U+1F374|food to go|junk food ru:3Фастфуд|3ресторан|3кафе|закусочная|быстрое питание|снеки|перекусить|экспресс-питание bg:Бързо хранене|Фастфууд|кафе|храна|за вкъщи|ресторант|закусвалня ar:وجبات سريعة|مطعم|مقهى|وجبة جاهزة|طعام +ca:Menjar ràpid cs:2Rychlé občerstvení|4fastfood|kavárna|restaurace da:4Fastfood|restaurant|café|takeaway nl:4Fast food|3frituur|fritkot|3restaurant|afhaaleten @@ -954,13 +971,14 @@ zh-Hant:1速食店|麥當勞|肯德雞|漢堡王|頂呱呱|薯條|速食|用餐| el:Ταχυφαγίο|καφετέρια|φαγητό για το σπίτι|φαγητό sk:2Rýchle občerstvenie|4fastfood|3kaviareň|reštaurácia fa:فست فود|غذای حاضری -ca:Menjar ràpid + amenity-restaurant|@category_eat en:3Restaurant|3cafe|U+1F356|U+1F357|U+1F35A|U+1F35B|U+1F35C|U+1F35D|U+1F363|U+1F366|U+1F367|U+1F368|U+1F369|U+1F370|U+1F372|U+1F374|U+1F377|U+1F60B ru:3Ресторан|3кафе bg:3ресторант|3кафе ar:2مطعم|مقهى|طعام +ca:Restaurant cs:3Restaurace|hospoda|kavárna da:3Restaurant|café nl:3Restaurant|3café @@ -993,7 +1011,7 @@ el:Εστιατόριο|καφετέρια|φαγητό sk:3Reštaurácia|pohostinstvo|kaviareň sw:Hoteli|restorenti|mgahawa|chakula fa:رستوران -ca:Restaurant + amenity-fuel|@category_fuel en:Gas Station|Petrol Station|3Filling Station|U+26FD @@ -2274,6 +2292,7 @@ en:3Marketplace|market ru:3Рынок|базар bg:3Пазар ar:سوق|السوق|متجر +ca:Mercat cs:4Tržiště|samoobsluha|market da:3Markedsplads|marked nl:3Markt @@ -2303,7 +2322,7 @@ el:Αγορά|αγορά|κατάστημα sk:3Trhovisko|samoobsluha sw:Soko fa:بازار -ca:Mercat + amenity-money_transfer en:Money Transfer @@ -2387,6 +2406,7 @@ fa:لباس فروشی|بوتیک shop-caravan|@category_rv|@shop en:2RV dealership|4Caravan dealership|Motorhome dealership be:Аўтадом|Продаж аўтадамоў +ca:Venda de caravanas|Venda de autocaravanas|Venda de motorhomes de:5Wohnmobilhändler|5Wohnwagenhändler es:Venta de caravanas|Venta de autocaravanas|Venta de motorhomes et:Haagiselamute müük @@ -2395,7 +2415,7 @@ hi:4कैंपर डीलर ru:Автодом|Продажа автодомов tr:Karavan galerisi uk:Продаж автобудинків -ca:Venda de caravanas|Venda de autocaravanas|Venda de motorhomes + shop-car|@shop en:3Car Dealership|Auto Dealer|U+1F697|U+1F698|U+1F699 -- 2.45.3 From f5a21a6b1e5478b802942858d31679f586f349f5 Mon Sep 17 00:00:00 2001 From: Alexander Borsuk <170263+biodranik@users.noreply.github.com> Date: Mon, 2 Sep 2024 12:47:02 +0200 Subject: [PATCH 9/9] Apply suggestions from code review Signed-off-by: Alexander Borsuk <170263+biodranik@users.noreply.github.com> --- data/categories.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/data/categories.txt b/data/categories.txt index cfd28ae3dc..ad6583aa62 100644 --- a/data/categories.txt +++ b/data/categories.txt @@ -2323,7 +2323,6 @@ sk:3Trhovisko|samoobsluha sw:Soko fa:بازار - amenity-money_transfer en:Money Transfer ar:تحويل المال @@ -2416,7 +2415,6 @@ ru:Автодом|Продажа автодомов tr:Karavan galerisi uk:Продаж автобудинків - shop-car|@shop en:3Car Dealership|Auto Dealer|U+1F697|U+1F698|U+1F699 en-GB:3Car Dealership|Car showroom -- 2.45.3