]> git.openstreetmap.org Git - rails.git/commitdiff
Merge remote-tracking branch 'upstream/pull/4566'
authorTom Hughes <tom@compton.nu>
Wed, 13 Mar 2024 18:05:48 +0000 (18:05 +0000)
committerTom Hughes <tom@compton.nu>
Wed, 13 Mar 2024 18:05:48 +0000 (18:05 +0000)
31 files changed:
Gemfile.lock
app/abilities/api_ability.rb
app/controllers/api/old_controller.rb
app/models/user.rb
app/views/api/old_nodes/show.json.jbuilder [moved from app/views/api/old_nodes/version.json.jbuilder with 100% similarity]
app/views/api/old_nodes/show.xml.builder [moved from app/views/api/old_nodes/version.xml.builder with 100% similarity]
app/views/api/old_relations/show.json.jbuilder [moved from app/views/api/old_relations/version.json.jbuilder with 100% similarity]
app/views/api/old_relations/show.xml.builder [moved from app/views/api/old_relations/version.xml.builder with 100% similarity]
app/views/api/old_ways/show.json.jbuilder [moved from app/views/api/old_ways/version.json.jbuilder with 100% similarity]
app/views/api/old_ways/show.xml.builder [moved from app/views/api/old_ways/version.xml.builder with 100% similarity]
app/views/browse/_version_actions.erb
app/views/changesets/show.html.erb
app/views/layouts/map.html.erb
app/views/site/about.html.erb
config/locales/br.yml
config/locales/en.yml
config/locales/eo.yml
config/locales/he.yml
config/locales/hsb.yml
config/locales/oc.yml
config/locales/pl.yml
config/locales/scn.yml
config/locales/zh-TW.yml
config/routes.rb
test/controllers/api/old_nodes_controller_test.rb
test/controllers/api/old_relations_controller_test.rb
test/controllers/api/old_ways_controller_test.rb
test/controllers/api/relations_controller_test.rb
test/controllers/old_nodes_controller_test.rb
test/controllers/old_relations_controller_test.rb
test/controllers/old_ways_controller_test.rb

index d57b4c5e5cb4f15b9ec3484c4589828c93d00b55..b8d62ae734e4970654043101c3f24c621dbaf6ec 100644 (file)
@@ -95,7 +95,7 @@ GEM
     autoprefixer-rails (10.4.16.0)
       execjs (~> 2)
     aws-eventstream (1.3.0)
-    aws-partitions (1.895.0)
+    aws-partitions (1.896.0)
     aws-sdk-core (3.191.3)
       aws-eventstream (~> 1, >= 1.3.0)
       aws-partitions (~> 1, >= 1.651.0)
@@ -123,8 +123,8 @@ GEM
       parser (>= 2.4)
       smart_properties
     bigdecimal (3.1.6)
-    binding_of_caller (1.0.0)
-      debug_inspector (>= 0.0.1)
+    binding_of_caller (1.0.1)
+      debug_inspector (>= 1.2.0)
     bootsnap (1.18.3)
       msgpack (~> 1.2)
     bootstrap (5.3.2)
@@ -258,7 +258,7 @@ GEM
     highline (3.0.1)
     htmlentities (4.3.4)
     http_accept_language (2.1.1)
-    i18n (1.14.1)
+    i18n (1.14.4)
       concurrent-ruby (~> 1.0)
     i18n-js (3.9.2)
       i18n (>= 0.6.6)
@@ -289,7 +289,7 @@ GEM
     image_size (3.4.0)
     in_threads (1.6.0)
     io-console (0.7.2)
-    irb (1.11.2)
+    irb (1.12.0)
       rdoc
       reline (>= 0.4.2)
     jbuilder (2.11.5)
@@ -308,7 +308,7 @@ GEM
       rexml
     language_server-protocol (3.17.0.3)
     libv8-node (18.16.0.0)
-    libxml-ruby (5.0.2)
+    libxml-ruby (5.0.3)
     listen (3.9.0)
       rb-fsevent (~> 0.10, >= 0.10.3)
       rb-inotify (~> 0.9, >= 0.9.10)
@@ -485,7 +485,7 @@ GEM
     rouge (4.2.0)
     rtlcss (0.2.1)
       mini_racer (>= 0.6.3)
-    rubocop (1.61.0)
+    rubocop (1.62.1)
       json (~> 2.3)
       language_server-protocol (>= 3.17.0)
       parallel (~> 1.10)
@@ -493,18 +493,18 @@ GEM
       rainbow (>= 2.2.2, < 4.0)
       regexp_parser (>= 1.8, < 3.0)
       rexml (>= 3.2.5, < 4.0)
-      rubocop-ast (>= 1.30.0, < 2.0)
+      rubocop-ast (>= 1.31.1, < 2.0)
       ruby-progressbar (~> 1.7)
       unicode-display_width (>= 2.4.0, < 3.0)
-    rubocop-ast (1.31.1)
+    rubocop-ast (1.31.2)
       parser (>= 3.3.0.4)
     rubocop-capybara (2.20.0)
       rubocop (~> 1.41)
     rubocop-factory_bot (2.25.1)
       rubocop (~> 1.41)
-    rubocop-minitest (0.34.5)
-      rubocop (>= 1.39, < 2.0)
-      rubocop-ast (>= 1.30.0, < 2.0)
+    rubocop-minitest (0.35.0)
+      rubocop (>= 1.61, < 2.0)
+      rubocop-ast (>= 1.31.1, < 2.0)
     rubocop-performance (1.20.2)
       rubocop (>= 1.48.1, < 2.0)
       rubocop-ast (>= 1.30.0, < 2.0)
@@ -554,7 +554,7 @@ GEM
       activesupport (>= 5.2)
       sprockets (>= 3.0.0)
     stringio (3.1.0)
-    strong_migrations (1.7.0)
+    strong_migrations (1.8.0)
       activerecord (>= 5.2)
     terminal-table (3.0.2)
       unicode-display_width (>= 1.1.1, < 3)
index 0eae46f824294aab6a703987cc80a3d2091c9768..8ee280b3a116d2f464c9114b1c65f47b45d50d39 100644 (file)
@@ -17,9 +17,7 @@ class ApiAbility
       can [:index, :show], Node
       can [:index, :show, :full, :ways_for_node], Way
       can [:index, :show, :full, :relations_for_node, :relations_for_way, :relations_for_relation], Relation
-      can [:history, :version], OldNode
-      can [:history, :version], OldWay
-      can [:history, :version], OldRelation
+      can [:history, :show], [OldNode, OldWay, OldRelation]
       can [:show], UserBlock
 
       if user&.active?
index ceed10978d9b614dbab6fa16298189ee9b5565ea..7c9c32e639a12602ee6678bcf800fdbbf5f1cb1c 100644 (file)
@@ -7,7 +7,7 @@ module Api
 
     before_action :check_api_readable
     before_action :check_api_writable, :only => [:redact]
-    before_action :setup_user_auth, :only => [:history, :version]
+    before_action :setup_user_auth, :only => [:history, :show]
     before_action :authorize, :only => [:redact]
 
     authorize_resource
@@ -38,7 +38,7 @@ module Api
       end
     end
 
-    def version
+    def show
       if @old_element.redacted? && !show_redactions?
         head :forbidden
 
index 7ed7c249f1ae29d96c70b4a3d1d7b7414660db52..45ecbcc1b1360476b549285d51171f286c57f148 100644 (file)
@@ -360,9 +360,9 @@ class User < ApplicationRecord
     diary_comment_score = diary_comments.visible.inject(0) { |acc, elem| acc + elem.body.spam_score }
 
     score = description.spam_score / 4.0
-    score += diary_entries.where("created_at > ?", 1.day.ago).count * 10
-    score += diary_entry_score / diary_entries.length unless diary_entries.empty?
-    score += diary_comment_score / diary_comments.length unless diary_comments.empty?
+    score += diary_entries.visible.where("created_at > ?", 1.day.ago).count * 10
+    score += diary_entry_score / diary_entries.visible.length unless diary_entries.visible.empty?
+    score += diary_comment_score / diary_comments.visible.length unless diary_comments.visible.empty?
     score -= changeset_score
     score -= trace_score
 
index 46bfd0dc2c1628e7ea1536743ad4ed3f8fc7a13e..3d4e4be13ea8acf3d8de8577828ce8b463af1f43 100644 (file)
@@ -2,7 +2,7 @@
   <%= link_to t("browse.view_details"), :controller => :browse, :action => @type %>
   <% if !@feature.redacted? %>
     &middot;
-    <%= link_to t("browse.download_xml"), :controller => "api/old_#{@type.pluralize}", :action => :version %>
+    <%= link_to t("browse.download_xml"), :controller => "api/old_#{@type.pluralize}", :action => :show %>
   <% elsif current_user&.moderator? %>
     &middot;
     <% if !params[:show_redactions] %>
index 57a3fdb56b61f2b280597037f93f3eab8f2c1d88..fdaf7654ceeb6180bd71abd9c6ff951634f71c7c 100644 (file)
     <%= render :partial => "paging_nav", :locals => { :type => "way", :pages => @way_pages } %>
     <ul class="list-unstyled">
       <% @ways.each do |way| %>
-        <%= element_list_item "way", way do %>
-          <%= t "printable_name.current_and_old_links_html",
+        <%= element_list_item "way", way do
+              t "printable_name.current_and_old_links_html",
                 :current_link => link_to(printable_element_name(way), way_path(way.way_id)),
-                :old_link => link_to(printable_element_version(way), old_way_path(way.way_id, way.version)) %>
-        <% end %>
+                :old_link => link_to(printable_element_version(way), old_way_path(way.way_id, way.version))
+            end %>
       <% end %>
     </ul>
   <% end %>
     <%= render :partial => "paging_nav", :locals => { :type => "relation", :pages => @relation_pages } %>
     <ul class="list-unstyled">
       <% @relations.each do |relation| %>
-        <%= element_list_item "relation", relation do %>
-          <%= t "printable_name.current_and_old_links_html",
+        <%= element_list_item "relation", relation do
+              t "printable_name.current_and_old_links_html",
                 :current_link => link_to(printable_element_name(relation), relation_path(relation.relation_id)),
-                :old_link => link_to(printable_element_version(relation), old_relation_path(relation.relation_id, relation.version)) %>
-        <% end %>
+                :old_link => link_to(printable_element_version(relation), old_relation_path(relation.relation_id, relation.version))
+            end %>
       <% end %>
     </ul>
   <% end %>
     <%= render :partial => "paging_nav", :locals => { :type => "node", :pages => @node_pages } %>
     <ul class="list-unstyled">
       <% @nodes.each do |node| %>
-        <%= element_list_item "node", node do %>
-          <%= t "printable_name.current_and_old_links_html",
+        <%= element_list_item "node", node do
+              t "printable_name.current_and_old_links_html",
                 :current_link => link_to(printable_element_name(node), node_path(node.node_id), { :rel => link_follow(node) }),
-                :old_link => link_to(printable_element_version(node), old_node_path(node.node_id, node.version), { :rel => link_follow(node) }) %>
-        <% end %>
+                :old_link => link_to(printable_element_version(node), old_node_path(node.node_id, node.version), { :rel => link_follow(node) })
+            end %>
       <% end %>
     </ul>
   <% end %>
index f6a7473a4f6f777d3977a4c4026a19de0efbb12d..9c1eb7020ab6461eac97e66b226bf60d560be4e9 100644 (file)
       <div class="welcome p-3" hidden>
         <%= render "sidebar_header", :title => t("layouts.intro_header") %>
         <p class="fs-6 fw-light"><%= t "layouts.intro_text" %></p>
-        <p class="fs-6 fw-light"><%= t "layouts.hosting_partners_html",
-                                       :ucl => link_to(t("layouts.partners_ucl"), "https://www.ucl.ac.uk"),
+        <p class="fs-6 fw-light"><%= t "layouts.hosting_partners_2024_html",
                                        :fastly => link_to(t("layouts.partners_fastly"), "https://www.fastly.com/"),
-                                       :bytemark => link_to(t("layouts.partners_bytemark"), "https://www.bytemark.co.uk"),
+                                       :corpmembers => link_to(t("layouts.partners_corpmembers"), "https://osmfoundation.org/wiki/Corporate_Members"),
                                        :partners => link_to(t("layouts.partners_partners"), "https://hardware.openstreetmap.org/thanks/") %>
         </p>
         <div class="d-flex gap-2">
