From: Tom Hughes Date: Mon, 6 May 2024 08:15:03 +0000 (+0100) Subject: Merge remote-tracking branch 'upstream/pull/4455' X-Git-Tag: live~990 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/b625eefdeb55822c7d4a4dafa6473c8ac537ef48?hp=1874e5b1a2bd15bf165093dbaa147d5a9d8f898d Merge remote-tracking branch 'upstream/pull/4455' --- diff --git a/Gemfile.lock b/Gemfile.lock index e0373c38a..e5b1148b2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -95,17 +95,17 @@ GEM autoprefixer-rails (10.4.16.0) execjs (~> 2) aws-eventstream (1.3.0) - aws-partitions (1.917.0) - aws-sdk-core (3.192.1) + aws-partitions (1.922.0) + aws-sdk-core (3.193.0) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.651.0) aws-sigv4 (~> 1.8) jmespath (~> 1, >= 1.6.1) - aws-sdk-kms (1.79.0) - aws-sdk-core (~> 3, >= 3.191.0) + aws-sdk-kms (1.80.0) + aws-sdk-core (~> 3, >= 3.193.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.147.0) - aws-sdk-core (~> 3, >= 3.192.0) + aws-sdk-s3 (1.148.0) + aws-sdk-core (~> 3, >= 3.193.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.8) aws-sigv4 (1.8.0) @@ -127,7 +127,7 @@ GEM debug_inspector (>= 1.2.0) bootsnap (1.18.3) msgpack (~> 1.2) - bootstrap (5.3.2) + bootstrap (5.3.3) autoprefixer-rails (>= 9.1.0) popper_js (>= 2.11.8, < 3) bootstrap_form (5.4.0) @@ -292,7 +292,7 @@ GEM irb (1.12.0) rdoc reline (>= 0.4.2) - jbuilder (2.11.5) + jbuilder (2.12.0) actionview (>= 5.0.0) activesupport (>= 5.0.0) jmespath (1.6.2) @@ -401,7 +401,7 @@ GEM omniauth (~> 2.0) openstreetmap-deadlock_retry (1.3.1) parallel (1.24.0) - parser (3.3.0.5) + parser (3.3.1.0) ast (~> 2.4.1) racc pg (1.5.6) @@ -475,7 +475,7 @@ GEM rdoc (6.6.3.1) psych (>= 4.0.0) regexp_parser (2.9.0) - reline (0.5.3) + reline (0.5.4) io-console (~> 0.5) request_store (1.6.0) rack (>= 1.4) @@ -485,7 +485,7 @@ GEM rouge (4.2.1) rtlcss (0.2.1) mini_racer (>= 0.6.3) - rubocop (1.63.3) + rubocop (1.63.4) json (~> 2.3) language_server-protocol (>= 3.17.0) parallel (~> 1.10) @@ -496,8 +496,8 @@ GEM rubocop-ast (>= 1.31.1, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 2.4.0, < 3.0) - rubocop-ast (1.31.2) - parser (>= 3.3.0.4) + rubocop-ast (1.31.3) + parser (>= 3.3.1.0) rubocop-capybara (2.20.0) rubocop (~> 1.41) rubocop-factory_bot (2.25.1) @@ -527,7 +527,7 @@ GEM google-protobuf (~> 3.23) rake (>= 13.0.0) secure_headers (6.5.0) - selenium-webdriver (4.19.0) + selenium-webdriver (4.20.1) base64 (~> 0.2) rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2, < 3.0) @@ -539,7 +539,7 @@ GEM simplecov-html (0.12.3) simplecov-lcov (0.8.0) simplecov_json_formatter (0.1.4) - simpleidn (0.2.1) + simpleidn (0.2.2) unf (~> 0.1.4) smart_properties (1.17.0) snaky_hash (2.0.1) diff --git a/app/assets/images/browse/education_nursery.p.16.png b/app/assets/images/browse/amenity_childcare.p.16.png similarity index 100% rename from app/assets/images/browse/education_nursery.p.16.png rename to app/assets/images/browse/amenity_childcare.p.16.png diff --git a/app/assets/images/browse/gate2.p.16.png b/app/assets/images/browse/gate2.p.16.png index adba236c8..459c7563c 100644 Binary files a/app/assets/images/browse/gate2.p.16.png and b/app/assets/images/browse/gate2.p.16.png differ diff --git a/app/assets/images/browse/level_crossing.p.16.png b/app/assets/images/browse/level_crossing.p.16.png index 64097e313..a91d7a7b1 100644 Binary files a/app/assets/images/browse/level_crossing.p.16.png and b/app/assets/images/browse/level_crossing.p.16.png differ diff --git a/app/assets/images/browse/amenity_embassy.16.png b/app/assets/images/browse/office_diplomatic.16.png similarity index 100% rename from app/assets/images/browse/amenity_embassy.16.png rename to app/assets/images/browse/office_diplomatic.16.png diff --git a/app/assets/images/browse/shop_estateagent2.p.16.png b/app/assets/images/browse/shop_estateagent.16.png similarity index 100% rename from app/assets/images/browse/shop_estateagent2.p.16.png rename to app/assets/images/browse/shop_estateagent.16.png diff --git a/app/assets/images/browse/shop_jewellery.16.png b/app/assets/images/browse/shop_jewelry.16.png similarity index 100% rename from app/assets/images/browse/shop_jewellery.16.png rename to app/assets/images/browse/shop_jewelry.16.png diff --git a/app/assets/images/browse/shop_fish.p.16.png b/app/assets/images/browse/shop_seafood.16.png similarity index 100% rename from app/assets/images/browse/shop_fish.p.16.png rename to app/assets/images/browse/shop_seafood.16.png diff --git a/app/assets/images/browse/tree.p.16.png b/app/assets/images/browse/tree.p.16.png index 3c17f03a4..e77bbca02 100644 Binary files a/app/assets/images/browse/tree.p.16.png and b/app/assets/images/browse/tree.p.16.png differ diff --git a/app/assets/javascripts/index/query.js b/app/assets/javascripts/index/query.js index 313bd1cc0..a7d228ff9 100644 --- a/app/assets/javascripts/index/query.js +++ b/app/assets/javascripts/index/query.js @@ -1,4 +1,3 @@ -//= require jquery-simulate/jquery.simulate //= require qs/dist/qs OSM.Query = function (map) { @@ -52,23 +51,8 @@ OSM.Query = function (map) { } $("#sidebar_content") - .on("mouseover", ".query-results li.query-result", showResultGeometry) - .on("mouseout", ".query-results li.query-result", hideResultGeometry) - .on("mousedown", ".query-results li.query-result", function () { - var moved = false; - $(this).one("click", function (e) { - if (!moved) { - var geometry = $(this).data("geometry"); - if (geometry) map.removeLayer(geometry); - - if (!$(e.target).is("a")) { - $(this).find("a").simulate("click", e); - } - } - }).one("mousemove", function () { - moved = true; - }); - }); + .on("mouseover", ".query-results a", showResultGeometry) + .on("mouseout", ".query-results a", hideResultGeometry); function interestingFeature(feature) { if (feature.tags) { @@ -216,13 +200,14 @@ OSM.Query = function (map) { if (interestingFeature(element)) { var $li = $("
  • ") - .addClass("query-result list-group-item list-group-item-action") - .data("geometry", featureGeometry(element)) + .addClass("list-group-item list-group-item-action") .text(featurePrefix(element) + " ") .appendTo($ul); $("") + .addClass("stretched-link") .attr("href", "/" + element.type + "/" + element.id) + .data("geometry", featureGeometry(element)) .text(featureName(element)) .appendTo($li); } @@ -230,14 +215,14 @@ OSM.Query = function (map) { if (results.remark) { $("
  • ") - .addClass("query-result list-group-item list-group-item-action") + .addClass("list-group-item") .text(I18n.t("javascripts.query.error", { server: url, error: results.remark })) .appendTo($ul); } if ($ul.find("li").length === 0) { $("
  • ") - .addClass("query-result list-group-item list-group-item-action") + .addClass("list-group-item") .text(I18n.t("javascripts.query.nothing_found")) .appendTo($ul); } @@ -246,7 +231,7 @@ OSM.Query = function (map) { $section.find(".loader").hide(); $("
  • ") - .addClass("query-result list-group-item list-group-item-action") + .addClass("list-group-item") .text(I18n.t("javascripts.query." + status, { server: url, error: error })) .appendTo($ul); } @@ -367,7 +352,7 @@ OSM.Query = function (map) { page.unload = function (sameController) { if (!sameController) { disableQueryMode(); - $("#sidebar_content .query-results li.query-result.selected").each(hideResultGeometry); + $("#sidebar_content .query-results a.selected").each(hideResultGeometry); } }; diff --git a/app/assets/javascripts/index/search.js b/app/assets/javascripts/index/search.js index 1c1da3677..d41fc7d53 100644 --- a/app/assets/javascripts/index/search.js +++ b/app/assets/javascripts/index/search.js @@ -1,4 +1,3 @@ -//= require jquery-simulate/jquery.simulate //= require qs/dist/qs OSM.Search = function (map) { @@ -44,17 +43,7 @@ OSM.Search = function (map) { .on("click", ".search_more a", clickSearchMore) .on("click", ".search_results_entry a.set_position", clickSearchResult) .on("mouseover", "li.search_results_entry:has(a.set_position)", showSearchResult) - .on("mouseout", "li.search_results_entry:has(a.set_position)", hideSearchResult) - .on("mousedown", "li.search_results_entry:has(a.set_position)", function () { - var moved = false; - $(this).one("click", function (e) { - if (!moved && !$(e.target).is("a")) { - $(this).find("a.set_position").simulate("click", e); - } - }).one("mousemove", function () { - moved = true; - }); - }); + .on("mouseout", "li.search_results_entry:has(a.set_position)", hideSearchResult); var markers = L.layerGroup().addTo(map); @@ -94,8 +83,6 @@ OSM.Search = function (map) { } markers.addLayer(marker); - - $(this).closest("li").addClass("selected"); } function hideSearchResult() { @@ -104,8 +91,6 @@ OSM.Search = function (map) { if (marker) { markers.removeLayer(marker); } - - $(this).closest("li").removeClass("selected"); } function panToSearchResult(data) { diff --git a/app/assets/javascripts/messages.js b/app/assets/javascripts/messages.js index eef06457b..0f5933eba 100644 --- a/app/assets/javascripts/messages.js +++ b/app/assets/javascripts/messages.js @@ -5,7 +5,7 @@ $(document).ready(function () { } }); - $(".messages-table .message-summary").on("turbo:before-morph-element", function (event) { + $(".messages-table tbody tr").on("turbo:before-morph-element", function (event) { if ($(event.target).find("[data-is-destroyed]").length > 0) { event.preventDefault(); // NB: prevent Turbo from morhping/removing this element $(event.target).fadeOut(800, "linear", function () { diff --git a/app/assets/stylesheets/browse.scss b/app/assets/stylesheets/browse.scss index 7c0fbd2c0..2dac602fe 100644 --- a/app/assets/stylesheets/browse.scss +++ b/app/assets/stylesheets/browse.scss @@ -1,192 +1,180 @@ -.browse-section { - - /* Make space for icons */ - - .node::before, - .way::before, - .relation::before { - display: inline-block; - width: 25px; - margin-left: -25px; - } - - .node, .way, .relation { - margin-left: 25px; - } +$map-sidebar-icons: ( /* Nodes (and ways as areas) */ - .aeroway.aerodrome::before { content: image-url('browse/aerodrome.p.16.png'); } - - .amenity.atm::before { content: image-url('browse/amenity_atm.16.png'); } - .amenity.bank::before { content: image-url('browse/amenity_bank.16.png'); } - .amenity.bar::before { content: image-url('browse/amenity_bar.16.png'); } - .amenity.bench::before { content: image-url('browse/amenity_bench.16.png'); } - .amenity.biergarten::before { content: image-url('browse/amenity_biergarten.16.png'); } - .amenity.bicycle_parking::before { content: image-url('browse/amenity_bicycle_parking.16.png'); } - .amenity.bicycle_rental::before { content: image-url('browse/transport_rental_bicycle.16.png'); } - .amenity.bus_station::before { content: image-url('browse/bus_station.n.16.png'); } - .amenity.cafe::before { content: image-url('browse/amenity_cafe.16.png'); } - .amenity.car_rental::before { content: image-url('browse/transport_rental_car.16.png'); } - .amenity.car_sharing::before { content: image-url('browse/car_share.p.16.png'); } - .amenity.cinema::before { content: image-url('browse/amenity_cinema.16.png'); } - .amenity.courthouse::before { content: image-url('browse/amenity_courthouse.16.png'); } - .amenity.dentist::before { content: image-url('browse/amenity_dentist.16.png'); } - .amenity.doctors::before { content: image-url('browse/amenity_doctors.16.png'); } - .amenity.drinking_water::before { content: image-url('browse/amenity_drinking_water.16.png'); } - .amenity.embassy::before { content: image-url('browse/amenity_embassy.16.png'); } - .amenity.fast_food::before { content: image-url('browse/amenity_fast_food.16.png'); } - .amenity.fire_station::before { content: image-url('browse/amenity_fire_station.16.png'); } - .amenity.fuel::before { content: image-url('browse/amenity_fuel.16.png'); } - .amenity.hospital::before { content: image-url('browse/amenity_hospital.16.png'); } - .amenity.library::before { content: image-url('browse/library.p.16.png'); } - .amenity.nursery::before { content: image-url('browse/education_nursery.p.16.png'); } - .amenity.nightclub::before { content: image-url('browse/amenity_nightclub.16.png'); } - .amenity.parking::before { content: image-url('browse/parking.p.16.png'); } - .amenity.pharmacy::before { content: image-url('browse/amenity_pharmacy.16.png'); } - .amenity.place_of_worship::before { content: image-url('browse/amenity_place_of_worship.16.png'); } - .amenity.police::before { content: image-url('browse/amenity_police.16.png'); } - .amenity.post_box::before { content: image-url('browse/post_box.p.16.png'); } - .amenity.post_office::before { content: image-url('browse/post_office.p.16.png'); } - .amenity.prison::before { content: image-url('browse/amenity_prison.16.png'); } - .amenity.pub::before { content: image-url('browse/amenity_pub.16.png'); } - .amenity.restaurant::before { content: image-url('browse/amenity_restaurant.16.png'); } - .amenity.recycling::before { content: image-url('browse/amenity_recycling.16.png'); } - .amenity.school::before { content: image-url('browse/education_school.p.16.png'); } - .amenity.shelter::before { content: image-url('browse/shelter2.p.16.png'); } - .amenity.taxi::before { content: image-url('browse/amenity_taxi.16.png'); } - .amenity.telephone::before { content: image-url('browse/telephone.p.16.png'); } - .amenity.theatre::before { content: image-url('browse/amenity_theatre.16.png'); } - .amenity.toilets::before { content: image-url('browse/amenity_toilets.16.png'); } - .amenity.townhall::before { content: image-url('browse/amenity_townhall.16.png'); } - .amenity.university::before { content: image-url('browse/education_university.p.16.png'); } - .amenity.veterinary::before { content: image-url('browse/health_veterinary.p.16.png'); } - .amenity.waste_basket::before { content: image-url('browse/amenity_waste_basket.16.png'); } - - .barrier.gate::before { content: image-url('browse/gate2.p.16.png'); } - - .highway.bus_stop::before { content: image-url('browse/highway_bus_stop.16.png'); } - .highway.mini_roundabout::before { content: image-url('browse/mini_round.p.16.png'); } - .highway.traffic_signals::before { content: image-url('browse/traffic_light.png'); } - .highway.turning_circle::before { content: image-url('browse/turning_circle.p.16.png'); } - - .historic.archaeological_site::before { content: image-url('browse/historic_archaeological_site.16.png'); } - .historic.castle::before { content: image-url('browse/tourist_castle.p.16.png'); } - .historic.memorial::before { content: image-url('browse/historic_memorial.16.png'); } - .historic.monument::before { content: image-url('browse/historic_monument.16.png'); } - .historic.ruins::before { content: image-url('browse/tourist_ruins.p.16.png'); } - .historic.wreck::before { content: image-url('browse/tourist_wreck.p.16.png'); } - - .man_made.lighthouse::before { content: image-url('browse/man_made_lighthouse.16.png'); } - .man_made.water_tower::before { content: image-url('browse/man_made_water_tower.16.png'); } - .man_made.windmill::before { content: image-url('browse/man_made_windmill.16.png'); } - - .natural.tree::before { content: image-url('browse/tree.p.16.png'); } - - .railway.halt::before { content: image-url('browse/halt.p.16.png'); } - .railway.station::before { content: image-url('browse/station.p.16.png'); } - .railway.level_crossing::before { content: image-url('browse/level_crossing.p.16.png'); } - - .shop::before { content: image-url('browse/shop_convenience.p.16.png'); } - .shop.alcohol::before { content: image-url('browse/shop_alcohol.16.png'); } - .shop.bakery::before { content: image-url('browse/shop_bakery.16.png'); } - .shop.bicycle::before { content: image-url('browse/shop_bicycle.16.png'); } - .shop.books::before { content: image-url('browse/shop_books.16.png'); } - .shop.butcher::before { content: image-url('browse/shop_butcher.p.16.png'); } - .shop.clothes::before { content: image-url('browse/shop_clothes.16.png'); } - .shop.car_parts::before { content: image-url('browse/shop_car_parts.16.png'); } - .shop.car_repair::before { content: image-url('browse/shop_car_repair.16.png'); } - .shop.convenience::before { content: image-url('browse/shop_convenience.p.16.png'); } - .shop.diy::before { content: image-url('browse/shop_doityourself.16.png'); } - .shop.electronics::before { content: image-url('browse/shop_electronics.16.png'); } - .shop.estate_agent::before { content: image-url('browse/shop_estateagent2.p.16.png'); } - .shop.fashion::before { content: image-url('browse/shop_clothes.16.png'); } - .shop.fish::before { content: image-url('browse/shop_fish.p.16.png'); } - .shop.florist::before { content: image-url('browse/shop_florist.16.png'); } - .shop.furniture::before { content: image-url('browse/shop_furniture.16.png'); } - .shop.garden_centre::before { content: image-url('browse/shop_florist.16.png'); } - .shop.gift::before { content: image-url('browse/shop_gift.16.png'); } - .shop.greengrocer::before { content: image-url('browse/shop_greengrocer.p.16.png'); } - .shop.hardware::before { content: image-url('browse/shop_doityourself.16.png'); } - .shop.hairdresser::before { content: image-url('browse/shop_hairdresser.16.png'); } - .shop.jewelry::before { content: image-url('browse/shop_jewellery.16.png'); } - .shop.jewellery::before { content: image-url('browse/shop_jewellery.16.png'); } - .shop.mobile_phone::before { content: image-url('browse/shop_mobile_phone.16.png'); } - .shop.optician::before { content: image-url('browse/shop_optician.16.png'); } - .shop.pet::before { content: image-url('browse/shop_pet.16.png'); } - .shop.shoes::before { content: image-url('browse/shop_shoes.16.png'); } - .shop.supermarket::before { content: image-url('browse/shop_supermarket.p.16.png'); } - - .tourism.alpine_hut::before { content: image-url('browse/tourism_alpine_hut.16.png'); } - .tourism.camp_site::before { content: image-url('browse/tourism_camp_site.16.png'); } - .tourism.caravan_site::before { content: image-url('browse/tourism_caravan_site.16.png'); } - .tourism.hostel::before { content: image-url('browse/tourism_hostel.16.png'); } - .tourism.hotel::before { content: image-url('browse/tourism_hotel.16.png'); } - .tourism.motel::before { content: image-url('browse/tourism_motel.16.png'); } - .tourism.museum::before { content: image-url('browse/tourism_museum.16.png'); } - .tourism.picnic_site::before { content: image-url('browse/tourism_picnic_site.16.png'); } - .tourism.viewpoint::before { content: image-url('browse/view_point.p.16.png'); } - .tourism.wilderness_hut::before { content: image-url('browse/tourism_wilderness_hut.16.png'); } + ".aeroway.aerodrome": ("filename": "aerodrome.p.16.png"), + + ".amenity.atm": ("filename": "amenity_atm.16.png", "invert": true), + ".amenity.bank": ("filename": "amenity_bank.16.png", "invert": true), + ".amenity.bar": ("filename": "amenity_bar.16.png", "invert": true), + ".amenity.bench": ("filename": "amenity_bench.16.png", "invert": true), + ".amenity.biergarten": ("filename": "amenity_biergarten.16.png", "invert": true), + ".amenity.bicycle_parking": ("filename": "amenity_bicycle_parking.16.png"), + ".amenity.bicycle_rental": ("filename": "transport_rental_bicycle.16.png"), + ".amenity.bus_station": ("filename": "bus_station.n.16.png"), + ".amenity.cafe": ("filename": "amenity_cafe.16.png", "invert": true), + ".amenity.car_rental": ("filename": "transport_rental_car.16.png"), + ".amenity.car_sharing": ("filename": "car_share.p.16.png"), + ".amenity.childcare": ("filename": "amenity_childcare.p.16.png"), + ".amenity.cinema": ("filename": "amenity_cinema.16.png", "invert": true), + ".amenity.courthouse": ("filename": "amenity_courthouse.16.png", "invert": true), + ".amenity.dentist": ("filename": "amenity_dentist.16.png"), + ".amenity.doctors": ("filename": "amenity_doctors.16.png"), + ".amenity.drinking_water": ("filename": "amenity_drinking_water.16.png", "invert": true), + ".amenity.fast_food": ("filename": "amenity_fast_food.16.png", "invert": true), + ".amenity.fire_station": ("filename": "amenity_fire_station.16.png", "invert": true), + ".amenity.fuel": ("filename": "amenity_fuel.16.png"), + ".amenity.hospital": ("filename": "amenity_hospital.16.png"), + ".amenity.kindergarten": ("filename": "amenity_childcare.p.16.png"), + ".amenity.library": ("filename": "library.p.16.png", "invert": true), + ".amenity.nightclub": ("filename": "amenity_nightclub.16.png", "invert": true), + ".amenity.parking": ("filename": "parking.p.16.png"), + ".amenity.pharmacy": ("filename": "amenity_pharmacy.16.png"), + ".amenity.place_of_worship": ("filename": "amenity_place_of_worship.16.png", "invert": true), + ".amenity.police": ("filename": "amenity_police.16.png", "invert": true), + ".amenity.post_box": ("filename": "post_box.p.16.png", "invert": true), + ".amenity.post_office": ("filename": "post_office.p.16.png", "invert": true), + ".amenity.prison": ("filename": "amenity_prison.16.png", "invert": true), + ".amenity.pub": ("filename": "amenity_pub.16.png", "invert": true), + ".amenity.restaurant": ("filename": "amenity_restaurant.16.png", "invert": true), + ".amenity.recycling": ("filename": "amenity_recycling.16.png", "invert": true), + ".amenity.school": ("filename": "education_school.p.16.png"), + ".amenity.shelter": ("filename": "shelter2.p.16.png"), + ".amenity.taxi": ("filename": "amenity_taxi.16.png"), + ".amenity.telephone": ("filename": "telephone.p.16.png", "invert": true), + ".amenity.theatre": ("filename": "amenity_theatre.16.png", "invert": true), + ".amenity.toilets": ("filename": "amenity_toilets.16.png", "invert": true), + ".amenity.townhall": ("filename": "amenity_townhall.16.png", "invert": true), + ".amenity.university": ("filename": "education_university.p.16.png"), + ".amenity.veterinary": ("filename": "health_veterinary.p.16.png"), + ".amenity.waste_basket": ("filename": "amenity_waste_basket.16.png", "invert": true), + + ".barrier.gate": ("filename": "gate2.p.16.png", "invert": true), + + ".highway.bus_stop": ("filename": "highway_bus_stop.16.png"), + ".highway.mini_roundabout": ("filename": "mini_round.p.16.png"), + ".highway.traffic_signals": ("filename": "traffic_light.png", "invert": true), + ".highway.turning_circle": ("filename": "turning_circle.p.16.png"), + + ".historic.archaeological_site": ("filename": "historic_archaeological_site.16.png", "invert": true), + ".historic.castle": ("filename": "tourist_castle.p.16.png", "invert": true), + ".historic.memorial": ("filename": "historic_memorial.16.png", "invert": true), + ".historic.monument": ("filename": "historic_monument.16.png", "invert": true), + ".historic.ruins": ("filename": "tourist_ruins.p.16.png", "invert": true), + ".historic.wreck": ("filename": "tourist_wreck.p.16.png", "invert": true), + + ".man_made.lighthouse": ("filename": "man_made_lighthouse.16.png"), + ".man_made.water_tower": ("filename": "man_made_water_tower.16.png", "invert": true), + ".man_made.windmill": ("filename": "man_made_windmill.16.png", "invert": true), + + ".natural.tree": ("filename": "tree.p.16.png"), + + ".office.diplomatic": ("filename": "office_diplomatic.16.png"), + ".office.estate_agent": ("filename": "shop_estateagent.16.png"), + + ".railway.halt": ("filename": "halt.p.16.png"), + ".railway.station": ("filename": "station.p.16.png"), + ".railway.level_crossing": ("filename": "level_crossing.p.16.png", "invert": true), + + ".shop": ("filename": "shop_convenience.p.16.png"), + ".shop.alcohol": ("filename": "shop_alcohol.16.png"), + ".shop.bakery": ("filename": "shop_bakery.16.png"), + ".shop.bicycle": ("filename": "shop_bicycle.16.png"), + ".shop.books": ("filename": "shop_books.16.png"), + ".shop.butcher": ("filename": "shop_butcher.p.16.png"), + ".shop.clothes": ("filename": "shop_clothes.16.png"), + ".shop.car_parts": ("filename": "shop_car_parts.16.png"), + ".shop.car_repair": ("filename": "shop_car_repair.16.png"), + ".shop.convenience": ("filename": "shop_convenience.p.16.png"), + ".shop.doityourself": ("filename": "shop_doityourself.16.png"), + ".shop.electronics": ("filename": "shop_electronics.16.png"), + ".shop.estate_agent": ("filename": "shop_estateagent.16.png"), + ".shop.fashion": ("filename": "shop_clothes.16.png"), + ".shop.florist": ("filename": "shop_florist.16.png"), + ".shop.furniture": ("filename": "shop_furniture.16.png"), + ".shop.garden_centre": ("filename": "shop_florist.16.png"), + ".shop.gift": ("filename": "shop_gift.16.png"), + ".shop.greengrocer": ("filename": "shop_greengrocer.p.16.png"), + ".shop.hardware": ("filename": "shop_doityourself.16.png"), + ".shop.hairdresser": ("filename": "shop_hairdresser.16.png"), + ".shop.jewelry": ("filename": "shop_jewelry.16.png"), + ".shop.mobile_phone": ("filename": "shop_mobile_phone.16.png"), + ".shop.optician": ("filename": "shop_optician.16.png"), + ".shop.pet": ("filename": "shop_pet.16.png"), + ".shop.seafood": ("filename": "shop_seafood.16.png"), + ".shop.shoes": ("filename": "shop_shoes.16.png"), + ".shop.supermarket": ("filename": "shop_supermarket.p.16.png"), + + ".tourism.alpine_hut": ("filename": "tourism_alpine_hut.16.png"), + ".tourism.camp_site": ("filename": "tourism_camp_site.16.png"), + ".tourism.caravan_site": ("filename": "tourism_caravan_site.16.png"), + ".tourism.hostel": ("filename": "tourism_hostel.16.png"), + ".tourism.hotel": ("filename": "tourism_hotel.16.png"), + ".tourism.motel": ("filename": "tourism_motel.16.png"), + ".tourism.museum": ("filename": "tourism_museum.16.png", "invert": true), + ".tourism.picnic_site": ("filename": "tourism_picnic_site.16.png", "invert": true), + ".tourism.viewpoint": ("filename": "view_point.p.16.png", "invert": true), + ".tourism.wilderness_hut": ("filename": "tourism_wilderness_hut.16.png"), /* Ways */ - .aeroway.runway::before { content: image-url('browse/runway.20.png'); } - .aeroway.taxiway::before { content: image-url('browse/taxiway.20.png'); } - - .barrier.wall::before { content: image-url('browse/wall.20.png'); } - - .building::before { content: image-url('browse/building.png'); } - - .highway.bridleway::before { content: image-url('browse/bridleway.20.png'); } - .highway.cycleway::before { content: image-url('browse/cycleway.20.png'); } - .highway.footway::before { content: image-url('browse/footway.20.png'); } - .highway.motorway::before { content: image-url('browse/motorway.20.png'); } - .highway.motorway_link::before { content: image-url('browse/motorway.20.png'); } - .highway.path::before { content: image-url('browse/path.20.png'); } - .highway.pedestrian::before { content: image-url('browse/service.20.png'); } - .highway.primary::before { content: image-url('browse/primary.20.png'); } - .highway.primary_link::before { content: image-url('browse/primary.20.png'); } - .highway.residential::before { content: image-url('browse/unclassified.20.png'); } - .highway.secondary::before { content: image-url('browse/secondary.20.png'); } - .highway.secondary_link::before { content: image-url('browse/secondary.20.png'); } - .highway.service::before { content: image-url('browse/service.20.png'); } - .highway.tertiary::before { content: image-url('browse/tertiary.20.png'); } - .highway.track::before { content: image-url('browse/track.20.png'); } - .highway.trunk::before { content: image-url('browse/trunk.20.png'); } - .highway.trunk_link::before { content: image-url('browse/trunk.20.png'); } - .highway.unclassified::before { content: image-url('browse/unclassified.20.png'); } - - .landuse.brownfield::before { content: image-url('browse/brownfield.png'); } - .landuse.cemetery::before { content: image-url('browse/cemetery.png'); } - .landuse.commercial::before { content: image-url('browse/commercial.png'); } - .landuse.farmland::before { content: image-url('browse/farmland.png'); } - .landuse.farmyard::before { content: image-url('browse/farmyard.png'); } - .landuse.forest::before { content: image-url('browse/forest.png'); } - .landuse.grass::before { content: image-url('browse/grass.png'); } - .landuse.industrial::before { content: image-url('browse/industrial.png'); } - .landuse.meadow::before { content: image-url('browse/meadow.png'); } - .landuse.military::before { content: image-url('browse/military.png'); } - .landuse.residential::before { content: image-url('browse/residential.png'); } - .landuse.retail::before { content: image-url('browse/retail.png'); } - .landuse.tourism::before { content: image-url('browse/tourism.png'); } - - .leisure.golf_course::before { content: image-url('browse/golf.png'); } - .leisure.park::before { content: image-url('browse/park.png'); } - .leisure.picnic_table::before { content: image-url('browse/tourism_picnic_site.16.png'); } - .leisure.playground::before { content: image-url('browse/leisure_playground.16.png'); } - .leisure.pitch::before { content: image-url('browse/pitch.png'); } - .leisure.nature_reserve::before { content: image-url('browse/reserve.png'); } - .leisure.water_park::before { content: image-url('browse/leisure_water_park.16.png'); } - - .natural.grassland::before { content: image-url('browse/grassland.png'); } - .natural.heath::before { content: image-url('browse/heathland.png'); } - .natural.scrub::before { content: image-url('browse/scrub.png'); } - .natural.water::before { content: image-url('browse/lake.png'); } - .natural.wood::before { content: image-url('browse/wood.png'); } - - .railway.light_rail::before { content: image-url('browse/light_rail.20.png'); } - .railway.rail::before { content: image-url('browse/rail.20.png'); } - .railway.subway::before { content: image-url('browse/subway.20.png'); } - .railway.tram::before { content: image-url('browse/tram.20.png'); } - -} + ".aeroway.runway": ("filename": "runway.20.png"), + ".aeroway.taxiway": ("filename": "taxiway.20.png"), + + ".barrier.wall": ("filename": "wall.20.png"), + + ".building": ("filename": "building.png"), + + ".highway.bridleway": ("filename": "bridleway.20.png"), + ".highway.cycleway": ("filename": "cycleway.20.png"), + ".highway.footway": ("filename": "footway.20.png"), + ".highway.motorway": ("filename": "motorway.20.png"), + ".highway.motorway_link": ("filename": "motorway.20.png"), + ".highway.path": ("filename": "path.20.png"), + ".highway.pedestrian": ("filename": "service.20.png"), + ".highway.primary": ("filename": "primary.20.png"), + ".highway.primary_link": ("filename": "primary.20.png"), + ".highway.residential": ("filename": "unclassified.20.png"), + ".highway.secondary": ("filename": "secondary.20.png"), + ".highway.secondary_link": ("filename": "secondary.20.png"), + ".highway.service": ("filename": "service.20.png"), + ".highway.tertiary": ("filename": "tertiary.20.png"), + ".highway.track": ("filename": "track.20.png"), + ".highway.trunk": ("filename": "trunk.20.png"), + ".highway.trunk_link": ("filename": "trunk.20.png"), + ".highway.unclassified": ("filename": "unclassified.20.png"), + + ".landuse.brownfield": ("filename": "brownfield.png"), + ".landuse.cemetery": ("filename": "cemetery.png"), + ".landuse.commercial": ("filename": "commercial.png"), + ".landuse.farmland": ("filename": "farmland.png"), + ".landuse.farmyard": ("filename": "farmyard.png"), + ".landuse.forest": ("filename": "forest.png"), + ".landuse.grass": ("filename": "grass.png"), + ".landuse.industrial": ("filename": "industrial.png"), + ".landuse.meadow": ("filename": "meadow.png"), + ".landuse.military": ("filename": "military.png"), + ".landuse.residential": ("filename": "residential.png"), + ".landuse.retail": ("filename": "retail.png"), + ".landuse.tourism": ("filename": "tourism.png"), + + ".leisure.golf_course": ("filename": "golf.png"), + ".leisure.park": ("filename": "park.png"), + ".leisure.picnic_table": ("filename": "tourism_picnic_site.16.png", "invert": true), + ".leisure.playground": ("filename": "leisure_playground.16.png", "invert": true), + ".leisure.pitch": ("filename": "pitch.png"), + ".leisure.nature_reserve": ("filename": "reserve.png"), + ".leisure.water_park": ("filename": "leisure_water_park.16.png", "invert": true), + + ".natural.grassland": ("filename": "grassland.png"), + ".natural.heath": ("filename": "heathland.png"), + ".natural.scrub": ("filename": "scrub.png"), + ".natural.water": ("filename": "lake.png"), + ".natural.wood": ("filename": "wood.png"), + + ".railway.light_rail": ("filename": "light_rail.20.png"), + ".railway.rail": ("filename": "rail.20.png"), + ".railway.subway": ("filename": "subway.20.png"), + ".railway.tram": ("filename": "tram.20.png"), + +) diff --git a/app/assets/stylesheets/common.scss b/app/assets/stylesheets/common.scss index a7d07e74e..53a60a3b2 100644 --- a/app/assets/stylesheets/common.scss +++ b/app/assets/stylesheets/common.scss @@ -1,4 +1,6 @@ +@use "sass:map"; @import "parameters"; +@import "browse"; @import "bootstrap"; @import "rails_bootstrap_forms"; @@ -10,26 +12,12 @@ body { font-size: $typeheight; } -p > img { - width: auto; - max-width: 100%; -} - -small, aside { - font-size: 12px; -} - time[title] { text-decoration: underline dotted; } #container { position: relative; } -.small_icon { - vertical-align: middle; - margin-right: $lineheight * 0.25; -} - /* Rules for icons */ .icon { @@ -174,10 +162,6 @@ nav.secondary { .nav-link { padding: 0.2rem; } - - #inboxanchor { - background-color: lighten($grey, 10%); - } } nav.primary, nav.secondary { @@ -474,10 +458,16 @@ body.small-nav { } .leaflet-popup-content-wrapper, -.leaflet-popup-tip { +.leaflet-popup-tip, +.leaflet-contextmenu, +.leaflet-contextmenu-item { @extend .bg-body, .text-body; } +.leaflet-contextmenu-item.over { + @extend .bg-body-secondary, .border-secondary, .border-opacity-10; +} + .leaflet-popup-content-wrapper { @extend .rounded-1; @@ -486,6 +476,13 @@ body.small-nav { } } +@include color-mode(dark) { + .leaflet-tile-container, + .mapkey-table-entry td:first-child > * { + filter: brightness(.8); + } +} + /* Rules for attribution text under the main map shown on printouts */ .donate-attr { color: darken($green, 10%) !important; } @@ -549,10 +546,6 @@ header .search_forms, /* Rules for search sidebar */ #sidebar .search_results_entry { - ul li.selected { - background: $list-highlight; - } - .search_more .loader { display: none; } @@ -644,14 +637,6 @@ tr.turn { .query-results { display: none; - - ul { - li { - &.query-result { - cursor: pointer; - } - } - } } } @@ -935,11 +920,6 @@ div.secondary-actions { .sprite.rules { /*rtl:ignore*/ background-position: -350px 0; } - - .icon.note { - background-color: #333; - border-radius: 4px; - } } .site-about #content { @@ -1033,4 +1013,32 @@ img.trace_image { } } -@import 'browse'; +/* Rules for map sidebar icons */ + +.browse-section { + .node::before, + .way::before, + .relation::before { + display: inline-block; + width: 25px; + margin-left: -25px; + } + + .node, .way, .relation { + margin-left: 25px; + } +} + +@each $class, $item in $map-sidebar-icons { + .browse-section #{$class}::before { + content: image-url('browse/#{map.get($item, "filename")}'); + } + + @if map.get($item, "invert") { + @include color-mode(dark) { + .browse-section #{$class}::before { + filter: invert(.8) hue-rotate(180deg); + } + } + } +} diff --git a/app/assets/stylesheets/parameters.scss b/app/assets/stylesheets/parameters.scss index c46174d78..07549d69b 100644 --- a/app/assets/stylesheets/parameters.scss +++ b/app/assets/stylesheets/parameters.scss @@ -4,15 +4,12 @@ $typeheight: 14px; $blue: #7092FF; $secondary: #888; -$lightblue: #B8C5F0; $green: #7ebc6f; $vibrant-green: #76c551; $grey: #CCC; -$lightgrey: #EEE; $darkgrey: #888; $headerHeight: 55px; $sidebarWidth: 350px; -$list-highlight: #FFFFC0; $link-color: #24d; $link-hover-color: #24d; diff --git a/app/controllers/changesets_controller.rb b/app/controllers/changesets_controller.rb index 3ea5fb64e..6a80f260a 100644 --- a/app/controllers/changesets_controller.rb +++ b/app/controllers/changesets_controller.rb @@ -84,8 +84,9 @@ class ChangesetsController < ApplicationController @way_pages, @ways = paginate(:old_ways, :conditions => { :changeset_id => @changeset.id }, :per_page => 20, :parameter => "way_page") @relation_pages, @relations = paginate(:old_relations, :conditions => { :changeset_id => @changeset.id }, :per_page => 20, :parameter => "relation_page") if @changeset.user.active? && @changeset.user.data_public? - @next_by_user = @changeset.user.changesets.where("id > ?", @changeset.id).reorder(:id => :asc).first - @prev_by_user = @changeset.user.changesets.where("id < ?", @changeset.id).reorder(:id => :desc).first + changesets = conditions_nonempty(@changeset.user.changesets) + @next_by_user = changesets.where("id > ?", @changeset.id).reorder(:id => :asc).first + @prev_by_user = changesets.where("id < ?", @changeset.id).reorder(:id => :desc).first end render :layout => map_layout rescue ActiveRecord::RecordNotFound diff --git a/app/controllers/messages_controller.rb b/app/controllers/messages_controller.rb index d231fddde..111a31f96 100644 --- a/app/controllers/messages_controller.rb +++ b/app/controllers/messages_controller.rb @@ -127,7 +127,7 @@ class MessagesController < ApplicationController @message.message_read = message_read if @message.save flash[:notice] = notice - redirect_back_or_to inbox_messages_path, :status => :see_other + redirect_to inbox_messages_path, :status => :see_other end rescue ActiveRecord::RecordNotFound @title = t "messages.no_such_message.title" diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 368668a9b..fcf253289 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -10,11 +10,11 @@ module ApplicationHelper end def rss_link_to(args = {}) - link_to(image_tag("RSS.png", :size => "16x16", :border => 0), args, :class => "rsssmall") + link_to image_tag("RSS.png", :size => "16x16", :class => "align-text-bottom"), args end def atom_link_to(args = {}) - link_to(image_tag("RSS.png", :size => "16x16", :border => 0), args, :class => "rsssmall") + link_to image_tag("RSS.png", :size => "16x16", :class => "align-text-bottom"), args end def dir diff --git a/app/helpers/browse_helper.rb b/app/helpers/browse_helper.rb index d3e8f10f9..c8fc8245c 100644 --- a/app/helpers/browse_helper.rb +++ b/app/helpers/browse_helper.rb @@ -107,7 +107,7 @@ module BrowseHelper private - ICON_TAGS = %w[aeroway amenity barrier building highway historic landuse leisure man_made natural railway shop tourism waterway].freeze + ICON_TAGS = %w[aeroway amenity barrier building highway historic landuse leisure man_made natural office railway shop tourism waterway].freeze def icon_tags(object) object.tags.find_all { |k, _v| ICON_TAGS.include? k }.sort diff --git a/app/views/diary_entries/index.html.erb b/app/views/diary_entries/index.html.erb index 78ac0dcf8..a0ab0264a 100644 --- a/app/views/diary_entries/index.html.erb +++ b/app/views/diary_entries/index.html.erb @@ -25,7 +25,7 @@ <% end %> <% if @user && @user == current_user || !@user && current_user %> -
  • <%= link_to image_tag("new.png", :class => "small_icon") + t(".new"), new_diary_entry_path, :title => t(".new_title") %>
  • +
  • <%= link_to image_tag("new.png") + t(".new"), new_diary_entry_path, :class => "icon-link", :title => t(".new_title") %>
  • <% end %> diff --git a/app/views/geocoder/results.html.erb b/app/views/geocoder/results.html.erb index fc2138318..05d7d5d63 100644 --- a/app/views/geocoder/results.html.erb +++ b/app/views/geocoder/results.html.erb @@ -7,7 +7,7 @@ <% else %> <% if @more_params %> diff --git a/app/views/layouts/map.html.erb b/app/views/layouts/map.html.erb index bcbe20968..0630dace5 100644 --- a/app/views/layouts/map.html.erb +++ b/app/views/layouts/map.html.erb @@ -69,7 +69,7 @@
    -
    +
    diff --git a/app/views/messages/_message_summary.html.erb b/app/views/messages/_message_summary.html.erb index 1a7a0c839..a181e96e1 100644 --- a/app/views/messages/_message_summary.html.erb +++ b/app/views/messages/_message_summary.html.erb @@ -1,4 +1,4 @@ -<%= tag.tr(:id => "inbox-#{message.id}", :class => { "message-summary" => true, "table-success" => !message.message_read? }) do %> +<%= tag.tr(:id => "inbox-#{message.id}", :class => { "table-success" => !message.message_read? }) do %> <%= link_to message.sender.display_name, user_path(message.sender) %> <%= link_to message.title, message_path(message) %> <%= l message.sent_on, :format => :friendly %> diff --git a/app/views/messages/_messages_table.html.erb b/app/views/messages/_messages_table.html.erb index f11fe3f62..567b5e828 100644 --- a/app/views/messages/_messages_table.html.erb +++ b/app/views/messages/_messages_table.html.erb @@ -4,7 +4,7 @@ <% columns.each do |column| %> <%= t ".#{column}" %> <% end %> - <%= t ".actions" %> + <%= t ".actions" %> diff --git a/app/views/messages/_sent_message_summary.html.erb b/app/views/messages/_sent_message_summary.html.erb index cd156aa47..cf10cd462 100644 --- a/app/views/messages/_sent_message_summary.html.erb +++ b/app/views/messages/_sent_message_summary.html.erb @@ -1,4 +1,4 @@ -<%= tag.tr(:id => "outbox-#{message.id}", :class => { "message-summary" => true }) do %> +<%= tag.tr(:id => "outbox-#{message.id}") do %> <%= link_to message.recipient.display_name, user_path(message.recipient) %> <%= link_to message.title, message_path(message) %> <%= l message.sent_on, :format => :friendly %> diff --git a/app/views/site/copyright.html.erb b/app/views/site/copyright.html.erb index f014eb037..7fbf475ce 100644 --- a/app/views/site/copyright.html.erb +++ b/app/views/site/copyright.html.erb @@ -78,7 +78,7 @@

    <%= image_tag("attribution_example.png", :alt => t(".legal_babble.attribution_example.alt"), - :border => 0, + :border => 0, :class => "img-fluid", :title => t(".legal_babble.attribution_example.title")) %>

    <%= t ".legal_babble.more_title_html" %>

    diff --git a/app/views/site/fixthemap.html.erb b/app/views/site/fixthemap.html.erb index c1a61362f..3edafd8b7 100644 --- a/app/views/site/fixthemap.html.erb +++ b/app/views/site/fixthemap.html.erb @@ -22,7 +22,7 @@
    <%= t "site.welcome.add_a_note.title" %>

    <%= t "site.welcome.add_a_note.para_1" %>

    -

    <%= t ".how_to_help.add_a_note.instructions_1_html", :note_icon => tag.a(:class => "icon note") %>

    +

    <%= t ".how_to_help.add_a_note.instructions_1_html", :note_icon => tag.a(:class => "icon note bg-dark rounded-1") %>

    diff --git a/app/views/site/welcome.html.erb b/app/views/site/welcome.html.erb index 8ec32ea9c..f8f339284 100644 --- a/app/views/site/welcome.html.erb +++ b/app/views/site/welcome.html.erb @@ -73,5 +73,5 @@

    <%= t ".add_a_note.title" %>

    <%= t ".add_a_note.para_1" %>

    <%= t ".add_a_note.para_2_html", :map_link => link_to(t(".add_a_note.the_map"), root_path), - :note_icon => tag.span(:class => "icon note") %>

    + :note_icon => tag.span(:class => "icon note bg-dark rounded-1") %>

    diff --git a/app/views/traces/_trace.html.erb b/app/views/traces/_trace.html.erb index 72794355b..cd4dce99e 100644 --- a/app/views/traces/_trace.html.erb +++ b/app/views/traces/_trace.html.erb @@ -2,7 +2,9 @@ <% if Settings.status != "gpx_offline" %> <% if trace.inserted %> - <%= link_to image_tag(trace_icon_path(trace.user, trace), :alt => "", :class => "trace_image"), show_trace_path(trace.user, trace) %> + <%= link_to image_tag(trace_icon_path(trace.user, trace), :alt => "", :class => "trace_image"), + show_trace_path(trace.user, trace), + :class => "d-inline-block" %> <% else %> <%= t ".pending" %> <% end %> diff --git a/config/locales/ca.yml b/config/locales/ca.yml index 25dcfb15f..bf3413725 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -43,6 +43,7 @@ # Author: Somenxavier # Author: Ssola # Author: Toniher +# Author: VerusPhoebusApollo # Author: Vfc # Author: XVEC # Author: Yupik @@ -576,6 +577,7 @@ ca: show: title: Diari de %{user} | %{title} user_title: Diari de %{user} + discussion: Discussió leave_a_comment: Feu un comentari login_to_leave_a_comment_html: '%{login_link} per a fer un comentari' login: Inicia sessió diff --git a/config/locales/cs.yml b/config/locales/cs.yml index 3fedad402..ecd35af4e 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -340,6 +340,8 @@ cs: zachovány, ale nebudou viditelné. retain_changeset_discussions: VaÅ¡e případné diskuse k sadám změn budou zachovány. retain_email: VaÅ¡e e-mailová adresa bude zachována. + recent_editing_html: Vzhledem k tomu, že jste nedávno upravovali váš účet, + nelze aktuálně smazat. Smazání bude možné za %{time}. confirm_delete: Jste si jisti? cancel: Storno accounts: @@ -392,6 +394,7 @@ cs: deleted_ago_by_html: Smazáno %{time_ago} uživatelem %{user} edited_ago_by_html: Upraveno %{time_ago} uživatelem %{user} version: Verze + redacted_version: Upravená verze in_changeset: Sada změn anonymous: anonym no_comment: (bez komentáře) @@ -408,7 +411,10 @@ cs: other: '%{count} cest' download_xml: Stáhnout XML view_history: Zobrazit historii + view_unredacted_history: Zobrazit neredigovanou historii view_details: Zobrazit detaily + view_redacted_data: Zobrazit upravená data + view_redaction_message: Zobrazit zprávu o revizi location: 'Pozice:' node: title_html: 'Uzel: %{name}' @@ -2436,6 +2442,7 @@ cs: light_rail: Rychlodráha tram: Tramvaj trolleybus: Trolejbus + bus: Autobus cable_car: Lanovka chair_lift: sedačková lanovka runway: Vzletová a přistávací dráha @@ -2491,6 +2498,7 @@ cs: destination: Průjezd zakázán construction: Cesta ve výstavbě bus_stop: Autobusová zastávka + stop: Stop bicycle_shop: Cykloobchod bicycle_rental: Půjčovna kol bicycle_parking: ParkoviÅ¡tě pro kola @@ -2536,6 +2544,7 @@ cs: imports: Importy automated_edits: Automatizované úpravy start_mapping: Začít mapovat + continue_authorization: Pokračovat v autorizaci add_a_note: title: Nemáte čas editovat? Přidejte poznámku! para_1: Pokud chcete jen opravit nějakou drobnost a nemáte čas se registrovat @@ -2735,11 +2744,13 @@ cs: read_gpx: Číst soukromé GPS stopy write_gpx: Nahrávat GPS stopy write_notes: Měnit poznámky + write_redactions: Upravte mapová data read_email: Přečíst e-mailovou adresu uživatele skip_authorization: Automaticky schválit aplikaci oauth_clients: new: title: Registrace nové aplikace + disabled: Registrace aplikací OAuth 1 byla zakázána edit: title: Upravit aplikaci show: @@ -2823,6 +2834,7 @@ cs: title: Mé autorizované aplikace application: Aplikace permissions: Oprávnění + last_authorized: Poslední autorizace no_applications_html: Zatím jste neautorizovali žádné %{oauth2} aplikace. application: revoke: Odebrat přístup @@ -2931,12 +2943,15 @@ cs: role: administrator: Tento uživatel je správce moderator: Tento uživatel je moderátor + importer: Tento uživatel je importér grant: administrator: Přidělit práva správce moderator: Přidělit práva moderátora + importer: Udělit přístup importérům revoke: administrator: Odebrat práva správce moderator: Odebrat práva moderátora + importer: ZruÅ¡it přístup importéra block_history: Účinná zablokování moderator_history: Udělená zablokování revoke_all_blocks: ZruÅ¡it vÅ¡echny bloky diff --git a/config/locales/de.yml b/config/locales/de.yml index 0e2739393..d23403058 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -639,7 +639,7 @@ de: friend: Freund show: title: Meine Übersichtsseite - no_home_location_html: '%{edit_profile_link} und leg deinen Wohnort fest, um + no_home_location_html: '%{edit_profile_link} und lege deinen Wohnort fest, um Benutzer in der Nähe zu sehen.' edit_your_profile: Bearbeite dein Profil my friends: Meine Freunde @@ -2642,13 +2642,11 @@ de: Diese Gruppen gibt es in verschiedenen Größen und sie repräsentieren geografische Einheiten von kleinen Städten bis hin zu großen länderübergreifenden Regionen. Sie können sowohl formell als auch informell sein. local_chapters: title: Lokale Verbände - about_text: Lokale Verbände sind Gruppen auf Landesebene oder Regionsebene, - die den formellen Schritt unternommen haben, einen gemeinnützigen Rechtskörper - zu gründen. Sie repräsentieren die Karte und Kartographen der Region, wenn - sie mit der örtlichen Regierung, Wirtschaft oder den Medien zu tun haben. - Sie haben auch eine Zusammengehörigkeit mit der OpenStreetMap Foundation - (OSMF) gebildet, was ihnen eine Verbindung zu der Rechts- und Urheberrechtsabteilung - gibt. + about_text: Lokale Verbände sind Gruppen auf Landes- oder Regionsebene, die + den Schritt unternommen haben eine formelle gemeinnützige Organisation zu + gründen. Sie repräsentieren die Beitragenden des Gebietes gegenüber der + Regierung, Wirtschaft oder den Medien. Sie sind vertraglich an die OpenStreetMap + Foundation (OSMF) gebunden, der Inhaber der OpenStreetMap Urheber- und Markenrechte. list_text: 'Folgende Gemeinschaften sind offiziell als lokale Verbände eingetragen:' other_groups: title: Andere Gruppen diff --git a/config/locales/el.yml b/config/locales/el.yml index fa81eb926..d7ce719db 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -502,8 +502,24 @@ el: created: Δημιουργήθηκε closed: Έκλεισε belongs_to: Συντάκτης + subscribe: + heading: Εγγραφή στην ακόλουθη συζήτηση ομάδας αλλαγών; + button: Εγγραφή σε συζήτηση + unsubscribe: + heading: Απεγγραφή από την ακόλουθη συζήτηση ομάδας αλλαγών; + button: Απεγγραφή από συζήτηση + heading: + title: Ομάδα αλλαγών %{id} + created_by_html: Δημιουργήθηκε από %{link_user} στις %{created}. + no_such_entry: + title: Δεν υπάρχει τέτοια ομάδα αλλαγών + heading: 'Δεν υπάρχει καταχώρηση με id: %{id}' + body: Λυπούμαστε, δεν υπάρχει ομάδα αλλαγών με το id %{id}. Παρακαλούμε ελέγξτε + για τυχόν ορθογραφικά λάθη ή ίσως ο σύνδεσμος που πατήσατε να είναι λάθος. show: title: 'Ομάδα αλλαγών: %{id}' + created: 'Δημιουργήθηκε: %{when}' + closed: 'Έκλεισε: %{when}' created_ago_html: Δημιουργήθηκε %{time_ago} closed_ago_html: Έκλεισε %{time_ago} created_ago_by_html: Δημιουργήθηκε %{time_ago} από %{user} @@ -586,6 +602,7 @@ el: show: title: Ημερολόγιο του χρήστη %{user} | %{title} user_title: Ημερολόγιο του χρήστη %{user} + discussion: Συζήτηση leave_a_comment: Αφήστε σχόλιο login_to_leave_a_comment_html: '%{login_link} για να αφήσετε ένα σχόλιο' login: Συνδεθείτε @@ -641,6 +658,12 @@ el: comment: Σχόλιο newer_comments: Νεότερα σχόλια older_comments: Παλαιότερα σχόλια + subscribe: + heading: Εγγραφή στην ακόλουθη συζήτηση καταχώρισης ημερολογίου; + button: Εγγραφείτε στη συζήτηση + unsubscribe: + heading: Απεγγραφή από την ακόλουθη συζήτηση καταχώρισης ημερολογίου; + button: Απεγγραφή από τη συζήτηση doorkeeper: errors: messages: @@ -1620,7 +1643,10 @@ el: intro_text: Το OpenStreetMap είναι χάρτης του κόσμου, που δημιουργήθηκε από ανθρώπους σαν κι εσάς και είναι δωρεάν, υπό άδεια ελεύθερης χρήσης. intro_2_create_account: Δημιουργήστε ένα λογαριασμό χρήστη + hosting_partners_2024_html: Η φιλοξενία υποστηρίζεται από %{fastly}, %{corpmembers} + και άλλους %{partners}. partners_fastly: Fastly + partners_corpmembers: εταιρικά μέλη του OSMF partners_partners: συνεργάτες tou: Όροι χρήσης osm_offline: Η βάση δεδομένων του OpenStreetMap είναι προσωρινά εκτός λειτουργίας @@ -1642,6 +1668,7 @@ el: more: Περισσότερα user_mailer: diary_comment_notification: + description: 'OpenStreetMap Καταχώριση Ημερολογίου #%{id}' subject: '[OpenStreetMap] Ο χρήστης %{user} σχολίασε μια καταχώριση ημερολογίου' hi: Γεια σας %{to_user}, header: 'Ο %{from_user} έχει σχολιάσει την καταχώριση ημερολογίου στο OpenStreetMap @@ -1652,6 +1679,8 @@ el: σχολιάσετε στο %{commenturl} ή να στείλετε μήνυμα στον συγγραφέα στο %{replyurl} footer_html: Μπορείτε επίσης να διαβάσετε το σχόλιο στο %{readurl} και μπορείτε να σχολιάσετε στο %{commenturl} ή να στείλετε μήνυμα στον συγγραφέα στο %{replyurl} + footer_unsubscribe: Μπορείτε να απεγγραφείτε από την συζήτηση στο %{unsubscribeurl} + footer_unsubscribe_html: Μπορείτε να απεγγραφείτε από την συζήτηση στο %{unsubscribeurl} message_notification: subject: '[OpenStreetMap] %{message_title}' hi: Γεια σας %{to_user}, @@ -1715,6 +1744,7 @@ el: click_the_link: Εάν πρόκειται για σας, κάντε κλικ στον παρακάτω σύνδεσμο για να επαναφέρετε τον κωδικό πρόσβασής σας. note_comment_notification: + description: 'OpenStreetMap Σημείωση #%{id}' anonymous: Ανώνυμος χρήστης greeting: Γεια, commented: @@ -1760,6 +1790,7 @@ el: details_html: Περισσότερες λεπτομέρειες σχετικά με τη σημείωση μπορούν να βρεθούν στο %{url}. changeset_comment_notification: + description: 'OpenStreetMap Ομάδα Αλλαγών #%{id}' hi: Γεια σας, %{to_user}, greeting: Γεια, commented: @@ -1783,10 +1814,10 @@ el: στο %{url}. details_html: Περισσότερες λεπτομέρειες για την ομάδα αλλαγών μπορούν να βρεθούν στο %{url}. - unsubscribe: Για να διαγραφείτε από τις ενημερώσεις αυτής της ομάδας αλλαγών, - επισκεφθείτε το %{url} και πατήστε "Διαγραφή". - unsubscribe_html: Για να καταργήσετε την εγγραφή σας από ενημερώσεις σε αυτό - το σύνολο αλλαγών, επισκεφτείτε το %{url} και κάντε κλικ στην "Κατάργηση εγγραφής". + unsubscribe: Μπορείτε να απεγγραφείτε από τις ενημερώσεις αυτής της ομάδας αλλαγών + στο %{url}. + unsubscribe_html: Μπορείτε να απεγγραφείτε από τις ενημερώσεις σε αυτή την ομάδα + αλλαγών στο %{url}. confirmations: confirm: heading: Ελέγξτε το ηλεκτρονικό ταχυδρομείο σας! @@ -1881,8 +1912,8 @@ el: destroy_button: Διαγραφή back: Επιστροφή wrong_user: Έχετε συνδεθεί ως «%{user}» αλλά το μήνυμα που ζητάτε να διαβάσετε - δεν έχει σταλεί σε εσάς ούτε από εσάς. Παρακαλώ συνδεθείτε με το σωστό όνομα - χρήστη ώστε να μπορέσετε να το διαβάσετε. + δεν έχει σταλεί σε εσάς ούτε από εσάς. Παρακαλούμε συνδεθείτε με το σωστό + όνομα χρήστη ώστε να μπορέσετε να το διαβάσετε. sent_message_summary: destroy_button: Διαγραφή heading: @@ -1906,6 +1937,10 @@ el: help_text: Πληκτρολογήστε τη διεύθυνση ηλεκτρονικού ταχυδρομείου που χρησιμοποιήσατε για να εγγραφείτε. Θα στείλουμε έναν σύνδεσμο τον οποίον μπορείτε να χρησιμοποιήσετε για να επαναφέρετε το συνθηματικό σας. + create: + send_paranoid_instructions: Εάν η διεύθυνση email σας υπάρχει στο σύστημα μας, + θα λάβετε έναν σύνδεσμο ανάκτησης κωδικού στην διεύθυνση email σας σε λίγα + λεπτά. edit: title: Επαναφορά συνθηματικού heading: Επαναφορά συνθηματικού για τον χρήστη %{user} @@ -1956,42 +1991,42 @@ el: failure: Δεν μπόρεσε να ενημερωθεί το προφίλ. sessions: new: - title: Είσοδος - heading: Είσοδος + title: Σύνδεση + heading: Σύνδεση email or username: Διεύθυνση Ηλ. Ταχυδρομείου ή Όνομα Χρήστη password: Συνθηματικό remember: Να με θυμάσαι lost password link: Ξεχάσατε το συνθηματικό σας; - login_button: Είσοδος + login_button: Σύνδεση register now: Εγγραφείτε τώρα - with external: 'Εναλλακτικά, χρησιμοποιήστε τρίτη υπηρεσία για είσοδο:' + with external: 'Εναλλακτικά, χρησιμοποιήστε τρίτη υπηρεσία για σύνδεση:' no account: Δεν έχετε λογαριασμό; auth failure: Λυπούμαστε, δεν μπορείτε να συνδεθείτε με αυτές τις λεπτομέρειες. openid_logo_alt: Σύνδεση με ένα OpenID auth_providers: openid: - title: Σύνδεση με ένα OpenID + title: Σύνδεση με OpenID alt: Σύνδεση με ένα OpenID URL google: - title: Σύνδεση με το Google + title: Σύνδεση με Google alt: Σύνδεση με ένα Google OpenID facebook: - title: Σύνδεση με το Facebook - alt: Σύνδεση με έναν Λογαριασμό Facebook + title: Σύνδεση με Facebook + alt: Σύνδεση με λογαριασμό Facebook microsoft: - title: Σύνδεση μέσω της Microsoft - alt: Σύνδεση με ένα Λογαριασμό Microsoft + title: Σύνδεση με Microsoft + alt: Σύνδεση με λογαριασμό Microsoft github: - title: Σύνδεση με το GitHub + title: Σύνδεση με GitHub alt: Σύνδεση με λογαριασμό GitHub wikipedia: title: Σύνδεση με Wikipedia - alt: Συνδεθείτε με ένα Λογαριασμό Wikipedia + alt: Συνδεθείτε με λογαριασμό Wikipedia wordpress: - title: Σύνδεση με το Wordpress + title: Σύνδεση με Wordpress alt: Σύνδεση με ένα Wordpress OpenID aol: - title: Σύνδεση με την AOL + title: Σύνδεση με AOL alt: Σύνδεση με ένα AOL OpenID destroy: title: Αποσύνδεση @@ -2141,6 +2176,7 @@ el: %{france}: Περιέχει δεδομένα που προέρχονται από Direction Générale des Impôts. contributors_fr_france: Γαλλία + contributors_hr_croatia: Κροατία contributors_nl_credit_html: '%{netherlands}: Περιέχει δεδομένα © AND (Automotive Navigation Data), 2007 (%{and_link})' contributors_nl_netherlands: Κάτω Χώρες @@ -2571,6 +2607,8 @@ el: identifiable: ΑΝΑΓΝΩΡΙΣΙΜΟ private: ΙΔΙΩΤΙΚΟ trackable: ΑΝΙΧΝΕΥΣΙΜΟ + details_with_tags_html: '%{time_ago} από %{user} σε %{tags}' + details_without_tags_html: '%{time_ago} από %{user}' index: public_traces: Δημόσια ίχνη GPS my_gps_traces: Τα ίχνη GPS μου @@ -2780,7 +2818,7 @@ el: display name description: Το δημόσια εμφανιζόμενο όνομα χρήστη. Μπορείτε να το αλλάξετε αργότερα από τις προτιμήσεις. external auth: 'Έλεγχος ταυτότητας από τρίτο μέρος:' - use external auth: Εναλλακτικά, χρησιμοποιήστε τρίτη υπηρεσία για είσοδο + use external auth: Εναλλακτικά, χρησιμοποιήστε τρίτη υπηρεσία για σύνδεση auth no password: Για την έγκριση τρίτων δεν απαιτείται κωδικός πρόσβασης, αλλά μερικά ειδικά εργαλεία αλλιώς ο διακομιστής μπορεί να χρειάζεται ένα. continue: Εγγραφή @@ -2895,6 +2933,11 @@ el: index: title: Χρήστες heading: Χρήστες + older: Παλαιότεροι Χρήστες + newer: Νεότεροι Χρήστες + found_users: + one: '%{count} χρήστης βρέθηκε' + other: '%{count} χρήστες βρέθηκαν' summary_html: '%{name} δημιουργήθηκε από την διεύθυνση IP %{ip_address} στις %{date}' summary_no_ip_html: '%{name} δημιουργήθηκε στις %{date}' diff --git a/config/locales/et.yml b/config/locales/et.yml index 7f321e674..264bdc86a 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -53,11 +53,10 @@ et: messages: invalid_email_address: ei tundu olema korrektne e-posti aadress email_address_not_routable: e-posti domeen ei tundu olema seadistatud - display_name_is_user_n: ei saa olla user_n, välja arvatud juhul, kui n on - sinu kasutajatunnus + display_name_is_user_n: ei saa olla user_n, kui n ei ole sinu kasutaja identifikaator models: user_mute: - is_already_muted: on juba summutatud + is_already_muted: on juba vaigistatud models: acl: Pääsuloend changeset: Muudatuskogum @@ -109,7 +108,7 @@ et: diary_entry: user: Kasutaja title: Teema - body: Kehatekst + body: Päevikusissekanne latitude: Laius longitude: Pikkus language_code: Keel @@ -139,6 +138,7 @@ et: body: Sisu recipient: Saaja redaction: + title: Pealkiri description: Kirjeldus report: category: Vali kaebuse põhjus @@ -218,6 +218,9 @@ et: auth: providers: none: Puudub + google: Google + facebook: Facebook + github: GitHub wikipedia: Vikipeedia api: notes: @@ -232,8 +235,9 @@ et: reopened_at_by_html: Taasaktiveerinud %{user} %{when} rss: title: OpenStreetMapi märkused - description_area: Loetelu märkustest mida teatati, kommenteeriti või suleti - sinu piirkonnas [(%{min_lat}|%{min_lon}) -- (%{max_lat}|%{max_lon})] + description_all: Teada antud, kommenteeritud või suletud märkuste loend + description_area: Loetelu märkustest, millest anti teada, mida kommenteeriti + või mis suleti sinu piirkonnas [(%{min_lat}|%{min_lon}) -- (%{max_lat}|%{max_lon})] description_item: Märkuse %{id} RSS uudisvoog opened: uus märkus (lähedal kohale %{place}) commented: uus kommentaar (lähedal kohale %{place}) @@ -265,6 +269,8 @@ et: retain_changeset_discussions: Sinu kommentaarid muudatuskogumites säilivad, kui oled neid kirjutanud. retain_email: Sinu e-posti aadress säilib. + recent_editing_html: Kuna oled hiljuti muudatusi teinud, siis pole sinu kasutajakonto + kustutamine hetkel võimalik. Kustutamine on võimalik %{time} pärast. confirm_delete: Kas oled kindel? cancel: Loobu accounts: @@ -315,6 +321,7 @@ et: deleted_ago_by_html: Kustutanud %{user} %{time_ago} edited_ago_by_html: Muutnud %{user} %{time_ago} version: Versioon + redacted_version: Kinnikaetud versioon in_changeset: Muudatuskogum anonymous: anonüümne no_comment: (kommentaare pole) @@ -327,7 +334,10 @@ et: other: '%{count} joont' download_xml: Laadi alla XML view_history: Vaata ajalugu + view_unredacted_history: Vaata ajalugu kinnikatmata kujul view_details: Vaata üksikasju + view_redacted_data: Vaata kinni kaetud andmeid + view_redaction_message: Vaata kinnikatmise sõnumit location: 'Asukoht:' node: title_html: 'Sõlm: %{name}' @@ -359,6 +369,7 @@ et: entry_html: Relatsioon %{relation_name} entry_role_html: Relatsioon %{relation_name} (kui %{relation_role}) not_found: + title: Ei leidu sorry: Vabandust, %{type} %{id} ei leitud. type: node: sõlme @@ -367,6 +378,7 @@ et: changeset: muudatuskogumit note: märkust timeout: + title: Päringu aegumise viga sorry: Kahjuks võttis %{type} %{id} andmete laadimine liiga kaua aega. type: node: sõlme @@ -403,6 +415,15 @@ et: introduction: Klõpsa kaardil, et leida läheduses asuvad objektid. nearby: Läheduses asuvad objektid enclosing: Ümbritsevad objektid + old_nodes: + not_found: + sorry: 'Vabandust, sõlme #%{id} versiooni %{version} ei õnnestu leida.' + old_ways: + not_found: + sorry: 'Vabandust, joone #%{id} versiooni %{version} ei õnnestu leida.' + old_relations: + not_found: + sorry: 'Vabandust, relatsiooni #%{id} versiooni %{version} ei õnnestu leida.' changesets: changeset_paging_nav: showing_page: Leht %{page} @@ -437,6 +458,21 @@ et: created: Loodud closed: Suletud belongs_to: Autor + subscribe: + heading: Kas soovid selle muudatuskogumi arutelu tellida? + button: Telli arutelu + unsubscribe: + heading: Kas soovid selle muudatuskogumi arutelu tellimusest loobuda? + button: Loobu arutelu jälgimisest + heading: + title: Muudatuskogum %{id} + created_by_html: Loonud %{link_user} kuupäeval %{created} + no_such_entry: + title: Sellist muudatuskogumit ei leidu + heading: Ei leidu kirjet identifikaatoriga %{id} + body: Vabandust, muudatuskogumit identifikaatoriga %{id} ei ole olemas. Palun + kontrolli, kas kirjutasid selle õigesti või kas link millel klõpsasid, on + vale. show: title: 'Muudatuskogum: %{id}' created: 'Loodud: %{when}' @@ -471,6 +507,9 @@ et: index: title_all: OpenStreetMapi muudatuskogumi arutelu title_particular: 'OpenStreetMapi muudatuskogumi #%{changeset_id} arutelu' + timeout: + sorry: Vabandust, sinu päritud muudatuskogumi kommetaaride loendi laadimiseks + kulus liiga kaua aega. dashboards: contact: km away: '%{count} kilomeetri kaugusel' @@ -519,6 +558,7 @@ et: show: title: Kasutaja %{user} päevik | %{title} user_title: Kasutaja %{user} päevik + discussion: Arutelu leave_a_comment: Kommenteeri login_to_leave_a_comment_html: kommenteerimiseks %{login_link} login: logi sisse @@ -538,11 +578,13 @@ et: no_comments: Kommentaarid puuduvad edit_link: Muuda seda sissekannet hide_link: Peida see sissekanne + unhide_link: Lõpeta selle sissekande peitmine confirm: Kinnita report: Teata sellest sissekandest diary_comment: comment_from_html: Kommentaar kasutajalt %{link_user} %{comment_created_at} hide_link: Peida see kommentaar + unhide_link: Lõpeta selle kommentaari peitmine confirm: Kinnita report: Teata sellest kommentaarist location: @@ -570,18 +612,26 @@ et: comment: Kommentaar newer_comments: Uuemad kommentaarid older_comments: Vanemad kommentaarid + subscribe: + heading: Kas soovid selle päeviku sissekande arutelu tellida? + button: Telli arutelu + unsubscribe: + heading: Kas soovid selle päeviku sissekande arutelu tellimusest loobuda? + button: Loobu arutelu jälgimisest doorkeeper: flash: applications: create: notice: Rakendus registreeritud. scopes: + address: Vaata oma tänava-aadressi email: Vaata oma e-posti aadressi openid: Autendi oma konto phone: Vaata oma telefoninumbrit profile: Vaata oma profiili errors: contact: + contact: kontaktide contact_the_community_html: Kui avastad katkise lingi või vea, palun kirjuta sellest OpenStreetMapi kogukonnale siin %{contact_link} aadressil. Palun lisa teatesse ka päringu täpne URL. @@ -591,11 +641,11 @@ et: vaid administraatoriele (HTTP 403) internal_server_error: title: Rakenduse viga - description: OpenStreetMap'i serveris tekkis ootamatu olukord, mistõttu vastust + description: OpenStreetMapi serveris tekkis ootamatu olukord, mistõttu vastust päringule ei õnnestu moodustada (HTTP 500) not_found: title: Faili ei leidu - description: Sellise nimega faili/kausta/API meetodit ei leidu OpenStreetMap'i + description: Sellise nimega faili/kataloogi/API meetodit ei leidu OpenStreetMapi serveris (HTTP 404) friendships: make_friend: @@ -605,7 +655,7 @@ et: failed: Vabandust, kasutaja %{name} sõbraks lisamine ebaõnnestus. already_a_friend: Sa oled kasutajaga %{name} juba sõber. limit_exceeded: Sa oled endale hiljuti lisanud palju sõpru. Palun oota mõnda - aega enne kui proovid veel sõpru lisada. + aega, enne kui proovid veel sõpru lisada. remove_friend: heading: Eemaldada %{user} sõprade hulgast? button: Eemalda sõprade hulgast @@ -635,15 +685,20 @@ et: aerodrome: Lennujaam airstrip: Maandumisplats apron: Lennujaama perroon - gate: Lennujaama värav + gate: Reisiterminali värav hangar: Angaar helipad: Kopteriväljak holding_position: Õhusõiduki ootepositsioon + navigationaid: Lennuliikluse navigatsioonivahendid parking_position: Õhusõiduki parkimiskoht runway: Lennurada + taxilane: Ruleerimisrada taxiway: Ruleerimisrada - terminal: Lennujaama terminal + terminal: Lennujaama reisiterminal + windsock: Tuulekott amenity: + animal_boarding: Loomahotell + animal_shelter: Loomade varjupaik arts_centre: Kunstikeskus atm: Pangaautomaat bank: Pank @@ -654,18 +709,24 @@ et: bicycle_rental: Jalgrattarent bicycle_repair_station: Jalgrataste remondijaam biergarten: Õlleaed + blood_bank: Verepank boat_rental: Paadilaenutus brothel: Lõbumaja bureau_de_change: Rahavahetus bus_station: Bussijaam cafe: Kohvik car_rental: Autorent + car_sharing: Ühisauto kasutamine car_wash: Autopesu casino: Kasiino charging_station: Laadimisjaam + childcare: Lastehoid cinema: Kino clinic: Kliinik clock: Kell + college: Kolledž + community_centre: Kogukonnakeskus + conference_centre: Konverentsikeskus courthouse: Kohtuhoone crematorium: Krematoorium dentist: Hambaarst @@ -673,12 +734,16 @@ et: drinking_water: Joogivesi driving_school: Autokool embassy: Saatkond + events_venue: Ürituste toimumiskoht fast_food: Kiirtoit ferry_terminal: Praamiterminal fire_station: Tuletõrjedepoo + food_court: Toidutänav fountain: Purskkaev fuel: Tankla + gambling: Hasartmängusaal grave_yard: Surnuaed + grit_bin: Libedustõrjekruusa kast hospital: Haigla hunting_stand: Jahikantsel ice_cream: Jäätis @@ -686,13 +751,20 @@ et: kindergarten: Lasteaed language_school: Keeltekool library: Raamatukogu + loading_dock: Laoestakaad + love_hotel: Armuhotell marketplace: Turg + mobile_money_agent: Mobiiliraha agent monastery: Klooster + money_transfer: Rahaülekandeteenus + motorcycle_parking: Mootorrattaparkla music_school: Muusikakool nightclub: Ööklubi nursing_home: Hooldekodu parking: Parkimisplats + parking_entrance: Parkla sissepääs parking_space: Parkimiskoht + payment_terminal: Makseterminal pharmacy: Apteek place_of_worship: Pühapaik police: Politsei @@ -700,23 +772,46 @@ et: post_office: Postkontor prison: Vangla pub: Pubi + public_bath: Avalik looduslik spaa + public_bookcase: Avalik raamaturiiul public_building: Ühiskondlik hoone + ranger_station: Looduskeskus recycling: Jäätmekäitluspunkt restaurant: Restoran + sanitary_dump_station: Maismaatranspordivahendite heitvee purgimiskoht school: Kool shelter: Varjualune shower: DuÅ¡Å¡ + social_centre: Seltsingu hoone + social_facility: Sotsiaalkeskus + studio: Stuudio + swimming_pool: Ujumisbassein taxi: Takso telephone: Üldkasutatav telefon theatre: Teater toilets: WC + townhall: Raekoda/vallamaja + training: Koolituskeskus university: Ülikool + vehicle_inspection: Sõidukite tehnoülevaatus vending_machine: Müügiautomaat veterinary: Loomakliinik + village_hall: Kogukonnakeskuse hoone waste_basket: Prügikast + waste_disposal: Prügikonteiner + waste_dump_site: Mitteametlik prügimägi + watering_place: Loomade joogikoht + water_point: Joogiveepunkt + weighbridge: Autokaal + "yes": Avalik taristu boundary: + aboriginal_lands: Põliselanike maad administrative: Halduspiir + census: Statistilise üksuse piir national_park: Rahvuspark + political: Valimisringkonna piir + protected_area: Kaitseala + "yes": Piirjoon bridge: aqueduct: Akvedukt boardwalk: Laudtee @@ -725,47 +820,99 @@ et: viaduct: Viadukt "yes": Sild building: + apartment: Korter + apartments: Kortermaja + barn: Küün + bungalow: Bangalo + cabin: Metsamajake chapel: Kabel church: Kirik + civic: Üldkasutatav hoone + college: Kolledžihoone commercial: Ärihoone + construction: Ehitusjärgus hoone + detached: Eramu (eraldiseisev maja) dormitory: Ühiselamu + duplex: Paarismaja samal kinnistul farm: Talumaja + farm_auxiliary: Talu majandushoone garage: Garaaž garages: Garaažid greenhouse: Kasvuhoone hangar: Angaar hospital: Haigla hoone hotel: Hotell - house: Maja + house: Eramu + houseboat: Paatmaja + hut: Hütt industrial: Tööstushoone - office: Kontorihoone + kindergarten: Lasteaia hoone + manufacture: Tootmishoone + office: Büroohoone public: Avalik hoone + residential: Elamu + retail: Jaekaubandushoone roof: Katus + ruins: Hoone varemed school: Koolihoone - service: Teenindushoone + semidetached_house: Paarismaja eri kinnistutel + service: Tehnohoone + shed: Kuur stable: Tall + static_caravan: Paikne haagismaja + temple: Templihoone + terrace: Ridamaja train_station: Raudteejaam university: Ülikoolihoone + warehouse: Laohoone "yes": Hoone + club: + scout: Skaudirühm + sport: Spordiklubi + "yes": Klubi craft: + beekeeper: Mesinik blacksmith: Sepp brewery: Pruulikoda carpenter: Puusepp + caterer: Toitlustaja + confectionery: Kondiiter + dressmaker: Naisteriiete õmbleja electrician: Elektrik + electronics_repair: Elektroonikaparandaja gardener: Aednik + glaziery: Klaasija + handicraft: Käsitöömeister + hvac: Kliima- ja kütteseadmete meister + metal_construction: Metallkonstruktsioonide ehitaja painter: Maaler photographer: Fotograaf plumber: Torulukksepp + roofer: Katuseehitaja + sawmill: Saeveski shoemaker: Kingsepp - tailor: Rätsep - "yes": Käsitööpood + stonemason: Kiviraidur + tailor: Meesteriiete rätsep + window_construction: Aknameister + winery: Veinikoda + "yes": Käsitöökoda emergency: + access_point: Asukohatuvastuspunkt hädaolukorras ambulance_station: Kiirabijaam + assembly_point: Kogunemiskoht hädaolukorras defibrillator: Defibrillaator fire_extinguisher: Tulekustuti + fire_water_pond: Tuletõrjetiik + landing_site: Kopteriväljak päästeteenistusele + life_ring: Päästerõngas phone: Hädaabi telefon + siren: Elanikukaitse häiresireen + suction_point: Tuletõrje veevõtukoht + water_tank: Tuletõrjevee paak highway: + abandoned: Mahajäetud maantee bridleway: Ratsatee + bus_guideway: Roobastee bussidele bus_stop: Bussipeatus construction: Ehitusjärgus tee corridor: Koridor @@ -773,81 +920,146 @@ et: cycleway: Jalgrattatee elevator: Elevaator emergency_access_point: Hädaabi punkt + emergency_bay: Hädapeatumise ala footway: Jalgrada ford: Koolmekoht give_way: Märk "Anna teed" living_street: Õueala milestone: Verstapost motorway: Kiirtee + motorway_junction: Kiirtee ristmik + motorway_link: Kiirtee tee + passing_place: Möödasõidukoht path: Rada pedestrian: Jalakäijatele tee platform: Platvorm primary: Põhimaantee + primary_link: Põhimaantee ühendustee + proposed: Kavandatav tee raceway: Võidusõidurada residential: Kõrvaltee + rest_area: Teeäärne puhkekoht road: Tee secondary: Tugimaantee + secondary_link: Tugimaantee ühendustee service: Teenindustee + services: Kiirteeteenused speed_camera: Kiiruskaamera steps: Trepp stop: Stoppmärk street_lamp: Tänavavalgusti tertiary: Kohalik maantee + tertiary_link: Kohaliku maantee ühendustee + track: Rada + traffic_mirror: Liikluspeegel traffic_signals: Valgusfoor + trailhead: Raja alg- või lõpppunkt + trunk: Esimese klassi tee + trunk_link: Esimese klassi tee ühendustee + turning_circle: Ümberpöördering + turning_loop: Ümberpöördering saarega + unclassified: Klassifitseerimata tee "yes": Tee historic: + aircraft: Ajalooline lennuk + archaeological_site: Arheoloogiline leiukoht + bomb_crater: Ajalooline pommikraater battlefield: Lahinguväli boundary_stone: Piirikivi building: Ajalooline hoone bunker: Punker + cannon: Ajalooline kahur castle: Kindlus + charcoal_pile: Ajalooline miiliahi church: Kirik city_gate: Linnavärav citywalls: Linnamüürid fort: Kindlus - house: Maja + heritage: Muinsuskaitseobjekt + hollow_way: Ajalooline teenõgu + house: Ajalooline maja manor: Mõis memorial: Memoriaal - mine: Kaevandus + milestone: Ajalooline verstapost + mine: Ajalooline kaevandus + mine_shaft: Ajalooline kaevandusÅ¡aht monument: Mälestusmärk - roman_road: Rooma tee + railway: Ajalooline raudtee + roman_road: Vana-Rooma tee ruins: Varemed - stone: Kivi + rune_stone: Ruunikivi + stone: Ajalooline kivi + tomb: Hauakamber tower: Torn + wayside_chapel: Teeäärne kabel wayside_cross: Teeäärne rist wayside_shrine: Teeäärne altar wreck: Vrakk + "yes": Ajaloomälestis + junction: + "yes": Ristmik landuse: + allotments: Aianduskrundid + aquaculture: Vesiviljelus + basin: Kogumisbassein + brownfield: Pruunala cemetery: Surnuaed + commercial: Ärimaa + conservation: Määratlemata olekus kaitstav ala + construction: Ehitusala + farmland: Põllumaa + farmyard: Taluõu forest: Mets garages: Garaažid grass: Muru + greenfield: Ehituseks planeeritud roheala industrial: Tööstuspiirkond landfill: Prügimägi meadow: Niit military: Militaarala mine: Kaevandus orchard: Viljapuuaed + plant_nursery: Puukool quarry: Karjäär railway: Raudtee recreation_ground: Puhkeala + religious: Sakraalmaa reservoir: Veehoidla + reservoir_watershed: Veehaarde turvaala residential: Elamurajoon + retail: Jaekaubandusala + village_green: Külaplats vineyard: Viinamarjaistandus "yes": Maakasutus leisure: - bandstand: Kõlakoda + adult_gaming_centre: Hasartmängusaal + amusement_arcade: Mängusaal + bandstand: Väike vabaõhulava + beach_resort: Rannakuurort + bird_hide: Linnuvaatlushoone + bleachers: Avaistmed + bowling_alley: Keeglisaal + common: Ühismaakasutusala + dance: Tantsusaal dog_park: Koerapark + firepit: Lõkkease fishing: Kalapüügipiirkond + fitness_centre: Jõusaal + fitness_station: Jõulinnak garden: Aed golf_course: Golfiväljak + horse_riding: Ratsabaas ice_rink: Uisuväli + marina: Väikesadam miniature_golf: Minigolf nature_reserve: Looduskaitseala + outdoor_seating: Istekohad õues park: park picnic_table: Piknikulaud pitch: Spordiväljak playground: Mänguväljak + recreation_ground: Puhkeala + resort: Kuurort sauna: Saun slipway: Slipp sports_centre: Spordikeskus @@ -855,26 +1067,71 @@ et: swimming_pool: Ujula track: Jooksurada water_park: Veepark + "yes": Jõudeaja tegevused man_made: + adit: Adit + advertising: Välireklaam + antenna: Antenn + avalanche_protection: Lumelaviini kaitsetunnel + beacon: Majakas + beehive: Mesipuu + breakwater: Lainemurdja bridge: Sild + bunker_silo: Siloauk + cairn: Kivikangur + chimney: Korsten + clearcut: Raiesmik + communications_tower: Sidemast crane: Kraana cross: Rist + dolphin: Paal + dyke: Kaldavall + embankment: Muldkeha flagpole: Lipumast + gasometer: Gaasimahuti + groyne: Kaldakaitsetamm + kiln: Põletusahi lighthouse: Tuletorn + manhole: Teeninduskaev + mast: Mast + mine: Kaevandus + mineshaft: KaevandusÅ¡aht + monitoring_station: Seirejaam + petroleum_well: Naftapuurauk + pier: Kai (kerge kai ehk pulvärk) + pipeline: Torujuhe + pumping_station: Pumpla + reservoir_covered: Kaetud veemahuti maapinnas + silo: Silo + snow_cannon: Lumekahur + snow_fence: Lumetõkketara + storage_tank: Mahuti + street_cabinet: Seadmekapp tänaval + surveillance: Valvetehnika telescope: Teleskoop tower: Torn + utility_pole: Valgustus- või sidepost + wastewater_plant: Reoveepuhastusjaam watermill: Vesiveski + water_tap: Avalik veekraan + water_tower: Veetorn water_well: Kaev + water_works: Veepuhastusjaam windmill: Tuuleveski works: Vabrik + "yes": Inimese loodud rajatis military: - airfield: Sõjaväe lennuväli + airfield: Sõjaväelennuväli barracks: Kasarmud - bunker: Punker + bunker: Sõjaväe punker + checkpoint: Sõjaväe kontrollpunkt + trench: Kaitsekraav + "yes": Sõjaline mountain_pass: "yes": Mäekuru natural: atoll: Atoll + bare_rock: Paljand bay: Laht beach: Rand cape: Neem @@ -883,59 +1140,99 @@ et: coastline: Rannajoon crater: Kraater dune: Düün + fell: Mägitundra fjord: Fjord - forest: Mets + forest: Majandusmets geyser: Geiser glacier: Liustik grassland: Rohumaa heath: Nõmm - hill: Mägi + hill: Küngas + hot_spring: Kuumaveeallikas island: Saar + isthmus: Maakitsus land: Maa marsh: Soo moor: Raba mud: Muda peak: Mäetipp + peninsula: Poolsaar point: Neem reef: Riff - rock: Kivi + ridge: Mäeseljak + rock: Kalju + saddle: Mäekuru sand: Liiv + scree: Rusukalle + scrub: Võsa + shingle: Kiviklibu spring: Allikas stone: Kivi strait: Väin tree: Puu + tree_row: Puude rivi + tundra: Tundra valley: Org volcano: Vulkaan water: Vesi wetland: Märgala - wood: Mets + wood: Looduslik mets + "yes": Loodusobjekt office: - accountant: Raamatupidaja + accountant: Raamatupidamisteenus + administrative: Võimuasutus + advertising_agency: Reklaamibüroo architect: Arhitekt + association: Ühing company: Ettevõte - employment_agency: Tööbüroo + diplomatic: Diplomaatilise teenistuse büroo + educational_institution: Haridusasutuse kontor + employment_agency: Tööhõivekontor + energy_supplier: Energiafirma kontor + estate_agent: Kinnisvarabüroo + financial: Rahandusteenuste firma kontor + government: Võimuasutuse kontor insurance: Kindlustusbüroo + it: IT-firma kontor lawyer: Jurist + logistics: Ekspedeerimisfirma kontor + newspaper: Ajalehekirjastus + ngo: Vabaühenduse kontor notary: Notar + religion: Usuühingu büroo + research: Teadus- ja arendustegevuse kontor + tax_advisor: Maksunõustaja büroo + telecommunication: Sidefirma kontor travel_agent: Reisibüroo + "yes": Kontor place: allotments: Suvilad archipelago: Saarestik city: Linn + city_block: Tänavatevaheline kvartal country: Riik county: Maakond farm: Talu + hamlet: Väike küla house: Maja houses: Majad island: Saar - islet: Saareke + islet: Laid + isolated_dwelling: Üksik eluhoone + locality: Paikkond municipality: Vald + neighbourhood: Naabruskond + plot: Krunt postcode: Sihtnumber + quarter: Kvartal + region: Piirkond sea: meri + square: Väljak state: Osariik suburb: Linnaosa - town: Linn + town: Väikelinn village: Küla + "yes": Koht railway: abandoned: Ülesvõetud raudtee construction: Ehitusjärgus raudtee @@ -951,6 +1248,7 @@ et: platform: Raudteeperroon preserved: Säilitatud raudtee proposed: Kavandatav raudtee + rail: Rööbastee spur: Raudtee harutee station: Raudteejaam stop: Raudteepeatus @@ -959,13 +1257,22 @@ et: switch: Pöörangud tram: Trammitee tram_stop: Trammipeatus + turntable: Pöördesild shop: + agrarian: Põllumajandustarvete kauplus + alcohol: Viinapood antiques: Antikvariaat + appliance: Kodumasinate pood art: Kunstipood + baby_goods: Beebikaupade pood + bag: Kotipood bakery: Pagariäri + bathroom_furnishing: Vannitoasisustuse ja -tarvikute pood beauty: Kosmeetikasalong + bed: Magamistoamööbli ja -tarvikute pood beverages: Joogikauplus bicycle: Rattapood + bookmaker: Kihlveovahendaja books: Raamatupood boutique: Butiik butcher: Lihunik @@ -976,47 +1283,99 @@ et: charity: Heategevuslik kauplus cheese: Juustupood chemist: Apteek + chocolate: Å okolaadipood clothes: Riidepood + coffee: Kohvipood computer: Arvutikauplus + confectionery: Kommipood + convenience: Lähikauplus copyshop: Paljunduskoda cosmetics: Kosmeetikapood + craft: Kunsti- ja käsitöötarvikutue pood + curtain: Kardinapood + dairy: Piimapood + deli: Delikatesstoodete pood department_store: Kaubamaja + discount: Odavkaupade pood (aegunud) + doityourself: Ehituskauplus dry_cleaning: Keemiline puhastus + e-cigarette: E-sigaretipood electronics: Elektroonikapood + erotic: Erootikapood estate_agent: Kinnisvaramaakler + fabric: Kangapood farm: Talupood fashion: Moe kauplus + fishing: Kalastustarvete pood florist: Lillepood food: Toidupood + frame: Piltide raamimise töökoda funeral_directors: Matusebüroo - furniture: Mööbel + furniture: Mööblipood garden_centre: Aianduskeskus + gas: Balloongaasi kauplus + general: Universaalkauplus gift: Kingipood + greengrocer: Puu- ja köögiviljapood grocery: Toidupood hairdresser: Juuksur hardware: Rauakauplus + health_food: Tervisliku toidu kauplus + hearing_aids: Kuuldeaparaatide pood + herbalist: Ravimtaimede pood + hifi: Hifi kauplus + houseware: Kodutarvete pood ice_cream: jäätisepood + interior_decoration: Sisekujunduspood jewelry: Juveelipood kiosk: Kiosk + kitchen: Köögimööblikauplus laundry: Pesumaja + locksmith: Lukuabi + lottery: Lotopood mall: Ostukeskus massage: Massaaž + medical_supply: Meditsiinitarvikute pood mobile_phone: Mobiiltelefonide pood + money_lender: Kiirlaenukontor motorcycle: Mootorrattapood + motorcycle_repair: Mootorrattaparandus music: Muusikapood + musical_instrument: Muusikariistade pood newsagent: Ajalehekiosk + nutrition_supplements: Toidulisandite pood optician: Prillipood + organic: Mahetoidu pood outdoor: Matkatarbed + paint: Värvipood + pastry: Kondiitriäri + pawnbroker: Pandimaja + perfumery: Parfümeeriakauplus pet: Lemmikloomapood + pet_grooming: Ilusalong lemmikloomadele photo: Fotopood + seafood: Mereandide pood + second_hand: Taaskasutuspood + sewing: Õmblustarvikute pood shoes: Kingapood sports: Spordipood stationery: Kirjatarvete kauplus + storage_rental: Rendiladu supermarket: Supermarket tailor: Rätsep + tattoo: Tätoveeringusalong + tea: Teepood + ticket: Piletikassa + tobacco: Tubakapood toys: Mänguasjapood travel_agency: Reisiagentuur - wine: Alkoholipood + tyres: Rehvipood + vacant: Vaba kaubanduspind + variety_store: Odavkaupade pood + video: Videopood + video_games: Videomängude pood + wholesale: Hulgimüügipood + wine: Veinipood "yes": Pood tourism: alpine_hut: Alpimaja @@ -1025,20 +1384,24 @@ et: attraction: Turismiatraktsioon bed_and_breakfast: Kodumajutus cabin: Metsamaja + camp_pitch: Telkimisplats camp_site: Laagriplats - chalet: Alpimaja + caravan_site: Karavanipark + chalet: Puhkemaja gallery: Galerii guest_house: Külalistemaja hostel: Hostel hotel: Hotell - information: informatsioon + information: Turismiinfo motel: motell museum: muuseum picnic_site: piknikuplats theme_park: Teemapark viewpoint: Vaatepunkt + wilderness_hut: Kõnnumaa ulualune zoo: Loomaaed tunnel: + building_passage: Läbikäik hoonest culvert: Truup "yes": Tunnel waterway: @@ -1062,6 +1425,7 @@ et: "yes": Veetee admin_levels: level2: Riigipiir + level3: 3. järgu piir level4: 4. järgu piir level5: 5. järgu piir level6: 6. järgu piir @@ -1069,6 +1433,7 @@ et: level8: 8. järgu piir level9: 9. järgu piir level10: 10. järgu piir + level11: Naabruskonna piirjoon types: cities: Suurlinnad towns: Linnad @@ -1078,9 +1443,31 @@ et: more_results: Veel tulemusi issues: index: + select_status: Vali olek + select_type: Vali tüüp + select_last_updated_by: Vali viimane muutja + reported_user: Kasutaja, kellest on teada antud + not_updated: Pole uuendatud + search: Otsi user_not_found: Kasutajat pole olemas. + status: Olek + reports: Kaebused + last_updated: Viimati uuendatud + last_updated_time_ago_user_html: '%{user} %{time_ago} eest' + link_to_reports: Vaata kaebuseid + reports_count: + one: '%{count} kaebus' + other: '%{count} kaebust' + show: + report_created_at_html: Esmalt teatatud kuupäeval %{datetime} + last_resolved_at_html: Viimati lahendatud kuupäeval %{datetime} + last_updated_at_html: Viimati uuendanud %{displayname} kuupäeval %{datetime} + resolve: Lahenda + ignore: Eira + reopen: Ava uuesti helper: reportable_title: + diary_comment: '%{entry_title}, kommentaar #%{comment_id}' note: 'märkus #%{note_id}' reports: new: @@ -1140,7 +1527,12 @@ et: intro_text: OpenStreetMap on maailma kaart, mille on loonud inimesed nagu sina ja seda võib vabalt kasutada avatud litsentsi tingimustel. intro_2_create_account: loo oma konto + hosting_partners_2024_html: Serverimajutust aitavad korraldada %{fastly}, %{corpmembers} + ja muud %{partners}. + partners_fastly: Fastly + partners_corpmembers: OSMF-i äriühingutest liikmed partners_partners: partnerid + tou: kasutustingimused osm_offline: OpenStreetMapi andmebaas ei ole hetkel juurdepääsetav sest teostatakse vajalikke hooldustöid. osm_read_only: OpenStreetMapi andmebaas on hetkel oluliste hooldustööde tõttu @@ -1160,6 +1552,7 @@ et: more: Veel user_mailer: diary_comment_notification: + description: 'OpenStreetMapi päeviku sissekanne #%{id}' subject: '[OpenStreetMap] %{user} kommenteeris päeviku sissekannet' hi: Tere, %{to_user}! header: '%{from_user} kommenteeris hiljutist OpenStreetMapi päevikusissekannet @@ -1170,7 +1563,10 @@ et: aadressil %{commenturl} või saata autorile sõnumi aadressil %{replyurl}. footer_html: Saad lugeda kommentaari aadressil %{readurl}. Samuti saad lisada kommentaari aadressil %{commenturl} või saata autorile sõnumi aadressil %{replyurl}. + footer_unsubscribe: Saad loobuda selle arutelu jälgimisest aadressil %{unsubscribeurl} + footer_unsubscribe_html: Saad loobuda selle arutelu jälgimisest aadressil %{unsubscribeurl} message_notification: + subject: '[OpenStreetMap] %{message_title}' hi: Tere, %{to_user} header: '%{from_user} on saatnud sulle OpenStreetMapi kaudu sõnumi teemaga %{subject}:' header_html: '%{from_user} on saatnud sulle OpenStreetMapi kaudu sõnumi teemaga @@ -1187,6 +1583,11 @@ et: see_their_profile_html: Tema profiiliga saad tutvuda aadressil %{userurl}. befriend_them: Sa võid ta lisada oma sõbraks aadressil %{befriendurl}. befriend_them_html: Saad ta ka enda sõbraks lisada aadressil %{befriendurl}. + gpx_description: + description_with_tags_html: Tundub, et sinu GPX-fail %{trace_name} kirjeldusega + %{trace_description} ning siltidega %{tags} + description_with_no_tags_html: Tundub, et sinu siltideta GPX-fail %{trace_name} + kirjeldusega %{trace_description} gpx_failure: hi: Tere, %{to_user} failed_to_import: 'importimine ebaõnnestus. Siin on viga:' @@ -1198,6 +1599,8 @@ et: loaded: one: laaditi üles edukalt %{trace_points} punkt võimalikust %{count} punktist. other: laaditi üles edukalt %{trace_points} punkti võimalikust %{count} punktist. + all_your_traces_html: Kõik sinu üles laaditud GPX-rajad on leitavad aadressil + %{url}. subject: '[OpenStreetMap] GPX-faili importimine õnnestus' signup_confirm: subject: '[OpenStreetMap] Tere tulemast OpenStreetMapi' @@ -1222,6 +1625,7 @@ et: click_the_link: Kui see oled sina, siis klõpsa palun alloleval lingil, et parool lähtestada. note_comment_notification: + description: 'OpenStreetMapi märkus #%{id}' anonymous: Anonüümne kasutaja greeting: Tere! commented: @@ -1262,6 +1666,7 @@ et: details: Üksikasjad märkuse kohta leiad aadressilt %{url}. details_html: Üksikasjad märkuse kohta leiad aadressilt %{url}. changeset_comment_notification: + description: 'OpenStreetMapi muudatuskogum #%{id}' hi: Tere, %{to_user} greeting: Tere! commented: @@ -1396,6 +1801,9 @@ et: new password button: Lähtesta parool help_text: Sisesta e-posti aadress, mida kasutasid registreerumisel. Saadame sinna lingi, mida saad kasutada parooli lähtestamiseks. + create: + send_paranoid_instructions: Kui sinu e-posti aadress on meie andebaasis olemas, + siis mõne aja pärast saad e-kirja oma parooli taastamiseks. edit: title: Lähtesta parool heading: Kasutaja %{user} parooli lähtestamine @@ -1426,6 +1834,8 @@ et: gravatar: gravatar: Kasuta Gravatari what_is_gravatar: Mis on Gravatar? + disabled: Gravatar on kasutusest eemaldatud. + enabled: Sinu Gravatar on nüüd kasutusel. new image: Lisa pilt keep image: Säilitada praegune pilt delete image: Eemalda praegune pilt @@ -1434,6 +1844,9 @@ et: home location: Kodu asukoht no home location: Sa pole oma kodu asukohta märkinud. update home location on click: Kas uuendan kodu asukohta, kui klõpsan kaardil? + show: Näita + delete: Kustuta + undelete: Võta kustutamine tagasi update: success: Profiil uuendatud. failure: Profiili ei õnnestunud uuendada. @@ -1496,9 +1909,11 @@ et: ordered: Järjestatud loend first: Esimene üksus second: Teine üksus + link: Link text: Tekst image: Pilt alt: Asendustekst + url: URL codeblock: Koodiplokk richtext_field: edit: Muuda @@ -1543,6 +1958,7 @@ et: %{openstreetmap_foundation_link} (OSMF) kogukonna nimel. Kõigis OSMF-i hallatavates teenustes kehtivad meie %{terms_of_use_link}, %{aup_link} ja %{privacy_policy_link}. + legal_1_1_openstreetmap_foundation: OpenStreetMap Foundation legal_1_1_terms_of_use: kasutustingimused legal_1_1_aup: kasutamisreeglid legal_1_1_privacy_policy: andmekaitsereeglid @@ -1573,6 +1989,7 @@ et: %{osm_foundation_link} (OSMF) on avaldanud Open Data Commonsi litsentsi %{odc_odbl_link} (ODbL) all. introduction_1_open_data: avaandmed introduction_1_odc_odbl: Open Database License + introduction_1_osm_foundation: OpenStreetMap Foundation introduction_2_html: |- Tohid andmeid vabalt kopeerida, levitada, edastada ja kohandada, kui viitad OpenStreetMapile ja selle kaastöölistele. @@ -1627,6 +2044,7 @@ et: ja muudest allikatest, sealhulgas: contributors_at_credit_html: '%{austria}: Sisaldab %{stadt_wien_link} (%{cc_by_link} tingimustel), %{land_vorarlberg_link} ja Tirooli liidumaa andmeid (%{cc_by_at_with_amendments_link}).' + contributors_at_austria: Austria contributors_at_stadt_wien: Viini linna contributors_at_land_vorarlberg: Vorarlbergi liidumaa contributors_at_cc_by_at_with_amendments: CC BY AT tingimustel koos õiendustega @@ -1635,6 +2053,7 @@ et: kasutust lubab Austraalia Ühendus Creative Commonsi rahvusvahelise litsentsi "%{cc_licence_link}" (CC BY 4.0) tingimustel.' contributors_au_australia: Austraalia + contributors_au_geoscape_australia: Geoscape Australia contributors_au_cc_licence: Autorile viitamine 4.0 contributors_ca_credit_html: '%{canada}: Sisaldab andmekogude GeoBase®, GeoGratis (© Kanada loodusvarade ministeerium), CanVec (© Kanada @@ -1654,16 +2073,24 @@ et: contributors_fr_credit_html: '%{france}: Sisaldab kaardiandmeid, mis on pärit maksuametist (Direction Générale des Impôts).' contributors_fr_france: Prantsusmaa + contributors_hr_credit_html: |- + %{croatia}: Sisaldab andmeid, mis on pärit %{dgu_link} ja %{open_data_portal} + (Horvaatia avalik teave). contributors_hr_croatia: Horvaatia + contributors_hr_dgu: Horvaatia riiklikust geodeesiaametist + contributors_hr_open_data_portal: riiklikust avaandmete portaalist contributors_nl_credit_html: '%{netherlands}: Sisaldab ettevõtte © AND andmeid (2007, %{and_link})' contributors_nl_netherlands: Holland - contributors_nz_credit_html: '%{new_zealand}: Sisaldab teenuse %{linz_data_service_link} + contributors_nz_credit_html: '%{new_zealand}: Sisaldab %{linz_data_service_link} andmeid, mis on kasutatavad litsentsi %{cc_by_link} tingimustel.' contributors_nz_new_zealand: Uus-Meremaa + contributors_nz_linz_data_service: LINZ-i andmeteenuse + contributors_nz_cc_by: CC BY 4.0 contributors_rs_credit_html: |- %{serbia}: Sisaldab andmeid, mis on pärit %{rgz_link} ja %{open_data_portal} (Serbia avalik teave), 2018. + contributors_rs_serbia: Serbia contributors_rs_rgz: Serbia geodeesiaametist contributors_rs_open_data_portal: riigi avaandmete portaalist contributors_si_credit_html: '%{slovenia}: Sisaldab %{gu_link} ning %{mkgp_link} @@ -1679,6 +2106,7 @@ et: contributors_za_credit_html: '%{south_africa}: Sisaldab andmeid allikast %{ngi_link}, õigused kuuluvad riigile.' contributors_za_south_africa: LAV + contributors_za_ngi: 'Chief Directorate: National Geo-Spatial Information' contributors_gb_credit_html: |- %{united_kingdom}: Sisaldab Ordnance Survey andmeid © krooni autoriõigus ja andmebaasi õigused kaitstud @@ -1813,6 +2241,15 @@ et: url: https://wiki.openstreetmap.org/wiki/Et:Main_Page title: OpenStreetMapi viki description: Sirvi vikis OpenStreetMapi põhjalikumat dokumentatsiooni. + potlatch: + removed: Sa oled OpenStreetMapi jaoks vaikeredaktoriks määranud Potlatchi. Kuna + Adobe Flash Player ei ole enam kasutusel, siis pole ka Potlatchi enam veebibrauseris + võimalik kasutada. + desktop_application_html: Potlatchi saad endiselt kasutada %{download_link}. + download: laadides alla töölauarakenduse Maci ja Windowsi jaoks + id_editor_html: Teise võimalusena saad määrata vaikeredaktoriks iD, mis töötab + Potlatchi-sarnaselt sinu veebibrauseris. %{change_preferences_link}. + change_preferences: Muuda oma eelistusi siin any_questions: title: Tekkis küsimusi? paragraph_1_html: |- @@ -1826,6 +2263,7 @@ et: close: Sulge search: search: Otsi + get_directions: Näita mulle teed get_directions_title: Juhised liikumiseks kahe punkti vahel from: Alguspunkt to: Sihtpunkt @@ -1842,49 +2280,84 @@ et: primary: Põhimaantee secondary: Tugimaantee unclassified: Klassifitseerimata tee + pedestrian: Jalakäijate tee track: Rada bridleway: Ratsatee cycleway: Jalgrattatee + cycleway_national: Riigiülene jalgrattatee + cycleway_regional: Piirkondlik jalgrattatee + cycleway_local: Kohalik jalgrattatee + cycleway_mtb: Mägirattarada footway: Jalgtee rail: Raudtee + train: Rong subway: Metroo + ferry: Praam + light_rail: Kergraudtee + tram: Tramm + trolleybus: Trollibuss + bus: Buss cable_car: Köisraudtee chair_lift: Toolilift runway: Lennurada taxiway: Ruleerimistee apron: Lennujaama perroon admin: Halduspiir + capital: Pealinn + city: Linn + orchard: Viljapuuaed + vineyard: Viinamarjaistandus forest: Tulundusmets wood: Mets + farmland: Põllumaa + grass: Muru + meadow: Niit + bare_rock: Paljand + sand: Liiv golf: Golfiväljak park: Park common: Heinamaa + built_up: Hoonestatud ala resident: Elamurajoon retail: Kaubanduspiirkond industrial: Tööstuspiirkond commercial: Äripiirkond heathland: Nõmm + scrubland: Võsamaa lake: Järv reservoir: Veehoidla + intermittent_water: Perioodiline veekogu + glacier: Liustik + reef: Riff + wetland: Märgala farm: Põllumajanduslik maa brownfield: Ehitusmaa cemetery: Surnuaed allotments: Aiamaa pitch: Spordiväljak centre: Spordikeskus + beach: Rand reserve: Looduskaitseala - military: Sõjaväe kasutuses + military: Militaarala school: Kool university: Ülikool + hospital: Haigla building: Märkimisväärne hoone station: Raudteejaam - summit: Mägi - peak: Tipp + summit: Mäetipp + peak: Mäetipp tunnel: Katkendlik ümbris = tunnel bridge: Must ümbris = sild private: Üksnes omanikule destination: Üksnes läbisõiduks construction: Ehitatavad teed + bus_stop: Bussipeatus + stop: Peatus + bicycle_shop: Rattapood + bicycle_rental: Jalgrattarent + bicycle_parking: Jalgrattaparkla + bicycle_parking_small: Väike jalgrattaparkla + toilets: Tualettruumid welcome: title: Tere tulemast! introduction: Tere tulemast OpenStreetMapi, vabasse ja muudetavasse maailmakaarti. @@ -1975,6 +2448,9 @@ et: upload_failed: Kahjuks ei õnnestunud GPX-faili üles laadida. Sellest tõrkest on antud märku administraatorile. Palun proovi uuesti. edit: + cancel: Loobu + title: Raja %{name} muutmine + heading: 'Muudad rada #%{name}' visibility_help: mida see tähendab? update: updated: Rada uuendatud. @@ -1989,6 +2465,7 @@ et: uploaded: 'Üles laaditud:' points: 'Punkte:' start_coordinates: 'Alguskoordinaadid:' + coordinates_html: '%{latitude}; %{longitude}' map: kaardil edit: redigeeri owner: 'Omanik:' @@ -1999,6 +2476,7 @@ et: delete_trace: Kustuta see rada trace_not_found: Rada ei leitud! visibility: 'Nähtavus:' + confirm_delete: Kas kustutad selle raja? trace_paging_nav: older: Vanemad rajad newer: Uuemad rajad @@ -2028,10 +2506,24 @@ et: upload_trace: Lisa GPS-rada all_traces: Kõik rajad my_traces: Minu rajad + traces_from: Kasutaja %{user} avalikud rajad + remove_tag_filter: Eemalda sildifilter destroy: scheduled_for_deletion: Raja kustutamine kantud tööplaani. + make_public: + made_public: Rada on nüüd avalik offline_warning: message: GPX-failide üleslaadimise süsteem pole praegu saadaval. + offline: + heading: GPX-failide salvestamine hetkel ei tööta + message: GPX-failide salvestamise ja üleslaadimise süsteem pole hetkel kasutatav. + georss: + title: OpenStreetMapi GPS-rajad + description: + description_with_count: + one: Kasutaja %{user} %{count}-punktline GPX-fail + other: Kasutaja %{user} %{count}-punktline GPX-fail + description_without_count: Kasutaja %{user} GPX-fail application: require_cookies: cookies_needed: Paistab, et sul on küpsised keelatud. Enne jätkamist luba palun @@ -2113,6 +2605,7 @@ et: no_apps_html: Kas sul on rakendus, mida soovid siin kasutamiseks registreerida, kasutades standardit %{oauth}? Enne kui see saab antud teenusele OAuthi päringuid saata, pead oma veebirakenduse registreerima. + oauth: OAuth registered_apps: 'Sul on registreeritud on järgmised klientrakendused:' register_new: Registreeri oma rakendus form: @@ -2196,6 +2689,16 @@ et: terms: title: Tingimused heading: Tingimused + heading_ct: Kaastöötingimused + read and accept with tou: Palun loe läbi kaastööleping ja kasutustingimused, + märgi ristiga mõlemad märkeruudud ning kui oled valmis, siis vajuta jätkamisnuppu. + contributor_terms_explain: See leping reguleerib sinu olemasoleva ja tulevase + kaastöö tingimusi. + read_ct: Ma olen lugenud kaastöötingimusi ja nõustun nendega + tou_explain_html: Need %{tou_link} reguleerivad selle veebisaidi ja muu OSMF-i + pakutava infrastruktuuri kasutamist. Palun klõpsa lingil, loe tekst läbi ja + nõustu sellega. + read_tou: Ma olen lugenud kasutustingimusi ja nõustun nendega consider_pd: Eelnevale lisaks leian, et minu kaastöö kuulub avalikku omandisse (Public Domain) consider_pd_why: mis see on? @@ -2203,6 +2706,7 @@ et: ja mõned %{informal_translations_link}' readable_summary: inimloetav kokkuvõte informal_translations: mitteametlikud tõlked + continue: Jätka decline: Ei nõustu you need to accept or decline: Enne jätkamist tutvu palun uute kaastöötingimustega ning seejärel kas nõustu või ära nõustu nendega. @@ -2220,6 +2724,7 @@ et: heading: Kasutajat %{user} pole olemas body: Vabandust, kuid kasutaja nimega %{user} puudub. Palun kontrolli kirjapilti. Võimalik, et link, millele klõpsasid, on vigane. + deleted: kustutatud show: my diary: Minu päevik my edits: Minu muudatused @@ -2244,6 +2749,7 @@ et: remove as friend: Eemalda sõprade hulgast add as friend: Lisa sõbraks mapper since: 'Kaardistaja alates:' + uid: 'Kasutaja ID:' ct status: 'Kaastöötingimused:' ct undecided: Otsustamata ct declined: Tagasi lükatud @@ -2254,6 +2760,7 @@ et: role: administrator: See kasutaja on administraator moderator: See kasutaja on moderaator + importer: See kasutaja on importija grant: administrator: Määra administraatori õigused moderator: Määra moderaatori õigused @@ -2277,6 +2784,11 @@ et: index: title: Kasutajad heading: Kasutajad + older: Vanemad kasutajad + newer: Uuemad kasutajad + found_users: + one: '%{count} kasutaja leitud' + other: '%{count} kasutajat leitud' summary_html: '%{name} loodud IP-aadressilt %{ip_address} (%{date})' summary_no_ip_html: '%{name} loodud (%{date})' confirm: Kinnita valitud kasutajad @@ -2413,6 +2925,15 @@ et: reason: Blokeerimise põhjus status: Olek revoker_name: Tühistanud + older: Vanemad blokeeringud + newer: Uuemad blokeeringud + navigation: + all_blocks: Kõik blokeeringud + blocks_on_me: Mulle seatud blokeeringud + blocks_on_user: Blokeeritava %{user} blokeeringud + blocks_by_me: Minu seatud blokeeringud + blocks_by_user: Blokeerija %{user} blokeeringud + block: 'Blokeering #%{id}' user_mutes: index: title: Vaigistatud kasutajad @@ -2473,6 +2994,7 @@ et: reactivate: Aktiveeri uuesti comment_and_resolve: Kommenteeri ja lahenda comment: Kommenteeri + log_in_to_comment: Selle märkuse kommenteerimiseks palun logi sisse report_link_html: Kui see märkus sisaldab tundlikku teavet, mis tuleks eemaldada, saad %{link}. other_problems_resolve: Kõigi märkusega seotud muude probleemide korral lahenda @@ -2526,6 +3048,7 @@ et: standard: Tavakaart cycle_map: Rattakaart transport_map: Transpordikaart + tracestracktop_topo: Tracestrack Topo hot: Humanitaarabi layers: header: Kaardikihid @@ -2537,6 +3060,13 @@ et: openstreetmap_contributors: OpenStreetMapi kaastöölised make_a_donation: Tee annetus website_and_api_terms: Veebisaidi ja API tingimused + osm_france: OpenStreetMap France + thunderforest_credit: Paanide autor on %{thunderforest_link} + andy_allan: Andy Allan + tracestrack_credit: Kaardipaanid teenusepakkujalt %{tracestrack_link} + hotosm_credit: Paanide stiili autor on %{hotosm_link} ning majutusteenust pakub + %{osm_france_link} + hotosm_name: OpenStreetMapi humanitaarabimeeskond site: edit_tooltip: Muuda kaarti edit_disabled_tooltip: Kaardi redigeerimiseks suurenda kaarti @@ -2546,6 +3076,7 @@ et: map_data_zoom_in_tooltip: Suumi sisse, et näha kaardi andmeid queryfeature_tooltip: Mis siin on? queryfeature_disabled_tooltip: Suurenda, et objektide kohta päring teha + embed_html_disabled: Selle kaardikihi jaoks pole HTML-i lõimimine saadaval changesets: show: comment: Kommenteeri @@ -2556,6 +3087,7 @@ et: edit_help: Nihuta kaarti ja suumi sisse asukohta mida soovid redigeerida ja seejärel kliki siia. directions: + ascend: Tee tõuseb ülespoole engines: fossgis_osrm_bike: Rattaga (OSRM) fossgis_osrm_car: Autoga (OSRM) @@ -2566,20 +3098,95 @@ et: fossgis_valhalla_bicycle: Rattaga (Valhalla) fossgis_valhalla_car: Autoga (Valhalla) fossgis_valhalla_foot: Jalgsi (Valhalla) + descend: Tee laskub allapoole directions: Juhised distance: Vahemaa + distance_m: '%{distance} m' + distance_km: '%{distance} km' errors: no_route: Ei suutnud leida teekonda nende kahe koha vahel. no_place: Kohta "%{place}" ei õnnestunud kahjuks leida. instructions: continue_without_exit: 'Liigu edasi teele: %{name}' + slight_right_without_exit: 'Pööra kergelt paremal pool asuvale teele: %{name}' + offramp_right: Sõida paremal asuvale kaldteele + offramp_right_with_exit: Lahku teelt paremal asuva ärapöörde %{exit} kaudu + offramp_right_with_exit_name: 'Lahku teelt paremal asuva ärapöörde %{exit} + kaudu sõites teele: %{name}' + offramp_right_with_exit_directions: 'Lahku teelt paremal asuva ärapöörde %{exit} + kaudu võttes suunaks: %{directions}' + offramp_right_with_exit_name_directions: 'Lahku teelt paremal asuva ärapöörde + %{exit} kaudu sõites teele: %{name} suunaga %{directions} poole' + offramp_right_with_name: 'Pööra paremal asuvalt kaldteelt teele: %{name}' + offramp_right_with_directions: Pööra paremal asuvale kaldteele suunaga %{directions} + poole + offramp_right_with_name_directions: 'Pööra paremal asuvale kaldteele: uus + tee on %{name} ja suunaks %{directions}' + onramp_right_without_exit: 'Pööra paremale ja sõida kaldteed mööda teele: + %{name}' + onramp_right_with_directions: Pööra paremale ja sõida kaldteelt %{directions} + suunas + onramp_right_with_name_directions: Pööra paremal asuvale kaldteele %{name} + poole, suunaks %{directions} + onramp_right_without_directions: Sõida paremal asuvale kaldteele + onramp_right: Sõida paremal asuvale kaldteele endofroad_right_without_exit: 'Tee lõpus pööra paremale teele: %{name}' - turn_right_without_exit: 'Pööra paremale teele: %{name}' - turn_left_without_exit: 'Pööra vasakule teele: %{name}' + merge_right_without_exit: 'Liitu paremal asuva teega: %{name}' + fork_right_without_exit: 'Tee hargnemisel pööra paremal asuvale teele: %{name}' + turn_right_without_exit: 'Pööra paremal pool asuvale teele: %{name}' + sharp_right_without_exit: 'Pööra järsult paremal pool asuvale teele: %{name}' + uturn_without_exit: Pööra tagasi teel %{name} + sharp_left_without_exit: 'Pööra järsult vasakul pool asuvale teele: %{name}' + turn_left_without_exit: 'Pööra vasakul pool asuvale teele: %{name}' + offramp_left: Sõida vasakul asuvale kaldteele + offramp_left_with_exit: Lahku teelt vasakul asuva ärapöörde %{exit} kaudu + offramp_left_with_exit_name: 'Lahku teelt vasakul asuva ärapöörde %{exit} + kaudu sõites teele: %{name}' + offramp_left_with_exit_directions: 'Lahku teelt vasakul asuva ärapöörde %{exit} + kaudu võttes suunaks: %{directions}' + offramp_left_with_exit_name_directions: 'Lahku teelt vasakul asuva ärapöörde + %{exit} kaudu sõites teele: %{name} suunaga %{directions} poole' + offramp_left_with_name: 'Pööra vasakul asuvalt kaldteelt teele: %{name}' + offramp_left_with_directions: Pööra vasakul asuvale kaldteele suunaga %{directions} + poole + offramp_left_with_name_directions: 'Pööra vasakul asuvale kaldteele: uus tee + on %{name} ja suunaks %{directions}' + onramp_left_without_exit: 'Pööra vasakule ja sõida kaldteed mööda teele: %{name}' + onramp_left_with_directions: Pööra vasakule ja sõida kaldteelt %{directions} + suunas + onramp_left_with_name_directions: 'Pööra vaskul asuvale kaldteele: uus tee + on %{name} ja suunaks %{directions}' + onramp_left_without_directions: Sõida vasakul asuvale kaldteele + onramp_left: Sõida vasakul asuvale kaldteele endofroad_left_without_exit: 'Tee lõpus pööra vasakule teele: %{name}' + merge_left_without_exit: 'Liitu vasakul asuva teega: %{name}' + fork_left_without_exit: 'Tee hargnemisel pööra vasakul asuvale teele: %{name}' + slight_left_without_exit: 'Pööra kergelt vasakule teele: %{name}' + via_point_without_exit: (teekonnapunkti kaudu) + follow_without_exit: 'Sõida edasi mööda teed: %{name}' + roundabout_without_exit: 'Pööra ringteelt järgnevale teele: %{name}' + leave_roundabout_without_exit: Pööra ära ringteelt - %{name} + stay_roundabout_without_exit: Jätka sõitmist ringteel - %{name} start_without_exit: 'Alusta teelt: %{name}' destination_without_exit: Jõuad kohale + against_oneway_without_exit: 'Sõida ühesuunalise tee vastusuunas: %{name}' + end_oneway_without_exit: 'Lõppeb ühesuunaline tee: %{name}' + roundabout_with_exit: 'Keera ringtee %{exit}. väljumisest teele: %{name}' + roundabout_with_exit_ordinal: 'Keera ringtee %{exit}. väljumisest teele: %{name}' + exit_roundabout: 'Pööra ringteelt ära teele: %{name}' unnamed: nimetu + courtesy: Tee juhatamisel oli abiks %{link} + exit_counts: + first: "1" + second: "2" + third: "3" + fourth: "4" + fifth: "5" + sixth: "6" + seventh: "7" + eighth: "8" + ninth: "9" + tenth: "10" time: Ajakulu query: node: Sõlm @@ -2623,4 +3230,9 @@ et: kuuluvate versioonide kinnikatmine enne kui selle hävitad. flash: Kinnikatmine hävitatud. error: Viga selle kinnikatmise hävitamisel. + validations: + leading_whitespace: ees on tühik + trailing_whitespace: lõpus on tühik + invalid_characters: sisaldab mittesobivaid tähemärke + url_characters: sisaldab URL-is erimärke (%{characters}) ... diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 65bc08d2d..18964005d 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -2546,6 +2546,7 @@ fi: title: Valtuutetut sovellukset application: Sovellus permissions: Oikeudet + last_authorized: Viimeksi valtuutettu no_applications_html: '%{oauth2} -sovelluksille ei ole vielä myönnetty käyttöoikeuksia.' application: revoke: Peruuta diff --git a/config/locales/fr.yml b/config/locales/fr.yml index fcc3dfb4b..fccbdf951 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -582,8 +582,19 @@ fr: created: Créé closed: Fermé belongs_to: Auteur + subscribe: + button: S'abonner à la discussion unsubscribe: + heading: Se désabonner de la discussion du groupe de modifications suivant ? button: Se désinscrire de la discussion + heading: + title: Groupe de modifications %{id} + created_by_html: Créé par %{link_user} le %{created}. + no_such_entry: + heading: 'Aucune entrée avec l’identifiant : %{id}' + body: Désolé, il n’y a aucun groupe de modifications avec l'identifiant %{id}. + Veuillez vérifier l'orthographe ou la validité du lien sur lequel vous avez + cliqué. show: title: 'Groupe de modifications : %{id}' created: 'Créé : %{when}' @@ -1711,6 +1722,8 @@ fr: intro_text: OpenStreetMap est une carte du monde, créée par des gens comme vous et libre d’utilisation sous licence libre. intro_2_create_account: Créez un compte d’utilisateur + hosting_partners_2024_html: L’hébergement est pris en charge par %{fastly}, %{corpmembers}, + et d’autres %{partners}. partners_fastly: Fastly partners_partners: partenaires tou: Conditions d’utilisation @@ -1745,6 +1758,8 @@ fr: footer_html: Vous pouvez aussi lire le commentaire sur %{readurl} et vous pouvez commenter sur %{commenturl} ou envoyer un message à l’auteur sur %{replyurl} footer_unsubscribe: Vous pouvez vous désabonner de la discussion depuis %{unsubscribeurl} + footer_unsubscribe_html: Vous pouvez vous désabonner de la discussion depuis + %{unsubscribeurl} message_notification: subject: '[OpenStreetMap] %{message_title}' hi: Bonjour %{to_user}, @@ -1809,6 +1824,7 @@ fr: click_the_link: Si vous êtes à l’origine de cette demande, cliquez le lien ci-dessous pour réinitialiser votre mot de passe. note_comment_notification: + description: 'Note OpenStreetMap #%{id}' anonymous: Un utilisateur anonyme greeting: Bonjour, commented: @@ -1847,6 +1863,7 @@ fr: details: Plus de détails concernant la note se trouvent à %{url}. details_html: Plus de détails concernant la note se trouvent à %{url}. changeset_comment_notification: + description: 'Groupe de modifications OpenStreetMap #%{id}' hi: Bonjour %{to_user}, greeting: Bonjour, commented: @@ -2275,6 +2292,7 @@ fr: générale des finances publiques (anciennement la Direction générale des impôts).' contributors_fr_france: France + contributors_hr_croatia: Croatie contributors_nl_credit_html: '%{netherlands} : contient des données © AND, 2007 (%{and_link})' contributors_nl_netherlands: Pays-Bas @@ -3057,6 +3075,8 @@ fr: index: title: Utilisateurs heading: Utilisateurs + older: Utilisateurs plus anciens + newer: Utilisateurs plus récents summary_html: '%{name} créé depuis %{ip_address} le %{date}' summary_no_ip_html: '%{name} créé le %{date}' confirm: Confirmer les utilisateurs sélectionnés @@ -3214,6 +3234,13 @@ fr: reason: Motif du blocage status: État revoker_name: Révoqué par + navigation: + all_blocks: Tous les blocages + blocks_on_me: Blocages me concernant + blocks_on_user: Blocages sur %{user} + blocks_by_me: Blocages de ma part + blocks_by_user: Blocages effectués par %{user} + block: 'Blocage #%{id}' user_mutes: index: title: Utilisateurs en sourdine diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 3b43106c9..4039eaacd 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -378,7 +378,7 @@ ja: history_title_html: 'リレーション: %{name} の履歴' members: メンバー members_count: - other: '%{count}名' + other: '%{count}件' relation_member: entry_role_html: '%{type} %{name} (%{role} として)' type: @@ -718,7 +718,7 @@ ja: money_transfer: 送金 motorcycle_parking: バイクの駐輪場 music_school: 音楽学校 - nightclub: ナイト クラブ + nightclub: ナイトクラブ nursing_home: 老人ホーム parking: 駐車場 parking_entrance: 駐車場の入口 @@ -950,8 +950,8 @@ ja: stone: 岩石 tomb: 墓地 tower: 塔 - wayside_chapel: 祠 (ほこら) - wayside_cross: 道路際の十字架 + wayside_chapel: ほこら + wayside_cross: 路傍の十字架 wayside_shrine: 路傍の神仏 wreck: 沈没船 "yes": 史跡 @@ -1004,7 +1004,7 @@ ja: firepit: 炉 fishing: 釣り場 fitness_centre: フィットネスセンター - fitness_station: フィットネス ステーション + fitness_station: フィットネスステーション garden: 庭園 golf_course: ゴルフ場 horse_riding: 乗馬センター @@ -1020,7 +1020,7 @@ ja: recreation_ground: 遊園地 resort: リゾート sauna: サウナ - slipway: 造船台 + slipway: 船台 sports_centre: スポーツセンター stadium: スタジアム swimming_pool: 水泳用プール diff --git a/config/locales/ko.yml b/config/locales/ko.yml index b6cd13f24..f1a3292f7 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -25,6 +25,7 @@ # Author: Jonghaya # Author: Kwj2772 # Author: Macofe +# Author: Markingdots # Author: Nuevo Paso # Author: Priviet # Author: Revi @@ -576,6 +577,8 @@ ko: comment: 의견 newer_comments: 새 의견 older_comments: 이전 의견 + subscribe: + button: 토론 구독 doorkeeper: flash: applications: @@ -748,6 +751,7 @@ ko: townhall: 마을 회관 training: 교육시설 university: 대학 + vehicle_inspection: 차량검사 vending_machine: 자동 판매기 veterinary: 동물병원 village_hall: 커뮤니티 센터 @@ -2122,23 +2126,36 @@ ko: primary: 1ì°¨ 도로 secondary: 2ì°¨ 도로 unclassified: 4ì°¨ 도로(연결 도로) + pedestrian: 보도 track: 농·임도 bridleway: 승마로 cycleway: 자전거 도로 cycleway_national: 국립 자전거 도로 cycleway_regional: 지역별 자전거 도로 cycleway_local: 일반 자전거 도로 + cycleway_mtb: 산악자전거 코스 footway: 보도 rail: 철도 + train: 기차 subway: 지하철 + ferry: 페리 + light_rail: 경전철 + tram: 노면 전차 + trolleybus: 무궤도 전차 + bus: 버스 cable_car: 케이블 ì¹´ chair_lift: 체어 리프트 runway: 공항 활주로 taxiway: 공항 유도로 apron: 공항 계류장 admin: 행정 구역 경계 + capital: 수도 + vineyard: 포도밭 forest: 숲 wood: 산림 + grass: 잔디 + bare_rock: 노출 암반 + sand: 모래 golf: 골프장 park: 공원 common: 공유지 @@ -2149,16 +2166,20 @@ ko: heathland: 황무지 lake: 호수 reservoir: 저수지 + glacier: 빙하 + wetland: 습지 farm: 농장 brownfield: 재개발지역 cemetery: 묘역 allotments: 텃밭 pitch: 운동장 centre: 스포츠 센터 + beach: 해변 reserve: 자연 보호구역 military: 군사 지역 school: 학교 university: 대학 + hospital: 병원 building: 주요 건물 station: 철도역 summit: 산꼭대기 @@ -2168,8 +2189,11 @@ ko: private: 개인 통행 destination: 목적 통행 construction: 공사 중인 도로 + bus_stop: 버스 정류장 bicycle_shop: 자전거 가게 + bicycle_rental: 자전거 대여 bicycle_parking: 자전거 주차장 + bicycle_parking_small: 소형 자전거 주차장 toilets: 화장실 welcome: title: 환영합니다! @@ -2583,6 +2607,7 @@ ko: index: title: 사용자 heading: 사용자 + newer: 신규 사용자 summary_html: '%{name}님이 %{date}에 %{ip_address}에서 만들어짐' summary_no_ip_html: '%{name}이(가) %{date}에 만들어짐' confirm: 선택한 사용자 확인 @@ -2713,6 +2738,13 @@ ko: navigation: all_blocks: 모든 차단 block: '#%{id} 차단' + user_mutes: + index: + table: + thead: + actions: 동작 + tbody: + send_message: 메시지 보내기 notes: index: title: '%{user} 님이 제출했거나 덧글을 남긴 참고' @@ -2748,6 +2780,7 @@ ko: reactivate: 다시 활성화 comment_and_resolve: 의견 및 해결 comment: 의견 + log_in_to_comment: 이 메모에 댓글을 달려면 로그인하세요. report_link_html: 이 참고에 삭제해야 하는 민감한 정보가 포함되어 있으면 %{link}할 수 있습니다. other_problems_resolve: 참고의 다른 모든 문제는 댓글로 직접 해결하시기 바랍니다. other_problems_resolved: 다른 모든 문제는 해결하는 것으로 충분합니다. @@ -2828,6 +2861,7 @@ ko: map_data_zoom_in_tooltip: 지도 데이터를 보려면 확대 queryfeature_tooltip: 지물 정보 queryfeature_disabled_tooltip: 지물 정보를 확인하려면 확대 + embed_html_disabled: 이 지도 레이어에는 HTML 임베딩을 사용할 수 없습니다. changesets: show: comment: 의견 diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 8581ca33c..2b07655a6 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -285,9 +285,9 @@ ru: many: около %{count} часов назад other: "" about_x_months: - one: около часа назад - few: около %{count} часов назад - many: около %{count} часов назад + one: около месяца назад + few: около %{count} месяцев назад + many: около %{count} месяцев назад other: "" about_x_years: one: около года назад @@ -2781,7 +2781,7 @@ ru: display name description: Ваше имя, как оно будет видно другим пользователям. Вы сможете изменить его позже в настройках. external auth: 'Внешний сайт с учётной записью:' - use external auth: Альтернативно, используйте третье лицо для входа в систему. + use external auth: Либо воспользуйтесь аккаунтом с другого сайта auth no password: С внешним логином пароль не обязателен, но в некоторых случаях он необходим continue: Зарегистрироваться diff --git a/config/locales/skr-arab.yml b/config/locales/skr-arab.yml index cd252515d..6599330b0 100644 --- a/config/locales/skr-arab.yml +++ b/config/locales/skr-arab.yml @@ -1168,6 +1168,7 @@ skr-arab: contributors_ca_canada: کنیڈا contributors_fi_finland: فِن لینڈ contributors_fr_france: فرانس + contributors_hr_croatia: کروشین contributors_nl_netherlands: نیدرلینڈز contributors_nz_new_zealand: نیوزی لینڈ contributors_nz_cc_by: سی سی بی وائی Ù¤.Ù  diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index a8a6a779b..72bcc7186 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -525,6 +525,8 @@ zh-CN: body: 对不起,没有ID为 %{id} 的变更集。请检查您的拼写,或者可能是点击了错误的链接。 show: title: 变更集:%{id} + created: 创建于:%{when} + closed: 关闭于:%{when} created_ago_html: 创建于 %{time_ago} closed_ago_html: 关闭于 %{time_ago} created_ago_by_html: 由 %{user} 创建于 %{time_ago} @@ -2419,6 +2421,8 @@ zh-CN: identifiable: 可识别 private: 私有 trackable: 可追踪 + details_with_tags_html: 由%{user}在%{tags}于%{time_ago} + details_without_tags_html: 由%{user}于%{time_ago} index: public_traces: 公开GPS轨迹 my_gps_traces: 我的 GPS 轨迹 @@ -2703,6 +2707,9 @@ zh-CN: heading: 用户 older: 老用户 newer: 新用户 + found_users: + one: 找到%{count}位用户 + other: 找到%{count}位用户 summary_html: '%{name}在%{date}从%{ip_address}创建' summary_no_ip_html: '%{name} 创建于 %{date}' confirm: 确认所选用户 @@ -2844,6 +2851,15 @@ zh-CN: reason: 封禁的原因 status: 状态 revoker_name: 撤销者 + older: 旧的封禁 + newer: 新的封禁 + navigation: + all_blocks: 所有封禁 + blocks_on_me: 对我的封禁 + blocks_on_user: 对%{user}的封禁 + blocks_by_me: 由我做出的封禁 + blocks_by_user: 由%{user}做出的封禁 + block: 封禁#%{id} user_mutes: index: title: 已忽视用户 diff --git a/config/routes.rb b/config/routes.rb index d1e4c74ae..8271e7e4d 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -122,7 +122,7 @@ OpenStreetMap::Application.routes.draw do match :subscribe, :unsubscribe, :on => :member, :via => [:get, :post] end get "/changeset/:id/comments/feed" => "changeset_comments#index", :as => :changeset_comments_feed, :id => /\d*/, :defaults => { :format => "rss" } - resources :notes, :path => "note", :only => [:show, :new] + resources :notes, :path => "note", :id => /\d+/, :only => [:show, :new] get "/user/:display_name/history" => "changesets#index" get "/user/:display_name/history/feed" => "changesets#feed", :defaults => { :format => :atom } diff --git a/test/controllers/changesets_controller_test.rb b/test/controllers/changesets_controller_test.rb index 1fd9de2e8..3d264181c 100644 --- a/test/controllers/changesets_controller_test.rb +++ b/test/controllers/changesets_controller_test.rb @@ -321,13 +321,26 @@ class ChangesetsControllerTest < ActionDispatch::IntegrationTest def test_show_adjacent_changesets user = create(:user) - changesets = create_list(:changeset, 3, :user => user) + changesets = create_list(:changeset, 3, :user => user, :num_changes => 1) sidebar_browse_check :changeset_path, changesets[1].id, "changesets/show" assert_dom "a[href='#{changeset_path changesets[0]}']", :count => 1 assert_dom "a[href='#{changeset_path changesets[2]}']", :count => 1 end + def test_show_adjacent_nonempty_changesets + user = create(:user) + changeset1 = create(:changeset, :user => user, :num_changes => 1) + create(:changeset, :user => user, :num_changes => 0) + changeset3 = create(:changeset, :user => user, :num_changes => 1) + create(:changeset, :user => user, :num_changes => 0) + changeset5 = create(:changeset, :user => user, :num_changes => 1) + + sidebar_browse_check :changeset_path, changeset3.id, "changesets/show" + assert_dom "a[href='#{changeset_path changeset1}']", :count => 1 + assert_dom "a[href='#{changeset_path changeset5}']", :count => 1 + end + ## # This should display the last 20 non-empty changesets def test_feed diff --git a/test/controllers/messages_controller_test.rb b/test/controllers/messages_controller_test.rb index dfec6346f..69b0107a8 100644 --- a/test/controllers/messages_controller_test.rb +++ b/test/controllers/messages_controller_test.rb @@ -233,39 +233,35 @@ class MessagesControllerTest < ActionDispatch::IntegrationTest user = create(:user) recipient_user = create(:user) other_user = create(:user) - unread_message = create(:message, :unread, :sender => user, :recipient => recipient_user) + message = create(:message, :unread, :sender => user, :recipient => recipient_user) # Check that the message reply page requires us to login - get message_reply_path(:message_id => unread_message) - assert_redirected_to login_path(:referer => message_reply_path(:message_id => unread_message.id)) + get message_reply_path(:message_id => message) + assert_redirected_to login_path(:referer => message_reply_path(:message_id => message.id)) # Login as the wrong user session_for(other_user) # Check that we can't reply to somebody else's message - get message_reply_path(:message_id => unread_message) - assert_redirected_to login_path(:referer => message_reply_path(:message_id => unread_message.id)) + get message_reply_path(:message_id => message) + assert_redirected_to login_path(:referer => message_reply_path(:message_id => message.id)) assert_equal "You are logged in as `#{other_user.display_name}' but the message you have asked to reply to was not sent to that user. Please log in as the correct user in order to reply.", flash[:notice] # Login as the right user session_for(recipient_user) # Check that the message reply page loads - get message_reply_path(:message_id => unread_message) + get message_reply_path(:message_id => message) assert_response :success assert_template "new" - assert_select "title", "Re: #{unread_message.title} | OpenStreetMap" + assert_select "title", "Re: #{message.title} | OpenStreetMap" assert_select "form[action='/messages']", :count => 1 do assert_select "input[type='hidden'][name='display_name'][value='#{user.display_name}']" - assert_select "input#message_title[value='Re: #{unread_message.title}']", :count => 1 + assert_select "input#message_title[value='Re: #{message.title}']", :count => 1 assert_select "textarea#message_body", :count => 1 assert_select "input[type='submit'][value='Send']", :count => 1 end - assert Message.find(unread_message.id).message_read - - # Asking to reply to a message with no ID should fail - get message_reply_path - assert_response :success + assert Message.find(message.id).message_read # Asking to reply to a message with a bogus ID should fail get message_reply_path(:message_id => 99999) @@ -279,43 +275,39 @@ class MessagesControllerTest < ActionDispatch::IntegrationTest user = create(:user) recipient_user = create(:user) other_user = create(:user) - unread_message = create(:message, :unread, :sender => user, :recipient => recipient_user) + message = create(:message, :unread, :sender => user, :recipient => recipient_user) # Check that the show message page requires us to login - get message_path(:id => unread_message) - assert_redirected_to login_path(:referer => message_path(:id => unread_message.id)) + get message_path(:id => message) + assert_redirected_to login_path(:referer => message_path(:id => message.id)) # Login as the wrong user session_for(other_user) # Check that we can't read the message - get message_path(:id => unread_message) - assert_redirected_to login_path(:referer => message_path(:id => unread_message.id)) + get message_path(:id => message) + assert_redirected_to login_path(:referer => message_path(:id => message.id)) assert_equal "You are logged in as `#{other_user.display_name}' but the message you have asked to read was not sent by or to that user. Please log in as the correct user in order to read it.", flash[:notice] # Login as the message sender session_for(user) # Check that the message sender can read the message - get message_path(:id => unread_message) + get message_path(:id => message) assert_response :success assert_template "show" assert_select "a[href='#{user_path recipient_user}']", :text => recipient_user.display_name - assert_not Message.find(unread_message.id).message_read + assert_not Message.find(message.id).message_read # Login as the message recipient session_for(recipient_user) # Check that the message recipient can read the message - get message_path(:id => unread_message) + get message_path(:id => message) assert_response :success assert_template "show" assert_select "a[href='#{user_path user}']", :text => user.display_name - assert Message.find(unread_message.id).message_read - - # Asking to read a message with no ID should fail - get message_path - assert_response :success + assert Message.find(message.id).message_read # Asking to read a message with a bogus ID should fail get message_path(:id => 99999) @@ -380,17 +372,17 @@ class MessagesControllerTest < ActionDispatch::IntegrationTest user = create(:user) recipient_user = create(:user) other_user = create(:user) - unread_message = create(:message, :unread, :sender => user, :recipient => recipient_user) + message = create(:message, :unread, :sender => user, :recipient => recipient_user) # Check that the marking a message requires us to login - post message_mark_path(:message_id => unread_message) + post message_mark_path(:message_id => message) assert_response :forbidden # Login as a user with no messages session_for(other_user) # Check that marking a message we didn't send or receive fails - post message_mark_path(:message_id => unread_message) + post message_mark_path(:message_id => message) assert_response :not_found assert_template "no_such_message" @@ -398,28 +390,24 @@ class MessagesControllerTest < ActionDispatch::IntegrationTest session_for(recipient_user) # Check that the marking a message read works - post message_mark_path(:message_id => unread_message, :mark => "read") + post message_mark_path(:message_id => message, :mark => "read") assert_redirected_to inbox_messages_path - assert Message.find(unread_message.id).message_read + assert Message.find(message.id).message_read # Check that the marking a message unread works - post message_mark_path(:message_id => unread_message, :mark => "unread") + post message_mark_path(:message_id => message, :mark => "unread") assert_redirected_to inbox_messages_path - assert_not Message.find(unread_message.id).message_read + assert_not Message.find(message.id).message_read - # Check that the marking a message read via XHR works - post message_mark_path(:message_id => unread_message, :mark => "read") - assert_response :see_other - assert Message.find(unread_message.id).message_read - - # Check that the marking a message unread via XHR works - post message_mark_path(:message_id => unread_message, :mark => "unread") - assert_response :see_other - assert_not Message.find(unread_message.id).message_read + # Check that the marking a message read works and redirects to inbox from the message page + post message_mark_path(:message_id => message, :mark => "read"), :headers => { :referer => message_path(message) } + assert_redirected_to inbox_messages_path + assert Message.find(message.id).message_read - # Asking to mark a message with no ID should fail - post message_mark_path + # Check that the marking a message unread works and redirects to inbox from the message page + post message_mark_path(:message_id => message, :mark => "unread"), :headers => { :referer => message_path(message) } assert_redirected_to inbox_messages_path + assert_not Message.find(message.id).message_read # Asking to mark a message with a bogus ID should fail post message_mark_path(:message_id => 99999) @@ -467,10 +455,6 @@ class MessagesControllerTest < ActionDispatch::IntegrationTest assert_not m.from_user_visible assert m.to_user_visible - # Asking to destroy a message with no ID should fail - delete message_path - assert_redirected_to inbox_messages_path - # Asking to destroy a message with a bogus ID should fail delete message_path(:id => 99999) assert_response :not_found diff --git a/test/controllers/notes_controller_test.rb b/test/controllers/notes_controller_test.rb index e68a5f33b..5ecece0f4 100644 --- a/test/controllers/notes_controller_test.rb +++ b/test/controllers/notes_controller_test.rb @@ -93,7 +93,7 @@ class NotesControllerTest < ActionDispatch::IntegrationTest def test_read_note open_note = create(:note_with_comments) - browse_check :note_path, open_note.id, "notes/show" + sidebar_browse_check :note_path, open_note.id, "notes/show" end def test_read_hidden_note @@ -111,7 +111,7 @@ class NotesControllerTest < ActionDispatch::IntegrationTest session_for(create(:moderator_user)) - browse_check :note_path, hidden_note_with_comment.id, "notes/show" + sidebar_browse_check :note_path, hidden_note_with_comment.id, "notes/show" end def test_read_note_hidden_comments @@ -119,12 +119,12 @@ class NotesControllerTest < ActionDispatch::IntegrationTest create(:note_comment, :note => note, :visible => false) end - browse_check :note_path, note_with_hidden_comment.id, "notes/show" + sidebar_browse_check :note_path, note_with_hidden_comment.id, "notes/show" assert_select "div.note-comments ul li", :count => 1 session_for(create(:moderator_user)) - browse_check :note_path, note_with_hidden_comment.id, "notes/show" + sidebar_browse_check :note_path, note_with_hidden_comment.id, "notes/show" assert_select "div.note-comments ul li", :count => 2 end @@ -134,12 +134,12 @@ class NotesControllerTest < ActionDispatch::IntegrationTest create(:note_comment, :note => note, :author => hidden_user) end - browse_check :note_path, note_with_hidden_user_comment.id, "notes/show" + sidebar_browse_check :note_path, note_with_hidden_user_comment.id, "notes/show" assert_select "div.note-comments ul li", :count => 1 session_for(create(:moderator_user)) - browse_check :note_path, note_with_hidden_user_comment.id, "notes/show" + sidebar_browse_check :note_path, note_with_hidden_user_comment.id, "notes/show" assert_select "div.note-comments ul li", :count => 1 end @@ -147,7 +147,7 @@ class NotesControllerTest < ActionDispatch::IntegrationTest user = create(:user) closed_note = create(:note_with_comments, :closed, :closed_by => user, :comments_count => 2) - browse_check :note_path, closed_note.id, "notes/show" + sidebar_browse_check :note_path, closed_note.id, "notes/show" assert_select "div.note-comments ul li", :count => 2 assert_select "div.details", /Resolved by #{user.display_name}/ @@ -155,7 +155,7 @@ class NotesControllerTest < ActionDispatch::IntegrationTest reset! - browse_check :note_path, closed_note.id, "notes/show" + sidebar_browse_check :note_path, closed_note.id, "notes/show" assert_select "div.note-comments ul li", :count => 1 assert_select "div.details", /Resolved by deleted/ end @@ -165,42 +165,4 @@ class NotesControllerTest < ActionDispatch::IntegrationTest assert_response :success assert_template "notes/new" end - - private - - # This is a convenience method for most of the above checks - # First we check that when we don't have an id, it will correctly return a 404 - # then we check that we get the correct 404 when a non-existant id is passed - # then we check that it will get a successful response, when we do pass an id - def browse_check(path, id, template) - path_method = method(path) - - assert_raise ActionController::UrlGenerationError do - get path_method.call - end - - # assert_raise ActionController::UrlGenerationError do - # get path_method.call(:id => -10) # we won't have an id that's negative - # end - - get path_method.call(:id => 0) - assert_response :not_found - assert_template "browse/not_found" - assert_template :layout => "map" - - get path_method.call(:id => 0), :xhr => true - assert_response :not_found - assert_template "browse/not_found" - assert_template :layout => "xhr" - - get path_method.call(:id => id) - assert_response :success - assert_template template - assert_template :layout => "map" - - get path_method.call(:id => id), :xhr => true - assert_response :success - assert_template template - assert_template :layout => "xhr" - end end diff --git a/test/helpers/application_helper_test.rb b/test/helpers/application_helper_test.rb index a905090db..24d74c85f 100644 --- a/test/helpers/application_helper_test.rb +++ b/test/helpers/application_helper_test.rb @@ -31,12 +31,12 @@ class ApplicationHelperTest < ActionView::TestCase def test_rss_link_to link = rss_link_to(:controller => :diary_entries, :action => :rss) - assert_dom_equal "
    ", link + assert_dom_equal "", link end def test_atom_link_to link = atom_link_to(:controller => :changesets, :action => :feed) - assert_dom_equal "", link + assert_dom_equal "", link end def test_dir diff --git a/yarn.lock b/yarn.lock index dceec9cb9..f40f5e46b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -34,10 +34,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@9.1.1": - version "9.1.1" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.1.1.tgz#eb0f82461d12779bbafc1b5045cde3143d350a8a" - integrity sha512-5WoDz3Y19Bg2BnErkZTp0en+c/i9PvgFS7MBe1+m60HjFr0hrphlAGp4yzI7pxpt4xShln4ZyYp4neJm8hmOkQ== +"@eslint/js@9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.2.0.tgz#b0a9123e8e91a3d9a2eed3a04a6ed44fdab639aa" + integrity sha512-ESiIudvhoYni+MdsI8oD7skpprZ89qKocwRM2KEvhhBJ9nl5MRh7BXU5GTod7Mdygq+AUl+QzId6iWJKR/wABA== "@humanwhocodes/config-array@^0.13.0": version "0.13.0" @@ -251,14 +251,14 @@ eslint-visitor-keys@^4.0.0: integrity sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw== eslint@^9.0.0: - version "9.1.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.1.1.tgz#39ec657ccd12813cb4a1dab2f9229dcc6e468271" - integrity sha512-b4cRQ0BeZcSEzPpY2PjFY70VbO32K7BStTGtBsnIGdTSEEQzBi8hPBcGQmTG2zUvFr9uLe0TK42bw8YszuHEqg== + version "9.2.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.2.0.tgz#0700ebc99528753315d78090876911d3cdbf19fe" + integrity sha512-0n/I88vZpCOzO+PQpt0lbsqmn9AsnsJAQseIqhZFI8ibQT0U1AkEKRxA3EVMos0BoHSXDQvCXY25TUjB5tr8Og== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" "@eslint/eslintrc" "^3.0.2" - "@eslint/js" "9.1.1" + "@eslint/js" "9.2.0" "@humanwhocodes/config-array" "^0.13.0" "@humanwhocodes/module-importer" "^1.0.1" "@humanwhocodes/retry" "^0.2.3" @@ -581,9 +581,9 @@ optionator@^0.9.3: type-check "^0.4.0" osm-community-index@^5.2.0: - version "5.6.2" - resolved "https://registry.yarnpkg.com/osm-community-index/-/osm-community-index-5.6.2.tgz#920ccbde1638be09a96f35276818493b1798045f" - integrity sha512-r+zUbh25uaYGwnQMLpIqhngxEQcoGTVg8ycwYBOzmhVDUjd8vFhtfHelyqCv8PwYB1kfPp76luIQmx3JE+iSZw== + version "5.6.3" + resolved "https://registry.yarnpkg.com/osm-community-index/-/osm-community-index-5.6.3.tgz#8c7621683a2a4c1037ddb14d060b8442a3aa15cb" + integrity sha512-UnJBRbaMPIM3J08CA1crKeAok6c1HYiK6tB8AdnjvrvGNnl2JXPxdztA4Jcb3pbrjq/0q14v1mBr300TmtMwbQ== dependencies: diacritics "^1.3.0"