From e2402439dcca46b6929473e38089ad363f132b7c Mon Sep 17 00:00:00 2001 From: Olga Khlopkova Date: Wed, 26 Aug 2020 16:38:45 +0300 Subject: [PATCH] [transit][world_feed] Replace translations dict with std::string. --- transit/experimental/transit_data.cpp | 14 ++-- .../transit_types_experimental.cpp | 22 +++---- .../transit_types_experimental.hpp | 29 ++++----- .../parse_transit_from_json_tests.cpp | 64 ++++--------------- .../transit_serdes_tests.cpp | 35 ++++------ transit/transit_tests/transit_tools.hpp | 13 ++-- transit/world_feed/subway_converter.cpp | 7 +- transit/world_feed/world_feed.cpp | 24 ++++--- transit/world_feed/world_feed.hpp | 8 +-- 9 files changed, 80 insertions(+), 136 deletions(-) diff --git a/transit/experimental/transit_data.cpp b/transit/experimental/transit_data.cpp index 8f6ec377a9..c83629df6b 100644 --- a/transit/experimental/transit_data.cpp +++ b/transit/experimental/transit_data.cpp @@ -285,7 +285,9 @@ std::tuple CalculateIds(base::Json const & obj, void Read(base::Json const & obj, std::vector & networks) { - networks.emplace_back(GetIdFromJson(obj.get()), GetTranslationsFromJson(obj.get(), "title")); + std::string title; + FromJSONObject(obj.get(), "title", title); + networks.emplace_back(GetIdFromJson(obj.get()), title); } void Read(base::Json const & obj, std::vector & routes) @@ -294,12 +296,12 @@ void Read(base::Json const & obj, std::vector & routes) TransitId networkId; std::string routeType; std::string color; - Translations title; + std::string title; FromJSONObject(obj.get(), "network_id", networkId); FromJSONObject(obj.get(), "color", color); FromJSONObject(obj.get(), "type", routeType); - title = GetTranslationsFromJson(obj.get(), "title"); + FromJSONObject(obj.get(), "title", title); routes.emplace_back(id, networkId, routeType, title, color); } @@ -310,7 +312,8 @@ void Read(base::Json const & obj, std::vector & lines) TransitId routeId; FromJSONObject(obj.get(), "route_id", routeId); ShapeLink const shapeLink = GetShapeLinkFromJson(obj.get()); - Translations const title = GetTranslationsFromJson(obj.get(), "title"); + std::string title; + FromJSONObject(obj.get(), "title", title); IdList const stopIds = GetIdListFromJson(obj.get(), "stops_ids"); @@ -353,7 +356,8 @@ void Read(base::Json const & obj, std::vector & stops, OsmIdToFeatureIdsMa { auto const & [osmId, featureId, id] = CalculateIds(obj, mapping); - Translations const title = GetTranslationsFromJson(obj.get(), "title"); + std::string title; + FromJSONObject(obj.get(), "title", title); TimeTable const timetable = GetTimeTableFromJson(obj.get()); m2::PointD const point = GetPointFromJson(base::GetJSONObligatoryField(obj.get(), "point")); IdList const & transferIds = GetIdListFromJson(obj.get(), "transfer_ids", false /* obligatory */); diff --git a/transit/experimental/transit_types_experimental.cpp b/transit/experimental/transit_types_experimental.cpp index 9e1223a205..e72c0d5af0 100644 --- a/transit/experimental/transit_types_experimental.cpp +++ b/transit/experimental/transit_types_experimental.cpp @@ -90,7 +90,7 @@ FeatureId IdBundle::GetFeatureId() const { return m_featureId; } bool IdBundle::SerializeFeatureIdOnly() const { return m_serializeFeatureIdOnly; } // Network ----------------------------------------------------------------------------------------- -Network::Network(TransitId id, Translations const & title) : m_id(id), m_title(title) {} +Network::Network(TransitId id, std::string const & title) : m_id(id), m_title(title) {} Network::Network(TransitId id) : m_id(id), m_title{} {} @@ -102,13 +102,11 @@ bool Network::IsValid() const { return m_id != kInvalidTransitId; } TransitId Network::GetId() const { return m_id; } -std::string const Network::GetTitle() const { return GetTranslation(m_title); } - -Translations const & Network::GetTitles() const { return m_title; } +std::string const & Network::GetTitle() const { return m_title; } // Route ------------------------------------------------------------------------------------------- Route::Route(TransitId id, TransitId networkId, std::string const & routeType, - Translations const & title, std::string const & color) + std::string const & title, std::string const & color) : m_id(id), m_networkId(networkId), m_routeType(routeType), m_title(title), m_color(color) { } @@ -124,9 +122,7 @@ bool Route::IsValid() const TransitId Route::GetId() const { return m_id; } -std::string const Route::GetTitle() const { return GetTranslation(m_title); } - -Translations const & Route::GetTitles() const { return m_title; } +std::string const & Route::GetTitle() const { return m_title; } std::string const & Route::GetType() const { return m_routeType; } @@ -135,7 +131,7 @@ std::string const & Route::GetColor() const { return m_color; } TransitId Route::GetNetworkId() const { return m_networkId; } // Line -------------------------------------------------------------------------------------------- -Line::Line(TransitId id, TransitId routeId, ShapeLink shapeLink, Translations const & title, +Line::Line(TransitId id, TransitId routeId, ShapeLink shapeLink, std::string const & title, IdList stopIds, std::vector const & intervals, osmoh::OpeningHours const & serviceDays) : m_id(id) @@ -160,9 +156,7 @@ bool Line::IsValid() const TransitId Line::GetId() const { return m_id; } -std::string Line::GetTitle() const { return GetTranslation(m_title); } - -Translations const & Line::GetTitles() const { return m_title; } +std::string const & Line::GetTitle() const { return m_title; } TransitId Line::GetRouteId() const { return m_routeId; } @@ -191,7 +185,7 @@ LineSegmentsOrder const & LineMetadata::GetLineSegmentsOrder() const { return m_ // Stop -------------------------------------------------------------------------------------------- Stop::Stop() : m_ids(true /* serializeFeatureIdOnly */) {} -Stop::Stop(TransitId id, FeatureId featureId, OsmId osmId, Translations const & title, +Stop::Stop(TransitId id, FeatureId featureId, OsmId osmId, std::string const & title, TimeTable const & timetable, m2::PointD const & point, IdList const & transferIds) : m_id(id) , m_ids(featureId, osmId, true /* serializeFeatureIdOnly */) @@ -233,7 +227,7 @@ FeatureId Stop::GetFeatureId() const { return m_ids.GetFeatureId(); } OsmId Stop::GetOsmId() const { return m_ids.GetOsmId(); } -std::string Stop::GetTitle() const { return GetTranslation(m_title); } +std::string const & Stop::GetTitle() const { return m_title; } TimeTable const & Stop::GetTimeTable() const { return m_timetable; } diff --git a/transit/experimental/transit_types_experimental.hpp b/transit/experimental/transit_types_experimental.hpp index 300904f026..452f4c6bdb 100644 --- a/transit/experimental/transit_types_experimental.hpp +++ b/transit/experimental/transit_types_experimental.hpp @@ -142,7 +142,7 @@ class Network { public: Network() = default; - Network(TransitId id, Translations const & title); + Network(TransitId id, std::string const & title); explicit Network(TransitId id); bool operator<(Network const & rhs) const; @@ -151,23 +151,22 @@ public: bool IsValid() const; TransitId GetId() const; - std::string const GetTitle() const; - Translations const & GetTitles() const; + std::string const & GetTitle() const; private: DECLARE_TRANSIT_TYPES_FRIENDS DECLARE_VISITOR_AND_DEBUG_PRINT(Network, visitor(m_id, "id"), visitor(m_title, "title")) TransitId m_id = kInvalidTransitId; - Translations m_title; + std::string m_title; }; class Route { public: Route() = default; - Route(TransitId id, TransitId networkId, std::string const & routeType, - Translations const & title, std::string const & color); + Route(TransitId id, TransitId networkId, std::string const & routeType, std::string const & title, + std::string const & color); bool operator<(Route const & rhs) const; bool operator==(Route const & rhs) const; @@ -175,8 +174,7 @@ public: bool IsValid() const; TransitId GetId() const; - std::string const GetTitle() const; - Translations const & GetTitles() const; + std::string const & GetTitle() const; std::string const & GetType() const; std::string const & GetColor() const; TransitId GetNetworkId() const; @@ -189,7 +187,7 @@ private: TransitId m_id = kInvalidTransitId; TransitId m_networkId = kInvalidTransitId; std::string m_routeType; - Translations m_title; + std::string m_title; std::string m_color; }; @@ -197,7 +195,7 @@ class Line { public: Line() = default; - Line(TransitId id, TransitId routeId, ShapeLink shapeLink, Translations const & title, + Line(TransitId id, TransitId routeId, ShapeLink shapeLink, std::string const & title, IdList stopIds, std::vector const & intervals, osmoh::OpeningHours const & serviceDays); @@ -207,8 +205,7 @@ public: bool IsValid() const; TransitId GetId() const; - std::string GetTitle() const; - Translations const & GetTitles() const; + std::string const & GetTitle() const; TransitId GetRouteId() const; ShapeLink const & GetShapeLink() const; IdList const & GetStopIds() const; @@ -224,7 +221,7 @@ private: TransitId m_id = kInvalidTransitId; TransitId m_routeId = kInvalidTransitId; ShapeLink m_shapeLink; - Translations m_title; + std::string m_title; IdList m_stopIds; std::vector m_intervals; osmoh::OpeningHours m_serviceDays; @@ -256,7 +253,7 @@ class Stop { public: Stop(); - Stop(TransitId id, FeatureId featureId, OsmId osmId, Translations const & title, + Stop(TransitId id, FeatureId featureId, OsmId osmId, std::string const & title, TimeTable const & timetable, m2::PointD const & point, IdList const & transferIds); explicit Stop(TransitId id); @@ -271,7 +268,7 @@ public: FeatureId GetId() const; FeatureId GetFeatureId() const; OsmId GetOsmId() const; - std::string GetTitle() const; + std::string const & GetTitle() const; TimeTable const & GetTimeTable() const; m2::PointD const & GetPoint() const; IdList const & GetTransferIds() const; @@ -288,7 +285,7 @@ private: // enter the gate. The segments may be invalid because of map date. If so there's no pedestrian // segment which can be used to reach the stop. std::vector m_bestPedestrianSegments; - Translations m_title; + std::string m_title; TimeTable m_timetable; m2::PointD m_point; IdList m_transferIds; diff --git a/transit/transit_experimental_tests/parse_transit_from_json_tests.cpp b/transit/transit_experimental_tests/parse_transit_from_json_tests.cpp index 7c764f7a19..96bc62cfcd 100644 --- a/transit/transit_experimental_tests/parse_transit_from_json_tests.cpp +++ b/transit/transit_experimental_tests/parse_transit_from_json_tests.cpp @@ -26,31 +26,16 @@ UNIT_TEST(ReadJson_Network) std::vector const lineByLineJson{ R"({ "id":4032061478, - "title":[ - { - "lang":"en", - "text":"Golden Gate Transit" - }, - { - "lang":"sp", - "text":"Tránsito Golden Gate" - } - ] + "title":"Tránsito Golden Gate" })", R"({ "id":4035419389, - "title":[ - { - "lang":"default", - "text":"Caltrain" - } - ] + "title":"Caltrain" })"}; std::vector const networksPlan = { - Network(4032061478 /* transitId */, Translations{{"en", "Golden Gate Transit"}, - {"sp", "Tránsito Golden Gate"}} /* title */), - Network(4035419389 /* transitId */, Translations{{"default", "Caltrain"}} /* title */)}; + Network(4032061478 /* transitId */, "Tránsito Golden Gate" /* title */), + Network(4035419389 /* transitId */, "Caltrain" /* title */)}; std::vector networksFact; @@ -66,36 +51,21 @@ UNIT_TEST(ReadJson_Route) "network_id":4036206862, "color":"pink_dark", "type":"rail", - "title":[ - { - "lang":"en", - "text":"Main Line" - }, - { - "lang":"sp", - "text":"Línea principal" - } - ] + "title":"Línea principal" })", R"({ "id":4027700598, "network_id":4027700597, "color":"blue", "type":"bus", - "title":[ - { - "lang":"default", - "text":"East Route" - } - ] + "title":"East Route" })"}; std::vector const routesPlan = { Route(4036206863 /* id */, 4036206862 /* networkId */, "rail" /* routeType */, - Translations{{"en", "Main Line"}, {"sp", "Línea principal"}} /* title */, - "pink_dark" /* color */), + "Línea principal" /* title */, "pink_dark" /* color */), Route(4027700598 /* id */, 4027700597 /* networkId */, "bus" /* routeType */, - Translations{{"default", "East Route"}} /* title */, "blue" /* color */)}; + "East Route" /* title */, "blue" /* color */)}; std::vector routesFact; @@ -114,12 +84,7 @@ UNIT_TEST(ReadJson_Line) "start_index":415, "end_index":1691 }, - "title":[ - { - "lang":"en", - "text":"Downtown" - } - ], + "title":"Downtown", "stops_ids":[ 4036592571, 4036592572, @@ -137,7 +102,7 @@ UNIT_TEST(ReadJson_Line) std::vector const linesPlan = { Line(4036591532 /* id */, 4036591423 /* routeId */, ShapeLink(4036591460 /* id */, 415 /* startIndex */, 1691 /* endIndex */), - Translations{{"en", "Downtown"}} /* title */, IdList{4036592571, 4036592572, 4036592573}, + "Downtown" /* title */, IdList{4036592571, 4036592572, 4036592573}, std::vector{LineInterval( 3600 /* headwayS */, osmoh::OpeningHours("06:40-18:40 open") /* timeIntervals */)} /* intervals */, @@ -188,12 +153,7 @@ UNIT_TEST(ReadJson_Stop) "x":-121.74124399999999, "y":41.042765953900343 }, - "title":[ - { - "lang":"default", - "text":"Balfour Rd & Foothill Dr" - } - ], + "title":"Balfour Rd & Foothill Dr", "timetable":[ { "line_id":4036591493, @@ -212,7 +172,7 @@ UNIT_TEST(ReadJson_Stop) std::vector const stopsPlan = { Stop(4036592706 /* id */, kInvalidFeatureId /* featureId */, kInvalidOsmId /* osmId */, - Translations{{"default", "Balfour Rd & Foothill Dr"}}, + "Balfour Rd & Foothill Dr", TimeTable{{4036591493, osmoh::OpeningHours("13:23-13:23 open")}, {4036591562, osmoh::OpeningHours("15:23-15:23 open")}}, m2::PointD(-121.74124, 41.04276), {4036593809, 4036595406} /* transferIds */)}; diff --git a/transit/transit_experimental_tests/transit_serdes_tests.cpp b/transit/transit_experimental_tests/transit_serdes_tests.cpp index 93bf754da9..005c635573 100644 --- a/transit/transit_experimental_tests/transit_serdes_tests.cpp +++ b/transit/transit_experimental_tests/transit_serdes_tests.cpp @@ -100,28 +100,21 @@ TransitData FillTestTransitData() { TransitData data; data.m_networks = { - Network(4032061671 /* transitId */, - Translations{{"ru", "ГУП МосГорТранс"}, {"en", "MosGorTrans"}} /* title */), - Network(4035419440 /* transitId */, - Translations{{"default", "EMPRESA DE TRANSPORTE DEL SUR SRL"}} /* title */), - Network(4035418196 /* transitId */, - Translations{{"default", "Buslink Sunraysia"}} /* title */)}; + Network(4032061671 /* transitId */, "ГУП МосГорТранс" /* title */), + Network(4035419440 /* transitId */, "EMPRESA DE TRANSPORTE DEL SUR SRL" /* title */), + Network(4035418196 /* transitId */, "Buslink Sunraysia" /* title */)}; - data.m_routes = { - Route(4036206872 /* id */, 4035419440 /* networkId */, "bus" /* routeType */, - Translations{{"default", "Echuca/Moama - Melbourne Via Shepparton"}} /* title */, - "gray" /* color */), - Route(4027700598 /* id */, 4035418196 /* networkId */, "ferry" /* routeType */, - Translations{{"default", "Mount Beauty - Melbourne Via Brigh"}} /* title */, - "purple" /* color */), - Route(4027700599 /* id */, 4032061671 /* networkId */, "ferry" /* routeType */, - Translations{{"ru", "Киевский вокзал - парк Зарядье"}} /* title */, - "purple" /* color */)}; + data.m_routes = {Route(4036206872 /* id */, 4035419440 /* networkId */, "bus" /* routeType */, + "Echuca/Moama - Melbourne Via Shepparton" /* title */, "gray" /* color */), + Route(4027700598 /* id */, 4035418196 /* networkId */, "ferry" /* routeType */, + "Mount Beauty - Melbourne Via Brigh" /* title */, "purple" /* color */), + Route(4027700599 /* id */, 4032061671 /* networkId */, "ferry" /* routeType */, + "Киевский вокзал - парк Зарядье" /* title */, "purple" /* color */)}; data.m_lines = { Line(4036598626 /* id */, 4036206872 /* routeId */, ShapeLink(4036591460 /* id */, 0 /* startIndex */, 2690 /* endIndex */), - Translations{{"default", "740G"}} /* title */, + "740G" /* title */, IdList{4036592571, 4036592572, 4036592573, 4036592574, 4036592575, 4036592576}, std::vector{LineInterval( 10060 /* headwayS */, @@ -132,7 +125,7 @@ TransitData FillTestTransitData() Line( 4036598627 /* id */, 4036206872 /* routeId */, ShapeLink(4036591461 /* id */, 356 /* startIndex */, 40690 /* endIndex */), - {} /* title */, + "" /* title */, IdList{4027013783, 4027013784, 4027013785, 4027013786, 4027013787, 4027013788, 4027013789, 4027013790, 4027013791, 4027013792, 4027013793, 4027013794, 4027013795, 4027013796, 4027013797, 4027013798, 4027013799, 4027013800, 4027013801}, @@ -154,15 +147,15 @@ TransitData FillTestTransitData() LineMetadata(4036598627 /* id */, LineSegmentsOrder{})}; data.m_stops = {Stop(4026990853 /* id */, kInvalidFeatureId /* featureId */, - kInvalidOsmId /* osmId */, Translations{{"en", "CARLOS DIHEL 2500-2598"}}, + kInvalidOsmId /* osmId */, "CARLOS DIHEL 2500-2598" /* title */, TimeTable{{4026763635, osmoh::OpeningHours("06:00-06:00 open")}, {4026636458, osmoh::OpeningHours("05:00-05:00 open")}, {4026636458, osmoh::OpeningHours("05:30-05:30 open")}, {4026952369, osmoh::OpeningHours("15:30-15:30 open")}}, m2::PointD(-58.57196, -36.82596), {} /* transferIds */), Stop(4026990854 /* id */, kInvalidFeatureId /* featureId */, - kInvalidOsmId /* osmId */, Translations{{"default", "QUIROGA 1901-1999"}}, - TimeTable{}, m2::PointD(-58.57196, -36.82967), {} /* transferIds */)}; + kInvalidOsmId /* osmId */, "QUIROGA 1901-1999" /* title */, TimeTable{}, + m2::PointD(-58.57196, -36.82967), {} /* transferIds */)}; data.SetStopPedestrianSegments( 0 /* stopIdx */, diff --git a/transit/transit_tests/transit_tools.hpp b/transit/transit_tests/transit_tools.hpp index 8185824ceb..34c60b67bb 100644 --- a/transit/transit_tests/transit_tools.hpp +++ b/transit/transit_tests/transit_tools.hpp @@ -38,22 +38,21 @@ inline bool Equal(SingleMwmSegment const & s1, SingleMwmSegment const & s2) inline bool Equal(Network const & n1, Network const & n2) { - return std::make_tuple(n1.GetId(), n1.GetTitles()) == std::make_tuple(n2.GetId(), n2.GetTitles()); + return std::make_tuple(n1.GetId(), n1.GetTitle()) == std::make_tuple(n2.GetId(), n2.GetTitle()); } inline bool Equal(Route const & r1, Route const & r2) { - return std::make_tuple(r1.GetId(), r1.GetNetworkId(), r1.GetType(), r1.GetTitles(), - r1.GetColor()) == std::make_tuple(r2.GetId(), r2.GetNetworkId(), - r2.GetType(), r2.GetTitles(), - r2.GetColor()); + return std::make_tuple(r1.GetId(), r1.GetNetworkId(), r1.GetType(), r1.GetTitle(), + r1.GetColor()) == + std::make_tuple(r2.GetId(), r2.GetNetworkId(), r2.GetType(), r2.GetTitle(), r2.GetColor()); } inline bool Equal(Line const & l1, Line const & l2) { - return std::make_tuple(l1.GetId(), l1.GetRouteId(), l1.GetTitles(), l1.GetStopIds(), + return std::make_tuple(l1.GetId(), l1.GetRouteId(), l1.GetTitle(), l1.GetStopIds(), l1.GetIntervals(), l1.GetServiceDays(), l1.GetShapeLink()) == - std::make_tuple(l2.GetId(), l2.GetRouteId(), l2.GetTitles(), l2.GetStopIds(), + std::make_tuple(l2.GetId(), l2.GetRouteId(), l2.GetTitle(), l2.GetStopIds(), l2.GetIntervals(), l2.GetServiceDays(), l2.GetShapeLink()); } diff --git a/transit/world_feed/subway_converter.cpp b/transit/world_feed/subway_converter.cpp index 0f4168639a..2cf41f0d1a 100644 --- a/transit/world_feed/subway_converter.cpp +++ b/transit/world_feed/subway_converter.cpp @@ -96,8 +96,7 @@ bool SubwayConverter::ConvertNetworks() TransitId const networkId = networkSubway.GetId(); CHECK(!routing::FakeFeatureIds::IsTransitFeature(networkId), (networkId)); - Translations const title{{kDefaultLang, networkSubway.GetTitle()}}; - m_feed.m_networks.m_data.emplace(networkId, title); + m_feed.m_networks.m_data.emplace(networkId, networkSubway.GetTitle()); } LOG(LINFO, @@ -128,7 +127,7 @@ std::pair SubwayConverter::MakeRoute( TransitId const routeId = m_feed.m_idGenerator.MakeId(routeHash); RouteData routeData; - routeData.m_title = {{kDefaultLang, routeTitle}}; + routeData.m_title = routeTitle; routeData.m_routeType = kSubwayRouteType; routeData.m_networkId = lineSubway.GetNetworkId(); routeData.m_color = lineSubway.GetColor(); @@ -180,7 +179,7 @@ std::pair SubwayConverter::MakeLine(routing::transit::Line LineData lineData; lineData.m_routeId = routeId; - lineData.m_title = {{kDefaultLang, lineSubway.GetTitle()}}; + lineData.m_title = lineSubway.GetTitle(); lineData.m_intervals = {LineInterval(lineSubway.GetInterval() /* headwayS */, osmoh::OpeningHours(kDefaultHours) /* timeIntervals */)}; lineData.m_serviceDays = osmoh::OpeningHours(kDefaultHours); diff --git a/transit/world_feed/world_feed.cpp b/transit/world_feed/world_feed.cpp index 8f771ba392..76eb96412c 100644 --- a/transit/world_feed/world_feed.cpp +++ b/transit/world_feed/world_feed.cpp @@ -377,11 +377,8 @@ bool WorldFeed::FillNetworks() m_agencySkipList.insert(agencyHash); } - Translations translation; - translation[m_feedLanguage] = agency.agency_name; - std::tie(std::ignore, inserted) = - m_networks.m_data.emplace(m_idGenerator.MakeId(agencyHash), translation); + m_networks.m_data.emplace(m_idGenerator.MakeId(agencyHash), agency.agency_name); CHECK(inserted, ()); } @@ -422,8 +419,7 @@ bool WorldFeed::FillRoutes() data.m_networkId = m_idGenerator.MakeId(agencyHash); data.m_color = m_colorPicker.GetNearestColor(route.route_color); data.m_routeType = routeType; - data.m_title[m_feedLanguage] = - route.route_long_name.empty() ? route.route_short_name : route.route_long_name; + data.m_title = route.route_long_name.empty() ? route.route_short_name : route.route_long_name; std::tie(std::ignore, inserted) = m_routes.m_data.emplace(m_idGenerator.MakeId(routeHash), data); @@ -514,7 +510,7 @@ bool WorldFeed::UpdateStop(TransitId stopId, gtfs::StopTime const & stopTime, StopData data; data.m_point = mercator::FromLatLon(stop->stop_lat, stop->stop_lon); - data.m_title[m_feedLanguage] = stop->stop_name; + data.m_title = stop->stop_name; data.m_gtfsParentId = stop->parent_station; data.UpdateTimetable(lineId, stopTime); it->second = data; @@ -651,7 +647,7 @@ bool WorldFeed::FillLinesAndShapes() TransitId const shapeId = m_idGenerator.MakeId(itShape->second); LineData data; - data.m_title[m_feedLanguage] = trip.trip_short_name; + data.m_title = trip.trip_short_name; data.m_routeId = m_idGenerator.MakeId(routeHash); data.m_shapeId = shapeId; data.m_gtfsTripId = trip.trip_id; @@ -1314,7 +1310,9 @@ bool WorldFeed::SetFeed(gtfs::Feed && feed) // The order of the calls is important. First we set default feed language. Then fill networks. // Then, based on network ids, we generate routes and so on. - SetFeedLanguage(); + // Code for setting default feed language is commented until we need to extract language name + // and save feed translations. + // SetFeedLanguage(); if (!FillNetworks()) { @@ -1387,7 +1385,7 @@ void Networks::Write(IdSet const & ids, std::ofstream & stream) const auto node = base::NewJSONObject(); ToJSONObject(*node, "id", networkId); - json_object_set_new(node.get(), "title", TranslationsToJson(networkTitle).release()); + ToJSONObject(*node, "title", networkTitle); WriteJson(node.get(), stream); } @@ -1403,7 +1401,7 @@ void Routes::Write(IdSet const & ids, std::ofstream & stream) const ToJSONObject(*node, "network_id", route.m_networkId); ToJSONObject(*node, "color", route.m_color); ToJSONObject(*node, "type", route.m_routeType); - json_object_set_new(node.get(), "title", TranslationsToJson(route.m_title).release()); + ToJSONObject(*node, "title", route.m_title); WriteJson(node.get(), stream); } @@ -1418,8 +1416,8 @@ void Lines::Write(std::unordered_map const & ids, std::ofstre ToJSONObject(*node, "id", lineId); ToJSONObject(*node, "route_id", line.m_routeId); json_object_set_new(node.get(), "shape", ShapeLinkToJson(line.m_shapeLink).release()); + ToJSONObject(*node, "title", line.m_title); - json_object_set_new(node.get(), "title", TranslationsToJson(line.m_title).release()); // Save only stop ids inside current region. json_object_set_new(node.get(), "stops_ids", IdListToJson(stopIds).release()); ToJSONObject(*node, "service_days", ToString(line.m_serviceDays)); @@ -1470,7 +1468,7 @@ void Stops::Write(IdSet const & ids, std::ofstream & stream) const ToJSONObject(*node, "osm_id", stop.m_osmId); json_object_set_new(node.get(), "point", PointToJson(stop.m_point).release()); - json_object_set_new(node.get(), "title", TranslationsToJson(stop.m_title).release()); + ToJSONObject(*node, "title", stop.m_title); auto timeTableArr = base::NewJSONArray(); diff --git a/transit/world_feed/world_feed.hpp b/transit/world_feed/world_feed.hpp index 9b8cd6dbd4..4e07b5106b 100644 --- a/transit/world_feed/world_feed.hpp +++ b/transit/world_feed/world_feed.hpp @@ -47,14 +47,14 @@ struct Networks void Write(IdSet const & ids, std::ofstream & stream) const; // Id to agency name mapping. - std::unordered_map m_data; + std::unordered_map m_data; }; struct RouteData { TransitId m_networkId = 0; std::string m_routeType; - Translations m_title; + std::string m_title; std::string m_color; }; @@ -69,7 +69,7 @@ struct LineData { TransitId m_routeId = 0; ShapeLink m_shapeLink; - Translations m_title; + std::string m_title; // Sequence of stops along the line from first to last. IdList m_stopIds; @@ -124,7 +124,7 @@ struct StopData void UpdateTimetable(TransitId lineId, gtfs::StopTime const & stopTime); m2::PointD m_point; - Translations m_title; + std::string m_title; // If arrival time at a specific stop for a specific trip on a route is not available, // |m_timetable| can be left empty. TimeTable m_timetable;