index f6f6ba1370f0f4cca2ecef3001c3ba0157486d70..619094e567127bbbb3ff6fc5989ffa933c5bce7f 100644 (file)
       <% end %>
 
       <%= render :layout => "about_section", :locals => { :id => "partners", :icon => "partners", :title => "partners" } do %>
-        <p><%= t "layouts.hosting_partners_html", :ucl => link_to(t("layouts.partners_ucl"), "https://www.ucl.ac.uk"),
-                                                  :fastly => link_to(t("layouts.partners_fastly"), "https://www.fastly.com/"),
-                                                  :bytemark => link_to(t("layouts.partners_bytemark"), "https://www.bytemark.co.uk"),
-                                                  :partners => link_to(t("layouts.partners_partners"), "https://hardware.openstreetmap.org/thanks/") %>
+        <p><%= t "layouts.hosting_partners_2024_html", :fastly => link_to(t("layouts.partners_fastly"), "https://www.fastly.com/"),
+                                                       :corpmembers => link_to(t("layouts.partners_corpmembers"), "https://osmfoundation.org/wiki/Corporate_Members"),
+                                                       :partners => link_to(t("layouts.partners_partners"), "https://hardware.openstreetmap.org/thanks/") %>
         </p>
       <% end %>
     </div>
index 49ba71aa832f05f161e9b9ffd81516d7ce2ef67a..d860f1b11e6ba118614a0aac0e079484a935a6aa 100644 (file)
@@ -517,6 +517,8 @@ br:
       heading: 'Enmont ebet gant an id: %{id}'
     show:
       title: 'Hollad cheñchamantoù: %{id}'
+      created: 'Krouet: %{when}'
+      closed: 'Serret: %{when}'
       created_ago_html: Krouet %{time_ago}
       closed_ago_html: Serret %{time_ago}
       created_ago_by_html: Bet krouet %{time_ago} gant %{user}
index 0cc35863b4fbbe77e2020ac440c4d5c70c56214d..251012d46e2d6766fe4ebd347c4b6e6c838602be 100644 (file)
@@ -1568,10 +1568,9 @@ en:
     intro_header: Welcome to OpenStreetMap!
     intro_text: OpenStreetMap is a map of the world, created by people like you and free to use under an open license.
     intro_2_create_account: "Create a user account"
-    hosting_partners_html: "Hosting is supported by %{ucl}, %{fastly}, %{bytemark}, and other %{partners}."
-    partners_ucl: "UCL"
+    hosting_partners_2024_html: "Hosting is supported by %{fastly}, %{corpmembers}, and other %{partners}."
     partners_fastly: "Fastly"
-    partners_bytemark: "Bytemark Hosting"
+    partners_corpmembers: "OSMF corporate members"
     partners_partners: "partners"
     tou: "Terms of Use"
     osm_offline: "The OpenStreetMap database is currently offline while essential database maintenance work is carried out."
index c1e51136a94f7ddb5d7c3bb9cef7290c1ba7d275..d9b285ba5048f4c5ef539f9a3e6fc873f308c917 100644 (file)
@@ -341,6 +341,7 @@ eo:
     deleted_ago_by_html: Forigita %{time_ago} de %{user}
     edited_ago_by_html: Redaktita %{time_ago} de %{user}
     version: Versio
+    redacted_version: Redaktita versio
     in_changeset: Ŝanĝaro
     anonymous: anonimulo
     no_comment: (neniu komento)
@@ -353,7 +354,10 @@ eo:
       other: '%{count} linioj'
     download_xml: Elŝuti XML
     view_history: Vidi historion
+    view_unredacted_history: Vidigi historion de neredaktitaj
     view_details: Montri detalojn
+    view_redacted_data: Vidigi redaktitajn datumojn
+    view_redaction_message: Vidigi mesaĝon pri la redaktado
     location: 'Pozicio:'
     common_details:
       coordinates_html: '%{latitude}; %{longitude}'
@@ -493,6 +497,8 @@ eo:
         aŭ eble vi alklakis eraran ligilon.
     show:
       title: 'Ŝanĝaro: %{id}'
+      created: Kreita je %{when}
+      closed: Fermita je %{when}
       created_ago_html: Kreita %{time_ago}
       closed_ago_html: Fermita %{time_ago}
       created_ago_by_html: Kreita %{time_ago} de %{user}
@@ -1865,6 +1871,9 @@ eo:
       new password button: Nuligi pasvorton
       help_text: Entajpu la retpoŝtan adreson kiun vi uzis por ensaluto, ni sendos
         al vi ligilon, kiun vi povos uzi por restarigi vian pasvorton.
+    create:
+      send_paranoid_instructions: Se via retpoŝta adreso ekzistas en nia datumbazo,
+        vi ricevos ligilon por restarigi pasvorton en via retpoŝtujo post kelkaj minutoj.
     edit:
       title: Nuligi pasvorton
       heading: Nuligi Pasvorton por %{user}
index ec25bd1746b896b0b304b63b1183ff79d8a13427..da9c5fb83623c94a8e7aed405a57b549cfee272b 100644 (file)
@@ -374,6 +374,7 @@ he:
     deleted_ago_by_html: נמחקה %{time_ago} על־ידי %{user}
     edited_ago_by_html: נערכה %{time_ago} על־ידי %{user}
     version: גרסה
+    redacted_version: גרסה שהוסר ממנה מידע
     in_changeset: ערכת שינויים
     anonymous: אלמוני
     no_comment: (אין הערות)
@@ -390,7 +391,10 @@ he:
       other: '%{count} דרכים'
     download_xml: הורדת XML
     view_history: הצגת ההיסטוריה
+    view_unredacted_history: הצגת היסטוריה ללא הסרות
     view_details: הצגת פרטים
+    view_redacted_data: הצגת הנתונים שהוסרו
+    view_redaction_message: הצגת הודעת הסרה
     location: 'מיקום:'
     node:
       title_html: 'נקודה: %{name}'
@@ -533,6 +537,8 @@ he:
         על קישור שגוי.
     show:
       title: 'ערכת שינויים: %{id}'
+      created: 'נוצרה: %{when}'
+      closed: 'נסגרה: %{when}'
       created_ago_html: נוצרה %{time_ago}
       closed_ago_html: נסגרה %{time_ago}
       created_ago_by_html: נוצרה %{time_ago} על־ידי %{user}
@@ -1903,6 +1909,9 @@ he:
       new password button: נא לשלוח לי סיסמה חדשה
       help_text: נא להזין את כתובת הדוא״ל שהשתמשת בה כדי להירשם. אנו נשלח אליה קישור
         שאפשר להשתמש בו כדי לאפס את סיסמתך.
+    create:
+      send_paranoid_instructions: אם כתובת הדוא״ל שלך קיימת במסד הנתונים שלנו, יישלח
+        אליך קישור לשחזור סיסמה לכתובת הדוא״ל הזאת בעוד כמה דקות.
     edit:
       title: איפוס סיסמה
       heading: איפוס הסיסמה עבור %{user}
index 2b27fada7fb77e0cabc61bc339c008c9735a7dbf..90760ed809458782f526ca09b2b036c78ef484bf 100644 (file)
@@ -45,6 +45,8 @@ hsb:
       messages:
         invalid_email_address: njezda so płaćiwa mejlkowa adresa być
         email_address_not_routable: njeje routojomna
+        display_name_is_user_n: njemóže wužiwar user_n być, chibazo n je twój wužiwarski
+          ID
       models:
         user_mute:
           is_already_muted: je so hižo zněmił
@@ -276,6 +278,8 @@ hsb:
           a bydlišćo so wotstronja.
         delete_display_name: Waše pokazowanske mjeno so wotstroni a da so z druhimi
           kontami znowa wužiwać.
+        confirm_delete: Sy sej wěsty?
+        cancel: Přetorhnyć
   accounts:
     edit:
       title: Konto wobdźěłać
@@ -300,6 +304,7 @@ hsb:
         agreed_with_pd: Sy tež deklarował, zo twoje změny su zjawne.
         link text: što to je?
       save changes button: Změny składować
+      delete_account: Konto zhašeć…
     go_public:
       heading: Zjawne wobdźěłowanje
       make_edits_public_button: Wšě moje změny zjawne činić
@@ -307,6 +312,8 @@ hsb:
       success_confirm_needed: Wužiwarske informacije wuspěšnje zaktualizowane. Dóstanješ
         e-mejl z namołwu, swoju nowu e-mejlowu adresu wobkrućić.
       success: Wužiwarske informacije wuspěšnje zaktualizowane.
+    destroy:
+      success: Konto je so zhašało.
   browse:
     version: Wersija
     in_changeset: Sadźba změnow
@@ -403,6 +410,7 @@ hsb:
       wikimedia_commons_link: Element %{page} na Wikimedija Commons
       telephone_link: '%{phone_number} zawołać'
       colour_preview: Přehlad barba %{colour_value}
+      email_link: E-mejl %{email}
     query:
       title: Funkcije naprašować
       introduction: Klikń na kartu, zo by susodne objekty namakał(a).
@@ -441,12 +449,24 @@ hsb:
         created: Wutworjeny
         closed: 'Začinjeny:'
         belongs_to: Awtor
+    subscribe:
+      button: Diskusiju abonować
+    unsubscribe:
+      button: Diskusiju wotskazać
     show:
       title: 'Sadźba změnow: %{id}'
+      created: 'Wutworjeny: %{when}'
+      closed: 'Začinjeny: %{when}'
+      created_ago_html: Wutworjene %{time_ago}
+      closed_ago_html: Začinjeny %{time_ago}
+      created_ago_by_html: Wutworjeny %{time_ago} wot wužiwarja %{user}
+      closed_ago_by_html: Začinjeny %{time_ago} wot wužiwarja %{user}
       discussion: Diskusija
       join_discussion: Přizjew so, zo by móhł(a) sobu diskutować
       still_open: Sadźba změnow je hišće wočinjena. Diskusija so wočinja, ručež je
         sadźba změnow začinjena.
+      comment_by_html: Komentar wot %{user} %{time_ago}
+      hidden_comment_by_html: Schowany komentar wot %{user} %{time_ago}
       changesetxml: Sadźba změnow XML
       osmchangexml: osmChange XML
     paging_nav:
@@ -479,6 +499,7 @@ hsb:
       nearby mapper: Kartěrowar w bliskosći
       friend: Přećel
     show:
+      title: Moja přehladna strona
       no_home_location_html: '%{edit_profile_link} a nastaj swoje ródne město, zo
         by wužiwarjow w bliskosći widźał.'
       edit_your_profile: Wobdźěłaj swój profil
@@ -515,6 +536,7 @@ hsb:
     show:
       title: Dźenik %{user} | %{title}
       user_title: dźenik wužiwarja %{user}
+      discussion: Diskusija
       leave_a_comment: Spisaj komentar
       login_to_leave_a_comment_html: '%{login_link}, zo by komentar spisał(a)'
       login: Přizjew so
@@ -529,11 +551,11 @@ hsb:
       comment_link: Komentar k tutomu zapiskej
       reply_link: Awtorej powěsć pósłać
       comment_count:
-        few: '%{count} komentary'
-        one: Jedyn komentar
+        one: '%{count} komentar'
         two: '%{count} komentaraj'
-        zero: Žane komentary
+        few: '%{count} komentary'
         other: '%{count} komentarow'
+      no_comments: Žane komentary
       edit_link: Tutón zapisk wobdźěłać
       hide_link: Tutón zapisk schować
       unhide_link: Tutón zapisk zaso pokazać
@@ -561,17 +583,38 @@ hsb:
         title: OpenStreetMap dźenikowe zapiski
         description: Najnowše dźenikowe zapiski wužiwarjow OpenStreetMap
     comments:
+      title: Dźenikowe komentary přidate wot wužiwarja %{user}
+      heading: Dźenikowe komentary wot wužiwarja %{user}
+      subheading_html: Dźenikowe komentary přidate wot wužiwarja %{user}
       no_comments: Žane dźenikowe komentary
       post: Zapisk
       when: Hdy
       comment: Komentar
       newer_comments: Nowše komentary
       older_comments: Starše komentary
