From: Tom Hughes Date: Tue, 3 Oct 2023 18:39:41 +0000 (+0100) Subject: Merge remote-tracking branch 'upstream/pull/4226' X-Git-Tag: live~1669 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/c8fc2218e5e342ad7afc9409974fd48a733ba94b?hp=408f2918d0d4ebebbb651363a3aa95a0e0eb5a82 Merge remote-tracking branch 'upstream/pull/4226' --- diff --git a/.rubocop.yml b/.rubocop.yml index f8060f948..dc2a33a35 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -17,11 +17,6 @@ AllCops: Rails: Enabled: true -# Config can be removed after https://github.com/rubocop/rubocop-factory_bot/issues/53 -FactoryBot/AssociationStyle: - Include: - - 'test/factories/**/*' - Layout/ExtraSpacing: AllowForAlignment: true diff --git a/Dockerfile b/Dockerfile index f3c56e161..446f71ac3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,6 +9,7 @@ RUN apt-get update \ curl \ default-jre-headless \ file \ + git-core \ gpg-agent \ libarchive-dev \ libffi-dev \ diff --git a/Gemfile b/Gemfile index b738fa159..724dd3bec 100644 --- a/Gemfile +++ b/Gemfile @@ -10,7 +10,9 @@ gem "json" gem "pg" # Use SCSS for stylesheets -gem "sassc-rails" +gem "dartsass-sprockets" +# Pin the dependentent sass-embedded to avoid deprecation warnings in bootstrap +gem "sass-embedded", "~> 1.64.0" # Use Terser as compressor for JavaScript assets gem "terser" @@ -43,7 +45,7 @@ gem "sprockets-exporters_pack" gem "actionpack-page_caching", ">= 1.2.0" gem "activerecord-import" gem "active_record_union" -gem "bootstrap", "~> 5.1.0" +gem "bootstrap", :github => "gravitystorm/bootstrap-rubygem", :branch => "dartsass_5_2_3" gem "bootstrap_form", "~> 5.0" gem "cancancan" gem "composite_primary_keys", "~> 14.0.0" diff --git a/Gemfile.lock b/Gemfile.lock index 35d67d327..c8784ed7c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,3 +1,12 @@ +GIT + remote: https://github.com/gravitystorm/bootstrap-rubygem.git + revision: 7bd2caa8a2897a55892915a789d4e020906adb60 + branch: dartsass_5_2_3 + specs: + bootstrap (5.2.3) + autoprefixer-rails (>= 9.1.0) + popper_js (>= 2.11.6, < 3) + GEM remote: https://rubygems.org/ specs: @@ -86,16 +95,16 @@ GEM autoprefixer-rails (10.4.15.0) execjs (~> 2) aws-eventstream (1.2.0) - aws-partitions (1.820.0) - aws-sdk-core (3.181.0) + aws-partitions (1.831.0) + aws-sdk-core (3.185.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.651.0) aws-sigv4 (~> 1.5) jmespath (~> 1, >= 1.6.1) - aws-sdk-kms (1.71.0) - aws-sdk-core (~> 3, >= 3.177.0) + aws-sdk-kms (1.72.0) + aws-sdk-core (~> 3, >= 3.184.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.134.0) + aws-sdk-s3 (1.136.0) aws-sdk-core (~> 3, >= 3.181.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.6) @@ -117,13 +126,9 @@ GEM debug_inspector (>= 0.0.1) bootsnap (1.16.0) msgpack (~> 1.2) - bootstrap (5.1.3) - autoprefixer-rails (>= 9.1.0) - popper_js (>= 2.9.3, < 3) - sassc-rails (>= 2.0.0) - bootstrap_form (5.2.3) - actionpack (>= 6.0) - activemodel (>= 6.0) + bootstrap_form (5.3.2) + actionpack (>= 6.1) + activemodel (>= 6.1) brakeman (6.0.1) brotli (0.4.0) browser (5.3.1) @@ -152,7 +157,15 @@ GEM crack (0.4.5) rexml crass (1.0.6) - dalli (3.2.5) + dalli (3.2.6) + dartsass-ruby (3.0.1) + sass-embedded (~> 1.54) + dartsass-sprockets (3.0.0) + dartsass-ruby (~> 3.0) + railties (>= 4.0.0) + sprockets (> 3.0) + sprockets-rails + tilt date (3.3.3) debug_inspector (1.1.0) deep_merge (1.2.2) @@ -164,7 +177,7 @@ GEM docile (1.4.0) doorkeeper (5.6.6) railties (>= 5) - doorkeeper-i18n (5.2.6) + doorkeeper-i18n (5.2.7) doorkeeper (>= 5.2) doorkeeper-openid_connect (1.8.7) doorkeeper (>= 5.5, < 5.7) @@ -209,7 +222,7 @@ GEM rubocop smart_properties erubi (1.12.0) - execjs (2.9.0) + execjs (2.9.1) exifr (1.4.0) factory_bot (6.2.1) activesupport (>= 5.0.0) @@ -221,11 +234,11 @@ GEM faraday-net_http (>= 2.0, < 3.1) ruby2_keywords (>= 0.0.4) faraday-net_http (3.0.2) - ffi (1.15.5) + ffi (1.16.2) ffi-compiler (1.0.1) ffi (>= 1.0.0) rake - ffi-libarchive (1.1.3) + ffi-libarchive (1.1.13) ffi (~> 1.0) frozen_record (0.27.0) activemodel @@ -234,6 +247,7 @@ GEM ffi (>= 1.0.0) globalid (1.2.1) activesupport (>= 6.1) + google-protobuf (3.24.3) hashdiff (1.0.1) hashie (5.0.0) highline (2.1.0) @@ -316,7 +330,7 @@ GEM net-protocol net-protocol (0.2.1) timeout - net-smtp (0.3.3) + net-smtp (0.4.0) net-protocol nio4r (2.5.9) nokogiri (1.15.4) @@ -439,7 +453,7 @@ GEM rinku (2.0.6) rotp (6.3.0) rouge (4.1.3) - rubocop (1.56.3) + rubocop (1.56.4) base64 (~> 0.1.1) json (~> 2.3) language_server-protocol (>= 3.17.0) @@ -453,16 +467,16 @@ GEM unicode-display_width (>= 2.4.0, < 3.0) rubocop-ast (1.29.0) parser (>= 3.2.1.0) - rubocop-capybara (2.18.0) + rubocop-capybara (2.19.0) rubocop (~> 1.41) - rubocop-factory_bot (2.23.1) + rubocop-factory_bot (2.24.0) rubocop (~> 1.33) - rubocop-minitest (0.31.1) + rubocop-minitest (0.32.2) rubocop (>= 1.39, < 2.0) - rubocop-performance (1.19.0) + rubocop-performance (1.19.1) rubocop (>= 1.7.0, < 2.0) rubocop-ast (>= 0.4.0) - rubocop-rails (2.21.0) + rubocop-rails (2.21.2) activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.33.0, < 2.0) @@ -474,19 +488,14 @@ GEM ffi (~> 1.12) ruby2_keywords (0.0.5) rubyzip (2.3.2) - sanitize (6.0.2) + sanitize (6.1.0) crass (~> 1.0.2) nokogiri (>= 1.12.0) - sassc (2.4.0) - ffi (~> 1.9) - sassc-rails (2.1.2) - railties (>= 4.0.0) - sassc (>= 2.0) - sprockets (> 3.0) - sprockets-rails - tilt + sass-embedded (1.64.2) + google-protobuf (~> 3.23) + rake (>= 13.0.0) secure_headers (6.5.0) - selenium-webdriver (4.12.0) + selenium-webdriver (4.13.1) rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2, < 3.0) websocket (~> 1.0) @@ -511,18 +520,18 @@ GEM actionpack (>= 5.2) activesupport (>= 5.2) sprockets (>= 3.0.0) - strong_migrations (1.6.1) + strong_migrations (1.6.3) activerecord (>= 5.2) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) terser (1.1.18) execjs (>= 0.3.0, < 3) thor (1.2.2) - tilt (2.2.0) + tilt (2.3.0) timeout (0.4.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - unicode-display_width (2.4.2) + unicode-display_width (2.5.0) validates_email_format_of (1.7.2) i18n vendorer (0.2.0) @@ -531,13 +540,13 @@ GEM addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) - websocket (1.2.9) + websocket (1.2.10) websocket-driver (0.7.6) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) xpath (3.2.0) nokogiri (~> 1.8) - zeitwerk (2.6.11) + zeitwerk (2.6.12) PLATFORMS ruby @@ -554,7 +563,7 @@ DEPENDENCIES better_errors binding_of_caller bootsnap (>= 1.4.2) - bootstrap (~> 5.1.0) + bootstrap! bootstrap_form (~> 5.0) brakeman browser @@ -566,6 +575,7 @@ DEPENDENCIES config connection_pool dalli + dartsass-sprockets debug_inspector delayed_job_active_record doorkeeper @@ -624,7 +634,7 @@ DEPENDENCIES rubocop-rails rubocop-rake sanitize - sassc-rails + sass-embedded (~> 1.64.0) secure_headers selenium-webdriver simplecov @@ -637,4 +647,4 @@ DEPENDENCIES webmock BUNDLED WITH - 2.3.26 + 2.4.19 diff --git a/Vendorfile b/Vendorfile index 680ed2225..4c6a80839 100644 --- a/Vendorfile +++ b/Vendorfile @@ -15,7 +15,7 @@ folder 'vendor/assets' do folder 'img', 'src/img' end - from 'https://github.com/jfirebaugh/leaflet-osm.git' do + from 'https://github.com/openstreetmap/leaflet-osm.git' do file 'leaflet.osm.js', 'leaflet-osm.js' end diff --git a/app/assets/images/banners/StateoftheMapEurope_2023.png b/app/assets/images/banners/StateoftheMapEurope_2023.png new file mode 100644 index 000000000..33e9db907 Binary files /dev/null and b/app/assets/images/banners/StateoftheMapEurope_2023.png differ diff --git a/app/assets/javascripts/leaflet.map.js b/app/assets/javascripts/leaflet.map.js index 6e61100f2..e1e0e64fd 100644 --- a/app/assets/javascripts/leaflet.map.js +++ b/app/assets/javascripts/leaflet.map.js @@ -51,6 +51,13 @@ L.OSM.Map = L.Map.extend({ }).prop("outerHTML"); var thunderforest = I18n.t("javascripts.map.thunderforest_credit", { thunderforest_link: thunderforest_link }); + var tracestrack_link = $("", { + href: "https://www.tracestrack.com/", + target: "_blank", + text: I18n.t("javascripts.map.tracestrack") + }).prop("outerHTML"); + var tracestrack = I18n.t("javascripts.map.tracestrack_credit", { tracestrack_link: tracestrack_link }); + var memomaps_link = $("", { href: "https://memomaps.de/", target: "_blank", @@ -99,6 +106,16 @@ L.OSM.Map = L.Map.extend({ })); } + if (OSM.TRACESTRACK_KEY) { + this.baseLayers.push(new L.OSM.TracestrackTopo({ + attribution: copyright + ". " + tracestrack + ". " + terms, + apikey: OSM.TRACESTRACK_KEY, + code: "P", + keyid: "tracestracktopo", + name: I18n.t("javascripts.map.base.tracestracktop_topo") + })); + } + this.baseLayers.push(new L.OSM.OPNVKarte({ attribution: copyright + ". " + memomaps + ". " + terms, code: "O", diff --git a/app/assets/javascripts/osm.js.erb b/app/assets/javascripts/osm.js.erb index 0ffd35e2c..0a0f5c67a 100644 --- a/app/assets/javascripts/osm.js.erb +++ b/app/assets/javascripts/osm.js.erb @@ -25,6 +25,10 @@ OSM = { THUNDERFOREST_KEY: <%= Settings.thunderforest_key.to_json %>, <% end %> +<% if Settings.key?(:tracestrack_key) %> + TRACESTRACK_KEY: <%= Settings.tracestrack_key.to_json %>, +<% end %> + MARKER_GREEN: <%= image_path("marker-green.png").to_json %>, MARKER_RED: <%= image_path("marker-red.png").to_json %>, diff --git a/app/assets/stylesheets/common.scss b/app/assets/stylesheets/common.scss index b95d1fcd6..6ff46c07c 100644 --- a/app/assets/stylesheets/common.scss +++ b/app/assets/stylesheets/common.scss @@ -143,7 +143,7 @@ header { nav.primary { - .btn-outline-primary { + & > .btn-group .btn-outline-primary { @include button-outline-variant($green, $color-hover: $white, $active-color: $white); } @@ -729,14 +729,6 @@ tr.turn:hover { } } - .comments { - color: $darkgrey; - } - - .comments-0 { - opacity: 0.5; - } - .changeset_more .loader { display: none; width: 100%; @@ -1055,11 +1047,12 @@ tr.turn:hover { .search_form { background-color: $lightgrey; + #query { + z-index: 0; + } + .describe_location { - top: 6px; - right: 6px; font-size: 10px; - color: $blue; } } @@ -1121,8 +1114,6 @@ div.secondary-actions { code { background: $lightgrey; padding: 2px 3px; - direction: inherit; /* fix for Bootstrap < 5.2 */ - unicode-bidi: unset; /* fix for Bootstrap < 5.2 */ } pre { diff --git a/app/assets/stylesheets/print.scss b/app/assets/stylesheets/print.scss index 71fdf3978..a4afdf576 100644 --- a/app/assets/stylesheets/print.scss +++ b/app/assets/stylesheets/print.scss @@ -1,30 +1,58 @@ +html { + height: 100%; +} + +body { + height: 100%; + margin: 0; +} + +#content { + height: 100%; +} + header, -#sidebar, -#permalink, .leaflet-control { display: none; } -html { - height: 100%; +.map-layout .overlay-sidebar #sidebar { + display: none; +} + +.map-layout #sidebar { + page-break-after: always; + + & > * { + display: none; + } + #sidebar_content { + display: unset; + } + + button, + input, + textarea, + .secondary-actions { + display: none; + } +} + +#map-ui { + display: none !important; } #map { - position: absolute !important; - top: 0; - bottom: 40px; - left: 0; - right: 0; + position: relative; + height: calc(100% - 40px); + box-sizing: border-box; border: 1px solid black; } /* Rules for attribution text under the main map shown on printouts */ #attribution { - position: absolute !important; - bottom: 0; - left: 0; - right: 0; + page-break-inside: avoid; height: 40px; font-size: 12px; text-align: center; diff --git a/app/helpers/banner_helper.rb b/app/helpers/banner_helper.rb index 17c6eace3..9048d4840 100644 --- a/app/helpers/banner_helper.rb +++ b/app/helpers/banner_helper.rb @@ -1,13 +1,19 @@ module BannerHelper def active_banners BANNERS.reject do |_k, v| - enddate = v[:enddate] begin - parsed = enddate && Date.parse(enddate) + startdate = v[:startdate] && Date.parse(v[:startdate]) rescue StandardError - parsed = nil + startdate = nil end - !parsed.is_a?(Date) || (parsed.is_a?(Date) && parsed.past?) + + begin + enddate = v[:enddate] && Date.parse(v[:enddate]) + rescue StandardError + enddate = nil + end + + startdate&.future? || enddate&.past? end end diff --git a/app/helpers/issues_helper.rb b/app/helpers/issues_helper.rb index 7bc64cb83..55bd0952f 100644 --- a/app/helpers/issues_helper.rb +++ b/app/helpers/issues_helper.rb @@ -26,9 +26,9 @@ module IssuesHelper end def open_issues_count - count = Issue.visible_to(current_user).open.limit(100).size - if count > 99 - tag.span("99+", :class => "badge count-number") + count = Issue.visible_to(current_user).open.limit(Settings.max_issues_count).size + if count >= Settings.max_issues_count + tag.span(I18n.t("count.at_least_pattern", :count => Settings.max_issues_count), :class => "badge count-number") elsif count.positive? tag.span(count, :class => "badge count-number") end diff --git a/app/helpers/user_roles_helper.rb b/app/helpers/user_roles_helper.rb index c9f8e2e65..b870d0273 100644 --- a/app/helpers/user_roles_helper.rb +++ b/app/helpers/user_roles_helper.rb @@ -25,9 +25,7 @@ module UserRolesHelper end if image - svg_icon = tag.source(:srcset => image_path("#{image}.svg"), :type => "image/svg+xml") - png_icon = image_tag("#{image}.png", :srcset => image_path("#{image}.svg"), :size => "20x20", :border => 0, :alt => alt, :title => title) - icon = tag.picture(svg_icon + png_icon) + icon = image_tag("#{image}.png", :srcset => image_path("#{image}.svg"), :size => "20x20", :border => 0, :alt => alt, :title => title) icon = link_to(icon, url, :method => :post, :data => { :confirm => confirm }) if url end diff --git a/app/views/account/deletions/show.html.erb b/app/views/account/deletions/show.html.erb index 99c1686d8..ddc821677 100644 --- a/app/views/account/deletions/show.html.erb +++ b/app/views/account/deletions/show.html.erb @@ -6,10 +6,7 @@
- - " type="image/svg+xml"> - <%= image_tag("notice.png", :srcset => image_path("notice.svg")) %> - + <%= image_tag("notice.png", :srcset => image_path("notice.svg")) %>
-
+
"> <%= changeset.comments.length %>
diff --git a/app/views/layouts/_flash.html.erb b/app/views/layouts/_flash.html.erb index eaf3078fe..1d3bc3421 100644 --- a/app/views/layouts/_flash.html.erb +++ b/app/views/layouts/_flash.html.erb @@ -1,10 +1,7 @@ <% if flash[:error] %>
- - " type="image/svg+xml" /> - <%= image_tag("notice.png", :srcset => image_path("notice.svg")) %> - + <%= image_tag("notice.png", :srcset => image_path("notice.svg")) %>
<%= render_flash(flash[:error]) %>
@@ -13,10 +10,7 @@ <% if flash[:warning] %>
- - " type="image/svg+xml"> - <%= image_tag("notice.png", :srcset => image_path("notice.svg")) %> - + <%= image_tag("notice.png", :srcset => image_path("notice.svg")) %>
<%= render_flash(flash[:warning]) %>
@@ -25,10 +19,7 @@ <% if flash[:notice] %>
- - " type="image/svg+xml"> - <%= image_tag("notice.png", :srcset => image_path("notice.svg")) %> - + <%= image_tag("notice.png", :srcset => image_path("notice.svg")) %>
<%= render_flash(flash[:notice]) %>
diff --git a/app/views/layouts/_header.html.erb b/app/views/layouts/_header.html.erb index fd2ae0a4a..8ff04536d 100644 --- a/app/views/layouts/_header.html.erb +++ b/app/views/layouts/_header.html.erb @@ -1,10 +1,7 @@