+    subscribe:
+      button: Diskusiju abonować
+    unsubscribe:
+      button: Diskusiju wotskazać
   doorkeeper:
     flash:
       applications:
         create:
           notice: Nałoženje je zregistrowane.
+    scopes:
+      email: Wašu e-mejlowu adresu pokazać
+      openid: Waše konto awtentifikować
+      phone: Waše telefonowe čisło pokazać
+      profile: Waše profilowe informacije pokazać
+  errors:
+    contact:
+      contact: kontakt
+    forbidden:
+      title: Zakazany
+    internal_server_error:
+      title: Nałoženski zmylk
+    not_found:
+      title: Dataja njeje so namakała
   friendships:
     make_friend:
       heading: '%{user} jako přećela přidać?'
@@ -587,6 +630,10 @@ hsb:
       success: '%{name} je so jako přećel wotstronił.'
       not_a_friend: '%{name} twój přećel njeje.'
   geocoder:
+    search:
+      title:
+        results_from_html: Wuslědki z %{results_link}
+        latlon: Interny
     search_osm_nominatim:
       prefix:
         aerialway:
@@ -603,8 +650,8 @@ hsb:
         aeroway:
           aerodrome: Lětanišćo
           airstrip: Startowa čara
-          apron: Lětanske předpolo
-          gate: Wrota
+          apron: Předpolo lětanišća
+          gate: Lětanske nastupišćo
           hangar: Hangar
           helipad: Helikoptrowe přizemišćo
           holding_position: Zastanišćo
@@ -613,7 +660,7 @@ hsb:
           runway: Startowa a přizemjenska čara
           taxilane: Taksijowa jězdnja
           taxiway: Lětadłowa jězdnja
-          terminal: Terminal
+          terminal: Terminal lětanišća
           windsock: Wětrowy měšk
         amenity:
           animal_boarding: Zwěrjaca pensija
@@ -673,6 +720,7 @@ hsb:
           loading_dock: Nakładna rampa
           love_hotel: Lubosćinski hotel
           marketplace: torhošćo
+          mobile_money_agent: Mobilny pjenjezowy agent
           monastery: klóšter
           money_transfer: Pjenježne přepokazanje
           motorcycle_parking: parkowanišćo za motorske
@@ -912,8 +960,8 @@ hsb:
           brownfield: lado
           cemetery: pohrjebnišćo
           commercial: přemysłownišćo
-          conservation: přirodoškitne pasmo
-          construction: twarnišćo
+          conservation: Přirodoškitne pasmo
+          construction: Twarnišćo
           farmland: rola
           farmyard: burski statok
           forest: lěs
@@ -934,7 +982,7 @@ hsb:
           reservoir: zběranski basenk
           reservoir_watershed: wodowe přitočnišćo
           residential: sydlišćo
-          retail: wobchody
+          retail: Nakupowanišćo
           village_green: nawjes
           vineyard: winica
           "yes": wužiwanje zemje
@@ -954,7 +1002,7 @@ hsb:
           fitness_station: fitnesowa stacija
           garden: zahroda
           golf_course: golfownišćo
-          horse_riding: jěchanišćo
+          horse_riding: Jěchanišćo
           ice_rink: smykanišćo
           marina: sportowy přistaw
           miniature_golf: minigolf
@@ -1195,7 +1243,7 @@ hsb:
           deli: delikatesowy wobchod
           department_store: kupnica
           discount: wobchod za tunje artikle
-          doityourself: wobchod za twaršćizny
+          doityourself: Wobchod za twaršćizny
           dry_cleaning: čisćernja
           e-cigarette: Wobcho za E-cigarety
           electronics: wobchod za elektroniku
@@ -1220,7 +1268,7 @@ hsb:
           health_food: Wobchod za přirodnu jědź
           hearing_aids: Słuchanske nastroje
           herbalist: Zelowy wobchod
-          hifi: Hi-fi
+          hifi: Wobchod Hi-Fi
           houseware: wobchod za domjace twory
           ice_cream: Lodarnja
           interior_decoration: nutřkowne wuhotowanje
@@ -1277,7 +1325,7 @@ hsb:
           artwork: wuměłska twórba
           attraction: atrakcija
           bed_and_breakfast: přenocowanje ze snědanju
-          cabin: chěžka
+          cabin: Chěžka
           camp_pitch: Campingowanišćo
           camp_site: stanowanišćo
           caravan_site: campingowanišćo za caravany
@@ -1352,8 +1400,10 @@ hsb:
       last_updated: Poslednja aktualizacija
       link_to_reports: Rozprawy sej wobhladać
       reports_count:
-        one: Jedna rozprawa
-        other: '%{count} rozprawje'
+        one: '%{count} rozprawa'
+        two: '%{count} rozprawje'
+        few: '%{count} rozprawy'
+        other: '%{count} rozprawow'
       reported_item: Zjewjeny objekt
       states:
         ignored: Ignorowany
@@ -1362,9 +1412,11 @@ hsb:
     show:
       title: '%{status} Problem čo. %{issue_id}'
       reports:
-        zero: Žane rozprawy
-        one: Jedna rozprawa
-        other: '%{count} rozprawje'
+        one: '%{count} rozprawa'
+        two: '%{count} rozprawje'
+        few: '%{count} rozprawy'
+        other: '%{count} rozprawow'
+      no_reports: Žane rozprawy
       report_created_at_html: Prěni raz rozprawjene dnja %{datetime}
       last_resolved_at_html: Posledni raz rozrisany dnja %{datetime}
       last_updated_at_html: Posledni raz aktualizowany dnja %{datetime} wot %{displayname}
@@ -1455,8 +1507,8 @@ hsb:
     intro_text: OpenStreetMap je karta swěta, wutworjena wot ludźi kaž tebje a hodźi
       so swobodnje pod wotewrjenej licencu wužiwać.
     intro_2_create_account: Załož wužiwarske konto
-    hosting_partners_html: Hosting podpěruje je so wot %{ucl}, %{bytemark} a druhich
-      %{partners}.
+    hosting_partners_html: Hosting so wot %{ucl}, %{fastly}, %{bytemark} a druhich
+      %{partners} podpěruje.
     partners_ucl: UCL
     partners_bytemark: Bytemark Hosting
     partners_partners: partnerow
@@ -1603,10 +1655,8 @@ hsb:
         partial_changeset_without_comment: bjez komentara
       details: Dalše podrobnosće wo sadźbje změnow namakaš na %{url}.
       details_html: Dalše podrobnosće wo sadźbje změnow namakaš na %{url}.
-      unsubscribe: Zo by aktualizacije wo tutej sadźbje změnow wotskazał(a), wopytaj
-        %{url} a klikń na „wotzjewić“
-      unsubscribe_html: Zo by aktualizacije wo tutej sadźbje změnow wotskazał, wopytaj
-        %{url} a klikń na „wotskazać“
+      unsubscribe: Móžeće aktualizacije na tutej sadźbje změnow na %{url}wotskazać.
+      unsubscribe_html: Móžeće aktualizacije na tutej sadźbje změnow na %{url}wotskazać.
   confirmations:
     confirm:
       heading: Přepruwuj swoju e-mejl!
@@ -1657,6 +1707,7 @@ hsb:
       to: Komu
       subject: Tema
       date: Datum
+      actions: Akcije
     message_summary:
       unread_button: Jako njepřečitanu markěrować
       read_button: Jako přečitanu markěrować
@@ -1676,6 +1727,7 @@ hsb:
       body: Bohužel njeje powěsć z tutej ID.
     outbox:
       title: Pósłane
+      actions: Akcije
       messages:
         few: Sy %{count} powěsće pósłał(a)
         one: Sy %{count} powěsć pósłał(a)
@@ -1717,7 +1769,7 @@ hsb:
     new:
       title: Hesło zabyte
       heading: Sy hesło zabył?
-      email address: 'E-mejlowa adresa:'
+      email address: E-mejlowa adresa
       new password button: Hesło wróćo stajić
       help_text: Zapódaj mejlowu adresu, kotruž sy za registrowanje wužił, pósćelemy
         wotkaz na nju, kotryž móžeš za wróćostajenje hesła wužić.
@@ -1762,6 +1814,9 @@ hsb:
       home location: Domjace stejnišćo
       no home location: Njejsy swoje domjace stejnišćo zapodał.
       update home location on click: Domjace stejnišćo při kliknjenju na kartu aktualizować?
+      show: Pokazać
+      delete: Zhašeć
+      undelete: Zhašenje cofnyć
     update:
       success: Profil je so zaktualizował.
       failure: Profil njeda so aktualizować.
@@ -1769,8 +1824,8 @@ hsb:
     new:
       title: Přizjewjenje
       heading: Přizjewjenje
-      email or username: 'E-mejlowa adresa abo wužiwarske mjeno:'
-      password: 'Hesło:'
+      email or username: E-mejlowa adresa abo wužiwarske mjeno
+      password: Hesło
       remember: Spomjatkować sej
       lost password link: Swoje hesło zabył?
       login_button: Přizjewjenje
@@ -1790,8 +1845,8 @@ hsb:
           title: Přizjewjenje z Facebook
           alt: Přizjewjenje z facebookowym kontom
         microsoft:
-          title: Přizjewjenje z Windows Live
-          alt: Přizjewjenje z kontom Windows Live
+          title: Přizjewjenje z Microsoft
+          alt: Přizjewjenje z kontom Microsoft
         github:
           title: Z GitHub přizjewić
           alt: Z kontom GitHub přizjewić
@@ -1808,6 +1863,8 @@ hsb:
       title: Wotzjewić
       heading: Z OpenStreetMap wotzjewić
       logout_button: Wotzjewić
+    suspended_flash:
+      support: pomoc
   shared:
     markdown_help:
       headings: Nadpisy
@@ -1822,14 +1879,15 @@ hsb:
       image: Wobraz
       alt: Alternatiwny tekst
       url: URL
+      codeblock: Kodowy blok
     richtext_field:
       edit: Wobdźěłać
       preview: Přehlad
   site:
     about:
       next: Dale
-      used_by_html: '%{name} staja kartowe daty za tysacy webstronow, aplikacijow
-        a nastroje k dispoziciji'
+      used_by_html: '%{name} kartowe daty za tysacy websydłow, mobilnych nałoženjow
+        a gratwo k dispoziciji staja'
       lede_text: OpenStreetMap twori so wot zhromadźenstwa kartěrowarjow, kiž přinošuja
         a hladaja daty wo pućach, twarjenjach, dwórnišćach a wjele wjace na cyłym
         swěće.
@@ -1838,8 +1896,15 @@ hsb:
         wužiwaja powětrowe wobrazy, GPS-nastroje a pólne karty za přepruwowanje, zo
         by OSM dokładny a aktualny był.
       community_driven_title: Wot zhromadźenstwa wutworjene
+      community_driven_osm_blog: Blog OpenStreetMap
+      community_driven_user_diaries: wužiwarske dźeniki
+      community_driven_osm_foundation: Załožba OSM
       open_data_title: Zjawne daty
+      open_data_open_data: wotewrjene daty
       legal_title: Prawniske pokiwy
+      legal_1_1_openstreetmap_foundation: Załožba OpenStreetMap
+      legal_1_1_terms_of_use: Wužiwanske wuměnjenja
+      legal_1_1_privacy_policy: Prawidła priwatnosće
       partners_title: Partnerojo
     copyright:
       foreign:
@@ -1856,8 +1921,11 @@ hsb:
         mapping_link: z kartěrowanjom započeć
       legal_babble:
         title_html: Awtorske prawo a licenca
+        introduction_1_open_data: wotewrjene daty
+        introduction_1_osm_foundation: Załožba OpenStreetMap
         credit_title_html: Kak ma so na awtorstwo OpenStreetMap pokazać
-        credit_1_html: Žadamy sej wužiwanje pokazki „&copy; sobuskutkowacy OpenStreetMap“.
+        credit_1_html: 'Hdyž daty OpenStreetMap wužiwaš, dyrbiš slědowacej dwě wěcy
+          činić:'
         attribution_example:
           alt: Přikład, kak so na webstronje na OpenStreetMap pokazuje
           title: Přikład za mjenowanje na webstronje z elektroniskej kartu
@@ -1866,6 +1934,24 @@ hsb:
         contributors_intro_html: 'Naši sobuskutkowacy su tysacy jednotliwcow. Zapřijamy
           tež wotewrjenje licencowane daty narodnych kartowych agenturow a z druhich
           žórłow, mjez nimi:'
+        contributors_at_austria: Awstriska
+        contributors_at_stadt_wien: Město Wien
+        contributors_at_land_vorarlberg: Kraj Vorarlberg
+        contributors_au_australia: Awstralija
+        contributors_ca_canada: Kanada
+        contributors_cz_czechia: Čěska
+        contributors_fi_finland: Finska
+        contributors_fi_nlsfi_license: Licenca NLSFI
+        contributors_fr_france: Francoska
+        contributors_nl_netherlands: Nižozemska
+        contributors_nz_new_zealand: Nowoseelandska
+        contributors_nz_linz_data_service: Datowa słužba LINZ
+        contributors_nz_cc_by: CC BY 4.0
+        contributors_rs_serbia: Serbiska
+        contributors_si_slovenia: Słowjenska
+        contributors_es_spain: Španiska
+        contributors_za_south_africa: Južna Afrika
+        contributors_gb_united_kingdom: Zjednoćene kralestwo
         contributors_footer_2_html: Zapřijimanje datow do OpenStreetMap njerěka, zo
           poskićowar originalnych datow OpenStreetMap připóznawa, někajku garantiju
           dodawa abo rukowanje přewozmje.
@@ -1873,6 +1959,7 @@ hsb:
         infringement_1_html: Sobuskutkowacych OSM namołwjamy, zo ženje daty ze žórłow,
           kotrež su přez awtorske prawo škitane (na př. z Google Maps abo z wućišćanych
           kartow) bjez wurazneje dowolnosće awtorow  njepřidawaja.
+        trademarks_title: Tworowe znamjenja
     index:
       js_1: Pak wužiwaš wobhladowak, kotryž JavaScript njepodpěruje, pak sy JavaScript
         znjemóžnił.
@@ -1930,6 +2017,7 @@ hsb:
             zhromadźenstwu OpenStreetMap přiidružić a sam daty přidać abo korigować.
       other_concerns:
         title: Druhe naležnosće
+        working_group: Dźěłowa skupina OSMF
     help:
       title: Wo pomoc prosyć
       introduction: OpenStreetMap ma wšelake resursy za zeznaće projekta, prašenja
@@ -1945,6 +2033,7 @@ hsb:
         title: Instrukcije za nowačkow
         description: Přez zhromadźenstwo wothladowany nawod za započatkowarjow.
       community:
+        title: Pomoc a forum zhromadnosće
         description: Zhromadne městno, hdźež móžeće za pomocu pytać a so wo OpenStreetMap
           rozmołwjeć.
       mailing_lists:
@@ -1997,15 +2086,26 @@ hsb:
           cycleway_local: Lokalna kolesowarska šćežka
           footway: Chódnik
           rail: Železnica
+          train: Ćah
           subway: Podzemska železnica
+          ferry: Přewoz
+          light_rail: Měšćanska železnica
+          tram: Nadróžna
+          trolleybus: Obus
+          bus: Bus
           cable_car: Kablowa nadróžna
-          chair_lift: sydłowy lift
+          chair_lift: Sydłowy lift
           runway: Přizemišćo
-          taxiway: lětadłowa jězdnja
+          taxiway: Lětadłowa jězdnja
           apron: Lětanišćowe předpolo
           admin: Zarjadniska hranica
+          city: Město
           forest: Hajina
           wood: Lěs
+          grass: Trawa
+          meadow: Łuka
+          bare_rock: Naha skała
+          sand: Pěsk
           golf: Golfownišćo
           park: Park
           common: Powšitkowny
@@ -2015,26 +2115,31 @@ hsb:
           commercial: Přemysłowa kónčina
           heathland: Hola
           lake: Jězor
-          reservoir: spjaty jězor
+          reservoir: Reservoir
+          glacier: Lodowc
+          reef: Rif
           farm: Farma
           brownfield: Industrijowe lado
           cemetery: Kěrchow
           allotments: Małozahrodki
           pitch: Sportnišćo
           centre: Sportowy centrum
+          beach: Brjóh
           reserve: Přirodoškitne pasmo
           military: Wojerske pasmo
           school: Šula
-          university: uniwersita
+          university: Uniwersita
+          hospital: Chorownja
           building: Wuznamne twarjenje
           station: Dwórnišćo
           summit: Wjeršk
-          peak: kónčk hory
+          peak: Wjeršk hory
           tunnel: Smužkowana kroma = tunl
           bridge: Čorna kroma = móst
           private: Priwatny přistup
           destination: Jenož za přidróžnych
           construction: Dróhi w twarje
+          bus_stop: Busowe zastanišćo
           bicycle_shop: Kolesarnja
           bicycle_parking: Kólaso parkowanišćo
           toilets: Nuzniki
@@ -2049,13 +2154,21 @@ hsb:
         title: Zakładne zapřijeća za kartěrowanje
         paragraph_1: OpenStreetMap někotre wosebite zapřijeća wužiwa. Tu su někotre
           z nich, kotrež móhli ći wužitne być.
+        editor: wobdźěłar
+        node: suk
+        way: puć
+        tag: značka
       rules:
         title: Prawidła!
+        imports: Importy
+        automated_edits: Awtomatizowane wobdźěłanja
       start_mapping: Kartěrowanje započeć
+      continue_authorization: Z awtorizaciju pokročować
       add_a_note:
         title: Nimaš chwile za wobdźěłowanje? Přidaj pokazku!
         para_1: Jeli chceš jenož drobnosć korigować a nimaš chwile, zo by so zregistrował
           a wuknył, kak so wobdźěłuje, móžeš prosće pokazku přidać.
+        the_map: karta
     communities:
       title: Zhromadnosće
       local_chapters:
@@ -2146,6 +2259,8 @@ hsb:
       public_traces_from: Zjawne GPS-ćěrje wot %{user}
       description: Najnowše nahraća GPS-čarow přepytać
       tagged_with: Markěrowane přez %{tags}
+      empty_title: Hišće ničo njeje
+      wiki_page: wikistrona
       upload_trace: Ćěr nahrać
       all_traces: Wšě ćěrje
       my_traces: Moje ćěrje
@@ -2309,6 +2424,7 @@ hsb:
       title: Registrować
       no_auto_account_create: Bohužel njemóžemy tuchwilu žane konto za tebje awtomatisce
         załožić.
+      support: pomoc
       about:
         header: Swobodny a wobdźěłujomny
       display name description: Sy wužiwarske mjeno zjawnje pokazał. Móžeš to pozdźišo
@@ -2319,6 +2435,7 @@ hsb:
         někotrym přidatnym funkcijam abo serweram móhło być trjeba.
       continue: Registrować
       terms accepted: Dźakujemy so, zo sy nowe wuměnjenja za sobuskutkowarjow akceptował!
+      privacy_policy: prawidła priwatnosće
     terms:
       title: Wuměnjenja
       heading: Wuměnjenja
@@ -2359,9 +2476,11 @@ hsb:
       my settings: Moje nastajenja
       my comments: Moje komentary
       my_preferences: Moje nastajenja
+      my_dashboard: Moja přehladna strona
       blocks on me: Dostane blokowanja
       blocks by me: Date blokowanja
       create_mute: Tutoho wužiwarja zněmić
+      destroy_mute: Zněmjenje tutoho wužiwarja zběhnyć
       edit_profile: Profil wobdźěłać
       send message: Powěsć pósłać
       diary: Dźenik
@@ -2371,6 +2490,7 @@ hsb:
       remove as friend: Přećela wotstronić
       add as friend: Přećela přidać
       mapper since: 'Kartěrowar wot:'
+      uid: 'Wužiwarski ID:'
       ct status: 'Wuměnjenja za sobuskutkowarjow:'
       ct undecided: Njerozsudźeny
       ct declined: Wotpokazany
@@ -2381,6 +2501,7 @@ hsb:
       role:
         administrator: Tutón wužiwar je administrator
         moderator: Tutón wužiwar je moderator.
+        importer: Tutón wužiwar je importer
         grant:
           administrator: Prawa administratora dać
           moderator: Prawa moderatora dać
@@ -2489,6 +2610,15 @@ hsb:
       confirm: Chceš woprawdźe tute blokowanje zběhnyć?
       revoke: Zběhnyć!
       flash: Tute blokowanje je so zběhnyło.
+    revoke_all:
+      empty: '%{name} aktiwne zablokowanja nima.'
+      active_blocks:
+        one: '%{count} aktiwne zablokowanje'
+        two: '%{count} aktiwnej zablokowani'
+        few: '%{count} aktiwne zablokowanja'
+        other: '%{count} aktiwnych zablokowanjow'
+      revoke: Zběhnyć!
+      flash: Wšě aktiwne zablokowanja su zběhnjene.
     helper:
       time_future_html: Kónči so %{time}.
       until_login: Aktiwne, doniž so wužiwar njepřizjewja.
@@ -2497,9 +2627,9 @@ hsb:
       time_past_html: Je so před %{time} skónčiło.
       block_duration:
         hours:
-          few: '%{count} hodźiny'
-          one: 1 hodźina
+          one: '%{count} hodźina'
           two: '%{count} hodźinje'
+          few: '%{count} hodźiny'
           other: '%{count} hodźin'
         days:
           one: '%{count} dźeń'
@@ -2573,6 +2703,10 @@ hsb:
       table:
         thead:
           muted_user: Zněmjeny wužiwar
+          actions: Akcije
+        tbody:
+          unmute: Zněmjenje zběhnyć
+          send_message: Powěsć pósłać
     create:
       notice: Sy wužiwarja %{name} zněmił.
       error: Wužiwar %{name} njeda so zněmić. %{full_message}.
@@ -2580,7 +2714,9 @@ hsb:
     index:
       title: Pokazki, kotrež su so wot %{user} dali abo komentowali
       heading: Pokazki wužiwarja %{user}
-      subheading_html: Pokazki, kotrež su so wot %{user} dali abo komentowali
+      subheading_html: Pokazki, kotrež su so wot %{user} %{submitted} abo %{commented}
+      subheading_submitted: pósłali
+      subheading_commented: komentowali
       no_notes: Žane pokazy
       id: ID
       creator: Tworićel
@@ -2593,7 +2729,10 @@ hsb:
       open_title: 'Njesčinjena pokazka #%{note_name}'
       closed_title: 'Sčinjena pokazka #%{note_name}'
       hidden_title: 'Schowana pokazka #%{note_name}'
-      report: Tutón pokiw zdźělić
+      event_commented_by_html: Komentar wot %{user} %{time_ago}
+      event_commented_by_anonymous_html: Komentar wot anonymneho wužiwarja %{time_ago}
+      event_hidden_by_html: Schowany wot %{user} %{time_ago}
+      report: tutón pokazku zdźělić
       anonymous_warning: Tuta pokazka wobsahuje komentary wot anonymnych wužiwarjow,
         kotrež měli so njewotwisnje přepruwować.
       hide: Schować
@@ -2601,6 +2740,7 @@ hsb:
       reactivate: Znowa aktiwizować
       comment_and_resolve: Komentować a sčinić
       comment: Komentar
+      log_in_to_comment: Přizjewće so, zo by tutu pokazku komentował
     new:
       title: Nowa pokazka
       intro: Sy zmylk widźał abo zo něšto faluje? Informuj druhich kartografow, zo
@@ -2642,19 +2782,20 @@ hsb:
       locate:
         title: Aktualne městno pokazać
         metersPopup:
-          one: Sće mjenje hač %{count} meter wot tutoho dypka zdaleny
-          two: Sće mjenje hač %{count} metraj wot tutoho dypka zdaleny
-          few: Sće mjenje hač %{count} metry wot tutoho dypka zdaleny
-          other: Sće mjenje hač %{count} metrow wot tutoho dypka zdaleny
+          one: Sy mjenje hač %{count} meter wot tutoho dypka zdaleny
+          two: Sy mjenje hač %{count} metraj wot tutoho dypka zdaleny
+          few: Sy mjenje hač %{count} metry wot tutoho dypka zdaleny
+          other: Sy mjenje hač %{count} metrow wot tutoho dypka zdaleny
         feetPopup:
-          one: Sće mjenje hač %{count} stopu wot tutoho dypka zdaleny
-          two: Sće mjenje hač %{count} stopje wot tutoho dypka zdaleny
-          few: Sće mjenje hač %{count} stopy wot tutoho dypka zdaleny
-          other: Sće mjenje hač %{count} stopow wot tutoho dypka zdaleny
+          one: Sy mjenje hač %{count} stopu wot tutoho dypka zdaleny
+          two: Sy mjenje hač %{count} stopje wot tutoho dypka zdaleny
+          few: Sy mjenje hač %{count} stopy wot tutoho dypka zdaleny
+          other: Sy mjenje hač %{count} stopow wot tutoho dypka zdaleny
       base:
         standard: Standard
         cycle_map: Kolesowa karta
         transport_map: Wobchadna karta
+        tracestracktop_topo: Tracestrack Topo
         hot: Sobuskutkowacy humanitarneje pomocy
       layers:
         header: Kartowe runiny
@@ -2663,6 +2804,11 @@ hsb:
         gps: Zjawne GPS-ćěrje
         overlays: Woršty za pytanje za zmylkami na karće zmóžnić
         title: Runiny
+      openstreetmap_contributors: Sobuskutkowarjo OpenStreetMap
+      make_a_donation: Darić
+      website_and_api_terms: Wuměnjenja websydła a API
+      osm_france: OpenStreetMap Francoska
+      andy_allan: Andy Allan
     site:
       edit_tooltip: Kartu wobdźěłać
       edit_disabled_tooltip: Za wobdźěłanje karty powjetšić
@@ -2690,9 +2836,14 @@ hsb:
         graphhopper_bicycle: Koleso (GraphHopper)
         graphhopper_car: Awto (GraphHopper)
         graphhopper_foot: Pěši (GraphHopper)
+        fossgis_valhalla_bicycle: Koleso (Valhalla)
+        fossgis_valhalla_car: Awto (Valhalla)
+        fossgis_valhalla_foot: Pěši (Valhalla)
       descend: Spadowacy
       directions: Směry
       distance: Zdalenosć
+      distance_m: '%{distance} m'
+      distance_km: '%{distance} km'
       errors:
         no_route: Njenamakach čaru mjez tutymaj městnomaj.
         no_place: Bohužel njemóžachmy městno „%{place}“ namakać.
index 075cd3bcddef2574c26da729507e07b5830c1fae..aadca117dd66c928838a8fe519692b11bfe905ed 100644 (file)
@@ -7,6 +7,7 @@
 # Author: Gasconoc
 # Author: Gravitystorm
 # Author: Guilhelma
+# Author: Lhanars
 # Author: Macofe
 # Author: OpenStreetMap-oc
 # Author: Quentí
@@ -578,6 +579,9 @@ oc:
       applications:
         create:
           notice: S'es enregistrat l'aplicacion.
+  errors:
+    contact:
+      contact_url: https://wiki.openstreetmap.org/wiki/Contact
   friendships:
     make_friend:
       heading: Ajustar %{user} per amic ?
index 4033be4f04a7969a3d9b0a19afdc498b2143e9e8..a601e9a45519b3b4d7444f4c7e0f277d9a94d0c5 100644 (file)
@@ -546,6 +546,8 @@ pl:
       title: Zestaw zmian %{id}
     show:
       title: 'Zestaw zmian: %{id}'
+      created: 'Utworzony: %{when}'
+      closed: 'Zamknięty: %{when}'
       created_ago_html: Utworzone %{time_ago}
       closed_ago_html: Zamknięte %{time_ago}
       created_ago_by_html: Utworzone %{time_ago} przez %{user}
index 8c23b8b4f56be0224fded5286ac303b75e730edf..c1fc274eb8ed3188601aa42fa9e114e4a5492841 100644 (file)
@@ -3,6 +3,7 @@
 # Export driver: phpyaml
 # Author: Ajeje Brazorf
 # Author: Gmelfi
+# Author: LametinoWiki
 # Author: Macofe
 # Author: Pippinu
 # Author: Sarvaturi
@@ -29,6 +30,7 @@ scn:
         create: Riggistra
         update: Agghiorna
       oauth2_application:
+        create: Riggistrati
         update: Aggiorna
       redaction:
         create: Crea l'occultamentu
@@ -80,6 +82,8 @@ scn:
       client_application:
         callback_url: URL di callback
         support_url: URL di l'assistenza
+        allow_write_prefs: canciari li mpustazzioni d'utenti.
+        allow_write_diary: criari vuci dû diariu, cummenti e fari amici.
         allow_write_api: cancia la cartina
         allow_read_gpx: lèggi li sò tracciati GPS privati.
         allow_write_gpx: càrrica li tracciati GPS
@@ -89,11 +93,13 @@ scn:
       diary_entry:
         user: Utenti
         title: Oggettu
+        body: Corpu
         latitude: Latitùdini
         longitude: Loncitùdini
         language_code: Lingua
       doorkeeper/application:
         name: Nomu
+        redirect_uri: URI di rimannu
       friend:
         user: Utenti
         friend: Amicu
@@ -119,6 +125,7 @@ scn:
         description: Discrizzioni
       user:
         email: Posta elittrònica
+        email_confirmation: 'Cunvàlida dâ posta elittrònica:'
         new_email: Nnirizzu di posta elittrònica novu
         active: Attivu
         display_name: Nomu ammustratu
index ed16179442f93105a8346afbdadfb12fb819bfd1..4d69e96d9a02ed5c6a9c744bd2805d8bb03cc288 100644 (file)
@@ -345,6 +345,7 @@ zh-TW:
     deleted_ago_by_html: 由%{user}%{time_ago}刪除
     edited_ago_by_html: 由%{user}%{time_ago}編輯
     version: 版本
+    redacted_version: 編修版本
     in_changeset: 變更集
     anonymous: 匿名
     no_comment: (沒有評論)
@@ -357,7 +358,10 @@ zh-TW:
       other: '%{count} 條路徑'
     download_xml: 下載 XML
     view_history: 檢視歷史
+    view_unredacted_history: 查看未編修的歷史
     view_details: 檢視詳細資料
+    view_redacted_data: 查看編修資料
+    view_redaction_message: 查看編修訊息
     location: 位置:
     node:
       title_html: 節點:%{name}
@@ -491,6 +495,8 @@ zh-TW:
       body: 抱歉,沒有 id 為 %{id} 的變更集。請檢查您的拼字,或者可能是您按到錯誤的連結。
     show:
       title: 變更集:%{id}
+      created: 建立於:%{when}
+      closed: 關閉於:%{when}
       created_ago_html: '%{time_ago}建立'
       closed_ago_html: '%{time_ago}關閉'
       created_ago_by_html: 由%{user}%{time_ago}建立
@@ -1814,6 +1820,8 @@ zh-TW:
       email address: 電子郵件地址
       new password button: 重設密碼
       help_text: 輸入您的電子郵件地址來註冊,我們會將連結送至該地址,而您可以用它來重設密碼。
+    create:
+      send_paranoid_instructions: 如果您的電子郵件地址存於我們的資料庫裡,您將在幾分鐘內收到密碼恢復連結的電郵。
     edit:
       title: 重設密碼
       heading: 重設 %{user} 的密碼
index 98184e0e176661cf5dbd4baa90e848a39918cf19..842da82b3dc770198f2b79974e4f24018a22fed5 100644 (file)
@@ -13,80 +13,80 @@ OpenStreetMap::Application.routes.draw do
     get "versions" => "versions#show"
   end
 
-  scope "api/0.6" do
-    get "capabilities" => "api/capabilities#show"
-    get "permissions" => "api/permissions#show"
-
-    put "changeset/create" => "api/changesets#create"
-    post "changeset/:id/upload" => "api/changesets#upload", :as => :changeset_upload, :id => /\d+/
-    get "changeset/:id/download" => "api/changesets#download", :as => :changeset_download, :id => /\d+/
-    get "changeset/:id" => "api/changesets#show", :as => :changeset_show, :id => /\d+/
-    post "changeset/:id/subscribe" => "api/changesets#subscribe", :as => :api_changeset_subscribe, :id => /\d+/
-    post "changeset/:id/unsubscribe" => "api/changesets#unsubscribe", :as => :api_changeset_unsubscribe, :id => /\d+/
-    put "changeset/:id" => "api/changesets#update", :id => /\d+/
-    put "changeset/:id/close" => "api/changesets#close", :as => :changeset_close, :id => /\d+/
-    get "changesets" => "api/changesets#query"
-    post "changeset/:id/comment" => "api/changeset_comments#create", :as => :changeset_comment, :id => /\d+/
-    post "changeset/comment/:id/hide" => "api/changeset_comments#destroy", :as => :changeset_comment_hide, :id => /\d+/
-    post "changeset/comment/:id/unhide" => "api/changeset_comments#restore", :as => :changeset_comment_unhide, :id => /\d+/
-
-    put "node/create" => "api/nodes#create"
-    get "node/:id/ways" => "api/ways#ways_for_node", :as => :node_ways, :id => /\d+/
-    get "node/:id/relations" => "api/relations#relations_for_node", :as => :node_relations, :id => /\d+/
-    get "node/:id/history" => "api/old_nodes#history", :as => :api_node_history, :id => /\d+/
-    post "node/:id/:version/redact" => "api/old_nodes#redact", :as => :node_version_redact, :version => /\d+/, :id => /\d+/
-    get "node/:id/:version" => "api/old_nodes#version", :as => :node_version, :id => /\d+/, :version => /\d+/
-    get "node/:id" => "api/nodes#show", :as => :api_node, :id => /\d+/
-    put "node/:id" => "api/nodes#update", :id => /\d+/
-    delete "node/:id" => "api/nodes#delete", :id => /\d+/
-    get "nodes" => "api/nodes#index"
-
-    put "way/create" => "api/ways#create"
-    get "way/:id/history" => "api/old_ways#history", :as => :api_way_history, :id => /\d+/
-    get "way/:id/full" => "api/ways#full", :as => :way_full, :id => /\d+/
-    get "way/:id/relations" => "api/relations#relations_for_way", :as => :way_relations, :id => /\d+/
-    post "way/:id/:version/redact" => "api/old_ways#redact", :as => :way_version_redact, :version => /\d+/, :id => /\d+/
-    get "way/:id/:version" => "api/old_ways#version", :as => :way_version, :id => /\d+/, :version => /\d+/
-    get "way/:id" => "api/ways#show", :as => :api_way, :id => /\d+/
-    put "way/:id" => "api/ways#update", :id => /\d+/
-    delete "way/:id" => "api/ways#delete", :id => /\d+/
-    get "ways" => "api/ways#index"
-
-    put "relation/create" => "api/relations#create"
-    get "relation/:id/relations" => "api/relations#relations_for_relation", :as => :relation_relations, :id => /\d+/
-    get "relation/:id/history" => "api/old_relations#history", :as => :api_relation_history, :id => /\d+/
-    get "relation/:id/full" => "api/relations#full", :as => :relation_full, :id => /\d+/
-    post "relation/:id/:version/redact" => "api/old_relations#redact", :as => :relation_version_redact, :version => /\d+/, :id => /\d+/
-    get "relation/:id/:version" => "api/old_relations#version", :as => :relation_version, :id => /\d+/, :version => /\d+/
-    get "relation/:id" => "api/relations#show", :as => :api_relation, :id => /\d+/
-    put "relation/:id" => "api/relations#update", :id => /\d+/
-    delete "relation/:id" => "api/relations#delete", :id => /\d+/
-    get "relations" => "api/relations#index"
-
-    get "map" => "api/map#index"
-
-    get "trackpoints" => "api/tracepoints#index"
-
-    get "user/:id" => "api/users#show", :id => /\d+/, :as => :api_user
-    get "user/details" => "api/users#details"
-    get "user/gpx_files" => "api/users#gpx_files"
-    get "users" => "api/users#index", :as => :api_users
-
-    resources :user_preferences, :except => [:new, :create, :edit], :param => :preference_key, :path => "user/preferences", :controller => "api/user_preferences" do
+  scope "api/0.6", :module => :api do
+    get "capabilities" => "capabilities#show"
+    get "permissions" => "permissions#show"
+
+    put "changeset/create" => "changesets#create"
+    post "changeset/:id/upload" => "changesets#upload", :as => :changeset_upload, :id => /\d+/
+    get "changeset/:id/download" => "changesets#download", :as => :changeset_download, :id => /\d+/
+    get "changeset/:id" => "changesets#show", :as => :changeset_show, :id => /\d+/
+    post "changeset/:id/subscribe" => "changesets#subscribe", :as => :api_changeset_subscribe, :id => /\d+/
+    post "changeset/:id/unsubscribe" => "changesets#unsubscribe", :as => :api_changeset_unsubscribe, :id => /\d+/
+    put "changeset/:id" => "changesets#update", :id => /\d+/
+    put "changeset/:id/close" => "changesets#close", :as => :changeset_close, :id => /\d+/
+    get "changesets" => "changesets#query"
+    post "changeset/:id/comment" => "changeset_comments#create", :as => :changeset_comment, :id => /\d+/
+    post "changeset/comment/:id/hide" => "changeset_comments#destroy", :as => :changeset_comment_hide, :id => /\d+/
+    post "changeset/comment/:id/unhide" => "changeset_comments#restore", :as => :changeset_comment_unhide, :id => /\d+/
+
+    put "node/create" => "nodes#create"
+    get "node/:id/ways" => "ways#ways_for_node", :as => :node_ways, :id => /\d+/
+    get "node/:id/relations" => "relations#relations_for_node", :as => :node_relations, :id => /\d+/
+    get "node/:id/history" => "old_nodes#history", :as => :api_node_history, :id => /\d+/
+    post "node/:id/:version/redact" => "old_nodes#redact", :as => :node_version_redact, :version => /\d+/, :id => /\d+/
+    get "node/:id/:version" => "old_nodes#show", :as => :api_old_node, :id => /\d+/, :version => /\d+/
+    get "node/:id" => "nodes#show", :as => :api_node, :id => /\d+/
+    put "node/:id" => "nodes#update", :id => /\d+/
+    delete "node/:id" => "nodes#delete", :id => /\d+/
+    get "nodes" => "nodes#index"
+
+    put "way/create" => "ways#create"
+    get "way/:id/history" => "old_ways#history", :as => :api_way_history, :id => /\d+/
+    get "way/:id/full" => "ways#full", :as => :way_full, :id => /\d+/
+    get "way/:id/relations" => "relations#relations_for_way", :as => :way_relations, :id => /\d+/
+    post "way/:id/:version/redact" => "old_ways#redact", :as => :way_version_redact, :version => /\d+/, :id => /\d+/
+    get "way/:id/:version" => "old_ways#show", :as => :api_old_way, :id => /\d+/, :version => /\d+/
+    get "way/:id" => "ways#show", :as => :api_way, :id => /\d+/
+    put "way/:id" => "ways#update", :id => /\d+/
+    delete "way/:id" => "ways#delete", :id => /\d+/
+    get "ways" => "ways#index"
+
+    put "relation/create" => "relations#create"
+    get "relation/:id/relations" => "relations#relations_for_relation", :as => :relation_relations, :id => /\d+/
+    get "relation/:id/history" => "old_relations#history", :as => :api_relation_history, :id => /\d+/
+    get "relation/:id/full" => "relations#full", :as => :relation_full, :id => /\d+/
+    post "relation/:id/:version/redact" => "old_relations#redact", :as => :relation_version_redact, :version => /\d+/, :id => /\d+/
+    get "relation/:id/:version" => "old_relations#show", :as => :api_old_relation, :id => /\d+/, :version => /\d+/
+    get "relation/:id" => "relations#show", :as => :api_relation, :id => /\d+/
+    put "relation/:id" => "relations#update", :id => /\d+/
+    delete "relation/:id" => "relations#delete", :id => /\d+/
+    get "relations" => "relations#index"
+
+    get "map" => "map#index"
+
+    get "trackpoints" => "tracepoints#index"
+
+    get "user/:id" => "users#show", :id => /\d+/, :as => :api_user
+    get "user/details" => "users#details"
+    get "user/gpx_files" => "users#gpx_files"
+    get "users" => "users#index", :as => :api_users
+
+    resources :user_preferences, :except => [:new, :create, :edit], :param => :preference_key, :path => "user/preferences", :controller => "user_preferences" do
       collection do