- - " type="image/svg+xml" /> - <%= image_tag "osm_logo.png", :srcset => image_path("osm_logo.svg"), :alt => t("layouts.logo.alt_text"), :class => "logo" %> - + <%= image_tag "osm_logo.png", :srcset => image_path("osm_logo.svg"), :alt => t("layouts.logo.alt_text"), :class => "logo" %> <%= t "layouts.project_name.h1" %>

diff --git a/app/views/layouts/_search.html.erb b/app/views/layouts/_search.html.erb index 31386b1ab..dc13414b7 100644 --- a/app/views/layouts/_search.html.erb +++ b/app/views/layouts/_search.html.erb @@ -3,13 +3,11 @@
-
- <%= link_to t("site.search.where_am_i"), "#", :class => "describe_location position-absolute", :title => t("site.search.where_am_i_title") %> - <%= text_field_tag "query", params[:query], :placeholder => t("site.search.search"), :autofocus => autofocus, :autocomplete => "on", :class => "form-control form-control-sm", :dir => "auto" %> -
-
- <%= submit_tag t("site.search.submit_text"), :class => "btn btn-sm btn-primary", :data => { :disable_with => false } %> + <%= text_field_tag "query", params[:query], :placeholder => t("site.search.search"), :autofocus => autofocus, :autocomplete => "on", :class => "form-control form-control-sm", :dir => "auto" %> +
+ <%= button_tag t("site.search.where_am_i"), :type => "button", :class => "describe_location position-absolute end-0 me-1 btn btn-sm btn-outline-primary border-0 bg-transparent", :title => t("site.search.where_am_i_title") %>
+ <%= submit_tag t("site.search.submit_text"), :class => "btn btn-sm btn-primary", :data => { :disable_with => false } %>
diff --git a/app/views/layouts/error.html.erb b/app/views/layouts/error.html.erb index db6179769..435de3015 100644 --- a/app/views/layouts/error.html.erb +++ b/app/views/layouts/error.html.erb @@ -8,10 +8,7 @@ - - " type="image/svg+xml" /> - <%= image_tag "osm_logo.png", :srcset => image_path("osm_logo.svg"), :alt => t("layouts.logo.alt_text"), :class => "logo" %> - + <%= image_tag "osm_logo.png", :srcset => image_path("osm_logo.svg"), :alt => t("layouts.logo.alt_text"), :class => "logo" %>
<%= yield %> diff --git a/app/views/traces/index.html.erb b/app/views/traces/index.html.erb index ddbaa9e94..63ade87d7 100644 --- a/app/views/traces/index.html.erb +++ b/app/views/traces/index.html.erb @@ -47,15 +47,14 @@ <% end %> - - diff --git a/config/banners.yml b/config/banners.yml index c2a4df07b..23256643d 100644 --- a/config/banners.yml +++ b/config/banners.yml @@ -8,3 +8,10 @@ donate_2023: - [banners/donate_2023_1@2x.jpg, 2x] dark: true enddate: 2023-dec-31 +sotmeu_2023: + id: sotmeu_2023 + alt: State of the Map Europe 2023 + link: https://stateofthemap.eu/ + img: banners/StateoftheMapEurope_2023.png + startdate: 2023-oct-05 + enddate: 2023-nov-05 diff --git a/config/initializers/config.rb b/config/initializers/config.rb index 983f02266..c1cc522a5 100644 --- a/config/initializers/config.rb +++ b/config/initializers/config.rb @@ -77,6 +77,7 @@ Config.setup do |config| required(:tracepoints_per_page).filled(:int?) required(:max_number_of_way_nodes).filled(:int?) required(:max_number_of_relation_members).filled(:int?) + required(:max_issues_count).filled(:int?) required(:api_timeout).filled(:int?) required(:imagery_blacklist).maybe(:array?) required(:status).filled(:str?, :included_in? => ALLOWED_STATUS) diff --git a/config/initializers/secure_headers.rb b/config/initializers/secure_headers.rb index e710019da..778b5b827 100644 --- a/config/initializers/secure_headers.rb +++ b/config/initializers/secure_headers.rb @@ -7,7 +7,7 @@ csp_policy = { :form_action => %w['self'], :frame_ancestors => %w['self'], :frame_src => %w['self'], - :img_src => %w['self' data: www.gravatar.com *.wp.com tile.openstreetmap.org *.tile.openstreetmap.org *.tile.thunderforest.com tileserver.memomaps.de *.openstreetmap.fr], + :img_src => %w['self' data: www.gravatar.com *.wp.com tile.openstreetmap.org *.tile.openstreetmap.org *.tile.thunderforest.com tileserver.memomaps.de tile.tracestrack.com *.openstreetmap.fr], :manifest_src => %w['self'], :media_src => %w['none'], :object_src => %w['self'], diff --git a/config/locales/ar.yml b/config/locales/ar.yml index 7ba39bd48..823be1ad6 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -2342,6 +2342,7 @@ ar: public_traces_from: آثار جي بي إس عمومية من %{user} description: تصفح أحدث مسارات GPS المرفوعة tagged_with: بالوسم %{tags} + wiki_page: صفحة ويكي upload_trace: حمل أثر my_traces: أثري في GPS destroy: diff --git a/config/locales/bg.yml b/config/locales/bg.yml index 384fb4202..3c75867fe 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -1088,8 +1088,8 @@ bg: level2: Държавна граница level4: Държавна граница level5: Граница на региона - level6: Държавна граница - level8: Граница на града + level6: Областна граница + level8: Граница на землище level9: Граница на селото level10: Граница на предградията types: diff --git a/config/locales/br.yml b/config/locales/br.yml index 21cd87eb6..dce891b2c 100644 --- a/config/locales/br.yml +++ b/config/locales/br.yml @@ -21,6 +21,8 @@ br: time: formats: friendly: '%e %B %Y da %H:%M' + count: + at_least_pattern: '%{count}+' helpers: file: prompt: Dibab ur restr @@ -297,6 +299,7 @@ br: retain_caveats: 'Koulskoude, miret e vo un nebeut titouroù diwar ho penn e OpenStreetMap goude ma vefe bet dilamet ho kont:' retain_edits: Ho kemmoù degaset d'ar gartenn, ma'z eus anezho, a vo dalc'het. + retain_traces: Ar roudoù ho peus enporzhiet, ma'z eus anezho, a vo dalc'het. retain_diary_entries: Hoc'h enmonedoù hag evezhiadennoù en deiz-levr, ma'z eus anezho, a vo miret met kuzhet e vint. retain_changeset_discussions: Ho kaozeadennoù, ma'z eus anezho, a vo miret. @@ -757,6 +760,7 @@ br: public_bath: Kibelldi foran public_bookcase: Levraoueg foran public_building: Savadur foran + ranger_station: Post gward-koad recycling: Lec'h adaozañ restaurant: Preti school: Skol @@ -1987,6 +1991,8 @@ br: title: Skouer deverkadur more_title_html: Titouroù ouzhpenn more_1_1_osmf_licence_page: Pajenn aotre-implijout diazezadur OSM + more_2_1_api_usage_policy: Politikerezh implij an API + more_2_1_tile_usage_policy: Politikerezh implij an teol contributors_title_html: Hor c'henlabourerien contributors_intro_html: 'Miliadoù a hiniennoù a labour ganimp. Ebarzhiñ a reomp ivez roadennoù digor eus ajañsoù kartennañ hag eus mamennoù all, hag @@ -2612,6 +2618,7 @@ br: remove as friend: Lemel eus ar vignoned add as friend: Ouzhpennañ d'ar vignoned mapper since: 'Kartennour abaoe :' + uid: 'Kod anaout an implijer:' ct status: 'Diferadennoù ar c''henlabourer :' ct undecided: En entremar ct declined: Nac'het @@ -2816,7 +2823,7 @@ br: index: title: Notennoù kaset pe addispleget gant %{user} heading: notennoù %{user} - subheading_html: Notennoù kaset pe addispleget gant %{user} + subheading_html: Notennoù %{submitted} pe %{commented} gant %{user} subheading_submitted: kaset subheading_commented: skrivet war no_notes: Notenn ebet @@ -2924,8 +2931,11 @@ br: make_a_donation: Ober un donezon website_and_api_terms: Termenoù-implij al lec'hien hag an API osm_france: OpenStreetMap Frañs + thunderforest_credit: Teol pourchaset gant %{thunderforest_link} andy_allan: Andy Allan + opnvkarte_credit: Teol pourchaset gant %{memomaps_link} memomaps: MeMoMaps + tracestrack_credit: Teol pourchaset gant %{tracestrack_link} site: edit_tooltip: Kemmañ ar gartenn edit_disabled_tooltip: Zoumañ da zegas kemmoù war ar gartenn diff --git a/config/locales/ca.yml b/config/locales/ca.yml index 580a997d6..c3212eab2 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -2059,9 +2059,12 @@ ca: contributors_at_stadt_wien: Ciutat de Viena contributors_at_cc_by: CC BY contributors_at_land_vorarlberg: Estat de Vorarlberg + contributors_at_cc_by_at_with_amendments: CC BY AT amb esmenes contributors_au_australia: Austràlia contributors_ca_canada: Canadà contributors_fi_finland: Finlàndia + contributors_fr_credit_html: '%{france}: Conté dades d''origen de la «Direction + Générale des Impôts».' contributors_fr_france: França contributors_nl_netherlands: Països Baixos contributors_nz_new_zealand: Nova Zelanda @@ -2069,6 +2072,7 @@ ca: contributors_rs_serbia: Sèrbia contributors_rs_rgz: Autoritat geodèsica sèrbia contributors_si_slovenia: Eslovènia + contributors_si_gu: Autoritat de topografia i cartografia contributors_si_mkgp: Ministeri d'Agricultura, Forestal i Alimentació contributors_es_credit_html: |- %{spain}: conté dades procedents de @@ -2752,6 +2756,7 @@ ca: remove as friend: Deixa l'amistat add as friend: Afegeix com a amic mapper since: 'Cartografiant des de:' + uid: 'ID d''usuari:' ct status: 'Termes de col·laboració:' ct undecided: No decidit ct declined: Rebutjat @@ -3033,6 +3038,7 @@ ca: cyclosm: CyclOSM cycle_map: Mapa ciclista transport_map: Mapa de transports + tracestracktop_topo: Tracestrack Topo hot: Humanitari opnvkarte: ÖPNVKarte (mapa de transport públic) layers: @@ -3051,6 +3057,8 @@ ca: andy_allan: Andy Allan opnvkarte_credit: Tessel·les cortesia de %{memomaps_link} memomaps: MeMoMaps + tracestrack_credit: Tessel·les cortesia de %{tracestrack_link} + tracestrack: Tracestrack hotosm_credit: Estil de tessel·les per %{hotosm_link}, hostatjades per %{osm_france_link} hotosm_name: Equip humanitari de l'OpenStreetMap site: diff --git a/config/locales/ce.yml b/config/locales/ce.yml index e6b897d58..2a3b9bacc 100644 --- a/config/locales/ce.yml +++ b/config/locales/ce.yml @@ -187,7 +187,7 @@ ce: closed: ДӀачӀагӀа version: Верси in_changeset: Нисдарш - anonymous: цӀе хьулйина + anonymous: аноним no_comment: (коммент йац) part_of: Дакъалоцу цу download_xml: Схьаэца XML @@ -273,7 +273,7 @@ ce: telephone_link: Телпо тоха %{phone_number} query: title: ХӀун йу кхузахь? - introduction: Уллера объекташ карайан, картан тӀетаӀае + introduction: Уллера объекташ карайан, картин тӀетаӀайe nearby: Уллера объекташ enclosing: Йолу меттиг changesets: @@ -691,13 +691,13 @@ ce: title_html: Хаам %{link} categories: diary_entry: - other_label: Кхиерг + other_label: Кхийерг diary_comment: - other_label: Кхиерг + other_label: Кхийерг user: - other_label: Кхиерг + other_label: Кхийерг note: - other_label: Кхиерг + other_label: Кхийерг layouts: logout: Болх дӀаберзор log_in: ЧугӀо @@ -706,7 +706,7 @@ ce: export: Экспорт issues: Проблемаш data: Хаамаш - export_data: Хаамаш экспортъян + export_data: Хаамаш экспортбан gps_traces: GPS-трекаш gps_traces_tooltip: Болхбе GPS-трекашца user_diaries: Декъашхочун дневник @@ -968,7 +968,7 @@ ce: hidden_title: 'Къайлайаьккхина билгало #%{note_name}' report: Хаамбе хӀокху билгалонах hide: Къайлайаккха - resolve: Кечъян + resolve: Кечйан reactivate: Йуха йела comment_and_resolve: Жопделла кечъе comment: Жопдала diff --git a/config/locales/cs.yml b/config/locales/cs.yml index ba372331c..494e3db25 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -7,6 +7,7 @@ # Author: Bilykralik16 # Author: Chmee2 # Author: Cvanca +# Author: Decamexd # Author: DemonioCZ # Author: DoubyCz # Author: Dvorapa @@ -61,7 +62,7 @@ cs: prompt: Vyberte soubor submit: diary_comment: - create: Odeslat + create: Okomentovat diary_entry: create: Publikovat update: Aktualizovat @@ -70,11 +71,11 @@ cs: message: create: Odeslat client_application: - create: Zaregistrovat + create: Registrovat update: Aktualizovat oauth2_application: - create: Zaregistrovat - update: Uložit + create: Registrovat + update: Aktualizovat redaction: create: Vytvořit redakci update: Uložit redakci @@ -87,7 +88,7 @@ cs: activerecord: errors: messages: - invalid_email_address: nevypadá jako platná e-mailová adresa + invalid_email_address: není platná e-mailová adresa email_address_not_routable: není routovatelná models: acl: Seznam přístupových práv @@ -143,8 +144,8 @@ cs: user: Uživatel title: Nadpis body: Obsah - latitude: Šířka - longitude: Délka + latitude: Zeměpisná šířka + longitude: Zeměpisná délka language_code: Jazyk doorkeeper/application: name: Název @@ -159,8 +160,8 @@ cs: visible: Viditelný name: Název souboru size: Velikost - latitude: Šířka - longitude: Délka + latitude: Zeměpisná šířka + longitude: Zeměpisná délka public: Veřejná description: Popis gpx_file: Nahrát GPX soubor @@ -182,7 +183,7 @@ cs: auth_uid: Autentifikační UID email: E-mail email_confirmation: Potvrzení e-mailu - new_email: nová emailová adresa + new_email: Nová emailová adresa active: Aktivní display_name: Zobrazované jméno description: Popis profilu @@ -302,6 +303,7 @@ cs: reopened_at_by_html: Reaktivováno %{when} od %{user} rss: title: Poznámky OpenStreetMap + description_all: Seznam nahlášených, komentovaných nebo uzavřených poznámek description_area: Seznam poznámek hlášených, komentovaných nebo uzavřených ve vaší oblasti [(%{min_lat}|%{min_lon}) – (%{max_lat}|%{max_lon})] description_item: RSS kanál k poznámce %{id} @@ -1915,6 +1917,9 @@ cs: home location: Poloha domova no home location: Nezadali jste polohu svého bydliště. update home location on click: Upravit pozici domova při kliknutí na mapu? + show: Zobrazit + delete: Smazat + undelete: Vrátit smazání update: success: Profil nastaven. failure: Nepodařilo se nastavit profil. @@ -1968,7 +1973,8 @@ cs: support: podporu shared: markdown_help: - heading_html: Analyzováno pomocí %{kramdown_link} + heading_html: Zpracovává se %{kramdown_link} + kramdown: kramdownem headings: Nadpisy heading: Nadpis subheading: Podnadpis @@ -2105,6 +2111,7 @@ cs: contributors_at_austria: Rakousko contributors_at_stadt_wien: města Vídně contributors_at_cc_by: CC BY + contributors_at_cc_by_url: https://creativecommons.org/licenses/by/3.0/at/deed.cs contributors_at_land_vorarlberg: země Vorarlbersko contributors_at_cc_by_at_with_amendments: CC BY AT s dodatky contributors_au_credit_html: '%{australia}: Zahrnuje nebo využívá Administrative @@ -2825,6 +2832,7 @@ cs: remove as friend: Odebrat z přátel add as friend: Přidat do přátel mapper since: 'Účastník projektu od:' + uid: 'ID uživatele:' ct status: 'Podmínky pro přispěvatele:' ct undecided: Nerozhodnuto ct declined: Odmítnuty diff --git a/config/locales/cy.yml b/config/locales/cy.yml index 205b01f1a..fe807d30c 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -11,6 +11,8 @@ cy: time: formats: friendly: '%e %B %Y am %H:%M' + count: + at_least_pattern: '%{count}+' helpers: file: prompt: Dewiswch ffeil @@ -31,8 +33,8 @@ cy: create: Cofrestru update: Diweddaru redaction: - create: Creu golygiadau - update: Cadw golygiadau + create: Creu gorchuddiad + update: Cadw gorchuddiad trace: create: Uwchlwytho update: Cadw newidiadau @@ -42,7 +44,7 @@ cy: activerecord: errors: messages: - invalid_email_address: nid yw'n ymddangos ei fod yn gyfeiriad ebost dilys + invalid_email_address: nid yw'n ymddangos ei fod yn gyfeiriad e-bost dilys email_address_not_routable: nid yw'n gyrchadwy models: acl: Rhestr Rheoli Mynediad @@ -52,7 +54,7 @@ cy: diary_comment: Nodyn Dyddiadur diary_entry: Cofnod Dyddiadur friend: Ffrind - issue: Mater + issue: Gwall language: Iaith message: Neges node: Nod @@ -70,9 +72,9 @@ cy: relation_tag: Tag Perthynas report: Adrodd session: Sesiwn - trace: Dargopïo - tracepoint: Pwynt Dargopïo - tracetag: Tag Dargopïo + trace: Arllwybr + tracepoint: Pwynt Arllwybr + tracetag: Tag Arllwybr user: Defnyddiwr user_preference: Dewis Defnyddiwr user_token: Tocyn Defnyddiwr @@ -89,8 +91,8 @@ cy: allow_write_prefs: addasu eu dewisiadau defnyddiwr allow_write_diary: creu cofnodion dyddiadur, sylwadau a gwneud ffrindiau allow_write_api: golygu'r map - allow_read_gpx: darllen eu dargopiadau GPS - allow_write_gpx: uwchlwytho dargopiadau GPS + allow_read_gpx: darllen eu harllwybrau GPS + allow_write_gpx: uwchlwytho arllwybrau GPS allow_write_notes: addasu nodiadau diary_comment: body: Corff @@ -263,7 +265,7 @@ cy: commented_at_by_html: Diweddarwyd %{when} gan %{user} closed_at_html: Wedi datrys %{when} closed_at_by_html: Wedi datrys %{when} gan %{user} - reopened_at_html: Wedi ail-gychwyn %{when} + reopened_at_html: Wedi ailgychwyn %{when} reopened_at_by_html: Wedi ailgychwyn %{when} gan %{user} rss: title: Nodiadau OpenStreetMap @@ -279,6 +281,8 @@ cy: show: title: Dileu fy nghyfrif delete_account: Dileu cyfrif + retain_edits: Bydd eich golygiadau i'r gronfa ddata mapiau, os ydynt yn bodoli, + yn cael eu cadw. retain_changeset_discussions: Bydd eich trafodaethau grwpiau newid, os ydynt yn bodoli, yn cael eu cadw. confirm_delete: Ydych chi'n siŵr? @@ -323,7 +327,7 @@ cy: created_ago_by_html: Wedi creu %{time_ago} gan %{user} closed_ago_by_html: Wedi cau %{time_ago} gan %{user} deleted_ago_by_html: Wedi dileu %{time_ago} gan %{user} - edited_ago_by_html: Golgwyd %{time_ago} gan %{user} + edited_ago_by_html: Golygwyd %{time_ago} gan %{user} version: Fersiwn in_changeset: Grŵp newid anonymous: dienw @@ -487,14 +491,14 @@ cy: nearby mapper: Mapiwr gerllaw friend: Ffrind show: - title: Fy Nashfwrdd + title: Fy Nangosfwrdd edit_your_profile: Golygu eich proffil my friends: Fy ffrindiau no friends: Nid ydych wedi ychwanegu unrhyw ffrindiau eto. nearby users: Defnyddwyr eraill gerllaw no nearby users: Nid oes defnyddwyr gerllaw sy'n datgelu eu bod yn mapio eto. friends_changesets: Grwpiau newid eich ffrindiau - friends_diaries: cofnodion dyddiaduron cyfeillion + friends_diaries: cofnodion dyddiaduron ffrindiau nearby_changesets: grwpiau newid defnyddwyr gerllaw nearby_diaries: cofnodion dyddiaduron defnyddwyr gerllaw diary_entries: @@ -596,7 +600,7 @@ cy: failed: Ymddiheuriadau, methwyd ychwanegu %{name} fel ffrind. already_a_friend: Rydych chi eisoes yn ffrindiau gyda %{name}. remove_friend: - heading: Peidio bod yn ffrind i %{user}? + heading: Dad-ffrindio %{user}? button: Dad-ffrindio success: Tynnwyd %{name} o'ch ffrindiau. not_a_friend: Nid yw %{name} yn un o'ch ffrindiau. @@ -834,7 +838,7 @@ cy: abandoned: Hen Briffordd bridleway: Llwybr Ceffyl bus_guideway: Lon Bysiau - bus_stop: Stop Bysiau + bus_stop: Safle Bws construction: Priffordd yn cael ei Adeiladu corridor: Coridor crossing: Croesfan @@ -898,9 +902,9 @@ cy: house: Tŷ manor: Maenor memorial: Cofeb - mine: Mwynfa - mine_shaft: Siafft y Mwynglawdd - monument: Cofadail + mine: Mwynglawdd + mine_shaft: Siafft Mwynglawdd + monument: Cofeb roman_road: Ffordd Rufeinig ruins: Adfeilion stone: Carreg @@ -934,7 +938,7 @@ cy: orchard: Berllan quarry: Chwarel railway: Rheilffordd - recreation_ground: Maes Chwarae + recreation_ground: Ardal Chwarae reservoir: Cronfa Ddŵr reservoir_watershed: Gwahanfa Ddŵr residential: Ardal Breswyl @@ -943,7 +947,7 @@ cy: vineyard: Gwinllan "yes": Defnydd Tir leisure: - beach_resort: Ardal Wyliau + beach_resort: Cyrchfan Traeth bird_hide: Cuddfan Adar common: Tir Comin dog_park: Parc Cwn @@ -959,9 +963,9 @@ cy: miniature_golf: Golff Pitw nature_reserve: Gwarchodfa Natur park: Parc - pitch: Maes Chwarae - playground: Lle Chwarae - recreation_ground: Maes Hamdden + pitch: Cae Chwaraeon + playground: Ardal Chwarae + recreation_ground: Ardal Hamdden resort: Cyrchfan Gwyliau sauna: Sawna slipway: Llithrffordd @@ -1003,7 +1007,7 @@ cy: surveillance: Gwyliadwraeth telescope: Telesgop tower: Tŵr - wastewater_plant: Gwaith Dŵr Budr + wastewater_plant: Gwaith Dŵr Gwastraff watermill: Melin Ddŵr water_tower: Tŵr Dŵr water_well: Ffynnon @@ -1027,7 +1031,7 @@ cy: coastline: Arfordir crater: Crater dune: Twyn - fell: Rhostir + fell: Mynydd-dir fjord: Ffiord forest: Coedwig geyser: Geiser @@ -1247,9 +1251,9 @@ cy: bed_and_breakfast: Gweldy a Brecwast cabin: Caban Twristiaeth camp_pitch: Gwersyll - camp_site: Man Gwersylla + camp_site: Gwersyll caravan_site: Parc Carafanau - chalet: Chalet + chalet: Sialet gallery: Galeri guest_house: Llety hostel: Hostel @@ -1300,7 +1304,7 @@ cy: more_results: Mwy o ganlyniadau issues: index: - title: Materion + title: Gwallau select_status: Dewis statws select_type: Dewis math not_updated: Heb ei Ddiweddaru @@ -1589,6 +1593,7 @@ cy: lost password link: Wedi anghofio eich cyfrinair? login_button: Mewngofnodi register now: Cofrestru nawr + with external: 'Fel arall, defnyddiwch drydydd parti i fewngofnodi:' no account: Dim cyfrif gennych? openid_logo_alt: Mewngofnodi gydag OpenID auth_providers: @@ -1665,7 +1670,7 @@ cy: english_link: y Saesneg gwreiddiol native: title: Ynglŷn â'r dudalen hon - native_link: Cymraeg + native_link: fersiwn Cymraeg mapping_link: dechrau mapio legal_babble: title_html: Hawlfraint a Thrwydded @@ -1739,6 +1744,7 @@ cy: not_public: Nid ydych wedi gosod eich golygiadau i fod yn gyhoeddus. user_page_link: tudalen defnyddiwr anon_edits_link_text: Gweld pam. + id_not_configured: iD heb ei ffurfweddu export: title: Allforio area_to_export: Ardal i'w Hallforio @@ -1777,6 +1783,7 @@ cy: other_concerns: title: Gofidion eraill copyright: tudalen hawlfraint + working_group: Gweithgor OSMF help: title: Cael Cymorth welcome: @@ -1795,9 +1802,13 @@ cy: title: IRC switch2osm: title: switch2osm + welcomemat: + title: Ar gyfer Sefydliadau wiki: title: Wici OpenStreetMap description: Archwiliwch y wici am ddogfennau manwl OpenStreetMap. + potlatch: + change_preferences: Newidiwch eich dewisiadau yma any_questions: title: Unrhyw gwestiynau? sidebar: @@ -1824,61 +1835,64 @@ cy: secondary: Ffordd eilaidd unclassified: Ffordd annosbarthedig track: Trac - bridleway: Llwybr ceffyl - cycleway: Llwybr beicio - cycleway_national: Llwybr beicio cenedlaethol - cycleway_regional: Llwybr beicio rhanbarthol - cycleway_local: Llwybr beicio lleol - footway: Ffordd droed + bridleway: Llwybr ceffylau + cycleway: Llwybr beiciau + cycleway_national: Llwybr beiciau cenedlaethol + cycleway_regional: Llwybr beiciau rhanbarthol + cycleway_local: Llwybr beiciau lleol + footway: Troedffordd rail: Rheilffordd - subway: Trenau Tanddaearyddol + subway: Trenau tanddaear tram: - Rheilffordd ysgafn - - tram + - dram cable: - - Car codi - - Lifft cadair + - Car cebl + - lifft cadair runway: - - Llwybr glanio'r maes awyr - - atredfa + - Llwybr glanio + - thacsiffordd maes awyr apron: - - Ffedog (y maes awyr) - - terminws + - Llain + - therminws maes awyr admin: Ffin gweinyddol forest: Coedwig - wood: Coed - golf: Cwrs golff + wood: Coedlan + golf: Maes golff park: Parc resident: Ardal breswyl common: - Comin - - dôl + - gwaun - gardd retail: Ardal adwerthu - industrial: Ardal diwydiannol - commercial: Ardal masnachol - heathland: Rhostir + industrial: Ardal ddiwydiannol + commercial: Ardal fasnachol + heathland: Rhos lake: - Llyn - - cronfa ddŵr + - chronfa ddŵr farm: Fferm + brownfield: Safle tir llwyd cemetery: Mynwent allotments: Rhandiroedd - pitch: Maes chwarae + pitch: Cae chwaraeon centre: Canolfan chwaraeon reserve: Gwarchodfa natur - military: Ardal milwrol + military: Ardal filwrol school: - Ysgol - - prifysgol - building: Adeilad sylweddol - station: Gorsaf drenau + - phrifysgol + building: Adeilad arwyddocâol + station: Gorsaf drên summit: - Copa - - Crib + - chrib + tunnel: Border toredig = twnnel + bridge: Border du = pont private: Mynediad preifat destination: Mynediad cyrchfan - construction: Ffyrdd wrthi'n cael eu hadeiladu + construction: Ffyrdd yn cael eu hadeiladu bicycle_shop: Siop feiciau bicycle_parking: Man parcio beiciau toilets: Toiledau @@ -1924,29 +1938,47 @@ cy: title: Cymunedau other_groups: title: Grwpiau Eraill + communities_wiki: Tudalen wici cymunedau traces: new: + upload_trace: Uwchlwytho Arllwybr GPS visibility_help: beth mae hyn yn golygu? help: Cymorth + create: + upload_trace: Uwchlwytho Arllwybr GPS edit: cancel: Canslo + title: Wrthi'n golygu Arllwybr %{name} + heading: Wrthi'n golygu Arllwybr %{name} visibility_help: beth mae hyn yn golygu? + update: + updated: Arllwybr wedi'i ddiweddaru trace_optionals: tags: Tagiau show: + title: Wrthi'n gweld Arllwybr %{name} + heading: Wrthi'n gweld Arllwybr %{name} pending: I DDOD filename: 'Enw ffeil:' download: lawrlwytho uploaded: 'Uwchlwythwyd:' points: 'Pwyntiau:' start_coordinates: 'Cyfesuryn cychwynnol:' + coordinates_html: '%{latitude}; %{longitude}' map: map edit: golygu owner: 'Perchennog:' description: 'Disgrifiad:' tags: 'Tagiau:' none: Dim + edit_trace: Golygu'r arllwybr hwn + delete_trace: Dileu'r arllwybr hwn + trace_not_found: Heb ganfod arllwybr! visibility: 'Gwelededd:' + confirm_delete: Dileu'r arllwybr hwn? + trace_paging_nav: + older: Arllwybrau Hŷn + newer: Arllwybrau Diweddarach trace: pending: I DDOD count_points: @@ -1957,6 +1989,7 @@ cy: many: '%{count} pwynt' other: '%{count} pwynt' more: mwy + trace_details: Gweld Manylion Arllwybr view_map: Gweld Map edit_map: Golygu Map public: CYHOEDDUS @@ -1966,15 +1999,27 @@ cy: by: gan in: mewn index: + public_traces: Arllwybrau GPS Cyhoeddus + my_gps_traces: Fy Arllwybrau GPS + public_traces_from: Arllwybrau GPS Cyhoeddus gan %{user} + description: Pori uwchlwythiadau arllwybrau GPS diweddar tagged_with: tagiwyd gyda %{tags} + empty_title: Dim byd yma eto + upload_new: Uwchlwytho arllwybr newydd wiki_page: tudalen wici + upload_trace: Uwchlwytho arllwybr + all_traces: Pob Arllwybr + my_traces: Fy Arllwybrau + traces_from: Arllwybrau Cyhoeddus gan %{user} application: settings_menu: account_settings: Gosodiadau Cyfrif oauth1_settings: Gosodiadau OAuth 1 oauth2_applications: Ceisiadau OAuth 2 + oauth2_authorizations: Awdurdodiadau OAuth 2 oauth: authorize: + title: Awdurdodi mynediad i'ch cyfrif allow_to: 'Caniatáu''r rhaglen cleient i:' allow_read_prefs: ddarllen eich gosodiadau defnyddiwr. allow_write_prefs: addasu eich gosodiadau defnyddiwr. @@ -2009,17 +2054,29 @@ cy: delete: Dileu Cleient confirm: Ydych chi'n siŵr? index: + title: Fy Manylion OAuth + application: Enw'r Ap + issued_at: Dyddiad awdurdodi + revoke: Dirymu! + my_apps: Fy Apiau Cleient oauth: OAuth oauth2_applications: index: + title: Fy Apiau Cleient name: Enw permissions: Caniatâd application: edit: Golygu delete: Dileu + confirm_delete: Dileu'r ap hwn? + new: + title: Cofrestru ap newydd + edit: + title: Golygu eich ap show: edit: Golygu delete: Dileu + confirm_delete: Dileu'r ap hwn? client_id: ID Cleient client_secret: Cyfrinach Cleient permissions: Caniatadau @@ -2027,6 +2084,10 @@ cy: new: authorize: Awdurdodi deny: Gwrthod + oauth2_authorized_applications: + index: + application: Ap + permissions: Caniatadau users: new: title: Cofrestru @@ -2035,6 +2096,7 @@ cy: header: Rhydd ac agored display name description: Eich enw defnyddiwr cyhoeddus. Gallwch newid hyn yn nes ymlaen yn eich dewisiadau. + use external auth: Fel arall, defnyddiwch drydydd parti i fewngofnodi continue: Cofrestru terms accepted: Diolch am dderbyn telerau newydd cyfranwyr! privacy_policy: polisi preifatrwydd @@ -2043,9 +2105,11 @@ cy: heading: Telerau heading_ct: Telerau Cyfranwyr consider_pd_why: beth yw hwn? + readable_summary: crynodeb darllenadwy informal_translations: cyfieithiadau anffurfiol continue: Parhau decline: Gwrthod + legale_select: 'Gwlad breswyl:' legale_names: france: Ffrainc italy: Yr Eidal @@ -2100,6 +2164,7 @@ cy: unhide_user: Datguddio'r Defnyddiwr delete_user: Dileu'r Defnyddiwr confirm: Cadarnhau + report: Adrodd y defnyddiwr hwn go_public: flash success: Mae eich holl olygiadau nawr yn gyhoeddus a gallech nawr parhau i olygu. @@ -2124,6 +2189,8 @@ cy: edit: title: Wrthi'n golygu bloc ar %{name} heading_html: Wrthi'n golygu bloc ar %{name} + revoke: + revoke: Dad-flocio! helper: time_future_html: Yn dod i ben mewn %{time}. time_past_html: Wedi dod i ben %{time} yn ôl. @@ -2175,11 +2242,17 @@ cy: status: 'Statws:' show: Dangos edit: Golygu + revoke: Dad-flocio! confirm: Ydych chi'n siŵr? + reason: 'Rheswm dros y bloc:' + back: Gweld pob bloc + revoker: 'Dad-flociwr:' block: show: Dangos edit: Golygu + revoke: Dad-flocio! blocks: + display_name: Defnyddwyr wedi'i blocio creator_name: Crëwr reason: Rheswm dros flocio status: Statws @@ -2207,6 +2280,8 @@ cy: event_commented_by_anonymous_html: Sylw gan berson ddienw %{time_ago} event_closed_by_html: Datryswyd gan %{user} %{time_ago} event_closed_by_anonymous_html: Datryswyd gan berson ddienw %{time_ago} + event_reopened_by_html: Wedi'i ailysgogi gan %{user} %{time_ago} + event_reopened_by_anonymous_html: Wedi'i ailysgogi gan berson ddienw %{time_ago} event_hidden_by_html: Cuddiwyd gan %{user} %{time_ago} report: riportio'r nodyn hwn anonymous_warning: Mae'r nodyn hwn yn cynnwys sylwadau gan ddefnyddwyr dienw @@ -2235,6 +2310,8 @@ cy: download: Lawrlwytho short_url: URL Byr include_marker: Cynnwys marciwr + embed: + report_problem: Adrodd am broblem key: title: Allwedd Map tooltip: Allwedd Map @@ -2251,11 +2328,15 @@ cy: hot: Dyngarol layers: header: Haenau Mapiau - notes: Sylwadau Map + notes: Nodiadau Map data: Data Map + overlays: Galluogi troshaenau i ddatrys problemau map title: Haenau + openstreetmap_contributors: Cyfranwyr OpenStreetMap make_a_donation: Rhoi arian website_and_api_terms: Telerau'r gwefan ac API + memomaps: MeMoMaps + hotosm_name: Tîm Humanitarian OpenStreetMap site: edit_tooltip: Golygu'r map edit_disabled_tooltip: Chwyddwch mewn i olygu'r map @@ -2263,6 +2344,7 @@ cy: createnote_disabled_tooltip: Chwyddwch mewn i ychwanegu nodyn i'r map map_notes_zoom_in_tooltip: Chwyddwch mewn i weld nodiadau'r map map_data_zoom_in_tooltip: Chwyddwch mewn i weld data'r map + queryfeature_tooltip: Manylion nodweddion changesets: show: comment: Sylw @@ -2289,6 +2371,11 @@ cy: offramp_right: Cymerwch y ramp ar y dde offramp_right_with_exit: Cymerwch allanfa %{exit} ar y dde offramp_right_with_exit_name: Cymerwch allanfa %{exit} ar y dde i %{name} + via_point_without_exit: (trwy bwynt) + follow_without_exit: Dilynwch %{name} + start_without_exit: Dechreuwch ar %{name} + destination_without_exit: Wedi cyrraedd cyrchfan + unnamed: ffordd heb enw exit_counts: first: 1af second: 2il @@ -2307,11 +2394,33 @@ cy: relation: Perthynas nothing_found: Ni ddarganfuwyd nodweddion error: 'Gwall cysyltlu gyda %{server}: %{error}' + context: + directions_from: Cyfarwyddiadau oddi yma + directions_to: Cyfarwyddiadau i yma + add_note: Ychwanegu nodyn yma + show_address: Dangos cyfeiriad + query_features: Manylion nodweddion + centre_map: Canoli'r map yma redactions: + edit: + heading: Golygu Gorchuddiad + title: Golygu Gorchuddiad + index: + empty: Dim gorchuddiadau i'w dangos. + heading: Rhestr Orchuddiadau + title: Rhestr Orchuddiadau + new: + title: Gorchuddiad Newydd show: description: 'Disgrifiad:' + heading: Gorchuddiad "%{title}" + title: Gorchuddiad user: 'Crëwr:' + edit: Golygu'r gorchuddiad hwn + destroy: Dileu'r gorchuddiad hwn confirm: Ydych chi'n siŵr? + create: + flash: Gorchuddiad wedi'i greu. update: flash: Newidiadau wedi'u cadw. ... diff --git a/config/locales/de.yml b/config/locales/de.yml index b4b1b24aa..8eff4d806 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -316,6 +316,7 @@ de: openid: OpenID google: Google facebook: Facebook + microsoft: Microsoft github: GitHub wikipedia: Wikipedia api: @@ -331,6 +332,8 @@ de: reopened_at_by_html: '%{when} von %{user} reaktiviert' rss: title: OpenStreetMap-Hinweise + description_all: Eine Liste der gemeldeten, kommentierten oder geschlossenen + Notizen description_area: Übersicht der gemeldeten, kommentierten oder geschlossen Hinweise im Bereich [(%{min_lat}|%{min_lon}) -- (%{max_lat}|%{max_lon})]. description_item: Ein RSS-Feed für Hinweis %{id} @@ -1946,6 +1949,9 @@ de: home location: Heimatstandort no home location: Du hast noch keinen Standort angegeben. update home location on click: Standort beim Klick auf die Karte aktualisieren + show: Anzeigen + delete: Löschen + undelete: Löschen rückgängig machen update: success: Profil aktualisiert. failure: Profil konnte nicht aktualisiert werden. @@ -2448,6 +2454,7 @@ de: fehlt, dich einzuarbeiten, wie man in OSM Daten editiert, so gib einfach einen Hinweis/melde einen Fehler, dann kann sich ein anderer Mapper darum kümmern. + the_map: die Karte communities: title: Gemeinschaften lede_text: |- @@ -2459,13 +2466,14 @@ de: 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 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. list_text: 'Folgende Gemeinschaften sind offiziell als lokale Verbände eingetragen:' other_groups: title: Andere Gruppen + communities_wiki: Community-Wiki-Seite traces: visibility: private: Privat (werden nur als anonyme, unsortierte Punkte ohne Zeitangaben @@ -2552,6 +2560,7 @@ de: empty_title: Noch nichts vorhanden empty_upload_html: '%{upload_link} oder erfahren Sie mehr über GPS-Tracks auf der %{wiki_link}.' + upload_new: Einen neuen Track hochladen wiki_page: Wiki-Seite upload_trace: Lade einen Track hoch all_traces: Alle Tracks @@ -2820,6 +2829,7 @@ de: remove as friend: Freund entfernen add as friend: Freund hinzufügen mapper since: 'Mapper seit:' + uid: 'Benutzer-ID:' ct status: 'Bedingungen für Mitwirkende:' ct undecided: Unentschlossen ct declined: Abgelehnt @@ -3020,7 +3030,9 @@ de: index: title: Hinweise/Fehler erstellt oder kommentiert von %{user} heading: Hinweise von %{user} - subheading_html: Hinweise/Fehler erstellt oder kommentiert von %{user} + subheading_html: Hinweise/Fehler %{submitted} oder %{commented} von %{user} + subheading_submitted: eingereicht + subheading_commented: kommentiert no_notes: Keine Hinweise id: ID creator: Ersteller diff --git a/config/locales/el.yml b/config/locales/el.yml index fea612abb..b570c6a17 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -270,6 +270,7 @@ el: reopened_at_by_html: Επανενεργοποιήθηκε %{when} από τον %{user} rss: title: Σημειώσεις OpenStreetMap + description_all: Μια λίστα με αναφερόμενες, σχολιασμένες ή κλειστές σημειώσεις description_area: Μια λίστα με σημειώσεις, που αναφέρθηκαν, σχολιάστηκαν ή επιλύθηκαν στην περιοχή σας [(%{min_lat}|%{min_lon}) -- (%{max_lat}|%{max_lon})] description_item: Μια τροφοδοσία rss για τη σημείωση %{id} @@ -336,6 +337,10 @@ el: delete_account: Διαγραφή λογαριασμού... go_public: heading: Δημόσια επεξεργασία + currently_not_public: Προς το παρόν, οι αλλαγές σας είναι ανώνυμες και οι άνθρωποι + δεν μπορούν να σας στείλουν μηνύματα ή να δουν την τοποθεσία σας. Για να δείξετε + τι επεξεργαστήκατε και να επιτρέψετε στους άλλους να επικοινωνήσουν μαζί σας + μέσω του ιστότοπου, κάντε κλικ στο παρακάτω κουμπί. only_public_can_edit: Από την αλλαγή του API 0.6, μόνο οι δημόσιοι χρήστες μπορούν να επεξεργάζονται τα δεδομένα χάρτη. find_out_why: μάθετε γιατί @@ -578,7 +583,6 @@ el: comment_link: Σχολιάστε την καταχώρηση reply_link: Αποστολή μηνύματος στον συγγραφέα comment_count: - zero: Χωρίς σχόλια one: '%{count} σχόλιο' other: '%{count} σχόλια' no_comments: Κανένα σχόλιο @@ -1465,8 +1469,7 @@ el: show: title: '%{status} Ζήτημα #%{issue_id}' reports: - zero: Καμία αναφορά - one: 1 αναφορά + one: '%{count} αναφορά' other: '%{count} αναφορές' no_reports: Καμία αναφορά report_created_at: Αναφέρθηκε για πρώτη φορά στις %{datetime} @@ -1540,7 +1543,7 @@ el: layouts: logo: alt_text: Λογότυπο OpenStreetMap - home: Μετάβαση στο Σπίτι + home: Δείξε το σπίτι μου logout: Αποσύνδεση log_in: Σύνδεση sign_up: Εγγραφή @@ -1876,7 +1879,7 @@ el: delete image: Αφαίρεση της τρέχουσας εικόνας replace image: Αντικατάσταση της τρέχουσας εικόνας image size hint: (τετράγωνες εικόνες τουλάχιστον 100 x 100 λειτουργούν καλύτερα) - home location: Τοποθεσία Σπιτιού + home location: Τοποθεσία σπιτιού no home location: Δεν έχετε εισάγει την τοποθεσία του σπιτιού σας. update home location on click: Ενημέρωση τοποθεσίας σπιτιού όταν κάνω κλικ στον χάρτη; @@ -1968,11 +1971,22 @@ el: χρησιμοποιούν αεροφωτογραφίες, συσκευές GPS και τοπικούς χάρτες χαμηλής τεχνολογίας για να σιγουρευτούν πως το OSM είναι ακριβής και ενημερωμένο. community_driven_title: Βασίζεται στην κοινότητα + community_driven_1_html: |- + Η κοινότητα του OpenStreetMap είναι ποικίλη, παθιασμένη και αυξάνεται καθημερινά. + Οι συνεισφέροντες μας, περιλαμβάνουν ενθουσιώδεις χαρτογράφους, επαγγελματίες GIS, μηχανικούς + που τρέχουν τους διακομιστές OSM, ανθρωπιστές που χαρτογραφούν περιοχές που έχουν πληγεί από καταστροφές, + και πολλά άλλα. + Για να μάθετε περισσότερα σχετικά με την κοινότητα, δείτε στον ιστότοπο %{osm_blog_link}, %{user_diaries_link}, %{community_blogs_link} και στο %{osm_foundation_link}. community_driven_osm_blog: Ιστολόγιο OpenStreetMap community_driven_user_diaries: ημερολόγια χρηστών community_driven_community_blogs: ιστολόγια κοινότητας community_driven_osm_foundation: Ίδρυμα OSM open_data_title: Ανοικτά Δεδομένα + open_data_1_html: 'Το OpenStreetMap είναι %{open_data}: είστε ελεύθεροι να την + χρησιμοποιήστε για οποιονδήποτε σκοπό, εφόσον μνημονεύετε το OpenStreetMap + και τους συνεισφέροντές του. Εάν προσαρμόσετε ή αξιοποιήσετε αυτά τα δεδομένα + με συγκεκριμένους τρόπους, πρέπει να διανείμετε το αποτέλεσμα μόνο υπό την + ίδια άδεια χρήσης. Δείτε τη σελίδα %{copyright_license_link} για λεπτομέρειες.' open_data_open_data: ανοιχτά δεδομένα open_data_copyright_license: Σελίδα Πνευματικών Δικαιωμάτων και Άδειας Χρήσης legal_title: Νομικό @@ -2704,7 +2718,7 @@ el: diary: Ημερολόγιο edits: Επεξεργασίες traces: Ίχνη - notes: Σημειώσεις Χάρτη + notes: Σημειώσεις χάρτη remove as friend: Αφαίρεση Φίλου add as friend: Προσθήκη Φίλου mapper since: 'Χαρτογράφος από:' @@ -2902,7 +2916,7 @@ el: index: title: Σημειώσεις που υποβλήθηκαν ή σχολιάστηκαν από τον %{user} heading: σημειώσεις του %{user} - subheading_html: Σημειώσεις που υποβλήθηκαν ή σχολιάστηκαν από τον %{user} + subheading_html: Σημειώσεις που %{submitted} ή %{commented} από τον %{user} no_notes: Χωρίς σημειώσεις id: Αναγνωριστικό creator: Δημιουργός @@ -2937,8 +2951,8 @@ el: other_problems_resolve: Για όλα τα άλλα προβλήματα με τη σημείωση, επιλύστε το μόνοι σας με ένα σχόλιο. other_problems_resolved: Για όλα τα άλλα προβλήματα, αρκεί η επίλυση. - disappear_date_html: Αυτή η επιλυμένη σημείωση θα εξαφανιστεί από τον χάρτη - στις %{disappear_in}. + disappear_date_html: Αυτή η επιλυμένη σημείωση θα εξαφανιστεί από το χάρτη σε + %{disappear_in}. new: title: Νέα σημείωση intro: Εντοπίσατε λάθος ή κάτι που λείπει; Πείτε το στους άλλους χαρτογράφους @@ -2981,7 +2995,7 @@ el: in: Μεγέθυνση out: Σμίκρυνση locate: - title: Προβολή της Τοποθεσίας μου + title: Προβολή της τοποθεσίας μου metersPopup: one: Είστε εντός %{count} μέτρου από το σημείο other: Είστε εντός %{count} μέτρων από το σημείο @@ -2990,18 +3004,18 @@ el: other: Είστε εντός %{count} ποδιών από το σημείο base: standard: Κανονικός - cyclosm: CyclOSM - cycle_map: Χάρτης Ποδηλασίας - transport_map: Συγκοινωνιακός Χάρτης + cyclosm: CyclOSM ποδηλασία + cycle_map: Ποδηλασία + transport_map: Συγκοινωνία hot: Ανθρωπιστικός - opnvkarte: ÖPNVKarte + opnvkarte: ÖPNVKarte συγκοινωνίες layers: - header: Στρώματα Χάρτη - notes: Σημειώσεις Χάρτη - data: Δεδομένα Χάρτη + header: Στρώματα + notes: Σημειώσεις χάρτη + data: Δεδομένα χάρτη gps: Δημόσια ίχνη GPS overlays: Ενεργοποίηση επικαλύψεων για την αντιμετώπιση προβλημάτων του χάρτη - title: Στρώματα + title: Στρώματα χάρτη openstreetmap_contributors: Συνεισφέροντες OpenStreetMap make_a_donation: Κάντε μια δωρεά website_and_api_terms: Όροι ιστότοπου και API diff --git a/config/locales/en.yml b/config/locales/en.yml index aca571d53..cd7d67947 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -5,6 +5,8 @@ en: formats: friendly: "%e %B %Y at %H:%M" blog: "%e %B %Y" + count: + at_least_pattern: "%{count}+" helpers: file: prompt: Choose file @@ -2988,6 +2990,7 @@ en: cyclosm: CyclOSM cycle_map: Cycle Map transport_map: Transport Map + tracestracktop_topo: Tracestrack Topo hot: Humanitarian opnvkarte: ÖPNVKarte layers: @@ -3008,6 +3011,8 @@ en: andy_allan: Andy Allan opnvkarte_credit: "Tiles courtesy of %{memomaps_link}" memomaps: MeMoMaps + tracestrack_credit: "Tiles courtesy of %{tracestrack_link}" + tracestrack: Tracestrack hotosm_credit: "Tiles style by %{hotosm_link} hosted by %{osm_france_link}" hotosm_name: Humanitarian OpenStreetMap Team site: diff --git a/config/locales/eo.yml b/config/locales/eo.yml index ed291ca35..63341937e 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -31,6 +31,8 @@ eo: time: formats: friendly: '%e %B %Y je %H:%M' + count: + at_least_pattern: '%{count}+' helpers: file: prompt: Elektu dosieron @@ -3014,6 +3016,7 @@ eo: cyclosm: CyclOSM cycle_map: Biciklada mapo transport_map: Transporta mapo + tracestracktop_topo: Topografia mapo hot: Hom-helpa mapo opnvkarte: ÖPNVKarte layers: @@ -3032,6 +3035,8 @@ eo: andy_allan: Andy ALLAN opnvkarte_credit: Kaheloj danke al %{memomaps_link} memomaps: MeMoMaps + tracestrack_credit: Kaheloj danke al %{tracestrack_link} + tracestrack: Tracestrack hotosm_credit: 'Stilo de kaheloj: %{hotosm_link}, retgastigo: %{osm_france_link}' hotosm_name: HOTOSM site: diff --git a/config/locales/es.yml b/config/locales/es.yml index a7d9f8ea2..b84e74524 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -99,6 +99,8 @@ es: time: formats: friendly: '%e de %B de %Y a las %H:%M' + count: + at_least_pattern: '%{count}+' helpers: file: prompt: Seleccionar archivo @@ -357,7 +359,7 @@ es: retain_changeset_discussions: Tus discusiones sobre conjuntos de cambios, si las hay, se conservarán. retain_email: Tu dirección de correo electrónico se conservará. - confirm_delete: ¿Lo confirma? + confirm_delete: ¿Estás seguro? cancel: Cancelar accounts: edit: @@ -506,7 +508,7 @@ es: redacted: redaction: Censura %{id} message_html: La versión %{version} de este %{type} no se puede mostrar porque - se ha censurado. Consúltese %{redaction_link} para obtener más detalles. + se ha censurado. Consulta %{redaction_link} para obtener más detalles. type: node: nodo way: vía @@ -1795,7 +1797,7 @@ es: success: Cuenta confirmada, !gracias por registrarte! already active: Esta cuenta ya ha sido confirmada. unknown token: Ese código de confirmación ha caducado o no existe. - resend_html: Si necesita que le reenviemos el mensaje de confirmación, %{reconfirm_link}. + resend_html: Si necesitas que te reenviemos el mensaje de confirmación, %{reconfirm_link}. click_here: has clic aquí confirm_resend: failure: No se ha encontrado el usuario %{name} @@ -2093,8 +2095,8 @@ es: 2.0 introduction_3_creative_commons_url: https://creativecommons.org/licenses/by-sa/2.0/deed.es credit_title_html: Cómo dar reconocimiento a OpenStreetMap - credit_1_html: 'Cuando utilice datos de OpenStreetMap, deberá hacer las dos - cosas siguientes:' + credit_1_html: 'Cuando utilices datos de OpenStreetMap, deberás hacer las + siguientes dos cosas:' credit_2_1: Proporciona crédito a OpenStreetMap mostrando nuestro aviso de derechos de autor. credit_2_2: Especifica que los datos están disponibles bajo la Licencia de @@ -2673,7 +2675,7 @@ es: grant_access: Otorgar acceso authorize_success: title: Solicitud de autorización permitida - allowed_html: Has concedido acceso a tu cuenta a la aplicación %{app_name}. + allowed_html: Has otorgado acceso a tu cuenta a la aplicación %{app_name}. verification: El código de verificación es %{code}. authorize_failure: title: Falló la solicitud de autorización @@ -2888,7 +2890,7 @@ es: administrator: Este usuario es un administrador moderator: Este usuario es un moderador grant: - administrator: Adjudicar acceso de administrador + administrator: Otorgar acceso de administrador moderator: Adjudicar acceso de moderador revoke: administrator: Revocar acceso de administrador @@ -2952,7 +2954,7 @@ es: not_revoke_admin_current_user: No se pudo revocar el rol de administrador del usuario actual. grant: - title: Confirmar adjudicación de rol + title: Confirmar otorgamiento de rol heading: Confirmar adjudicación de rol are_you_sure: ¿Estás seguro de que deseas otorgar el rol `%{role}' al usuario `%{name}'? @@ -2962,7 +2964,7 @@ es: revoke: title: Confirmar revocación de rol heading: Confirmar revocación de rol - are_you_sure: ¿Está seguro de que desea revocar el rol `%{role}' del usuario + are_you_sure: ¿Estás seguro de que deseas revocar el rol `%{role}' del usuario `%{name}'? confirm: Confirmar fail: No se pudo revocar el rol `%{role}' del usuario `%{name}'. Comprueba que @@ -3006,7 +3008,7 @@ es: heading_html: Revocando el bloqueo sobre %{block_on} por %{block_by} time_future: Este bloqueo finalizará en %{time}. past: Este bloqueo terminó %{time} y no puede ser revocado ahora. - confirm: ¿Está seguro de que desea revocar este bloqueo? + confirm: ¿Estás seguro de que deseas revocar este bloqueo? revoke: ¡Revocar! flash: Este bloqueo ha sido revocado. helper: @@ -3164,6 +3166,7 @@ es: cyclosm: CyclOSM cycle_map: Mapa ciclista transport_map: Mapa de transporte + tracestracktop_topo: Tracestrack Topo hot: Humanitario opnvkarte: ÖPNVKarte layers: @@ -3183,6 +3186,8 @@ es: andy_allan: Andy Allan opnvkarte_credit: Teselas cortesía de %{memomaps_link} memomaps: MeMoMaps + tracestrack_credit: Teselas cortesía de %{tracestrack_link} + tracestrack: Tracestrack hotosm_credit: Estilo de teselas por %{hotosm_link} alojados por %{osm_france_link} hotosm_name: Equipo humanitario de OpenStreetMap site: diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 553f83479..2a9a4566d 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -100,6 +100,8 @@ fr: formats: friendly: '%e %B %Y à %-Hh%M' blog: '%e %B %Y' + count: + at_least_pattern: '%{count}+' helpers: file: prompt: Choisir un fichier @@ -3215,6 +3217,7 @@ fr: cyclosm: CyclOSM cycle_map: Carte cyclable transport_map: Carte de transport + tracestracktop_topo: Topo de Tracestack hot: Humanitaire opnvkarte: ÖPNVKarte layers: @@ -3233,6 +3236,8 @@ fr: andy_allan: Andy Allan opnvkarte_credit: Carreaux fournis aimablement par %{memomaps_link} memomaps: MeMoMaps + tracestrack_credit: Carreaux fournis aimablement par %{tracestrack_link} + tracestrack: Tracestrack hotosm_credit: Style de carreaux par %{hotosm_link} hébergé par %{osm_france_link} hotosm_name: L’Équipe OpenStreetMap Humanitaire site: diff --git a/config/locales/gl.yml b/config/locales/gl.yml index ff0b9635c..a05861324 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -22,6 +22,8 @@ gl: formats: friendly: '%e de %B de %Y ás %H:%M' blog: '%e de %B de %Y' + count: + at_least_pattern: máis de %{count} helpers: file: prompt: Escoller un ficheiro @@ -3068,6 +3070,7 @@ gl: cyclosm: CyclOSM (Ciclista) cycle_map: Ciclista transport_map: Transporte + tracestracktop_topo: Tracestrack Topo hot: Humanitario opnvkarte: ÖPNVKarte (Transporte) layers: @@ -3086,6 +3089,8 @@ gl: andy_allan: Andy Allan opnvkarte_credit: Mosaicos cortesía de %{memomaps_link} memomaps: MeMoMaps + tracestrack_credit: Mosaicos cortesía de %{tracestrack_link} + tracestrack: Tracestrack hotosm_credit: Estilo de mosaicos do %{hotosm_link} aloxado por %{osm_france_link} hotosm_name: equipo humanitario do OpenStreetMap site: diff --git a/config/locales/ia.yml b/config/locales/ia.yml index ab854d1e5..c84719348 100644 --- a/config/locales/ia.yml +++ b/config/locales/ia.yml @@ -12,6 +12,8 @@ ia: time: formats: friendly: '%e de %B %Y a %H:%M' + count: + at_least_pattern: '%{count}+' helpers: file: prompt: Selige file @@ -3045,6 +3047,7 @@ ia: cyclosm: CyclOSM cycle_map: Carta cyclista transport_map: Carta de transporto + tracestracktop_topo: Tracestrack Topo hot: Humanitario opnvkarte: ÖPNVKarte layers: @@ -3063,6 +3066,8 @@ ia: andy_allan: Andy Allan opnvkarte_credit: Tegulas fornite per %{memomaps_link} memomaps: MeMoMaps + tracestrack_credit: Tegulas fornite per %{tracestrack_link} + tracestrack: Tracestrack hotosm_credit: Stilo de tegulas per %{hotosm_link} albergate per %{osm_france_link} hotosm_name: le Equipa Humanitari de OpenStreetMap site: diff --git a/config/locales/it.yml b/config/locales/it.yml index bd9cb3c7d..2600c31f3 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -288,6 +288,7 @@ it: reopened_at_by_html: Riaperta %{when} da %{user} rss: title: Note di OpenStreetMap + description_all: Un elenco di note segnalate, commentate o chiuse description_area: Una lista di note inserite, commentate o chiuse nella tua area [(%{min_lat}|%{min_lon}) -- (%{max_lat}|%{max_lon})] description_item: Feed rss per la nota %{id} @@ -2126,6 +2127,7 @@ it: (informazioni pubbliche della Serbia), 2018. contributors_rs_serbia: Serbia contributors_rs_rgz: Autorità geodetica serba + contributors_rs_open_data_portal: Portale nazionale degli open data contributors_si_credit_html: |- %{slovenia}: Contiene i dati provenienti dall'%{gu_link} e dal %{mkgp_link} (informazioni pubbliche della Slovenia). @@ -3121,6 +3123,7 @@ it: andy_allan: Andy Allan opnvkarte_credit: Tasselli per gentile concessione di %{memomaps_link} memomaps: MeMoMaps + tracestrack_credit: Tasselli per gentile concessione di %{tracestrack_link} hotosm_credit: Stile tasselli di %{hotosm_link} ospitato da %{osm_france_link} hotosm_name: La squadra di OpenStreetMap Humanitarian site: diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 13ec9bc9f..3166ddb4a 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -722,7 +722,7 @@ ja: nursing_home: 老人ホーム parking: 駐車場 parking_entrance: 駐車場の入口 - parking_space: 駐車場 + parking_space: 駐車区画 payment_terminal: 決済端末 pharmacy: 薬局 place_of_worship: 宗教施設 @@ -2112,12 +2112,14 @@ ja: the_map: マップ communities: title: コミュニティ + local_chapters: + title: 地域支部 other_groups: title: その他のグループ other_groups_html: |- - 地方支部と同じように公式にグループを設立する必要はありません. + 地域支部と同じように公式にグループを設立する必要はありません。 実際に多くのグループが非公式な人々の集まりとして、または - コミュニティグループとして非常にうまく存在しています.誰でもこれらを設定または参加できます。 %{communities_wiki_link} で詳細をお読みください。 + コミュニティグループとして非常にうまく存在しています。誰でもこれらを設定または参加できます。 %{communities_wiki_link} で詳細をお読みください。 traces: visibility: private: 非公開 (匿名、点は順不同) diff --git a/config/locales/lv.yml b/config/locales/lv.yml index 4133eec39..3edc42d98 100644 --- a/config/locales/lv.yml +++ b/config/locales/lv.yml @@ -7,6 +7,7 @@ # Author: Cuu508 # Author: Danieldegroot2 # Author: Edgars2007 +# Author: Edgarsdna # Author: GreenZeb # Author: Jmg.cmdi # Author: Karlis @@ -156,6 +157,10 @@ lv: datetime: distance_in_words_ago: half_a_minute: pirms pusminūtes + less_than_x_minutes: + zero: pirms mazāk nekā %{count} minūtēm + one: pirms mazāk nekā %{count} minūtes + other: pirms mazāk nekā %{count} minūtēm editor: default: Noklusējuma (pašlaik %{name}) id: @@ -253,6 +258,10 @@ lv: anonymous: anonīms no_comment: (nav komentāru) part_of: Daļa no + part_of_relations: + zero: '%{count} attiecības' + one: '%{count} attiecība' + other: '%{count} attiecības' download_xml: Lejupielādēt XML view_history: Skatīt vēsturi view_details: Skatīt detaļas @@ -385,6 +394,9 @@ lv: nearby mapper: Kartētājs tuvējā apkārtnē friend: Draugs show: + title: Mans vadības panelis + no_home_location_html: '%{edit_profile_link} un iestatiet savu atrašanās vietu, + lai redzētu tuvumā esošos lietotājus.' my friends: Mani draugi no friends: Tu vēl neesi pievienojis draugus. nearby users: Citi tuvumā esoši lietotāji @@ -1195,6 +1207,7 @@ lv: help: Palīdzība about: Par copyright: Autortiesības + communities: Kopienas community: Kopiena community_blogs: Kopienas emuāri community_blogs_title: OpenStreetMap kopienas locekļu emuāri @@ -1489,6 +1502,7 @@ lv: site: about: next: Tālāk + heading_html: '%{copyright}OpenStreetMap %{br} datu sniedzēji' used_by_html: '%{name} darbina kartes datus simtiem mājaslapu, mobilajās aplikācijās un aparatūras ierīcēs' lede_text: OpenStreetMap būvē kartētāju kopiena, kuri iegulda un uztur datus @@ -1676,6 +1690,7 @@ lv: where_am_i: Kur tas ir? where_am_i_title: Aprakstiet pašreizējo atrašanās vietu izmantojot meklētāju submit_text: OK + reverse_directions_text: Apgriezt virzienu key: table: entry: @@ -1769,6 +1784,20 @@ lv: para_1: Ja tu vēlies labot ko mazu un nav laika lai piereģistrētos vai iemācītos kā rediģēt, ir iespējams vienkārši atstāt piezīmi. the_map: karte + communities: + title: Kopienas + lede_text: |- + OpenStreetMap veido vai izmanto cilvēki no visas pasaules. + Daudzi piedalās individuāli, bet citi ir izveidojuši kopienas. + Šīs grupas ir dažāda lieluma un pārstāv dažādas ģeogrāfiskās teritorijas - no mazām pilsētām līdz lieliem daudzvalstu reģioniem. + Tās var būt arī formālas vai neformālas. + local_chapters: + list_text: 'Šādas kopienas ir oficiāli izveidotas kā vietējās nodaļas:' + other_groups: + other_groups_html: |- + Nav nepieciešams formāli izveidot grupu tādā pašā apjomā kā vietējās nodaļas. + Patiešām, daudzas grupas ļoti veiksmīgi pastāv kā neformāla cilvēku pulcēšanās vai kā + kopienas grupa. Tās var izveidot vai pievienoties ikviens. Vairāk lasiet %{communities_wiki_link}. traces: visibility: private: Privāts (kopīgots kā anonīms, nesakārtoti punkti) @@ -1981,6 +2010,8 @@ lv: my profile: Mans profils my settings: Mani iestatījumi my comments: Mani komentāri + my_preferences: Mani iestatījumi + my_dashboard: Mans vadības panelis blocks on me: Bloki uz mani blocks by me: Manis piešķirtie Bloki send message: Nosūtīt ziņojumu @@ -2166,6 +2197,7 @@ lv: open_title: 'Neatrisināta piezīme: #%{note_name}' closed_title: 'Atrisināta piezīme: #%{note_name}' hidden_title: 'Paslēpta piezīme #%{note_name}' + event_opened_by_html: Izveidoja %{user} %{time_ago} report: Ziņot par šo piezīmi anonymous_warning: Šī piezīme ietver komentārus no anonīmiem lietotājiem, kurus nepieciešams pārbaudīt neatkarīgi. @@ -2174,6 +2206,10 @@ lv: reactivate: Atkal aktivizēt comment_and_resolve: Komentēt un atrisināt comment: Komentēt + report_link_html: Ja šajā piezīmē ir konfidenciāla informācija, kas jādzēš, + varat %{link}. + other_problems_resolve: Visas pārējās problēmas, kas saistītas ar piezīmi, lūdzu, + atrisiniet paši, pievienojot komentāru. new: title: Jauna piezīme intro: Piezīmes domātas, lai norādītu uz kartes kļūdām. Ja vēlies pamēģināt @@ -2182,6 +2218,9 @@ lv: precīzāk un detalizētāk visu izklāsti, kā arī marķieri novieto pēc iespējas pareizākajā pozīcijā. (Lūdzu neizmantojiet personīgo informāciju vai arī informāciju no citām ar autortiesībām aizsargātām kartēm.) + advice: Jūsu piezīme ir publiska, un to var izmantot kartes atjaunināšanai, + tāpēc neievadiet personisku informāciju vai informāciju no kartēm vai direktoriju + sarakstiem, uz kuriem attiecas autortiesības. add: Pievienot piezīmi javascripts: close: Aizvērt @@ -2197,6 +2236,7 @@ lv: custom_dimensions: Uzstādīt pielāgotus izmērus format: 'Formāts:' scale: 'Mērogs:' + image_dimensions: Attēlā būs redzams standarta slānis %{width} x %{height} download: Lejupielādēt short_url: Īsais URL include_marker: Iekļaut marķieri @@ -2228,6 +2268,8 @@ lv: data: Kartes dati overlays: Iespējot pārklājumus, lai novērstu trūkumus kartei title: Slāņi + make_a_donation: Veikt ziedojumu + website_and_api_terms: Tīmekļa vietnes un API noteikumi site: edit_tooltip: Rediģēt karti edit_disabled_tooltip: Pietuvini, lai rediģētu karti @@ -2246,10 +2288,12 @@ lv: unhide_comment: parādīt edit_help: Pārvieto karti un pietuvini vietai, kuru vēlies labot, tad spied šeit. directions: + ascend: Kāpums engines: fossgis_osrm_car: Ar mašīnu (OSRM) graphhopper_bicycle: Ar velosipēdu (GraphHopper) graphhopper_foot: Ar kājām (GraphHopper) + descend: Kritums directions: Norādes distance: Attālums errors: @@ -2285,7 +2329,7 @@ lv: end_oneway_without_exit: Vienvirziena ceļa beigas pie %{name} roundabout_with_exit: Pēc apkārtceļa nogriezieties uz izejas %{exit} pie %{name} unnamed: nenosaukts ceļš - courtesy: Virzienos, pieklājīgi no %{link} + courtesy: Norādes no %{link} exit_counts: first: "1." second: "2." diff --git a/config/locales/mk.yml b/config/locales/mk.yml index 9828a7245..59f87fb2a 100644 --- a/config/locales/mk.yml +++ b/config/locales/mk.yml @@ -13,6 +13,8 @@ mk: formats: friendly: '%e %B %Y г. во %H:%M ч.' blog: '%e %B %Y г.' + count: + at_least_pattern: '%{count}+' helpers: file: prompt: Одберете податотека @@ -3032,6 +3034,7 @@ mk: cyclosm: CyclOSM cycle_map: Велосипедска transport_map: Сообраќајна + tracestracktop_topo: Tracestrack Топо hot: Хуманитарна opnvkarte: ÖPNVKarte layers: @@ -3050,6 +3053,8 @@ mk: andy_allan: Енди Алан opnvkarte_credit: Полињата се доставени од %{memomaps_link} memomaps: MeMoMaps + tracestrack_credit: Полињата се доставени од %{tracestrack_link} + tracestrack: Tracestrack hotosm_credit: Стилот на полињата е од %{hotosm_link} вдомен од %{osm_france_link} hotosm_name: Екипа на Хуманитарната OpenStreetMap site: diff --git a/config/locales/nn.yml b/config/locales/nn.yml index 4e140327a..2b594f0bb 100644 --- a/config/locales/nn.yml +++ b/config/locales/nn.yml @@ -413,7 +413,7 @@ nn: query: title: Finn objekt introduction: Klikk på kartet for å visa objekt i nærleiken. - nearby: Nærliggjande funksjonar + nearby: Nærliggjande objekt enclosing: Omgjevande objekt changesets: changeset_paging_nav: diff --git a/config/locales/pt.yml b/config/locales/pt.yml index 3f1b8ee12..f290f65e4 100644 --- a/config/locales/pt.yml +++ b/config/locales/pt.yml @@ -14,6 +14,7 @@ # Author: Duke of Wikipädia # Author: EVinente # Author: Eduardoaddad +# Author: Felipe L. Ewald # Author: Fmca # Author: FranciscoDS # Author: Ftrebien @@ -286,6 +287,7 @@ pt: reopened_at_by_html: Reativado %{when} por %{user} rss: title: Notas do OpenStreetMap + description_all: Uma lista de notas relatadas, comentadas ou fechadas description_area: Uma lista de notas relatadas, comentadas ou encerradas na sua área [(%{min_lat}|%{min_lon}) -- (%{max_lat}|%{max_lon})] description_item: Um feed RSS para a nota %{id} @@ -2808,6 +2810,7 @@ pt: remove as friend: Desfazer amizade add as friend: Adicionar como amigo mapper since: 'Mapeador desde:' + uid: 'ID do usário:' ct status: 'Termos do contribuidor:' ct undecided: Não decidido ct declined: Discordo @@ -3090,6 +3093,7 @@ pt: cyclosm: CyclOSM cycle_map: Ciclístico transport_map: Transporte Público + tracestracktop_topo: Tracestrack Topo hot: Humanitário opnvkarte: ÖPNVKarte layers: @@ -3108,6 +3112,8 @@ pt: andy_allan: Andy Allan opnvkarte_credit: Mosaico cortesia de %{memomaps_link} memomaps: MeMoMaps + tracestrack_credit: Mosaico cortesia de %{tracestrack_link} + tracestrack: Tracestrack hotosm_credit: Estilo de mosaico por %{hotosm_link} hospedado por %{osm_france_link} hotosm_name: Humanitarian OpenStreetMap Team site: diff --git a/config/locales/ro.yml b/config/locales/ro.yml index f9007390f..8d330bf6b 100644 --- a/config/locales/ro.yml +++ b/config/locales/ro.yml @@ -24,6 +24,8 @@ ro: time: formats: friendly: '%e %B %Y la %H:%M' + count: + at_least_pattern: '%{count}+' helpers: file: prompt: Selectează fișier @@ -259,6 +261,7 @@ ro: reopened_at_by_html: Reactivat %{when} de %{user} rss: title: Note OpenStreetMap + description_all: O listă de note raportate, comentate sau închise description_area: O listă de note, raportate, comentate sau închise în zona dvs. [(%{min_lat}|%{min_lon}) -- (%{max_lat}|%{max_lon})] description_item: Un feed RSS pentru nota %{id} @@ -2806,6 +2809,7 @@ ro: remove as friend: Scoate din lista de prieteni add as friend: Adaugă Prieten mapper since: 'Cartograf din:' + uid: 'ID-ul de utilizator:' ct status: 'Termenii colaboratorului:' ct undecided: Nedefinit ct declined: Declinat @@ -3100,6 +3104,7 @@ ro: cyclosm: CyclOSM cycle_map: Hartă de ciclism transport_map: Hartă de transport + tracestracktop_topo: Tracestrack Topo hot: Umanitară opnvkarte: ÖPNVKarte layers: @@ -3118,6 +3123,8 @@ ro: andy_allan: Andy Allan opnvkarte_credit: Tile-uri prin amabilitatea lui %{memomaps_link} memomaps: MeMoMaps + tracestrack_credit: Tile-uri prin amabilitatea lui %{tracestrack_link} + tracestrack: Tracetrack hotosm_credit: Stilul tile-urilor creat de %{hotosm_link} găzduit de %{osm_france_link} hotosm_name: Echipa Umanitară OpenStreetMap site: diff --git a/config/locales/ru.yml b/config/locales/ru.yml index f96ebc048..b3626cb15 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -79,6 +79,7 @@ # Author: Putnik # Author: Pvwww # Author: Redredsonia +# Author: Rich Flight22 # Author: Riliam # Author: Rivka Silinsky # Author: Ruila @@ -964,6 +965,7 @@ ru: ambulance_station: Станция скорой медицинской помощи assembly_point: Место сбора defibrillator: Дефибриллятор + fire_extinguisher: Огнетушитель fire_water_pond: Пожарный водоём landing_site: Место аварийной посадки phone: Телефон экстренной связи @@ -1019,6 +1021,7 @@ ru: unclassified: Дорога местного значения "yes": Дорога historic: + aircraft: Историческое воздушное судно archaeological_site: Раскопки battlefield: Поле боя boundary_stone: Пограничный камень @@ -2109,6 +2112,7 @@ ru: contributors_nl_netherlands: Нидерланды contributors_nz_new_zealand: Новая Зеландия contributors_nz_cc_by: CC BY 4.0 + contributors_rs_serbia: Сербия contributors_si_slovenia: Словения contributors_es_spain: Испания contributors_es_ign: IGN diff --git a/config/locales/sl.yml b/config/locales/sl.yml index c80fdce46..24f1925ea 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -24,6 +24,8 @@ sl: formats: friendly: '%e. %B %Y ob %H:%M' blog: '%e %B %Y' + count: + at_least_pattern: '%{count}+' helpers: file: prompt: Izberi datoteko @@ -3115,6 +3117,7 @@ sl: cyclosm: CyclOSM cycle_map: Kolesarska karta transport_map: Prometna karta + tracestracktop_topo: Tracestrack Topo hot: Humanitarno opnvkarte: ÖPNVKarte layers: @@ -3133,6 +3136,8 @@ sl: andy_allan: Andy Allan opnvkarte_credit: Ploščice z dovoljenjem %{memomaps_link} memomaps: MeMoMaps + tracestrack_credit: Ploščice z dovoljenjem %{tracestrack_link} + tracestrack: Tracestrack hotosm_credit: Slog ploščic %{hotosm_link}, gosti jih %{osm_france_link} hotosm_name: Humanitarna ekipa OpenStreetMap site: diff --git a/config/locales/sr-Latn.yml b/config/locales/sr-Latn.yml index 470019435..a52058254 100644 --- a/config/locales/sr-Latn.yml +++ b/config/locales/sr-Latn.yml @@ -1,4 +1,4 @@ -# Messages for Serbian (Latin script) (srpski (latinica)) +# Messages for srpski (latinica) (srpski (latinica)) # Exported from translatewiki.net # Export driver: phpyaml # Author: Macofe diff --git a/config/locales/sr.yml b/config/locales/sr.yml index d015c9baf..ea60020c7 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -1,4 +1,4 @@ -# Messages for Serbian (Cyrillic script) (српски (ћирилица)) +# Messages for српски (ћирилица) (српски (ћирилица)) # Exported from translatewiki.net # Export driver: phpyaml # Author: Acamicamacaraca diff --git a/config/locales/sv.yml b/config/locales/sv.yml index 08a76ff6b..b6f09dd73 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -49,6 +49,7 @@ # Author: VickyC # Author: Westis # Author: WikiPhoenix +# Author: Yupik # Author: Zvenzzon --- sv: @@ -1844,6 +1845,7 @@ sv: home location: Hemposition no home location: Du har inte angivit någon hemposition. update home location on click: Uppdatera hemposition när jag klickar på kartan? + show: Visa update: success: Profil uppdaterad. failure: Kunde inte uppdatera profilen. diff --git a/config/locales/tr.yml b/config/locales/tr.yml index 2e3dcf1f4..301b5d8cd 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -2731,7 +2731,7 @@ tr: paragraph_2: Katkıda bulunmaya başlamak için kaydolun. Hesabınızı onaylamak için bir e-posta göndereceğiz. display name description: Herkes tarafından görünecek bir kullanıcı adı. Bu - adı istediğin zaman 'tercihlerim' bölümünde değiştirebilirsin. + adı istediğiniz zaman ayarlar bölümünde değiştirebilirsiniz. external auth: 'Üçüncü Taraf Kimlik Doğrulaması:' use external auth: 'Alternatif olarak bir üçüncü parti uygulaması kullanarak oturum aç:' diff --git a/config/locales/uk.yml b/config/locales/uk.yml index d6837960e..326c4a77b 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -52,6 +52,8 @@ uk: time: formats: friendly: '%e %B %Y о %H:%M' + count: + at_least_pattern: '%{count}+' helpers: file: prompt: Обрати файл @@ -3152,6 +3154,7 @@ uk: cyclosm: ЦиклОСМ cycle_map: ВелоМапа transport_map: Мапа Транспорту + tracestracktop_topo: Tracestrack Топо hot: Humanitarian‎ opnvkarte: ÖPNVKarte layers: @@ -3170,6 +3173,8 @@ uk: andy_allan: Енді Аллан opnvkarte_credit: Тайли %{memomaps_link} memomaps: MeMoMaps + tracestrack_credit: Тайли надаються %{tracestrack_link} + tracestrack: Tracestrack hotosm_credit: Тайли %{hotosm_link} з %{osm_france_link} hotosm_name: Humanitarian OpenStreetMap Team site: diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index 6d242234f..dca30d8e8 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -39,6 +39,7 @@ # Author: LaoShuBaby # Author: Lepus # Author: Liangent +# Author: LittlePaw365 # Author: Liuxinyu970226 # Author: Mmyangfl # Author: Mywood @@ -54,6 +55,7 @@ # Author: StarrySky # Author: StephDC # Author: TianyinLee +# Author: Tntchn # Author: TsuyaMarisa # Author: Vikarna # Author: VulpesVulpes825 @@ -85,6 +87,8 @@ zh-CN: formats: friendly: '%Y年%B%e日 %H:%M' blog: '%Y年%B%e日' + count: + at_least_pattern: '%{count}+' helpers: file: prompt: 选择文件 @@ -303,6 +307,7 @@ zh-CN: reopened_at_by_html: '%{user}于%{when}重新激活' rss: title: OpenStreetMap 注记 + description_all: 已报告、评论或关闭的注记列表 description_area: 在您的区域 [(%{min_lat}|%{min_lon}) -- (%{max_lat}|%{max_lon})] 报告、评论或关闭的注记列表 description_item: 注记 %{id} 的简易信息聚合馈送 @@ -1278,7 +1283,7 @@ zh-CN: carpet: 地毯店 charity: 慈善商店 cheese: 奶酪店 - chemist: 化学品店 + chemist: 药妆店 chocolate: 巧克力店 clothes: 服装店 coffee: 咖啡店 @@ -2577,6 +2582,7 @@ zh-CN: remove as friend: 删除朋友 add as friend: 添加朋友 mapper since: 绘图者注册于: + uid: 用户ID: ct status: 贡献者条款: ct undecided: 未决定 ct declined: 已拒绝 @@ -2839,6 +2845,7 @@ zh-CN: cyclosm: 自行车地图 cycle_map: 骑行运动地图 transport_map: 交通运输地图 + tracestracktop_topo: 地形地貌地图 hot: 人道救援地图 opnvkarte: 公共交通地图 layers: @@ -2857,6 +2864,8 @@ zh-CN: andy_allan: Andy Allan opnvkarte_credit: '%{memomaps_link}提供的图块' memomaps: MeMoMaps + tracestrack_credit: '%{tracestrack_link}提供的图块' + tracestrack: 踪迹地图 hotosm_credit: 由%{osm_france_link}托管的%{hotosm_link}图块风格 hotosm_name: 人道主义开放街图团队 site: @@ -3005,8 +3014,8 @@ zh-CN: flash: 修订已销毁。 error: 销毁该修订时出错。 validations: - leading_whitespace: 具有领先的空白 - trailing_whitespace: 具有尾随空白 + leading_whitespace: 有前导空格 + trailing_whitespace: 有尾随空格 invalid_characters: 包含无效字符 url_characters: 包含特殊URL字符 (%{characters}) ... diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 17a708be0..6ffdfedbb 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -37,6 +37,7 @@ # Author: StarrySky # Author: StephDC # Author: SupaplexTW +# Author: Tntchn # Author: TongcyDai # Author: Wehwei # Author: Winston Sung @@ -60,7 +61,7 @@ zh-TW: diary_comment: create: 評論 diary_entry: - create: 發佈 + create: 發布 update: 更新 issue_comment: create: 添加評論 @@ -1249,7 +1250,7 @@ zh-TW: carpet: 地毯店 charity: 慈善商店 cheese: 起士店鋪 - chemist: 化學材料行 + chemist: 藥妝店 chocolate: 巧克力店鋪 clothes: 服飾店 coffee: 咖啡店 @@ -1698,7 +1699,7 @@ zh-TW: send_message_to_html: 寄出新訊息給 %{name} back_to_inbox: 回到收件匣 create: - message_sent: 訊息已寄出 + message_sent: 已傳送訊息 limit_exceeded: 您最近寄出了大量的訊息。在嘗試寄出其他訊息之前請稍候。 no_such_message: title: 沒有這個訊息 @@ -1931,7 +1932,7 @@ zh-TW: 儘管 OpenStreetMap 是開放資料,我們不對第三方提供免費的地圖 API。 請參閱我們的%{api_usage_policy_link}、%{tile_usage_policy_link}、和%{nominatim_usage_policy_link}。 more_2_1_api_usage_policy: API 使用方針 - more_2_1_tile_usage_policy: 影像塊使用方針 + more_2_1_tile_usage_policy: 圖磚使用方針 more_2_1_nominatim_usage_policy: 提名使用方針 contributors_title_html: 我們的貢獻者 contributors_intro_html: 我們的貢獻者為成千上萬的人。我們也收納了從國家測繪機構及其他來源等取得的開放版權資料,其中包括: @@ -2823,6 +2824,7 @@ zh-TW: cyclosm: CyclOSM cycle_map: 自行車地圖 transport_map: 交通運輸地圖 + tracestracktop_topo: 蹤跡地圖地形 hot: 人道救援 opnvkarte: 公共交通地圖 layers: @@ -2835,13 +2837,15 @@ zh-TW: openstreetmap_contributors: OpenStreetMap 貢獻者 make_a_donation: 捐款 website_and_api_terms: 網站和 API 條款 - cyclosm_credit: 由 %{osm_france_link} 代管的 %{cyclosm_link} 所提供影像塊樣式 + cyclosm_credit: 由 %{osm_france_link} 代管的 %{cyclosm_link} 所提供圖磚樣式 osm_france: OpenStreetMap 法國 - thunderforest_credit: '%{thunderforest_link} 提供的影像塊' + thunderforest_credit: '%{thunderforest_link} 提供的圖磚' andy_allan: Andy Allan - opnvkarte_credit: '%{memomaps_link} 提供的影像塊' + opnvkarte_credit: '%{memomaps_link} 提供的圖磚' memomaps: MeMoMaps - hotosm_credit: 由 %{osm_france_link} 代管的 %{hotosm_link} 所提供影像塊樣式 + tracestrack_credit: '%{tracestrack_link} 提供的圖磚' + tracestrack: 蹤跡地圖 + hotosm_credit: 由 %{osm_france_link} 代管的 %{hotosm_link} 所提供圖磚樣式 hotosm_name: OpenStreetMap 人道主義團隊 site: edit_tooltip: 編輯地圖 diff --git a/config/settings.yml b/config/settings.yml index f30331b07..cffd3bd31 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -43,6 +43,8 @@ max_note_request_area: 25 default_note_query_limit: 100 # Maximum limit on the number of notes returned by the note search api method max_note_query_limit: 10000 +# Maximum value of open issues counter for moderators, anything equal or greater to this value "n" is shown as "n+" +max_issues_count: 99 # Zoom level to use for postcode results from the geocoder postcode_zoom: 15 # Timeout for API calls in seconds @@ -117,6 +119,8 @@ fossgis_valhalla_url: "https://valhalla1.openstreetmap.de/route" #wikipedia_auth_secret: "" # Thunderforest authentication details #thunderforest_key: "" +# Tracestrack authentication details +#tracestrack_key: "" # Key for generating TOTP tokens #totp_key: "" # Enforce Content-Security-Policy diff --git a/test/controllers/api/changesets_controller_test.rb b/test/controllers/api/changesets_controller_test.rb index 433984414..b4bc4a5ab 100644 --- a/test/controllers/api/changesets_controller_test.rb +++ b/test/controllers/api/changesets_controller_test.rb @@ -199,7 +199,7 @@ module Api assert_equal Settings.api_version, js["version"] assert_equal Settings.generator, js["generator"] assert_equal changeset.id, js["changeset"]["id"] - assert js["changeset"]["open"] + assert_operator js["changeset"], :[], "open" assert_equal changeset.created_at.xmlschema, js["changeset"]["created_at"] assert_nil js["changeset"]["closed_at"] assert_nil js["changeset"]["tags"] @@ -215,7 +215,7 @@ module Api assert_equal Settings.api_version, js["version"] assert_equal Settings.generator, js["generator"] assert_equal changeset.id, js["changeset"]["id"] - assert js["changeset"]["open"] + assert_operator js["changeset"], :[], "open" assert_equal changeset.created_at.xmlschema, js["changeset"]["created_at"] assert_nil js["changeset"]["closed_at"] assert_nil js["changeset"]["tags"] @@ -697,10 +697,10 @@ module Api # check that the changeset bbox is within bounds cs = Changeset.find(changeset_id) - assert cs.min_lon >= -180 * GeoRecord::SCALE, "Minimum longitude (#{cs.min_lon / GeoRecord::SCALE}) should be >= -180 to be valid." - assert cs.max_lon <= 180 * GeoRecord::SCALE, "Maximum longitude (#{cs.max_lon / GeoRecord::SCALE}) should be <= 180 to be valid." - assert cs.min_lat >= -90 * GeoRecord::SCALE, "Minimum latitude (#{cs.min_lat / GeoRecord::SCALE}) should be >= -90 to be valid." - assert cs.max_lat <= 90 * GeoRecord::SCALE, "Maximum latitude (#{cs.max_lat / GeoRecord::SCALE}) should be <= 90 to be valid." + assert_operator cs.min_lon, :>=, -180 * GeoRecord::SCALE, "Minimum longitude (#{cs.min_lon / GeoRecord::SCALE}) should be >= -180 to be valid." + assert_operator cs.max_lon, :<=, 180 * GeoRecord::SCALE, "Maximum longitude (#{cs.max_lon / GeoRecord::SCALE}) should be <= 180 to be valid." + assert_operator cs.min_lat, :>=, -90 * GeoRecord::SCALE, "Minimum latitude (#{cs.min_lat / GeoRecord::SCALE}) should be >= -90 to be valid." + assert_operator cs.max_lat, :<=, 90 * GeoRecord::SCALE, "Maximum latitude (#{cs.max_lat / GeoRecord::SCALE}) should be <= 90 to be valid." end ## diff --git a/test/controllers/api/nodes_controller_test.rb b/test/controllers/api/nodes_controller_test.rb index 95658842b..9e680dd06 100644 --- a/test/controllers/api/nodes_controller_test.rb +++ b/test/controllers/api/nodes_controller_test.rb @@ -258,8 +258,7 @@ module Api # valid delete should return the new version number, which should # be greater than the old version number - assert @response.body.to_i > node.version, - "delete request should return a new version number for node" + assert_operator @response.body.to_i, :>, node.version, "delete request should return a new version number for node" # deleting the same node twice doesn't work xml = xml_for_node(node) diff --git a/test/controllers/api/relations_controller_test.rb b/test/controllers/api/relations_controller_test.rb index 7f2c19665..7d011c17f 100644 --- a/test/controllers/api/relations_controller_test.rb +++ b/test/controllers/api/relations_controller_test.rb @@ -612,8 +612,7 @@ module Api # valid delete should return the new version number, which should # be greater than the old version number - assert @response.body.to_i > multi_tag_relation.version, - "delete request should return a new version number for relation" + assert_operator @response.body.to_i, :>, multi_tag_relation.version, "delete request should return a new version number for relation" # this won't work since the relation is already deleted xml = update_changeset(xml_for_relation(deleted_relation), changeset.id) diff --git a/test/controllers/api/users_controller_test.rb b/test/controllers/api/users_controller_test.rb index aa4bf1e9d..8e7079b85 100644 --- a/test/controllers/api/users_controller_test.rb +++ b/test/controllers/api/users_controller_test.rb @@ -731,7 +731,7 @@ module Api def check_json_details(js, user, include_private, include_email) assert_equal user.id, js["user"]["id"] assert_equal user.description, js["user"]["description"] - assert js["user"]["contributor_terms"]["agreed"] + assert_operator js["user"]["contributor_terms"], :[], "agreed" if include_private assert_not js["user"]["contributor_terms"]["pd"] diff --git a/test/controllers/api/ways_controller_test.rb b/test/controllers/api/ways_controller_test.rb index 0cf30e4ff..2bed0e5d6 100644 --- a/test/controllers/api/ways_controller_test.rb +++ b/test/controllers/api/ways_controller_test.rb @@ -379,8 +379,7 @@ module Api # check the returned value - should be the new version number # valid delete should return the new version number, which should # be greater than the old version number - assert @response.body.to_i > way.version, - "delete request should return a new version number for way" + assert_operator @response.body.to_i, :>, way.version, "delete request should return a new version number for way" # this won't work since the way is already deleted xml = xml_for_way(deleted_way) diff --git a/test/controllers/changesets_controller_test.rb b/test/controllers/changesets_controller_test.rb index a71b5e8fe..79fd7a571 100644 --- a/test/controllers/changesets_controller_test.rb +++ b/test/controllers/changesets_controller_test.rb @@ -321,7 +321,7 @@ class ChangesetsControllerTest < ActionDispatch::IntegrationTest ## # check the result of a feed def check_feed_result(changesets) - assert changesets.size <= 20 + assert_operator changesets.size, :<=, 20 assert_select "feed", :count => [changesets.size, 1].min do assert_select "> title", :count => 1, :text => /^Changesets/ diff --git a/test/controllers/user_blocks_controller_test.rb b/test/controllers/user_blocks_controller_test.rb index 16a77624c..27022c973 100644 --- a/test/controllers/user_blocks_controller_test.rb +++ b/test/controllers/user_blocks_controller_test.rb @@ -356,7 +356,7 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest assert_response :success assert_template "revoke" b = UserBlock.find(active_block.id) - assert b.ends_at - Time.now.utc > 100 + assert_operator b.ends_at - Time.now.utc, :>, 100 # Check that revoking a block works using POST post revoke_user_block_path(:id => active_block, :confirm => true) diff --git a/test/helpers/issues_helper_test.rb b/test/helpers/issues_helper_test.rb new file mode 100644 index 000000000..f0b7c884a --- /dev/null +++ b/test/helpers/issues_helper_test.rb @@ -0,0 +1,30 @@ +require "test_helper" + +class IssuesHelperTest < ActionView::TestCase + attr_accessor :current_user + + def test_issues_count + target_user = create(:user) + self.current_user = create(:moderator_user) + + n = (Settings.max_issues_count - 1) + n.times do + create(:note_with_comments) do |note| + create(:issue, :reportable => note, :reported_user => target_user, :assigned_role => "moderator") + end + end + expected = <<~HTML.delete("\n") + #{n} + HTML + assert_dom_equal expected, open_issues_count + + n += 1 + create(:note_with_comments) do |note| + create(:issue, :reportable => note, :reported_user => target_user, :assigned_role => "moderator") + end + expected = <<~HTML.delete("\n") + #{n}+ + HTML + assert_dom_equal expected, open_issues_count + end +end diff --git a/test/helpers/user_roles_helper_test.rb b/test/helpers/user_roles_helper_test.rb index 287504cb4..7708d5115 100644 --- a/test/helpers/user_roles_helper_test.rb +++ b/test/helpers/user_roles_helper_test.rb @@ -11,10 +11,7 @@ class UserRolesHelperTest < ActionView::TestCase icon = role_icon(create(:moderator_user), "moderator") expected = <<~HTML.delete("\n") - - This user is a moderator - HTML assert_dom_equal expected, icon end @@ -26,10 +23,7 @@ class UserRolesHelperTest < ActionView::TestCase icon = role_icon(user, "moderator") expected = <<~HTML.delete("\n") - - Grant moderator access - HTML assert_dom_equal expected, icon @@ -38,10 +32,7 @@ class UserRolesHelperTest < ActionView::TestCase icon = role_icon(moderator_user, "moderator") expected = <<~HTML.delete("\n") - - Revoke moderator access - HTML assert_dom_equal expected, icon @@ -55,23 +46,14 @@ class UserRolesHelperTest < ActionView::TestCase icons = role_icons(create(:moderator_user)) expected = <<~HTML.delete("\n") - - This user is a moderator - HTML assert_dom_equal expected, icons icons = role_icons(create(:super_user)) expected = <<~HTML.delete("\n") - - This user is an administrator - - - This user is a moderator - HTML assert_dom_equal expected, icons end @@ -83,16 +65,10 @@ class UserRolesHelperTest < ActionView::TestCase icons = role_icons(user) expected = <<~HTML.delete("\n") - - Grant administrator access - - - - + Grant moderator access - HTML assert_dom_equal expected, icons @@ -101,16 +77,10 @@ class UserRolesHelperTest < ActionView::TestCase icons = role_icons(moderator_user) expected = <<~HTML.delete("\n") - - Grant administrator access - - - - + Revoke moderator access - HTML assert_dom_equal expected, icons @@ -119,16 +89,10 @@ class UserRolesHelperTest < ActionView::TestCase icons = role_icons(super_user) expected = <<~HTML.delete("\n") - - Revoke administrator access - - - - + Revoke moderator access - HTML assert_dom_equal expected, icons diff --git a/test/lib/locale_test.rb b/test/lib/locale_test.rb index d84239038..9aec035d1 100644 --- a/test/lib/locale_test.rb +++ b/test/lib/locale_test.rb @@ -80,7 +80,7 @@ class LocaleTest < ActiveSupport::TestCase end def test_available - assert Locale.available.count <= I18n.available_locales.count + assert_operator Locale.available.count, :<=, I18n.available_locales.count end def test_preferred diff --git a/test/lib/password_hash_test.rb b/test/lib/password_hash_test.rb index 2a42de123..9bfd73496 100644 --- a/test/lib/password_hash_test.rb +++ b/test/lib/password_hash_test.rb @@ -61,6 +61,6 @@ class PasswordHashTest < ActiveSupport::TestCase format = Argon2::HashFormat.new(hash) assert_equal "argon2id", format.variant - assert format.version <= 19 + assert_operator format.version, :<=, 19 end end diff --git a/test/lib/short_link_test.rb b/test/lib/short_link_test.rb index a0a1023bb..a32e1ac20 100644 --- a/test/lib/short_link_test.rb +++ b/test/lib/short_link_test.rb @@ -20,7 +20,7 @@ class ShortLinkTest < ActiveSupport::TestCase # smaller range. distance = Math.sqrt(((lat - lat2)**2) + ((lon - lon2)**2)) max_distance = 360.0 / (1 << (zoom + 8)) * 0.5 * Math.sqrt(5) - assert max_distance > distance, "Maximum expected error exceeded: #{max_distance} <= #{distance} for (#{lat}, #{lon}, #{zoom})." + assert_operator max_distance, :>, distance, "Maximum expected error exceeded: #{max_distance} <= #{distance} for (#{lat}, #{lon}, #{zoom})." end end diff --git a/test/system/account_deletion_test.rb b/test/system/account_deletion_test.rb index 5a55c5838..87e981c64 100644 --- a/test/system/account_deletion_test.rb +++ b/test/system/account_deletion_test.rb @@ -9,9 +9,9 @@ class AccountDeletionTest < ApplicationSystemTestCase test "the status is deleted and the personal data removed" do visit edit_account_path - click_on "Delete Account..." + click_link "Delete Account..." accept_confirm do - click_on "Delete Account" + click_link "Delete Account" end assert_current_path root_path @@ -23,9 +23,9 @@ class AccountDeletionTest < ApplicationSystemTestCase test "the user is signed out after deletion" do visit edit_account_path - click_on "Delete Account..." + click_link "Delete Account..." accept_confirm do - click_on "Delete Account" + click_link "Delete Account" end assert_content "Log In" @@ -34,9 +34,9 @@ class AccountDeletionTest < ApplicationSystemTestCase test "the user is shown a confirmation flash message" do visit edit_account_path - click_on "Delete Account..." + click_link "Delete Account..." accept_confirm do - click_on "Delete Account" + click_link "Delete Account" end assert_content "Account Deleted" diff --git a/test/system/diary_entry_test.rb b/test/system/diary_entry_test.rb index 31e6d7b07..554b89a6d 100644 --- a/test/system/diary_entry_test.rb +++ b/test/system/diary_entry_test.rb @@ -10,7 +10,7 @@ class DiaryEntrySystemTest < ApplicationSystemTestCase sign_in_as(create(:user)) visit diary_entries_path - click_on "Send a message to the author" + click_link "Send a message to the author" assert_content "Send a new message" assert_equal "Re: #{@diary_entry.title}", page.find_field("Subject").value diff --git a/test/system/issues_test.rb b/test/system/issues_test.rb index b9b989c07..a40306e3c 100644 --- a/test/system/issues_test.rb +++ b/test/system/issues_test.rb @@ -80,21 +80,21 @@ class IssuesTest < ApplicationSystemTestCase # No issues against the user visit issues_path fill_in "search_by_user", :with => good_user.display_name - click_on "Search" + click_button "Search" assert_no_content I18n.t("issues.index.user_not_found") assert_content I18n.t("issues.index.issues_not_found") # User doesn't exist visit issues_path fill_in "search_by_user", :with => "Nonexistent User" - click_on "Search" + click_button "Search" assert_content I18n.t("issues.index.user_not_found") assert_content I18n.t("issues.index.issues_not_found") # Find Issue against bad_user visit issues_path fill_in "search_by_user", :with => bad_user.display_name - click_on "Search" + click_button "Search" assert_no_content I18n.t("issues.index.user_not_found") assert_no_content I18n.t("issues.index.issues_not_found") end @@ -106,7 +106,7 @@ class IssuesTest < ApplicationSystemTestCase visit issue_path(issue) fill_in :issue_comment_body, :with => "test comment" - click_on "Add Comment" + click_button "Add Comment" assert_content I18n.t("issue_comments.create.comment_created") assert_content "test comment" @@ -123,7 +123,7 @@ class IssuesTest < ApplicationSystemTestCase fill_in :issue_comment_body, :with => "reassigning to moderators" check :reassign - click_on "Add Comment" + click_button "Add Comment" assert_content "and the issue was reassigned" assert_current_path issues_path(:status => "open") @@ -140,7 +140,7 @@ class IssuesTest < ApplicationSystemTestCase fill_in :issue_comment_body, :with => "reassigning to moderators" check :reassign - click_on "Add Comment" + click_button "Add Comment" assert_content "and the issue was reassigned" assert_current_path issue_path(issue) diff --git a/test/system/preferences_test.rb b/test/system/preferences_test.rb index 59a7209f5..b071b1f73 100644 --- a/test/system/preferences_test.rb +++ b/test/system/preferences_test.rb @@ -5,7 +5,7 @@ class PreferencesTest < ApplicationSystemTestCase sign_in_as(create(:user)) visit edit_preferences_path - click_on "Update Preferences" + click_button "Update Preferences" assert_content "Preferences updated" end @@ -15,7 +15,7 @@ class PreferencesTest < ApplicationSystemTestCase visit edit_preferences_path fill_in "Preferred Languages", :with => "fr" - click_on "Update Preferences" + click_button "Update Preferences" assert_content "Préférences mises à jour" end diff --git a/test/system/report_diary_comment_test.rb b/test/system/report_diary_comment_test.rb index 3504ab061..15ef1ad3c 100644 --- a/test/system/report_diary_comment_test.rb +++ b/test/system/report_diary_comment_test.rb @@ -19,14 +19,14 @@ class ReportDiaryCommentTest < ApplicationSystemTestCase visit diary_entry_path(@diary_entry.user.display_name, @diary_entry) assert_content @diary_entry.title - click_on I18n.t("diary_entries.diary_comment.report") + click_link I18n.t("diary_entries.diary_comment.report") assert_content "Report" assert_content I18n.t("reports.new.disclaimer.intro") choose I18n.t("reports.new.categories.diary_comment.spam_label") fill_in "report_details", :with => "This comment is spam" assert_difference "Issue.count", 1 do - click_on "Create Report" + click_button "Create Report" end assert_content "Your report has been registered successfully" diff --git a/test/system/report_diary_entry_test.rb b/test/system/report_diary_entry_test.rb index efb107065..d4e49b714 100644 --- a/test/system/report_diary_entry_test.rb +++ b/test/system/report_diary_entry_test.rb @@ -18,14 +18,14 @@ class ReportDiaryEntryTest < ApplicationSystemTestCase visit diary_entry_path(@diary_entry.user.display_name, @diary_entry) assert_content @diary_entry.title - click_on I18n.t("diary_entries.diary_entry.report") + click_link I18n.t("diary_entries.diary_entry.report") assert_content "Report" assert_content I18n.t("reports.new.disclaimer.intro") choose I18n.t("reports.new.categories.diary_entry.spam_label") fill_in "report_details", :with => "This is advertising" assert_difference "Issue.count", 1 do - click_on "Create Report" + click_button "Create Report" end assert_content "Your report has been registered successfully" @@ -42,14 +42,14 @@ class ReportDiaryEntryTest < ApplicationSystemTestCase visit diary_entry_path(@diary_entry.user.display_name, @diary_entry) assert_content @diary_entry.title - click_on I18n.t("diary_entries.diary_entry.report") + click_link I18n.t("diary_entries.diary_entry.report") assert_content "Report" assert_content I18n.t("reports.new.disclaimer.intro") choose I18n.t("reports.new.categories.diary_entry.spam_label") fill_in "report_details", :with => "This is advertising" assert_no_difference "Issue.count" do - click_on "Create Report" + click_button "Create Report" end issue.reload diff --git a/test/system/report_note_test.rb b/test/system/report_note_test.rb index 79894eb89..b7e1bfc9e 100644 --- a/test/system/report_note_test.rb +++ b/test/system/report_note_test.rb @@ -14,14 +14,14 @@ class ReportNoteTest < ApplicationSystemTestCase sign_in_as(create(:user)) visit note_path(note) - click_on I18n.t("notes.show.report") + click_link I18n.t("notes.show.report") assert_content "Report" assert_content I18n.t("reports.new.disclaimer.intro") choose I18n.t("reports.new.categories.note.spam_label") fill_in "report_details", :with => "This is spam" assert_difference "Issue.count", 1 do - click_on "Create Report" + click_button "Create Report" end assert_content "Your report has been registered successfully" @@ -35,14 +35,14 @@ class ReportNoteTest < ApplicationSystemTestCase sign_in_as(create(:user)) visit note_path(note) - click_on I18n.t("notes.show.report") + click_link I18n.t("notes.show.report") assert_content "Report" assert_content I18n.t("reports.new.disclaimer.intro") choose I18n.t("reports.new.categories.note.spam_label") fill_in "report_details", :with => "This is spam" assert_difference "Issue.count", 1 do - click_on "Create Report" + click_button "Create Report" end assert_content "Your report has been registered successfully" diff --git a/test/system/report_user_test.rb b/test/system/report_user_test.rb index 7a9e800c8..9a0abe9ea 100644 --- a/test/system/report_user_test.rb +++ b/test/system/report_user_test.rb @@ -14,14 +14,14 @@ class ReportUserTest < ApplicationSystemTestCase sign_in_as(create(:user)) visit user_path(user) - click_on I18n.t("users.show.report") + click_link I18n.t("users.show.report") assert_content "Report" assert_content I18n.t("reports.new.disclaimer.intro") choose I18n.t("reports.new.categories.user.vandal_label") fill_in "report_details", :with => "This user is a vandal" assert_difference "Issue.count", 1 do - click_on "Create Report" + click_button "Create Report" end assert_content "Your report has been registered successfully" @@ -35,14 +35,14 @@ class ReportUserTest < ApplicationSystemTestCase sign_in_as(create(:user)) visit user_path(user) - click_on I18n.t("users.show.report") + click_link I18n.t("users.show.report") assert_content "Report" assert_content I18n.t("reports.new.disclaimer.intro") choose I18n.t("reports.new.categories.user.vandal_label") fill_in "report_details", :with => "This user is a vandal" assert_difference "Issue.count", 1 do - click_on "Create Report" + click_button "Create Report" end assert_content "Your report has been registered successfully" @@ -52,14 +52,14 @@ class ReportUserTest < ApplicationSystemTestCase visit user_path(user) - click_on I18n.t("users.show.report") + click_link I18n.t("users.show.report") assert_content "Report" assert_content I18n.t("reports.new.disclaimer.intro") choose I18n.t("reports.new.categories.user.spam_label") fill_in "report_details", :with => "This user is a spammer" assert_no_difference "Issue.count" do - click_on "Create Report" + click_button "Create Report" end assert_content "Your report has been registered successfully" diff --git a/test/system/user_logout_test.rb b/test/system/user_logout_test.rb index a097b6374..fc27b7c18 100644 --- a/test/system/user_logout_test.rb +++ b/test/system/user_logout_test.rb @@ -6,8 +6,8 @@ class UserLogoutTest < ApplicationSystemTestCase sign_in_as(user) assert_no_content "Log In" - click_on user.display_name - click_on "Log Out" + click_button user.display_name + click_link "Log Out" assert_content "Log In" end @@ -17,8 +17,8 @@ class UserLogoutTest < ApplicationSystemTestCase visit traces_path assert_no_content "Log In" - click_on user.display_name - click_on "Log Out" + click_button user.display_name + click_link "Log Out" assert_content "Log In" assert_content "Public GPS Traces" end diff --git a/test/system/user_signup_test.rb b/test/system/user_signup_test.rb index 5bd88f5a4..88899d710 100644 --- a/test/system/user_signup_test.rb +++ b/test/system/user_signup_test.rb @@ -4,7 +4,7 @@ class UserSignupTest < ApplicationSystemTestCase test "Sign up from login page" do visit login_path - click_on "Register now" + click_link "Register now" assert_content "Confirm Password" end @@ -13,7 +13,7 @@ class UserSignupTest < ApplicationSystemTestCase user = build(:user) visit root_path - click_on "Sign Up" + click_link "Sign Up" fill_in "Email", :with => user.email fill_in "Email Confirmation", :with => user.email fill_in "Display Name", :with => user.display_name @@ -22,7 +22,7 @@ class UserSignupTest < ApplicationSystemTestCase click_button "Sign Up" assert_content "Contributor terms" - click_on "Cancel" + click_button "Cancel" assert_current_path "https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined" end diff --git a/test/system/user_status_change_test.rb b/test/system/user_status_change_test.rb index 30b923732..e4cca1eab 100644 --- a/test/system/user_status_change_test.rb +++ b/test/system/user_status_change_test.rb @@ -10,7 +10,7 @@ class UserStatusChangeTest < ApplicationSystemTestCase user = create(:user, :suspended) visit user_path(user) accept_confirm do - click_on "Unsuspend" + click_link "Unsuspend" end assert_no_content "Unsuspend" @@ -22,7 +22,7 @@ class UserStatusChangeTest < ApplicationSystemTestCase user = create(:user, :suspended) visit user_path(user) accept_confirm do - click_on "Confirm" + click_link "Confirm" end assert_no_content "Unsuspend" diff --git a/test/system/view_communities_test.rb b/test/system/view_communities_test.rb index 349d0a5bf..539daaa30 100644 --- a/test/system/view_communities_test.rb +++ b/test/system/view_communities_test.rb @@ -13,7 +13,7 @@ class ViewCommunitiesTest < ApplicationSystemTestCase visit edit_preferences_path fill_in "Preferred Languages", :with => "fr" - click_on "Update Preferences" + click_button "Update Preferences" visit "/communities" assert_link "OpenStreetMap États-Unis", :href => "https://www.openstreetmap.us/" diff --git a/test/test_helper.rb b/test/test_helper.rb index 7157abf5a..68749c0f7 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -245,7 +245,7 @@ module ActiveSupport visit login_path fill_in "username", :with => user.email fill_in "password", :with => "test" - click_on "Login", :match => :first + click_button "Login", :match => :first end def session_for(user) diff --git a/vendor/assets/leaflet/leaflet.osm.js b/vendor/assets/leaflet/leaflet.osm.js index 6e8e20ba6..0e51f3408 100644 --- a/vendor/assets/leaflet/leaflet.osm.js +++ b/vendor/assets/leaflet/leaflet.osm.js @@ -61,6 +61,14 @@ L.OSM.HOT = L.OSM.TileLayer.extend({ } }); +L.OSM.TracestrackTopo = L.OSM.TileLayer.extend({ + options: { + url: 'https://tile.tracestrack.com/topo__/{z}/{x}/{y}.png?key={apikey}', + maxZoom: 19, + attribution: '© OpenStreetMap contributors. Tiles courtesy of Tracestrack Maps' + } +}); + L.OSM.GPS = L.OSM.TileLayer.extend({ options: { url: 'https://gps.tile.openstreetmap.org/lines/{z}/{x}/{y}.png', diff --git a/yarn.lock b/yarn.lock index c2b53e18b..bde99b23e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -34,10 +34,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.49.0": - version "8.49.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.49.0.tgz#86f79756004a97fa4df866835093f1df3d03c333" - integrity sha512-1S8uAY/MTJqVx0SC4epBq+N2yhuwtNwLbJYNZyhL2pO1ZVKn5HFXav5T41Ryzy9K9V7ZId2JB2oy/W4aCd9/2w== +"@eslint/js@8.50.0": + version "8.50.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.50.0.tgz#9e93b850f0f3fa35f5fa59adfd03adae8488e484" + integrity sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ== "@humanwhocodes/config-array@^0.11.11": version "0.11.11" @@ -224,14 +224,14 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== eslint@^8.0.0: - version "8.49.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.49.0.tgz#09d80a89bdb4edee2efcf6964623af1054bf6d42" - integrity sha512-jw03ENfm6VJI0jA9U+8H5zfl5b+FvuU3YYvZRdZHOlU2ggJkxrlkJH4HcDrZpj6YwD8kuYqvQM8LyesoazrSOQ== + version "8.50.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.50.0.tgz#2ae6015fee0240fcd3f83e1e25df0287f487d6b2" + integrity sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" "@eslint/eslintrc" "^2.1.2" - "@eslint/js" "8.49.0" + "@eslint/js" "8.50.0" "@humanwhocodes/config-array" "^0.11.11" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8"