-        put "" => "api/user_preferences#update_all", :as => ""
+        put "" => "user_preferences#update_all", :as => ""
       end
     end
 
-    post "gpx/create" => "api/traces#create"
-    get "gpx/:id" => "api/traces#show", :as => :api_trace, :id => /\d+/
-    put "gpx/:id" => "api/traces#update", :id => /\d+/
-    delete "gpx/:id" => "api/traces#destroy", :id => /\d+/
-    get "gpx/:id/details" => "api/traces#show", :id => /\d+/
-    get "gpx/:id/data" => "api/traces#data", :as => :api_trace_data
+    post "gpx/create" => "traces#create"
+    get "gpx/:id" => "traces#show", :as => :api_trace, :id => /\d+/
+    put "gpx/:id" => "traces#update", :id => /\d+/
+    delete "gpx/:id" => "traces#destroy", :id => /\d+/
+    get "gpx/:id/details" => "traces#show", :id => /\d+/
+    get "gpx/:id/data" => "traces#data", :as => :api_trace_data
 
     # Map notes API
-    resources :notes, :except => [:new, :edit, :update], :constraints => { :id => /\d+/ }, :controller => "api/notes", :as => :api_notes do
+    resources :notes, :except => [:new, :edit, :update], :constraints => { :id => /\d+/ }, :controller => "notes", :as => :api_notes do
       collection do
         get "search"
         get "feed", :defaults => { :format => "rss" }
@@ -99,13 +99,13 @@ OpenStreetMap::Application.routes.draw do
       end
     end
 
-    post "notes/addPOIexec" => "api/notes#create"
-    post "notes/closePOIexec" => "api/notes#close"
-    post "notes/editPOIexec" => "api/notes#comment"
-    get "notes/getGPX" => "api/notes#index", :format => "gpx"
-    get "notes/getRSSfeed" => "api/notes#feed", :format => "rss"
+    post "notes/addPOIexec" => "notes#create"
+    post "notes/closePOIexec" => "notes#close"
+    post "notes/editPOIexec" => "notes#comment"
+    get "notes/getGPX" => "notes#index", :format => "gpx"
+    get "notes/getRSSfeed" => "notes#feed", :format => "rss"
 
-    resources :user_blocks, :only => [:show], :constraints => { :id => /\d+/ }, :controller => "api/user_blocks", :as => :api_user_blocks
+    resources :user_blocks, :only => [:show], :constraints => { :id => /\d+/ }, :controller => "user_blocks", :as => :api_user_blocks
   end
 
   # Data browsing
index 737f11c7317b697406e954500e32339a89bd5067..a982705edeb1e5385a3f410495afe97160ebbc70 100644 (file)
@@ -15,7 +15,7 @@ module Api
       )
       assert_routing(
         { :path => "/api/0.6/node/1/2", :method => :get },
-        { :controller => "api/old_nodes", :action => "version", :id => "1", :version => "2" }
+        { :controller => "api/old_nodes", :action => "show", :id => "1", :version => "2" }
       )
       assert_routing(
         { :path => "/api/0.6/node/1/history.json", :method => :get },
@@ -23,7 +23,7 @@ module Api
       )
       assert_routing(
         { :path => "/api/0.6/node/1/2.json", :method => :get },
-        { :controller => "api/old_nodes", :action => "version", :id => "1", :version => "2", :format => "json" }
+        { :controller => "api/old_nodes", :action => "show", :id => "1", :version => "2", :format => "json" }
       )
       assert_routing(
         { :path => "/api/0.6/node/1/2/redact", :method => :post },
@@ -142,7 +142,7 @@ module Api
 
       # check all the versions
       versions.each_key do |key|
-        get node_version_path(:id => nodeid, :version => key.to_i)
+        get api_old_node_path(:id => nodeid, :version => key.to_i)
 
         assert_response :success,
                         "couldn't get version #{key.to_i} of node #{nodeid}"
@@ -283,12 +283,12 @@ module Api
       node_v1 = node.old_nodes.find_by(:version => 1)
       node_v1.redact!(create(:redaction))
 
-      get node_version_path(:id => node_v1.node_id, :version => node_v1.version)
+      get api_old_node_path(:id => node_v1.node_id, :version => node_v1.version)
       assert_response :forbidden, "Redacted node shouldn't be visible via the version API."
 
       # not even to a logged-in user
       auth_header = basic_authorization_header create(:user).email, "test"
-      get node_version_path(:id => node_v1.node_id, :version => node_v1.version), :headers => auth_header
+      get api_old_node_path(:id => node_v1.node_id, :version => node_v1.version), :headers => auth_header
       assert_response :forbidden, "Redacted node shouldn't be visible via the version API, even when logged in."
     end
 
@@ -325,9 +325,9 @@ module Api
 
       # check moderator can still see the redacted data, when passing
       # the appropriate flag
-      get node_version_path(:id => node_v3.node_id, :version => node_v3.version), :headers => auth_header
+      get api_old_node_path(:id => node_v3.node_id, :version => node_v3.version), :headers => auth_header
       assert_response :forbidden, "After redaction, node should be gone for moderator, when flag not passed."
-      get node_version_path(:id => node_v3.node_id, :version => node_v3.version), :params => { :show_redactions => "true" }, :headers => auth_header
+      get api_old_node_path(:id => node_v3.node_id, :version => node_v3.version), :params => { :show_redactions => "true" }, :headers => auth_header
       assert_response :success, "After redaction, node should not be gone for moderator, when flag passed."
 
       # and when accessed via history
@@ -355,7 +355,7 @@ module Api
       auth_header = basic_authorization_header create(:user).email, "test"
 
       # check can't see the redacted data
-      get node_version_path(:id => node_v3.node_id, :version => node_v3.version), :headers => auth_header
+      get api_old_node_path(:id => node_v3.node_id, :version => node_v3.version), :headers => auth_header
       assert_response :forbidden, "Redacted node shouldn't be visible via the version API."
 
       # and when accessed via history
@@ -408,7 +408,7 @@ module Api
 
       # check moderator can now see the redacted data, when not
       # passing the aspecial flag
-      get node_version_path(:id => node_v1.node_id, :version => node_v1.version), :headers => auth_header
+      get api_old_node_path(:id => node_v1.node_id, :version => node_v1.version), :headers => auth_header
       assert_response :success, "After unredaction, node should not be gone for moderator."
 
       # and when accessed via history
@@ -420,7 +420,7 @@ module Api
       auth_header = basic_authorization_header create(:user).email, "test"
 
       # check normal user can now see the redacted data
-      get node_version_path(:id => node_v1.node_id, :version => node_v1.version), :headers => auth_header
+      get api_old_node_path(:id => node_v1.node_id, :version => node_v1.version), :headers => auth_header
       assert_response :success, "After unredaction, node should be visible to normal users."
 
       # and when accessed via history
@@ -446,7 +446,7 @@ module Api
     end
 
     def do_redact_node(node, redaction, headers = {})
-      get node_version_path(:id => node.node_id, :version => node.version), :headers => headers
+      get api_old_node_path(:id => node.node_id, :version => node.version), :headers => headers
       assert_response :success, "should be able to get version #{node.version} of node #{node.node_id}."
 
       # now redact it
@@ -463,7 +463,7 @@ module Api
       assert_not_nil current_node, "getting node #{node_id} returned nil"
 
       # get the "old" version of the node from the old_node interface
-      get node_version_path(:id => node_id, :version => current_node.version)
+      get api_old_node_path(:id => node_id, :version => current_node.version)
       assert_response :success, "cant get old node #{node_id}, v#{current_node.version}"
       old_node = Node.from_xml(@response.body)
 
@@ -472,7 +472,7 @@ module Api
     end
 
     def check_not_found_id_version(id, version)
-      get node_version_path(:id => id, :version => version)
+      get api_old_node_path(:id => id, :version => version)
       assert_response :not_found
     rescue ActionController::UrlGenerationError => e
       assert_match(/No route matches/, e.to_s)
index ea26e5cb795c60bfa523f411fb458b4c2dfc0037..4002711230658c96a4b7c2f3e26826d6f14a5b2a 100644 (file)
@@ -11,7 +11,7 @@ module Api
       )
       assert_routing(
         { :path => "/api/0.6/relation/1/2", :method => :get },
-        { :controller => "api/old_relations", :action => "version", :id => "1", :version => "2" }
+        { :controller => "api/old_relations", :action => "show", :id => "1", :version => "2" }
       )
       assert_routing(
         { :path => "/api/0.6/relation/1/history.json", :method => :get },
@@ -19,7 +19,7 @@ module Api
       )
       assert_routing(
         { :path => "/api/0.6/relation/1/2.json", :method => :get },
-        { :controller => "api/old_relations", :action => "version", :id => "1", :version => "2", :format => "json" }
+        { :controller => "api/old_relations", :action => "show", :id => "1", :version => "2", :format => "json" }
       )
       assert_routing(
         { :path => "/api/0.6/relation/1/2/redact", :method => :post },
@@ -122,12 +122,12 @@ module Api
       relation_v1 = relation.old_relations.find_by(:version => 1)
       relation_v1.redact!(create(:redaction))
 
-      get relation_version_path(:id => relation_v1.relation_id, :version => relation_v1.version)
+      get api_old_relation_path(:id => relation_v1.relation_id, :version => relation_v1.version)
       assert_response :forbidden, "Redacted relation shouldn't be visible via the version API."
 
       # not even to a logged-in user
       auth_header = basic_authorization_header create(:user).email, "test"
-      get relation_version_path(:id => relation_v1.relation_id, :version => relation_v1.version), :headers => auth_header
+      get api_old_relation_path(:id => relation_v1.relation_id, :version => relation_v1.version), :headers => auth_header
       assert_response :forbidden, "Redacted relation shouldn't be visible via the version API, even when logged in."
     end
 
@@ -145,7 +145,7 @@ module Api
 
       # not even to a logged-in user
       auth_header = basic_authorization_header create(:user).email, "test"
-      get relation_version_path(:id => relation_v1.relation_id, :version => relation_v1.version), :headers => auth_header
+      get api_old_relation_path(:id => relation_v1.relation_id, :version => relation_v1.version), :headers => auth_header
       get api_relation_history_path(:id => relation_v1.relation_id), :headers => auth_header
       assert_response :success, "Redaction shouldn't have stopped history working."
       assert_select "osm relation[id='#{relation_v1.relation_id}'][version='#{relation_v1.version}']", 0,
@@ -166,9 +166,9 @@ module Api
 
       # check moderator can still see the redacted data, when passing
       # the appropriate flag
-      get relation_version_path(:id => relation_v3.relation_id, :version => relation_v3.version), :headers => auth_header
+      get api_old_relation_path(:id => relation_v3.relation_id, :version => relation_v3.version), :headers => auth_header
       assert_response :forbidden, "After redaction, relation should be gone for moderator, when flag not passed."
-      get relation_version_path(:id => relation_v3.relation_id, :version => relation_v3.version), :params => { :show_redactions => "true" }, :headers => auth_header
+      get api_old_relation_path(:id => relation_v3.relation_id, :version => relation_v3.version), :params => { :show_redactions => "true" }, :headers => auth_header
       assert_response :success, "After redaction, relation should not be gone for moderator, when flag passed."
 
       # and when accessed via history
@@ -197,7 +197,7 @@ module Api
       auth_header = basic_authorization_header create(:user).email, "test"
 
       # check can't see the redacted data
-      get relation_version_path(:id => relation_v3.relation_id, :version => relation_v3.version), :headers => auth_header
+      get api_old_relation_path(:id => relation_v3.relation_id, :version => relation_v3.version), :headers => auth_header
       assert_response :forbidden, "Redacted relation shouldn't be visible via the version API."
 
       # and when accessed via history
@@ -248,7 +248,7 @@ module Api
 
       # check moderator can still see the redacted data, without passing
       # the appropriate flag
-      get relation_version_path(:id => relation_v1.relation_id, :version => relation_v1.version), :headers => auth_header
+      get api_old_relation_path(:id => relation_v1.relation_id, :version => relation_v1.version), :headers => auth_header
       assert_response :success, "After unredaction, relation should not be gone for moderator."
 
       # and when accessed via history
@@ -260,7 +260,7 @@ module Api
       auth_header = basic_authorization_header create(:user).email, "test"
 
       # check normal user can now see the redacted data
-      get relation_version_path(:id => relation_v1.relation_id, :version => relation_v1.version), :headers => auth_header
+      get api_old_relation_path(:id => relation_v1.relation_id, :version => relation_v1.version), :headers => auth_header
       assert_response :success, "After redaction, node should not be gone for normal user."
 
       # and when accessed via history
@@ -329,7 +329,7 @@ module Api
     end
 
     def do_redact_relation(relation, redaction, headers = {})
-      get relation_version_path(:id => relation.relation_id, :version => relation.version)
+      get api_old_relation_path(:id => relation.relation_id, :version => relation.version)
       assert_response :success, "should be able to get version #{relation.version} of relation #{relation.relation_id}."
 
       # now redact it
index 4c225fb3347febcaecb710b8913a0686d3065f86..959c3514a20e5e12880d724b7ad184e4cd5237bf 100644 (file)
@@ -11,7 +11,7 @@ module Api
       )
       assert_routing(
         { :path => "/api/0.6/way/1/2", :method => :get },
-        { :controller => "api/old_ways", :action => "version", :id => "1", :version => "2" }
+        { :controller => "api/old_ways", :action => "show", :id => "1", :version => "2" }
       )
       assert_routing(
         { :path => "/api/0.6/way/1/history.json", :method => :get },
@@ -19,7 +19,7 @@ module Api
       )
       assert_routing(
         { :path => "/api/0.6/way/1/2.json", :method => :get },
-        { :controller => "api/old_ways", :action => "version", :id => "1", :version => "2", :format => "json" }
+        { :controller => "api/old_ways", :action => "show", :id => "1", :version => "2", :format => "json" }
       )
       assert_routing(
         { :path => "/api/0.6/way/1/2/redact", :method => :post },
@@ -163,12 +163,12 @@ module Api
       way_v1 = way.old_ways.find_by(:version => 1)
       way_v1.redact!(create(:redaction))
 
-      get way_version_path(:id => way_v1.way_id, :version => way_v1.version)
+      get api_old_way_path(:id => way_v1.way_id, :version => way_v1.version)
       assert_response :forbidden, "Redacted way shouldn't be visible via the version API."
 
       # not even to a logged-in user
       auth_header = basic_authorization_header create(:user).email, "test"
-      get way_version_path(:id => way_v1.way_id, :version => way_v1.version), :headers => auth_header
+      get api_old_way_path(:id => way_v1.way_id, :version => way_v1.version), :headers => auth_header
       assert_response :forbidden, "Redacted way shouldn't be visible via the version API, even when logged in."
     end
 
@@ -186,7 +186,6 @@ module Api
 
       # not even to a logged-in user
       auth_header = basic_authorization_header create(:user).email, "test"
-      get way_version_path(:id => way_v1.way_id, :version => way_v1.version), :headers => auth_header
       get api_way_history_path(:id => way_v1.way_id), :headers => auth_header
       assert_response :success, "Redaction shouldn't have stopped history working."
       assert_select "osm way[id='#{way_v1.way_id}'][version='#{way_v1.version}']", 0,
@@ -206,9 +205,9 @@ module Api
 
       # check moderator can still see the redacted data, when passing
       # the appropriate flag
-      get way_version_path(:id => way_v3.way_id, :version => way_v3.version), :headers => auth_header
+      get api_old_way_path(:id => way_v3.way_id, :version => way_v3.version), :headers => auth_header
       assert_response :forbidden, "After redaction, node should be gone for moderator, when flag not passed."
-      get way_version_path(:id => way_v3.way_id, :version => way_v3.version), :params => { :show_redactions => "true" }, :headers => auth_header
+      get api_old_way_path(:id => way_v3.way_id, :version => way_v3.version), :params => { :show_redactions => "true" }, :headers => auth_header
       assert_response :success, "After redaction, node should not be gone for moderator, when flag passed."
 
       # and when accessed via history
@@ -236,7 +235,7 @@ module Api
       auth_header = basic_authorization_header create(:user).email, "test"
 
       # check can't see the redacted data
-      get way_version_path(:id => way_v3.way_id, :version => way_v3.version), :headers => auth_header
+      get api_old_way_path(:id => way_v3.way_id, :version => way_v3.version), :headers => auth_header
       assert_response :forbidden, "Redacted node shouldn't be visible via the version API."
 
       # and when accessed via history
@@ -288,7 +287,7 @@ module Api
 
       # check moderator can still see the unredacted data, without passing
       # the appropriate flag
-      get way_version_path(:id => way_v1.way_id, :version => way_v1.version), :headers => auth_header
+      get api_old_way_path(:id => way_v1.way_id, :version => way_v1.version), :headers => auth_header
       assert_response :success, "After unredaction, node should not be gone for moderator."
 
       # and when accessed via history
@@ -300,7 +299,7 @@ module Api
       auth_header = basic_authorization_header create(:user).email, "test"
 
       # check normal user can now see the unredacted data
-      get way_version_path(:id => way_v1.way_id, :version => way_v1.version), :headers => auth_header
+      get api_old_way_path(:id => way_v1.way_id, :version => way_v1.version), :headers => auth_header
       assert_response :success, "After redaction, node should not be gone for moderator, when flag passed."
 
       # and when accessed via history
@@ -325,7 +324,7 @@ module Api
       assert_not_nil current_way, "getting way #{way_id} returned nil"
 
       # get the "old" version of the way from the version method
-      get way_version_path(:id => way_id, :version => current_way.version)
+      get api_old_way_path(:id => way_id, :version => current_way.version)
       assert_response :success, "can't get old way #{way_id}, v#{current_way.version}"
       old_way = Way.from_xml(@response.body)
 
@@ -346,7 +345,7 @@ module Api
         history_way = Way.from_xml_node(way_doc)
         assert_not_nil history_way, "parsing way #{way_id} version failed"
 
-        get way_version_path(:id => way_id, :version => history_way.version)
+        get api_old_way_path(:id => way_id, :version => history_way.version)
         assert_response :success, "couldn't get way #{way_id}, v#{history_way.version}"
         version_way = Way.from_xml(@response.body)
         assert_not_nil version_way, "failed to parse #{way_id}, v#{history_way.version}"
@@ -369,7 +368,7 @@ module Api
     end
 
     def do_redact_way(way, redaction, headers = {})
-      get way_version_path(:id => way.way_id, :version => way.version)
+      get api_old_way_path(:id => way.way_id, :version => way.version)
       assert_response :success, "should be able to get version #{way.version} of way #{way.way_id}."
 
       # now redact it
index e6f507d3a84169446370854db4164e96bee033e0..7ff369fa4abdd73590572a07e0d0b21d96ef04d9 100644 (file)
@@ -788,7 +788,7 @@ module Api
 
       # check the ordering in the history tables:
       with_controller(OldRelationsController.new) do
-        get relation_version_path(:id => relation_id, :version => 2)
+        get api_old_relation_path(:id => relation_id, :version => 2)
         assert_response :success, "can't read back version 2 of the relation #{relation_id}"
         check_ordering(doc, @response.body)
       end
@@ -868,7 +868,7 @@ module Api
 
       # check the ordering in the history tables:
       with_controller(OldRelationsController.new) do
-        get relation_version_path(:id => relation_id, :version => 1)
+        get api_old_relation_path(:id => relation_id, :version => 1)
         assert_response :success, "can't read back version 1 of the relation: #{@response.body}"
         check_ordering(doc, @response.body)
       end
@@ -1109,7 +1109,7 @@ module Api
         get api_relation_path(:id => id)
       else
         with_controller(OldRelationsController.new) do
-          get relation_version_path(:id => id, :version => ver)
+          get api_old_relation_path(:id => id, :version => ver)
         end
       end
       assert_response :success
index a1232be762e9c75b0624deb5fba3b95f2bbfc0ee..81a98766abebfca4e6e22609620f78d351cc3fe1 100644 (file)
@@ -17,7 +17,7 @@ class OldNodesControllerTest < ActionDispatch::IntegrationTest
     assert_select "h4", /^Version/ do
       assert_select "a[href='#{old_node_path node, 1}']", :count => 0
     end
-    assert_select ".secondary-actions a[href='#{node_version_path node, 1}']", :count => 1
+    assert_select ".secondary-actions a[href='#{api_old_node_path node, 1}']", :count => 1
     assert_select ".secondary-actions a[href='#{node_path node}']", :count => 1
     assert_select ".secondary-actions a[href='#{old_node_path node, 1, :params => { :show_redactions => true }}']", :count => 0
     assert_select ".secondary-actions a[href='#{node_history_path node}']", :count => 1
@@ -32,7 +32,7 @@ class OldNodesControllerTest < ActionDispatch::IntegrationTest
     assert_select "h4", /^Version/ do
       assert_select "a[href='#{old_node_path node, 1}']", :count => 0
     end
-    assert_select ".secondary-actions a[href='#{node_version_path node, 1}']", :count => 1
+    assert_select ".secondary-actions a[href='#{api_old_node_path node, 1}']", :count => 1
     assert_select ".secondary-actions a[href='#{node_path node}']", :count => 1
     assert_select ".secondary-actions a[href='#{node_history_path node}']", :count => 1
     assert_select ".secondary-actions a[href='#{old_node_path node, 2}']", :count => 1
@@ -44,7 +44,7 @@ class OldNodesControllerTest < ActionDispatch::IntegrationTest
     assert_select "h4", /^Version/ do
       assert_select "a[href='#{old_node_path node, 2}']", :count => 0
     end
-    assert_select ".secondary-actions a[href='#{node_version_path node, 2}']", :count => 1
+    assert_select ".secondary-actions a[href='#{api_old_node_path node, 2}']", :count => 1
     assert_select ".secondary-actions a[href='#{node_path node}']", :count => 1
     assert_select ".secondary-actions a[href='#{node_history_path node}']", :count => 1
     assert_select ".secondary-actions a[href='#{old_node_path node, 1}']", :count => 1
@@ -60,7 +60,7 @@ class OldNodesControllerTest < ActionDispatch::IntegrationTest
     assert_select ".secondary-actions a[href='#{node_path node}']", :count => 1
     assert_select ".secondary-actions a[href='#{old_node_path node, 1, :params => { :show_redactions => true }}']", :count => 0
     assert_select ".secondary-actions a[href='#{old_node_path node, 1}']", :count => 0
-    assert_select ".secondary-actions a[href='#{node_version_path node, 1}']", :count => 0
+    assert_select ".secondary-actions a[href='#{api_old_node_path node, 1}']", :count => 0
   end
 
   test "show unrevealed redacted versions to regular users" do
@@ -74,7 +74,7 @@ class OldNodesControllerTest < ActionDispatch::IntegrationTest
     assert_select ".secondary-actions a[href='#{node_path node}']", :count => 1
     assert_select ".secondary-actions a[href='#{old_node_path node, 1, :params => { :show_redactions => true }}']", :count => 0
     assert_select ".secondary-actions a[href='#{old_node_path node, 1}']", :count => 0
-    assert_select ".secondary-actions a[href='#{node_version_path node, 1}']", :count => 0
+    assert_select ".secondary-actions a[href='#{api_old_node_path node, 1}']", :count => 0
   end
 
   test "show unrevealed redacted versions to moderators" do
@@ -88,7 +88,7 @@ class OldNodesControllerTest < ActionDispatch::IntegrationTest
     assert_select ".secondary-actions a[href='#{node_path node}']", :count => 1
     assert_select ".secondary-actions a[href='#{old_node_path node, 1, :params => { :show_redactions => true }}']", :count => 1
     assert_select ".secondary-actions a[href='#{old_node_path node, 1}']", :count => 0
-    assert_select ".secondary-actions a[href='#{node_version_path node, 1}']", :count => 0
+    assert_select ".secondary-actions a[href='#{api_old_node_path node, 1}']", :count => 0
   end
 
   test "don't reveal redacted versions to anonymous users" do
index 6eb6db9ddc111a6fb014c5e8cf8c46481f870650..66a960e6f74efa87377ed668d3ec76156da6723f 100644 (file)
@@ -17,7 +17,7 @@ class OldRelationsControllerTest < ActionDispatch::IntegrationTest
     assert_select "h4", /^Version/ do
       assert_select "a[href='#{old_relation_path relation, 1}']", :count => 0
     end
-    assert_select ".secondary-actions a[href='#{relation_version_path relation, 1}']", :count => 1
+    assert_select ".secondary-actions a[href='#{api_old_relation_path relation, 1}']", :count => 1
     assert_select ".secondary-actions a[href='#{relation_path relation}']", :count => 1
     assert_select ".secondary-actions a[href='#{old_relation_path relation, 1, :params => { :show_redactions => true }}']", :count => 0
     assert_select ".secondary-actions a[href='#{relation_history_path relation}']", :count => 1
@@ -32,7 +32,7 @@ class OldRelationsControllerTest < ActionDispatch::IntegrationTest
     assert_select "h4", /^Version/ do
       assert_select "a[href='#{old_relation_path relation, 1}']", :count => 0
     end
-    assert_select ".secondary-actions a[href='#{relation_version_path relation, 1}']", :count => 1
+    assert_select ".secondary-actions a[href='#{api_old_relation_path relation, 1}']", :count => 1
     assert_select ".secondary-actions a[href='#{relation_path relation}']", :count => 1
     assert_select ".secondary-actions a[href='#{relation_history_path relation}']", :count => 1
     assert_select ".secondary-actions a[href='#{old_relation_path relation, 2}']", :count => 1
@@ -44,7 +44,7 @@ class OldRelationsControllerTest < ActionDispatch::IntegrationTest
     assert_select "h4", /^Version/ do
       assert_select "a[href='#{old_relation_path relation, 2}']", :count => 0
     end
-    assert_select ".secondary-actions a[href='#{relation_version_path relation, 2}']", :count => 1
+    assert_select ".secondary-actions a[href='#{api_old_relation_path relation, 2}']", :count => 1
     assert_select ".secondary-actions a[href='#{relation_path relation}']", :count => 1
     assert_select ".secondary-actions a[href='#{relation_history_path relation}']", :count => 1
     assert_select ".secondary-actions a[href='#{old_relation_path relation, 1}']", :count => 1
@@ -69,7 +69,7 @@ class OldRelationsControllerTest < ActionDispatch::IntegrationTest
     assert_select ".secondary-actions a[href='#{relation_path relation}']", :count => 1
     assert_select ".secondary-actions a[href='#{old_relation_path relation, 1, :params => { :show_redactions => true }}']", :count => 0
     assert_select ".secondary-actions a[href='#{old_relation_path relation, 1}']", :count => 0
-    assert_select ".secondary-actions a[href='#{relation_version_path relation, 1}']", :count => 0
+    assert_select ".secondary-actions a[href='#{api_old_relation_path relation, 1}']", :count => 0
   end
 
   test "show unrevealed redacted versions to regular users" do
@@ -83,7 +83,7 @@ class OldRelationsControllerTest < ActionDispatch::IntegrationTest
     assert_select ".secondary-actions a[href='#{relation_path relation}']", :count => 1
     assert_select ".secondary-actions a[href='#{old_relation_path relation, 1, :params => { :show_redactions => true }}']", :count => 0
     assert_select ".secondary-actions a[href='#{old_relation_path relation, 1}']", :count => 0
-    assert_select ".secondary-actions a[href='#{relation_version_path relation, 1}']", :count => 0
+    assert_select ".secondary-actions a[href='#{api_old_relation_path relation, 1}']", :count => 0
   end
 
   test "show unrevealed redacted versions to moderators" do
@@ -97,7 +97,7 @@ class OldRelationsControllerTest < ActionDispatch::IntegrationTest
     assert_select ".secondary-actions a[href='#{relation_path relation}']", :count => 1
     assert_select ".secondary-actions a[href='#{old_relation_path relation, 1, :params => { :show_redactions => true }}']", :count => 1
     assert_select ".secondary-actions a[href='#{old_relation_path relation, 1}']", :count => 0
-    assert_select ".secondary-actions a[href='#{relation_version_path relation, 1}']", :count => 0
+    assert_select ".secondary-actions a[href='#{api_old_relation_path relation, 1}']", :count => 0
   end
 
   test "don't reveal redacted versions to anonymous users" do
index d28a23ef5a602793d134cae90fb12c5b902f8493..65e26ef20acf912b42b220f1da4764b0d6d57e4c 100644 (file)
@@ -17,7 +17,7 @@ class OldWaysControllerTest < ActionDispatch::IntegrationTest
     assert_select "h4", /^Version/ do
       assert_select "a[href='#{old_way_path way, 1}']", :count => 0
     end
-    assert_select ".secondary-actions a[href='#{way_version_path way, 1}']", :count => 1
+    assert_select ".secondary-actions a[href='#{api_old_way_path way, 1}']", :count => 1
     assert_select ".secondary-actions a[href='#{way_path way}']", :count => 1
     assert_select ".secondary-actions a[href='#{old_way_path way, 1, :params => { :show_redactions => true }}']", :count => 0
     assert_select ".secondary-actions a[href='#{way_history_path way}']", :count => 1
@@ -32,7 +32,7 @@ class OldWaysControllerTest < ActionDispatch::IntegrationTest
     assert_select "h4", /^Version/ do
       assert_select "a[href='#{old_way_path way, 1}']", :count => 0
     end
-    assert_select ".secondary-actions a[href='#{way_version_path way, 1}']", :count => 1
+    assert_select ".secondary-actions a[href='#{api_old_way_path way, 1}']", :count => 1
     assert_select ".secondary-actions a[href='#{way_path way}']", :count => 1
     assert_select ".secondary-actions a[href='#{way_history_path way}']", :count => 1
     assert_select ".secondary-actions a[href='#{old_way_path way, 2}']", :count => 1
@@ -44,7 +44,7 @@ class OldWaysControllerTest < ActionDispatch::IntegrationTest
     assert_select "h4", /^Version/ do
       assert_select "a[href='#{old_way_path way, 2}']", :count => 0
     end
-    assert_select ".secondary-actions a[href='#{way_version_path way, 2}']", :count => 1
+    assert_select ".secondary-actions a[href='#{api_old_way_path way, 2}']", :count => 1
     assert_select ".secondary-actions a[href='#{way_path way}']", :count => 1
     assert_select ".secondary-actions a[href='#{way_history_path way}']", :count => 1
     assert_select ".secondary-actions a[href='#{old_way_path way, 1}']", :count => 1
@@ -74,7 +74,7 @@ class OldWaysControllerTest < ActionDispatch::IntegrationTest
     assert_select ".secondary-actions a[href='#{way_path way}']", :count => 1
     assert_select ".secondary-actions a[href='#{old_way_path way, 1, :params => { :show_redactions => true }}']", :count => 0
     assert_select ".secondary-actions a[href='#{old_way_path way, 1}']", :count => 0
-    assert_select ".secondary-actions a[href='#{way_version_path way, 1}']", :count => 0
+    assert_select ".secondary-actions a[href='#{api_old_way_path way, 1}']", :count => 0
   end
 
   test "show unrevealed redacted versions to regular users" do
@@ -88,7 +88,7 @@ class OldWaysControllerTest < ActionDispatch::IntegrationTest
     assert_select ".secondary-actions a[href='#{way_path way}']", :count => 1
     assert_select ".secondary-actions a[href='#{old_way_path way, 1, :params => { :show_redactions => true }}']", :count => 0
     assert_select ".secondary-actions a[href='#{old_way_path way, 1}']", :count => 0
-    assert_select ".secondary-actions a[href='#{way_version_path way, 1}']", :count => 0
+    assert_select ".secondary-actions a[href='#{api_old_way_path way, 1}']", :count => 0
   end
 
   test "show unrevealed redacted versions to moderators" do
@@ -102,7 +102,7 @@ class OldWaysControllerTest < ActionDispatch::IntegrationTest
     assert_select ".secondary-actions a[href='#{way_path way}']", :count => 1
     assert_select ".secondary-actions a[href='#{old_way_path way, 1, :params => { :show_redactions => true }}']", :count => 1
     assert_select ".secondary-actions a[href='#{old_way_path way, 1}']", :count => 0
-    assert_select ".secondary-actions a[href='#{way_version_path way, 1}']", :count => 0
+    assert_select ".secondary-actions a[href='#{api_old_way_path way, 1}']", :count => 0
   end
 
   test "don't reveal redacted versions to anonymous users" do