]> git.openstreetmap.org Git - rails.git/commitdiff
Merge branch 'master' into messages
authorAndy Allan <github@gravitystorm.co.uk>
Wed, 3 Oct 2018 12:04:12 +0000 (14:04 +0200)
committerGitHub <noreply@github.com>
Wed, 3 Oct 2018 12:04:12 +0000 (14:04 +0200)
193 files changed:
.rubocop.yml
.rubocop_todo.yml
Gemfile.lock
INSTALL.md
Vagrantfile
Vendorfile
app/assets/javascripts/index.js
app/assets/javascripts/leaflet.map.js
app/assets/stylesheets/common.scss
app/assets/stylesheets/small.scss
app/controllers/amf_controller.rb
app/controllers/application_controller.rb
app/controllers/browse_controller.rb
app/controllers/changeset_controller.rb
app/controllers/diary_entry_controller.rb
app/controllers/issues_controller.rb
app/controllers/node_controller.rb
app/controllers/notes_controller.rb
app/controllers/old_controller.rb
app/controllers/traces_controller.rb
app/controllers/user_controller.rb
app/helpers/banner_helper.rb
app/helpers/changeset_helper.rb
app/helpers/issues_helper.rb
app/helpers/note_helper.rb
app/helpers/notifier_helper.rb
app/helpers/user_roles_helper.rb
app/models/changeset.rb
app/models/client_application.rb
app/models/node.rb
app/models/notifier.rb
app/models/oauth_nonce.rb
app/models/relation.rb
app/models/request_token.rb
app/models/trace.rb
app/models/way.rb
app/views/browse/changeset.html.erb
app/views/changeset/_changeset.html.erb
app/views/changeset/history.html.erb
app/views/changeset/index.atom.builder [moved from app/views/changeset/list.atom.builder with 81% similarity]
app/views/changeset/index.html.erb [moved from app/views/changeset/list.html.erb with 100% similarity]
app/views/diary_entry/_diary_entry.html.erb
app/views/diary_entry/_diary_index_entry.html.erb [new file with mode: 0644]
app/views/diary_entry/_diary_list_entry.html.erb [deleted file]
app/views/diary_entry/comments.html.erb
app/views/diary_entry/index.html.erb [moved from app/views/diary_entry/list.html.erb with 96% similarity]
app/views/diary_entry/rss.rss.builder
app/views/diary_entry/show.html.erb [moved from app/views/diary_entry/view.html.erb with 97% similarity]
app/views/issues/_comments.html.erb
app/views/issues/_reports.html.erb
app/views/issues/index.html.erb
app/views/layouts/_header.html.erb
app/views/layouts/map.html.erb
app/views/oauth/authorize.html.erb
app/views/site/about.html.erb
app/views/traces/georss.rss.builder
app/views/user/_contact.html.erb
app/views/user/_user.html.erb
app/views/user/account.html.erb
app/views/user/index.html.erb [moved from app/views/user/list.html.erb with 100% similarity]
app/views/user/show.html.erb [moved from app/views/user/view.html.erb with 97% similarity]
config/initializers/i18n.rb
config/initializers/oauth.rb
config/locales/af.yml
config/locales/aln.yml
config/locales/ar.yml
config/locales/arz.yml
config/locales/ast.yml
config/locales/az.yml
config/locales/ba.yml
config/locales/be-Tarask.yml
config/locales/be.yml
config/locales/bg.yml
config/locales/bn.yml
config/locales/br.yml
config/locales/bs.yml
config/locales/ca.yml
config/locales/ce.yml
config/locales/cs.yml
config/locales/cy.yml
config/locales/da.yml
config/locales/de.yml
config/locales/diq.yml
config/locales/dsb.yml
config/locales/el.yml
config/locales/en-GB.yml
config/locales/en.yml
config/locales/eo.yml
config/locales/es.yml
config/locales/et.yml
config/locales/eu.yml
config/locales/fa.yml
config/locales/fi.yml
config/locales/fr.yml
config/locales/fur.yml
config/locales/ga.yml
config/locales/gd.yml
config/locales/gl.yml
config/locales/he.yml
config/locales/hr.yml
config/locales/hsb.yml
config/locales/hu.yml
config/locales/ia.yml
config/locales/id.yml
config/locales/is.yml
config/locales/it.yml
config/locales/ja.yml
config/locales/ka.yml
config/locales/kab.yml
config/locales/km.yml
config/locales/kn.yml
config/locales/ko.yml
config/locales/ku-Latn.yml
config/locales/lb.yml
config/locales/lt.yml
config/locales/lv.yml
config/locales/mk.yml
config/locales/mo.yml
config/locales/mr.yml
config/locales/ms.yml
config/locales/nb.yml
config/locales/nds.yml
config/locales/ne.yml
config/locales/nl.yml
config/locales/nn.yml
config/locales/oc.yml
config/locales/pa.yml
config/locales/pl.yml
config/locales/pt-BR.yml
config/locales/pt-PT.yml
config/locales/ro.yml
config/locales/ru.yml
config/locales/scn.yml
config/locales/sco.yml
config/locales/sk.yml
config/locales/sl.yml
config/locales/sq.yml
config/locales/sr-Latn.yml
config/locales/sr.yml
config/locales/sv.yml
config/locales/ta.yml
config/locales/te.yml
config/locales/th.yml
config/locales/tl.yml
config/locales/tr.yml
config/locales/uk.yml
config/locales/vi.yml
config/locales/zh-CN.yml
config/locales/zh-TW.yml
config/routes.rb
config/wiki_pages.yml
db/migrate/021_move_to_innodb.rb
lib/bounding_box.rb
lib/classic_pagination/pagination.rb
lib/daemons/gpx_import.rb
lib/geo_record.rb
lib/gpx.rb
lib/potlatch.rb
lib/utf8.rb
script/deliver-message
script/gravatar
script/misc/update-wiki-pages
script/vagrant/setup/provision.sh
test/controllers/amf_controller_test.rb
test/controllers/browse_controller_test.rb
test/controllers/changeset_controller_test.rb
test/controllers/diary_entry_controller_test.rb
test/controllers/messages_controller_test.rb
test/controllers/old_node_controller_test.rb
test/controllers/redactions_controller_test.rb
test/controllers/reports_controller_test.rb
test/controllers/swf_controller_test.rb
test/controllers/traces_controller_test.rb
test/controllers/user_blocks_controller_test.rb
test/controllers/user_controller_test.rb
test/controllers/user_roles_controller_test.rb
test/integration/client_applications_test.rb
test/integration/user_creation_test.rb
test/integration/user_roles_test.rb
test/lib/bounding_box_test.rb
test/lib/country_test.rb
test/models/changeset_test.rb
test/models/message_test.rb
test/models/node_test.rb
test/models/old_node_test.rb
test/models/relation_test.rb
test/models/tracepoint_test.rb
test/models/way_test.rb
test/system/report_user_test.rb
vendor/assets/javascripts/bowser.js
vendor/assets/leaflet/leaflet.css
vendor/assets/leaflet/leaflet.js
vendor/assets/leaflet/leaflet.osm.js

index 24d57fb37cc0b354c71674e00c8a6f9671bbdf6b..31c14773c1b0e994f215efa5f3916f9672434900 100644 (file)
@@ -1,5 +1,8 @@
 inherit_from: .rubocop_todo.yml
 
+AllCops:
+  TargetRubyVersion: 2.3
+
 Rails:
   Enabled: true
 
@@ -27,6 +30,9 @@ Rails/ApplicationRecord:
 Rails/CreateTableWithTimestamps:
   Enabled: false
 
+Rails/FindEach:
+  Enabled: false
+
 Rails/HasManyOrHasOneDependent:
   Enabled: false
 
index 78ed84ac3472c25a241428f9d93a9c35198aa8b3..d3e51600ddd815bab3e57cfd794ac99cf4531f82 100644 (file)
@@ -1,23 +1,11 @@
 # This configuration was generated by
 # `rubocop --auto-gen-config`
-# on 2018-06-19 09:02:55 +0100 using RuboCop version 0.57.2.
+# on 2018-09-19 14:24:02 +0100 using RuboCop version 0.58.2.
 # The point is for the user to remove these configuration records
 # one by one as the offenses are removed from the code base.
 # Note that changes in the inspected code, or installation of new
 # versions of RuboCop, may require this file to be generated again.
 
-# Offense count: 34
-Lint/AmbiguousOperator:
-  Exclude:
-    - 'test/controllers/amf_controller_test.rb'
-    - 'test/controllers/changeset_controller_test.rb'
-    - 'test/lib/bounding_box_test.rb'
-    - 'test/lib/country_test.rb'
-
-# Offense count: 96
-Lint/AmbiguousRegexpLiteral:
-  Enabled: false
-
 # Offense count: 32
 # Configuration parameters: AllowSafeAssignment.
 Lint/AssignmentInCondition:
@@ -42,17 +30,13 @@ Lint/HandleExceptions:
     - 'app/controllers/amf_controller.rb'
     - 'app/controllers/user_controller.rb'
 
-# Offense count: 2
-Lint/ShadowingOuterLocalVariable:
-  Exclude:
-    - 'app/views/changeset/list.atom.builder'
-
-# Offense count: 690
+# Offense count: 692
 Metrics/AbcSize:
   Max: 280
 
-# Offense count: 41
+# Offense count: 40
 # Configuration parameters: CountComments, ExcludedMethods.
+# ExcludedMethods: refine
 Metrics/BlockLength:
   Max: 262
 
@@ -70,7 +54,7 @@ Metrics/ClassLength:
 Metrics/CyclomaticComplexity:
   Max: 20
 
-# Offense count: 688
+# Offense count: 691
 # Configuration parameters: CountComments.
 Metrics/MethodLength:
   Max: 179
@@ -85,7 +69,7 @@ Metrics/ModuleLength:
 Metrics/ParameterLists:
   Max: 9
 
-# Offense count: 71
+# Offense count: 72
 Metrics/PerceivedComplexity:
   Max: 23
 
@@ -178,10 +162,17 @@ Style/AsciiComments:
   Exclude:
     - 'test/models/message_test.rb'
 
-# Offense count: 229
+# Offense count: 230
 Style/Documentation:
   Enabled: false
 
+# Offense count: 462
+# Cop supports --auto-correct.
+# Configuration parameters: EnforcedStyle.
+# SupportedStyles: when_needed, always, never
+Style/FrozenStringLiteralComment:
+  Enabled: false
+
 # Offense count: 2
 # Cop supports --auto-correct.
 Style/IfUnlessModifier:
@@ -194,7 +185,7 @@ Style/IfUnlessModifier:
 Style/NumericLiterals:
   MinDigits: 11
 
-# Offense count: 3064
+# Offense count: 3080
 # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
 # URISchemes: http, https
 Metrics/LineLength:
index 2f6eb84067d8abf20aa65123879e889b176d5c94..76a31e169e59a8c4aacd58ef738f2de056957302 100644 (file)
@@ -2,7 +2,7 @@ GEM
   remote: https://rubygems.org/
   specs:
     SystemTimer (1.2.3)
-    aasm (5.0.0)
+    aasm (5.0.1)
       concurrent-ruby (~> 1.0)
     actioncable (5.2.0)
       actionpack (= 5.2.0)
@@ -63,7 +63,7 @@ GEM
     bigdecimal (1.1.0)
     binding_of_caller (0.8.0)
       debug_inspector (>= 0.0.1)
-    bootsnap (1.3.1)
+    bootsnap (1.3.2)
       msgpack (~> 1.0)
     builder (3.2.3)
     canonical-rails (0.2.4)
@@ -104,10 +104,10 @@ GEM
     erubi (1.7.1)
     execjs (2.7.0)
     exifr (1.3.4)
-    factory_bot (4.11.0)
+    factory_bot (4.11.1)
       activesupport (>= 3.0.0)
-    factory_bot_rails (4.11.0)
-      factory_bot (~> 4.11.0)
+    factory_bot_rails (4.11.1)
+      factory_bot (~> 4.11.1)
       railties (>= 3.0.0)
     faraday (0.12.2)
       multipart-post (>= 1.2, < 3)
@@ -169,7 +169,7 @@ GEM
       nokogiri (>= 1.5.9)
     mail (2.7.0)
       mini_mime (>= 0.1.1)
-    marcel (0.3.2)
+    marcel (0.3.3)
       mimemagic (~> 0.3.2)
     method_source (0.9.0)
     mime-types (3.2.2)
@@ -301,7 +301,7 @@ GEM
       rack (>= 1.4)
     rinku (2.0.4)
     rotp (3.3.1)
-    rubocop (0.58.2)
+    rubocop (0.59.1)
       jaro_winkler (~> 1.5.1)
       parallel (~> 1.10)
       parser (>= 2.5, != 2.5.1.1)
@@ -317,7 +317,7 @@ GEM
       crass (~> 1.0.2)
       nokogiri (>= 1.4.4)
       nokogumbo (~> 1.4)
-    sass (3.5.7)
+    sass (3.6.0)
       sass-listen (~> 4.0.0)
     sass-listen (4.0.0)
       rb-fsevent (~> 0.9, >= 0.9.4)
@@ -358,7 +358,7 @@ GEM
     tins (1.16.3)
     tzinfo (1.2.5)
       thread_safe (~> 0.1)
-    uglifier (4.1.18)
+    uglifier (4.1.19)
       execjs (>= 0.3.0, < 3)
     unicode-display_width (1.4.0)
     validates_email_format_of (1.6.3)
index 768cbd540c430a3d998ed40fca36052f2dd4ed84..8e47cb2667473bac991125e237138ac39e0d457f 100644 (file)
@@ -5,7 +5,7 @@ If you want to deploy the software for your own project, then see the notes at t
 
 You can install the software directly on your machine, which is the traditional and probably best-supported approach. However, there is an alternative which may be easier: Vagrant. This installs the software into a virtual machine, which makes it easier to get a consistent development environment and may avoid installation difficulties. For Vagrant instructions, see [VAGRANT.md](VAGRANT.md).
 
-These instructions are based on Ubuntu 12.04 LTS, which is the platform used by the OSMF servers.
+These instructions are based on Ubuntu 16.04 LTS, which is the platform used by the OSMF servers.
 The instructions also work, with only minor amendments, for all other current Ubuntu releases, Fedora and MacOSX
 
 We don't recommend attempting to develop or deploy this software on Windows. If you need to use Windows, then try developing this software using Ubuntu in a virtual machine, or use [Vagrant](VAGRANT.md).
index d10934b3736b0c3c3f936deee7a885824b4c36f2..fcb4790fef74461c0f028afc5c1a6d8032426522 100644 (file)
@@ -4,23 +4,26 @@
 Vagrant.configure("2") do |config|
   # use official ubuntu image for virtualbox
   config.vm.provider "virtualbox" do |vb, override|
-    override.vm.box = "ubuntu/xenial64"
+    override.vm.box = "ubuntu/bionic64"
     override.vm.synced_folder ".", "/srv/openstreetmap-website"
     vb.customize ["modifyvm", :id, "--memory", "1024"]
     vb.customize ["modifyvm", :id, "--cpus", "2"]
     vb.customize ["modifyvm", :id, "--uartmode1", "disconnected"]
   end
 
-  # use third party image and NFS sharing for lxc
+  # Use sshfs sharing if available, otherwise NFS sharing
+  sharing_type = Vagrant.has_plugin?("vagrant-sshfs") ? "sshfs" : "nfs"
+
+  # use third party image and sshfs or NFS sharing for lxc
   config.vm.provider "lxc" do |_, override|
-    override.vm.box = "generic/ubuntu1604"
-    override.vm.synced_folder ".", "/srv/openstreetmap-website", :type => "nfs"
+    override.vm.box = "generic/ubuntu1804"
+    override.vm.synced_folder ".", "/srv/openstreetmap-website", :type => sharing_type
   end
 
-  # use third party image and NFS sharing for libvirt
+  # use third party image and sshfs or NFS sharing for libvirt
   config.vm.provider "libvirt" do |_, override|
-    override.vm.box = "generic/ubuntu1604"
-    override.vm.synced_folder ".", "/srv/openstreetmap-website", :type => "nfs"
+    override.vm.box = "generic/ubuntu1804"
+    override.vm.synced_folder ".", "/srv/openstreetmap-website", :type => sharing_type
   end
 
   # configure shared package cache if possible
index 5303d738f69a511f7500e7015b101b7f10ed0a8e..15a8eba1b04b72b3d7698f0c3d184492787da434 100644 (file)
@@ -11,13 +11,13 @@ folder 'vendor/assets' do
   end
 
   folder 'leaflet' do
-    file 'leaflet.js', 'https://unpkg.com/leaflet@1.3.3/dist/leaflet-src.js'
-    file 'leaflet.css', 'https://unpkg.com/leaflet@1.3.3/dist/leaflet.css'
+    file 'leaflet.js', 'https://unpkg.com/leaflet@1.3.4/dist/leaflet-src.js'
+    file 'leaflet.css', 'https://unpkg.com/leaflet@1.3.4/dist/leaflet.css'
 
     [ 'layers.png', 'layers-2x.png',
       'marker-icon.png', 'marker-icon-2x.png',
       'marker-shadow.png' ].each do |image|
-      file "images/#{image}", "https://unpkg.com/leaflet@1.3.3/dist/images/#{image}"
+      file "images/#{image}", "https://unpkg.com/leaflet@1.3.4/dist/images/#{image}"
     end
 
     from 'git://github.com/aratcliffe/Leaflet.contextmenu.git', :tag => 'v1.5.0' do
@@ -69,7 +69,7 @@ folder 'vendor/assets' do
 
   folder 'javascripts' do
     file 'html5shiv.js', 'https://raw.githubusercontent.com/aFarkas/html5shiv/master/src/html5shiv.js'
-    file 'bowser.js', 'https://github.com/lancedikson/bowser/releases/download/1.9.3/bowser.js'
+    file 'bowser.js', 'https://github.com/lancedikson/bowser/releases/download/1.9.4/bowser.js'
   end
 
   folder 'swfobject' do
index ccf4e561c98ceacd14d0e612f77e408fc6bac734..e8e566f53a2ca698ae09000cb73d54118282fd8d 100644 (file)
@@ -187,12 +187,12 @@ $(document).ready(function () {
     $.cookie('_osm_location', OSM.locationCookie(map), { expires: expiry, path: '/' });
   });
 
-  if ($.cookie('_osm_welcome') === 'hide') {
-    $('.welcome').hide();
+  if ($.cookie('_osm_welcome') !== 'hide') {
+    $('.welcome').addClass('visible');
   }
 
   $('.welcome .close-wrap').on('click', function() {
-    $('.welcome').hide();
+    $('.welcome').removeClass('visible');
     $.cookie('_osm_welcome', 'hide', { expires: expiry, path: '/' });
   });
 
index ba88e5904dca22cb3c30577ebcf16d25ba95688f..e712a8d1f415719e14746ad6ef279694c5eedc23 100644 (file)
@@ -61,6 +61,12 @@ L.OSM.Map = L.Map.extend({
       code: "G",
       name: I18n.t("javascripts.map.base.gps")
     });
+
+    this.on("layeradd", function (event) {
+      if (this.baseLayers.indexOf(event.layer) >= 0) {
+        this.setMaxZoom(event.layer.options.maxZoom);
+      }
+    });
   },
 
   updateLayers: function(layerParam) {
index f9214b24dba1a94dd84c129541bfefbd6e09cd7b..4b8a80c5469b58c1ae219cff2816a6157e994904 100644 (file)
@@ -611,11 +611,18 @@ body.compact {
     height: auto;
     overflow: hidden;
 
-    #banner,
-    .welcome {
+    #banner {
       display: block;
     }
 
+    .welcome {
+      display: none;
+
+      &.visible {
+        display: block;
+      }
+    }
+
     #sidebar_content {
       display: none;
     }
@@ -971,6 +978,8 @@ header .search_forms,
 
   img.button {
     display: block;
+    width: 20px;
+    height: 20px;
   }
 
   span.force_width {
@@ -1501,7 +1510,7 @@ tr.turn:hover {
 
 /* Rules for the trace view */
 
-.trace-view {
+.trace-show {
   .trace_pending {
     color: red;
   }
@@ -1585,7 +1594,7 @@ tr.turn:hover {
   margin-left: 70px;
 }
 
-.user-view {
+.user-show {
   // Silly exception; remove when user page is redesigned.
   .content-inner {
     max-width: none;
@@ -1712,7 +1721,7 @@ tr.turn:hover {
   }
 }
 
-.diary_entry-view img.user_thumbnail {
+.diary_entry-show img.user_thumbnail {
   float: left;
 }
 
index 984364736b35290d8cb38a272f1016711d6bdf22..12e21c7d8b8e9f52b007d4b0655820604d94f426 100644 (file)
@@ -126,9 +126,12 @@ body.small {
     }
   }
 
-  #sidebar .welcome,
-  #sidebar #banner {
-    display: none !important;
+  .overlay-sidebar #sidebar .welcome.visible {
+    display: none;
+  }
+
+  .overlay-sidebar #sidebar #banner {
+    display: none;
   }
 
   .leaflet-top.leaflet-right {
index 07e7669b173c4037453bac9bb07fabd718be0b5e..4f6adae5da6b08dd38b763f5aff392e53d359ce2 100644 (file)
@@ -143,6 +143,7 @@ class AmfController < ApplicationController
 
       if cstags
         return -1, "One of the tags is invalid. Linux users may need to upgrade to Flash Player 10.1." unless tags_ok(cstags)
+
         cstags = strip_non_xml_chars cstags
       end
 
@@ -471,7 +472,7 @@ class AmfController < ApplicationController
       return -1, t("application.setup_user_auth.blocked") if user.blocks.active.exists?
 
       query = Trace.visible_to(user)
-      query = if searchterm.to_i > 0
+      query = if searchterm.to_i.positive?
                 query.where(:id => searchterm.to_i)
               else
                 query.where("MATCH(name) AGAINST (?)", searchterm).limit(21)
@@ -497,6 +498,7 @@ class AmfController < ApplicationController
       rel = Relation.where(:id => relid).first
 
       return [-4, "relation", relid] if rel.nil? || !rel.visible
+
       [0, "", relid, rel.tags, rel.members, rel.version]
     end
   end
@@ -506,9 +508,9 @@ class AmfController < ApplicationController
 
   def findrelations(searchterm)
     rels = []
-    if searchterm.to_i > 0
+    if searchterm.to_i.positive?
       rel = Relation.where(:id => searchterm.to_i).first
-      rels.push([rel.id, rel.tags, rel.members, rel.version]) if rel && rel.visible
+      rels.push([rel.id, rel.tags, rel.members, rel.version]) if rel&.visible
     else
       RelationTag.where("v like ?", "%#{searchterm}%").limit(11).each do |t|
         rels.push([t.relation.id, t.relation.tags, t.relation.members, t.relation.version]) if t.relation.visible
@@ -533,6 +535,7 @@ class AmfController < ApplicationController
       return -1, "You must accept the contributor terms before you can edit." if REQUIRE_TERMS_AGREED && user.terms_agreed.nil?
 
       return -1, "One of the tags is invalid. Linux users may need to upgrade to Flash Player 10.1." unless tags_ok(tags)
+
       tags = strip_non_xml_chars tags
 
       relid = relid.to_i
@@ -542,7 +545,7 @@ class AmfController < ApplicationController
       relation = nil
       Relation.transaction do
         # create a new relation, or find the existing one
-        relation = Relation.find(relid) if relid > 0
+        relation = Relation.find(relid) if relid.positive?
         # We always need a new node, based on the data that has been sent to us
         new_relation = Relation.new
 
@@ -550,7 +553,7 @@ class AmfController < ApplicationController
         typedmembers = []
         members.each do |m|
           mid = m[1].to_i
-          if mid < 0
+          if mid.negative?
             mid = renumberednodes[mid] if m[0] == "Node"
             mid = renumberedways[mid] if m[0] == "Way"
           end
@@ -622,6 +625,7 @@ class AmfController < ApplicationController
       return -2, "Server error - way is only #{pointlist.length} points long." if pointlist.length < 2
 
       return -1, "One of the tags is invalid. Linux users may need to upgrade to Flash Player 10.1." unless tags_ok(attributes)
+
       attributes = strip_non_xml_chars attributes
 
       originalway = originalway.to_i
@@ -651,6 +655,7 @@ class AmfController < ApplicationController
 
           # fixup node tags in a way as well
           return -1, "One of the tags is invalid. Linux users may need to upgrade to Flash Player 10.1." unless tags_ok(node.tags)
+
           node.tags = strip_non_xml_chars node.tags
 
           node.tags.delete("created_by")
@@ -728,6 +733,7 @@ class AmfController < ApplicationController
       return -1, "You must accept the contributor terms before you can edit." if REQUIRE_TERMS_AGREED && user.terms_agreed.nil?
 
       return -1, "One of the tags is invalid. Linux users may need to upgrade to Flash Player 10.1." unless tags_ok(tags)
+
       tags = strip_non_xml_chars tags
 
       id = id.to_i
@@ -735,7 +741,7 @@ class AmfController < ApplicationController
       node = nil
       new_node = nil
       Node.transaction do
-        if id > 0
+        if id.positive?
           begin
             node = Node.find(id)
           rescue ActiveRecord::RecordNotFound
@@ -883,12 +889,10 @@ class AmfController < ApplicationController
   # in the +tags+ hash.
   def strip_non_xml_chars(tags)
     new_tags = {}
-    unless tags.nil?
-      tags.each do |k, v|
-        new_k = k.delete "\000-\037\ufffe\uffff", "^\011\012\015"
-        new_v = v.delete "\000-\037\ufffe\uffff", "^\011\012\015"
-        new_tags[new_k] = new_v
-      end
+    tags&.each do |k, v|
+      new_k = k.delete "\000-\037\ufffe\uffff", "^\011\012\015"
+      new_v = v.delete "\000-\037\ufffe\uffff", "^\011\012\015"
+      new_tags[new_k] = new_v
     end
     new_tags
   end
index db4ae9ad392f20f91a60d6c251f8244633cc7d34..f35493b26bd6da15b038f56b1cffe42d417fe337 100644 (file)
@@ -283,8 +283,7 @@ class ApplicationController < ActionController::Base
     # TODO: some sort of escaping of problem characters in the message
     response.headers["Error"] = message
 
-    if request.headers["X-Error-Format"] &&
-       request.headers["X-Error-Format"].casecmp("xml").zero?
+    if request.headers["X-Error-Format"]&.casecmp("xml")&.zero?
       result = OSM::API.new.get_xml_doc
       result.root.name = "osmError"
       result.root << (XML::Node.new("status") << "#{Rack::Utils.status_code(status)} #{Rack::Utils::HTTP_STATUS_CODES[status]}")
@@ -310,7 +309,7 @@ class ApplicationController < ActionController::Base
   helper_method :preferred_languages
 
   def set_locale(reset = false)
-    if current_user && current_user.languages.empty? && !http_accept_language.user_preferred_languages.empty?
+    if current_user&.languages&.empty? && !http_accept_language.user_preferred_languages.empty?
       current_user.languages = http_accept_language.user_preferred_languages
       current_user.save
     end
@@ -435,7 +434,7 @@ class ApplicationController < ActionController::Base
   def preferred_editor
     editor = if params[:editor]
                params[:editor]
-             elsif current_user && current_user.preferred_editor
+             elsif current_user&.preferred_editor
                current_user.preferred_editor
              else
                DEFAULT_EDITOR
index b4cb4594fb43e7dcffa9694e7b8919961e4cdfdf..89b9c6ca3078aa4f8552918ae5714993dc8cbe23 100644 (file)
@@ -58,7 +58,7 @@ class BrowseController < ApplicationController
   def changeset
     @type = "changeset"
     @changeset = Changeset.find(params[:id])
-    @comments = if current_user && current_user.moderator?
+    @comments = if current_user&.moderator?
                   @changeset.comments.unscope(:where => :visible).includes(:author)
                 else
                   @changeset.comments.includes(:author)
@@ -77,7 +77,7 @@ class BrowseController < ApplicationController
   def note
     @type = "note"
 
-    if current_user && current_user.moderator?
+    if current_user&.moderator?
       @note = Note.find(params[:id])
       @note_comments = @note.comments.unscope(:where => :visible)
     else
index 56fab0fc49cb60df161badc50c4384c8e1ce0d2b..c03ed9056a0759277b1fda313132655299cb83f9 100644 (file)
@@ -4,19 +4,19 @@ class ChangesetController < ApplicationController
   layout "site"
   require "xml/libxml"
 
-  skip_before_action :verify_authenticity_token, :except => [:list]
-  before_action :authorize_web, :only => [:list, :feed, :comments_feed]
-  before_action :set_locale, :only => [:list, :feed, :comments_feed]
+  skip_before_action :verify_authenticity_token, :except => [:index]
+  before_action :authorize_web, :only => [:index, :feed, :comments_feed]
+  before_action :set_locale, :only => [:index, :feed, :comments_feed]
   before_action :authorize, :only => [:create, :update, :upload, :close, :comment, :subscribe, :unsubscribe, :hide_comment, :unhide_comment]
   before_action :require_moderator, :only => [:hide_comment, :unhide_comment]
   before_action :require_allow_write_api, :only => [:create, :update, :upload, :close, :comment, :subscribe, :unsubscribe, :hide_comment, :unhide_comment]
   before_action :require_public_data, :only => [:create, :update, :upload, :close, :comment, :subscribe, :unsubscribe]
   before_action :check_api_writable, :only => [:create, :update, :upload, :comment, :subscribe, :unsubscribe, :hide_comment, :unhide_comment]
-  before_action :check_api_readable, :except => [:create, :update, :upload, :download, :query, :list, :feed, :comment, :subscribe, :unsubscribe, :comments_feed]
-  before_action(:only => [:list, :feed, :comments_feed]) { |c| c.check_database_readable(true) }
-  around_action :api_call_handle_error, :except => [:list, :feed, :comments_feed]
-  around_action :api_call_timeout, :except => [:list, :feed, :comments_feed, :upload]
-  around_action :web_timeout, :only => [:list, :feed, :comments_feed]
+  before_action :check_api_readable, :except => [:create, :update, :upload, :download, :query, :index, :feed, :comment, :subscribe, :unsubscribe, :comments_feed]
+  before_action(:only => [:index, :feed, :comments_feed]) { |c| c.check_database_readable(true) }
+  around_action :api_call_handle_error, :except => [:index, :feed, :comments_feed]
+  around_action :api_call_timeout, :except => [:index, :feed, :comments_feed, :upload]
+  around_action :web_timeout, :only => [:index, :feed, :comments_feed]
 
   # Helper methods for checking consistency
   include ConsistencyValidations
@@ -255,7 +255,7 @@ class ChangesetController < ApplicationController
 
   ##
   # list non-empty changesets in reverse chronological order
-  def list
+  def index
     @params = params.permit(:display_name, :bbox, :friends, :nearby, :max_id, :list)
 
     if request.format == :atom && @params[:max_id]
@@ -300,14 +300,14 @@ class ChangesetController < ApplicationController
 
       @edits = changesets.order("changesets.id DESC").limit(20).preload(:user, :changeset_tags, :comments)
 
-      render :action => :list, :layout => false
+      render :action => :index, :layout => false
     end
   end
 
   ##
   # list edits as an atom feed
   def feed
-    list
+    index
   end
 
   ##
@@ -481,6 +481,7 @@ class ChangesetController < ApplicationController
       u = if name.nil?
             # user input checking, we don't have any UIDs < 1
             raise OSM::APIBadUserInput, "invalid user ID" if user.to_i < 1
+
             u = User.find(user.to_i)
           else
             u = User.find_by(:display_name => name)
@@ -581,7 +582,7 @@ class ChangesetController < ApplicationController
   # Get the maximum number of comments to return
   def comments_limit
     if params[:limit]
-      if params[:limit].to_i > 0 && params[:limit].to_i <= 10000
+      if params[:limit].to_i.positive? && params[:limit].to_i <= 10000
         params[:limit].to_i
       else
         raise OSM::APIBadUserInput, "Comments limit must be between 1 and 10000"
index f2c11fc741453c2ee3b643ea266eae5682281583..723fff17ec0e885c129087e003c343bfcf748bcd 100644 (file)
@@ -4,11 +4,11 @@ class DiaryEntryController < ApplicationController
   before_action :authorize_web
   before_action :set_locale
   before_action :require_user, :only => [:new, :edit, :comment, :hide, :hidecomment, :subscribe, :unsubscribe]
-  before_action :lookup_user, :only => [:view, :comments]
+  before_action :lookup_user, :only => [:show, :comments]
   before_action :check_database_readable
   before_action :check_database_writable, :only => [:new, :edit, :comment, :hide, :hidecomment, :subscribe, :unsubscribe]
   before_action :require_administrator, :only => [:hide, :hidecomment]
-  before_action :allow_thirdparty_images, :only => [:new, :edit, :list, :view, :comments]
+  before_action :allow_thirdparty_images, :only => [:new, :edit, :index, :show, :comments]
 
   def new
     @title = t "diary_entry.new.title"
@@ -29,7 +29,7 @@ class DiaryEntryController < ApplicationController
         # Subscribe user to diary comments
         @diary_entry.subscriptions.create(:user => current_user)
 
-        redirect_to :action => "list", :display_name => current_user.display_name
+        redirect_to :action => "index", :display_name => current_user.display_name
       else
         render :action => "edit"
       end
@@ -47,9 +47,9 @@ class DiaryEntryController < ApplicationController
     @diary_entry = DiaryEntry.find(params[:id])
 
     if current_user != @diary_entry.user
-      redirect_to :action => "view", :id => params[:id]
+      redirect_to diary_entry_path(@diary_entry.user, @diary_entry)
     elsif params[:diary_entry] && @diary_entry.update(entry_params)
-      redirect_to :action => "view", :id => params[:id]
+      redirect_to diary_entry_path(@diary_entry.user, @diary_entry)
     end
 
     set_map_location
@@ -71,9 +71,9 @@ class DiaryEntryController < ApplicationController
       # Add the commenter to the subscribers if necessary
       @entry.subscriptions.create(:user => current_user) unless @entry.subscribers.exists?(current_user.id)
 
-      redirect_to :action => "view", :display_name => @entry.user.display_name, :id => @entry.id
+      redirect_to diary_entry_path(@entry.user, @entry)
     else
-      render :action => "view"
+      render :action => "show"
     end
   rescue ActiveRecord::RecordNotFound
     render :action => "no_such_entry", :status => :not_found
@@ -84,7 +84,7 @@ class DiaryEntryController < ApplicationController
 
     diary_entry.subscriptions.create(:user => current_user) unless diary_entry.subscribers.exists?(current_user.id)
 
-    redirect_to :action => "view", :display_name => diary_entry.user.display_name, :id => diary_entry.id
+    redirect_to diary_entry_path(diary_entry.user, diary_entry)
   rescue ActiveRecord::RecordNotFound
     render :action => "no_such_entry", :status => :not_found
   end
@@ -94,17 +94,17 @@ class DiaryEntryController < ApplicationController
 
     diary_entry.subscriptions.where(:user => current_user).delete_all if diary_entry.subscribers.exists?(current_user.id)
 
-    redirect_to :action => "view", :display_name => diary_entry.user.display_name, :id => diary_entry.id
+    redirect_to diary_entry_path(diary_entry.user, diary_entry)
   rescue ActiveRecord::RecordNotFound
     render :action => "no_such_entry", :status => :not_found
   end
 
-  def list
+  def index
     if params[:display_name]
       @user = User.active.find_by(:display_name => params[:display_name])
 
       if @user
-        @title = t "diary_entry.list.user_title", :user => @user.display_name
+        @title = t "diary_entry.index.user_title", :user => @user.display_name
         @entries = @user.diary_entries
       else
         render_unknown_user params[:display_name]
@@ -112,7 +112,7 @@ class DiaryEntryController < ApplicationController
       end
     elsif params[:friends]
       if current_user
-        @title = t "diary_entry.list.title_friends"
+        @title = t "diary_entry.index.title_friends"
         @entries = DiaryEntry.where(:user_id => current_user.friend_users)
       else
         require_user
@@ -120,7 +120,7 @@ class DiaryEntryController < ApplicationController
       end
     elsif params[:nearby]
       if current_user
-        @title = t "diary_entry.list.title_nearby"
+        @title = t "diary_entry.index.title_nearby"
         @entries = DiaryEntry.where(:user_id => current_user.nearby)
       else
         require_user
@@ -130,10 +130,10 @@ class DiaryEntryController < ApplicationController
       @entries = DiaryEntry.joins(:user).where(:users => { :status => %w[active confirmed] })
 
       if params[:language]
-        @title = t "diary_entry.list.in_language_title", :language => Language.find(params[:language]).english_name
+        @title = t "diary_entry.index.in_language_title", :language => Language.find(params[:language]).english_name
         @entries = @entries.where(:language_code => params[:language])
       else
-        @title = t "diary_entry.list.title"
+        @title = t "diary_entry.index.title"
       end
     end
 
@@ -157,7 +157,7 @@ class DiaryEntryController < ApplicationController
         @entries = user.diary_entries
         @title = t("diary_entry.feed.user.title", :user => user.display_name)
         @description = t("diary_entry.feed.user.description", :user => user.display_name)
-        @link = url_for :controller => "diary_entry", :action => "list", :display_name => user.display_name, :host => SERVER_URL, :protocol => SERVER_PROTOCOL
+        @link = url_for :controller => "diary_entry", :action => "index", :display_name => user.display_name, :host => SERVER_URL, :protocol => SERVER_PROTOCOL
       else
         head :not_found
         return
@@ -169,21 +169,21 @@ class DiaryEntryController < ApplicationController
         @entries = @entries.where(:language_code => params[:language])
         @title = t("diary_entry.feed.language.title", :language_name => Language.find(params[:language]).english_name)
         @description = t("diary_entry.feed.language.description", :language_name => Language.find(params[:language]).english_name)
-        @link = url_for :controller => "diary_entry", :action => "list", :language => params[:language], :host => SERVER_URL, :protocol => SERVER_PROTOCOL
+        @link = url_for :controller => "diary_entry", :action => "index", :language => params[:language], :host => SERVER_URL, :protocol => SERVER_PROTOCOL
       else
         @title = t("diary_entry.feed.all.title")
         @description = t("diary_entry.feed.all.description")
-        @link = url_for :controller => "diary_entry", :action => "list", :host => SERVER_URL, :protocol => SERVER_PROTOCOL
+        @link = url_for :controller => "diary_entry", :action => "index", :host => SERVER_URL, :protocol => SERVER_PROTOCOL
       end
     end
 
     @entries = @entries.visible.includes(:user).order("created_at DESC").limit(20)
   end
 
-  def view
+  def show
     @entry = @user.diary_entries.visible.where(:id => params[:id]).first
     if @entry
-      @title = t "diary_entry.view.title", :user => params[:display_name], :title => @entry.title
+      @title = t "diary_entry.show.title", :user => params[:display_name], :title => @entry.title
     else
       @title = t "diary_entry.no_such_entry.title", :id => params[:id]
       render :action => "no_such_entry", :status => :not_found
@@ -193,13 +193,13 @@ class DiaryEntryController < ApplicationController
   def hide
     entry = DiaryEntry.find(params[:id])
     entry.update(:visible => false)
-    redirect_to :action => "list", :display_name => entry.user.display_name
+    redirect_to :action => "index", :display_name => entry.user.display_name
   end
 
   def hidecomment
     comment = DiaryComment.find(params[:comment])
     comment.update(:visible => false)
-    redirect_to :action => "view", :display_name => comment.diary_entry.user.display_name, :id => comment.diary_entry.id
+    redirect_to diary_entry_path(comment.diary_entry.user, comment.diary_entry)
   end
 
   def comments
@@ -235,7 +235,7 @@ class DiaryEntryController < ApplicationController
   def require_administrator
     unless current_user.administrator?
       flash[:error] = t("user.filter.not_an_administrator")
-      redirect_to :action => "view"
+      redirect_to :action => "show"
     end
   end
 
index d4e9a3bdfa4bec2c7e745b200c67e52a307ff086..ad38454f0650ba62ebd2dae40c1ab383c462c12a 100644 (file)
@@ -18,7 +18,7 @@ class IssuesController < ApplicationController
     @issues = Issue.visible_to(current_user)
 
     # If search
-    if params[:search_by_user] && params[:search_by_user].present?
+    if params[:search_by_user]&.present?
       @find_user = User.find_by(:display_name => params[:search_by_user])
       if @find_user
         @issues = @issues.where(:reported_user_id => @find_user.id)
@@ -28,11 +28,11 @@ class IssuesController < ApplicationController
       end
     end
 
-    @issues = @issues.where(:status => params[:status]) if params[:status] && params[:status].present?
+    @issues = @issues.where(:status => params[:status]) if params[:status]&.present?
 
-    @issues = @issues.where(:reportable_type => params[:issue_type]) if params[:issue_type] && params[:issue_type].present?
+    @issues = @issues.where(:reportable_type => params[:issue_type]) if params[:issue_type]&.present?
 
-    if params[:last_updated_by] && params[:last_updated_by].present?
+    if params[:last_updated_by]&.present?
       last_updated_by = params[:last_updated_by].to_s == "nil" ? nil : params[:last_updated_by].to_i
       @issues = @issues.where(:updated_by => last_updated_by)
     end
index 20baf6bb4d0285575e8faa14d92ce08fc23e4bd8..84b814a34529fae1cd3c5be327b418e5c47a04b3 100644 (file)
@@ -54,6 +54,7 @@ class NodeController < ApplicationController
     new_node = Node.from_xml(request.raw_post)
 
     raise OSM::APIBadUserInput, "The id in the url (#{node.id}) is not the same as provided in the xml (#{new_node.id})" unless new_node && new_node.id == node.id
+
     node.delete_with_history!(new_node, current_user)
     render :plain => node.version.to_s
   end
@@ -65,6 +66,7 @@ class NodeController < ApplicationController
     ids = params["nodes"].split(",").collect(&:to_i)
 
     raise OSM::APIBadUserInput, "No nodes were given to search for" if ids.empty?
+
     doc = OSM::API.new.get_xml_doc
 
     Node.find(ids).each do |node|
index 94d0fdb55343cd4f708da802ead7921f63e0969a..19ff725dc992aa924605fc841a8a215bc34f5bff 100644 (file)
@@ -211,7 +211,7 @@ class NotesController < ApplicationController
     # Find the note and check it is valid
     @note = Note.find(params[:id])
     raise OSM::APINotFoundError unless @note
-    raise OSM::APIAlreadyDeletedError.new("note", @note.id) unless @note.visible? || (current_user && current_user.moderator?)
+    raise OSM::APIAlreadyDeletedError.new("note", @note.id) unless @note.visible? || current_user&.moderator?
 
     # Render the result
     respond_to do |format|
@@ -286,7 +286,7 @@ class NotesController < ApplicationController
         @page = (params[:page] || 1).to_i
         @page_size = 10
         @notes = @user.notes
-        @notes = @notes.visible unless current_user && current_user.moderator?
+        @notes = @notes.visible unless current_user&.moderator?
         @notes = @notes.order("updated_at DESC, id").distinct.offset((@page - 1) * @page_size).limit(@page_size).preload(:comments => :author).to_a
       else
         @title = t "user.no_such_user.title"
@@ -307,7 +307,7 @@ class NotesController < ApplicationController
   # Get the maximum number of results to return
   def result_limit
     if params[:limit]
-      if params[:limit].to_i > 0 && params[:limit].to_i <= 10000
+      if params[:limit].to_i.positive? && params[:limit].to_i <= 10000
         params[:limit].to_i
       else
         raise OSM::APIBadUserInput, "Note limit must be between 1 and 10000"
@@ -327,9 +327,9 @@ class NotesController < ApplicationController
                      7
                    end
 
-    if closed_since < 0
+    if closed_since.negative?
       notes.where.not(:status => "hidden")
-    elsif closed_since > 0
+    elsif closed_since.positive?
       notes.where(:status => "open")
            .or(notes.where(:status => "closed")
                     .where(notes.arel_table[:closed_at].gt(Time.now - closed_since.days)))
index 9adf141d959f4a319ec39c64a97826a573faf49b..4f01b1e2a1da41b5bd4d44fb1d5ba8c623ef1f4d 100644 (file)
@@ -70,6 +70,6 @@ class OldController < ApplicationController
   private
 
   def show_redactions?
-    current_user && current_user.moderator? && params[:show_redactions] == "true"
+    current_user&.moderator? && params[:show_redactions] == "true"
   end
 end
index c77d884b391d3a237e69b5d2b0d2d0832ed8b898..b78ae295916dce42ef7ca294dec170977e14cdad 100644 (file)
@@ -92,8 +92,8 @@ class TracesController < ApplicationController
   def show
     @trace = Trace.find(params[:id])
 
-    if @trace && @trace.visible? &&
-       (@trace.public? || @trace.user == current_user)
+    if @trace&.visible? &&
+       (@trace&.public? || @trace&.user == current_user)
       @title = t ".title", :name => @trace.name
     else
       flash[:error] = t ".trace_not_found"
@@ -318,7 +318,7 @@ class TracesController < ApplicationController
     visibility = params[:visibility]
 
     if visibility.nil?
-      visibility = if params[:public] && params[:public].to_i.nonzero?
+      visibility = if params[:public]&.to_i&.nonzero?
                      "public"
                    else
                      "private"
index 7e22c63b4a56d75e33bacc376699d2aec248b721..78299dccf2abe5342c4f82f7bc76acf1aca52f66 100644 (file)
@@ -14,11 +14,11 @@ class UserController < ApplicationController
   before_action :require_allow_read_prefs, :only => [:api_details]
   before_action :require_allow_read_gpx, :only => [:api_gpx_files]
   before_action :require_cookies, :only => [:new, :login, :confirm]
-  before_action :require_administrator, :only => [:set_status, :delete, :list]
+  before_action :require_administrator, :only => [:set_status, :delete, :index]
   around_action :api_call_handle_error, :only => [:api_read, :api_users, :api_details, :api_gpx_files]
   before_action :lookup_user_by_id, :only => [:api_read]
   before_action :lookup_user_by_name, :only => [:set_status, :delete]
-  before_action :allow_thirdparty_images, :only => [:view, :account]
+  before_action :allow_thirdparty_images, :only => [:show, :account]
 
   def terms
     @legale = params[:legale] || OSM.ip_to_country(request.remote_ip) || DEFAULT_LEGALE
@@ -29,7 +29,7 @@ class UserController < ApplicationController
     else
       @title = t "user.terms.title"
 
-      if current_user && current_user.terms_agreed?
+      if current_user&.terms_agreed?
         # Already agreed to terms, so just show settings
         redirect_to :action => :account, :display_name => current_user.display_name
       elsif current_user.nil? && session[:new_user].nil?
@@ -276,7 +276,7 @@ class UserController < ApplicationController
     if params[:session] == session.id
       if session[:token]
         token = UserToken.find_by(:token => session[:token])
-        token.destroy if token
+        token&.destroy
         session.delete(:token)
       end
       session.delete(:user)
@@ -292,7 +292,7 @@ class UserController < ApplicationController
   def confirm
     if request.post?
       token = UserToken.find_by(:token => params[:confirm_string])
-      if token && token.user.active?
+      if token&.user&.active?
         flash[:error] = t("user.confirm.already active")
         redirect_to :action => "login"
       elsif !token || token.expired?
@@ -349,7 +349,7 @@ class UserController < ApplicationController
   def confirm_email
     if request.post?
       token = UserToken.find_by(:token => params[:confirm_string])
-      if token && token.user.new_email?
+      if token&.user&.new_email?
         self.current_user = token.user
         current_user.email = current_user.new_email
         current_user.new_email = nil
@@ -409,11 +409,11 @@ class UserController < ApplicationController
     render :xml => doc.to_s
   end
 
-  def view
+  def show
     @user = User.find_by(:display_name => params[:display_name])
 
     if @user &&
-       (@user.visible? || (current_user && current_user.administrator?))
+       (@user.visible? || (current_user&.administrator?))
       @title = @user.display_name
     else
       render_unknown_user params[:display_name]
@@ -440,7 +440,7 @@ class UserController < ApplicationController
         if params[:referer]
           redirect_to params[:referer]
         else
-          redirect_to :action => "view"
+          redirect_to :action => "show"
         end
       end
     else
@@ -463,7 +463,7 @@ class UserController < ApplicationController
         if params[:referer]
           redirect_to params[:referer]
         else
-          redirect_to :action => "view"
+          redirect_to :action => "show"
         end
       end
     else
@@ -476,19 +476,19 @@ class UserController < ApplicationController
   def set_status
     @user.status = params[:status]
     @user.save
-    redirect_to :action => "view", :display_name => params[:display_name]
+    redirect_to user_path(:display_name => params[:display_name])
   end
 
   ##
   # delete a user, marking them as deleted and removing personal data
   def delete
     @user.delete
-    redirect_to :action => "view", :display_name => params[:display_name]
+    redirect_to user_path(:display_name => params[:display_name])
   end
 
   ##
   # display a list of users matching specified criteria
-  def list
+  def index
     if request.post?
       ids = params[:user].keys.collect(&:to_i)
 
@@ -552,7 +552,7 @@ class UserController < ApplicationController
       if user.nil? && provider == "google"
         openid_url = auth_info[:extra][:id_info]["openid_id"]
         user = User.find_by(:auth_provider => "openid", :auth_uid => openid_url) if openid_url
-        user.update(:auth_provider => provider, :auth_uid => uid) if user
+        user&.update(:auth_provider => provider, :auth_uid => uid)
       end
 
       if user
@@ -757,7 +757,7 @@ class UserController < ApplicationController
       flash[:error] = t("user.filter.not_an_administrator")
 
       if params[:display_name]
-        redirect_to :action => "view", :display_name => params[:display_name]
+        redirect_to user_path(:display_name => params[:display_name])
       else
         redirect_to :action => "login", :referer => request.fullpath
       end
@@ -826,6 +826,7 @@ class UserController < ApplicationController
   def gravatar_enable(user)
     # code from example https://en.gravatar.com/site/implement/images/ruby/
     return false if user.image.present?
+
     hash = Digest::MD5.hexdigest(user.email.downcase)
     url = "https://www.gravatar.com/avatar/#{hash}?d=404" # without d=404 we will always get an image back
     response = OSM.http_client.get(URI.parse(url))
index 661369454fb065b024985df35b347d0fb09c2f55..fef6eaa5e77c989c177eb0c15aed84687c844fbf 100644 (file)
@@ -26,7 +26,7 @@ module BannerHelper
 
       # rotate all banner queue positions
       index = cval.to_i
-      cookies[ckey] = index - 1 if index > 0
+      cookies[ckey] = index - 1 if index.positive?
 
       # pick banner with mininum queue position
       next if index > min_index
index 7eb389023ba54a9cfc373dda4ee6f7a39ea51215..bc19bc8571ce6fe9ab9f22034f7c2b341a0639a6 100644 (file)
@@ -3,7 +3,7 @@ module ChangesetHelper
     if changeset.user.status == "deleted"
       t("user.no_such_user.deleted")
     elsif changeset.user.data_public?
-      link_to(changeset.user.display_name, user_path(changeset.user.display_name))
+      link_to(changeset.user.display_name, user_path(changeset.user))
     else
       t("browse.anonymous")
     end
@@ -32,15 +32,15 @@ module ChangesetHelper
     end
   end
 
-  def changeset_list_title(params, user)
+  def changeset_index_title(params, user)
     if params[:friends] && user
-      t "changeset.list.title_friend"
+      t "changeset.index.title_friend"
     elsif params[:nearby] && user
-      t "changeset.list.title_nearby"
+      t "changeset.index.title_nearby"
     elsif params[:display_name]
-      t "changeset.list.title_user", :user => params[:display_name]
+      t "changeset.index.title_user", :user => params[:display_name]
     else
-      t "changeset.list.title"
+      t "changeset.index.title"
     end
   end
 end
index f9a84ba7dd979bdc71fca2955f4eeafa6eb1f28d..43ca98c9134c5e13d1547570da74867c2dc42d45 100644 (file)
@@ -2,11 +2,11 @@ module IssuesHelper
   def reportable_url(reportable)
     case reportable
     when DiaryEntry
-      url_for(:controller => reportable.class.name.underscore, :action => :view, :display_name => reportable.user.display_name, :id => reportable.id)
+      diary_entry_url(reportable.user, reportable)
     when User
-      url_for(:controller => reportable.class.name.underscore, :action => :view, :display_name => reportable.display_name)
+      user_url(reportable)
     when DiaryComment
-      url_for(:controller => reportable.diary_entry.class.name.underscore, :action => :view, :display_name => reportable.diary_entry.user.display_name, :id => reportable.diary_entry.id, :anchor => "comment#{reportable.id}")
+      diary_entry_url(reportable.diary_entry.user, reportable.diary_entry, :anchor => "comment#{reportable.id}")
     when Note
       url_for(:controller => :browse, :action => :note, :id => reportable.id)
     end
@@ -29,7 +29,7 @@ module IssuesHelper
     count = Issue.visible_to(current_user).open.limit(100).size
     if count > 99
       content_tag(:span, "99+", :class => "count-number")
-    elsif count > 0
+    elsif count.positive?
       content_tag(:span, count, :class => "count-number")
     end
   end
index 6ebd18345526e186833527454e72895065c36539..efe2346c9738bc14d605c9ede55edf4ded5d04be 100644 (file)
@@ -18,7 +18,7 @@ module NoteHelper
     elsif author.status == "deleted"
       t("user.no_such_user.deleted")
     else
-      link_to h(author.display_name), link_options.merge(:controller => "user", :action => "view", :display_name => author.display_name)
+      link_to h(author.display_name), link_options.merge(:controller => "user", :action => "show", :display_name => author.display_name)
     end
   end
 end
index dbd2d245d0dbfbccafaaef5a9af7a33188076f0f..2915a0880591b1e694db4a2d9c661756b1052af2 100644 (file)
@@ -29,6 +29,6 @@ module NotifierHelper
     # Because we can't use stylesheets in HTML emails, we need to inline the
     # styles. Rather than copy-paste the same string of CSS into every message,
     # we apply it once here, after the message has been composed.
-    html.gsub /<p>/, '<p style="color: black; margin: 0.75em 0; font-family: \'Helvetica Neue\', Arial, Sans-Serif">'
+    html.gsub(/<p>/, '<p style="color: black; margin: 0.75em 0; font-family: \'Helvetica Neue\', Arial, Sans-Serif">')
   end
 end
index 805abb58f38f323889cf2ebb3b1226d2a30234c2..0b7e9c6162c2c2365a558594daf40a7ac3572b05 100644 (file)
@@ -6,24 +6,24 @@ module UserRolesHelper
   end
 
   def role_icon(user, role)
-    if current_user && current_user.administrator?
+    if current_user&.administrator?
       if user.has_role?(role)
         image = "roles/#{role}"
-        alt = t("user.view.role.revoke.#{role}")
-        title = t("user.view.role.revoke.#{role}")
+        alt = t("user.show.role.revoke.#{role}")
+        title = t("user.show.role.revoke.#{role}")
         url = revoke_role_path(:display_name => user.display_name, :role => role)
         confirm = t("user_role.revoke.are_you_sure", :name => user.display_name, :role => role)
       else
         image = "roles/blank_#{role}"
-        alt = t("user.view.role.grant.#{role}")
-        title = t("user.view.role.grant.#{role}")
+        alt = t("user.show.role.grant.#{role}")
+        title = t("user.show.role.grant.#{role}")
         url = grant_role_path(:display_name => user.display_name, :role => role)
         confirm = t("user_role.grant.are_you_sure", :name => user.display_name, :role => role)
       end
     elsif user.has_role?(role)
       image = "roles/#{role}"
-      alt = t("user.view.role.#{role}")
-      title = t("user.view.role.#{role}")
+      alt = t("user.show.role.#{role}")
+      title = t("user.show.role.#{role}")
     end
 
     if image
index 1aa1e1fd300d36eedf230b0304e18ab662fbe50e..5cdfeb994544444f08edb72cc4f8ba42fead569d 100644 (file)
@@ -106,6 +106,7 @@ class Changeset < ActiveRecord::Base
     pt.find("tag").each do |tag|
       raise OSM::APIBadXMLError.new("changeset", pt, "tag is missing key") if tag["k"].nil?
       raise OSM::APIBadXMLError.new("changeset", pt, "tag is missing value") if tag["v"].nil?
+
       cs.add_tag_keyval(tag["k"], tag["v"])
     end
 
@@ -207,7 +208,7 @@ class Changeset < ActiveRecord::Base
 
     user_display_name_cache = {} if user_display_name_cache.nil?
 
-    if user_display_name_cache && user_display_name_cache.key?(user_id)
+    if user_display_name_cache&.key?(user_id)
       # use the cache if available
     elsif user.data_public?
       user_display_name_cache[user_id] = user.display_name
index ef1a0110ec8bbeac3ed28303e13b49ce7e2b365f..d11942beb6434e7c393db40ad3cfd5f3c3c4849b 100644 (file)
@@ -51,12 +51,13 @@ class ClientApplication < ActiveRecord::Base
 
   def self.find_token(token_key)
     token = OauthToken.includes(:client_application).find_by(:token => token_key)
-    token if token && token.authorized?
+    token if token&.authorized?
   end
 
   def self.verify_request(request, options = {}, &block)
     signature = OAuth::Signature.build(request, options, &block)
     return false unless OauthNonce.remember(signature.request.nonce, signature.request.timestamp)
+
     value = signature.verify
     value
   rescue OAuth::Signature::UnknownSignatureMethod
index c09fcbd6778cbce6083c14cdd15653b3da957237..989cdee5cd20cc4a5b86d910cfedd9d54eda79ca 100644 (file)
@@ -88,19 +88,23 @@ class Node < ActiveRecord::Base
 
     raise OSM::APIBadXMLError.new("node", pt, "lat missing") if pt["lat"].nil?
     raise OSM::APIBadXMLError.new("node", pt, "lon missing") if pt["lon"].nil?
+
     node.lat = OSM.parse_float(pt["lat"], OSM::APIBadXMLError, "node", pt, "lat not a number")
     node.lon = OSM.parse_float(pt["lon"], OSM::APIBadXMLError, "node", pt, "lon not a number")
     raise OSM::APIBadXMLError.new("node", pt, "Changeset id is missing") if pt["changeset"].nil?
+
     node.changeset_id = pt["changeset"].to_i
 
     raise OSM::APIBadUserInput, "The node is outside this world" unless node.in_world?
 
     # version must be present unless creating
     raise OSM::APIBadXMLError.new("node", pt, "Version is required when updating") unless create || !pt["version"].nil?
+
     node.version = create ? 0 : pt["version"].to_i
 
     unless create
       raise OSM::APIBadXMLError.new("node", pt, "ID is required when updating.") if pt["id"].nil?
+
       node.id = pt["id"].to_i
       # .to_i will return 0 if there is no number that can be parsed.
       # We want to make sure that there is no id with zero anyway
@@ -119,6 +123,7 @@ class Node < ActiveRecord::Base
     pt.find("tag").each do |tag|
       raise OSM::APIBadXMLError.new("node", pt, "tag is missing key") if tag["k"].nil?
       raise OSM::APIBadXMLError.new("node", pt, "tag is missing value") if tag["v"].nil?
+
       node.add_tag_key_val(tag["k"], tag["v"])
     end
 
index 11658cfd9b55a4bbaa11833180fdf84e225d0328..01b8076070fe21bbacb3e1bf25eee885f2ad0353 100644 (file)
@@ -87,16 +87,8 @@ class Notifier < ActionMailer::Base
       @from_user = comment.user.display_name
       @text = comment.body
       @title = comment.diary_entry.title
-      @readurl = url_for(:controller => "diary_entry",
-                         :action => "view",
-                         :display_name => comment.diary_entry.user.display_name,
-                         :id => comment.diary_entry.id,
-                         :anchor => "comment#{comment.id}")
-      @commenturl = url_for(:controller => "diary_entry",
-                            :action => "view",
-                            :display_name => comment.diary_entry.user.display_name,
-                            :id => comment.diary_entry.id,
-                            :anchor => "newcomment")
+      @readurl = diary_entry_url(comment.diary_entry.user, comment.diary_entry, :anchor => "comment#{comment.id}")
+      @commenturl = diary_entry_url(comment.diary_entry.user, comment.diary_entry, :anchor => "newcomment")
       @replyurl = new_message_url(comment.user, :message => { :title => "Re: #{comment.diary_entry.title}" })
 
       @author = @from_user
@@ -112,8 +104,7 @@ class Notifier < ActionMailer::Base
   def friend_notification(friend)
     with_recipient_locale friend.befriendee do
       @friend = friend
-      @viewurl = url_for(:controller => "user", :action => "view",
-                         :display_name => @friend.befriender.display_name)
+      @viewurl = user_url(@friend.befriender)
       @friendurl = url_for(:controller => "user", :action => "make_friend",
                            :display_name => @friend.befriender.display_name)
       @author = @friend.befriender.display_name
@@ -190,8 +181,8 @@ class Notifier < ActionMailer::Base
   end
 
   def user_avatar_file_path(user)
-    image = user && user.image
-    if image && image.file?
+    image = user&.image
+    if image&.file?
       return image.path(:small)
     else
       return Rails.root.join("app", "assets", "images", "users", "images", "small.png")
index 0952f068edc6b9a9d2525206e1fd5069c8ff7516..9d2773e8f346c5b8e6789c8a314020c7a39edd41 100644 (file)
@@ -22,8 +22,10 @@ class OauthNonce < ActiveRecord::Base
   # Remembers a nonce and it's associated timestamp. It returns false if it has already been used
   def self.remember(nonce, timestamp)
     return false if Time.now.to_i - timestamp.to_i > 86400
+
     oauth_nonce = OauthNonce.create(:nonce => nonce, :timestamp => timestamp.to_i)
     return false if oauth_nonce.new_record?
+
     oauth_nonce
   end
 end
index 2495830eefaa36972f8921bf1fd8e88cac427879..202db12daa66479f379c4aeb84e49122279b1991 100644 (file)
@@ -70,12 +70,15 @@ class Relation < ActiveRecord::Base
     relation = Relation.new
 
     raise OSM::APIBadXMLError.new("relation", pt, "Version is required when updating") unless create || !pt["version"].nil?
+
     relation.version = pt["version"]
     raise OSM::APIBadXMLError.new("relation", pt, "Changeset id is missing") if pt["changeset"].nil?
+
     relation.changeset_id = pt["changeset"]
 
     unless create
       raise OSM::APIBadXMLError.new("relation", pt, "ID is required when updating") if pt["id"].nil?
+
       relation.id = pt["id"].to_i
       # .to_i will return 0 if there is no number that can be parsed.
       # We want to make sure that there is no id with zero anyway
@@ -94,6 +97,7 @@ class Relation < ActiveRecord::Base
     pt.find("tag").each do |tag|
       raise OSM::APIBadXMLError.new("relation", pt, "tag is missing key") if tag["k"].nil?
       raise OSM::APIBadXMLError.new("relation", pt, "tag is missing value") if tag["v"].nil?
+
       relation.add_tag_keyval(tag["k"], tag["v"])
     end
 
@@ -106,6 +110,7 @@ class Relation < ActiveRecord::Base
     pt.find("member").each do |member|
       # member_type =
       raise OSM::APIBadXMLError.new("relation", pt, "The #{member['type']} is not allowed only, #{TYPES.inspect} allowed") unless TYPES.include? member["type"]
+
       # member_ref = member['ref']
       # member_role
       member["role"] ||= "" # Allow  the upload to not include this, in which case we default to an empty string.
@@ -207,6 +212,7 @@ class Relation < ActiveRecord::Base
       lock!
       check_consistency(self, new_relation, user)
       raise OSM::APIPreconditionFailedError, "Cannot update relation #{id}: data or member data is invalid." unless new_relation.preconditions_ok?(members)
+
       self.changeset_id = new_relation.changeset_id
       self.changeset = new_relation.changeset
       self.tags = new_relation.tags
@@ -219,6 +225,7 @@ class Relation < ActiveRecord::Base
   def create_with_history(user)
     check_create_consistency(self, user)
     raise OSM::APIPreconditionFailedError, "Cannot create relation: data or member data is invalid." unless preconditions_ok?
+
     self.version = 0
     self.visible = true
     save_with_history!
@@ -253,7 +260,8 @@ class Relation < ActiveRecord::Base
       element = model.lock("for share").find_by(:id => m[1])
 
       # and check that it is OK to use.
-      raise OSM::APIPreconditionFailedError, "Relation with id #{id} cannot be saved due to #{m[0]} with id #{m[1]}" unless element && element.visible? && element.preconditions_ok?
+      raise OSM::APIPreconditionFailedError, "Relation with id #{id} cannot be saved due to #{m[0]} with id #{m[1]}" unless element&.visible? && element&.preconditions_ok?
+
       hash[m[1]] = true
     end
 
@@ -267,9 +275,10 @@ class Relation < ActiveRecord::Base
   def fix_placeholders!(id_map, placeholder_id = nil)
     members.map! do |type, id, role|
       old_id = id.to_i
-      if old_id < 0
+      if old_id.negative?
         new_id = id_map[type.downcase.to_sym][old_id]
         raise OSM::APIBadUserInput, "Placeholder #{type} not found for reference #{old_id} in relation #{self.id.nil? ? placeholder_id : self.id}." if new_id.nil?
+
         [type, new_id, role]
       else
         [type, id, role]
@@ -372,7 +381,7 @@ class Relation < ActiveRecord::Base
       # reasonable on the assumption that adding or removing members doesn't
       # materially change the rest of the relation.
       any_relations =
-        changed_members.collect { |_id, type| type == "relation" }
+        changed_members.collect { |type, _id, _role| type == "Relation" }
                        .inject(false) { |acc, elem| acc || elem }
 
       update_members = if tags_changed || any_relations
index 335a735bc5a4dbcab80c07d92f2791df53447509..ed0cc3ae4c89164f322f32380341f9dbcab0a7c8 100644 (file)
@@ -40,6 +40,7 @@ class RequestToken < OauthToken
 
   def authorize!(user)
     return false if authorized?
+
     self.user = user
     self.authorized_at = Time.now
     self.verifier = OAuth::Helper.generate_key(20)[0, 20] unless oauth10?
index 214b0b6470aacc20fbe1262d2b553778b55bf729..5096a81aafcb7e69e9b77d8d90b3fd9f933ec545 100644 (file)
@@ -214,10 +214,12 @@ class Trace < ActiveRecord::Base
 
   def update_from_xml_node(pt, create = false)
     raise OSM::APIBadXMLError.new("trace", pt, "visibility missing") if pt["visibility"].nil?
+
     self.visibility = pt["visibility"]
 
     unless create
       raise OSM::APIBadXMLError.new("trace", pt, "ID is required when updating.") if pt["id"].nil?
+
       id = pt["id"].to_i
       # .to_i will return 0 if there is no number that can be parsed.
       # We want to make sure that there is no id with zero anyway
@@ -232,6 +234,7 @@ class Trace < ActiveRecord::Base
 
     description = pt.find("description").first
     raise OSM::APIBadXMLError.new("trace", pt, "description missing") if description.nil?
+
     self.description = description.content
 
     self.tags = pt.find("tag").collect do |tag|
@@ -303,7 +306,7 @@ class Trace < ActiveRecord::Base
       tp.save!
     end
 
-    if gpx.actual_points > 0
+    if gpx.actual_points.positive?
       max_lat = Tracepoint.where(:gpx_id => id).maximum(:latitude)
       min_lat = Tracepoint.where(:gpx_id => id).minimum(:latitude)
       max_lon = Tracepoint.where(:gpx_id => id).maximum(:longitude)
index e5b73ceaaab009db0ef5855ec38c4f108d6dbce4..c95a1212296acc56746aea30c7959ef0a6678db5 100644 (file)
@@ -68,12 +68,15 @@ class Way < ActiveRecord::Base
     way = Way.new
 
     raise OSM::APIBadXMLError.new("way", pt, "Version is required when updating") unless create || !pt["version"].nil?
+
     way.version = pt["version"]
     raise OSM::APIBadXMLError.new("way", pt, "Changeset id is missing") if pt["changeset"].nil?
+
     way.changeset_id = pt["changeset"]
 
     unless create
       raise OSM::APIBadXMLError.new("way", pt, "ID is required when updating") if pt["id"].nil?
+
       way.id = pt["id"].to_i
       # .to_i will return 0 if there is no number that can be parsed.
       # We want to make sure that there is no id with zero anyway
@@ -92,6 +95,7 @@ class Way < ActiveRecord::Base
     pt.find("tag").each do |tag|
       raise OSM::APIBadXMLError.new("way", pt, "tag is missing key") if tag["k"].nil?
       raise OSM::APIBadXMLError.new("way", pt, "tag is missing value") if tag["v"].nil?
+
       way.add_tag_keyval(tag["k"], tag["v"])
     end
 
@@ -123,7 +127,7 @@ class Way < ActiveRecord::Base
         ordered_nodes[nd.sequence_id] = nd.node_id.to_s if visible_nodes[nd.node_id]
       else
         # otherwise, manually go to the db to check things
-        ordered_nodes[nd.sequence_id] = nd.node_id.to_s if nd.node && nd.node.visible?
+        ordered_nodes[nd.sequence_id] = nd.node_id.to_s if nd.node&.visible?
       end
     end
 
@@ -194,6 +198,7 @@ class Way < ActiveRecord::Base
   def create_with_history(user)
     check_create_consistency(self, user)
     raise OSM::APIPreconditionFailedError, "Cannot create way: data is invalid." unless preconditions_ok?
+
     self.version = 0
     self.visible = true
     save_with_history!
@@ -249,9 +254,10 @@ class Way < ActiveRecord::Base
   # to IDs +id_map+.
   def fix_placeholders!(id_map, placeholder_id = nil)
     nds.map! do |node_id|
-      if node_id < 0
+      if node_id.negative?
         new_id = id_map[:node][node_id]
         raise OSM::APIBadUserInput, "Placeholder node not found for reference #{node_id} in way #{id.nil? ? placeholder_id : id}" if new_id.nil?
+
         new_id
       else
         node_id
index 85b9515dfedab9442490590023bdbbf0c67977e1..545b6d072afea5f4e7ea5001c08c310a899d50eb 100644 (file)
     <% end %>
     <%=
         user = (@prev_by_user || @next_by_user).user.display_name
-        link_to content_tag(:bdi, user), :controller => "changeset", :action => "list", :display_name => user
+        link_to content_tag(:bdi, user), :controller => "changeset", :action => "index", :display_name => user
     %>
     <% if @next_by_user %>
       &middot;
index f27b0bc911be60723a8788d7efc304c4f2d32bab..03ba013a32df307f31ac7b4cb4bab182661f5168 100644 (file)
@@ -14,7 +14,7 @@
 
 <%= content_tag "li", :id => "changeset_#{changeset.id}", :data => {:changeset => changeset_data} do %>
   <h4>
-    <a class="changeset_id" href="<%= changeset_path(changeset.id) %>">
+    <a class="changeset_id" href="<%= changeset_path(changeset) %>">
       <%= changeset.tags['comment'].to_s.presence || t('browse.no_comment') %>
     </a>
   </h4>
index 17faf7f8d8e80956d8ba655b2cdf7b367460801b..ba745cb032489d833ddcf36b997fb6b3c0a49b0f 100644 (file)
@@ -5,9 +5,9 @@
 <% end -%>
 
 <%
-   set_title(changeset_list_title(params, current_user))
+   set_title(changeset_index_title(params, current_user))
    if params[:display_name]
-     @heading = t('changeset.list.title_user', :user => link_to(params[:display_name], :controller => "user", :action => "view", :display_name => params[:display_name])).html_safe
+     @heading = t('changeset.index.title_user', :user => link_to(params[:display_name], user_path(:display_name => params[:display_name]))).html_safe
    else
      @heading = @title
    end
similarity index 81%
rename from app/views/changeset/list.atom.builder
rename to app/views/changeset/index.atom.builder
index 86dd966ccc8aba18fcb3b35ed3a7d5ae14e432db..57befe117b5e39e9f726221f453eae66db277eaf 100644 (file)
@@ -1,8 +1,8 @@
 atom_feed(:language => I18n.locale, :schema_date => 2009,
           :id => url_for(@params.merge(:only_path => false)),
-          :root_url => url_for(@params.merge(:action => :list, :format => nil, :only_path => false)),
+          :root_url => url_for(@params.merge(:action => :index, :format => nil, :only_path => false)),
           "xmlns:georss" => "http://www.georss.org/georss") do |feed|
-  feed.title changeset_list_title(params, current_user)
+  feed.title changeset_index_title(params, current_user)
 
   feed.updated @edits.map { |e| [e.created_at, e.closed_at].max }.max
   feed.icon image_url("favicon.ico")
@@ -32,7 +32,7 @@ atom_feed(:language => I18n.locale, :schema_date => 2009,
       if changeset.user.data_public?
         entry.author do |author|
           author.name changeset.user.display_name
-          author.uri url_for(:controller => "user", :action => "view", :display_name => changeset.user.display_name, :only_path => false)
+          author.uri user_url(changeset.user, :only_path => false)
         end
       end
 
@@ -51,7 +51,7 @@ atom_feed(:language => I18n.locale, :schema_date => 2009,
             table.tr do |tr|
               tr.th t("browse.changeset.belongs_to")
               tr.td do |td|
-                td.a h(changeset.user.display_name), :href => url_for(:controller => "user", :action => "view", :display_name => changeset.user.display_name, :only_path => false)
+                td.a h(changeset.user.display_name), :href => user_url(changeset.user, :only_path => false)
               end
             end
           end
@@ -59,10 +59,10 @@ atom_feed(:language => I18n.locale, :schema_date => 2009,
             table.tr do |tr|
               tr.th t("browse.tag_details.tags")
               tr.td do |td|
-                td.table :cellpadding => "0" do |table|
+                td.table :cellpadding => "0" do |tag_table|
                   changeset.tags.sort.each do |tag|
-                    table.tr do |tr|
-                      tr.td << "#{h(tag[0])} = #{linkify(h(tag[1]))}"
+                    tag_table.tr do |tag_tr|
+                      tag_tr.td << "#{h(tag[0])} = #{linkify(h(tag[1]))}"
                     end
                   end
                 end
index 930f20e5ecd1e48dbe037889e44187c46c0ae97c..ec2f22601ce625925ec8dbe6fea0dea465d2744d 100644 (file)
@@ -4,10 +4,10 @@
       <%= user_thumbnail diary_entry.user %>
     <% end %>
 
-    <h2><%= link_to h(diary_entry.title), :action => 'view', :display_name => diary_entry.user.display_name, :id => diary_entry.id %></h2>
+    <h2><%= link_to h(diary_entry.title), diary_entry_path(diary_entry.user, diary_entry) %></h2>
 
     <small class='deemphasize'>
-      <%= raw(t '.posted_by', :link_user => (link_to h(diary_entry.user.display_name), user_path(diary_entry.user)), :created => l(diary_entry.created_at, :format => :blog), :language_link => (link_to h(diary_entry.language.name), :controller => 'diary_entry', :action => 'list', :display_name => nil, :language => diary_entry.language_code)) %>
+      <%= raw(t '.posted_by', :link_user => (link_to h(diary_entry.user.display_name), user_path(diary_entry.user)), :created => l(diary_entry.created_at, :format => :blog), :language_link => (link_to h(diary_entry.language.name), :controller => 'diary_entry', :action => 'index', :display_name => nil, :language => diary_entry.language_code)) %>
     </small>
 
   </div>
   <% end %>
 
   <ul class='secondary-actions clearfix'>
-    <% if params[:action] == 'list' %>
-      <li><%= link_to t('.comment_link'), :action => 'view', :display_name => diary_entry.user.display_name, :id => diary_entry.id, :anchor => 'newcomment' %></li>
+    <% if params[:action] == 'index' %>
+      <li><%= link_to t('.comment_link'), diary_entry_path(diary_entry.user, diary_entry, :anchor => 'newcomment') %></li>
       <li><%= link_to t('.reply_link'), new_message_path(diary_entry.user, :message => { :title => "Re: #{diary_entry.title}" }) %></li>
-      <li><%= link_to t('.comment_count', :count => diary_entry.visible_comments.count), :action => 'view', :display_name => diary_entry.user.display_name, :id => diary_entry.id, :anchor => 'comments' %></li>
+      <li><%= link_to t('.comment_count', :count => diary_entry.visible_comments.count), diary_entry_path(diary_entry.user, diary_entry, :anchor => 'comments') %></li>
     <% end %>
 
     <% if current_user && current_user == diary_entry.user %>
diff --git a/app/views/diary_entry/_diary_index_entry.html.erb b/app/views/diary_entry/_diary_index_entry.html.erb
new file mode 100644 (file)
index 0000000..3d6df4e
--- /dev/null
@@ -0,0 +1 @@
+<%= render :partial => "diary_entry", :object => diary_index_entry %>
diff --git a/app/views/diary_entry/_diary_list_entry.html.erb b/app/views/diary_entry/_diary_list_entry.html.erb
deleted file mode 100644 (file)
index ca583ef..0000000
+++ /dev/null
@@ -1 +0,0 @@
-<%= render :partial => "diary_entry", :object => diary_list_entry %>
\ No newline at end of file
index 7283a8ee12ff3ab150ca8bf8f1ccfb33c1ab9575..3960df3023758bb5f91cf5dfd1cdf7f429c0a205 100644 (file)
@@ -11,7 +11,7 @@
   <% @comments.each do |comment| -%>
   <% cl = cycle('table0', 'table1') %>
   <tr class="<%= cl %>">
-    <td width="25%"><%= link_to comment.diary_entry.title, :action => :view, :display_name => comment.diary_entry.user.display_name, :id => comment.diary_entry.id %></td>
+    <td width="25%"><%= link_to comment.diary_entry.title, diary_entry_path(comment.diary_entry.user, comment.diary_entry) %></td>
     <td width="25%"><span title="<%= l comment.created_at, :format => :friendly %>"><%= t '.ago', :ago => time_ago_in_words(comment.created_at) %></span></td>
     <td width="50%" class="richtext"><%= comment.body.to_html %></td>
   </tr>
similarity index 96%
rename from app/views/diary_entry/list.html.erb
rename to app/views/diary_entry/index.html.erb
index 2d9a4b1671f98e90d4726e2b9669c6e327e9d94d..021cb205847ffa466f061536507100f9d7372da4 100644 (file)
@@ -35,7 +35,7 @@
   <% if @user %>
     <%= render :partial => 'diary_entry', :collection => @entries %>
   <% else %>
-    <%= render :partial => 'diary_list_entry', :collection => @entries %>
+    <%= render :partial => 'diary_index_entry', :collection => @entries %>
   <% end %>
 
   <div class="pagination">
index 6ff2ed9f363b1305440851bc3cc61ed45d696c06..be627437dd9b0ea8efb863e7d845f364dbfdeb1c 100644 (file)
@@ -7,24 +7,24 @@ xml.rss("version" => "2.0",
   xml.channel do
     xml.title @title
     xml.description @description
-    xml.link url_for(:action => "list", :only_path => false)
+    xml.link url_for(:action => "index", :only_path => false)
     xml.image do
       xml.url image_url("mag_map-rss2.0.png")
       xml.title @title
       xml.width "100"
       xml.height "100"
-      xml.link url_for(:action => "list", :only_path => false)
+      xml.link url_for(:action => "index", :only_path => false)
     end
 
     @entries.each do |entry|
       xml.item do
         xml.title entry.title
-        xml.link url_for(:action => "view", :id => entry.id, :display_name => entry.user.display_name, :only_path => false)
-        xml.guid url_for(:action => "view", :id => entry.id, :display_name => entry.user.display_name, :only_path => false)
+        xml.link diary_entry_url(entry.user, entry, :only_path => false)
+        xml.guid diary_entry_url(entry.user, entry, :only_path => false)
         xml.description entry.body.to_html
         xml.dc :creator, entry.user.display_name
         xml.pubDate entry.created_at.to_s(:rfc822)
-        xml.comments url_for(:action => "view", :id => entry.id, :display_name => entry.user.display_name, :anchor => "comments", :only_path => false)
+        xml.comments diary_entry_url(entry.user, entry, :anchor => "comments", :only_path => false)
 
         if entry.latitude && entry.longitude
           xml.geo :lat, entry.latitude.to_s
similarity index 97%
rename from app/views/diary_entry/view.html.erb
rename to app/views/diary_entry/show.html.erb
index 9871da8ccfa09b5d9d8a8273e105302be5ccb521..754070e529c8661e6ce73df034cf8d301178ce66 100644 (file)
@@ -1,7 +1,7 @@
 <% content_for :heading do %>
   <div id="userinformation" >
     <%= user_image @entry.user %>
-    <h2><%= link_to t('.user_title', :user => h(@entry.user.display_name)), :action => :list %></h2>
+    <h2><%= link_to t('.user_title', :user => h(@entry.user.display_name)), :action => :index %></h2>
     <p><%= rss_link_to :action => :rss, :display_name => @entry.user.display_name %></p>
   </div>
 <% end %>
index 4b5ae4a8f471c3fb44a178b32f5a3224805a656b..5cb99f2f16eb9ad2ecfd4bea804286673208d9cd 100644 (file)
@@ -2,9 +2,9 @@
   <% comments.each do |comment| %>
     <div class="comment">
       <div style="float:left">
-        <%= link_to user_thumbnail(comment.user), user_path(comment.user.display_name) %>
+        <%= link_to user_thumbnail(comment.user), user_path(comment.user) %>
       </div>
-      <b> <%= link_to comment.user.display_name, user_path(comment.user.display_name) %> </b> <br/>
+      <b> <%= link_to comment.user.display_name, user_path(comment.user) %> </b> <br/>
       <%= comment.body %>
     </div>
     <span class="deemphasize">
index b499288a2446d4059afcc8ea5ed0f415ade6c460..427cbe9091a5b06c78a091b10c126a15bd34d246 100644 (file)
@@ -1,9 +1,9 @@
 <% reports.each do |report| %>
   <div class="report">
     <div style="float:left">
-      <%= link_to user_thumbnail(report.user), user_path(report.user.display_name) %>
+      <%= link_to user_thumbnail(report.user), user_path(report.user) %>
     </div>
-    <%= t ".reported_by_html", :category => report.category, :user => link_to(report.user.display_name, user_path(report.user.display_name)) %>
+    <%= t ".reported_by_html", :category => report.category, :user => link_to(report.user.display_name, user_path(report.user)) %>
     <br/>
     <span class="deemphasize">
       <%= t(".updated_at", :datetime => l(report.updated_at.to_datetime, :format => :friendly)) %>
index e5e7ebc001113fa7b0ed266f4f2949c73a7e771d..bfb11ee5bfe907ba48a872ca8b6b29faa17f276e 100644 (file)
         <td><%= t ".states.#{issue.status}" %></td>
         <td><%= link_to t(".reports_count", :count => issue.reports_count), issue %></td>
         <td><%= link_to reportable_title(issue.reportable), reportable_url(issue.reportable) %></td>
-        <td><%= link_to issue.reported_user.display_name, user_path(issue.reported_user.display_name) if issue.reported_user %></td>
+        <td><%= link_to issue.reported_user.display_name, user_path(issue.reported_user) if issue.reported_user %></td>
         <td>
           <% if issue.user_updated %>
-            <%= t ".last_updated_time_user_html", :user => link_to(issue.user_updated.display_name, user_path(issue.user_updated.display_name)),
+            <%= t ".last_updated_time_user_html", :user => link_to(issue.user_updated.display_name, user_path(issue.user_updated)),
                                                   :time => distance_of_time_in_words_to_now(issue.updated_at),
                                                   :title => l(issue.updated_at) %>
           <% else %>
index 6511fb17f11509822523ea8df5f6a059083c8ad9..cd3dfd46883e7d10b6f48516642d930c6c1eacaa 100644 (file)
           <li>
             <%= link_to inbox_messages_path do %>
               <span class='count-number'><%= number_with_delimiter(current_user.new_messages.size) %></span>
-              <%= t('user.view.my messages') %>
+              <%= t('user.show.my messages') %>
             <% end %>
           </li>
           <li>
-            <%= link_to t('user.view.my profile'), user_path(:display_name => current_user.display_name) %>
+            <%= link_to t('user.show.my profile'), user_path(current_user) %>
           </li>
           <li>
-            <%= link_to t('user.view.my settings'), :controller => 'user', :action => 'account', :display_name => current_user.display_name %>
+            <%= link_to t('user.show.my settings'), :controller => 'user', :action => 'account', :display_name => current_user.display_name %>
           </li>
           <li class="divider"></li>
           <li>
index 534ff13c019117aedb8a9e1c76e769247d25ba75..05f070914b2cd7e235fc9f0fd477eca235c749db 100644 (file)
@@ -43,9 +43,8 @@
         <h2><%= t 'layouts.intro_header' %></h2>
         <div class="close-wrap"><span class="icon close"></span></div>
         <p><%= t 'layouts.intro_text' %></p>
-        <p><%= t 'layouts.partners_html',
+        <p><%= t 'layouts.hosting_partners_html',
                :ucl => link_to(t('layouts.partners_ucl'), "https://www.ucl.ac.uk"),
-               :ic => link_to(t('layouts.partners_ic'), "https://www.imperial.ac.uk/"),
                :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>
index efb7de7ec995065294fdf243db2f62a8a988e689..d53181c172ef2776e269e5a53ddc1a3d58ce8e8e 100644 (file)
@@ -2,7 +2,7 @@
   <h1><%= t ".title" %></h1>
 <% end %>
 
-<p><%= raw t(".request_access", :app_name => link_to(@token.client_application.name, @token.client_application.url), :user => link_to(current_user.display_name, :controller => :user, :action => :view, :display_name => current_user.display_name)) %></p>
+<p><%= raw t(".request_access", :app_name => link_to(@token.client_application.name, @token.client_application.url), :user => link_to(current_user.display_name, user_path(current_user))) %></p>
 
 <%= form_tag authorize_url do %>
   <%= hidden_field_tag "oauth_token", @token.token %>
index 702a0243d19f7aaf06e4233b0657b60b21477219..111815c12598eb52de4e35855de19d25a4f2266a 100644 (file)
@@ -32,9 +32,8 @@
 
   <div class='section' id='partners'>
     <h2><div class='icon partners'></div><%= t ".partners_title" %></h2>
-    <p><%= t 'layouts.partners_html',
+    <p><%= t 'layouts.hosting_partners_html',
              :ucl => link_to(t('layouts.partners_ucl'), "https://www.ucl.ac.uk"),
-             :ic => link_to(t('layouts.partners_ic'), "https://www.imperial.ac.uk/"),
              :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>
index c2f569ae9b3edb53c946056ff56690194ed8d126..b17192ec81a1943da715d773817daa1d97ab1335 100644 (file)
@@ -21,8 +21,8 @@ xml.rss("version" => "2.0",
       xml.item do
         xml.title trace.name
 
-        xml.link url_for(:controller => :traces, :action => :view, :id => trace.id, :display_name => trace.user.display_name, :only_path => false)
-        xml.guid url_for(:controller => :traces, :action => :view, :id => trace.id, :display_name => trace.user.display_name, :only_path => false)
+        xml.link url_for(:controller => :traces, :action => :show, :id => trace.id, :display_name => trace.user.display_name, :only_path => false)
+        xml.guid url_for(:controller => :traces, :action => :show, :id => trace.id, :display_name => trace.user.display_name, :only_path => false)
 
         xml.description do
           xml.cdata! render(:partial => "description", :object => trace, :formats => [:html])
index 6132833718b417ed0eb1cf901819eccd646d4e07..123f511d2473287d8cd200ee0a2215e716b2ae93 100644 (file)
       <% if @user.home_lon and @user.home_lat and contact.home_lon and contact.home_lat %>
         <% distance = @user.distance(contact) %>
         <% if distance < 1 %>
-          (<%= t 'user.view.m away', :count => (distance * 1000).round %>)
+          (<%= t 'user.show.m away', :count => (distance * 1000).round %>)
         <% else %>
-          (<%= t 'user.view.km away', :count => distance.round %>)
+          (<%= t 'user.show.km away', :count => distance.round %>)
         <% end %>
       <% end %>
     </p>
     <p>
       <% changeset = contact.changesets.first %>
       <% if changeset %>
-        <%= t('user.view.latest edit', :ago => t('user.view.ago', :time_in_words_ago => time_ago_in_words(changeset.created_at))) %>
+        <%= t('user.show.latest edit', :ago => t('user.show.ago', :time_in_words_ago => time_ago_in_words(changeset.created_at))) %>
         <% comment = changeset.tags['comment'].to_s != '' ? changeset.tags['comment'] : t('browse.no_comment') %>
         "<%= link_to(comment,
                             {:controller => 'browse', :action => 'changeset', :id => changeset.id},
     </p>
 
     <ul class='secondary-actions clearfix deemphasize'>
-      <li><%= link_to t('user.view.send message'), new_message_path(contact) %></li>
+      <li><%= link_to t('user.show.send message'), new_message_path(contact) %></li>
       <li>
         <% if current_user.is_friends_with?(contact) %>
-          <%= link_to t('user.view.remove as friend'), remove_friend_path(:display_name => contact.display_name, :referer => request.fullpath), :method => :post %>
+          <%= link_to t('user.show.remove as friend'), remove_friend_path(:display_name => contact.display_name, :referer => request.fullpath), :method => :post %>
         <% else %>
-          <%= link_to t('user.view.add as friend'), make_friend_path(:display_name => contact.display_name, :referer => request.fullpath), :method => :post %>
+          <%= link_to t('user.show.add as friend'), make_friend_path(:display_name => contact.display_name, :referer => request.fullpath), :method => :post %>
       <% end %>
       </li>
     </ul>
index b1ea3f299c053d4e72e39339d38b8e9dd2b9d0e0..da9ae75c921b5b50c7c09df849e63649bb521252 100644 (file)
@@ -7,14 +7,14 @@
   <td>
     <p>
       <% if user.creation_ip %>
-        <%= raw t 'user.list.summary',
-            :name => link_to(h(user.display_name), :action => "view", :display_name => user.display_name),
+        <%= raw t 'user.index.summary',
+            :name => link_to(h(user.display_name), user_path(user)),
             :ip_address => link_to(user.creation_ip, :ip => user.creation_ip),
             :date => l(user.creation_time, :format => :friendly)
         %>
       <% else %>
-        <%= raw t 'user.list.summary_no_ip',
-            :name => link_to(h(user.display_name), :action => "view", :display_name => user.display_name),
+        <%= raw t 'user.index.summary_no_ip',
+            :name => link_to(h(user.display_name), user_path(user)),
             :date => l(user.creation_time, :format => :friendly)
         %>
       <% end %>
index 16fbc46ca828bfc48ab6854beccaf30a9b2ee47d..352adf8873adc759bbca9105301ae29f71b6c292 100644 (file)
@@ -6,7 +6,7 @@
   <h1><%= t '.my settings' %></h1>
   <ul class='secondary-actions clearfix'>
     <li><%= link_to t('.return to profile'), user_path(current_user) %></li>
-    <li><%= link_to t('user.view.oauth settings'), :controller => 'oauth_clients', :action => 'index' %></li>
+    <li><%= link_to t('user.show.oauth settings'), :controller => 'oauth_clients', :action => 'index' %></li>
   </ul>
 <% end %>
 
similarity index 97%
rename from app/views/user/view.html.erb
rename to app/views/user/show.html.erb
index 0e99a2861279ec4286bad18b39975d1643bd6cd5..30c72b14021c189d5adac3e32d423547b1d4db81 100644 (file)
@@ -7,7 +7,7 @@
         <!-- Displaying user's own profile page to themself -->
         <ul class='secondary-actions clearfix'>
           <li>
-            <%= link_to t('.my edits'), :controller => 'changeset', :action => 'list', :display_name => current_user.display_name %>
+            <%= link_to t('.my edits'), :controller => 'changeset', :action => 'index', :display_name => current_user.display_name %>
             <span class='count-number'><%= number_with_delimiter(current_user.changesets.size) %></span>
           </li>
           <li>
@@ -18,7 +18,7 @@
             <span class='count-number'><%= number_with_delimiter(current_user.traces.size) %></span>
           </li>
           <li>
-            <%= link_to t('.my diary'), :controller => 'diary_entry', :action => 'list', :display_name => current_user.display_name %>
+            <%= link_to t('.my diary'), :controller => 'diary_entry', :action => 'index', :display_name => current_user.display_name %>
             <span class='count-number'><%= number_with_delimiter(current_user.diary_entries.size) %></span>
           </li>
           <li>
@@ -49,7 +49,7 @@
         <ul class='secondary-actions clearfix'>
 
           <li>
-            <%= link_to t('.edits'), :controller => 'changeset', :action => 'list', :display_name => @user.display_name %>
+            <%= link_to t('.edits'), :controller => 'changeset', :action => 'index', :display_name => @user.display_name %>
             <span class='count-number'><%= number_with_delimiter(@user.changesets.size) %></span>
           </li>
           <li>
@@ -66,7 +66,7 @@
             <%= link_to t('.send message'), new_message_path(@user) %>
           </li>
           <li>
-            <%= link_to t('.diary'), :controller => 'diary_entry', :action => 'list', :display_name => @user.display_name %>
+            <%= link_to t('.diary'), :controller => 'diary_entry', :action => 'index', :display_name => @user.display_name %>
             <span class='count-number'><%= number_with_delimiter(@user.diary_entries.size) %></span>
           </li>
           <li>
index 89ff677fb2c4aeacd53ebf06ae9cca24ffa02bd4..b4399a9f868348640deece25f915345fda95fe5a 100644 (file)
@@ -5,6 +5,7 @@ module I18n
         super
       rescue InvalidPluralizationData => ex
         raise ex unless ex.entry.key?(:other)
+
         ex.entry[:other]
       end
     end
index 421ca2bf9395f503e1f72582aaf201633a877375..122c2e6513838eb90b609c15701592193a65c049 100644 (file)
@@ -52,6 +52,7 @@ module OpenStreetMap
     def oauth1_verify(request, options = {}, &block)
       signature = OAuth::Signature.build(request, options, &block)
       return false unless OauthNonce.remember(signature.request.nonce, signature.request.timestamp)
+
       value = signature.verify
       if request.ssl? && !value
         http_request = request.dup
index 3eb04e50caa4634b7871c80b0e3c25d9a765a63f..cc65997338ff664adc8de4f3de7cc48cf0c7f593 100644 (file)
@@ -222,7 +222,7 @@ af:
       user: Gebruiker
       comment: Opmerking
       area: Gebied
-    list:
+    index:
       title: Wysigingsstel
       empty: Geen wysigingstelle gevind nie.
       empty_area: Geen wysigingstelle in hierdie gebied.
@@ -243,7 +243,7 @@ af:
     new:
       title: Nuwe dagboekinskrywing
       publish_button: Publiseer
-    list:
+    index:
       title: Gebruikersdagboeke
       title_friends: Dagboeke van vriende
       title_nearby: Gebruikers in die omgewing se dagboeke
@@ -266,7 +266,7 @@ af:
       use_map_link: benut kaart
       save_button: Stoor
       marker_text: Ligging van dagboekinskrywing
-    view:
+    show:
       title: '%{user} se dagboek | %{title}'
       user_title: '%{user} se dagboek'
       leave_a_comment: Lewer kommentaar
@@ -1041,7 +1041,7 @@ af:
       get_directions_title: Kry rigtingaanwysings tussen twee punte
       from: Vanaf
       to: Na
-      where_am_i: Waar is ek tans?
+      where_am_i: Waar is dié?
       submit_text: Soek
     key:
       table:
@@ -1340,7 +1340,7 @@ af:
       heading: Die gebruiker %{user} bestaan nie
       body: Daar is geen gebruiker met die naam %{user} nie. Gaan u spelling na, of
         u het moontlik op 'n foutiewe skakel geklik.
-    view:
+    show:
       my diary: My Dagboek
       new diary entry: nuwe dagboekinskrywing
       my edits: My Redigerings
@@ -1451,7 +1451,7 @@ af:
     remove_friend:
       success: '%{name} is uit u vriendekring verwyder.'
       not_a_friend: '%{name} is nie een van u vriende nie.'
-    list:
+    index:
       title: Gebruikers
       heading: Gebruikers
       summary: '%{name} geskep vanaf %{ip_address} op %{date}'
index 2eb7296200d7ad3577606e8b155169a3df2095c1..edf188454677558b1bb928e1e72697326f9d4a88 100644 (file)
@@ -142,13 +142,13 @@ aln:
       user: Përdorues
       comment: Koment
       area: Zonë
-    list:
+    index:
       title: Changesets
       title_user: Changesets nga %{user}
   diary_entry:
     new:
       title: Hyrja e re Ditari
-    list:
+    index:
       title: ditarë Përdorues ,
       user_title: Ditari i %{user}
       in_language_title: Shënimet e Ditarit në %{language}
@@ -169,7 +169,7 @@ aln:
       use_map_link: Harta e përdorimit
       save_button: Ruje
       marker_text: Vendndodhja Ditari hyrje
-    view:
+    show:
       title: ditari i %{user} | %{title}
       user_title: ditari i %{user}
       leave_a_comment: Lene naj koment
@@ -1167,7 +1167,7 @@ aln:
       heading: Ky shfrytzues %{user} nuk egziston
       body: Na vjen keq, ska shfrytëzues me kët emën %{user}. Ju lutemi kontrolloni
         shkrimin, ose nashta linku ku keni kliku asht gabim.
-    view:
+    show:
       my diary: ditari im
       new diary entry: hyrje e re ne ditar
       my edits: ndryshimet e mia
@@ -1291,7 +1291,7 @@ aln:
       not_a_friend: '%{name} nuk osht njoni pi shokve tu.'
     filter:
       not_an_administrator: Ju duhet të jeni administrator për me kry kët veprim.
-    list:
+    index:
       title: Perdoruesit
       heading: Perdoruesit
       showing:
index 6e8dedf9be0f61f5c56459afd1ad1268b36ed85e..e25c8d8f081dcdfccd28c5af3d0f2a9ada735af8 100644 (file)
@@ -260,7 +260,7 @@ ar:
       user: المستخدم
       comment: التعليق
       area: منطقة
-    list:
+    index:
       title: حزم التغييرات
       title_user: حزم التغييرات بواسطة %{user}
       title_friend: مجموعات تغييرات بواسطة أصدقائي
@@ -285,7 +285,7 @@ ar:
     new:
       title: مدخلة يومية جديدة
       publish_button: نشر
-    list:
+    index:
       title: يوميات المستخدمين
       title_friends: يوميات الأصدقاء
       title_nearby: يوميات/مفكرات المستخدمين في المقبرة
@@ -308,7 +308,7 @@ ar:
       use_map_link: استخدم الخريطة
       save_button: احفظ
       marker_text: موقع مدخلة اليومية
-    view:
+    show:
       title: يوميات %{user} | %{title}
       user_title: يومية %{user}
       leave_a_comment: اترك تعليقًا
@@ -2081,7 +2081,7 @@ ar:
       body: عذرًا، لا يوجد مستخدم بالاسم %{user}. يرجى تدقيق الاسم، أو ربما يكون الرابط
         الذي تم النقر عليه خاطئ.
       deleted: تم حذفه
-    view:
+    show:
       my diary: اليوميات
       new diary entry: مدخلة يومية جديدة
       my edits: المُساهمات
@@ -2252,7 +2252,7 @@ ar:
       not_a_friend: '%{name} ليس من أحد أصدقائك.'
     filter:
       not_an_administrator: عليك أن تكون إداري لتنفيذ هذا الإجراء.
-    list:
+    index:
       title: المستخدمون
       heading: المستخدمون
       showing:
index 38f69e7dfc85eb4eb2dfad81fcd1ff202a26ef5f..d639c0a1fcf04a6c896e13e7b4f2f1a51aaec1e6 100644 (file)
@@ -117,13 +117,13 @@ arz:
       user: المستخدم
       comment: التعليق
       area: منطقة
-    list:
+    index:
       title: حزم التغييرات
       title_user: حزم التغييرات بواسطه %{user}
   diary_entry:
     new:
       title: مدخله يوميه جديدة
-    list:
+    index:
       title: يوميات المستخدمين
       user_title: يوميه %{user}
       in_language_title: مدخلات اليوميه باللغه %{language}
@@ -144,7 +144,7 @@ arz:
       use_map_link: استخدم الخريطة
       save_button: احفظ
       marker_text: موقع مدخله اليومية
-    view:
+    show:
       title: يوميات المستخدمين | %{user}
       user_title: يوميه %{user}
       leave_a_comment: اترك تعليقًا
@@ -972,7 +972,7 @@ arz:
       heading: المستخدم %{user} غير موجود
       body: عذرًا، لا يوجد مستخدم بالاسم %{user}. يرجى تدقيق الاسم، أو ربما يكون الرابط
         الذى تم النقر عليه خاطئ.
-    view:
+    show:
       my diary: يوميتي
       new diary entry: مدخله يوميه جديدة
       my edits: مساهمات
index 3e659efe560b6f7909b83a33731ebed9f986347d..2097458e9d1772e455bbb251012e12a0e34dfb68 100644 (file)
@@ -233,7 +233,7 @@ ast:
       user: Usuariu
       comment: Comentariu
       area: Área
-    list:
+    index:
       title: Conxuntos de cambeos
       title_user: Conxuntos de cambeos de %{user}
       title_friend: Conxuntos de cambeos de los mios collacios
@@ -259,7 +259,7 @@ ast:
     new:
       title: Nueva entrada del diariu
       publish_button: Espublizar
-    list:
+    index:
       title: Diarios d'usuarios
       title_friends: Diarios de collacios
       title_nearby: Diarios d'usuarios cercanos
@@ -282,7 +282,7 @@ ast:
       use_map_link: usar mapa
       save_button: Guardar
       marker_text: Allugamientu de la entrada del diariu
-    view:
+    show:
       title: Diariu de %{user} | %{title}
       user_title: Diariu de %{user}
       leave_a_comment: Dexar un comentariu
@@ -2067,7 +2067,7 @@ ast:
       body: Lo siento, nun hai dengún usuariu col nome %{user}. Comprueba la escritura
         o si calcasti nun enllaz enquivocáu.
       deleted: desaniciao
-    view:
+    show:
       my diary: El mio diariu
       new diary entry: nueva entrada del diariu
       my edits: Les mios ediciones
@@ -2248,7 +2248,7 @@ ast:
       not_a_friend: '%{name} nun ye unu de los tos amigos.'
     filter:
       not_an_administrator: Has de ser alministrador pa facer esa aición.
-    list:
+    index:
       title: Usuarios
       heading: Usuarios
       showing:
index 143f76e97a3c1115bb57d78a72f2ccfb10324525..02184723dd56c25775e1218e135ae21a8c6d41c7 100644 (file)
@@ -185,7 +185,7 @@ az:
       user: İstifadəçi
       comment: Şərh
       area: Ərazi
-    list:
+    index:
       title: Dəyişikliklər dəsti
       title_user: '%{user} tərəfindən edilmiş dəyişikliklər dəsti'
       title_friend: Dostlarınız tərəfindən edilmiş dəyişikliklər dəsti
@@ -199,7 +199,7 @@ az:
     new:
       title: Yeni Gündəlik Yazısı
       publish_button: Nəşr et
-    list:
+    index:
       title: İstifadəçi gündəlikləri
       title_friends: Dostların gündəlikləri
       title_nearby: Yaxınlıqdakı İstifadəçilərin Gündəlikləri
@@ -222,7 +222,7 @@ az:
       use_map_link: xəritə üzərində göstər
       save_button: Qeyd et
       marker_text: Gundəlik yazısının yazıldığı yer
-    view:
+    show:
       title: İstifadəçi %{user} gündəliyi | %{title}
       user_title: İstifadəçi %{user} gündəliyi
       leave_a_comment: Şərh yaz
@@ -1073,7 +1073,7 @@ az:
       legale_names:
         france: Fransa
         italy: İtaliya
-    view:
+    show:
       my diary: mənim gündəliyim
       my edits: mənim redaktələrim
       my comments: mənim şərhlərim
@@ -1129,7 +1129,7 @@ az:
     remove_friend:
       heading: '%{user} dostluqdan silək?'
       button: Dostluqdan sil
-    list:
+    index:
       title: İstifadəçilər
       heading: İstifadəçilər
       hide: Seçilmiş istifadəçiləri gizlət
index 4d4c3c5adcd9ae2b3212e7c5a13374a32f0b778a..3a1e75b61dfb77089596ace119405f54ec2cb3cb 100644 (file)
@@ -245,7 +245,7 @@ ba:
       user: Ҡулланыусы
       comment: Комментарий
       area: Өлкә
-    list:
+    index:
       title: Төҙәтеүҙәр пакеты
       title_user: ' %{user} ҡулланыусыһының төҙәтеүҙәр пакеты'
       title_friend: Дуҫтарығыҙҙың төҙәтеүҙәре пакеты
@@ -271,7 +271,7 @@ ba:
     new:
       title: Яңы көндәлеккә инеү
       publish_button: Баҫтырырға
-    list:
+    index:
       title: Көндәлектәр
       title_friends: Дуҫтарың көндәлектәре
       title_nearby: Йәнәш ҡатнашыусылар көндәлеге
@@ -291,7 +291,7 @@ ba:
       use_map_link: картаны ҡуллан
       save_button: Һаҡларға
       marker_text: Көндәлек яҙыу урыны
-    view:
+    show:
       title: '%{ҡулланыусы}ның көндәлеге|%{титул}'
       user_title: '%{ҡулланыусы}ның көндәлеге'
       leave_a_comment: Фекер ҡалдыр
index 8555a4bd4720c435cc36f7da99dd3aa17775b25c..7e318eabf913cd2cf7e3dae2868c9e7500e33706 100644 (file)
@@ -172,7 +172,7 @@ be-Tarask:
       user: Карыстальнік
       comment: Камэнтар
       area: Абшар
-    list:
+    index:
       title: Наборы зьменаў
       title_user: Набор зьменаў %{user}
       title_friend: Наборы зьменаў маіх сяброў
@@ -183,7 +183,7 @@ be-Tarask:
   diary_entry:
     new:
       title: Новы запіс у дзёньніку
-    list:
+    index:
       title: Дзёньнікі карыстальнікаў
       title_friends: Дзёньнікі сяброў
       title_nearby: Дзёньнікі суседніх удзельнікаў
@@ -206,7 +206,7 @@ be-Tarask:
       use_map_link: на мапе
       save_button: Захаваць
       marker_text: Месцазнаходжаньне запісу дзёньніка
-    view:
+    show:
       title: Дзёньнік %{user} | %{title}
       user_title: Дзёньнік %{user}
       leave_a_comment: Пакінуць камэнтар
@@ -1312,7 +1312,7 @@ be-Tarask:
       heading: Удзельнік %{user} не існуе
       body: Прабачце, няма ўдзельніка з іменем %{user}. Калі ласка, праверце дакладнасьць
         напісаньня, ці, магчыма, спасылка па якой Вы перайшлі, няслушная.
-    view:
+    show:
       my diary: Мой дзёньнік
       new diary entry: новы запіс у дзёньніку
       my edits: Мае рэдагаваньні
@@ -1471,7 +1471,7 @@ be-Tarask:
     filter:
       not_an_administrator: Вам неабходна быць адміністратарам, каб выканаць гэтае
         дзеяньне.
-    list:
+    index:
       title: Удзельнікі
       heading: Карыстальнікі
       showing:
index 373d6163f56620ef553a09aa64ebdd6822046509..a4c7534e3592440c9d7c48c3dd1100b2e4e984af 100644 (file)
@@ -238,7 +238,7 @@ be:
       user: Карыстальнік
       comment: Каментар
       area: Мясцовасць
-    list:
+    index:
       title: Наборы зменаў
       title_user: Набор зменаў ад %{user}
       title_friend: Наборы зменаў ад вашых сяброў
@@ -263,7 +263,7 @@ be:
     new:
       title: Новы запіс дзённіку
       publish_button: Апублікаваць
-    list:
+    index:
       title: Дзённікі карыстальнікаў
       title_friends: Дзённікі сяброў
       title_nearby: Дзённікі карыстальнікаў паблізу
@@ -286,7 +286,7 @@ be:
       use_map_link: карыстацца картай
       save_button: Запісаць
       marker_text: Месцазнаходжанне запісу дзённіку
-    view:
+    show:
       title: Дзённік карыстальніка | %{user}
       user_title: Дзённік %{user}
       leave_a_comment: Пакінуць каментар
@@ -1879,7 +1879,7 @@ be:
       body: Прабачце, карыстальнік %{user} не знойдзены. Please check your spelling,
         Калі ласка, праверце свой правапіс, ці, магчыма, вам далі няправільную спасылку.
       deleted: выдалены
-    view:
+    show:
       my diary: Мой дзённік
       new diary entry: новы запіс у дзённіку
       my edits: Мае змены
@@ -2055,7 +2055,7 @@ be:
     filter:
       not_an_administrator: Вам неабходна мець правы адміністратара для выканання
         гэтага дзеяння.
-    list:
+    index:
       title: Удзельнікі
       heading: Удзельнікі
       showing:
index be61061cc3ed4c40ec431a99612588475093eb97..0bda033b4c9e5d32adddae7765874a769250b4bc 100644 (file)
@@ -190,7 +190,7 @@ bg:
       user: Потребител
       comment: Коментар
       area: Област
-    list:
+    index:
       title: Списък с промени
       title_user: Списък с промени на %{user}
       title_friend: Списъци с промени на Ваши приятели
@@ -209,7 +209,7 @@ bg:
     new:
       title: Нов запис в дневника
       publish_button: Публикуване
-    list:
+    index:
       title: Дневници на потребителите
       title_friends: Дневници на приятели
       title_nearby: Дневници на потребители наблизо
@@ -227,7 +227,7 @@ bg:
       longitude: 'Географска дължина:'
       use_map_link: използвай карта
       save_button: Съхраняване
-    view:
+    show:
       title: Дневник на потребител %{user} | %{title}
       user_title: дневник на %{user}
       leave_a_comment: Оставете коментар
@@ -1133,7 +1133,7 @@ bg:
       title: Няма такъв потребител
       heading: Потребителят %{user} не съществува
       deleted: изтрито
-    view:
+    show:
       my edits: Mоите редакции
       my traces: Моите следи
       my notes: Моите бележки
@@ -1207,7 +1207,7 @@ bg:
       heading: Потвърдете смяната на електронната поща
     remove_friend:
       success: '%{name} беше премахнат от списъка с приятелите.'
-    list:
+    index:
       title: Потребители
       heading: Потребители
   user_role:
index 9259b4efe0694f72ae37bb917a247f775bc2ecad..06d64ad79d11ff2636e9502ec83b9f024cd38fd6 100644 (file)
@@ -242,7 +242,7 @@ bn:
       user: ব্যবহারকারী
       comment: মন্তব্য
       area: এলাকা
-    list:
+    index:
       title: পরিবর্তনসমূহ
       title_user: '%{user} দ্বারা পরিবর্তন ধার্য'
       title_friend: আমার বন্ধুদের দ্বারা পরিবর্তনসেট
@@ -268,7 +268,7 @@ bn:
     new:
       title: নতুন দিনলিপির ভুক্তি
       publish_button: প্রকাশ করুন
-    list:
+    index:
       title: ব্যবহারকারীর দিনলিপি
       title_friends: বন্ধুর দিনলিপি
       title_nearby: নিকটবর্তী ব্যবহারকারীর দিনলিপি
@@ -291,7 +291,7 @@ bn:
       use_map_link: মানচিত্র ব্যবহার করুন
       save_button: সংরক্ষণ
       marker_text: দিনলিপির ভুক্তির অবস্থান
-    view:
+    show:
       title: '%{user}-এর দিনলিপি | %{title}'
       user_title: '%{user}-এর দিনলিপি'
       leave_a_comment: মন্তব্য করুন
@@ -1325,7 +1325,7 @@ bn:
         france: ফ্রান্স
         italy: ইতালি
         rest_of_world: অন্যান্য দেশসমূহ
-    view:
+    show:
       my edits: আমার সম্পাদনা
       my profile: আমার প্রোফাইল
       my settings: আমার সেটিংস
@@ -1384,7 +1384,7 @@ bn:
     go_public:
       flash success: আপনার সকল সম্পাদনা এখন উন্মুক্ত, এবং এখন আপনার সম্পাদনের অনুমতি
         রয়েছে।
-    list:
+    index:
       title: ব্যবহারকারীগণ
       heading: ব্যবহারকারীগণ
     auth_association:
index 524a828f3419ad935096cc9f149d6f10f3dd2951..b54b26ce4b49688f82239c119b2665d6cfe53db9 100644 (file)
@@ -239,7 +239,7 @@ br:
       user: Implijer
       comment: Addispleg
       area: Takad
-    list:
+    index:
       title: Hollad kemmoù
       title_user: Strolladoù kemmoù gant %{user}
       title_friend: Hollad ar c'hemmoù degaset gant ho mignoned
@@ -265,7 +265,7 @@ br:
     new:
       title: Enmoned nevez en deizlevr
       publish_button: Embann
-    list:
+    index:
       title: Deizlevrioù an implijerien
       title_friends: Marilhoù ar vignoned
       title_nearby: Marilhoù mignoned a-dost
@@ -288,7 +288,7 @@ br:
       use_map_link: implijout ar gartenn
       save_button: Enrollañ
       marker_text: Lec'hiadur an enmoned en deizlevr
-    view:
+    show:
       title: Deizlevr %{user} | %{title}
       user_title: Deizlevr %{user}
       leave_a_comment: Lezel un addispleg
@@ -1969,7 +1969,7 @@ br:
       body: Ho tigarez, n'eus implijer ebet en anv %{user}. Gwiriit hag-eñ eo skrivet
         mat, pe marteze hoc'h eus kliket war ul liamm fall.
       deleted: dilamet
-    view:
+    show:
       my diary: ma deizlevr
       new diary entry: enmoned nevez en deizlevr
       my edits: ma aozadennoù
@@ -2148,7 +2148,7 @@ br:
       not_a_friend: '%{name} n''eo ket unan eus ho mignoned.'
     filter:
       not_an_administrator: Ret eo deoc'h bezañ merour evit kas an ober-mañ da benn.
-    list:
+    index:
       title: Implijerien
       heading: Implijerien
       showing:
index d723359059855da35ebb823b6fe779bc734af925..18a59d31117b45e46271349fa049e8cc5a5732f2 100644 (file)
@@ -203,7 +203,7 @@ bs:
       user: Korisnik
       comment: Komentar
       area: Područje
-    list:
+    index:
       title: Setovi promjena
       title_user: Setovi promjena od %{user}
       title_friend: Setovi promjena vaših prijatelja
@@ -218,7 +218,7 @@ bs:
     new:
       title: Novi unos u dnevnik
       publish_button: Objavi
-    list:
+    index:
       title: Dnevnici korisnika
       title_friends: Dnevnici prijatelja
       title_nearby: Dnevnici obližnjih korisnika
@@ -241,7 +241,7 @@ bs:
       use_map_link: korisititi kartu
       save_button: Spremiti
       marker_text: Lokacija unosa u dnevnik
-    view:
+    show:
       title: Dnevnik korisnika %{user} | %{title}
       user_title: Dnenvnik korisnika %{user}
       leave_a_comment: Ostaviti komentar
@@ -1542,7 +1542,7 @@ bs:
       heading: Korisnik %{user} ne postoji
       body: Žao nam je, ne postoji korisnik s imenom %{user}. Molimo da provjerite
         Vaš unos ili da li je poveznica na koju ste kliknuli ispravna.
-    view:
+    show:
       my diary: Moj dnevnik
       new diary entry: Novi unos u dnevnik
       my edits: Moje promjene
@@ -1703,7 +1703,7 @@ bs:
       not_a_friend: '%{name} nije jedan od Vaših prijatelja.'
     filter:
       not_an_administrator: Trebate biti moderator da bi izvršili tu radnju.
-    list:
+    index:
       title: Korisnici
       heading: Korisnici
       showing:
index 4c19ec0c3fc93bde5dfc4733876e44a40973ac85..97d1ff9e1ea7b2aa68e1657a289cd868ed22f47c 100644 (file)
@@ -262,7 +262,7 @@ ca:
       user: Usuari
       comment: Comentari
       area: Àrea
-    list:
+    index:
       title: Conjunt de canvis
       title_user: Conjunt de canvis de %{user}
       title_friend: Conjunts de canvis dels meus amics
@@ -288,7 +288,7 @@ ca:
     new:
       title: Entrada de diari nova
       publish_button: Publica
-    list:
+    index:
       title: Diaris d'usuari/a
       title_friends: Diaris dels amics
       title_nearby: Diaris d'amics propers
@@ -311,7 +311,7 @@ ca:
       use_map_link: usa el mapa
       save_button: Desa
       marker_text: Localització de l'Entrada del Diari
-    view:
+    show:
       title: Diari de %{user} | %{title}
       user_title: Diari de %{user}
       leave_a_comment: Deixa un comentari
@@ -935,6 +935,10 @@ ca:
   reports:
     new:
       categories:
+        diary_entry:
+          other_label: Un altre
+        diary_comment:
+          other_label: Un altre
         note:
           spam_label: Aquesta nota és brossa
           personal_label: Aquesta nota conté dades personals
@@ -1633,6 +1637,7 @@ ca:
       identifiable: Identifiable (mostrat en llista de traça i com a punts d'identificació,
         ordenades amb timestamps)
     new:
+      upload_trace: Carrega una traça GPS
       upload_gpx: 'Carregui l''arxiu GPX:'
       description: 'Descripció:'
       tags: 'Etiquetes:'
@@ -1974,7 +1979,7 @@ ca:
       body: No hi ha cap usuari amb el nom %{user}. Comproveu l'ortografia, o potser
         l'enllaç on heu fet clic és incorrecte.
       deleted: esborrat
-    view:
+    show:
       my diary: El meu diari
       new diary entry: Nova entrada del diari
       my edits: Les meves edicions
@@ -2155,7 +2160,7 @@ ca:
       not_a_friend: '%{name} no és un dels seus amics.'
     filter:
       not_an_administrator: Cal que sigueu administrador per dur a terme aquesta acció.
-    list:
+    index:
       title: Usuaris
       heading: Usuaris
       showing:
index d3e67378b1fe89c7d819d614c9f91ba662460071..fea0954548a5a17c95d8535ac8e74e580e0650fd 100644 (file)
@@ -235,7 +235,7 @@ ce:
       user: Декъашхо
       comment: Коммент
       area: Область
-    list:
+    index:
       title: Нисдарш
       title_user: Декъашхочун %{user} нисдарш
       title_friend: Хьан доттагӀийн нисдарш
@@ -260,7 +260,7 @@ ce:
     new:
       title: Де керла дӀаяздар
       publish_button: Арахеца
-    list:
+    index:
       title: Дневникаш
       title_friends: ДоттагӀийн дневникаш
       title_nearby: Уллера декъашхойн дневникаш
@@ -283,7 +283,7 @@ ce:
       use_map_link: Гайта картан тӀехь
       save_button: Ӏалашдан
       marker_text: Билгало язйаран меттиг
-    view:
+    show:
       title: Декъашхочун дневник %{user} | %{title}
       user_title: Декъашхочун дневник %{user}
       leave_a_comment: Йитта коммент
@@ -660,7 +660,7 @@ ce:
   user:
     new:
       continue: Кхин дӀа
-    view:
+    show:
       edits: Нисдарш
       ago: (%{time_in_words_ago} юха)
       user location: Декъашхо волу/йолу меттиг
index 8176a47ce9b7843a1b14397f938aa653331c9847..e3a8fac0c70a1795c2d3fc0236dacfee3b67b9d5 100644 (file)
@@ -270,7 +270,7 @@ cs:
       user: Uživatel
       comment: Komentář
       area: Oblast
-    list:
+    index:
       title: Sady změn
       title_user: Sady změn uživatele %{user}
       title_friend: Sady změn podle mých přátel
@@ -295,7 +295,7 @@ cs:
     new:
       title: Nový záznam do deníku
       publish_button: Publikovat
-    list:
+    index:
       title: Deníky uživatelů
       title_friends: Deníky přátel
       title_nearby: Deníky uživatelů poblíž
@@ -318,7 +318,7 @@ cs:
       use_map_link: použít mapu
       save_button: Uložit
       marker_text: Místo deníkového záznamu
-    view:
+    show:
       title: Deník uživatele %{user} | %{title}
       user_title: Deník uživatele %{user}
       leave_a_comment: Zanechat komentář
@@ -1744,6 +1744,8 @@ cs:
       upload_trace: Nahrát GPS stopu
       trace_uploaded: Váš GPX soubor byl uložen a čeká na zařazení do databáze. Obvykle
         to netrvá víc jak půl hodiny. Až bude zařazen, budete informováni emailem.
+      upload_failed: Promiňte, nahrání GPX se nezdařilo. Na problém byl upozorněn
+        správce. Zkuste to prosím znovu
       traces_waiting:
         few: Na zpracování čekají %{count} vaše stopy. Zvažte, zda by nebylo před
           nahráním dalších lepší počkat, dokud nebudou zpracovány, abyste neblokovali
@@ -1772,6 +1774,8 @@ cs:
       visibility: 'Viditelnost:'
       visibility_help: co tohle znamená?
       visibility_help_url: http://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces?uselang=cs
+    update:
+      updated: Stopa nahrána
     trace_optionals:
       tags: Štítky
     show:
@@ -2082,7 +2086,7 @@ cs:
       body: Je mi líto, ale uživatel %{user} neexistuje. Zkontrolujte překlepy nebo
         jste možná klikli na chybný odkaz.
       deleted: smazán
-    view:
+    show:
       my diary: Můj deníček
       new diary entry: nový záznam do deníčku
       my edits: Moje úpravy
@@ -2261,7 +2265,7 @@ cs:
       not_a_friend: '%{name} není mezi vašimi přáteli.'
     filter:
       not_an_administrator: K provedení této akce musíte být správce.
-    list:
+    index:
       title: Uživatelé
       heading: Uživatelé
       showing:
index e9bb12306728d29de5fb13f532b08e74773e8b21..f064da918b18cec47ae84760abfcfc4cc8434c9b 100644 (file)
@@ -229,7 +229,7 @@ cy:
       user: Defnyddiwr
       comment: Sylw
       area: Maes
-    list:
+    index:
       title: Setiau-newid
       title_user: Set-newid gan %{user}
       title_friend: Setiau-newid eich cyfeillion
@@ -255,7 +255,7 @@ cy:
     new:
       title: Cofnod Dyddiadur Newydd
       publish_button: Cyhoeddi
-    list:
+    index:
       title: Dyddiaduron defnyddwyr
       title_friends: Dyddiaduron ffrindiau
       title_nearby: Dyddiaduron defnyddwyr gerllaw
@@ -278,7 +278,7 @@ cy:
       use_map_link: defnyddiwch y map
       save_button: Arbed
       marker_text: Lleoliad cofnod y dyddiadur
-    view:
+    show:
       title: yddiadur %{user} | %{title}
       user_title: dyddiadur %{user}
       leave_a_comment: Gadael sylw
@@ -1391,7 +1391,7 @@ cy:
     no_such_user:
       title: Dim defnyddiwr o'r fath
       heading: Nid yw'r defnyddiwr %{user} yn bodoli.
-    view:
+    show:
       my diary: Fy Nyddiadur
       new diary entry: cofnod dyddiadur newydd
       my edits: Fy Ngolygiadau
@@ -1510,7 +1510,7 @@ cy:
       button: Peidio bod yn gyfaill
       success: Tynnwyd %{name} o'ch cyfeillion.
       not_a_friend: Nid yw %{name} yn un o'ch cyfeillion.
-    list:
+    index:
       title: Defnyddwyr
       heading: Defnyddwyr
   user_role:
index 4d67c3cb6d7926eee8817e35a7d2d07b9dcbe069..5a52a431ca51083dfeece5b89941e221f74f57a1 100644 (file)
@@ -261,7 +261,7 @@ da:
       user: Bruger
       comment: Kommentar
       area: Område
-    list:
+    index:
       title: Ændringssæt
       title_user: Ændringssæt af %{user}
       title_friend: Ændringssæt af mine venner
@@ -287,7 +287,7 @@ da:
     new:
       title: Nyt blogindlæg
       publish_button: Offentliggør
-    list:
+    index:
       title: Brugerblogs
       title_friends: Venners blogs
       title_nearby: Blogs fra brugere i nærheden
@@ -310,7 +310,7 @@ da:
       use_map_link: brug kort
       save_button: Gem
       marker_text: Placering for blogindlæg
-    view:
+    show:
       title: '%{user}''s blog | %{title}'
       user_title: '%{user}''s blog'
       leave_a_comment: Tilføj en kommentar
@@ -2033,7 +2033,7 @@ da:
       body: Der findes desværre ingen bruger ved navn %{user}. Tjek venligst stavningen,
         ellers kan linket du trykkede på være forkert.
       deleted: slettet
-    view:
+    show:
       my diary: Min blog
       new diary entry: nyt blogindlæg
       my edits: Mine redigeringer
@@ -2212,7 +2212,7 @@ da:
       not_a_friend: '%{name} er ikke en af dine venner.'
     filter:
       not_an_administrator: Du skal være administrator for at gøre dette.
-    list:
+    index:
       title: Brugere
       heading: Brugere
       showing:
index 517fdaea916e64e26bcb0f5892fa6ed57a94e472..f1b4fc90e878d409a708f0ea0c6f1cb2b6952c3d 100644 (file)
@@ -285,7 +285,7 @@ de:
       user: Benutzer
       comment: Kommentar
       area: Bereich
-    list:
+    index:
       title: Änderungssätze
       title_user: Änderungssätze von %{user}
       title_friend: Änderungssätze meiner Freunde
@@ -312,7 +312,7 @@ de:
     new:
       title: Neuer Blog-Eintrag
       publish_button: Veröffentlichen
-    list:
+    index:
       title: Benutzer-Blogs
       title_friends: Blogs deiner Freunde
       title_nearby: Blogs von Nutzern in der Nähe
@@ -335,7 +335,7 @@ de:
       use_map_link: Ort auf Karte auswählen
       save_button: Speichern
       marker_text: Ort des Blogeintrags
-    view:
+    show:
       title: Blog von %{user} | %{title}
       user_title: Blog von %{user}
       leave_a_comment: Schreibe einen Kommentar
@@ -2174,7 +2174,7 @@ de:
       body: Es gibt leider keinen Benutzer mit dem Namen %{user}. Du hast dich möglicherweise
         vertippt oder bist einem ungültigem Link gefolgt.
       deleted: gelöscht
-    view:
+    show:
       my diary: Mein Blog
       new diary entry: Neuer Blogeintrag
       my edits: Meine Änderungen
@@ -2358,7 +2358,7 @@ de:
       not_a_friend: '%{name} ist nicht dein Freund.'
     filter:
       not_an_administrator: Du musst ein Administrator sein um diese Aktion auszuführen.
-    list:
+    index:
       title: Benutzer
       heading: Benutzer
       showing:
index fc9fb3589a1b7712be2169b80fb30226a4a5d50c..e7c0a37bd23cf4ffa442350408440ae95733df97 100644 (file)
@@ -200,7 +200,7 @@ diq:
       user: Karber
       comment: Mışewre
       area: Erz
-    list:
+    index:
       title: Seta vurnayışan
       title_user: Vurriyayışê setê %{user}
       title_friend: Qeydê vurnayışê embazan
@@ -211,7 +211,7 @@ diq:
   diary_entry:
     new:
       publish_button: Vıla ke
-    list:
+    index:
       user_title: '%{user} (Rocek)'
     edit:
       subject: 'Mewzu:'
@@ -221,7 +221,7 @@ diq:
       latitude: 'Verıniye:'
       longitude: 'Derganiye:'
       save_button: Qeyd ke
-    view:
+    show:
       login: Cıkewtış
       save_button: Qeyd ke
     diary_entry:
@@ -912,7 +912,7 @@ diq:
     no_such_user:
       title: Karbero do wuna çıniyo
       heading: '%{user} name dı karber çıniyo'
-    view:
+    show:
       my diary: Rocekê mı
       new diary entry: Roceko newe defi
       my edits: Iştirakê mı
@@ -1004,7 +1004,7 @@ diq:
       button: Xo rê embaz ke
     remove_friend:
       button: Embazan ra vec
-    list:
+    index:
       title: Karberi
       heading: Karberi
       showing:
index 1700a57b161cc8db3785308874dff667aefe39d9..1ed61d2688dc1bce7fd41293ec4c724a1986c510 100644 (file)
@@ -220,7 +220,7 @@ dsb:
       user: Wužywaŕ
       comment: Komentar
       area: Wurězk
-    list:
+    index:
       title: Sajźby změnow
       title_user: Sajźby změnow wót %{user}
       title_friend: Změny twójich pśijaśelow
@@ -237,7 +237,7 @@ dsb:
   diary_entry:
     new:
       title: Nowy zapisk dnjownika
-    list:
+    index:
       title: Dnjowniki wužywarjow
       title_friends: Dnjowniki pśijaśelow
       title_nearby: Dnjowniki wužywarjow w bliskosći
@@ -260,7 +260,7 @@ dsb:
       use_map_link: kórtu wužywaś
       save_button: Składowaś
       marker_text: Městno zapiska dnjownika
-    view:
+    show:
       title: Dnjownik %{user} | %{title}
       user_title: dnjownik wužywarja %{user}
       leave_a_comment: Komentar zawóstajiś
@@ -1677,7 +1677,7 @@ dsb:
       heading: Wužywaŕ %{user} njeeksistěrujo
       body: Bóžko njejo wužywaŕ z mjenim %{user}. Pšosym pśekontrolěruj swój pšawopis,
         abo wótkaz, na kótaryž sy kliknuł, jo njepłaśiwy.
-    view:
+    show:
       my diary: Mój dnjownik
       new diary entry: nowy dnjownikowy zapisk
       my edits: Móje změny
@@ -1847,7 +1847,7 @@ dsb:
       not_a_friend: '%{name} njejo twój pśijaśel.'
     filter:
       not_an_administrator: Musyš administrator byś, aby wuwjadł toś tu akciju.
-    list:
+    index:
       title: Wužywarje
       heading: Wužywarje
       showing:
index 65cefaa0f2b8ecce5a39e92062b93f78889426de..be3a928d7d5b015c24fad4c9726742ed8259cfc9 100644 (file)
@@ -269,7 +269,7 @@ el:
       user: Χρήστης
       comment: Σχόλιο
       area: Περιοχή
-    list:
+    index:
       title: Ομάδες αλλαγών
       title_user: Ομάδες αλλαγών από τον %{user}
       title_friend: Ομάδες αλλαγών από τους φίλους μου
@@ -295,7 +295,7 @@ el:
     new:
       title: Νέα καταχώρηση ημερολογίου
       publish_button: Δημοσίευση
-    list:
+    index:
       title: Ημερολόγια χρηστών
       title_friends: Ημερολόγια φίλων
       title_nearby: Ημερολόγια κοντινών χρηστών
@@ -318,7 +318,7 @@ el:
       use_map_link: χρησιμοποιήστε τον χάρτη
       save_button: Αποθήκευση
       marker_text: Τοποθεσία καταχώρησης ημερολογίου
-    view:
+    show:
       title: το ημερολόγιο του %{user} | %{title}
       user_title: ημερολόγιο του %{user}
       leave_a_comment: Αφήστε ένα σχόλιο
@@ -2150,7 +2150,7 @@ el:
         ορθογραφικά λάθη ή να είναι λάθος ο σύνδεσμος μέσω του οποίου φτάσατε σε αυτήν
         τη σελίδα.
       deleted: διεγράφη
-    view:
+    show:
       my diary: Το Ημερολόγιό Μου
       new diary entry: νέα καταχώρηση ημερολογίου
       my edits: Οι Επεξεργασίες Μου
@@ -2336,7 +2336,7 @@ el:
       not_a_friend: Ο χρήστης %{name} δεν είναι ένας από τους φίλους σας.
     filter:
       not_an_administrator: Πρέπει να είστε διαχειριστής για να το κάνετε αυτό.
-    list:
+    index:
       title: Χρήστες
       heading: Χρήστες
       showing:
index ad640a6cd2b21c8d8fc481502ff21ad258622d1f..aaa9555dbc809e92294c2ebf71d7fd712815ed18 100644 (file)
@@ -252,7 +252,7 @@ en-GB:
       user: User
       comment: Comment
       area: Area
-    list:
+    index:
       title: Changesets
       title_user: Changesets by %{user}
       title_friend: Changesets by your friends
@@ -277,7 +277,7 @@ en-GB:
     new:
       title: New Diary Entry
       publish_button: Publish
-    list:
+    index:
       title: Users' diaries
       title_friends: Friends' diaries
       title_nearby: Nearby Users' diaries
@@ -300,7 +300,7 @@ en-GB:
       use_map_link: use map
       save_button: Save
       marker_text: Diary entry location
-    view:
+    show:
       title: '%{user}''s diary | %{title}'
       user_title: '%{user}''s diary'
       leave_a_comment: Leave a comment
@@ -1909,7 +1909,7 @@ en-GB:
       body: Sorry, there is no user with the name %{user}. Please check your spelling,
         or maybe the link you clicked is wrong.
       deleted: deleted
-    view:
+    show:
       my diary: My Diary
       new diary entry: new diary entry
       my edits: My Edits
@@ -2083,7 +2083,7 @@ en-GB:
       not_a_friend: '%{name} is not one of your friends.'
     filter:
       not_an_administrator: You need to be an administrator to perform that action.
-    list:
+    index:
       title: Users
       heading: Users
       showing:
index 3c1fca3611bc9fcd0db164b6842d495df8813656..5c96e819135fcb76082ee5bc0e9bd46bd8095886 100644 (file)
@@ -228,7 +228,7 @@ en:
       user: "User"
       comment: "Comment"
       area: "Area"
-    list:
+    index:
       title: "Changesets"
       title_user: "Changesets by %{user}"
       title_friend: "Changesets by my friends"
@@ -253,7 +253,7 @@ en:
     new:
       title: New Diary Entry
       publish_button: "Publish"
-    list:
+    index:
       title: "Users' diaries"
       title_friends: "Friends' diaries"
       title_nearby: "Nearby Users' diaries"
@@ -276,7 +276,7 @@ en:
       use_map_link: "use map"
       save_button: "Save"
       marker_text: Diary entry location
-    view:
+    show:
       title: "%{user}'s diary | %{title}"
       user_title: "%{user}'s diary"
       leave_a_comment: "Leave a comment"
@@ -1055,9 +1055,8 @@ 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"
-    partners_html: "Hosting is supported by %{ucl}, %{bytemark}, %{ic}, and other %{partners}."
+    hosting_partners_html: "Hosting is supported by %{ucl}, %{bytemark}, and other %{partners}."
     partners_ucl: "UCL"
-    partners_ic: "Imperial College London"
     partners_bytemark: "Bytemark Hosting"
     partners_partners: "partners"
     osm_offline: "The OpenStreetMap database is currently offline while essential database maintenance work is carried out."
@@ -2006,7 +2005,7 @@ en:
       heading: "The user %{user} does not exist"
       body: "Sorry, there is no user with the name %{user}. Please check your spelling, or maybe the link you clicked is wrong."
       deleted: "deleted"
-    view:
+    show:
       my diary: My Diary
       new diary entry: new diary entry
       my edits: My Edits
@@ -2168,7 +2167,7 @@ en:
       not_a_friend: "%{name} is not one of your friends."
     filter:
       not_an_administrator: "You need to be an administrator to perform that action."
-    list:
+    index:
       title: Users
       heading: Users
       showing:
index 1d78b0e35023adc233fec608a6c1eee7a2ad4290..bb40fb3c7d0ea412199f14bd23587648d7ca2c93 100644 (file)
@@ -246,7 +246,7 @@ eo:
       user: Uzanto
       comment: Komenti
       area: Areo
-    list:
+    index:
       title: Ŝanĝaroj
       title_user: Ŝanĝaroj de %{user}
       title_friend: Ŝanĝaroj de miaj amikoj
@@ -271,7 +271,7 @@ eo:
     new:
       title: Nova taglibra afiŝo
       publish_button: Publiki
-    list:
+    index:
       title: Taglibroj de uzantoj
       title_friends: Taglibroj de amikoj
       title_nearby: Taglibroj de proksimaj uzantoj
@@ -294,7 +294,7 @@ eo:
       use_map_link: uzi mapon
       save_button: Konservi
       marker_text: Kie krei la afiŝon
-    view:
+    show:
       title: Taglibro de %{user} | %{title}
       user_title: Taglibro de %{user}
       leave_a_comment: Komenti
@@ -2054,7 +2054,7 @@ eo:
       body: Bedaŭrinde, ne ekzistas uzanto kun la nomo %{user}. Bonvolu kontroli pri
         liter-eraroj, aŭ eble vi alklakis mis-ligilon.
       deleted: forigita
-    view:
+    show:
       my diary: Mia taglibro
       new diary entry: nova taglibra afiŝo
       my edits: Miaj redaktoj
@@ -2229,7 +2229,7 @@ eo:
       not_a_friend: '%{name} ne estas amiko via.'
     filter:
       not_an_administrator: Vi devas esti administranto por fari tion.
-    list:
+    index:
       title: Uzantoj
       heading: Uzantoj
       showing:
index b035bd04f0f016fba63add8019524d1c01c607d0..40ce909ee19fbd573bca9045967c8763704a175b 100644 (file)
@@ -281,7 +281,7 @@ es:
       user: Usuario
       comment: Comentario
       area: Área
-    list:
+    index:
       title: Conjuntos de cambios
       title_user: Conjunto de cambios por %{user}
       title_friend: Conjuntos de cambios realizados por mis amigos
@@ -308,7 +308,7 @@ es:
     new:
       title: Nueva entrada en el diario
       publish_button: Publicar
-    list:
+    index:
       title: Diarios de usuarios
       title_friends: Diarios de amigos
       title_nearby: Diarios de usuarios cercanos
@@ -331,7 +331,7 @@ es:
       use_map_link: usar mapa
       save_button: Guardar
       marker_text: Lugar de la entrada del diario
-    view:
+    show:
       title: Diario de %{user} | %{title}
       user_title: Diario de %{user}
       leave_a_comment: Dejar un comentario
@@ -1793,6 +1793,8 @@ es:
       trace_uploaded: Tu archivo GPX ha sido subido y está pendiente de inserción
         en la base de datos. Esto normalmente ocurre en la próxima media hora, y se
         te enviará un correo electrónico al terminar.
+      upload_failed: Lo sentimos, no se ha podido subir el GPX. Un administrador ha
+        sido alertado del error. Por favor, inténtalo de nuevo.
       traces_waiting:
         one: Tienes %{count} traza esperando por subir. Por favor, considera esperar
           a que esta termine antes de subir más, para no bloquear la cola a otros
@@ -1817,6 +1819,8 @@ es:
       save_button: Guardar cambios
       visibility: 'Visibilidad:'
       visibility_help: ¿Qué significa esto?
+    update:
+      updated: Traza actualizada
     trace_optionals:
       tags: Etiquetas
     show:
@@ -2136,7 +2140,7 @@ es:
       body: Lo sentimos, no existe ningún usuario con el nombre %{user}. Por favor,
         verifica las letras, o tal vez el vínculo en el que has hecho click está equivocado.
       deleted: borrado
-    view:
+    show:
       my diary: Mi diario
       new diary entry: nueva entrada de diario
       my edits: Mis ediciones
@@ -2318,7 +2322,7 @@ es:
       not_a_friend: '%{name} no es uno de tus amigos.'
     filter:
       not_an_administrator: Necesitas ser administrador para ejecutar esta acción.
-    list:
+    index:
       title: Usuarios
       heading: Usuarios
       showing:
index 40255e08589e070f71841cc1401700fbdaaac39e..2fcf1a5ecbd3ec460eea323673174a9a891132ad 100644 (file)
@@ -238,7 +238,7 @@ et:
       user: Kasutaja
       comment: Kommentaar
       area: Ala
-    list:
+    index:
       title: Muudatuskogumid
       title_user: Kasutaja %{user} muudatuskogumid
       title_friend: Sõprade muudatuskogumid
@@ -263,7 +263,7 @@ et:
     new:
       title: Uus päeviku sissekanne
       publish_button: Avalda
-    list:
+    index:
       title: Kasutajate päevikud
       title_friends: Sõprade päevikud
       title_nearby: Lähedalasuvate kasutajate päevikud
@@ -286,7 +286,7 @@ et:
       use_map_link: kasuta kaarti
       save_button: Salvesta
       marker_text: Päeviku sissekande tegemise asukoht
-    view:
+    show:
       title: Kasutaja %{user} päevik | %{title}
       user_title: Kasutaja %{user} päevik
       leave_a_comment: Kommenteeri
@@ -1767,7 +1767,7 @@ et:
       heading: Kasutajat %{user}  pole olemas
       body: Vabandust, kuid kasutaja nimega %{user} puudub. Palun kontrolli kirjapilti.
         Võimalik, et link, millele klõpsasid, on vigane.
-    view:
+    show:
       my diary: Minu päevik
       new diary entry: uus päevikusissekanne
       my edits: Minu muudatused
@@ -1942,7 +1942,7 @@ et:
       not_a_friend: '%{name} ei ole üks sinu sõpradest.'
     filter:
       not_an_administrator: Selle tegevuse sooritamiseks pead sa olema administraator.
-    list:
+    index:
       title: Kasutajad
       heading: Kasutajad
       showing:
index b4de4bf348870096730bd027987756119b000f54..1aeca3c90f0f7f575e2a8c590805477e64c9c467 100644 (file)
@@ -8,6 +8,7 @@
 # Author: EukeneFL
 # Author: Gorkaazk
 # Author: Iñaki LL
+# Author: Maite
 # Author: Mikel Ibaiba
 # Author: MikelEH
 # Author: PerroVerd
@@ -251,7 +252,7 @@ eu:
       user: Erabiltzailea
       comment: Iruzkina
       area: Eremua
-    list:
+    index:
       title: Aldaketak
       title_user: '%{user}k egindako aldaketak'
       title_friend: Nire lagunek egindako aldaketak
@@ -277,7 +278,7 @@ eu:
     new:
       title: Eguneroko Sarrera Berria
       publish_button: Argitaratu
-    list:
+    index:
       title: Erabiltzaileen egunerokoak
       title_friends: Lagunen egunerokoak
       title_nearby: Hurbileko erabiltzaileen egunerokoak
@@ -300,7 +301,7 @@ eu:
       use_map_link: erabili mapa
       save_button: Gorde
       marker_text: Eguneroko sarrera helbidea
-    view:
+    show:
       title: '%{user}(r)en egunerokoa | %{title}'
       user_title: '%{user}(r)en egunerokoa'
       leave_a_comment: Iruzkin bat utzi
@@ -1748,6 +1749,8 @@ eu:
       upload_trace: GPS Aztarna igo
       trace_uploaded: Zure GPX fitxategia kargatu da eta datu basean sartzeko zain
         dago. Ordu erdi barru egongo da eta posta elektronikoz bidaliko zaizu amaitzean.
+      upload_failed: Barkatu, GPX-aren kargak huts egin du. Administratzaile bat akatsaz
+        ohartarazi da. Mesedez berriz saiatu
       traces_waiting:
         one: '%{count} aztarna daukazu kargatzeko zain. Kontutan hartu gehiago igotzeko
           agindua ez ematea zain zauden bitartean, beste erabiltzaile batzuei ilarak
@@ -1772,6 +1775,8 @@ eu:
       save_button: Aldaketak gorde
       visibility: Ikusgarritasuna;
       visibility_help: Zer esan nahi du honek?
+    update:
+      updated: Bilaketa eguneratua
     trace_optionals:
       tags: Etiketak
     show:
@@ -2087,7 +2092,7 @@ eu:
       body: Barkatu, ez dago %{user} izenarekin erabiltzailerik. Egiaztatu ortografia,
         edo agian egin duzun esteka gaizki dago.
       deleted: ezabatua
-    view:
+    show:
       my diary: Nire egunerokoa
       new diary entry: eguneroko sarrera berria
       my edits: Nire aldaketak
@@ -2264,7 +2269,7 @@ eu:
       not_a_friend: '%{name} ez da zure laguna.'
     filter:
       not_an_administrator: Ekintza hori burutzeko administratzaile izan behar duzu.
-    list:
+    index:
       title: Erabiltzaileak
       heading: Erabiltzaileak
       showing:
index 34e253736fbbb42c3e69ba504bd9dbe4d474bc0f..0974cc04555954119f469af92093fbcf4cdbcb98 100644 (file)
@@ -68,7 +68,7 @@ fa:
       tracetag: برچسب رد
       user: کاربر
       user_preference: ترجیحات کاربر
-      user_token: Ø±Ù\85زÛ\8cÙ\86Ù\87Ù\94 کاربر
+      user_token: ØªÙ\88Ú©Ù\86 کاربر
       way: راه
       way_node: گره راه
       way_tag: برچسب راه
@@ -228,9 +228,9 @@ fa:
       open_title: 'یادداشت حل‌نشده #%{note_name}'
       closed_title: 'یادداشت حل‌شده #%{note_name}'
       hidden_title: 'یادداشت پنهان #%{note_name}'
-      open_by: ایجاد شده توسط %{user} <abbr title='%{exact_time}'>%{when} قبل </abbr>
-      open_by_anonymous: ایجاد شده توسط ناشناس <abbr title='%{exact_time}'>%{when}
-        قبل</abbr>
+      open_by: <abbr title='%{exact_time}'>%{when} قبل </abbr> %{user} ایجادش کرد
+      open_by_anonymous: <abbr title='%{exact_time}'>%{when} قبل</abbr> فرد ناشناس
+        ایجادش کرد.
       commented_by: نظر از %{user}،‏ <abbr title='%{exact_time}'>%{when} قبل</abbr>
       commented_by_anonymous: نظر از ناشناس، <abbr title='%{exact_time}'>%{when} قبل</abbr>
       closed_by: '%{user} آن را حل کرد، <abbr title=''%{exact_time}''>%{when} قبل</abbr>'
@@ -262,7 +262,7 @@ fa:
       user: کاربر
       comment: نظر
       area: منطقه
-    list:
+    index:
       title: تغییرات انجام شده
       title_user: تغییرات انجام شده توسط %{user}
       title_friend: تغییرات انجام شده توسط دوستان من
@@ -288,7 +288,7 @@ fa:
     new:
       title: روزنوشت جدید
       publish_button: انتشار
-    list:
+    index:
       title: روزنوشت‌های کاربران
       title_friends: روزنوشت‌های دوستان
       title_nearby: روزنوشت‌های کاربران نزدیک
@@ -311,7 +311,7 @@ fa:
       use_map_link: استفاده از نقشه
       save_button: ذخیره
       marker_text: مکان روزنوشت
-    view:
+    show:
       title: روزنوشت %{user} | %{title}
       user_title: روزنوشت‌های %{user}
       leave_a_comment: ارسال نظر
@@ -339,6 +339,7 @@ fa:
       comment_from: نظر از %{link_user} در %{comment_created_at}
       hide_link: پنهان کردن این نظر
       confirm: تأیید
+      report: گزارش این نظر
     location:
       location: 'مکان:'
       view: نمایش
@@ -919,12 +920,18 @@ fa:
     index:
       reported_user: کاربر گزارش‌شده
       reports: گزارش‌ها
+      last_updated_time_html: <abbr title='%{title}'>%{time} پیش</abbr>
+      last_updated_time_user_html: <abbr title='%{title}'>%{time} پیش</abbr> توسط
+        %{user}
       link_to_reports: نمایش گزارش‌ها
       reports_count:
         one: 1 گزارش
         other: '%{count} گزارش'
+      reported_item: گزارش‌ها
     update:
       new_report: گزارشتان با موفقیت ثبت شد
+      successful_update: گزارشتان با موفقیت به‌روز شد
+      provide_details: لطفاً جزئیات لازم را ارائه دهید
     show:
       reports:
         zero: گزارشی نیست
@@ -934,6 +941,9 @@ fa:
       new_reports: گزارش‌های تازه
     reports:
       reported_by_html: '%{user} آن را به‌عنوان %{category} گزارش کرد'
+    helper:
+      reportable_title:
+        note: یادداشت %{note_id}
   reports:
     new:
       title_html: گزارش %{link}
@@ -946,6 +956,9 @@ fa:
         diary_comment:
           spam_label: این نظر (بر روزنوشت) هرزنامه است/دارد
           threat_label: این نظر (بر روزنوشت) تهدیدآمیز است
+        note:
+          spam_label: این یادداشت هرزنامه است
+          abusive_label: این یادداشت زشت است
     create:
       successful_report: گزارشتان با موفقیت ثبت شد
   layouts:
@@ -1071,23 +1084,23 @@ fa:
       anonymous: کاربر ناشناس
       greeting: ‎سلام ،
       commented:
-        subject_own: '[OpenStreetMap] %{commenter} روی یکی از یادداشت‌هایتان نظر داده
-          است'
+        subject_own: '[OpenStreetMap] %{commenter} روی یکی از یادداشت‌های شما نظر
+          Ø¯Ø§Ø¯Ù\87 Ø§Ø³Øª'
         subject_other: '[OpenStreetMap] %{commenter} روی یادداشت موردعلاقه‌تان نظر
           داده'
-        your_note: '%{commenter} روی یکی از یادداشت‌های شما روی نقشه نزدیک %{place}
-          نظر گذاشت.'
+        your_note: '%{commenter} روی یکی از یادداشت‌های شما روی نقشه نزدیک به %{place}
+          نظر گذاشته.'
         commented_note: '%{commenter} روی یک از یادداشت‌های نقشه که شما بر آن نظر
-          داده‌اید نظر داد. این یادداشت نزدیک %{place} است.'
+          داده‌اید نظر داد. این یادداشت نزدیک به %{place} است.'
       closed:
         subject_own: '[OpenStreetMap] %{commenter} یکی از یادداشت‌های شما را حل کرده
           است'
-        subject_other: '[OpenStreetMap] %{commenter} یکی از یادداشت‌های موردعلاقه
+        subject_other: '[OpenStreetMap] %{commenter} یکی از یادداشت‌های موردعلاقهٔ
           شما را حل کرد'
         your_note: '%{commenter} یکی از یادداشت‌های شما بر نقشه در نزدیکی %{place}
           را حل کرد.'
         commented_note: '%{commenter} یکی از یادداشت‌های نقشه که شما بر آن نظر گذاشته‌اید
-          را حل کرد. یادداشت نزدیک %{place} است.'
+          را حل کرد. یادداشت نزدیک به %{place} است.'
       reopened:
         subject_own: '[OpenStreetMap] %{commenter} یکی از یادداشت‌های شما را دوباره
           فعال کرد'
@@ -1096,7 +1109,7 @@ fa:
         your_note: '%{commenter} یکی از یادداشت‌های شما بر نقشه در نزدیکی %{place}
           را دوباره فعال کرد.'
         commented_note: '%{commenter} یکی از یادداشت‌های نقشه را که شما بر آن نظر
-          گذاشته‌اید دوباره فعال کرد. یادداشت نزدیک %{place} است.'
+          گذاشته‌اید دوباره فعال کرد. یادداشت نزدیک به %{place} است.'
       details: اطلاعات بیشتر درباره این یادداشت را در %{url} ببینید.
     changeset_comment_notification:
       hi: سلام %{to_user}،
@@ -1588,7 +1601,7 @@ fa:
       add_a_note:
         title: زمانی برای ویرایش ندارید؟ یادداشت اضافه کنید!
         paragraph_1_html: "اگر میخواهید فقط چیز کوچکی را درست کنید و زمانی برای ثبت
-          Ù\86اÙ\85 Ù\88 Û\8cادگÛ\8cرÛ\8c Ù\88Û\8cراÛ\8cØ´ Ù\86دارÛ\8cدØ\8c Ø¨Ù\87â\80\8cراحتی \nیک یادداشت بنویسید."
+          Ù\86اÙ\85 Ù\88 Û\8cادگÛ\8cرÛ\8c Ù\88Û\8cراÛ\8cØ´ Ù\86دارÛ\8cدØ\8c Ø¨Ù\87â\80\8cآساÙ\86ی \nیک یادداشت بنویسید."
         paragraph_2_html: |-
           فقط بروید به <a href='%{map_url}'>نقشه</a> و روی آیکون یادداشت کلیک کنید:
           <span class='icon note'></span>. اینجوری یک علامت گذار به نقشه اضافه می‌شود، که می‌توانید با کشیدن جابجایش کنید. پیامتان را اضافه کنید، بعد روی ذخیره کلیک کنید، و سایر نقشه کشان بررسی خواهند کرد.
@@ -1716,17 +1729,18 @@ fa:
     require_moderator:
       not_a_moderator: برای انجام آن عمل نیاز هست مدیر باشید.
     setup_user_auth:
-      blocked: دسترسی شما به API مسدود شده. برای یافتن اطلاعات بیشتر لطفاً وارد رابط
-        کاربری وب شوید.
+      blocked: دسترسی شما به API مسدود شده. برای یافتن اطلاعات بیشتر لطفاً به رابط
+        کاربری وب وارد شوید (log in).
       need_to_see_terms: دسترسی شما به API بطور موقت معلق شده‌است. برای مشاهدهٔ شرایط
         شرکت‌کننده لطفاً وارد رابط کاربری وب شوید. نیاز به موافقت شما نیست، ولی باید
         حتماً آن‌ٰها را ببینید.
   oauth:
     authorize:
-      title: دسترسی اجازه دادن به حسابتان
-      request_access: برنامهٔ %{app_name}%{app_name} درخواست دسترسی به حسابتان %{user}
-        را دارد. لطفاً بررسی کنید که می‌خواهید برنامه به قابلیت‌های زیر دسترسی داشته
-        باشد. ممکن است چند تا یا فقط تعدادی را که دوست دارید انتخاب کنید.
+      title: اجازهٔ دسترسی به حسابتان را صادر کنید
+      request_access: برنامهٔ %{app_name}%{app_name} درخواست دسترسی به حساب کاربری
+        شما را دارد (%{user}). لطفاً بررسی کنید که آیا مایلید برنامه به قابلیت‌های
+        زیر دسترسی داشته باشد. می‌توانید همه یا فقط مواردی را که دوست دارید انتخاب
+        کنید.
       allow_to: 'به برنامه کارخواه اجازه بده که:'
       allow_read_prefs: خواندن ترجیحات کاربری شما.
       allow_write_prefs: تغییر ترجیحات کاربری شما.
@@ -1735,17 +1749,17 @@ fa:
       allow_read_gpx: خواندن ردهای GPS شخصی شما.
       allow_write_gpx: بارگذاری ردهای GPS
       allow_write_notes: اصلاح یادداشت‌ها.
-      grant_access: Ø§Ù\85کاÙ\86 Ø¯Ø³ØªØ±Ø³Û\8c
+      grant_access: Ø¯Ø³ØªØ±Ø³Û\8c Ù\85Û\8câ\80\8cدÙ\87Ù\85
     authorize_success:
-      title: Ø¯Ø±Ø®Ù\88است Ø§Ø¬Ø§Ø²Ù\87 Ø¯Ø§Ø¯Ù\86 Ù\85جاز Ø§Ø³Øª
+      title: Ø¯Ø±Ø®Ù\88است ØµØ¯Ù\88ر Ù\85جÙ\88ز Ø§Ù\86جاÙ\85 Ø´Ø¯
       allowed: شما به برنامه ی %{app_name} اجازه ی دسترسی به حسابتان را دادید.
       verification: کد تأیید %{code} است.
     authorize_failure:
-      title: Ø¯Ø±Ø®Ù\88است Ø§Ø¬Ø§Ø²Ù\87 Ø¯Ø§Ø¯Ù\86 انجام نشد
+      title: Ø¯Ø±Ø®Ù\88است ØµØ¯Ù\88ر Ù\85جÙ\88ز انجام نشد
       denied: شما به برنامه ی %{app_name} اجازه ی دسترسی به حسابتان را ندادید.
-      invalid: نشانه مجوز معتبر نیست.
+      invalid: توکن مجوز معتبر نیست.
     revoke:
-      flash: Ø´Ù\85ا Ù\86شاÙ\86Ù\87 Ø±Ø§ Ø¨Ø±Ø§Û\8c %{application} باطل کردید
+      flash: ØªÙ\88Ú©Ù\86 Ù\85ربÙ\88Ø· %{application} Ø±Ø§ باطل کردید
   oauth_clients:
     new:
       title: ثبت‌نام یک برنامهٔ تازه
@@ -1757,7 +1771,7 @@ fa:
       title: جزئیات OAuth برای %{app_name}
       key: 'کلید مصرف کننده:'
       secret: 'کد مخفی مصرف کننده:'
-      url: 'آدرس درخواست نشانه:'
+      url: 'نشانی توکنِ درخواست:'
       access_url: 'آدرس دسترسی نشانه:'
       authorize_url: 'آدرس authorise:'
       support_notice: ما امضا های HMAC-SHA1 (پیشنهاد شده) و RSA-SHA1 را پشتیبانی می
@@ -1776,14 +1790,14 @@ fa:
     index:
       title: جزئیات OAuth من
       my_tokens: نرم‌افزارهای مجاز من
-      list_tokens: 'مجوزهای زیر با نام شما برای برنامه‌های زیر صادر شده است:'
+      list_tokens: 'توکن‌های زیر با نام شما برای برنامه‌های زیر صادر شده است:'
       application: نام برنامه
       issued_at: تاریخ صدور
-      revoke: باطل کردن!
+      revoke: باطل شود!
       my_apps: برنامه‌های کارخواه (client) من
-      no_apps: آیا برنامه‌ای دارید که می‌خواهید به‌وسیله استاندارد %{oauth} ثبتش کنید
-        تا با ما از آن استفاده کنید؟ قبل از اینکه برنامه‌تان بتواند درخواست‌های OAuth
-        را انجام دهد باید برنامه تحت وب خود را ثبت نام کنید.
+      no_apps: آیا برنامه‌ای دارید که می‌خواهید به‌وسیلهٔ استاندارد %{oauth} ثبتش
+        کنید تا با ما از آن استفاده کنید؟ قبل از اینکه برنامه‌تان بتواند درخواست‌های
+        OAuth را انجام دهد باید آن را ثبت کنید.
       registered_apps: 'شما برنامه‌های کارخواه (client) زیر را ثبت کرده‌اید:'
       register_new: برنامه‌تان را ثبت کنید
     form:
@@ -1884,7 +1898,7 @@ fa:
       confirm password: 'تأیید گذرواژه:'
       reset: تنظیم مجدد کلمه عبور
       flash changed: کلمه عبور شما تغییر کرده است.
-      flash token bad: نشانه را نیافتید؟ آدرس را برسی کنید شاید یافتید.
+      flash token bad: توکن را نیافتید؟ نشانی را بررسی کنید شاید یافتید.
     new:
       title: ثبت نام
       no_auto_account_create: متأسفانه در حال حاضر برای ما امکان ساخت خودکار حساب
@@ -1895,8 +1909,8 @@ fa:
       about:
         header: رایگان و قابل ویرایش
         html: |-
-          <p>بر Ø®Ù\84اÙ\81 Ø³Ø§Û\8cر Ù\86Ù\82Ø´Ù\87â\80\8cÙ\87اØ\8c OpenStreetMap Ú©Ø§Ù\85Ù\84اÙ\8b ØªÙ\88سط Ø§Ù\81رادÛ\8c Ù\85Ø«Ù\84 Ø´Ù\85ا Ø³Ø§Ø®ØªÙ\87â\80\8cشدÙ\87 Ù\88 Ø¨Ø±Ø§Û\8c ØªØ¹Ù\85Û\8cرØ\8c Ø¨Ù\87â\80\8cرÙ\88زرساÙ\86Û\8cØ\8c Ø¯Ø±Û\8cاÙ\81ت Ù\88 Ø§Ø³ØªÙ\81ادÙ\87 Ø¨Ø±Ø§Û\8c Ù\87ر Ú©Ø³Û\8c آزاد است.</p>
-          <p>برای شروع کمک ثبت نام کنید. برای تأیید حساب‌تان ایمیلی می‌فرستیم.</p>
+          <p>بر Ø®Ù\84اÙ\81 Ø³Ø§Û\8cر Ù\86Ù\82Ø´Ù\87â\80\8cÙ\87اØ\8c OpenStreetMap Ú©Ø§Ù\85Ù\84اÙ\8b ØªÙ\88سط Ø§Ù\81رادÛ\8c Ù\85Ø«Ù\84 Ø´Ù\85ا Ø³Ø§Ø®ØªÙ\87â\80\8cشدÙ\87 Ù\88 Ø§ØµÙ\84احØ\8c Ø¨Ù\87â\80\8cرÙ\88زرساÙ\86Û\8cØ\8c Ø¨Ø§Ø±Ú¯Û\8cرÛ\8c Ù\88 Ø§Ø³ØªÙ\81ادÙ\87Ù\94 Ø¢Ù\86 Ø¨Ø±Ø§Û\8c Ù\87Ù\85Ù\87 آزاد است.</p>
+          <p>برای شروع همکاری ثبت نام کنید. برای تأیید حساب ایمیلی برای شما می‌فرستیم.</p>
       license_agreement: وقتی ایمیلتان را تایید کردید نیاز است که با <a href="https://www.osmfoundation.org/wiki/License/Contributor_Terms">شرایط
         همکاری</a> موافقت کنید.
       email address: 'آدرس ایمیل:'
@@ -1943,7 +1957,7 @@ fa:
       body: با عرض پوزش، هیچ کاربری با نام %{user} وجود ندارد. لطفاً نحوه نوشتن تان
         را بررسی کنید، یا شاید پیوندی که کلیک کردید اشتباه است.
       deleted: حذف شده
-    view:
+    show:
       my diary: روزنوشت من
       new diary entry: روزنوشت تازه
       my edits: ویرایش های من
@@ -1954,7 +1968,7 @@ fa:
       my settings: تنظیمات من
       my comments: نظرات من
       oauth settings: تنظیمات oauth
-      blocks on me: بلوک های بر من
+      blocks on me: مسدودی‌های من
       blocks by me: بوک های توسط من
       send message: ارسال پیام
       diary: روزنوشت
@@ -1979,9 +1993,10 @@ fa:
       if set location: مکان خانه‌تان را در صفحهٔ %{settings_link} تنظیم کنید تا کاربران
         نزدیکتان را ببینید.
       settings_link_text: تنظیمات
+      my friends: دوستان من
       no friends: شما هنوز هیچ دوستی اضافه نکرده‌اید
-      km away: '%{count} کیلومتر فاصله'
-      m away: '%{count} متر فاصله'
+      km away: ‏%{count} کیلومتر فاصله
+      m away: ‏%{count} متر فاصله
       nearby users: دیگر کاربران نزدیک
       no nearby users: در این حوالی هیچ کاربری  نقشه  ترسیم نکرده است
       role:
@@ -1993,10 +2008,10 @@ fa:
         revoke:
           administrator: لغو دسترسی سرپرست
           moderator: لغو دسترسی مدیر
-      block_history: بلوک شده های فعال
-      moderator_history: بلوک های گرفته شده
+      block_history: مسدودی‌های فعال
+      moderator_history: مسدودکردن‌ها
       comments: نظرات
-      create_block: Ø¨Ù\84Ù\88Ú© Ú©Ø±Ø¯Ù\86 Ø§Û\8cÙ\86 Ú©Ø§Ø±Ø¨Ø±
+      create_block: Ø§Û\8cÙ\86 Ú©Ø§Ø±Ø¨Ø± Ù\85سدÙ\88د Ø´Ù\88د
       activate_user: فعال کردن این کاربر
       deactivate_user: غیر فعال کردن این کاربر
       confirm_user: تأیید این کاربر
@@ -2099,7 +2114,7 @@ fa:
         دهید.
       button: تأیید
       success: تغییر ایمیل شما تأیید شد!
-      failure: یک آدرس ایمیل با این نشانه قبلاً تأیید شده است.
+      failure: یک آدرس ایمیل با این توکن قبلاً تأیید شده است.
       unknown_token: کد تأیید منقضی شده یا وجود ندارد.
     set_home:
       flash success: موقعیت خانه با موفقیت ذخیره شد
@@ -2118,7 +2133,7 @@ fa:
       not_a_friend: '%{name} یکی از دوستان شما نیست.'
     filter:
       not_an_administrator: برای انجام آن عملیات نیاز هست که سرپرست باشید
-    list:
+    index:
       title: کاربران
       heading: کاربران
       showing:
@@ -2178,103 +2193,102 @@ fa:
         و نقش اطمینان حاصل نمایید.
   user_blocks:
     model:
-      non_moderator_update: برای بروزرسانی یا ایجاد بلوک باید یک مدیر بود.
-      non_moderator_revoke: برای لغو یک بلوک باید مدیر بود.
+      non_moderator_update: برای به‌روزرسانی یا ایجاد مسدودی باید مدیر بود.
+      non_moderator_revoke: برای لغو یک مسدودی باید مدیر بود.
     not_found:
-      sorry: پوزش، بلوک کاربر با شناسه %{id} یافت نمی شود.
+      sorry: پوزش، مسدودی کاربر با شناسه %{id} یافت نمی‌شود.
       back: بازگشت به فهرست
     new:
-      title: ایجاد بلوک در %{name}
-      heading: ایجاد بلوک در %{name}
-      reason: دلیل اینکه چرا %{name} بلوک شده است. لطفاً آرام باشید و تا جایی که ممکن
-        است معقول و منطقی باشید، تا جایی که میتوانید دربارهٔ وضعیت اطلاع دهید، این
-        را به خاطر داشته باشید که این پیام به‌صورت عمومی پدیدار است. به یاد داشته
-        باشید همهٔ کاربران اصطلاحات خاص انجمن را نمی‌فهمند، پس لطفاً سعی کنید از شرایط
-        تازه‌واردان استفاده کنید.
-      period: چه مدت، الان شروع شود، کاربر از API بلوک می‌شود برای.
-      submit: ایجاد بلوک
+      title: در حال مسدودکردن %{name}
+      heading: مسدودکردن %{name}
+      reason: |-
+        دلیل مسدودشدن کاربری %{name}. لطفاً خونسرد و منطقی باشید و هرچه می‌توانید به‌شکل جزئی‌تر اوضاع را شرح دهید و همچنین به یاد داشته باشید که پیام شما به‌طور عمومی قابل مشاهده است.
+        در نظر داشته باشید که همهٔ کاربران اصطلاحات تخصصی انجمن را نمی‌فهمند، لطفاً سعی کنید واژه‌هایی که استفاده می‌کنید غیرتخصصی باشد.
+      period: مدت‌زمان مسدودی کاربر از API (شروع از حالا).
+      submit: ایجاد مسدودی
       tried_contacting: من با کاربر تماس گرفته و درخواست کردم توقف کند.
       tried_waiting: من مقدار مناسبی زمان را به کاربر دادم تا به این ارتباط پاسخ دهد.
-      needs_view: کاربر قبل از پاک شدن این بلوک نیاز به وارد شدن دارد
-      back: مشاهده تمام بلوک ها
+      needs_view: برای پاک‌شدن این مسدودی کاربر باید وارد حسابش شود.
+      back: دیدن تمام مسدودی‌ها
     edit:
-      title: ویرایش بلوک در %{name}
-      heading: ویرایش بلوک در %{name}
-      reason: دلیل اینکه چرا %{name} بلوک شده است. لطفاً آرام باشید و تا جایی که ممکن
-        است معقول و منطقی باشید، تا جایی که می‌توانید دربارهٔ وضعیت اطلاع دهید. به
-        یاد داشته باشید همهٔ کاربران اصطلاحات خاص انجمن را نمی‌فهمند، پس لطفاً سعی
-        کنید از شرایط تازه‌واردان استفاده کنید.
-      period: چه مدت، الان شروع شود، کاربر از API بلوک می‌شود برای.
-      submit: به روز رسانی بلوک
-      show: مشاهده این بلوک
-      back: مشاهده تمام بلوک ها
-      needs_view: چرا قبل از پاک کردن این بلوک کاربر نیاز به وارد شدن دارد؟
-    filter:
-      block_expired: بلوک قبلا منقضی شده و قابل ویرایش نیست.
-      block_period: دوره ی بلوک کردن باید یکی از مقدار های قابل انتخاب در لیست بازشو
+      title: ویرایش مسدودی کاربر %{name}
+      heading: ویرایش مسدودی %{name}
+      reason: دلیل مسدودشدن کاربری %{name}. لطفاً خونسرد و منطقی باشید و هرچه می‌توانید
+        به‌شکل جزئی‌تر اوضاع را شرح دهید. در نظر داشته باشید که همهٔ کاربران اصطلاحات
+        تخصصی انجمن را نمی‌فهمند، لطفاً سعی کنید واژه‌هایی که استفاده می‌کنید غیرتخصصی
         باشد.
+      period: مدت‌زمان مسدودی کاربر از API (شروع از حالا).
+      submit: به‌روزرسانی مسدودی
+      show: مشاهده این مسدودی
+      back: دیدن تمام مسدودی‌ها
+      needs_view: آیا قبل از پاک‌شدن این مسدودی، کاربر باید وارد حساب کاربری شود؟
+    filter:
+      block_expired: مسدودی قبلا منقضی شده و قابل ویرایش نیست.
+      block_period: دوره مسدودی باید یکی از مقدارهای قابل انتخاب در لیست بازشو باشد.
     create:
-      try_contacting: لطفاً قبل از بلوک کردن با کاربر تماس بگیرید و به آنها زمان مناسب
-        Ø¯Ù\87Û\8cد ØªØ§ Ù¾Ø§Ø³Ø® Ø¯Ù\87Ù\86د.
-      try_waiting: لطفاً به کاربر زمان کافی دهید تا قبل از بسته‌شدن بتواند پاسخگو
+      try_contacting: لطفاً قبل از مسدودکردن کاربر با وی تماس بگیرید و به او زمان
+        Ø¨Ø¯Ù\87Û\8cد ØªØ§ Ù¾Ø§Ø³Ø®Ú¯Ù\88 Ø¨Ø§Ø´د.
+      try_waiting: لطفاً پیش از مسدودکردن کاربر به او زمان کافی بدهید تا بتواند پاسخگو
         باشد.
-      flash: یک بلوک روی کاربر %{name} ایجاد شد.
+      flash: یک مسدودی روی کاربری %{name} ایجاد شد.
     update:
-      only_creator_can_edit: فقط مدیری که این Ø¨Ù\84Ù\88Ú© Ø±Ø§ Ø§Û\8cجاد Ú©Ø±Ø¯Ù\87 Ù\85Û\8cتÙ\88اÙ\86د Ø¢Ù\86را Ù\88Û\8cراÛ\8cØ´
+      only_creator_can_edit: فقط مدیری که این Ù\85سدÙ\88دÛ\8c Ø±Ø§ Ø§Û\8cجاد Ú©Ø±Ø¯Ù\87 Ù\85Û\8câ\80\8cتÙ\88اÙ\86د Ø¢Ù\86را Ù\88Û\8cراÛ\8cØ´
         کند.
-      success: بلوک بروزرسانی شد.
+      success: مسدودی به‌روزرسانی شد.
     index:
-      title: بلوک های کاربر
-      heading: لیست بلوک های کاربر
-      empty: هنوز بلوکی ساخته نشده.
+      title: مسدودی‌های کاربر
+      heading: لیست مسدودی‌های کاربری
+      empty: هنوز مسدودیتی ساخته نشده.
     revoke:
-      title: لغو بلوک در %{block_on}
-      heading: لغو بلوک در %{block_on} توسط %{block_by}
-      time_future: این بلوک در %{time} پایان می یابد.
-      past: این بلوک %{time} پایان یافته و اکنون قابل لغو کردن نیست.
-      confirm: مطمئنید میخواهید این بلوک را لغو کنید؟
-      revoke: باطل کردن!
-      flash: این بلوک باطل شد.
+      title: لغو مسدودی از %{block_on}
+      heading: لغو مسدودی از %{block_on}، مسدودشده توسط %{block_by}
+      time_future: این مسدودی در %{time} پایان می یابد.
+      past: این مسدودی %{time} پیش پایان یافته و اکنون قابل لغوکردن نیست.
+      confirm: مطمئنید می‌خواهید این مسدودی را لغو کنید؟
+      revoke: باطل شود!
+      flash: این مسدودی لغو شد.
     period:
       one: 1 ساعت
       other: '%{count} ساعت'
     helper:
       time_future: در %{time} پایان می پذیرد.
       until_login: فعال تا وقتی کاربر وارد شود.
-      time_past: به پایان رسیده %{time} قبل.
+      time_future_and_until_login: تا %{time} دیگر و پس از ورود به حساب کاربری پایان
+        می‌یابد.
+      time_past: '%{time} پیش به پایان رسید.'
     blocks_on:
-      title: بلوک ها در %{name}
-      heading: فهرست بلوک ها در %{name}
-      empty: '%{name} هنوز بلوک نشده.'
+      title: مسدودی‌های کاربری %{name}
+      heading: فهرست مسدودی‌های %{name}
+      empty: '%{name} تاکنون مسدود نبوده.'
     blocks_by:
-      title: بلوک توسط %{name}
-      heading: فهرست بلوک توسط %{name}
-      empty: '%{name} هنوز بلوکی ایجاد نکرده.'
+      title: مسدودشده‌ها توسط %{name}
+      heading: فهرست مسدودشده‌ها توسط %{name}
+      empty: '%{name} تاکنون مسدود نکرده.'
     show:
-      title: '%{block_on} توسط %{block_by} بلوک شده'
-      heading: '%{block_on} توسط %{block_by} بلوک شده'
+      title: '%{block_on} توسط %{block_by} مسدود شده'
+      heading: '%{block_on} توسط %{block_by} مسدود شده'
       time_future: در %{time} پایان می پذیرد
-      time_past: به پایان رسیده %{time} قبل
+      time_past: '%{time} پیش به پایان رسید'
       created: ایجاد شده
       ago: '%{time} پیش'
       status: وضعیت
       show: نمایش
       edit: ویرایش
-      revoke: باطل کردن!
+      revoke: باطل شود!
       confirm: آیا مطمئن هستید؟
-      reason: 'دلیل بلوک:'
-      back: مشاهده تمام بلوک ها
+      reason: 'دلیل مسدودی:'
+      back: دیدن تمام مسدودی‌ها
       revoker: 'باطل کننده:'
-      needs_view: کاربر قبل از پاک شدن این بلوک نیاز به وارد شدن دارد.
+      needs_view: برای پاک‌شدن این مسدودی کاربر باید وارد حسابش شود.
     block:
       not_revoked: (باطل نشده)
       show: نمایش
       edit: ویرایش
-      revoke: باطل کردن!
+      revoke: باطل شود!
     blocks:
-      display_name: کاربر بلوک شده
+      display_name: کاربر مسدودشده
       creator_name: ایجاد کننده
-      reason: دلیل بلوک
+      reason: دلیل مسدودی
       status: وضعیت
       revoker_name: باطل شده توسط
       showing_page: صفحهٔ %{page}
@@ -2315,7 +2329,7 @@ fa:
   javascripts:
     close: بستن
     share:
-      title: به‌اشتراک‌گذاری
+      title: هم‌رسانی
       cancel: لغو
       image: تصویر
       link: پیوند یا اچ‌تی‌ام‌ال
@@ -2368,7 +2382,7 @@ fa:
       createnote_disabled_tooltip: برای افزودن یادداشت به نقشه بزرگنمایی کنید
       map_notes_zoom_in_tooltip: برای دیدن یادداشت‌های نقشه بزرگنمایی کنید
       map_data_zoom_in_tooltip: برای دیدن داده‌های نقشه بزرگنمایی کنید
-      queryfeature_tooltip: کوئری ویژگی‌ها
+      queryfeature_tooltip: پرس‌وجوی ویژگی‌ها
       queryfeature_disabled_tooltip: برای پرس‌وجوی ویژگی‌ها بزرگنمایی کنید
     changesets:
       show:
@@ -2474,33 +2488,33 @@ fa:
   redactions:
     edit:
       description: شرح
-      heading: ویرایش کردن ویرایش
+      heading: بازویرایی ویرایش
       submit: ذخیره ویرایش
-      title: ویرایش کردن ویرایش
+      title: بازویرایی ویرایش
     index:
       empty: ویرایشی برای نشان دادن نیست.
-      heading: فهرست ویرایش ها
-      title: فهرست ویرایش ها
+      heading: سیاههٔ بازویراسته‌ها(redactions)
+      title: فهرست ویرایش‌های حذف‌شده
     new:
       description: شرح
-      heading: اطلاعات را برای ویرایش جدید وارد کنید
+      heading: اطلاعات را برای بازویرایی جدید وارد کنید
       submit: ایجاد ویرایش
-      title: ایجاد ویرایش جدید
+      title: ایجاد بازویرایی جدید
     show:
       description: 'شرح:'
-      heading: نمایش ویرایش %{title}
+      heading: نمایش بازویرایستهٔ %{title}
       title: نمایش دادن ویرایش
       user: 'ایجاد کننده:'
-      edit: ویرایش این ویرایش
+      edit: ویرایش این بازویراسته
       destroy: حذف این ویرایش
       confirm: آیا مطمئن هستید؟
     create:
-      flash: ویرایش پاک شد.
+      flash: بازویراسته ایجاد شد.
     update:
       flash: تغییرات ذخیره شد.
     destroy:
-      not_empty: ویرایش خالی نیست. لطفاً همهٔ نسخه‌های متعلق به این ویرایش را در آورید
-        قبل از نابود کردنش.
+      not_empty: بازویرایی خالی نیست. لطفاً پیش از نابود کردنش، همهٔ نسخه‌های متعلق
+        به این بازویرایی را از بازویراستگی درآورید.
       flash: ویرایش از بین رفت.
-      error: در حال از بین بردن این ویرایش خطایی رخ داد.
+      error: هنگام از بین بردن این بازویراسته خطایی رخ داد.
 ...
index 3aedef0a0dc73b3f45a4336d2b0e793daafae6ac..30782ba28e27d7c364b8f25d5c34cd5efdb466e3 100644 (file)
@@ -269,7 +269,7 @@ fi:
       user: Käyttäjä
       comment: Kommentti
       area: Alue
-    list:
+    index:
       title: Muutoskokoelmat
       title_user: Käyttäjän %{user} muutoskokoelmat
       title_friend: Kaverieni muutoskokoelmat
@@ -295,7 +295,7 @@ fi:
     new:
       title: Uusi päiväkirjamerkintä
       publish_button: Julkaise
-    list:
+    index:
       title: Käyttäjien päiväkirjamerkinnät
       title_friends: Kaverien päiväkirjat
       title_nearby: Lähellä olevien käyttäjien päiväkirjat
@@ -318,7 +318,7 @@ fi:
       use_map_link: valitse kartalta
       save_button: Tallenna
       marker_text: Päiväkirjamerkinnän sijainti
-    view:
+    show:
       title: Käyttäjän %{user} päiväkirja | %{title}
       user_title: Käyttäjän %{user} päiväkirja
       leave_a_comment: Kommentoi tätä kirjoitusta
@@ -1200,11 +1200,12 @@ fi:
         commented_note: '%{commenter} on kommentoinut yhtä kommentoimaasi merkintää.
           Merkintä on lähellä paikkaa %{place}.'
       closed:
-        subject_own: '[OpenStreetMap] %{commenter} on selvittänyt yhden merkintäsi'
-        subject_other: '[OpenStreetMap] %{commenter} on selvittänyt sinua kiinnostavan
-          merkinnän'
-        your_note: '%{commenter} on selvittänyt yhden merkintäsi lähellä paikkaa %{place}'
-        commented_note: '%{commenter} on selvittänyt merkinnän, jota olet kommentoinut.
+        subject_own: '[OpenStreetMap] %{commenter} on ratkaissut karttailmoituksesi'
+        subject_other: '[OpenStreetMap] %{commenter} on ratkaissut sinua kiinnostavan
+          karttailmoituksen'
+        your_note: '%{commenter} on ratkaissut lähettämäsi karttailmoituksen lähellä
+          paikkaa %{place}.'
+        commented_note: '%{commenter} on ratkaissut karttailmoituksen, jota olet kommentoinut.
           Merkintä on lähellä paikkaa %{place}.'
       reopened:
         subject_own: '[OpenStreetMap] %{commenter} on avannut karttamerkintäsi uudelleen'
@@ -1215,7 +1216,7 @@ fi:
         commented_note: '%{commenter} on aktivoinut karttailmoituksen uudelleen. Tämä
           viesti lähetetään siksi, että olet kommentoinut tätä karttailmoitusta, joka
           on lähellä paikkaa %{place}.'
-      details: Lisää tietoja merkinnästä löytyy osoitteesta %{url}.
+      details: Lisätietoja merkinnästä löytyy osoitteesta %{url}.
     changeset_comment_notification:
       hi: Hei %{to_user},
       greeting: Hei,
@@ -2086,7 +2087,7 @@ fi:
       heading: Käyttäjää %{user} ei ole olemassa
       body: Käyttäjää %{user} ei löytynyt. Tarkista oikeikirjoitus.
       deleted: poistettu
-    view:
+    show:
       my diary: Oma päiväkirja
       new diary entry: uusi päiväkirjamerkintä
       my edits: Omat muokkaukset
@@ -2261,7 +2262,7 @@ fi:
       not_a_friend: '%{name} ei ole enää kaverisi.'
     filter:
       not_an_administrator: Tähän toimintoon tarvitaan ylläpitäjän oikeudet.
-    list:
+    index:
       title: Käyttäjät
       heading: Käyttäjät
       showing:
index 154682dd60062f8daef704e825a289dc2be5b687..5c78de29ea0274de58948b787ce45bfab267d6b0 100644 (file)
@@ -294,7 +294,7 @@ fr:
       user: Utilisateur
       comment: Commentaire
       area: Zone
-    list:
+    index:
       title: Groupes de modifications
       title_user: Groupes de modifications par %{user}
       title_friend: Groupes de modifications par mes amis
@@ -322,7 +322,7 @@ fr:
     new:
       title: Nouvelle entrée du journal
       publish_button: Publier
-    list:
+    index:
       title: Journaux des utilisateurs
       title_friends: Journaux des amis
       title_nearby: Journaux des utilisateurs à proximité
@@ -345,7 +345,7 @@ fr:
       use_map_link: utiliser la carte
       save_button: Enregistrer
       marker_text: Emplacement de l’entrée du journal
-    view:
+    show:
       title: Journal de %{user} | %{title}
       user_title: Journal de %{user}
       leave_a_comment: Laisser un commentaire
@@ -462,7 +462,7 @@ fr:
           courthouse: Palais de justice
           crematorium: Crématorium
           dentist: Dentiste
-          doctors: Docteurs
+          doctors: Cabinet médical
           drinking_water: Eau potable
           driving_school: École de conduite
           embassy: Ambassade
@@ -2172,7 +2172,7 @@ fr:
       body: Désolé, il n’y a pas d’utilisateur avec le nom %{user}. Veuillez vérifier
         l’orthographe, ou le lien que vous avez cliqué n’est pas valide.
       deleted: supprimé
-    view:
+    show:
       my diary: Mon journal
       new diary entry: nouvelle entrée dans le journal
       my edits: Mes modifications
@@ -2360,11 +2360,12 @@ fr:
       not_a_friend: '%{name} n’est pas parmi vos amis.'
     filter:
       not_an_administrator: Vous devez être administrateur pour effectuer cette action.
-    list:
+    index:
       title: Utilisateurs
       heading: Utilisateurs
       showing:
-        other: Page %{page} (%{first_item}one= sur %{items})
+        one: Page %{page} (%{first_item} sur %{items})
+        other: Page %{page} (%{first_item}-%{last_item} sur %{items})
       summary: '%{name} créé depuis %{ip_address} le %{date}'
       summary_no_ip: '%{name} créé le %{date}'
       confirm: Confirmer les utilisateurs sélectionnés
index efeee30adf490cd8ea0044f497acb99d1f97a740..f5885e8dcbfbdbefa1e8825f5981f6f956b6794b 100644 (file)
@@ -223,7 +223,7 @@ fur:
       user: Utent
       comment: Coment
       area: Aree
-    list:
+    index:
       title: Grups di cambiaments
       title_user: Grups di cambiaments di %{user}
       title_friend: Grups di cambiaments dai tiei amîs
@@ -248,7 +248,7 @@ fur:
   diary_entry:
     new:
       title: Gnove vôs dal diari
-    list:
+    index:
       title: Diaris dai utents
       title_friends: Diaris dai amîs
       title_nearby: Diaris dai utents dongje
@@ -271,7 +271,7 @@ fur:
       use_map_link: dopre mape
       save_button: Salve
       marker_text: Lûc de vôs dal diari
-    view:
+    show:
       title: Diari di %{user} | %{title}
       user_title: Diari di %{user}
       leave_a_comment: Lasse un coment
@@ -1136,7 +1136,7 @@ fur:
       heading: L'utent %{user} nol esist
       body: Nol esist un utent di non %{user}. Controle par plasê la grafie o che
         tu vedis seguît il leam just.
-    view:
+    show:
       my diary: Il gno diari
       new diary entry: gnove vôs dal diari
       my edits: I miei cambiaments
@@ -1287,7 +1287,7 @@ fur:
       button: Gjave dai amîs
       success: '%{name} al è stât gjavât dai tiei amîs.'
       not_a_friend: '%{name} nol è un dai tiei amîs.'
-    list:
+    index:
       title: Utents
       heading: Utents
       showing:
index c1a76ffc3dff4bf609fe20a933c826884add2394..d5471e60c701f5e86e8825479a623b946bcb95dd 100644 (file)
@@ -228,7 +228,7 @@ ga:
       user: Úsáideoir
       comment: Nóta tráchta
       area: Limistéar
-    list:
+    index:
       title: Tacair athruithe
       title_user: Tacair athruithe de chuid %{user}
       title_friend: Tacair athruithe de chuid mo chairde
@@ -254,7 +254,7 @@ ga:
     new:
       title: Iontráil Nua Dialainne
       publish_button: Foilsigh
-    list:
+    index:
       title: Dialanna úsáideoirí
       title_friends: Dialanna cairde
       title_nearby: Dialann de chuid Úsáideoirí In Aice Láimhe
@@ -277,7 +277,7 @@ ga:
       use_map_link: an léarscáil a úsáid
       save_button: Sábháil
       marker_text: Suíomh na hiontrála dialainne
-    view:
+    show:
       title: Dialann %{user} | %{title}
       user_title: Dialann %{user}
       leave_a_comment: Fág nóta tráchta
@@ -1866,7 +1866,7 @@ ga:
     no_such_user:
       title: Níl an t-úsáideoir sin ann
       deleted: scriosta
-    view:
+    show:
       my diary: Mo Dhialann
       new diary entry: iontráil nua dialainne
       my edits: Mo Athruithe
@@ -1971,7 +1971,7 @@ ga:
       button: Cuir leis mar chara
       success: Is cara leat %{name} anois!
       failed: Ár leithscéal, níorbh fhéidir %{name} a chur leis mar chara.
-    list:
+    index:
       title: Úsáideoirí
       heading: Úsáideoirí
     suspended:
index 65670c15de225b0415079ab2ca847d983bbad898..9cb1b7e347d5e343644b08fbece6a06dfd7a10fa 100644 (file)
@@ -244,7 +244,7 @@ gd:
       user: Cleachdaiche
       comment: Beachd
       area: Raon
-    list:
+    index:
       title: Seataichean atharraichean
       title_user: Seataichean atharraichean le %{user}
       title_friend: Seataichean atharraichean le do charaidean
@@ -272,7 +272,7 @@ gd:
     new:
       title: Clàr ùr an leabhair-latha
       publish_button: Foillsich
-    list:
+    index:
       title: Leabhraichean-latha
       title_friends: Leabhraichean-latha do charaidean
       title_nearby: Leabhraichean-latha am fagas
@@ -295,7 +295,7 @@ gd:
       use_map_link: cleachd mapa
       save_button: Sàbhail
       marker_text: Àite clàr an leabhair-latha
-    view:
+    show:
       title: An leabhar-latha aig %{user} | %{title}
       user_title: An leabhar-latha aig %{user}
       leave_a_comment: Thoir do bheachd
@@ -1920,7 +1920,7 @@ gd:
         an litreachadh no 's dòcha nach eil an ceangal air an do rinn thu briogadh
         mar bu chòir.
       deleted: air a sguabadh às
-    view:
+    show:
       my diary: An leabhar-latha agam
       new diary entry: clàr leabhair-latha ùr
       my edits: Na dheasaich mi
@@ -2102,7 +2102,7 @@ gd:
       not_a_friend: Chan eil càirdeas eadar thu fhèin agus %{name}.
     filter:
       not_an_administrator: Feumaidh tu bhith 'nad rianaire gus an gnìomh seo a dhèanamh.
-    list:
+    index:
       title: Cleachdaichean
       heading: Cleachdaichean
       showing:
index 005817bca2ef042e9ba2b237b28475ce8f0da363..cd2b550374ea4f7206464b33d9c624c0430e9c96 100644 (file)
 # Author: Vivaelcelta
 ---
 gl:
+  html:
+    dir: ltr
   time:
     formats:
-      friendly: '%e de %B de %Y ás %H:%M'
+      friendly: '%e de %B do %Y ás %H:%M'
+      blog: '%e %B %Y'
   activerecord:
     models:
-      acl: Lista de control de acceso
+      acl: Listaxe do control de acceso
       changeset: Conxunto de cambios
       changeset_tag: Etiqueta do conxunto de cambios
       country: País
@@ -37,7 +40,7 @@ gl:
       old_relation_member: Membro da relación vella
       old_relation_tag: Etiqueta da relación vella
       old_way: Camiño vello
-      old_way_node: Nodo do camiño vello
+      old_way_node: Nó do camiño vello
       old_way_tag: Etiqueta do camiño vello
       relation: Relación
       relation_member: Membro da relación
@@ -50,7 +53,7 @@ gl:
       user_preference: Preferencia do usuario
       user_token: Pase de usuario
       way: Camiño
-      way_node: Nodo do camiño
+      way_node: Nó do camiño
       way_tag: Etiqueta do camiño
     attributes:
       diary_comment:
@@ -85,6 +88,9 @@ gl:
         description: Descrición
         languages: Linguas
         pass_crypt: Contrasinal
+  printable_name:
+    with_version: '%{id}, v%{version}'
+    with_name_html: '%{name} (%{id})'
   editor:
     default: Predeterminado (actualmente, %{name})
     potlatch:
@@ -115,7 +121,7 @@ gl:
     part_of: Parte de
     download_xml: Descargar en XML
     view_history: Ver o historial
-    view_details: Veos detalles
+    view_details: Ve-los detalles
     location: 'Localización:'
     changeset:
       title: 'Conxunto de cambios: %{id}'
@@ -127,18 +133,18 @@ gl:
       relation: Relacións (%{count})
       relation_paginated: Relacións (%{x}-%{y} de %{count})
       comment: Comentarios (%{count})
-      hidden_commented_by: Comentario oculto de %{user} <abbr title='%{exact_time}'>
+      hidden_commented_by: Comentario agochado de %{user} <abbr title='%{exact_time}'>
         hai %{when}</abbr>
       commented_by: Comentario de %{user} <abbr title='%{exact_time}'> hai %{when}</abbr>
-      changesetxml: Conxunto de cambios XML
+      changesetxml: Conxunto de cambios do XML
       osmchangexml: osmChange XML
       feed:
         title: Conxunto de cambios %{id}
         title_comment: Conxunto de cambios %{id} - %{comment}
-      join_discussion: Inicie sesión para unirse á discusión
-      discussion: Conversa
-      still_open: O conxunto de cambios permanece aberto - A conversa comeza cando
-        o conxunto de cambios está pechado.
+      join_discussion: Inicia-la sesión pra unirse á parola
+      discussion: Parola
+      still_open: O conxunto de cambios segue aberto - Abrirase a parola cando o conxunto
+        de cambios estea pechado.
     node:
       title: 'Nó: %{name}'
       history_title: 'Historial do nó: %{name}'
@@ -154,6 +160,7 @@ gl:
       history_title: 'Historial da relación: %{name}'
       members: Membros
     relation_member:
+      entry: '%{type} %{name}'
       entry_role: '%{type} %{name} como %{role}'
       type:
         node: Nó
@@ -221,7 +228,7 @@ gl:
       hidden_by: Agochado por %{user} <abbr title='%{exact_time}'>hai %{when}</abbr>
       report: Informar desta nota
     query:
-      title: Consultaas características
+      title: Consulta-las características
       introduction: Prema no mapa para atopar características preto de aquí.
       nearby: Características preto de aquí
       enclosing: Características envolventes
@@ -233,43 +240,43 @@ gl:
     changeset:
       anonymous: Anónimo
       no_edits: (sen edicións)
-      view_changeset_details: Ollar os detalles do conxunto de cambios
+      view_changeset_details: Ve-los detalles do conxunto de cambios
     changesets:
       id: ID
       saved_at: Gardado o
       user: Usuario
       comment: Comentario
       area: Zona
-    list:
+    index:
       title: Conxuntos de cambios
       title_user: Conxuntos de cambios por %{user}
       title_friend: Conxuntos de cambios das amizades
-      title_nearby: Conxuntos de cambios dos usuarios de lugares próximos
-      empty: Non se atopou ningún conxunto de cambios.
+      title_nearby: Conxuntos de cambios dos usuarios de lugares preto de ti
+      empty: Non se atoparon conxuntos de cambios.
       empty_area: Non hai conxuntos de cambios nesta zona.
-      empty_user: Este usuario non ten ningún conxunto de cambios.
-      no_more: Non se atopou ningún outro conxunto de cambios.
+      empty_user: Non hai conxuntos de cambios deste usuario.
+      no_more: Non se atoparon máis conxuntos de cambios.
       no_more_area: Non hai máis conxuntos de cambios nesta zona.
-      no_more_user: Este usuario non ten ningún outro conxunto de cambios.
+      no_more_user: Non hai máis conxuntos de cambios deste usuario.
       load_more: Cargar máis
     timeout:
-      sorry: Sentímolo, a lista do conxunto de cambios solicitada tardou demasiado
-        tempo en ser recuperada.
+      sorry: Desculpe que levase moito tempo obter a listaxe do conxunto de cambios
+        que solicitou.
     rss:
-      title_all: Discusión do conxunto de cambios no OpenStreetMap
-      title_particular: 'Conversa do conxunto de cambios #%{changeset_id} de OpenStreetMap'
-      comment: 'Comentario novo sobre o conxunto de cambios #%{changeset_id} de %{author}'
+      title_all: Parola da edición no OpenStreetMap
+      title_particular: 'Parola da edición #%{changeset_id} no OpenStreetMap'
+      comment: 'Novo comentario sobre os cambios #%{changeset_id} de %{author}'
       commented_at_html: Actualizado hai %{when}
       commented_at_by_html: Actualizado hai %{when} por %{user}
-      full: Conversa completa
+      full: Parola completa
   diary_entry:
     new:
       title: Nova entrada no diario
       publish_button: Publicar
-    list:
-      title: Diarios de usuarios
-      title_friends: Diarios de amigos
-      title_nearby: Diarios de usuarios de lugares próximos
+    index:
+      title: Diarios dos usuarios
+      title_friends: Diarios das amizades
+      title_nearby: Diarios dos usuarios de lugares preto de ti
       user_title: Diario de %{user}
       in_language_title: Entradas de diario en %{language}
       new: Nova entrada no diario
@@ -286,25 +293,25 @@ gl:
       location: 'Localización:'
       latitude: 'Latitude:'
       longitude: 'Lonxitude:'
-      use_map_link: usao mapa
+      use_map_link: usa-lo mapa
       save_button: Gardar
       marker_text: Lugar da entrada do diario
-    view:
+    show:
       title: Diario de %{user} | %{title}
       user_title: Diario de %{user}
       leave_a_comment: Deixar un comentario
       login_to_leave_a_comment: '%{login_link} para deixar un comentario'
-      login: Iniciar sesión
+      login: Inicia-la sesión
       save_button: Gardar
     no_such_entry:
       title: Non hai tal entrada de diario
-      heading: 'Non hai ningunha entrada co id: %{id}'
+      heading: 'Non hai ningunha entrada co ID: %{id}'
       body: Non existe ningunha entrada no diario ou comentario co id %{id}. Comprobe
         a ortografía ou que a ligazón que seguiu estea ben.
     diary_entry:
       posted_by: Publicado por %{link_user} o %{created} en %{language_link}
       comment_link: Comentar nesta entrada
-      reply_link: Responder a esta entrada
+      reply_link: Respostar a esta entrada
       comment_count:
         one: '%{count} comentario'
         zero: Sen comentarios
@@ -354,6 +361,7 @@ gl:
           Nominatim</a>
         geonames_reverse: Resultados dende <a href="http://www.geonames.org/">GeoNames</a>
     search_osm_nominatim:
+      prefix_format: '%{name}'
       prefix:
         aerialway:
           cable_car: Teleférico
@@ -389,7 +397,7 @@ gl:
           biergarten: Terraza
           boat_rental: Aluguer de botes
           brothel: Prostíbulo
-          bureau_de_change: Casa de cambio
+          bureau_de_change: Casa de troco
           bus_station: Estación de autobuses
           cafe: Cafetaría
           car_rental: Aluguer de automóbiles
@@ -914,7 +922,7 @@ gl:
           mooring: Atraque
           rapids: Rápidos
           river: Río
-          stream: Arroio
+          stream: Regato
           wadi: Uadi
           waterfall: Fervenza
           weir: Vaira
@@ -929,9 +937,9 @@ gl:
         level10: Fronteira do barrio
     description:
       title:
-        osm_nominatim: Localización desde <a href="https://nominatim.openstreetmap.org/">OpenStreetMap
+        osm_nominatim: Localización dende o <a href="https://nominatim.openstreetmap.org/">OpenStreetMap
           Nominatim</a>
-        geonames: Localización desde <a href="http://www.geonames.org/">GeoNames</a>
+        geonames: Localización dende o <a href="http://www.geonames.org/">GeoNames</a>
       types:
         cities: Cidades
         towns: Municipios
@@ -944,7 +952,7 @@ gl:
       title: Problemas
       select_status: Seleccionar estado
       select_type: Seleccionar tipo
-      select_last_updated_by: Seleccionar última actualización por
+      select_last_updated_by: Seleccionar última actualización por
       reported_user: Usuario denunciado
       not_updated: Non Actualizados
       search: Procurar
@@ -976,29 +984,29 @@ gl:
         one: 1 informe
         other: '%{count} informes'
       report_created_at: Primeira incidencia o %{datetime}
-      last_resolved_at: Resolto por última vez o %{datetime}
-      last_updated_at: Última actualización o %{datetime} por%{displayname}
+      last_resolved_at: Resolto por derradeira vez o %{datetime}
+      last_updated_at: Última actualización o %{datetime} por %{displayname}
       resolve: Resolver
       ignore: Ignorar
       reopen: Reabrir
       reports_of_this_issue: Informes deste erro
       read_reports: Ler informes
       new_reports: Informes novos
-      other_issues_against_this_user: Outro informe sobre deste usuario
-      no_other_issues: Non hai máis informes sobre deste usuario.
+      other_issues_against_this_user: Outro informe deste usuario
+      no_other_issues: Non hai máis informes deste usuario.
       comments_on_this_issue: Comentarios neste informe
     resolve:
-      resolved: O estado da incidencia pasou a "Resolta"
+      resolved: O estado da incidencia mudou a "Resolta"
     ignore:
-      ignored: O estado da incidencia pasou a "Ignorada"
+      ignored: O estado da incidencia mudou a "Ignorada"
     reopen:
-      reopened: O estado da incidencia pasou a "Aberta"
+      reopened: O estado da incidencia mudou a "Aberta"
     comments:
       created_at: O %{datetime}
       reassign_param: Reasignar o erro?
     reports:
       updated_at: O %{datetime}
-      reported_by_html: Clasificouse como %{category} por parte de %{user}
+      reported_by_html: Clasificouse coma %{category} por parte de %{user}
     helper:
       reportable_title:
         diary_comment: '%{entry_title}, comentario #%{comment_id}'
@@ -1045,12 +1053,15 @@ gl:
       successful_report: O seu informe rexistrouse con éxito
       provide_details: Por favor, achegue os detalles que se lle solicitan.
   layouts:
+    project_name:
+      title: OpenStreetMap
+      h1: OpenStreetMap
     logo:
       alt_text: Logotipo do OpenStreetMap
     home: Ir á localización inicial
-    logout: Saír
-    log_in: Iniciar sesión
-    log_in_tooltip: Acceder ao sistema cunha conta existente
+    logout: Pecha-la sesión
+    log_in: Inicia-la sesión
+    log_in_tooltip: Inicia-la sesión cunha conta existente
     sign_up: Rexistrarse
     start_mapping: Comezar a cartografar
     sign_up_tooltip: Crear unha conta para editar
@@ -1101,18 +1112,19 @@ gl:
       header: '%{from_user} comentou na entrada de diario no OpenStreetMap co asunto
         "%{subject}":'
       footer: Tamén pode ler o comentario en %{readurl}, comentar en %{commenturl}
-        ou responder en %{replyurl}
+        ou respostar en %{replyurl}
     message_notification:
+      subject_header: '[OpenStreetMap] %{subject}'
       hi: 'Ola %{to_user}:'
       header: '%{from_user} envioulle unha mensaxe a través do OpenStreetMap co asunto
         "%{subject}":'
-      footer_html: Tamén pode ler a mensaxe en %{readurl} e pode responder en %{replyurl}
+      footer_html: Tamén pode ler a mensaxe en %{readurl} e pode respostar en %{replyurl}
     friend_notification:
       hi: 'Ola %{to_user}:'
-      subject: '[OpenStreetMap] %{user} engadiuno como amigo'
-      had_added_you: '%{user} engadiuno como amigo en OpenStreetMap.'
+      subject: '[OpenStreetMap] %{user} engadiuno coma amizade'
+      had_added_you: '%{user} engadiuno coma amizade no OpenStreetMap.'
       see_their_profile: Pode ollar o seu perfil en %{userurl}.
-      befriend_them: Tamén pode engadilo como amigo en %{befriendurl}.
+      befriend_them: Tamén pode engadilo coma amizade no %{befriendurl}.
     gpx_notification:
       greeting: 'Ola:'
       your_gpx_file: Semella que o seu ficheiro GPX
@@ -1124,6 +1136,7 @@ gl:
         failed_to_import: 'erro ao importar. Velaquí atópase o erro:'
         more_info_1: Máis información sobre os erros de importación GPX e como evitalos
         more_info_2: 'pódense atopar en:'
+        import_failures_url: https://wiki.openstreetmap.org/wiki/GPX_Import_Failures
       success:
         subject: '[OpenStreetMap] Importación GPX correcta'
         loaded_successfully: cargou correctamente %{trace_points} do máximo de %{possible_points}
@@ -1132,7 +1145,7 @@ gl:
       subject: '[OpenStreetMap] Dámoslle a benvida ao OpenStreetMap'
       greeting: Boas!
       created: Alguén (probablemente vostede) acaba de crear unha conta en %{site_url}.
-      confirm: 'Antes de facer nada, cómpre confirmar que esta solicitude veu de vostede.
+      confirm: 'Antes de facer ren, cómpre confirmar que esta solicitude veu de vostede.
         Se é así, prema na ligazón inferior para confirma-la conta:'
       welcome: Despois de confirma-la súa conta, proporcionarémoslle algunha información
         adicional como axuda para comezar.
@@ -1171,42 +1184,42 @@ gl:
         subject_own: '[OpenStreetMap] %{commenter} comentou nunha das súas notas'
         subject_other: '[OpenStreetMap] %{commenter} comentou nunha das notas nas
           que ten interese'
-        your_note: '%{commenter} deixou un comentario nunha das súas notas de mapa
+        your_note: '%{commenter} deixou un comentario nunha das súas notas do mapa
           preto de %{place}.'
-        commented_note: '%{commenter} deixou un comentario nunha das súas notas de
+        commented_note: '%{commenter} deixou un comentario nunha das súas notas do
           mapa nas que vostede comentou. A nota está preto de %{place}.'
       closed:
         subject_own: '[OpenStreetMap] %{commenter} resolveu unha das súas notas'
         subject_other: '[OpenStreetMap] %{commenter} resolveu unha das notas nas que
           ten interese'
-        your_note: '%{commenter} resolveu unha das súas notas de mapa preto de %{place}.'
-        commented_note: '%{commenter} resolveu unha das súas notas de mapa nas que
+        your_note: '%{commenter} resolveu unha das súas notas do mapa preto de %{place}.'
+        commented_note: '%{commenter} resolveu unha das súas notas do mapa nas que
           vostede comentou. A nota está preto de %{place}.'
       reopened:
         subject_own: '[OpenStreetMap] %{commenter} reactivou unha das súas notas'
         subject_other: '[OpenStreetMap] %{commenter} reactivou unha das notas nas
           que ten interese'
-        your_note: '%{commenter} reactivou unha das súas notas de mapa preto de %{place}.'
-        commented_note: '%{commenter} reactivou unha das súas notas de mapa nas que
+        your_note: '%{commenter} reactivou unha das súas notas do mapa preto de %{place}.'
+        commented_note: '%{commenter} reactivou unha das súas notas do mapa nas que
           vostede comentou. A nota está preto de %{place}.'
       details: Pode atopar máis detalles da nota en %{url}.
     changeset_comment_notification:
       hi: Ola %{to_user},
       greeting: Ola,
       commented:
-        subject_own: '[OpenStreetMap] %{commenter} comentou nun dos teus conxuntos
-          de cambios'
+        subject_own: O %{commenter} de [OpenStreetMap] fixo un comentario nun dos
+          seus conxuntos de cambios
         subject_other: '[OpenStreetMap] %{commenter} comentou nun conxunto de cambios
-          no que vostede está interesado'
+          no que estás atinxido'
         your_changeset: '%{commenter} deixou un comentario nun dos seus conxuntos
-          de cambios creado o %{time}'
+          de cambios xerado o %{time}'
         commented_changeset: '%{commenter} deixou un comentario nun conxunto de cambios
-          de mapa que está seguindo, creado por %{changeset_author} o %{time}'
+          do mapa que está seguindo, xerado por %{changeset_author} o %{time}'
         partial_changeset_with_comment: co comentario '%{changeset_comment}'
         partial_changeset_without_comment: sen comentarios
-      details: Máis detalles sobre o conxunto de cambios poden atoparse en %{url}.
+      details: Pódense atopar máis detalles acerca do conxunto de cambios en %{url}.
       unsubscribe: Para darse de baixa das actualizacións deste conxunto de cambios,
-        visite %{url} e prema en "darse de baixa".
+        olle %{url} e prema en "darse de baixa".
   messages:
     inbox:
       title: Caixa de entrada
@@ -1228,7 +1241,7 @@ gl:
     message_summary:
       unread_button: Marcar como non lido
       read_button: Marcar como lido
-      reply_button: Responder
+      reply_button: Respostar
       destroy_button: Borrar
     new:
       title: Enviar unha mensaxe
@@ -1236,15 +1249,15 @@ gl:
       subject: Asunto
       body: Corpo
       send_button: Enviar
-      back_to_inbox: Volver á caixa de entrada
+      back_to_inbox: Voltar á caixa de entrada
     create:
       message_sent: Mensaxe enviada
-      limit_exceeded: Estivo enviando unha morea de mensaxes ultimamente. Agarde uns
-        intres antes de intentar enviar máis.
+      limit_exceeded: Estivo enviando unha morea de mensaxes recentemente. Agarde
+        uns intres denantes de tentar enviar máis.
     no_such_message:
       title: Non se atopou a mensaxe
       heading: Non se atopou a mensaxe
-      body: Non hai ningunha mensaxe con esa id.
+      body: Non hai ningunha mensaxe con esa ID.
     outbox:
       title: Caixa de saída
       my_inbox: A miña %{inbox_link}
@@ -1258,19 +1271,19 @@ gl:
       date: Data
       no_sent_messages: Aínda non enviou ningunha mensaxe. Por que non se pon en contacto
         con algunhas das %{people_mapping_nearby_link}?
-      people_mapping_nearby: persoas próximas a vostede
+      people_mapping_nearby: persoas preto a vostede
     reply:
-      wrong_user: Accedeu ao sistema como "%{user}", pero a mensaxe que pediu responder
-        non lla enviou a ese usuario. Acceda co usuario correcto para redactaa resposta.
+      wrong_user: Accedeu ó sistema coma "%{user}", pero a mensaxe que pediu respostar
+        non lla enviou a ese usuario. Acceda co usuario correcto para redacta-la resposta.
     show:
       title: Ler a mensaxe
       from: De
       subject: Asunto
       date: Data
-      reply_button: Responder
+      reply_button: Respostar
       unread_button: Marcar como non lida
       destroy_button: Borrar
-      back: Volver
+      back: Voltar
       to: Para
       wrong_user: Accedeu ao sistema como "%{user}", pero a mensaxe que pediu ler
         non lla enviou a ese usuario ou el non lla enviou a vostede. Acceda co usuario
@@ -1278,8 +1291,8 @@ gl:
     sent_message_summary:
       destroy_button: Borrar
     mark:
-      as_read: Mensaxe marcada como lida
-      as_unread: Mensaxe marcada como non lida
+      as_read: Mensaxe marcada coma lida
+      as_unread: Mensaxe marcada coma non lida
     destroy:
       destroyed: Mensaxe borrada
   site:
@@ -1332,8 +1345,8 @@ gl:
         english_link: a orixinal en inglés
       native:
         title: Acerca desta páxina
-        text: Estás vendo a versión en inglés da páxina de dereitos de autor. Pode
-          volver á %{native_link} desta páxina ou pode deixar de ler sobre os dereitos
+        text: Estás ollando a versión en inglés da páxina de dereitos de autor. Pode
+          voltar á %{native_link} desta páxina ou pode deixar de ler sobre os dereitos
           de autor e %{mapping_link}.
         native_link: versión en galego
         mapping_link: comezar a contribuír
@@ -1354,7 +1367,7 @@ gl:
           Os datos cartográficos dos cuadrantes dos nosos mapas e a nosa documentación
           atópanse baixo a licenza <a href="https://creativecommons.org/licenses/by-sa/2.0/">Creative
           Commons recoñecemento compartir igual 2.0</a> (CC BY-SA).
-        credit_title_html: Como acreditar o OpenStreetMap
+        credit_title_html: De que xeito acredita-lo OpenStreetMap
         credit_1_html: |-
           Pedímoslle que acredite o traballo así: &ldquo;&copy; dos contribuíntes do
           OpenStreetMap&rdquo;.
@@ -1369,18 +1382,18 @@ gl:
           poñendo o texto\n\"OpenStreetMap\" no enderezo completo), a opendatacommons.org
           e,\nse fose relevante, a creativecommons.org."
         credit_3_html: |-
-          Nun mapa electrónico explorable, o crédito debe aparecer na beira do mapa.
+          Nun mapa electrónico explorábel, o crédito debe aparecer na beira do mapa.
           Por exemplo:
         attribution_example:
-          alt: Exemplo de como recoñecer o OpenStreetMap nunha páxina web
+          alt: Exemplo de que xeito recoñece-lo OpenStreetMap nunha páxina web
           title: Exemplo de recoñecemento
         more_title_html: Máis información
         more_1_html: |-
-          Descubra máis sobre como empregar os nosos datos e como acreditarnos na <a
-          href="https://osmfoundation.org/Licence">páxina de licenza de OSMF</a>.
+          Descobra máis sobre de que xeito emprega-los nosos datos e como acreditarnos na <a
+          href="https://osmfoundation.org/Licence">páxina de licenza do OSMF</a>.
         more_2_html: |-
-          Malia que o OpenStreetMap é de datos abertos, non podemos proporcionar un
-          mapa API gratuíto aos desenvolvedores.
+          Malia que o OpenStreetMap é de datos abertos, non podemos fornecer un
+          mapa API de balde aos desenvolvedores.
           Vexa a <a href="https://operations.osmfoundation.org/policies/api/">política de uso da API</a>,
           a <a href="https://operations.osmfoundation.org/policies/tiles/">política de uso de cuadrantes</a>
           e a <a href="https://operations.osmfoundation.org/policies/nominatim/">política de uso do Nominatim</a>.
@@ -1466,28 +1479,29 @@ gl:
         estea cargado e que a opción do control remoto estea activada
     edit:
       not_public: Non fixo que as súas edicións fosen públicas.
-      not_public_description: Non pode editar o mapa a menos que o faga. Pode establecer
-        as súas edicións como públicas desde a súa %{user_page}.
+      not_public_description: Non pode edita-lo mapa a menos que o faga. Pode establece-las
+        súas edicións coma públicas dende a súa %{user_page}.
       user_page_link: páxina de usuario
-      anon_edits_link_text: Descubra aquí o motivo.
+      anon_edits: (%{link})
+      anon_edits_link_text: Descobra velaquí o motivo.
       flash_player_required: Precisa un reprodutor Flash para usar Potlatch, o editor
         Flash de OpenStreetMap. Pode <a href="https://get.adobe.com/flashplayer/">descargar
         Flash do sitio Adobe.com</a>. <a href="https://wiki.openstreetmap.org/wiki/Editing">Tamén
         están dispoñíbeis outras opcións</a> para editar OpenStreetMap.
-      potlatch_unsaved_changes: Ten cambios sen gardar. (Para gardar no Potlatch,
-        ten que desmarcar o camiño actual ou o punto, se está a editar no modo en
-        vivo, ou premer sobre o botón "Gardar".)
+      potlatch_unsaved_changes: Ten cambios sen gardar. (Para gardalos no Potlatch
+        ten que desmarcar o camiño actual ou o punto se está a editar no modo en vivo
+        ou premer sobre o botón "Gardar".)
       potlatch2_not_configured: O Potlatch 2 non está configurado; consulte https://wiki.openstreetmap.org/wiki/The_Rails_Port
         para obter máis información
       potlatch2_unsaved_changes: Ten cambios sen gardar. (Para gardar no Potlatch
         2, prema en "Gardar".)
-      id_not_configured: iD non está configurado
+      id_not_configured: iD non está configurado
       no_iframe_support: O seu navegador non soporta os iframes HTML, necesarios para
         esta característica.
     export:
       title: Exportar
       area_to_export: Zona a exportar
-      manually_select: Seleccionar manualmente outra zona
+      manually_select: Seleccionar de xeito manual outra zona
       format_to_export: Formato de exportación
       osm_xml_data: Datos XML do OpenStreetMap
       map_image: Imaxe do mapa (amosa unha capa normal)
@@ -1496,8 +1510,8 @@ gl:
       export_details: Os datos do OpenStreetMap están licenciados baixo a <a href="https://opendatacommons.org/licenses/odbl/1.0/">licenza
         Open Data Commons Open Database License</a> (ODbL).
       too_large:
-        advice: 'Se a exportación anterior falla, considere utilizar unha das fontes
-          listadas a continuación:'
+        advice: 'Se a exportación anterior falla, considere empregar unha das fontes
+          listadas deseguido:'
         body: 'Esta zona é grande de máis para ser exportada como datos XML do OpenStreetMap.
           Amplíe a zona ou escolla unha menor, ou utilice unha das seguintes fontes
           para as descargas masivas de datos:'
@@ -1514,10 +1528,11 @@ gl:
             países e cidades seleccionados
         metro:
           title: Extraccións do Metro
-          description: Extraccións das maiores cidades do mundo e as súas zonas próximas
+          description: Extraccións das maiores cidades do mundo e as súas zonas máis
+            pretas
         other:
           title: Outras fontes
-          description: Fontes adicionais listadas no wiki do OpenStreetMap
+          description: Fontes adicionais listadas na wiki do OpenStreetMap
       options: Opcións
       format: Formato
       scale: Escala
@@ -1533,7 +1548,7 @@ gl:
     fixthemap:
       title: Informar dun problema/Corrixir o mapa
       how_to_help:
-        title: Como axudar
+        title: De que xeito axudar
         join_the_community:
           title: Únase á comunidade
           explanation_html: |-
@@ -1553,7 +1568,7 @@ gl:
     help:
       title: Obter axuda
       introduction: |-
-        O OpenStreetMap ten varios recursos para aprender sobre o proxecto, para formular e responder preguntas,
+        O OpenStreetMap ten varios recursos para aprender sobre o proxecto, para formular e respostar preguntas,
         así como para debater e documentar colaborativamente sobre temas de cartografía.
       welcome:
         url: /welcome
@@ -1566,19 +1581,19 @@ gl:
       help:
         url: https://help.openstreetmap.org/
         title: help.openstreetmap.org
-        description: Formule unha pregunta ou busque respostas no sitio de preguntas
+        description: Faga unha cuestión ou procure respostas no sitio de cuestións
           e respostas do OSM.
       mailing_lists:
-        title: Listas de correo
-        description: Pregunta ou conversa sobre temas interesantes nun amplo abano
-          de listas de correo temáticas ou rexionais.
+        title: Listaxes de correo
+        description: Pregunta ou parola sobre temas interesantes nun amplo abano de
+          listaxes de correo temáticas ou rexionais.
       forums:
         title: Foros
-        description: Preguntas e conversas para os que prefiren unha interface do
-          estilo carteleira de anuncios.
+        description: Preguntas e parolas pra os que prefiren unha interface do estilo
+          carteleira de anuncios.
       irc:
         title: IRC
-        description: Conversa interactiva en moitas linguaxes diferentes e sobre moitos
+        description: Parola interactiva en moitas linguaxes diferentes e sobre moitos
           temas.
       switch2osm:
         title: Migra a OSM
@@ -1600,7 +1615,7 @@ gl:
       where_am_i: Onde está isto?
       where_am_i_title: Describa a localización actual empregando o motor de procuras
       submit_text: Ir
-      reverse_directions_text: Inverteas direccións
+      reverse_directions_text: Inverte-las direccións
     key:
       table:
         entry:
@@ -1629,7 +1644,7 @@ gl:
           - Pista do aeroporto
           - vía de circulación do aeroporto
           apron:
-          - Terminal de aeroporto
+          - Terminal do aeroporto
           - terminal
           admin: Límite administrativo
           forest: Bosque
@@ -1645,7 +1660,7 @@ gl:
           commercial: Zona comercial
           heathland: Breixeira
           lake:
-          - Lago
+          - Lagoa
           - encoro
           farm: Granxa
           brownfield: Sitio baldío
@@ -1679,8 +1694,8 @@ gl:
       headings: Cabeceiras
       heading: Cabeceira
       subheading: Subcabeceira
-      unordered: Lista sen ordenar
-      ordered: Lista ordenada
+      unordered: Listaxe sen ordear
+      ordered: Listaxe ordeada
       first: Primeiro elemento
       second: Segundo elemento
       link: Ligazón
@@ -1708,28 +1723,28 @@ gl:
         paragraph_1_html: O OpenStreetMap ten unha xerga propia. Velaquí hai unhas
           palabras clave que son de utilidade.
         editor_html: Un <strong>editor</strong> é un programa ou sitio web que pode
-          usar para editar o mapa.
-        node_html: Un <strong>nodo</strong> é un punto no mapa, como un restaurante
+          empregar para edita-lo mapa.
+        node_html: Un <strong>nó</strong> é un punto no mapa, coma un restaurante
           ou unha árbore.
         way_html: Un <strong>camiño</strong> é unha liña ou área, como unha estrada,
-          un arroio, un lago ou un edificio.
-        tag_html: Unha <strong>etiqueta</strong> é unha peza de datos sobre un nodo
+          un regato, unha lagoa ou un edificio.
+        tag_html: Unha <strong>etiqueta</strong> é unha peza de datos sobre un nó
           ou un camiño, como o nome dun restaurante ou o límite de velocidade dunha
           estrada.
       rules:
         title: Regras!
         paragraph_1_html: OpenStreetMap ten poucas regras formais, pero esperamos
-          que todos os participantes colaboraren e se comuniquen coa comunidade. Se
-          está considerando algunha actividade que non sexa a edición manual, lea
-          e siga as instrucións sobre <a href='https://wiki.openstreetmap.<a href='http://wiki.openstreetmap.org/wiki/Automated_Edits_code_of_conduct'></a>org/wiki/Import/Guidelines'>importacións</a>
+          que tódolos participantes contribúan e se comuniquen ca comunidade. Se estás
+          a estudar algunha actividade que non sexa a edición manual, le e segue as
+          instrucións sobre <a href='https://wiki.openstreetmap.<a href='http://wiki.openstreetmap.org/wiki/Automated_Edits_code_of_conduct'></a>org/wiki/Import/Guidelines'>importacións</a>
           e <a href='https://wiki.openstreetmap.org/wiki/Import/Automated_Edits_code_of_conduct'>edicións
           automatizadas</a>.
       questions:
         title: Ten algunha pregunta?
         paragraph_1_html: |-
-          O OpenStreetMap ten varios recursos para aprender sobre o proxecto, para formular e responder
+          O OpenStreetMap ten varios recursos para aprender sobre o proxecto, para formular e respostar
           preguntas, así como para debater e documentar colaborativamente sobre temas de cartografía.
-          <a href='%{help_url}'>Obteña axuda aquí</a>.
+          <a href='%{help_url}'>Obteña axuda eiquí</a>.
       start_mapping: Comezar a cartografar
       add_a_note:
         title: Non ten tempo para editar? Engada unha nota!
@@ -1741,8 +1756,8 @@ gl:
           no botón de gardar e os outros contribuíntes comprobaranlo.'
   traces:
     visibility:
-      private: Privado (só compartido como anónimo; puntos desordenados)
-      public: Público (amosado na listaxe de pistas e como anónimo; puntos desordeados)
+      private: Privado (só compartido coma anónimo; puntos desordenados)
+      public: Público (amosado na listaxe de pistas e coma anónimo; puntos desordeados)
       trackable: Rastrexable (só compartido como anónimo; puntos ordenados coa data
         e hora)
       identifiable: Identificábel (amosado na listaxe de pistas e coma identificábel;
@@ -1765,7 +1780,7 @@ gl:
         na base de datos. Isto adoita ocorrer nun período de tempo de media hora.
         Recibirá un correo electrónico cando remate.
       upload_failed: Desculpa, a subida GPX fallou. Avisouse a un administrador do
-        erro. Inténteo de novo.
+        erro. Ténteo de novo.
       traces_waiting:
         one: Ten %{count} pista á espera de ser cargada. Considere agardar a que remate
           antes de cargar máis para non bloquear a cola do resto de usuarios.
@@ -1785,9 +1800,10 @@ gl:
       description: 'Descrición:'
       tags: 'Etiquetas:'
       tags_help: separadas por comas
-      save_button: Gardaos cambios
+      save_button: Garda-los cambios
       visibility: 'Visibilidade:'
       visibility_help: que significa isto?
+      visibility_help_url: https://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces
     update:
       updated: Ruta actualizada
     trace_optionals:
@@ -1838,9 +1854,9 @@ gl:
       public_traces_from: Pistas GPS públicas de %{user}
       description: Explorar as pistas GPS cargadas recentemente
       tagged_with: ' etiquetadas con %{tags}'
-      empty_html: Aínda non hai nada por aquí. <a href='%{upload_link}'>Cargue unha
+      empty_html: Aínda non hai ren por eiquí. <a href='%{upload_link}'>Cargue unha
         nova pista</a> ou obteña máis información sobre as pistas GPS na <a href='https://wiki.openstreetmap.org/wiki/Beginners_Guide_1.2'>páxina
-        do wiki</a>.
+        da wiki</a>.
       upload_trace: Cargar unha pista
       see_all_traces: Ollar todas as pistas
       see_my_traces: Ollar as miñas pistas
@@ -1877,7 +1893,7 @@ gl:
       blocked: O seu acceso á API foi bloqueado. Acceda ao sistema para atopar máis
         información na interface web.
       need_to_see_terms: O seu acceso á API está suspendido temporalmente. Acceda
-        ao sistema para ollar os termos do colaborador. Non ten que aceptalos, pero
+        ao sistema para ollar os termos do contribuínte. Non ten que aceptalos, pero
         debe coñecelos.
   oauth:
     authorize:
@@ -1888,11 +1904,11 @@ gl:
       allow_to: 'Permitir á aplicación de cliente a:'
       allow_read_prefs: ler as súas preferencias de usuario.
       allow_write_prefs: modificar as súas preferencias de usuario.
-      allow_write_diary: crear entradas de diario, comentarios e facer amigos.
+      allow_write_diary: crear entradas de diario, comentarios e facer amizades.
       allow_write_api: modificar o mapa.
       allow_read_gpx: ler as súas pistas GPS privadas.
       allow_write_gpx: cargar pistas GPS.
-      allow_write_notes: modificaas notas.
+      allow_write_notes: modifica-las notas.
       grant_access: Permitir o acceso
     authorize_success:
       title: Aceptouse a solicitude de autorización
@@ -1927,11 +1943,11 @@ gl:
       requests: 'Solicitar os seguintes permisos ao usuario:'
       allow_read_prefs: ler as súas preferencias de usuario.
       allow_write_prefs: modificar as súas preferencias de usuario.
-      allow_write_diary: crear entradas de diario, comentarios e facer amigos.
+      allow_write_diary: crear entradas de diario, comentarios e facer amizades.
       allow_write_api: modificar o mapa.
       allow_read_gpx: ler as súas pistas GPS privadas.
       allow_write_gpx: cargar pistas GPS.
-      allow_write_notes: modificaas notas.
+      allow_write_notes: modifica-las notas.
     index:
       title: Os meus datos OAuth
       my_tokens: As miñas aplicacións rexistradas
@@ -1954,11 +1970,11 @@ gl:
       requests: 'Solicitar os seguintes permisos ao usuario:'
       allow_read_prefs: ler as súas preferencias de usuario.
       allow_write_prefs: modificar as súas preferencias de usuario.
-      allow_write_diary: crear entradas de diario, comentarios e facer amigos.
+      allow_write_diary: crear entradas de diario, comentarios e facer amizades.
       allow_write_api: modificar o mapa.
       allow_read_gpx: ler as súas pistas GPS privadas.
       allow_write_gpx: cargar pistas GPS.
-      allow_write_notes: modificaas notas.
+      allow_write_notes: modifica-las notas.
     not_found:
       sorry: Sentímolo, non se puido atopar este %{type}.
     create:
@@ -1969,22 +1985,22 @@ gl:
       flash: Destruíu o rexistro da aplicación de cliente
   user:
     login:
-      title: Rexistro
+      title: Rexistrarse
       heading: Rexistro
       email or username: 'Enderezo de correo electrónico ou nome de usuario:'
       password: 'Contrasinal:'
       openid: '%{logo} OpenID:'
       remember: Lembrádeme
       lost password link: Perdeu o seu contrasinal?
-      login_button: Acceder ao sistema
+      login_button: Inicia-la sesión
       register now: Rexístrese agora
       with username: 'Xa ten unha conta no OpenStreetMap? Acceda ao sistema co seu
         nome de usuario e contrasinal:'
-      with external: 'O ben, utilice un servizo de terceiros para acceder:'
+      with external: 'Ou ben, empregue un servizo de terceiros para accederes:'
       new to osm: É novo no OpenStreetMap?
       to make changes: Para realizar as modificacións nos datos do OpenStreetMap,
         cómpre ter unha conta.
-      create account minute: Crear unha conta. Tan só leva un minuto.
+      create account minute: Crear unha conta. Tan só cústache un minuto.
       no account: Non está rexistrado?
       account not active: Sentímolo, a súa conta aínda non está activada.<br />Prema
         na ligazón que hai no correo de confirmación da conta ou <a href="%{reconfirm}">solicite
@@ -1996,36 +2012,36 @@ gl:
       openid_logo_alt: Acceder ao sistema cun OpenID
       auth_providers:
         openid:
-          title: Acceder ao sistema co OpenID
+          title: Inicia-la sesión co OpenID
           alt: Acceder ao sistema cun URL OpenID
         google:
           title: Acceder ao sistema co Google
           alt: Acceder ao sistema cun OpenID de Google
         facebook:
-          title: Acceda co Facebook
+          title: Inicia-la sesión co Facebook
           alt: Iniciar sesión cunha conta de Facebook
         windowslive:
-          title: Iniciar sesión co Windows Live
+          title: Inicia-la sesión co Windows Live
           alt: Iniciar sesión cunha conta de Windows Live
         github:
-          title: Acceder con GitHub
+          title: Inicia-la sesión co GitHub
           alt: Acceder cunha conta de GitHub
         wikipedia:
-          title: Iniciar sesión con Wikipedia
+          title: Inicia-la sesión ca Wikipedia
           alt: Iniciar sesión cunha conta de Wikipedia
         yahoo:
-          title: Acceder ao sistema con Yahoo
+          title: Inicia-la sesión co Yahoo
           alt: Acceder ao sistema cun OpenID de Yahoo
         wordpress:
-          title: Acceder ao sistema con Wordpress
+          title: Inicia-la sesión co Wordpress
           alt: Acceder ao sistema cun OpenID de Wordpress
         aol:
-          title: Acceder ao sistema con AOL
+          title: Inicia-la sesión co AOL
           alt: Acceder ao sistema cun OpenID de AOL
     logout:
-      title: Saír
+      title: Pecha-la sesión
       heading: Saír do OpenStreetMap
-      logout_button: Saír
+      logout_button: Pecha-la sesión
     lost_password:
       title: Contrasinal perdido
       heading: Esqueceu o contrasinal?
@@ -2042,7 +2058,7 @@ gl:
       password: 'Contrasinal:'
       confirm password: 'Confirma-lo contrasinal:'
       reset: Restablecer o contrasinal
-      flash changed: Cambiouse o seu contrasinal.
+      flash changed: Mudouse o seu contrasinal.
       flash token bad: Non se atopou o pase. Quizais debería comprobar o enderezo
         URL.
     new:
@@ -2050,15 +2066,15 @@ gl:
       no_auto_account_create: Por desgraza, arestora non podemos crear automaticamente
         unha conta para vostede.
       contact_webmaster: Póñase en contacto co <a href="%{webmaster}">webmaster</a>
-        para que cree unha conta por vostede; intentaremos xestionar a solicitude
-        máis axiña que poidamos.
+        para que cree unha conta por vostede; tentaremos xestiona-la solicitude o
+        máis axiña que poidamos.
       about:
         header: Libre e editable
         html: |-
           <p>A diferenza doutros mapas, o OpenStreetMap está completamente creado por xente coma vostede, e calquera persoa é libre de corrixilo, actualizalo, descargalo e utilizalo.</p>
           <p>Rexístrese para comezar a contribuír. Enviarémoslle un correo electrónico para confirmar a súa conta.</p>
-      license_agreement: Cando confirme a súa conta necesitará aceptaos <a href="https://www.osmfoundation.org/wiki/License/Contributor_Terms">termos
-        do colaborador</a>.
+      license_agreement: Cando confirme a súa conta necesitará acepta-los <a href="https://www.osmfoundation.org/wiki/License/Contributor_Terms">termos
+        do contribuínte</a>.
       email address: 'Enderezo de correo electrónico:'
       confirm email address: Confirma-lo enderezo de correo electrónico
       not displayed publicly: O seu enderezo IP non se amosa publicamente, vexa a
@@ -2075,24 +2091,27 @@ gl:
       auth no password: Coa autenticación de terceiros non se precisa un contrasinal,
         aínda que hai algunhas ferramentas e servidores que aínda a solicitan.
       continue: Rexistrarse
-      terms accepted: Grazas por aceptar os novos termos do colaborador!
-      terms declined: Sentimos que decidise non aceptar os novos Termos do colaborador.
+      terms accepted: Grazas por acepta-los novos termos do contribuínte!
+      terms declined: Sentimos que decidise non acepta-los novos Termos do contribuínte.
         Para obter máis información, consulte <a href="%{url}">esta páxina wiki</a>.
+      terms declined url: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
     terms:
-      title: Termos do colaborador
-      heading: Termos do colaborador
+      title: Termos do contribuínte
+      heading: Termos do contribuínte
       read and accept: Por favor, lea o acordo seguinte e prema no botón "Aceptar"
         para confirmar que acepta os termos deste acordo para as súas contribucións
         anteriores e futuras.
       consider_pd: Ademais do acordo anterior, considero que as miñas contribucións
         están no dominio público
       consider_pd_why: que é isto?
+      consider_pd_why_url: https://www.osmfoundation.org/wiki/License/Why_would_I_want_my_contributions_to_be_public_domain
       guidance: 'Información para axudar a entender estes termos: un <a href="%{summary}">resumo</a>
         e algunhas <a href="%{translations}">traducións non oficiais</a>'
       agree: Acepto
+      declined: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
       decline: Rexeitar
-      you need to accept or decline: Lea e, a continuación, acepte ou rexeite os novos
-        Termos do colaborador para continuar.
+      you need to accept or decline: Lea e, deseguido, acepte ou rexeite os novos
+        Termos do contribuínte para proseguer.
       legale_select: 'Seleccione o seu país de residencia:'
       legale_names:
         france: Francia
@@ -2104,12 +2123,12 @@ gl:
       body: Non existe ningún usuario co nome "%{user}". Comprobe a ortografía ou
         que a ligazón que seguiu estea ben.
       deleted: borrado
-    view:
+    show:
       my diary: O meu diario
       new diary entry: nova entrada no diario
       my edits: As miñas edicións
       my traces: As miñas pistas
-      my notes: As miñas notas de mapa
+      my notes: As miñas notas do mapa
       my messages: As miñas mensaxes
       my profile: O meu perfil
       my settings: Os meus axustes
@@ -2121,12 +2140,12 @@ gl:
       diary: Diario
       edits: Edicións
       traces: Pistas
-      notes: Notas de mapa
-      remove as friend: Eliminar como amigo
-      add as friend: Engadir como amigo
-      mapper since: 'Cartógrafo desde:'
+      notes: Notas do mapa
+      remove as friend: Eliminar coma amizade
+      add as friend: Engadir coma amizade
+      mapper since: 'Cartógrafo dende:'
       ago: (hai %{time_in_words_ago})
-      ct status: 'Termos do colaborador:'
+      ct status: 'Termos do contribuínte:'
       ct undecided: Indeciso
       ct declined: Rexeitou
       ct accepted: Aceptou hai %{ago}
@@ -2138,14 +2157,14 @@ gl:
       description: Descrición
       user location: Localización do usuario
       if set location: Defina a súa localización na páxina de %{settings_link} para
-        ollar usuarios de lugares próximos.
+        ollar usuarios de lugares preto de ti.
       settings_link_text: axustes
-      my friends: Os meus amigos
-      no friends: Aínda non engadiu ningún amigo.
+      my friends: As miñas amizades
+      no friends: Aínda non engadiu ningunha amizade.
       km away: a %{count}km de distancia
       m away: a %{count}m de distancia
-      nearby users: Outros usuarios próximos
-      no nearby users: Aínda non hai usuarios que estean situados na súa proximidade.
+      nearby users: Outros usuarios preto de ti
+      no nearby users: Aínda non hai usuarios que estean situados preto de vostede.
       role:
         administrator: Este usuario é administrador
         moderator: Este usuario é moderador
@@ -2163,18 +2182,18 @@ gl:
       deactivate_user: Desactivar este usuario
       confirm_user: Confirmar este usuario
       hide_user: Agochar este usuario
-      unhide_user: Descubrir este usuario
+      unhide_user: Descobrir este usuario
       delete_user: Borrar este usuario
       confirm: Confirmar
-      friends_changesets: conxuntos de cambios dos amigos
-      friends_diaries: entradas de diario dos amigos
-      nearby_changesets: conxuntos de cambios dos usuarios de lugares próximos
-      nearby_diaries: entradas de diario dos usuarios de lugares próximos
+      friends_changesets: conxuntos de cambios das amizades
+      friends_diaries: entradas de diario das amizades
+      nearby_changesets: conxuntos de cambios dos usuarios de lugares preto de ti
+      nearby_diaries: entradas de diario dos usuarios de lugares preto de ti
       report: Denunciar este usuario
     popup:
       your location: A súa localización
-      nearby mapper: Cartógrafo próximo
-      friend: Amigo
+      nearby mapper: Cartógrafo preto de ti
+      friend: Amizade
     account:
       title: Edita-la conta
       my settings: Os meus axustes
@@ -2204,38 +2223,39 @@ gl:
           públicos.</li><li>Non é posíbel reverter esta acción e agora os novos usuarios
           xa son públicos por defecto.</li></ul>
       contributor terms:
-        heading: 'Termos do colaborador:'
-        agreed: Aceptou os novos termos do colaborador.
-        not yet agreed: Aínda non aceptou os novos termos do colaborador.
-        review link text: Siga esta ligazón para revisar e aceptaos novos termos
-          do colaborador.
+        heading: 'Termos do contribuínte:'
+        agreed: Aceptou os novos termos do contribuínte.
+        not yet agreed: Aínda non aceptou os novos termos do contribuínte.
+        review link text: Siga esta ligazón para revisar e acepta-los novos termos
+          do contribuínte.
         agreed_with_pd: Tamén declarou que considera que as súas edicións pertencen
           ao dominio público.
+        link: https://www.osmfoundation.org/wiki/License/Contributor_Terms
         link text: que é isto?
       profile description: 'Descrición do perfil:'
       preferred languages: 'Linguas preferidas:'
       preferred editor: 'Editor preferido:'
       image: 'Imaxe:'
       gravatar:
-        gravatar: Usar Gravatar
-        link: http://wiki.openstreetmap.org/wiki/Gravatar
+        gravatar: Emprega-lo Gravatar
+        link: https://wiki.openstreetmap.org/wiki/Gravatar
         link text: que é isto?
         disabled: Gravatar foi desactivado.
         enabled: A visualización do seu Gravatar foi activada.
       new image: Engadir unha imaxe
-      keep image: Mantea imaxe actual
-      delete image: Eliminaa imaxe actual
-      replace image: Substituía imaxe actual
+      keep image: Mante-la imaxe actual
+      delete image: Elimina-la imaxe actual
+      replace image: Substituí-la imaxe actual
       image size hint: (as imaxes cadradas de, polo menos, 100x100 funcionan mellor)
       home location: 'Lugar de orixe:'
       no home location: Non inseriu o seu lugar de orixe.
       latitude: 'Latitude:'
       longitude: 'Lonxitude:'
-      update home location on click: Quere actualizar o domicilio ao premer sobre
-        o mapa?
-      save changes button: Gardaos cambios
+      update home location on click: Quere actualiza-lo lugar do enderezo ó premer
+        sobre o mapa?
+      save changes button: Garda-los cambios
       make edits public button: Facer públicas todas as miñas edicións
-      return to profile: Volver ao perfil
+      return to profile: Voltar ó perfil
       flash update success confirm needed: Información de usuario actualizada correctamente.
         Procura no teu correo electrónico unha mensaxe para confirma-lo teu novo enderezo.
       flash update success: Información de usuario actualizada correctamente.
@@ -2259,11 +2279,11 @@ gl:
         proceso sen problemas.
       failure: Non se atopou o usuario "%{name}".
     confirm_email:
-      heading: Confirma-lo troco do enderezo de correo electrónico
+      heading: Confirma-lo cambio do enderezo de correo electrónico
       press confirm button: Prema sobre o botón de confirmación que aparece deseguido
         para confirmar o seu novo enderezo de correo electrónico.
       button: Confirmar
-      success: Confirmouse o cambio do seu enderezo de correo electrónico!
+      success: Confirmámoslle o cambio enderezo de enderezo electrónico!
       failure: Xa se confirmou un enderezo de correo electrónico con este pase.
       unknown_token: Ese código de confirmación caducou ou non existe.
     set_home:
@@ -2272,26 +2292,26 @@ gl:
       flash success: Todas as súas edicións son públicas e agora está autorizado a
         editar.
     make_friend:
-      heading: Quere engadir a %{user} como amigo?
-      button: Engadir como amigo
-      success: '%{name} xa é o seu amigo!'
-      failed: Houbo un erro ao engadir a %{name} como amigo.
-      already_a_friend: Xa é amigo de %{name}.
+      heading: Quere engadir a %{user} coma amizade?
+      button: Engadir coma amizade
+      success: '%{name} xa é a súa amizade!'
+      failed: Houbo un erro ó engadir a %{name} coma amizade.
+      already_a_friend: Xa é amizade de %{name}.
     remove_friend:
-      heading: Quere eliminar a %{user} dos amigos?
-      button: Eliminar como amigo
-      success: '%{name} foi eliminado dos seus amigos.'
-      not_a_friend: '%{name} non é un dos seus amigos.'
+      heading: Quere eliminar a %{user} das amizades?
+      button: Eliminar coma amizade
+      success: '%{name} foi eliminado das súas amizades.'
+      not_a_friend: '%{name} non é unha das súas amizades.'
     filter:
       not_an_administrator: Ten que ser administrador para poder levar a cabo esta
         acción.
-    list:
+    index:
       title: Usuarios
       heading: Usuarios
       showing:
         one: Páxina %{page} (%{first_item} de %{items})
         other: Páxina %{page} (%{first_item}-%{last_item} de %{items})
-      summary: '%{name} creado desde %{ip_address} o %{date}'
+      summary: '%{name} creado dende %{ip_address} o %{date}'
       summary_no_ip: '%{name} creado o %{date}'
       confirm: Confirma-los usuarios seleccionados
       hide: Agochar os usuarios seleccionados
@@ -2307,7 +2327,7 @@ gl:
         </p>
         <p>
           Axiña un administrador revisará esta decisión.
-          Quizais queira contactar co %{webmaster} para conversar sobre isto.
+          Se cadra queira contactar co %{webmaster} para parolar sobre isto.
         </p>
     auth_failure:
       connection_failed: Fallou a conexión ó proveedor de autenticación
@@ -2351,52 +2371,51 @@ gl:
       non_moderator_revoke: Cómpre ser moderador para revogar un bloqueo.
     not_found:
       sorry: Non se puido atopar o bloqueo de usuario número %{id}.
-      back: Volver ao índice
+      back: Voltar ó índice
     new:
       title: Creando un bloqueo a %{name}
       heading: Creando un bloqueo a %{name}
-      reason: O motivo polo que bloquea a %{name}. Permaneza tranquilo e sexa razoable,
-        dando a maior cantidade de detalles sobre a situación e lembrando que a mensaxe
-        será visible publicamente. Teña presente que non todos os usuarios entenden
-        o argot da comunidade, de modo que intente utilizar termos comúns.
+      reason: O motivo polo que bloquea a %{name}. Fique calmo e sexa razoábel, dando
+        a maior cantidade de detalles sobre a situación e lembrando que a mensaxe
+        será visíbel publicamente. Teña presente que non tódolos usuarios entenden
+        o argot da comunidade, de modo que tente empregar termos comúns.
       period: Por canto tempo, a partir de agora, o usuario terá bloqueado o uso da
         API?
       submit: Crear un bloqueo
       tried_contacting: Púxenme en contacto co usuario e pedinlle que parase.
-      tried_waiting: Deille ao usuario tempo suficiente para responder ás mensaxes.
+      tried_waiting: Dálle ó usuario tempo suficiente para respostar ás mensaxes.
       needs_view: O usuario ten que acceder ao sistema antes de que o bloqueo sexa
         retirado
-      back: Ollar todos os bloqueos
+      back: Ollar tódolos bloqueos
     edit:
       title: Editando o bloqueo de %{name}
       heading: Editando o bloqueo de %{name}
-      reason: O motivo polo que bloquea a %{name}. Permaneza tranquilo e sexa razoable,
-        dando a maior cantidade de detalles sobre a situación. Teña presente que non
-        todos os usuarios entenden o argot da comunidade, de modo que intente utilizar
-        termos comúns.
+      reason: O motivo polo que bloquea a %{name}. Fique calmo e sexa razoábel, dando
+        a maior cantidade de detalles sobre a situación. Teña presente que non tódolos
+        usuarios entenden o argot da comunidade, de modo que tente empregar termos
+        comúns.
       period: Por canto tempo, a partir de agora, o usuario terá bloqueado o uso da
         API?
-      submit: Actualizao bloqueo
+      submit: Actualiza-lo bloqueo
       show: Ollar este bloqueo
-      back: Ollar todos os bloqueos
+      back: Ollar tódolos bloqueos
       needs_view: O usuario ten que acceder ao sistema antes de que o bloqueo sexa
         retirado?
     filter:
       block_expired: O bloqueo xa caducou. Non se pode editar.
       block_period: O período de bloqueo debe elixirse de entre os valores presentes
-        na lista despregable.
+        na listaxe despregábel.
     create:
-      try_contacting: Intente poñerse en contacto co usuario antes de bloquealo. Déalle
-        un prazo de tempo razoable para que poida responder.
-      try_waiting: Intente dar ao usuario un prazo razoable para responder antes de
-        bloquealo.
+      try_contacting: Tente en poñerse en contacto co usuario antes de bloquealo.
+        Déalle un prazo de tempo razoábel para que poida respostar.
+      try_waiting: Tente dar ó usuario un prazo razoábel para respostar antes de bloquealo.
       flash: Bloqueo creado para o usuario %{name}.
     update:
       only_creator_can_edit: Só o moderador que creou o bloqueo pode editalo.
       success: Bloqueo actualizado.
     index:
       title: Bloqueos de usuario
-      heading: Lista de bloqueos de usuario
+      heading: Listaxe dos bloqueos de usuario
       empty: Aínda non se fixo ningún bloqueo.
     revoke:
       title: Revogando o bloqueo en %{block_on}
@@ -2411,17 +2430,17 @@ gl:
       other: '%{count} horas'
     helper:
       time_future: Remata en %{time}.
-      until_login: Activo ata que o usuario inicie sesión.
+      until_login: Activo até que o usuario inicie sesión.
       time_future_and_until_login: Remata en %{time} e despois de que o usuario iniciou
         a sesión.
       time_past: Rematou hai %{time}.
     blocks_on:
       title: Bloqueos feitos a %{name}
-      heading: Lista dos bloqueos feitos a %{name}
+      heading: Listaxe dos bloqueos feitos a %{name}
       empty: '%{name} aínda non foi bloqueado.'
     blocks_by:
       title: Bloqueos feitos por %{name}
-      heading: Lista dos bloqueos feitos por %{name}
+      heading: Listaxe dos bloqueos feitos por %{name}
       empty: '%{name} aínda non efectuou ningún bloqueo.'
     show:
       title: '%{block_on} bloqueado por %{block_by}'
@@ -2436,7 +2455,7 @@ gl:
       revoke: Revogar!
       confirm: Está seguro?
       reason: 'Motivo para o bloqueo:'
-      back: Ollar todos os bloqueos
+      back: Ollar tódolos bloqueos
       revoker: 'Autor da revogación:'
       needs_view: O usuario ten que acceder ao sistema antes de que o bloqueo sexa
         retirado.
@@ -2458,15 +2477,15 @@ gl:
     comment:
       opened_at_html: Creado hai %{when}
       opened_at_by_html: Creado hai %{when} por %{user}
-      commented_at_html: Subido hai %{when}
-      commented_at_by_html: Cargado hai %{when} por %{user}
+      commented_at_html: Actualizado hai %{when}
+      commented_at_by_html: Actualizado hai %{when} por %{user}
       closed_at_html: Resolto hai %{when}
       closed_at_by_html: Resolto hai %{when} por %{user}
       reopened_at_html: Reactivado hai %{when}
       reopened_at_by_html: Reactivado hai %{when} por %{user}
     rss:
       title: Notas do OpenStreetMap
-      description_area: Unha lista das notas recibidas, comentadas ou pechadas na
+      description_area: Unha listaxe das notas recibidas, comentadas ou pechadas na
         súa zona [(%{min_lat}|%{min_lon}) -- (%{max_lat}|%{max_lon})]
       description_item: Unha fonte de novas RSS para a nota %{id}
       opened: nota nova (preto de %{place})
@@ -2507,7 +2526,7 @@ gl:
       center_marker: Centrar o mapa no marcador
       paste_html: Pegue o código HTML para incluílo na páxina web
       view_larger_map: Ver un mapa máis grande
-      only_standard_layer: Só a capa estándar pode exportarse como unha imaxe
+      only_standard_layer: Só a capa estándar pode exportarse coma unha imaxe
     embed:
       report_problem: Informar sobre un problema
     key:
@@ -2522,43 +2541,43 @@ gl:
         title: Amosa-la miña localización
         popup: Está a {distance} {unit} deste punto
       base:
-        standard: Estándar
+        standard: Mapa estándar
         cycle_map: Mapa ciclista
-        transport_map: Mapa de transporte
-        hot: Humanitario
+        transport_map: Mapa do transporte
+        hot: Mapa humanitario
       layers:
         header: Capas do mapa
-        notes: Notas de mapa
+        notes: Notas do mapa
         data: Datos do mapa
         gps: Trazas GPS públicas
-        overlays: Activar a sobreposición para reparar o mapa
+        overlays: Activa-las sobreposicións para solucionares os problemas no mapa
         title: Capas
       copyright: © <a href='%{copyright_url}'>Contribuíntes do OpenStreetMap</a>
       donate_link_text: <a class='donate-attr' href='%{donate_url}'>Facer unha doazón</a>
     site:
       edit_tooltip: Edita-lo mapa
       edit_disabled_tooltip: Achegue para edita-lo mapa
-      createnote_tooltip: Engadir unha nota ao mapa
+      createnote_tooltip: Engadir unha nota ó mapa
       createnote_disabled_tooltip: Achegar o mapa para engadirlle unha nota
-      map_notes_zoom_in_tooltip: Achegar para ver as notas do mapa
+      map_notes_zoom_in_tooltip: Achegar para veres as notas do mapa
       map_data_zoom_in_tooltip: Achegar para ver os datos do mapa
-      queryfeature_tooltip: Consultaas características
+      queryfeature_tooltip: Consulta-las características
       queryfeature_disabled_tooltip: Achegar para consulta-las características
     changesets:
       show:
         comment: Comentario
         subscribe: Subscribirse
-        unsubscribe: Cancelaa subscrición
+        unsubscribe: Cancela-la subscrición
         hide_comment: agochar
         unhide_comment: amosar
     notes:
       new:
-        intro: Atopou un erro ou descubriu que falta algún dato? Informe aos outros
+        intro: Atopou un erro ou descobriu que falla algún dato? Informe ós outros
           cartógrafos para que poidamos solucionalo. Mova o marcador á posición correcta
-          e escriba unha nota explicando o problema.
-        advice: A túa nota será pública e poderá utilizarse para actualizar o mapa,
+          e escriba unha nota expoñendo o problema.
+        advice: A túa nota será pública e poderá empregarse para actualiza-lo mapa,
           por conseguinte, non insiras información persoal, nin datos de mapas protexidos
-          por dereitos de autoría ou listas de directorios.
+          por dereitos de autoría ou listaxes de directorios.
         add: Engadir a nota
       show:
         anonymous_warning: Esta nota inclúe comentarios de usuarios anónimos que deben
@@ -2664,7 +2683,7 @@ gl:
           tenth: 10.ª
       time: Tempo
     query:
-      node: Nodo
+      node: Nó
       way: Camiño
       relation: Relación
       nothing_found: Non se atoparon características
@@ -2672,7 +2691,7 @@ gl:
       timeout: Tempo de espera esgotado ó contactar a %{server}
     context:
       directions_from: Indicacións dende aquí
-      directions_to: Indicacións ata aquí
+      directions_to: Indicacións até aquí
       add_note: Engadir unha nota aquí
       show_address: Amosar enderezo
       query_features: Consultar características
@@ -2685,8 +2704,8 @@ gl:
       title: Edita-la redacción
     index:
       empty: Non hai ningunha redacción que amosar.
-      heading: Lista de redaccións
-      title: Lista de redaccións
+      heading: Listaxe das redaccións
+      title: Listaxe das redaccións
     new:
       description: Descrición
       heading: Escriba a información da nova redacción
index 497e81700f3659fd9d567b186ac34b6f4d580aca..025a97119f5d1a45c91421f8423bb41c4fc72f8f 100644 (file)
@@ -251,7 +251,7 @@ he:
       user: משתמש
       comment: הערה
       area: שטח
-    list:
+    index:
       title: ערכות שינויים
       title_user: ערכות שינויים של %{user}
       title_friend: ערכות שינויים של החברים שלי
@@ -276,7 +276,7 @@ he:
     new:
       title: רשומת יומן חדשה
       publish_button: פרסום
-    list:
+    index:
       title: יומנים של המשתמש
       title_friends: יומנים של חברים
       title_nearby: יומנים של משתמשים בסביבה
@@ -299,7 +299,7 @@ he:
       use_map_link: להשתמש במפה
       save_button: שמירה
       marker_text: מיקום רשומת היומן
-    view:
+    show:
       title: היומן של %{user}&rlm; | %{title}
       user_title: היומן של %{user}‏
       leave_a_comment: הוספת תגובה
@@ -1937,7 +1937,7 @@ he:
       heading: המשתמש %{user} אינו קיים
       body: סליחה, אין חשבון בשם %{user}. אולי האיות לא נכון ואולי לחצת על קישור שגוי.
       deleted: נמחק
-    view:
+    show:
       my diary: היומן שלי
       new diary entry: רשומה חדשה ביומן
       my edits: העריכות שלי
@@ -2110,7 +2110,7 @@ he:
       not_a_friend: '%{name} לא אחד מהחברים שלך.'
     filter:
       not_an_administrator: צריך להיות מנהל כדי לבצע את הפעולה הזאת.
-    list:
+    index:
       title: משתמשים
       heading: משתמשים
       showing:
index 03e79eca49b7c2067896e178102d174ce52bda21..8cab0b0040c9c663584f439d0ff5727fa02d6f41 100644 (file)
@@ -238,7 +238,7 @@ hr:
       user: Korisnik
       comment: Komentar
       area: Područje
-    list:
+    index:
       title: Setovi promjena
       title_user: Setovi promjena od %{user}
       title_friend: Paketi uređivanja tvojih prijatelja
@@ -264,7 +264,7 @@ hr:
     new:
       title: Novi zapis u dnevnik
       publish_button: Objavi
-    list:
+    index:
       title: Dnevnici korisnika
       title_friends: Dnevnici prijatelja
       title_nearby: Dnevnici obližnjih članova
@@ -287,7 +287,7 @@ hr:
       use_map_link: koristi kartu
       save_button: Spremi
       marker_text: Lokacija unosa u dnevnik
-    view:
+    show:
       title: Blog korisnika %{user} | %{title}
       user_title: '%{user}ov dnevnik'
       leave_a_comment: Ostavi komentar
@@ -1623,7 +1623,7 @@ hr:
       body: Žao mi je, ne postoji korisnik s imenom %{user}. Molim provjerite ukucano
         ili je link na koji ste kliknuli neispravan.
       deleted: obrisano
-    view:
+    show:
       my diary: Moj dnevnik
       new diary entry: novi unos u dnevnik
       my edits: Moje promjene
@@ -1782,7 +1782,7 @@ hr:
       not_a_friend: '%{name} nije tvoj prijatelj.'
     filter:
       not_an_administrator: Morate biti administrator za izvođenje ovih akcija.
-    list:
+    index:
       title: Korisnici
       heading: Korisnici
       showing:
index 75e7a7d475badf1bf7637a9b082889a18497b7e6..c0d9ca3ab340d2fbe92346623eef04c321585170 100644 (file)
@@ -232,7 +232,7 @@ hsb:
       user: Wužiwar
       comment: Komentar
       area: Wobłuk
-    list:
+    index:
       title: Sadźby změnow
       title_user: Sadźby změnow wot %{user}
       title_friend: Změny twojich přećelow
@@ -257,7 +257,7 @@ hsb:
     new:
       title: Nowy dźenikowy zapisk
       publish_button: Wozjewić
-    list:
+    index:
       title: Dźeniki wužiwarjow
       title_friends: Dźeniki přećelow
       title_nearby: Dźeniki wužiwarjow w bliskosći
@@ -280,7 +280,7 @@ hsb:
       use_map_link: kartu wužiwać
       save_button: Składować
       marker_text: Městno dźenikoweho zapiska
-    view:
+    show:
       title: Dźenik %{user} | %{title}
       user_title: dźenik wužiwarja %{user}
       leave_a_comment: Spisaj komentar
@@ -1849,7 +1849,7 @@ hsb:
       body: Bohužel žadyn wužiwar z mjenom %{user} njeje. Prošu skontroluj prawopis,
         abo wotkaz, na kotryž sy kliknył, je njepłaćiwy.
       deleted: zhašany
-    view:
+    show:
       my diary: Mój dźenik
       new diary entry: nowy dźenikowy zapisk
       my edits: Moje změny
@@ -2022,7 +2022,7 @@ hsb:
       not_a_friend: '%{name} twój přećel njeje.'
     filter:
       not_an_administrator: Dyrbiš administrator być, zo by tutu akciju wuwjedł.
-    list:
+    index:
       title: Wužiwarjo
       heading: Wužiwarjo
       showing:
index b0d449f092ea8253a2f089cdfbe80b80f1345873..3799bfc8482dc3d2af6fbf37ce9cf720f89940bf 100644 (file)
@@ -250,7 +250,7 @@ hu:
       user: Felhasználó
       comment: Megjegyzés
       area: Terület
-    list:
+    index:
       title: Módosításcsomagok
       title_user: '%{user} módosításcsomagjai'
       title_friend: Ismerőseim módosításcsomagjai
@@ -276,7 +276,7 @@ hu:
     new:
       title: Új naplóbejegyzés
       publish_button: Publikálás
-    list:
+    index:
       title: Felhasználók naplói
       title_friends: Ismerősök naplói
       title_nearby: Közeli felhasználók naplói
@@ -299,7 +299,7 @@ hu:
       use_map_link: térkép használata
       save_button: Mentés
       marker_text: Naplóbejegyzés helye
-    view:
+    show:
       title: '%{user} naplója | %{title}'
       user_title: '%{user} naplója'
       leave_a_comment: Hozzászólás írása
@@ -1966,7 +1966,7 @@ hu:
       body: Sajnálom, nincs %{user} nevű felhasználó. Ellenőrizd a helyességét, vagy
         lehet, hogy a link, amire kattintottál, rossz.
       deleted: törölve
-    view:
+    show:
       my diary: Naplóm
       new diary entry: új naplóbejegyzés
       my edits: Szerkesztéseim
@@ -2147,7 +2147,7 @@ hu:
     filter:
       not_an_administrator: Ennek a műveletnek az elvégzéséhez adminisztrátori jogosultsággal
         kell rendelkezned.
-    list:
+    index:
       title: Felhasználók
       heading: Felhasználók
       showing:
index 536f07727fe20f766a4e328f5a56c2f6b3f066c6..f5188f1ea2d629f8fd54de6a1c8098e9c36d6161 100644 (file)
@@ -237,7 +237,7 @@ ia:
       user: Usator
       comment: Commento
       area: Area
-    list:
+    index:
       title: Gruppos de modificationes
       title_user: Gruppos de modificationes per %{user}
       title_friend: Gruppos de modificationes facite per mi amicos
@@ -265,7 +265,7 @@ ia:
     new:
       title: Nove entrata de diario
       publish_button: Publicar
-    list:
+    index:
       title: Diarios de usatores
       title_friends: Diarios de amicos
       title_nearby: Diarios de usatores vicin
@@ -288,7 +288,7 @@ ia:
       use_map_link: usar carta
       save_button: Salveguardar
       marker_text: Loco de entrata de diario
-    view:
+    show:
       title: Diario de %{user} | %{title}
       user_title: Diario de %{user}
       leave_a_comment: Lassar un commento
@@ -1900,7 +1900,7 @@ ia:
       body: Non existe un usator con le nomine %{user}. Per favor verifica le orthographia,
         o pote esser que le ligamine que tu sequeva es incorrecte.
       deleted: delite
-    view:
+    show:
       my diary: Mi diario
       new diary entry: nove entrata de diario
       my edits: Mi modificationes
@@ -2078,7 +2078,7 @@ ia:
       not_a_friend: '%{name} non es un de tu amicos.'
     filter:
       not_an_administrator: Tu debe esser administrator pro executar iste action.
-    list:
+    index:
       title: Usatores
       heading: Usatores
       showing:
index dfb7d0e20005e42b632029b721ff55d287c075d5..69e9f896c2640df1b57128233960358e9193dbf8 100644 (file)
@@ -256,7 +256,7 @@ id:
       user: Pengguna
       comment: Komentar
       area: Area
-    list:
+    index:
       title: Set perubahan
       title_user: Set perubahan oleh %{user}
       title_friend: Set perubahan oleh teman saya
@@ -282,7 +282,7 @@ id:
     new:
       title: Entri Baru Catatan Harian
       publish_button: Terbitkan
-    list:
+    index:
       title: Catatan harian pengguna
       title_friends: Catatan harian teman
       title_nearby: Catatan harian pengguna terdekat
@@ -305,7 +305,7 @@ id:
       use_map_link: Gunakan peta
       save_button: Simpan
       marker_text: Lokasi entri catatan harian
-    view:
+    show:
       title: Catatan harian %{user} | %{title}
       user_title: Catatan harian %{user}
       leave_a_comment: Tinggalkan komentar
@@ -1961,7 +1961,7 @@ id:
       body: Maaf, tidak ada pengguna dengan nama %{user}. Silahkan cek kembali ejaan,
         atau mungkin link yang Anda klik salah.
       deleted: dihapus
-    view:
+    show:
       my diary: Catatan Harian Saya
       new diary entry: Entri baru catatan harian
       my edits: Suntingan Saya
@@ -2143,7 +2143,7 @@ id:
     filter:
       not_an_administrator: Anda harus merupakan administrator untuk melakukan tindakan
         ini.
-    list:
+    index:
       title: Pengguna
       heading: Pengguna
       showing:
index 8ae6170cc996983e76202243b7b62dd85f02d705..7f8920f2d5753abfae291fbc0f2dde643dbc861a 100644 (file)
@@ -248,7 +248,7 @@ is:
       user: Notandi
       comment: Athugasemd
       area: Svæði
-    list:
+    index:
       title: Breytingasett
       title_user: Breytingar eftir %{user}
       title_friend: Breytingar eftir vini mína
@@ -274,7 +274,7 @@ is:
     new:
       title: Ný bloggfærsla
       publish_button: Birta
-    list:
+    index:
       title: Blogg notenda
       title_friends: Blogg vina
       title_nearby: Blogg notenda í nágrenninu
@@ -297,7 +297,7 @@ is:
       use_map_link: finna á korti
       save_button: Vista
       marker_text: Staðsetning bloggfærslu
-    view:
+    show:
       title: Blogg | %{user}
       user_title: Blogg %{user}
       leave_a_comment: Bæta við athugasemd
@@ -2077,7 +2077,7 @@ is:
       body: Það er ekki til notandi með nafninu %{user}. Kannski slóstu nafnið rangt
         inn eða fylgdir ógildum tengli.
       deleted: eytt
-    view:
+    show:
       my diary: Bloggið mitt
       new diary entry: ný bloggfærsla
       my edits: Breytingarnar mínar
@@ -2260,7 +2260,7 @@ is:
       not_a_friend: '%{name} er ekki vinur þinn.'
     filter:
       not_an_administrator: Þú þarft að vera möppudýr til að framkvæma þessa aðgerð.
-    list:
+    index:
       title: Notendur
       heading: Notendur
       showing:
index 4ae80a274ee95452cea18187f86ede973fd3c94d..478460809c433e335d42beb345367afababf7a71 100644 (file)
@@ -273,7 +273,7 @@ it:
       user: Utente
       comment: Commento
       area: Area
-    list:
+    index:
       title: Gruppi di modifiche
       title_user: Gruppi di modifiche di %{user}
       title_friend: Gruppi di modifiche dei miei amici
@@ -300,7 +300,7 @@ it:
     new:
       title: Nuova voce del diario
       publish_button: Pubblica
-    list:
+    index:
       title: Diari degli utenti
       title_friends: Diari degli amici
       title_nearby: Diari degli utenti nelle vicinanze
@@ -323,7 +323,7 @@ it:
       use_map_link: utilizza mappa
       save_button: Salva
       marker_text: Luogo della voce del diario
-    view:
+    show:
       title: Diario di %{user} | %{title}
       user_title: Diario dell'utente %{user}
       leave_a_comment: Lascia un commento
@@ -2132,7 +2132,7 @@ it:
       body: Spiacenti, non c'è alcun utente con il nome %{user}. Controllare la digitazione,
         o che il collegamento sul quale hai cliccato non sia errato.
       deleted: cancellato
-    view:
+    show:
       my diary: Il mio diario
       new diary entry: nuova voce del diario
       my edits: Mie modifiche
@@ -2315,7 +2315,7 @@ it:
     filter:
       not_an_administrator: Bisogna essere amministratori per poter eseguire questa
         azione.
-    list:
+    index:
       title: Utenti
       heading: Utenti
       showing:
index c846148e0742230cf0cc00687394d4cf045918a4..37da9173c1ec111dd1b9755fcbae4ff9bffc6e20 100644 (file)
@@ -255,7 +255,7 @@ ja:
       user: 利用者
       comment: コメント
       area: 領域
-    list:
+    index:
       title: 変更セット
       title_user: '%{user} によるメモ'
       title_friend: 友達による変更セット
@@ -280,7 +280,7 @@ ja:
     new:
       title: 日記エントリの新規作成
       publish_button: 公開
-    list:
+    index:
       title: 利用者さんの日記
       title_friends: 友達の日記
       title_nearby: 周辺の利用者の日記
@@ -303,7 +303,7 @@ ja:
       use_map_link: 地図を使用
       save_button: 保存
       marker_text: 日記のロケーション
-    view:
+    show:
       title: '%{user}さんの日記 | %{title}'
       user_title: '%{user}さんの日記'
       leave_a_comment: コメントを書いてください
@@ -1809,7 +1809,7 @@ ja:
       heading: '%{user} という利用者は存在しません'
       body: 申し訳ありませんが、%{user} という名前の利用者は存在しません。スペルを確認してください。またはクリックしたリンクが間違っている可能性があります。
       deleted: 削除済
-    view:
+    show:
       my diary: 自分の日記
       new diary entry: 新しい日記エントリ
       my edits: 自分の編集
@@ -1973,7 +1973,7 @@ ja:
       not_a_friend: '%{name} は友達ではありません。'
     filter:
       not_an_administrator: この作業を行うには、管理者になる必要があります。
-    list:
+    index:
       title: 利用者
       heading: ユーザー
       showing:
index 42b1d8304fb4615890bada9d77a560342d176cb4..1f85fe55a9a21c0f10427d0c29db2fd3ff907916 100644 (file)
@@ -198,7 +198,7 @@ ka:
       user: მომხმარებელი
       comment: კომენტარი
       area: ტერიტორია
-    list:
+    index:
       title: ცვლილებების პაკეტი
       load_more: მეტის ჩატვირთვა
     rss:
@@ -209,7 +209,7 @@ ka:
     new:
       title: დღიურში ახალი ჩანაწერის გაკეთება
       publish_button: გამოქვეყნება
-    list:
+    index:
       title: მომხმარებლების დღიურები
       title_friends: მეგობრების დღიურები
       title_nearby: მეზობელი მომხმარებლების დღიურები
@@ -229,7 +229,7 @@ ka:
       longitude: 'გრძედი:'
       use_map_link: რუკაზე ჩვენება
       save_button: შენახვა
-    view:
+    show:
       title: '%{user}-ის დღიური | %{title}'
       user_title: '%{user}-ის დღიური'
       leave_a_comment: დატოვეთ კომენტარი
@@ -1052,7 +1052,7 @@ ka:
         rest_of_world: დანარჩენი მსოფლიო
     no_such_user:
       heading: მომხმარებელი %{user} არ არსებობს
-    view:
+    show:
       my diary: ჩემი დღიური
       new diary entry: დღიურში ახალი ჩანაწერის გაკეთება
       my edits: ჩემი რედაქტირება
@@ -1125,7 +1125,7 @@ ka:
     remove_friend:
       heading: წავშალო მეგობრებიდან %{user}?
       button: მეგობრებიდან წაშლა
-    list:
+    index:
       title: მომხმარებლები
       heading: მომხმარებლები
     suspended:
index 115f9fb3965ccd74c2ae8e2a381209ee426f5a3a..7cb76e29247eaed476c6b529d79994449bbcff6f 100644 (file)
@@ -241,7 +241,7 @@ kab:
       user: Aseqdac
       comment: Awennit
       area: Tamnaḍt
-    list:
+    index:
       title: Agraw n usnifel
       title_user: Igrawen n usnifel sɣur %{user}
       title_friend: Igrawen n usnifel n imdukal-ik
@@ -267,7 +267,7 @@ kab:
     new:
       title: Anekcam amaynut n uɣmis
       publish_button: Suffeɣ-d
-    list:
+    index:
       title: Iɣmisen n useqdac
       title_friends: Iɣmisen n imdukal
       title_nearby: Iɣmisen n iseqdacen iqeṛben
@@ -290,7 +290,7 @@ kab:
       use_map_link: seqdec takarḍa
       save_button: Sekles
       marker_text: Adig n unekcam n uɣmis
-    view:
+    show:
       title: Aɣmis n %{user} | %{title}
       user_title: Aɣmis n %{user}
       leave_a_comment: Eǧǧ-d awennit
@@ -1227,7 +1227,7 @@ kab:
     no_such_user:
       title: Ulac aseqdac
       deleted: yettwakkes
-    view:
+    show:
       my diary: Aɣmis-iw
       new diary entry: anekcam amaynut n uɣmis
       my edits: Tiẓrigin-iw
@@ -1353,7 +1353,7 @@ kab:
       not_a_friend: '%{name} ur yelli ara d amdakkel.'
     filter:
       not_an_administrator: Teriḍ ad tiliḍ d anedbal akken ad teggeḍ tigawt-agi.
-    list:
+    index:
       title: Iseqdacen
       heading: Iseqdacen
       showing:
index 322b9d1d8c903dc9c66cec4ed10b5e490fd3b639..a50eac416eabdeab2e873ab0402d26e566da60fa 100644 (file)
@@ -68,7 +68,7 @@ km:
         display_name: ​​ឈ្មោះអេក្រង់ (Display name)
         description: បរិយាយ​
         languages: ភាសា​
-        pass_crypt: á\9e\9bá\9f\81á\9e\81â\80\8bá\9e\9fá\9e\98á\9f\92á\9e\84á\9e¶á\9e\8fá\9f\8bâ\80\8b
+        pass_crypt: á\9e\96á\9e¶á\9e\80á\9f\92á\9e\99â\80\8bá\9e\9fá\9e\98á\9f\92á\9e\84á\9e¶á\9e\8fá\9f\8b
   browse:
     created: បាន​បង្កើត​
     closed: បាន​បិទ
@@ -78,6 +78,7 @@ km:
     deleted_by_html: បានលុបចោល <abbr title='%{title}'>%{time} មុន</abbr> ដោយ %{user}
     edited_by_html: បានកែប្រែ <abbr title='%{title}'>%{time} មុន</abbr> ដោយ %{user}
     closed_by_html: បានបិទ <abbr title='%{title}'>%{time} មុន</abbr> ដោយ %{user}
+    version: កំណែ
     in_changeset: សំណុំបន្លាស់ប្ដូរ
     anonymous: អនាមិក
     no_comment: (គ្មានមតិយោបល់)
@@ -95,11 +96,13 @@ km:
       way_paginated: ផ្លូវចំនួន (%{x}-%{y} ក្នុងចំណោម %{count})
       relation: ទំនាក់ទំនងចំនួន (%{count})
       relation_paginated: ទំនាក់ទំនងចំនួន (%{x}-%{y} ក្នុងចំណោម %{count})
+      comment: មតិយោបល់ (%{count})
       changesetxml: សំណុំបន្លាស់ប្ដូរ​ XML
       feed:
         title: សំណុំបន្លាស់ប្ដូរ​ %{id}
-        title_comment: á\9e\9fá\9f\86á\9e\93á\9e»á\9f\86â\80\8bá\9e\94á\9f\86លាស់ប្តូរ​ %{id} - %{comment}
+        title_comment: á\9e\9fá\9f\86á\9e\8eá\9e»á\9f\86á\9e\94á\9e\93á\9f\92លាស់ប្តូរ​ %{id} - %{comment}
       join_discussion: កត់ឈ្មោះចូលដើម្បីចូលរួមពិភាក្សា
+      discussion: ការពិភាក្សា
     node:
       title: ខ្នែង៖ %{name}
       history_title: ប្រវត្តិខ្នែង៖ %{name}
@@ -166,7 +169,7 @@ km:
       user: អ្នកប្រើប្រាស់​
       comment: មតិយោបល់​
       area: តំបន់
-    list:
+    index:
       title: សំណុំបន្លាស់ប្ដូរ
       title_user: សំនុំ​បំលាស់ប្តូរ​ ដោយ %{user}
       title_friend: សំណុំបន្លាស់ប្ដូរដោយមិត្តភក្ដិខ្ញុំ
@@ -182,7 +185,7 @@ km:
     new:
       title: ប្រកាសកំណត់ហេតុថ្មី
       publish_button: បោះផ្សាយ
-    list:
+    index:
       title: កំណត់ហេតុរបស់អ្នកប្រើប្រាស់
       title_friends: កំណត់ហេតុរបស់មិត្តភក្ដិ
       title_nearby: កំណត់ហេតុរបស់អ្នកប្រើប្រាស់នៅក្បែរៗ
@@ -205,7 +208,7 @@ km:
       use_map_link: ប្រើផែនទី​
       save_button: រក្សាទុក​
       marker_text: ទីតាំងប្រកាសន៍កំណត់ហេតុ
-    view:
+    show:
       title: កំណត់ហេតុរបស់ %{user} | %{title}
       user_title: កំណត់ហេតុរបស់ %{user}
       leave_a_comment: បញ្ចេញមតិយោបល់​
@@ -233,6 +236,10 @@ km:
         geonames: លទ្ធផលពី <a href="http://www.geonames.org/">GeoNames</a>
     search_osm_nominatim:
       prefix:
+        aerialway:
+          cable_car: ឡានយោង
+          chair_lift: កៅអីយោង
+          pylon: ប៉មខ្សែភ្លើង
         amenity:
           arts_centre: មជ្ឍមណ្ឌលសិល្បៈ
           atm: ATM
@@ -370,6 +377,7 @@ km:
           motorway_link: ផ្លូវល្បឿនលឿន
           rest_area: កន្លែងសម្រាក
           road: ផ្លូវ
+          steps: ជណ្ដើរ
           stop: ផ្លាកសញ្ញាឈប់
           street_lamp: ភ្លើងបំភ្លឺផ្លូវ
           traffic_signals: ភ្លើងសញ្ញាចរាចរណ៍
@@ -413,7 +421,9 @@ km:
           vineyard: ចំការទំពាំងបាយជូរ
         leisure:
           beach_resort: ឆ្នេរកំសាន្ត
+          bird_hide: ខ្ទមមើលបក្សី
           common: ដីរួម
+          firepit: ចង្ក្រាន
           fishing: តំបន់ស្ទូចត្រី
           fitness_centre: មណ្ឌលហាត់ប្រាណ
           fitness_station: ស្ថានីយ៍ហាត់ប្រាណ
@@ -430,8 +440,23 @@ km:
           stadium: កីឡាដ្ឋាន
           swimming_pool: អាងហែលទឹក
           water_park: ឧទ្យានទឹក
+        man_made:
+          bridge: ស្ពាន
+          bunker_silo: ត្រង់សេ
+          chimney: បំពង់ផ្សែង
+          dyke: ទំនប់
+          flagpole: បង្គោលទង់ជាតិ
+          kiln: ឡ
+          petroleum_well: អណ្ដូងប្រេង
+          wastewater_plant: ស្ថានីយ៍សម្អាតទឹក
+          water_tower: ប៉មទឹក
+          water_well: អណ្ដូង
         military:
           airfield: មូលដ្ឋានទ័ពអាកាស
+          bunker: ត្រង់សេ
+          "yes": មូលដ្ឋានយោធា
+        mountain_pass:
+          "yes": ផ្លូវភ្នំ
         natural:
           bay: ឆកសមុទ្រ
           beach: ឆ្នេរខ្សាច់
@@ -440,12 +465,14 @@ km:
           cliff: ជ្រោះ
           crater: មាត់ភ្នំភ្លើង
           dune: ភ្នំខ្សាច់
+          forest: ព្រៃ
           hill: កូនភ្នំ
           island: កោះ
           land: ដី
           mud: ភក់
           peak: កំពូល
           point: ចំនុច
+          spring: ទឹកផុស
           strait: ដៃសមុទ្រ
           tree: ដើមឈើ
           valley: ជ្រលងភ្នំ
@@ -465,7 +492,7 @@ km:
           insurance: ការិយាល័យធានារ៉ាប់រង
           it: ការិយាល័យព័តមានវិទ្យា
           lawyer: មេធាវី
-          ngo: ការិយាល័យ NGO
+          ngo: ការិយាល័យអង្គការ
           telecommunication: ការិយាល័យទូរគមនាគមន៍
           travel_agent: ភ្នាក់ងារទេសចរណ៍
           "yes": ការិយាល័យ
@@ -529,18 +556,42 @@ km:
           gallery: វិចិត្រសាល
           gift: ហាងវត្ថុអនុស្សាវរីយ៍
           greengrocer: ហាងបន្លែនិងផ្លែឈើ
+          grocery: ហាងចំណីអាហារ
           hairdresser: ហាងកាត់សក់និងអ៊ុតសក់
           jewelry: ហាងលក់គ្រឿងអល័ង្ការ
           laundry: ហាងបោកអ៊ុត
+          market: ផ្សារ
           massage: ហាងម៉ាស្សា
           mobile_phone: ហាងទូរស័ព្ទ
           motorcycle: ហាងទោចក្រយានយន្ត
           music: ហាងតន្ត្រី
           newsagent: ហាងកាសែត
           optician: ហាងវ៉ែនតា
+          pawnbroker: ហាងបញ្ចាំ
+          pet: ហាងសត្វចិញ្ចឹម
+          pharmacy: ឱសថស្ថាន
+          photo: ហាងថតរូប
+          seafood: ហាងគ្រឿងសមុទ្រ
+          second_hand: ហាងជជុះ
+          shoes: ហាងស្បែកជើង
+          sports: ហាងសម្ភារៈកីឡា
+          stationery: បណ្ណាគារ
+          supermarket: ផ្សារទំនើប
+          tailor: ហាងកាត់ដេរ
+          ticket: ហាងសំបុត្រ
+          tobacco: ហាងបារី
+          travel_agency: ភ្នាក់ងារទេសចរណ៍
+          tyres: ហាងកង់ឡាន
         tourism:
           camp_site: កន្លែងបោះតង់
           caravan_site: កន្លែងចតឡានបោះតង់
+          guest_house: ផ្ទះសំណាក់
+          hostel: ផ្ទះសំណាក់
+          hotel: សណ្ឋាគារ
+          museum: សារមន្ទីរ
+          zoo: សួនសត្វ
+        waterway:
+          canal: ព្រែកជីក
     description:
       types:
         cities: ក្រុង​
@@ -750,7 +801,7 @@ km:
         france: ប្រទេសបារាំង
         italy: ប្រទេសអ៊ីតាលី
         rest_of_world: ប្រទេសផ្សេងទៀត
-    view:
+    show:
       my edits: កំណែប្រែ​របស់ខ្ញុំ​
       edits: កំណែប្រែ​
       remove as friend: ដកចេញជាមិត្ត​
index 49d9ad74e073130e1f21a479590fecbedd3e971a..7518a566653f57fe36485138160bf86dfcc23cde 100644 (file)
@@ -190,7 +190,7 @@ kn:
       user: ಬಳಕೆದಾರ
       comment: ಟಿಪ್ಪಣಿ
       area: ಪ್ರದೇಶ
-    list:
+    index:
       title: ಬದಲಾವಣೆಗಳು
       title_user: '  %{user}ಅವರಿಂದಾದ ಬದಲಾವಣೆಗಳು'
       title_friend: ನಿಮ್ಮ ಗೆಳೆಯರಿಂದಾದ ಬದಲಾವಣೆಗಳು
@@ -215,7 +215,7 @@ kn:
     new:
       title: ದಿನಚರಿಯಲ್ಲಿ ಹೊಸದಾದ ದಾಖಲೆ
       publish_button: ಪ್ರಕಟಿಸು
-    list:
+    index:
       title: ಬಳಕೆದಾರರ ದಿನಚರಿ
       title_friends: ಗೆಳೆಯರ ದಿನಚರಿ
       title_nearby: ಹತ್ತಿರದ ಬಳಕೆದಾರರ ದಿನಚರಿ
@@ -238,7 +238,7 @@ kn:
       use_map_link: ನಕ್ಷೆ ಬಳಸು
       save_button: ಉಳಿಸಿ
       marker_text: ದಿನಚರಿ ದಾಖಲೆಯ ಸ್ಥಳ
-    view:
+    show:
       title: '%{user}ಅವರ ದಿನಚರಿ | %{title}'
       user_title: '%{user}ಅವರ ದಿನಚರಿ'
       leave_a_comment: ಟಿಪ್ಪಣಿ ನೀಡಿರಿ
index 0ec9e946df8d8a47c828fd73699a7ade6947ccfb..9cf339afe417227c9d44b836785346202fb1a0d8 100644 (file)
@@ -255,7 +255,7 @@ ko:
       user: 사용자
       comment: 댓글
       area: 구역
-    list:
+    index:
       title: 바뀜집합
       title_user: '%{user}님의 바뀜집합'
       title_friend: 내 친구의 바뀜집합
@@ -280,7 +280,7 @@ ko:
     new:
       title: 새 일기 항목
       publish_button: 발행
-    list:
+    index:
       title: 사용자의 일기
       title_friends: 친구의 일기
       title_nearby: 근처 사용자의 일기
@@ -303,7 +303,7 @@ ko:
       use_map_link: 지도 사용
       save_button: 저장
       marker_text: 일기 항목 위치
-    view:
+    show:
       title: '%{user}의 일기 | %{title}'
       user_title: '%{user}의 일기'
       leave_a_comment: 댓글 남기기
@@ -2014,7 +2014,7 @@ ko:
       heading: '%{user} 사용자는 존재하지 않습니다'
       body: 죄송합니다, %{user} 이름으로 된 사용자가 없습니다. 맞춤법이나 클릭한 링크가 잘못됐는지 확인하세요.
       deleted: 삭제됨
-    view:
+    show:
       my diary: 내 일기
       new diary entry: 새 일기 항목
       my edits: 내 편집
@@ -2179,7 +2179,7 @@ ko:
       not_a_friend: '%{name}님은 친구 중 하나가 아닙니다.'
     filter:
       not_an_administrator: 해당 동작을 수행하려면 관리자 권한이 필요합니다.
-    list:
+    index:
       title: 사용자
       heading: 사용자
       showing:
index b2fa55baf024864167ce7dd1d0b8d8498202ef23..d0086608ad0fac4c00ccd7c703ec2d7f99eb6d3b 100644 (file)
@@ -248,7 +248,7 @@ ku-Latn:
       user: Bikarhêner
       comment: Şîrove
       area: Herêm
-    list:
+    index:
       title: Desteya guhertinan
       title_user: Desteyên guhertinan yên ji alî %{user} ve
       title_friend: Desteyên guhertinan yên ji aliyê hevalên te ve
@@ -275,7 +275,7 @@ ku-Latn:
     new:
       title: Nivîsa nû yê rojane
       publish_button: Biweșîne
-    list:
+    index:
       title: Rojnivîskên bikarhêneran
       title_friends: Rojnivîskên hevalan
       title_nearby: Rojnivîskên Bikarhênerên nêzîk
@@ -298,7 +298,7 @@ ku-Latn:
       use_map_link: nexşeyê bikarbîne
       save_button: Tomar bike
       marker_text: Cihê nivîsên rojane
-    view:
+    show:
       title: Rojnivîska %{user} | %{title}
       user_title: Nivîsên rojane yên %{user}
       leave_a_comment: Şiroveyeke binivîse
@@ -2109,7 +2109,7 @@ ku-Latn:
       body: Bibore, bikarhênerek bi navê %{user} tine. Xêra xwe kontrol bike ka te
         rast nivîsandiye an na. Yan jî dibe ku lînkê te tikandiye nerast be.
       deleted: hate jêbirin
-    view:
+    show:
       my diary: Rojnivîska min
       new diary entry: nivîsa nû yê rojane
       my edits: Guhertinên min
@@ -2293,7 +2293,7 @@ ku-Latn:
       not_a_friend: '%{name} ne hevalê te ye.'
     filter:
       not_an_administrator: Ji bo ku tu vê kiryarê bikî divê tu bibî rêvebirek.
-    list:
+    index:
       title: Bikarhêner
       heading: Bikarhêner
       showing:
index e0c076040fc4f074367ca3687183c8d6f4c89a5b..7d03808d1079ff0ff61639e4e555f7be5162e0f1 100644 (file)
@@ -183,7 +183,7 @@ lb:
       user: Benotzer
       comment: Bemierkung
       area: Beräich
-    list:
+    index:
       title: Sette vun Ännerungen
       title_user: Sete vun Ännerunge vum %{user}
       title_friend: Ännerunge vun Äre Frënn
@@ -202,7 +202,7 @@ lb:
   diary_entry:
     new:
       publish_button: Verëffentlechen
-    list:
+    index:
       title: Blogge vun de Benotzer
       user_title: Blog vum %{user}
     edit:
@@ -213,7 +213,7 @@ lb:
       longitude: 'Längtegrad:'
       use_map_link: Kaart benotzen
       save_button: Späicheren
-    view:
+    show:
       leave_a_comment: Eng Bemierkung maachen
       login_to_leave_a_comment: '%{login_link} fir eng Bemierkung ze schreiwen'
       login: Aloggen
@@ -1091,7 +1091,7 @@ lb:
       title: Sou e Benotzer gëtt et net
       heading: De Benotzer %{user} gëtt et net
       deleted: geläscht
-    view:
+    show:
       my diary: Mäi Blog
       my edits: Meng Ännerungen
       my notes: Meng Notizen
@@ -1200,7 +1200,7 @@ lb:
     filter:
       not_an_administrator: Dir musst Administrateur si fir déi Aktioun maachen ze
         kënnen.
-    list:
+    index:
       title: Benotzer
       heading: Benotzer
       confirm: Erausgesicht Benotzer confirméieren
index 7de89f947edd3934bd37f2b7af791370ebb9d117..db9ba951ba1c801088c728770b22fcd2cabe03b5 100644 (file)
@@ -247,7 +247,7 @@ lt:
       user: Naudotojas
       comment: Komentaras
       area: Plotas
-    list:
+    index:
       title: Pakeitimai
       title_user: Naudotojo %{user} pakeitimai
       title_friend: Mano draugų pakeitimai
@@ -272,7 +272,7 @@ lt:
     new:
       title: Naujas dienoraščio įrašas
       publish_button: Publikuoti
-    list:
+    index:
       title: Naudotojo dienoraščiai
       title_friends: Draugų dienoraščiai
       title_nearby: Netoliese esančių naudotojų dienoraščiai
@@ -295,7 +295,7 @@ lt:
       use_map_link: naudoti žemėlapį
       save_button: Įrašyti
       marker_text: Dienoraščio įrašo pozicija
-    view:
+    show:
       title: '%{user} dienoraštis | %{title}'
       user_title: '%{user} dienoraštis'
       leave_a_comment: Palikti komentarą
@@ -1921,7 +1921,7 @@ lt:
       body: Atsiprašome, bet čia nėra jokio naudotojo vardu „%{user}“. Pasitikrinkite
         rašybą, arba nuoroda, kurią jūs paspaudėte yra klaidinga.
       deleted: ištrinta
-    view:
+    show:
       my diary: Mano dienoraštis
       new diary entry: naujas dienoraščio įrašas
       my edits: Mano keitimai
@@ -2101,7 +2101,7 @@ lt:
       not_a_friend: '%{name} nėra jūsų draugas.'
     filter:
       not_an_administrator: Norėdami atlikti šį veiksmą, turite būti administratoriumi.
-    list:
+    index:
       title: Naudotojai
       heading: Naudotojai
       showing:
index 6f9daeafa6c367d57d3faae86f1b2e1e5326e24a..c0971803b0106ef413dd6a52ae76678010d54599 100644 (file)
@@ -242,7 +242,7 @@ lv:
       user: Lietotājs
       comment: Komentārs
       area: Apgabals
-    list:
+    index:
       title: Izmaiņu kopas
       title_user: Lietotāja %{user} izmaiņu kopas
       title_friend: Tavu draugu izmaiņu kopas
@@ -268,7 +268,7 @@ lv:
     new:
       title: Jauns dienasgrāmatas ieraksts
       publish_button: Publicēt
-    list:
+    index:
       title: Lietotāju dienasgrāmatas
       title_friends: Draugu dienasgrāmatas
       title_nearby: Tuvumā esošu lietotāju dienasgrāmatas
@@ -291,7 +291,7 @@ lv:
       use_map_link: izmantot karti
       save_button: Saglabāt
       marker_text: Dienasgrāmatas ieraksta atrašanās vieta
-    view:
+    show:
       title: '%{user} dienasgrāmata | %{title}'
       user_title: '%{user} dienasgrāmata'
       leave_a_comment: Ierakstīt komentāru
@@ -1897,7 +1897,7 @@ lv:
       body: Atvaino, nav lietotāja ar lietotājvārdu %{user}. Lūdzu pārbaudi pareizrakstību,
         vai varbūt saite, uz kuras Tu uzspiedi, ir nepareiza.
       deleted: dzēsts
-    view:
+    show:
       my diary: Mana dienasgrāmata
       new diary entry: jauns dienasgrāmatas ieraksts
       my edits: Mani labojumi
@@ -2072,7 +2072,7 @@ lv:
       not_a_friend: '%{name} nav no jūsu draugs.'
     filter:
       not_an_administrator: Jums jābūt administratoram, lai veiktu šo darbību.
-    list:
+    index:
       title: Lietotāji
       heading: Lietotāji
       showing:
index a8cce10200e7b612383a02c30c59ecda88fe8611..b5e19b23efbc73923157b871dda26dde458957f1 100644 (file)
@@ -236,7 +236,7 @@ mk:
       user: Корисник
       comment: Коментар
       area: Површина
-    list:
+    index:
       title: Измени
       title_user: Измени на %{user}
       title_friend: Измени на мои пријатели
@@ -262,7 +262,7 @@ mk:
     new:
       title: Нова дневничка ставка
       publish_button: Објави
-    list:
+    index:
       title: Дневници на корисници
       title_friends: Дневници на пријателите
       title_nearby: Дневници на соседните корисници
@@ -285,7 +285,7 @@ mk:
       use_map_link: покажи на карта
       save_button: Зачувај
       marker_text: Место на дневничкиот запис
-    view:
+    show:
       title: Дневникот на %{user} | %{title}
       user_title: дневник на %{user}
       leave_a_comment: Пиши коментар
@@ -2089,7 +2089,7 @@ mk:
       body: Жалиме, но не постои корисник по име %{user}. Проверете да не сте згрешиле
         во пишувањето, или пак да не сте стиснале на погрешна врска.
       deleted: избришан
-    view:
+    show:
       my diary: Мојот дневник
       new diary entry: нова ставка во дневникот
       my edits: Мои уредувања
@@ -2270,7 +2270,7 @@ mk:
       not_a_friend: '%{name} не е меѓу вашите пријатели.'
     filter:
       not_an_administrator: За да го изведете тоа, треба да сте администратор.
-    list:
+    index:
       title: Корисници
       heading: Корисници
       showing:
index 0c5dedeb5314c047f4a2a0b14e0f2e3e285ec6b2..19e4ab8213a455c6760e1ee091a8d0b1161b1774 100644 (file)
@@ -174,7 +174,7 @@ mo:
       location: 'Ситуаре:'
       latitude: 'Латитудине:'
       longitude: 'Лонӂитудине:'
-    view:
+    show:
       login: Ынтраря ын конт
     diary_entry:
       confirm: Конфирмаре
@@ -629,4 +629,13 @@ mo:
       heading: Аць уйтат парола?
       email address: 'Адреса де поштэ електроникэ:'
       new password button: Рестабилиря паролей
+    show:
+      my diary: Журналул меу
+      my messages: Месажеле меле
+      my profile: Профилул меу
+      my settings: Реглажеле меле
+      my comments: Коментарииле меле
+      my friends: Приетений мей
+    account:
+      my settings: Реглажеле меле
 ...
index 717fa5fa8eecf67193867db3f906b9004163a2d3..c9972407028383a08af96a247d7c9c8be916d210 100644 (file)
@@ -222,7 +222,7 @@ mr:
       user: सदस्य
       comment: अभिप्राय
       area: क्षेत्र
-    list:
+    index:
       title: बदलसंच
       title_user: '%{user}चे बदलसंच'
       title_friend: आपल्या मित्रांचे बदलसंच
@@ -239,7 +239,7 @@ mr:
   diary_entry:
     new:
       title: अनुदिनीत नवी नोंद
-    list:
+    index:
       title: सदस्यांच्या अनुदिनी
       title_friends: मित्रांच्या अनुदिनी
       title_nearby: जवळपासच्या सदस्यांच्या अनुदिनी
@@ -262,7 +262,7 @@ mr:
       use_map_link: नकाशा वापरा
       save_button: जतन करा
       marker_text: रोजनिशीतील नोंदीचे ठिकाण
-    view:
+    show:
       title: '%{user}ची रोजनिशी | %{title}'
       user_title: '%{user}ची रोजनिशी'
       leave_a_comment: टिप्पणी टाका
@@ -1281,7 +1281,7 @@ mr:
       heading: सदस्य %{user} अस्तित्वात नाही
       body: क्षमा असावी, %{user} नामक सदस्य अस्तित्वात नाही. कृपया आपले वर्णलेखन तपासा,
         किंवा कदाचित आपण चुकीच्या दुव्यावर टिचकी दिली असेल.
-    view:
+    show:
       my diary: माझी अनुदिनी
       new diary entry: अनुदिनीत नवी नोंद
       my edits: माझी संपादने
@@ -1356,7 +1356,7 @@ mr:
         टिचकी मारा</a>.
     confirm_resend:
       failure: सदस्य %{name} सापडला नाही.
-    list:
+    index:
       title: सदस्य
       heading: सदस्य
       showing:
index bfea9fd5183e8a60ac34e5226b89dfd42dc9ee16..e00afc0729153c04f93b5ddf4d049bcd2083dcdd 100644 (file)
@@ -235,7 +235,7 @@ ms:
       user: Pengguna
       comment: Komen
       area: Kawasan
-    list:
+    index:
       title: Set Ubah
       title_user: Set Ubah oleh %{user}
       title_friend: Set ubah oleh kawan anda
@@ -256,7 +256,7 @@ ms:
     new:
       title: Catatan Diari Baru
       publish_button: Terbitkan
-    list:
+    index:
       title: Diari pengguna
       title_friends: Diari kawan
       title_nearby: Diari pengguna berdekatan
@@ -279,7 +279,7 @@ ms:
       use_map_link: gunakan peta
       save_button: Simpan
       marker_text: Lokasi catatan diari
-    view:
+    show:
       title: Diari %{user} | %{title}
       user_title: Diari %{user}
       leave_a_comment: Tinggalkan komen
@@ -1795,7 +1795,7 @@ ms:
       heading: Pengguna %{user} tidak wujud
       body: Maaf, tiada pengguna dengan nama %{user}. Sila semak ejaan anda, atau
         mungkin pautan yang anda klik itu tidak betul.
-    view:
+    show:
       my diary: Diari Saya
       new diary entry: catatan diari baru
       my edits: Suntingan Saya
@@ -1973,7 +1973,7 @@ ms:
     filter:
       not_an_administrator: Anda perlu menjadi pentadbir untuk melakukan tindakan
         itu.
-    list:
+    index:
       title: Pengguna
       heading: Pengguna
       showing:
index dcad73ffa3cf9a76024c58781beaf19fd19e4dde..98cc2f3173a8cdbc87eeaa8299a850aca5bbd2af 100644 (file)
@@ -16,6 +16,7 @@
 # Author: Laaknor
 # Author: Macofe
 # Author: MarkusHD
+# Author: Mathias-S
 # Author: Nemo bis
 # Author: Nghtwlkr
 # Author: Oyvind
@@ -253,7 +254,7 @@ nb:
       user: Bruker
       comment: Kommentar
       area: Område
-    list:
+    index:
       title: Endringssett
       title_user: Endringssett av %{user}
       title_friend: Endringssett fra mine venner
@@ -278,7 +279,7 @@ nb:
     new:
       title: Ny dagbokoppføring
       publish_button: Publiser
-    list:
+    index:
       title: Brukernes dagbøker
       title_friends: Dagbøkene til vennene dine
       title_nearby: Dagbøkene til nærliggende brukere
@@ -301,7 +302,7 @@ nb:
       use_map_link: bruk kart
       save_button: Lagre
       marker_text: Lokalisasjonen for dagbokoppføring
-    view:
+    show:
       title: '%{user} sin dagbok | %{title}'
       user_title: Dagboken til %{user}
       leave_a_comment: Legg igjen en kommentar
@@ -1026,6 +1027,32 @@ nb:
         not_just_mistake: Du er sikker på at problemet ikke er basert på en misforståelse
         unable_to_fix: Du er ikke i stand til å fikse problemet selv eller med hjelp
           fra dine kolleger
+        resolve_with_user: Du har allerede prøvd å løse problemet med berørt bruker
+      categories:
+        diary_entry:
+          spam_label: Dette dagbokinnlegget er/inneholder spam
+          offensive_label: Dette dagbokinnlegget er uanstendig
+          threat_label: Dette dagbokinnlegget inneholder en trussel
+          other_label: Annet
+        diary_comment:
+          spam_label: Denne dagbokkommentaren er/inneholder spam
+          offensive_label: Denne dagbokkommentaren er uanstendig
+          threat_label: Denne dagbokkommenataren inneholder en trussel
+          other_label: Annet
+        user:
+          spam_label: Denne brukerprofilen er/inneholder spam
+          offensive_label: Denne brukerprofilen er uanstendig
+          threat_label: Denne brukerprofilen inneholder en trussel
+          vandal_label: Denne brukeren er en vandal
+          other_label: Annet
+        note:
+          spam_label: Dette notatet er spam
+          personal_label: Dette notatet inneholder personlige data
+          abusive_label: Dette notatet er krenkende
+          other_label: Annet
+    create:
+      successful_report: Din rapport har blitt vellykket registrert
+      provide_details: Vær vennlig å angi de påkrevde detaljer
   layouts:
     project_name:
       title: OpenStreetMap
@@ -1042,6 +1069,7 @@ nb:
     edit: Rediger
     history: Historikk
     export: Eksporter
+    issues: Problemer
     data: Data
     export_data: Eksporter data
     gps_traces: GPS-spor
@@ -1373,7 +1401,9 @@ nb:
           (<a href="http://www.and.com">www.and.com</a>)
         contributors_nz_html: |-
           <strong>New Zealand</strong>: Inneholder data hentet fra
-             Land Information New Zealand. Crown Copyright reservert.
+          <a href="https://data.linz.govt.nz/">LINZ Data Service</a> og
+          lisensiert for gjenbruk under
+          <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>.
         contributors_si_html: |-
           <strong>Slovenia</strong>: Inneholder data fra
           <a href="http://www.gu.gov.si/en/">Geologisk undersøkelse og kartmyndighet</a> and
@@ -1424,14 +1454,15 @@ nb:
         Du kan gjøre dine redigeringer offentlige fra din %{user_page}.
       user_page_link: brukerside
       anon_edits_link_text: Finn ut hvorfor dette er tilfellet.
-      flash_player_required: Du trenger en Flash-spiller for å kunne bruke Potlatch,
-        Flasheditoren for OpenStreetMap. Du kan <a href="http://www.adobe.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">laste
-        ned Flash Player fra Adobe.com</a>. <a href="http://wiki.openstreetmap.org/wiki/Editing">Flere
-        andre alternativ</a> er også tilgjengelig for redigering av OpenStreetMap.
+      flash_player_required: Du trenger en Flash-spiller for å kunne bruke Potlatch
+        som er Flasheditoren for OpenStreetMap. Du kan <a href="https://get.adobe.com/flashplayer">laste
+        ned Flash Player fra Adobe.com</a>. <a href="https://wiki.openstreetmap.org/wiki/Editing">Det
+        finnes flere alternativer</a> for å redigere OpenStreetMap.
       potlatch_unsaved_changes: Du har ulagrede endringer. (For å lagre i Potlatch,
         må du fjerne markeringen av gjeldende vei eller punkt hvis du redigerer i
         live-modues eller klikke lagre hvis du har en lagreknapp.)
-      potlatch2_not_configured: Potlatch 2 har ikke blitt konfigurert - se http://wiki.openstreetmap.org/wiki/The_Rails_Port
+      potlatch2_not_configured: Potlatch 2 har ikke blitt konfigurert - se https://wiki.openstreetmap.org/wiki/The_Rails_Port#Potlatch_2
+        for mer informasjon
       potlatch2_unsaved_changes: Du har endringer som ikke er lagret. (For å lagre
         i Potlatch 2, må du klikke lagre.)
       id_not_configured: iD er ikke satt opp
@@ -1550,6 +1581,7 @@ nb:
       where_am_i: Hvor er dette?
       where_am_i_title: Bruke søkemotoren til å beskrive gjeldende lokasjon.
       submit_text: Gå
+      reverse_directions_text: Motsatte retninger
     key:
       table:
         entry:
@@ -1624,7 +1656,7 @@ nb:
       edit: Rediger
       preview: Forhåndsvisning
     markdown_help:
-      title_html: Tolket med <a href="http://daringfireball.net/projects/markdown/">Markdown</a>
+      title_html: Tolket med <a href="https://daringfireball.net/projects/markdown/">Markdown</a>
       headings: Overskrifter
       heading: Overskrift
       subheading: Underoverskrift
@@ -1701,13 +1733,17 @@ nb:
       tags_help: kommaseparert
       visibility: 'Synlighet:'
       visibility_help: hva betyr dette?
+      visibility_help_url: https://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces
       upload_button: Last opp
       help: Hjelp
+      help_url: https://wiki.openstreetmap.org/wiki/Upload
     create:
       upload_trace: Last opp GPS-spor
       trace_uploaded: Din GPX-fil er lastet opp og venter på å bli satt inn i databasen.
         Dette skjer vanligvis innen en halvtime og en e-post blir sendt til deg når
         det er gjort.
+      upload_failed: Beklager, GPX-opplastingen mislyktes. En administrator har blitt
+        varslet om feilen. Prøv på nytt
       traces_waiting:
         one: Du har %{count} spor som venter på opplasting. Du bør vurdere å la dette
           bli ferdig før du laster opp flere spor slik at du ikke blokkerer køa for
@@ -1732,6 +1768,8 @@ nb:
       save_button: Lagre endringer
       visibility: 'Synlighet:'
       visibility_help: hva betyr dette?
+    update:
+      updated: Sporet ble oppdatert
     trace_optionals:
       tags: Merkelapper
     show:
@@ -1753,6 +1791,7 @@ nb:
       delete_trace: Slett dette sporet
       trace_not_found: Sporet ble ikke funnet!
       visibility: 'Synlighet:'
+      confirm_delete: Slett dette sporet?
     trace_paging_nav:
       showing_page: Side %{page}
       older: Eldre spor
@@ -1783,6 +1822,7 @@ nb:
         eller lær å lage GPS-spor på <a href='http://wiki.openstreetmap.org/wiki/Beginners_Guide_1.2'>wiki-siden</a>.
       upload_trace: Last opp et GPS-spor
       see_all_traces: Se alle spor
+      see_my_traces: Se alle mine spor
     delete:
       scheduled_for_deletion: Spor planlagt slettet
     make_public:
@@ -1804,8 +1844,12 @@ nb:
     require_cookies:
       cookies_needed: Du ser ut til å ha deaktivert informasjonskapsler. Aktiver informasjonskapsler
         i nettleseren din før du fortsetter.
+    require_admin:
+      not_an_admin: Du må være administrator for å kunne utføre denne handlingen.
     require_moderator:
       not_a_moderator: Du må være en moderator for å utføre den handlinga.
+    require_moderator_or_admin:
+      not_a_moderator_or_admin: Du må være en moderator for kunne å utføre den handlingen.
     setup_user_auth:
       blocked_zero_hour: Du har en viktig beskjed på OpenStreetMap-nettsida. Du må
         lese beskjeden før du vil kunne lagre redigeringene dine.
@@ -1989,11 +2033,12 @@ nb:
         html: |-
           <p>I motsetning til andre kart, er OpenStreetMap laget av folk som deg, og det er fritt for alle å rette, oppdatere, laste ned og bruke kartet.</p>
           <p>Registrer deg for å komme i gang med å bidra. Vi vil sende en e-mail for å bekrefte din konto.</p>
-      license_agreement: Når du bekrefter kontoen din må du godkjenne <a href="http://www.osmfoundation.org/wiki/License/Contributor_Terms">bidragsytervilkårene</a>.
+      license_agreement: Når du bekrefter kontoen din må du godkjenne <a href="https://www.osmfoundation.org/wiki/License/Contributor_Terms">betingelsene
+        for bidragsytere</a>.
       email address: 'E-postadresse:'
       confirm email address: 'Bekreft e-postadresse:'
-      not displayed publicly: Adressa di vises ikke offentlig, se <a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy"
-        title="Personvernpolitikk for Wiki-en inklusiv avsnitt om e-postadressser">vår
+      not displayed publicly: Adressen din vises ikke offentlig, se <a href="https://wiki.openstreetmap.org/wiki/Privacy_Policy"
+        title="OSMF personvernpolitikk for wiki-en, inklusive avsnitt om e-postadressser">vår
         personvernpolitikk</a> for mer informasjon.
       display name: 'Visningsnavn:'
       display name description: Ditt offentlig fremviste brukernavn. Du kan endre
@@ -2034,7 +2079,7 @@ nb:
       body: Det er ingen bruker med navnet %{user}. Sjekk om du har skrevet navnet
         feil eller om lenka du klikket er feil.
       deleted: slettet
-    view:
+    show:
       my diary: Min dagbok
       new diary entry: ny dagbokoppføring
       my edits: Mine redigeringer
@@ -2101,6 +2146,7 @@ nb:
       friends_diaries: venners dagbokoppføringer
       nearby_changesets: endringssett av brukere i nærheten
       nearby_diaries: dagbokoppføringer av brukere i nærheten
+      report: Rapporter denne brukeren
     popup:
       your location: Din posisjon
       nearby mapper: Bruker i nærheten
@@ -2113,12 +2159,12 @@ nb:
       email never displayed publicly: ' (vises aldri offentlig)'
       external auth: 'Ekstern bekreftelse:'
       openid:
-        link: http://wiki.openstreetmap.org/wiki/OpenID
+        link: https://wiki.openstreetmap.org/wiki/OpenID
         link text: hva er dette?
       public editing:
         heading: 'Offentlig redigering:'
         enabled: Aktivert. Ikke anonym og kan redigere data.
-        enabled link: http://wiki.openstreetmap.org/wiki/Anonymous_edits
+        enabled link: https://wiki.openstreetmap.org/wiki/Anonymous_edits
         enabled link text: hva er dette?
         disabled: Deaktivert og kan ikke redigere data. Alle tidligere redigeringer
           er anonyme.
@@ -2129,10 +2175,9 @@ nb:
           deg meldinger eller se posisjonen din. For å vise hva du redigerte og tillate
           folk å kontakte deg gjennom nettsiden, klikk på knappen nedenfor. <b>Siden
           overgangen til 0.6 API-et, kan kun offentlige brukere redigere kartdata.</b>
-          ( <a href="http://wiki.openstreetmap.org/wiki/Anonymous_edits">Finn ut hvorfor</a>
-          ). <ul><li> Din e-postadresse vil ikke bli avslørt ved å bli offentlig.
-          </li><li> Denne handlingen kan ikke angres, og alle nye brukere er nå offentlige
-          som standard. </li></ul>
+          (<a href="http://wiki.openstreetmap.org/wiki/Anonymous_edits">Finn ut hvorfor</a>
+          ). <ul><li>Din e-postadresse vil ikke bli avslørt ved å bli offentlig.</li><li>Denne
+          handlingen kan ikke angres, og alle nye brukere er nå offentlige som standard.</li></ul>
       contributor terms:
         heading: 'Bidragsytervilkår:'
         agreed: Du har godkjent de nye Bidragsytervilkårene.
@@ -2209,7 +2254,7 @@ nb:
       not_a_friend: '%{name} er ikke en av dine venner.'
     filter:
       not_an_administrator: Du må være administrator for å gjøre det.
-    list:
+    index:
       title: Brukere
       heading: Brukere
       showing:
@@ -2487,7 +2532,7 @@ nb:
     edit_help: Flytt kartet og forstørr utvalg til et sted du vil redigere, og klikk
       så her.
     directions:
-      ascend: Tiltagende
+      ascend: Stigning
       engines:
         graphhopper_bicycle: Sykkel (GraphHopper)
         graphhopper_car: Bil (GraphHopper)
@@ -2496,17 +2541,32 @@ nb:
         mapquest_car: Bil (MapQuest)
         mapquest_foot: Til fots (MapQuest)
         osrm_car: Bil (OSRM)
-      descend: Avtagende
+      descend: Fall
       directions: Veianvisninger
       distance: Avstand
       errors:
         no_route: Kunne ikke finne veien mellom de to stedene.
-        no_place: Beklager - kunne ikke finne det stedet.
+        no_place: Fant ikke '%{place}'.
       instructions:
         continue_without_exit: Fortsett på %{name}
         slight_right_without_exit: Slak høyre inn på %{name}
+        offramp_right: Ta rampen til høyre
+        offramp_right_with_exit: Ta avkjøringen %{exit} til høyre
+        offramp_right_with_exit_name: '%{exit}Ta avkjøringen %{exit} til høyre inn
+          på %{name}'
+        offramp_right_with_exit_directions: Ta avkjøringen %{exit} til høyre mot %{directions}
+        offramp_right_with_exit_name_directions: Ta avkjøringen %{exit} til høyre
+          inn på %{name}, mot %{directions}
         offramp_right_with_name: Ta rampen til høyre til %{name}
+        offramp_right_with_directions: Ta rampen til høyre mot %{directions}
+        offramp_right_with_name_directions: Ta rampen til høyre inn på %{name}, mot
+          %{directions}
         onramp_right_without_exit: Ta til høyre til rampen til %{name}
+        onramp_right_with_directions: Kjør til høyre inn på rampen mot %{directions}
+        onramp_right_with_name_directions: Kjør til høyre på rampen inn på %{name},
+          mot %{directions}
+        onramp_right_without_directions: Ta til høyre inn på rampen
+        onramp_right: Ta til høyre inn på rampen
         endofroad_right_without_exit: Ved slutten av veien, ta til høyre inn på %{name}
         merge_right_without_exit: Flett til høyre til %{name}
         fork_right_without_exit: Ved veiskillet, ta til høyre inn på %{name}
@@ -2515,24 +2575,51 @@ nb:
         uturn_without_exit: Helomvending på %{name}
         sharp_left_without_exit: Skarp venstresving inn på %{name}
         turn_left_without_exit: Ta til venstre inn på %{name}
+        offramp_left: Ta rampen til venstre
+        offramp_left_with_exit: Ta avkjøring %{exit} til venstre
+        offramp_left_with_exit_name: Ta avkjøring %{exit} til venstre inn på %{name}
+        offramp_left_with_exit_directions: Ta avkjøring %{exit} til venstre mot %{directions}
+        offramp_left_with_exit_name_directions: Ta avkjøring %{exit} til venstre inn
+          på %{name}, mot %{directions}
         offramp_left_with_name: Ta rampen til venstre til %{name}
+        offramp_left_with_directions: Ta rampen til venstre mot %{directions}
+        offramp_left_with_name_directions: Ta rampen til venstre inn på %{name}, mot
+          %{directions}
         onramp_left_without_exit: Ta til venstre til rampen til %{name}
+        onramp_left_with_directions: Kjør til venstre inn på rampen mot %{directions}
+        onramp_left_with_name_directions: Sving til venstre på rampen inn på %{name},
+          mot %{directions}
+        onramp_left_without_directions: Kjør til venstre inn på rampen
+        onramp_left: Sving til venstre inn på rampen
         endofroad_left_without_exit: Ved slutten av veien, ta til venstre inn på %{name}
         merge_left_without_exit: Flett til venstre til %{name}
         fork_left_without_exit: Ved veiskillet, ta til venstre inn på %{name}
         slight_left_without_exit: Slak venstre inn på %{name}
         via_point_without_exit: (via punkt)
         follow_without_exit: Følg %{name}
-        roundabout_without_exit: Ved rundkjøringen, ta til %{name}
+        roundabout_without_exit: Ved rundkjøringen, ta av til %{name}
         leave_roundabout_without_exit: Forlat rundkjøringen - %{name}
         stay_roundabout_without_exit: Bli i rundkjøringen - %{name}
-        start_without_exit: Begynn ved slutten av %{name}
+        start_without_exit: Start på %{name}
         destination_without_exit: Nå mål
         against_oneway_without_exit: Kjør mot enveiskjøring på %{name}
         end_oneway_without_exit: Slutt på enveiskjøring på %{name}
         roundabout_with_exit: Ved rundkjøring, ta utvei %{exit} mot %{name}
+        roundabout_with_exit_ordinal: Ved rundkjøring, ta utvei %{exit} inn på %{name}
+        exit_roundabout: Kjør ut av rundkjøringen inn på %{name}
         unnamed: ikke navngitt
         courtesy: Veianvisninger gitt av %{link}
+        exit_counts:
+          first: første
+          second: andre
+          third: tredje
+          fourth: fjerde
+          fifth: femte
+          sixth: sjette
+          seventh: syvende
+          eighth: åttende
+          ninth: niende
+          tenth: tiende
       time: Tid
     query:
       node: Node
index c231e7669ec057593e0c458e9af3ec1c7c4f5052..1a553e0a81f896739a3678e6bae803938872d92c 100644 (file)
@@ -76,7 +76,7 @@ nds:
   diary_entry:
     new:
       title: Ne’en Dagbook-Indrag
-    list:
+    index:
       title: Bruker-Dagböker
       user_title: '%{user} sien Dagbook'
       in_language_title: Dagbook-Indrääg op %{language}
@@ -95,7 +95,7 @@ nds:
       use_map_link: Koort bruken
       save_button: Spiekern
       marker_text: Oort von’n Indrag
-    view:
+    show:
       title: Bruker-Dagbook | %{user}
       user_title: '%{user} sien Dagbook'
       leave_a_comment: Kommentar schrieven
@@ -399,6 +399,7 @@ nds:
       title: Naricht sennen
       send_button: Versennen
       back_to_inbox: Trüch na’t Postfack Ingang
+    create:
       message_sent: Naricht afsennt
     outbox:
       title: Postfack Utgang
@@ -527,7 +528,7 @@ nds:
       save_button: Ännern spiekern
       visibility: 'Sichtborkeit:'
       visibility_help: wat bedüüdt dat?
-    view:
+    show:
       filename: 'Dateinaam:'
       download: dalladen
       map: Koort
@@ -583,7 +584,7 @@ nds:
     no_such_user:
       title: Bruker nich funnen
       heading: Den Bruker %{user} gifft dat nich
-    view:
+    show:
       my diary: mien Dagbook
       new diary entry: Nee Dagbook-Indrag
       my edits: mien Ännern
index 21e07ecd5ac97dea7fdad4418c2174b5b73fdcc6..dfc9bd5064ee8194e3766816252fb1ecbcb82793 100644 (file)
@@ -250,7 +250,7 @@ ne:
       user: प्रयोगकर्ता
       comment: टिप्पणी
       area: क्षेत्र
-    list:
+    index:
       title: चेन्जसेटहरू
       title_user: '%{user}द्वरा गरिएका परिवर्तनहरू'
       title_friend: तपाईंको मित्रहरूद्वारा गरिएका परिवर्तनहरू
@@ -276,7 +276,7 @@ ne:
     new:
       title: नयाँ दैनिकी
       publish_button: प्रकाशन गर्नुहोस्
-    list:
+    index:
       title: प्रयोगकर्ताका डायरीहरू
       title_friends: साथीहरूका डायरीहरू
       title_nearby: नजिकका प्रयोगकर्ताहरूका डायरीहरू
@@ -299,7 +299,7 @@ ne:
       use_map_link: नक्सा प्रयोगर्ने
       save_button: सङ्ग्रह गर्नुहोस्
       marker_text: दैनिकी प्रविष्ठी स्थान
-    view:
+    show:
       title: '%{user}को डायरी | %{title}'
       user_title: '%{user}को डायरी'
       leave_a_comment: टिप्पणी छोड्ने
@@ -1117,7 +1117,7 @@ ne:
         italy: इटाली
     no_such_user:
       deleted: मेटाइयो
-    view:
+    show:
       my diary: मेरो डायरी
       new diary entry: नयाँ दैनिकी प्रविष्टी
       my edits: मेरा सम्पादनहरू
@@ -1182,7 +1182,7 @@ ne:
       button: साथीबाट हटाउने
     filter:
       not_an_administrator: यो कार्य गर्न तपाईं प्रबन्धक हुनुपर्छ .
-    list:
+    index:
       title: प्रयोगकर्ताहरू
       heading: प्रयोगकर्ताहरू
   user_role:
index 14cd80bf53f2217c02b0060ed6edbf7431d36dd4..ac63e0b337c9857893b4106c3ebdc0d4c670b8ea 100644 (file)
@@ -272,7 +272,7 @@ nl:
       user: Gebruiker
       comment: Opmerking
       area: Gebied
-    list:
+    index:
       title: Wijzigingensets
       title_user: Wijzigingensets door %{user}
       title_friend: Wijzigingensets van uw vrienden
@@ -298,14 +298,14 @@ nl:
     new:
       title: Nieuw dagboekbericht
       publish_button: Publiceren
-    list:
+    index:
       title: Gebruikersdagboeken
       title_friends: Dagboeken van vrienden
       title_nearby: Dagboeken van gebruikers in de buurt
       user_title: Dagboek van %{user}
       in_language_title: Dagboekberichten in het %{language}
       new: Nieuw dagboekbericht
-      new_title: Nieuw bericht in uw dagboek schrijven
+      new_title: Nieuw bericht in mijn dagboek schrijven
       no_entries: Het dagboek is leeg
       recent_entries: Recente dagboekberichten
       older_entries: Oudere berichten
@@ -321,7 +321,7 @@ nl:
       use_map_link: kaart gebruiken
       save_button: Opslaan
       marker_text: Locatie van bericht
-    view:
+    show:
       title: Dagboek van %{user} | %{title}
       user_title: Dagboek van %{user}
       leave_a_comment: Reactie achterlaten
@@ -761,6 +761,7 @@ nl:
         place:
           allotments: Volkstuinen
           city: Plaats
+          city_block: Woonblok
           country: Land
           county: District
           farm: Boerderij
@@ -1993,7 +1994,7 @@ nl:
       body: Er is geen gebruiker met de naam %{user}. Controleer de spelling, of misschien
         is de koppeling waarop u hebt geklikt onjuist.
       deleted: verwijderd
-    view:
+    show:
       my diary: Dagboek
       new diary entry: nieuw dagboekbericht
       my edits: Bewerkingen
@@ -2173,7 +2174,7 @@ nl:
     filter:
       not_an_administrator: U moet beheerder zijn om deze handeling uit te kunnen
         voeren.
-    list:
+    index:
       title: Gebruikers
       heading: Gebruikers
       showing:
index 23e59af4f63b5bdb8fd4a6254184b15000380879..e04391ab62356fbfd00078a23dcd5f196a632e2b 100644 (file)
@@ -229,7 +229,7 @@ nn:
       user: Brukar
       comment: Kommentar
       area: Område
-    list:
+    index:
       title: Endringssett
       title_user: Endringssett av %{user}
       title_friend: Endringssett av venene dine
@@ -251,7 +251,7 @@ nn:
     new:
       title: Ny dagbokoppføring
       publish_button: Publiser
-    list:
+    index:
       title: Brukarane sine dagbøker
       title_friends: Dagbøkene til venene dine
       title_nearby: Dagbøkene til naboar
@@ -274,7 +274,7 @@ nn:
       use_map_link: bruk kart
       save_button: Lagre
       marker_text: Lokasjon for dagbokoppføring
-    view:
+    show:
       title: '%{user} sin dagbok | %{title}'
       user_title: '%{user} si dagbok'
       leave_a_comment: Legg igjen ein kommentar
@@ -1703,7 +1703,7 @@ nn:
       body: Det er ingen brukar med namnet %{user}. Sjekk om du har skrive namnet
         feil eller om lenkja du klikket er feil.
       deleted: sletta
-    view:
+    show:
       my diary: Mi dagbok
       new diary entry: ny dagbokoppføring
       my edits: Mine endringar
@@ -1872,7 +1872,7 @@ nn:
       not_a_friend: '%{name} er ikkje ein av venene dine.'
     filter:
       not_an_administrator: Du må vere administrator for å gjere det.
-    list:
+    index:
       title: Brukarar
       heading: Brukarar
       showing:
index 7a81e58de8dad1544ec21a6e82b77806d2c25a06..cec44cd9d5ad7f800eb17ff60a65ec2e134cd54d 100644 (file)
@@ -234,7 +234,7 @@ oc:
       user: Utilizaire
       comment: Comentari
       area: Zòna
-    list:
+    index:
       title: Gropes de modificacions
       title_user: Gropes de modificacions per %{user}
       title_friend: Grops de modificacions peus amics
@@ -260,7 +260,7 @@ oc:
     new:
       title: Novèla entrada del jornal
       publish_button: Publicar
-    list:
+    index:
       title: Jornals dels utilizaires
       title_friends: Jornals dels amics
       title_nearby: Jornals dels utilizaires a proximitat
@@ -283,7 +283,7 @@ oc:
       use_map_link: Utilizar la mapa
       save_button: Salvar
       marker_text: Emplaçament de l'entrada del jornal
-    view:
+    show:
       title: Jornal de %{user} | %{title}
       user_title: Jornal de %{user}
       leave_a_comment: Apondre un comentari
@@ -1802,7 +1802,7 @@ oc:
       title: Utilizaire inexistent
       heading: L'utilizaire %{user} existís pas
       deleted: suprimit
-    view:
+    show:
       my diary: Mon jornal
       new diary entry: novèla entrada dins lo jornal
       my edits: Mas modificacions
@@ -1951,7 +1951,7 @@ oc:
       not_a_friend: '%{name} es pas demest vòstres amics.'
     filter:
       not_an_administrator: Vos cal èsser administrator per efectuar aquesta accion.
-    list:
+    index:
       title: Utilizaires
       heading: Utilizaires
       showing:
index 81e2fb26918a470705691827b6579583102ededb..9e62dbef1c00a8499031b422309ddc8a5064b700 100644 (file)
@@ -157,7 +157,7 @@ pa:
       user: ਵਰਤੋਂਕਾਰ
       comment: ਟਿੱਪਣੀ
       area: ਇਲਾਕਾ
-    list:
+    index:
       title: ਤਬਦੀਲੀਆਂ
       load_more: ਹੋਰ ਲੋਡ ਕਰੋ
   diary_entry:
@@ -172,7 +172,7 @@ pa:
       longitude: 'ਰੇਖਾਂਸ਼:'
       use_map_link: ਨਕਸ਼ਾ ਵਰਤੋ
       save_button: ਸਾਂਭੋ
-    view:
+    show:
       leave_a_comment: ਕੋਈ ਟਿੱਪਣੀ ਛੱਡੋ
       login_to_leave_a_comment: ਟਿੱਪਣੀ ਛੱਡਣ ਵਾਸਤੇ %{login_link}
       login: ਦਾਖ਼ਲਾ
@@ -1055,7 +1055,7 @@ pa:
         rest_of_world: ਬਾਕੀ ਦੁਨੀਆਂ
     no_such_user:
       title: ਕੋਈ ਅਜਿਹਾ ਵਰਤੋਂਕਾਰ ਨਹੀਂ
-    view:
+    show:
       my diary: ਮੇਰਾ ਰੋਜ਼ਨਾਮਚਾ
       new diary entry: ਰੋਜ਼ਨਾਮਚੇ 'ਚ ਨਵਾਂ ਇੰਦਰਾਜ
       my edits: ਮੇਰੀਆਂ ਸੋਧਾਂ
@@ -1164,7 +1164,7 @@ pa:
     remove_friend:
       heading: '%{user} ਨਾਲ਼ ਯਾਰੀ ਤੋੜਨੀ ਹੈ?'
       button: ਯਾਰੀ ਤੋੜੋ
-    list:
+    index:
       title: ਵਰਤੋਂਕਾਰ
       heading: ਵਰਤੋਂਕਾਰ
       confirm: ਚੁਣੇ ਹੋਏ ਵਰਤੋਂਕਾਰਾਂ ਦੀ ਤਸਦੀਕ ਕਰੋ
index f28c5fb945f0addbcefc698deb0d610270931dbc..a525a371f618d45b8e42d87951686541e6f0d9a2 100644 (file)
@@ -286,7 +286,7 @@ pl:
       user: Użytkownik
       comment: Komentarz
       area: Obszar
-    list:
+    index:
       title: Zestawy zmian
       title_user: Zestawy zmian użytkownika %{user}
       title_friend: Zestawy zmian moich znajomych
@@ -311,7 +311,7 @@ pl:
     new:
       title: Nowy wpis do dziennika
       publish_button: Opublikuj
-    list:
+    index:
       title: Dzienniki użytkowników
       title_friends: Dzienniki znajomych
       title_nearby: Dzienniki pobliskich użytkowników
@@ -334,7 +334,7 @@ pl:
       use_map_link: na mapie
       save_button: Zapisz
       marker_text: Umiejscowienie wpisu dziennika
-    view:
+    show:
       title: Dziennik użytkownika %{user} | %{title}
       user_title: Dziennik użytkownika %{user}
       leave_a_comment: Zostaw komentarz
@@ -2045,7 +2045,7 @@ pl:
       body: Niestety nie znaleziono użytkownika o nazwie %{user}, sprawdź pisownię.  Być
         może skorzystano z nieprawidłowego odnośnika.
       deleted: usunięty
-    view:
+    show:
       my diary: Dziennik
       new diary entry: nowy wpis w dzienniku
       my edits: Zmiany
@@ -2226,7 +2226,7 @@ pl:
     filter:
       not_an_administrator: Musisz mieć uprawnienia administratora do wykonania tego
         działania.
-    list:
+    index:
       title: Użytkownicy
       heading: Użytkownicy
       showing:
index 6c843f8d9913c762c2357c04aa7558e64d4bc4d1..c962c05a88656df48808015f35a2d92e217728fa 100644 (file)
@@ -276,7 +276,7 @@ pt-BR:
       user: Usuário
       comment: Comentário
       area: Área
-    list:
+    index:
       title: Conjuntos de alterações
       title_user: Conjuntos de alterações de %{user}
       title_friend: Conjuntos de alterações feitos pelos meus amigos
@@ -302,7 +302,7 @@ pt-BR:
     new:
       title: Nova Publicação no Diário
       publish_button: Publicar
-    list:
+    index:
       title: Diários dos Usuários
       title_friends: Diários dos amigos
       title_nearby: Diários dos usuários próximos
@@ -325,7 +325,7 @@ pt-BR:
       use_map_link: usar mapa
       save_button: Salvar
       marker_text: Localização da publicação no diário
-    view:
+    show:
       title: Diário de %{user} | %{title}
       user_title: Diário de %{user}
       leave_a_comment: Deixe um comentário
@@ -2143,7 +2143,7 @@ pt-BR:
       body: Não há um usuário com o nome %{user}. Confira a digitação, ou talvez o
         link em que você clicou esteja errado.
       deleted: excluído
-    view:
+    show:
       my diary: Meu Diário
       new diary entry: nova publicação no diário
       my edits: Minhas Edições
@@ -2324,7 +2324,7 @@ pt-BR:
       not_a_friend: '%{name} não é um dos seus amigos.'
     filter:
       not_an_administrator: Você precisa ser um administrador para executar essa ação.
-    list:
+    index:
       title: Usuários
       heading: Usuários
       showing:
index 45c1657abf967006a635f92152c41ae9fe87ebc3..df3bcc273f29c10f546ee70ac2e73f523bd1eee8 100644 (file)
@@ -261,7 +261,7 @@ pt-PT:
       user: Utilizador
       comment: Comentário
       area: Área
-    list:
+    index:
       title: Conjuntos de alterações
       title_user: Conjuntos de alterações de %{user}
       title_friend: Conjuntos de alterações feitos pelos meus amigos
@@ -287,7 +287,7 @@ pt-PT:
     new:
       title: Nova entrada no diário
       publish_button: Publicar
-    list:
+    index:
       title: Diários dos utilizadores
       title_friends: Diários dos amigos
       title_nearby: Diários dos utilizadores próximos
@@ -310,7 +310,7 @@ pt-PT:
       use_map_link: usar mapa
       save_button: Gravar
       marker_text: Localização da entrada do diário
-    view:
+    show:
       title: Diário de %{user} | %{title}
       user_title: Diário de %{user}
       leave_a_comment: Deixar um comentário
@@ -2004,7 +2004,7 @@ pt-PT:
       body: Não existe nenhum utilizador com o nome %{user}. Verifique se o endereço
         está correto ou talvez a hiperligação que clicou esteja errada.
       deleted: eliminado
-    view:
+    show:
       my diary: Meu diário
       new diary entry: adicionar entrada no meu diário
       my edits: As minhas edições
@@ -2185,7 +2185,7 @@ pt-PT:
       not_a_friend: '%{name} não está na lista de seus amigos.'
     filter:
       not_an_administrator: É necessário ser administrador para realizar esta operação.
-    list:
+    index:
       title: Utilizadores
       heading: Utilizadores
       showing:
index 7a405ac9d6d36844db06412a8500b45a504c55c4..881b15f79e5afdc9a2eea19016883079e43d7ca9 100644 (file)
@@ -238,7 +238,7 @@ ro:
       user: Utilizator
       comment: Comentariu
       area: Zonă
-    list:
+    index:
       title: Set de modificări
       title_user: Seturi de modificări făcute de %{user}
       title_friend: Seturi de modificări de la prietenii mei
@@ -261,7 +261,7 @@ ro:
     new:
       title: O nouă înregistrare în jurnal
       publish_button: Publică
-    list:
+    index:
       title: Jurnalele utilizatorilor
       title_friends: Jurnalele prietenilor
       title_nearby: Jurnalele utilizatorilor aflați în apropiere
@@ -284,7 +284,7 @@ ro:
       use_map_link: utilizează harta
       save_button: Salvează
       marker_text: Poziția înregistrării din jurnal
-    view:
+    show:
       title: Jurnalul utilizatorului %{user} | %{title}
       user_title: Jurnalul utilizatorului %{user}
       leave_a_comment: Adaugă un comentariu
@@ -989,7 +989,7 @@ ro:
       confirm password: 'Confirmați parola:'
     terms:
       consider_pd_why: Ce este aceasta?
-    view:
+    show:
       my messages: Mesajele mele
       my profile: Profilul meu
       my settings: Setările mele
index a2b9d39725b959528d74ad2978017d3a8b9c0e4e..69d3b9cd8ac0a61d8aa460fe6e856449b76c5687 100644 (file)
@@ -304,7 +304,7 @@ ru:
       user: Пользователь
       comment: Комментарий
       area: Область
-    list:
+    index:
       title: Пакет правок
       title_user: Пакеты правок пользователя %{user}
       title_friend: Пакеты правок моих друзей
@@ -330,7 +330,7 @@ ru:
     new:
       title: Новая запись в дневнике
       publish_button: Опубликовать
-    list:
+    index:
       title: Дневники
       title_friends: Дневники друзей
       title_nearby: Дневники соседних участников
@@ -353,7 +353,7 @@ ru:
       use_map_link: Указать на карте
       save_button: Сохранить
       marker_text: Место написания заметки
-    view:
+    show:
       title: Дневник пользователя %{user} | %{title}
       user_title: Дневник пользователя %{user}
       leave_a_comment: Оставить комментарий
@@ -1835,6 +1835,8 @@ ru:
       visibility: 'Видимость:'
       visibility_help: Что это значит?
       visibility_help_url: http://wiki.openstreetmap.org/wiki/RU:%D0%92%D0%B8%D0%B4%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C_GPS-%D1%82%D1%80%D0%B5%D0%BA%D0%BE%D0%B2?uselang=ru
+    update:
+      updated: Трек обновлён
     trace_optionals:
       tags: 'Теги:'
     show:
@@ -2151,7 +2153,7 @@ ru:
       body: Извините, нет пользователя с именем %{user}. Пожалуйста, проверьте правильность
         ввода. Возможно, вы перешли по ошибочной ссылке.
       deleted: удалено
-    view:
+    show:
       my diary: Мой дневник
       new diary entry: новая запись
       my edits: Мои правки
@@ -2334,7 +2336,7 @@ ru:
       not_a_friend: '%{name} не является вашим другом.'
     filter:
       not_an_administrator: Только администратор может выполнить это действие.
-    list:
+    index:
       title: Пользователи
       heading: Пользователи
       showing:
@@ -2586,7 +2588,7 @@ ru:
         notes: Заметки
         data: Данные карты
         gps: Общедоступные GPS-треки
-        overlays: Включите наложения для поиска и исправления неисправностей на карта
+        overlays: Включить наложения для устранения неисправностей карты
         title: Слои
       copyright: © <a href='%{copyright_url}'>Участники OpenStreetMap</a>
       donate_link_text: <a class='donate-attr' href='%{donate_url}'>Сделать пожертвование</a>
index 4fa7acb24210d438fee6f365bd6921ecf7fcaaf4..8a31a2ec00a0f29944aa52a172f0da3f91160234 100644 (file)
@@ -231,7 +231,7 @@ scn:
       user: Utenti
       comment: Cummentu
       area: Ària
-    list:
+    index:
       title: Gruppi di canciamenti
       title_user: Gruppi di canciamenti di %{user}
       title_friend: Gruppi di canciamenti dî tò amici
@@ -258,7 +258,7 @@ scn:
     new:
       title: Vuci nova dû diariu
       publish_button: Pùbblica
-    list:
+    index:
       title: Diarî di l'utenti
       title_friends: Diarî di l'amici
       title_nearby: Diarî di l'utenti vicini
@@ -281,7 +281,7 @@ scn:
       use_map_link: adòpira la cartina
       save_button: Sarva
       marker_text: Locu dâ vuci dû diariu
-    view:
+    show:
       title: Diariu di %{user} | %{title}
       user_title: Diariu di %{user}
       leave_a_comment: Lassa nu cummentu
@@ -1867,7 +1867,7 @@ scn:
       heading: L’utenti %{user} nun esisti
       body: Purtroppu nun c'è nuddu utenti chi si chiama %{user}. Pi favuri cuntrolla
         chi scrivisti bonu, o puru pò èssiri chi lu culligamentu chi cliccasti è sbagghiatu.
-    view:
+    show:
       my diary: Lu mè diariu
       new diary entry: vuci nova dû diariu
       my edits: Li mè canciamenti
@@ -2045,7 +2045,7 @@ scn:
       not_a_friend: '%{name} nun è amicu tò.'
     filter:
       not_an_administrator: Hai a èssiri n'amministraturi pi fari st'opirazzioni.
-    list:
+    index:
       title: Utenti
       heading: Utenti
       showing:
index aa12ef2a4b8c5e8f91367b3d8b55f540a96a6c41..44f5ba049ed11d4e53777bef586481c7bfe7a3d3 100644 (file)
@@ -221,7 +221,7 @@ sco:
       user: Uiser
       comment: Comment
       area: Aurie
-    list:
+    index:
       title: Chyngesets
       title_user: Chyngesets bi %{user}
       title_friend: Chyngesets bi yer friends
@@ -241,7 +241,7 @@ sco:
   diary_entry:
     new:
       title: New Diary Entry
-    list:
+    index:
       title: Uisers' diaries
       title_friends: Friends' diaries
       title_nearby: Nearbi Uisers' diaries
@@ -264,7 +264,7 @@ sco:
       use_map_link: uise map
       save_button: Hain
       marker_text: Diary entry location
-    view:
+    show:
       title: '%{user}''s diary | %{title}'
       user_title: '%{user}''s diary'
       leave_a_comment: Leave a comment
@@ -1098,7 +1098,7 @@ sco:
     lost_password:
       title: Lost password
       heading: Forgotten Passwird?
-    view:
+    show:
       edits: Eedits
       created from: 'Creautit frae:'
       user location: Uiser location
index e7925affd93a966f827ece4ee17ba259b5dd3f4e..904a2c1271f4b91f1fa0019703a8a84597f48bc6 100644 (file)
@@ -232,7 +232,7 @@ sk:
       user: Používateľ
       comment: Komentár
       area: Oblasť
-    list:
+    index:
       title: Sady zmien
       title_user: Sady zmien používateľa %{user}
       title_friend: Sady zmien vašich priateľov
@@ -249,7 +249,7 @@ sk:
   diary_entry:
     new:
       title: Nový záznam denníka
-    list:
+    index:
       title: Denníky používateľov
       title_friends: Denníky priateľov
       title_nearby: Denníky používateľov v okolí
@@ -272,7 +272,7 @@ sk:
       use_map_link: použiť mapu
       save_button: Uložiť
       marker_text: Poloha k položke denníka
-    view:
+    show:
       title: Denník používateľa %{user} | %{title}
       user_title: Denník používateľa %{user}
       leave_a_comment: Zanechať komentár
@@ -1654,7 +1654,7 @@ sk:
       heading: Používateľ %{user} neexistuje
       body: Ľutujeme, používateľ %{user} neexistuje. Prosím skontrolujte váš text,
         alebo ste možno klikli na nesprávny odkaz.
-    view:
+    show:
       my diary: Môj denník
       new diary entry: nový záznam denníka
       my edits: Moje úpravy
@@ -1828,7 +1828,7 @@ sk:
       not_a_friend: '%{name} nie je nikto z vašich priateľov.'
     filter:
       not_an_administrator: Potrebujete byť administrátor na vykonanie tejto akcie.
-    list:
+    index:
       title: Používatelia
       heading: Používatelia
       showing:
index aef6f494e31827bc4227b2c917757306d7975987..aa0886e9c3db52ca13b3c7b3b443ca64035bb234 100644 (file)
@@ -245,7 +245,7 @@ sl:
       user: Uporabnik
       comment: Komentar
       area: Območje
-    list:
+    index:
       title: Paketi sprememb
       title_user: Paketi sprememb uporabnika %{user}
       title_friend: Paketi sprememb mojih prijateljev
@@ -270,7 +270,7 @@ sl:
     new:
       title: Nov zapis v dnevnik uporabnikov
       publish_button: Objavi
-    list:
+    index:
       title: Dnevniki uporabnikov
       title_friends: Dnevniki vaših prijateljev
       title_nearby: Dnevniki bližnjih uporabnikov
@@ -293,7 +293,7 @@ sl:
       use_map_link: uporabi zemljevid
       save_button: Shrani
       marker_text: Lokacija, na katero se nanaša zapis
-    view:
+    show:
       title: Dnevnik uporabnika %{user} | %{title}
       user_title: Dnevnik uporabnika %{user}
       leave_a_comment: Napiši komentar
@@ -1808,7 +1808,7 @@ sl:
       body: Oprostite, uporabnika z imenom %{user} ni. Prosimo, preverite črkovanje
         in povezavo, ki ste jo kliknili.
       deleted: izbrisano
-    view:
+    show:
       my diary: Moj dnevnik
       new diary entry: nov vnos v dnevnik
       my edits: Moji prispevki
@@ -1985,7 +1985,7 @@ sl:
       not_a_friend: Uporabnika %{name} ni med vašimi prijatelji.
     filter:
       not_an_administrator: Morate biti administrator za izvedbo tega dejanja.
-    list:
+    index:
       title: Uporabniki
       heading: Uporabniki
       showing:
index 22838cebf6a12b6b9ddcc261a337a9d3dcda0c10..538df4c11fb1414d4e05d2d8efbab9ccca1c772b 100644 (file)
@@ -249,7 +249,7 @@ sq:
       user: Përdoruesi
       comment: Koment
       area: Zona
-    list:
+    index:
       title: Grupi i ndryshimeve
       title_user: Ndryshime fjalish nga %{user}
       title_friend: Ndryshime nga miqtë e tu
@@ -275,7 +275,7 @@ sq:
     new:
       title: Shënim i ri në ditar
       publish_button: Publiko
-    list:
+    index:
       title: Ditarët e përdoruesve
       title_friends: Ditarë të miqve
       title_nearby: Ditarët e përdoruesve këtu pranë
@@ -298,7 +298,7 @@ sq:
       use_map_link: përdor hartën
       save_button: Ruaj
       marker_text: Lokacioni i shënimit në ditar
-    view:
+    show:
       title: Ditari i %{user} | %{title}
       user_title: Ditari i %{user}
       leave_a_comment: Lëre ndonjë koment
@@ -1435,7 +1435,7 @@ sq:
       heading: Përdoruesi %{user} nuk ekziston
       body: Na vjen keq, nuk ka përdorues me emrin %{user}. Të lutem kontrollo drejtshkrimin,
         ose ndoshta linku që ke klikuar është gabim.
-    view:
+    show:
       my diary: Ditari im
       new diary entry: shënim i ri në ditar
       my edits: Redaktimet e mia
@@ -1585,7 +1585,7 @@ sq:
       not_a_friend: '%{name} nuk është një nga miqtë tuaj.'
     filter:
       not_an_administrator: Ju duhet të jetë një administrator për të kryer këtë veprim.
-    list:
+    index:
       title: Përdoruesi
       heading: Përdorues
       showing:
index 3779933660a38eafc758c93f14e4957fc4a8a68a..277bd00f4c9bf4ecfff3ee88844a05a6b12cd424 100644 (file)
@@ -159,7 +159,7 @@ sr-Latn:
       user: Korisnik
       comment: Komentar
       area: Područje
-    list:
+    index:
       title: Skupovi izmena
       title_user: Skupovi izmena korisnika %{user}
       title_friend: Izmene vaših prijatelja
@@ -169,7 +169,7 @@ sr-Latn:
   diary_entry:
     new:
       title: Novi unos u dnevniku
-    list:
+    index:
       title: Korisnički dnevnici
       title_friends: Dnevnici prijatelja
       title_nearby: Dnevnici okolnih korisnika
@@ -192,7 +192,7 @@ sr-Latn:
       use_map_link: koristi mapu
       save_button: Sačuvaj
       marker_text: Lokacija unosa u dnevniku
-    view:
+    show:
       title: Dnevnik korisnika %{user} | %{title}
       user_title: Dnevnik korisnika %{user}
       leave_a_comment: Ostavite komentar
@@ -1355,7 +1355,7 @@ sr-Latn:
       heading: Korisnik %{user} ne postoji
       body: Ne postoji korisnik s imenom %{user}. Proverite ispravnost upisa ili veze
         koju ste kliknuli.
-    view:
+    show:
       my diary: moj dnevnik
       new diary entry: novi unos u dnevniku
       my edits: moje izmene
@@ -1512,7 +1512,7 @@ sr-Latn:
       not_a_friend: '%{name} nije vaš prijatelj.'
     filter:
       not_an_administrator: Treba da budete administrator da biste izvršili ovu radnju.
-    list:
+    index:
       title: Korisnici
       heading: Korisnici
       showing:
index f496e811e641954f2f8f50ba0d8e2c3b6c0d7ddd..be79b22d069b2bd42fde81a4f417064b2dc96cbb 100644 (file)
@@ -145,8 +145,8 @@ sr:
       feed:
         title: Скуп измена %{id}
         title_comment: Скуп измена %{id} – %{comment}
-      join_discussion: Пријавите се да бисте се укључили у разговор
-      discussion: Ð Ð°Ð·Ð³Ð¾Ð²Ð¾Ñ\80
+      join_discussion: Пријавите се да бисте се придружили дискусији
+      discussion: Ð\94иÑ\81кÑ\83Ñ\81иÑ\98а
     node:
       title: 'Тачка: %{name}'
       history_title: 'Историја тачака: %{name}'
@@ -245,7 +245,7 @@ sr:
       user: Корисник
       comment: Коментар
       area: Област
-    list:
+    index:
       title: Скупови измена
       title_user: Скупови измена корисника %{user}
       title_friend: Скупови измена мојих пријатеља
@@ -260,17 +260,17 @@ sr:
     timeout:
       sorry: Нажалост, преузимање траженог списка измена предуго траје.
     rss:
-      title_all: Ð Ð°Ð·Ð³Ð¾Ð²Ð¾Ñ\80 о скупу измена OpenStreetMap-а
-      title_particular: 'РазговоÑ\80 о скупу измена #%{changeset_id} OpenStreetMap-а'
+      title_all: Ð\94иÑ\81кÑ\83Ñ\81иÑ\98а о скупу измена OpenStreetMap-а
+      title_particular: 'Ð\94иÑ\81кÑ\83Ñ\81иÑ\98а о скупу измена #%{changeset_id} OpenStreetMap-а'
       comment: Нови коментар на скуп измена бр. %{changeset_id} корисника %{author}
       commented_at_html: Ажурирано пре %{when}
       commented_at_by_html: Ажурирао %{user} пре %{when}
-      full: Ð¦ÐµÐ»Ð¾ÐºÑ\83пан Ñ\80азговоÑ\80
+      full: Ð¦ÐµÐ»Ð° Ð´Ð¸Ñ\81кÑ\83Ñ\81иÑ\98а
   diary_entry:
     new:
       title: Нови дневнички запис
       publish_button: Објави
-    list:
+    index:
       title: Дневници корисника
       title_friends: Дневници пријатеља
       title_nearby: Дневници корисника у близини
@@ -293,7 +293,7 @@ sr:
       use_map_link: Прикажи на мапи
       save_button: Сачувај
       marker_text: Локација писања белешке
-    view:
+    show:
       title: Дневник корисника %{user} | %{title}
       user_title: Дневник корисника %{user}
       leave_a_comment: Остави коментар
@@ -1313,9 +1313,10 @@ sr:
         contributors_nl_html: |-
           <strong>Холандија</strong>: садржи &copy; AND подаци, 2007
           (<a href="https://www.and.com">www.and.com</a>)
-        contributors_nz_html: |-
-          <strong>Нови Зеланд</strong>: садржи податке који потичу од
-              Land Information New Zealand. Крунска ауторска права задржана.
+        contributors_nz_html: "<strong>Нови Зеланд</strong>: Садржи податке које потичу
+          из \n<a href=\"https://data.linz.govt.nz/\">Услуге са подацима LINZ</a>,
+          а\nлиценциране за поновну употребу под лиценцом\n<a href=\"https://creativecommons.org/licenses/by/4.0/\">CC
+          BY 4.0</a>."
         contributors_si_html: |-
           <strong>Словенија</strong>: Садржи податке са
           <a href="http://www.gu.gov.si/en/">Ауторитета за истраживање и мапирање</a> те од
@@ -1376,7 +1377,8 @@ sr:
       potlatch_unsaved_changes: Имате несачуване измене. (Да бисте их сачували у Potlatch-у,
         демаркирајте тренутни пут или тачку, ако уређујете у „живом“ режиму, или кликните
         на дугме за чување, ако постоји.)
-      potlatch2_not_configured: Потлач 2 није подешен. Погледајте http://wiki.openstreetmap.org/wiki/The_Rails_Port
+      potlatch2_not_configured: Потлач 2 није конфигурисан — погледајте https://wiki.openstreetmap.org/wiki/The_Rails_Port#Potlatch_2
+        за више информација
       potlatch2_unsaved_changes: Нисте сачували измене. Да бисте то урадили, кликните
         на дугме за чување.
       id_not_configured: iD није конфигурисан
@@ -1472,7 +1474,8 @@ sr:
           табле.
       irc:
         title: IRC
-        description: Интерактивни разговор на многим језицима и на многе теме.
+        description: Интерактивно ћаскање на много различитих језицима и на многе
+          теме.
       switch2osm:
         title: switch2osm
         description: Помоћ за компаније и организације које прелазе на мапе засноване
@@ -1567,7 +1570,7 @@ sr:
       edit: Уреди
       preview: Преглед
     markdown_help:
-      title_html: Рашчлањено са <a href="http://daringfireball.net/projects/markdown/">маркдауном</a>
+      title_html: Рашчлањено са <<a href="https://daringfireball.net/projects/markdown/">Markdown-ом</a>
       headings: Наслови
       heading: Наслов
       subheading: Поднаслов
@@ -1924,8 +1927,8 @@ sr:
           <p>За разлику од осталих мапа, OpenStreetMap у потпуности стварају људи као Ви,
           и бесплатан је за свакога да поправља, ажурира, преузима и користи.</p>
           <p>Пријавите се да бисте почели да доприносите. Послаћемо Вам имејл за потврду Вашег налога.</p>
-      license_agreement: Ð\9dакон Ñ\88Ñ\82о Ð¿Ð¾Ñ\82вÑ\80диÑ\82е Ð½Ð°Ð»Ð¾Ð³, Ð¼Ð¾Ñ\80аÑ\9bеÑ\82е Ð´Ð° Ð¿Ñ\80иÑ\85ваÑ\82иÑ\82е <a href="http://www.osmfoundation.org/wiki/License/Contributor_Terms">услове
-        Ñ\83Ñ\80еÑ\92иваÑ\9aа</a>.
+      license_agreement: Ð\9aада Ð¿Ð¾Ñ\82вÑ\80диÑ\82е Ð½Ð°Ð»Ð¾Ð³, Ð¼Ð¾Ñ\80аÑ\9bеÑ\82е Ð´Ð° Ð¿Ñ\80иÑ\85ваÑ\82иÑ\82е <a href="https://www.osmfoundation.org/wiki/License/Contributor_Terms">услове
+        Ñ\81аÑ\80адника</a>.
       email address: 'Имејл адреса:'
       confirm email address: 'Потврдите имејл адресу:'
       not displayed publicly: Ваша адреса се не приказује јавно, погледајте <a href="https://wiki.osmfoundation.org/wiki/Privacy_Policy"
@@ -1972,7 +1975,7 @@ sr:
       body: Не постоји корисник с именом %{user}. Проверите исправност уписа или везе
         коју сте кликнули.
       deleted: обрисано
-    view:
+    show:
       my diary: Мој дневник
       new diary entry: нови дневнички запис
       my edits: Моје измене
@@ -2147,7 +2150,7 @@ sr:
       not_a_friend: '%{name} није ваш пријатељ.'
     filter:
       not_an_administrator: Треба да будете администратор да бисте извршили ову радњу.
-    list:
+    index:
       title: Корисници
       heading: Корисници
       showing:
index db620993140c396b40c73caf10c1c1809938d26c..a84fed3e56177bb177b0cb4bdeca33582e206cb8 100644 (file)
@@ -273,7 +273,7 @@ sv:
       user: Användare
       comment: Kommentar
       area: Område
-    list:
+    index:
       title: Ändringsset
       title_user: Ändringsset av %{user}
       title_friend: Ändringsset av mina vänner
@@ -299,7 +299,7 @@ sv:
     new:
       title: Nytt dagboksinlägg
       publish_button: Publicera
-    list:
+    index:
       title: Användardagböcker
       title_friends: Vänners dagböcker
       title_nearby: Närbelägna användares dagböcker
@@ -322,7 +322,7 @@ sv:
       use_map_link: använd karta
       save_button: Spara
       marker_text: Plats för dagboksinlägg
-    view:
+    show:
       title: '%{user}s dagbok | %{title}'
       user_title: '%{user}s dagbok'
       leave_a_comment: Lämna en kommentar
@@ -1787,6 +1787,8 @@ sv:
       trace_uploaded: Din GPX-fil har laddats upp och väntar på att lagras i databasen.
         Detta sker vanligtvis inom en halvtimme. När den är klar skickas en e-post
         till dig.
+      upload_failed: Tyvärr, GPX-uppladdningen misslyckades. En administratör har
+        meddelats om felet. Försök igen
       traces_waiting:
         one: Du har %{count} GPS-spår som håller på att laddas upp. Vänta gärna på
           att detta blir klart innan du laddar upp fler, så att du inte blockerar
@@ -1811,6 +1813,8 @@ sv:
       save_button: Spara ändringar
       visibility: 'Synlighet:'
       visibility_help: vad betyder detta?
+    update:
+      updated: Spår uppdaterades
     trace_optionals:
       tags: Taggar
     show:
@@ -2122,7 +2126,7 @@ sv:
       body: Det finns ingen användare med namnet %{user}. Kontrollera stavningen,
         eller så kanske länken är trasig.
       deleted: raderad
-    view:
+    show:
       my diary: Min dagbok
       new diary entry: nytt dagboksinlägg
       my edits: Mina redigeringar
@@ -2300,7 +2304,7 @@ sv:
       not_a_friend: '%{name} är inte en av dina vänner.'
     filter:
       not_an_administrator: Du måste vara administratör för att få göra det.
-    list:
+    index:
       title: Användare
       heading: Användare
       showing:
index 279f0efb9a7ec6cb95147cc3042ba2ae3d12baef..34c1876e1ee75a7a41463bdbd96217a78ea72b1d 100644 (file)
@@ -5,6 +5,7 @@
 # Author: ElangoRamanujam
 # Author: Karthi.dr
 # Author: Krishnaprasaths
+# Author: Mahir78
 # Author: Rakeshonwiki
 # Author: Sank
 # Author: Shanmugamp7
@@ -148,11 +149,12 @@ ta:
     start_rjs:
       loading: ஏற்றப்படுகிறது ...
     tag_details:
-      tags: 'à®\95à¯\81றிபà¯\8dபà¯\81à®\95்கள்:'
+      tags: 'à®\95à¯\81றிà®\9aà¯\8dà®\9aà¯\8aà®±்கள்:'
       wiki_link:
         key: விக்கி  விளக்கப்பக்கம் %{key} குறிச்சொல்லுக்காக
     note:
       new_note: புதுக் குறிப்பு
+      description: விளக்கம்
   changeset:
     changeset_paging_nav:
       next: அடுத்து »
@@ -166,7 +168,7 @@ ta:
       user: பயனர்
       comment: கருத்து
       area: பகுதி
-    list:
+    index:
       title: மாற்றங்கள்
       load_more: மேலும் படிக்க
     rss:
@@ -175,7 +177,7 @@ ta:
     new:
       title: புதிய டைரி உள்ளீடு
       publish_button: வெளியிடு
-    list:
+    index:
       title: பயனரின் நாட்குறிப்பேடுகள்
       title_friends: நண்பர்களின் நாட்குறிப்பேடுகள்
       title_nearby: அருகிலுள்ள பயனர்களின் நாட்குறிப்பேடுகள்
@@ -198,7 +200,7 @@ ta:
       use_map_link: வரைப்படத்தை பயன்படுத்தவும்
       save_button: சேமி
       marker_text: டைரி உள்ளீடு பகுதி
-    view:
+    show:
       title: '%{user}''ன்  நாட்குறிப்பேடு| %{title}'
       user_title: '%{user}ன் நாட்குறிப்பேடு'
       leave_a_comment: ஒரு குறிப்பை இடவும்
@@ -298,6 +300,12 @@ ta:
           "yes": பாலம்
         building:
           "yes": கட்டிடம்
+        craft:
+          tailor: தையற்காரர்
+          "yes": கைவினைப் பொருள் அங்காடி
+        emergency:
+          ambulance_station: அவசர ஊர்தி நிலையம்
+          "yes": அவசரம்
         highway:
           abandoned: கைவிடப்பட்ட நெடுஞ்சாலை
           bus_guideway: வழிநடத்தப்பட்ட பேருந்து தடம்
@@ -468,6 +476,14 @@ ta:
     results:
       no_results: முடிவுகள் எதுவும் காணப்படவில்லை
       more_results: மேலும் முடிவுகள்
+  reports:
+    new:
+      categories:
+        user:
+          other_label: மற்றவை
+        note:
+          spam_label: இந்தக் குறிப்பு ஒரு எரிதம்
+          personal_label: இந்தக் குறிப்பில் தனிநபர் தகவல்கள் உள்ளன
   layouts:
     home: முகப்பு
     logout: விடுபதிகை
@@ -522,6 +538,7 @@ ta:
       title: அப்படியொரு தகவல் இல்லை
       heading: அப்படியொரு தகவல் இல்லை
     outbox:
+      title: அனுப்பியவை
       inbox: உள்பெட்டி
       outbox: வெளிப்பெட்டி
       subject: பொருள்
@@ -533,6 +550,7 @@ ta:
       date: நாள்
       reply_button: பதில் அளி
       unread_button: வாசிக்கப்படாததாக  குறியிடு
+      destroy_button: நீக்குக
       to: பெறுநர்
     sent_message_summary:
       destroy_button: நீக்கு
@@ -595,6 +613,7 @@ ta:
           construction: சாலைகளில்  கட்டுமானப் பணிகள் நடந்து வருகின்றன.
           toilets: கழிவறைகள்
     welcome:
+      title: வருக!
       rules:
         title: விதிமுறைகள்!
   traces:
@@ -705,7 +724,7 @@ ta:
     no_such_user:
       title: அப்படியொரு பயனர் இல்லை.
       heading: பயனர் %{user} இல்லை
-    view:
+    show:
       my diary: எனது நாட்குறிப்பேடு
       new diary entry: புதிய நாட்குறிப்பேடு உள்ளீடு
       my edits: என் திருத்தங்கள்
@@ -723,6 +742,7 @@ ta:
       description: விளக்கம்
       user location: பயனர் அமைவிடம்
       settings_link_text: அமைப்புகள்
+      my friends: எனது நண்பர்கள்
       no friends: நீங்கள் இதுவரை எந்த நண்பர்களையும் சேர்க்கவில்லை
       km away: '%{count}கிமீ தாண்டி'
       m away: '%{count}மீ தாண்டி'
@@ -767,7 +787,7 @@ ta:
       keep image: நடப்பு படத்தை வைத்திரு
       delete image: நடப்பு படத்தை நீக்கு
       save changes button: மாற்றங்களைச் சேமி
-    list:
+    index:
       title: பயனர்கள்
       heading: பயனர்கள்
     suspended:
index d827224324656e72bd597d6b665a4197b0f125e4..1652cc46573477201f210dd0e2e56c498a30a960 100644 (file)
@@ -146,7 +146,7 @@ te:
       user: వాడుకరి
       comment: వ్యాఖ్య
       area: ప్రదేశం
-    list:
+    index:
       title_user: '%{user} చేసిన మార్పులు'
       load_more: మరిన్ని చూపించు
     rss:
@@ -155,7 +155,7 @@ te:
     new:
       title: కొత్త దినచర్య పద్దు
       publish_button: ప్రచురించు
-    list:
+    index:
       title: వాడుకరుల డైరీలు
       title_friends: స్నేహితుల దినచర్యలు
       title_nearby: చుట్టుపక్కల వాడుకరుల డైరీలు
@@ -176,7 +176,7 @@ te:
       longitude: 'రేఖాంశం:'
       use_map_link: పటాన్ని వాడు
       save_button: భద్రపరచు
-    view:
+    show:
       title: వాడుకరుల డైరీలు | %{user}
       user_title: '%{user} యొక్క డైరీ'
       leave_a_comment: వ్యాఖ్యానించండి
@@ -705,7 +705,7 @@ te:
         italy: ఇటలీ
     no_such_user:
       heading: '%{user} వాడుకరి లేనే లేరు'
-    view:
+    show:
       my diary: నా డైరీ
       my edits: నా మార్పులు
       my notes: నా గమనికలు
@@ -795,7 +795,7 @@ te:
     make_friend:
       success: '%{name} ఇప్పుడు మీ మిత్రులు!'
       already_a_friend: '%{name} మీకు ఇప్పటికే స్నేహితులు.'
-    list:
+    index:
       title: వాడుకరులు
       heading: వాడుకరులు
   user_role:
index 250797cd2aa6e6ccb62205428a0f67e8fd8ad824..59243aae0e8d4e0b3340846eb56a707f0d33ba8d 100644 (file)
@@ -218,7 +218,7 @@ th:
       report: แจ้งปัญหาเกี่ยวกับหมายเหตุนี้
     query:
       title: ส่วนประกอบในพื้นที่
-      introduction: à¸\84ลิà¸\81à¸\97ีà¹\88à¹\81à¸\9cà¸\99à¸\97ีà¹\88à¹\80à¸\9eืà¹\88อà¸\84à¹\89à¸\99หาà¸\84ุà¸\93สมà¸\9aัà¸\95ิà¸\95à¹\88าà¸\87 ๆ ที่อยู่ใกล้เคียง
+      introduction: à¸\84ลิà¸\81à¸\9aà¸\99à¹\81à¸\9cà¸\99à¸\97ีà¹\88à¹\80à¸\9eืà¹\88อà¸\84à¹\89à¸\99หาสà¹\88วà¸\99à¸\9bระà¸\81อà¸\9aà¸\95à¹\88าà¸\87ๆ ที่อยู่ใกล้เคียง
       nearby: ส่วนประกอบที่อยู่ใกล้เคียง
       enclosing: ส่วนประกอบที่ปิดล้อม
   changeset:
@@ -236,7 +236,7 @@ th:
       user: ผู้ใช้
       comment: ความเห็น
       area: พื้นที่
-    list:
+    index:
       title: ชุดการเปลี่ยนแปลง
       title_user: ชุดการเปลี่ยนแปลงที่ทำโดย %{user}
       title_friend: ชุดการเปลี่ยนแปลงที่ทำโดยเพื่อนของฉัน
@@ -261,7 +261,7 @@ th:
     new:
       title: สร้างบันทึกใหม่
       publish_button: เผยแพร่
-    list:
+    index:
       title: บันทึกของผู้ใช้
       title_friends: บันทึกของเพื่อน
       title_nearby: บันทึกของผู้ใช้ที่อยู่ใกล้เคียง
@@ -284,7 +284,7 @@ th:
       use_map_link: ใช้แผนที่
       save_button: บันทึก
       marker_text: ที่ตั้งของรายการบันทึก
-    view:
+    show:
       title: บันทึกของ %{user} | %{title}
       user_title: บันทึกของ %{user}
       leave_a_comment: แสดงความคิดเห็น
@@ -1705,7 +1705,7 @@ th:
       remember: จดจำฉันไว้ในระบบ
       lost password link: ลืมรหัสผ่านหรือ?
       login_button: ลงชื่อเข้าใช้
-      register now: à¸¥à¸\87à¸\97ะà¹\80à¸\9aียà¸\99à¸\81à¹\88อà¸\99à¹\80ลย
+      register now: à¸ªà¸¡à¸±à¸\84รà¹\80ลย!
       with username: มีบัญชี OpenStreetMap แล้วหรือยัง? ถ้ามีโปรดเข้าระบบด้วยชื่อผู้ใช้และรหัสผ่านที่ท่านมี
       with external: นอกจากนี้ ท่านสามารถใช้บัญชีผู้ใช้จากเว็บอื่นในการเข้าใช้งานได้
       new to osm: เพิ่งเริ่มใช้ OpenStreetMap หรือ?
@@ -1796,7 +1796,7 @@ th:
       title: ไม่มีผู้ใช้ที่ระบุ
       heading: ไม่พบผู้ใช้ชื่อ %{user}
       deleted: ลบแล้ว
-    view:
+    show:
       my diary: บันทึกของฉัน
       new diary entry: สร้างบันทึกใหม่
       my edits: การแก้ไขของฉัน
@@ -1933,7 +1933,7 @@ th:
       not_a_friend: ผู้ใช้ %{name} ไม่ได้อยู่ในรายการเพื่อนของท่าน
     filter:
       not_an_administrator: ท่านต้องเป็นผู้ดูแลระบบจึงจะสามารกระทำสิ่งนี้ได้
-    list:
+    index:
       title: ผู้ใช้
       heading: ผู้ใช้
       showing:
index 11ca2b9028a7f0c0930ab266a0c33aa61db2d511..096bbec5fb0151f1be0f07b3b0ae23715b3a8ab5 100644 (file)
@@ -212,7 +212,7 @@ tl:
       user: Tagagamit
       comment: Puna/Kumento
       area: Pook
-    list:
+    index:
       title: Mga pangkat ng pagbabago
       title_user: Mga pangkat ng pagbabago ayon sa %{user}
       title_friend: Mga pangkat ng pagbabago ng mga kaibigan mo
@@ -233,7 +233,7 @@ tl:
     new:
       title: Bagong Pagpapasok sa Talaarawan
       publish_button: Ilathala
-    list:
+    index:
       title: Mga talaarawan ng mga tagagamit
       title_friends: Mga talaarawan ng mga kaibigan
       title_nearby: Mga talaarawan ng Kanugnog na mga Tagagamit
@@ -256,7 +256,7 @@ tl:
       use_map_link: gamitin ang mapa
       save_button: Sagipin
       marker_text: Kinalalagay ng ipinasok sa talaarawan
-    view:
+    show:
       title: Talaarawan ni %{user} | %{title}
       user_title: Talaarawan ni %{user}
       leave_a_comment: Mag-iwan ng puna
@@ -1622,7 +1622,7 @@ tl:
       heading: Hindi umiiral ang tagagamit na %{user}
       body: Paumanhin, walang tagagamit na may pangalang %{user}.  Mangyaring pakisuri
         ang pagbabaybay mo, o kaya ay mali ang kawing na pinindot mo.
-    view:
+    show:
       my diary: talaarawan ko
       new diary entry: Bagong pagpapasok sa talaarawan
       my edits: mga pamamatnugot ko
@@ -1798,7 +1798,7 @@ tl:
     filter:
       not_an_administrator: Kailangan mong maging isang tagapangasiwa upang maisagawa
         ang galaw na iyan.
-    list:
+    index:
       title: Mga tagagamit
       heading: Mga tagagamit
       showing:
index 916c9cd0a1b1ee45ac0f7d2d8f72917d86e1b667..a47bc7b2e3f76dd342412c9c0cc26b987b1449f5 100644 (file)
@@ -2,6 +2,7 @@
 # Exported from translatewiki.net
 # Export driver: phpyaml
 # Author: Alerque
+# Author: Alidemirtas
 # Author: Alpkant
 # Author: Archaeodontosaurus
 # Author: Captantrips
@@ -274,7 +275,7 @@ tr:
       user: Kullanıcı
       comment: Yorum
       area: Alan
-    list:
+    index:
       title: Değişiklik Setleri
       title_user: '%{user} tarafından değişiklik setleri'
       title_friend: Arkadaşlarımın değişiklik kayıtları
@@ -300,7 +301,7 @@ tr:
     new:
       title: Yeni Günlük Girdisi
       publish_button: Yayınla
-    list:
+    index:
       title: Kullanıcıların günlükleri
       title_friends: Arkadaşlarının günlükleri
       title_nearby: Yakındaki kullanıcıların günlükleri
@@ -323,7 +324,7 @@ tr:
       use_map_link: Haritayı kullanarak belirt
       save_button: Kaydet
       marker_text: Girdisinin konumu
-    view:
+    show:
       title: '%{user} (günlük) | %{title}'
       user_title: '%{user} (Günlük)'
       leave_a_comment: Yorum yaz
@@ -1799,6 +1800,8 @@ tr:
       trace_uploaded: GPX dosya yüklendi ve veritabanına eklemek için bekliyor. Bu
         işlem genellikle yarım saat içinde gerçekleşir ve tamamlandığında sana bir
         e-posta gönderiliyor.
+      upload_failed: Üzgünüz, GPX yüklemesi başarısız oldu. Bir yönetici hatayla ilgili
+        bilgilendirildi. Lütfen tekrar deneyin
       traces_waiting:
         one: Yüklemeyi bekleyen %{count} iz var. Diğer kullanıcıların kuyruklarını
           engellememek için lütfen bunları yüklemeden önce öncekilerin bitmesini bekleyin.
@@ -1821,6 +1824,8 @@ tr:
       save_button: Değişiklikleri Kaydet
       visibility: Görünürlük
       visibility_help: Bu ne demek?
+    update:
+      updated: İzleme güncellendi
     trace_optionals:
       tags: Etiketler
     show:
@@ -2133,7 +2138,7 @@ tr:
       body: Üzgünüz, %{user} adlı bir kullanıcı yok. Lütfen yazımınızı denetleyin
         veya tıkladığınız bağlantı belki yanlış idi.
       deleted: silindi
-    view:
+    show:
       my diary: Günlüğüm
       new diary entry: yeni kayıt
       my edits: Katkılarım
@@ -2313,7 +2318,7 @@ tr:
     filter:
       not_an_administrator: Bu eylemi gerçekleştirebilmek için bir yönetici olmanız
         gerekiyor.
-    list:
+    index:
       title: Kullanıcılar
       heading: Kullanıcılar
       showing:
@@ -2632,8 +2637,16 @@ tr:
         sharp_left_without_exit: '%{name} üstünden sola keskin dönüş'
         turn_left_without_exit: '%{name} üstünden sola dönün'
         offramp_left: Rampaya doğru sola dönün
+        offramp_left_with_exit: Soldaki %{exit} çıkışa girin
+        offramp_left_with_exit_name: '%{name} yerine %{exit} çıkışından sola dönün'
+        offramp_left_with_exit_directions: '%{directions} yönünde soldaki %{exit}
+          çıkışını yapın.'
+        offramp_left_with_exit_name_directions: '%{exit}''den çıkış yap soldaki %{name}
+          %{directions} yönüne doğru'
         offramp_left_with_name: Soldaki rampayı kullanarak %{name} girin
+        offramp_left_with_directions: '%{directions} yönünde soldaki rampadan'
         onramp_left_without_exit: Rampadan sola dönerek %{name} girin
+        onramp_left_with_directions: '%{directions} doğru rampadan sola dönün'
         onramp_left_without_directions: Rampaya doğru sola dönün
         onramp_left: Rampaya doğru sola dönün
         endofroad_left_without_exit: Yolun sonunda sola %{name} yönünde dönün
@@ -2647,9 +2660,11 @@ tr:
         stay_roundabout_without_exit: Kavşakta kal - %{name}
         start_without_exit: '%{name} bitişinden başlayın'
         destination_without_exit: Hedefe ulaş
+        against_oneway_without_exit: '%{name}X üzerinde tek yönlü git'
         end_oneway_without_exit: '%{name} için tek yönün sonu'
         roundabout_with_exit: Dönel kavşakta %{exit}. çıkışı kullanarak %{name} üzerine
         unnamed: adsız yol
+        courtesy: Yolculuğun izniyle %{link}x
         exit_counts:
           first: birinci
           second: ikinci
index e1628ca99045e4ef475f00b220ab1ae6d2a3c866..213811f744dbc5190f51a3b2603f7fa41c8c5a5b 100644 (file)
@@ -267,7 +267,7 @@ uk:
       user: Користувач
       comment: Коментар
       area: Ділянка
-    list:
+    index:
       title: Набір змін
       title_user: Набори змін від %{user}
       title_friend: Набори змін моїх друзів
@@ -293,7 +293,7 @@ uk:
     new:
       title: Створити новий запис у щоденнику
       publish_button: Опублікувати
-    list:
+    index:
       title: Щоденник користувача
       title_friends: Щоденники друзів
       title_nearby: Щоденники користувачів поряд з вами
@@ -316,7 +316,7 @@ uk:
       use_map_link: Вказати на мапі
       save_button: Зберегти
       marker_text: Місце написання нотатки
-    view:
+    show:
       title: Щоденник користувача %{user} | %{title}
       user_title: Щоденник користувача %{user}
       leave_a_comment: Лишити коментар
@@ -1908,7 +1908,7 @@ uk:
       body: Вибачте, немає користувача з ім'ям %{user}. Будь ласка, перевірте правильність
         його введення. Можливо, ви перейшли з помилкового посилання.
       deleted: вилучено
-    view:
+    show:
       my diary: Мій щоденник
       new diary entry: новий запис
       my edits: Мої правки
@@ -2089,7 +2089,7 @@ uk:
       not_a_friend: '%{name} не є вашим другом.'
     filter:
       not_an_administrator: Тільки адміністратор може виконати цю дію.
-    list:
+    index:
       title: Користувачі
       heading: Користувачі
       showing:
index 8c1af6d8043815fc9099a27c12bbe0ab895428ea..0761211fa72a76b68f8e337ffefdfc0a5fe2e23e 100644 (file)
@@ -238,7 +238,7 @@ vi:
       user: Người dùng
       comment: Miêu tả
       area: Vùng
-    list:
+    index:
       title: Các bộ thay đổi
       title_user: Những bộ thay đổi của %{user}
       title_friend: Những bộ thay đổi của bạn bè
@@ -263,7 +263,7 @@ vi:
     new:
       title: Mục Nhật ký Mới
       publish_button: Đăng
-    list:
+    index:
       title: Các Nhật ký Cá nhân
       title_friends: Các nhật ký của bạn bè
       title_nearby: Các nhật ký của người dùng ở gần
@@ -286,7 +286,7 @@ vi:
       use_map_link: sử dụng bản đồ
       save_button: Lưu
       marker_text: Vị trí của mục nhật ký
-    view:
+    show:
       title: Nhật ký của %{user} | %{title}
       user_title: Nhật ký của %{user}
       leave_a_comment: Bình luận
@@ -2028,7 +2028,7 @@ vi:
       body: Rất tiếc, không có người dùng với tên %{user}. Xin hãy kiểm tra chính
         tả, hoặc có lẽ bạn đã theo một liên kết sai.
       deleted: đã xóa
-    view:
+    show:
       my diary: Nhật ký của Tôi
       new diary entry: mục nhật ký mới
       my edits: Đóng góp của Tôi
@@ -2206,7 +2206,7 @@ vi:
       not_a_friend: '%{name} đã không phải người bạn.'
     filter:
       not_an_administrator: Chỉ các quản lý viên có quyền thực hiện tác vụ đó.
-    list:
+    index:
       title: Người dùng
       heading: Người dùng
       showing:
index bca1bfe2ffdf0fa3508354ab61dadcede59dc28e..07483a0dae709f79a5a4fe484943906999cbb459 100644 (file)
@@ -259,7 +259,7 @@ zh-CN:
       user: 用户
       comment: 注解
       area: 区域
-    list:
+    index:
       title: 修改集合
       title_user: '%{user} 的修改集合'
       title_friend: 由我的朋友所做的修改集合
@@ -284,7 +284,7 @@ zh-CN:
     new:
       title: 新日记文章
       publish_button: 发布
-    list:
+    index:
       title: 用户日记
       title_friends: 朋友的日记
       title_nearby: 附近用户的日记
@@ -307,7 +307,7 @@ zh-CN:
       use_map_link: 使用地图
       save_button: 保存
       marker_text: 日记文章位置
-    view:
+    show:
       title: '%{user} 的日记 | %{title}'
       user_title: '%{user} 的日记'
       leave_a_comment: 留下评论
@@ -1921,7 +1921,7 @@ zh-CN:
       heading: 用户 %{user} 不存在
       body: 对不起,没有名为 %{user} 的用户。请检查您的拼写,或者可能是点击了错误的链接。
       deleted: 已删除
-    view:
+    show:
       my diary: 我的日记
       new diary entry: 新日记文章
       my edits: 我的编辑
@@ -2082,7 +2082,7 @@ zh-CN:
       not_a_friend: '%{name} 不是您的朋友。'
     filter:
       not_an_administrator: 您必须是管理员才能执行该操作。
-    list:
+    index:
       title: 用户
       heading: 用户
       showing:
index db4e1a22ac1701f8eba3938974947aa9ba6b7e30..f2c666efe79fe358c19439b8bb252385dc1b18c9 100644 (file)
@@ -253,7 +253,7 @@ zh-TW:
       user: 使用者
       comment: 評論
       area: 區域
-    list:
+    index:
       title: 變更集
       title_user: '%{user} 的變更集'
       title_friend: 我的好友之變更集
@@ -278,7 +278,7 @@ zh-TW:
     new:
       title: 新日記項目
       publish_button: 發佈
-    list:
+    index:
       title: 日記
       title_friends: 好友的日記
       title_nearby: 附近的使用者的日記
@@ -301,7 +301,7 @@ zh-TW:
       use_map_link: 使用地圖
       save_button: 儲存
       marker_text: 日記項目位置
-    view:
+    show:
       title: '%{user} 的日記 | %{title}'
       user_title: '%{user} 的日記'
       leave_a_comment: 留下評論
@@ -1942,7 +1942,7 @@ zh-TW:
       heading: 使用者 %{user} 不存在
       body: 抱歉,沒有名為 %{user} 的使用者。請檢查您的拼字,或者可能是您按到錯誤的連結。
       deleted: 已刪除
-    view:
+    show:
       my diary: 我的日記
       new diary entry: 新增日記項目
       my edits: 我的編輯
@@ -2103,7 +2103,7 @@ zh-TW:
       not_a_friend: '%{name} 並不是您的好友。'
     filter:
       not_an_administrator: 您需要是管理員才可執行此操作。
-    list:
+    index:
       title: 使用者
       heading: 使用者
       showing:
index 1a5fb827231b8045cb00a84c8cb957a4a3aab47d..b2a0f84c37e83e28fa760b58c7351c1b9ad67c49 100644 (file)
@@ -119,11 +119,11 @@ OpenStreetMap::Application.routes.draw do
   get "/changeset/:id/comments/feed" => "changeset#comments_feed", :as => :changeset_comments_feed, :id => /\d*/, :defaults => { :format => "rss" }
   get "/note/:id" => "browse#note", :id => /\d+/, :as => "browse_note"
   get "/note/new" => "browse#new_note"
-  get "/user/:display_name/history" => "changeset#list"
+  get "/user/:display_name/history" => "changeset#index"
   get "/user/:display_name/history/feed" => "changeset#feed", :defaults => { :format => :atom }
   get "/user/:display_name/notes" => "notes#mine"
-  get "/history/friends" => "changeset#list", :friends => true, :as => "friend_changesets", :defaults => { :format => :html }
-  get "/history/nearby" => "changeset#list", :nearby => true, :as => "nearby_changesets", :defaults => { :format => :html }
+  get "/history/friends" => "changeset#index", :friends => true, :as => "friend_changesets", :defaults => { :format => :html }
+  get "/history/nearby" => "changeset#index", :nearby => true, :as => "nearby_changesets", :defaults => { :format => :html }
 
   get "/browse/way/:id",                :to => redirect(:path => "/way/%{id}")
   get "/browse/way/:id/history",        :to => redirect(:path => "/way/%{id}/history")
@@ -150,7 +150,7 @@ OpenStreetMap::Application.routes.draw do
   get "/fixthemap" => "site#fixthemap"
   get "/help" => "site#help"
   get "/about" => "site#about"
-  get "/history" => "changeset#list"
+  get "/history" => "changeset#index"
   get "/history/feed" => "changeset#feed", :defaults => { :format => :atom }
   get "/history/comments/feed" => "changeset#comments_feed", :as => :changesets_comments_feed, :defaults => { :format => "rss" }
   get "/export" => "site#export"
@@ -208,26 +208,24 @@ OpenStreetMap::Application.routes.draw do
   get "/traces/mine/tag/:tag" => "traces#mine"
   get "/traces/mine/page/:page" => "traces#mine"
   get "/traces/mine" => "traces#mine"
-  post "/trace/create" => "traces#create" # remove after deployment
   get "/trace/create", :to => redirect(:path => "/traces/new")
   get "/trace/:id/data" => "traces#data", :id => /\d+/, :as => "trace_data"
-  post "trace/:id/edit" => "traces#update" # remove after deployment
   get "/trace/:id/edit", :to => redirect(:path => "/traces/%{id}/edit")
   post "/trace/:id/delete" => "traces#delete", :id => /\d+/
 
   # diary pages
   match "/diary/new" => "diary_entry#new", :via => [:get, :post]
-  get "/diary/friends" => "diary_entry#list", :friends => true, :as => "friend_diaries"
-  get "/diary/nearby" => "diary_entry#list", :nearby => true, :as => "nearby_diaries"
+  get "/diary/friends" => "diary_entry#index", :friends => true, :as => "friend_diaries"
+  get "/diary/nearby" => "diary_entry#index", :nearby => true, :as => "nearby_diaries"
   get "/user/:display_name/diary/rss" => "diary_entry#rss", :defaults => { :format => :rss }
   get "/diary/:language/rss" => "diary_entry#rss", :defaults => { :format => :rss }
   get "/diary/rss" => "diary_entry#rss", :defaults => { :format => :rss }
   get "/user/:display_name/diary/comments/:page" => "diary_entry#comments", :page => /[1-9][0-9]*/
   get "/user/:display_name/diary/comments/" => "diary_entry#comments"
-  get "/user/:display_name/diary" => "diary_entry#list"
-  get "/diary/:language" => "diary_entry#list"
-  get "/diary" => "diary_entry#list"
-  get "/user/:display_name/diary/:id" => "diary_entry#view", :id => /\d+/, :as => :diary_entry
+  get "/user/:display_name/diary" => "diary_entry#index"
+  get "/diary/:language" => "diary_entry#index"
+  get "/diary" => "diary_entry#index"
+  get "/user/:display_name/diary/:id" => "diary_entry#show", :id => /\d+/, :as => :diary_entry
   post "/user/:display_name/diary/:id/newcomment" => "diary_entry#comment", :id => /\d+/
   match "/user/:display_name/diary/:id/edit" => "diary_entry#edit", :via => [:get, :post], :id => /\d+/
   post "/user/:display_name/diary/:id/hide" => "diary_entry#hide", :id => /\d+/, :as => :hide_diary_entry
@@ -236,7 +234,7 @@ OpenStreetMap::Application.routes.draw do
   post "/user/:display_name/diary/:id/unsubscribe" => "diary_entry#unsubscribe", :as => :diary_entry_unsubscribe, :id => /\d+/
 
   # user pages
-  get "/user/:display_name" => "user#view", :as => "user"
+  get "/user/:display_name" => "user#show", :as => "user"
   match "/user/:display_name/make_friend" => "user#make_friend", :via => [:get, :post], :as => "make_friend"
   match "/user/:display_name/remove_friend" => "user#remove_friend", :via => [:get, :post], :as => "remove_friend"
   match "/user/:display_name/account" => "user#account", :via => [:get, :post]
@@ -244,8 +242,8 @@ OpenStreetMap::Application.routes.draw do
   get "/user/:display_name/delete" => "user#delete", :as => :delete_user
 
   # user lists
-  match "/users" => "user#list", :via => [:get, :post]
-  match "/users/:status" => "user#list", :via => [:get, :post]
+  match "/users" => "user#index", :via => [:get, :post]
+  match "/users/:status" => "user#index", :via => [:get, :post]
 
   # geocoder
   get "/search" => "geocoder#search"
index ccf8744af04a38547217313016349112627f28aa..7555362c5b95cc03b4b5aaf0953e89f36ec96a49 100644 (file)
@@ -21,6 +21,11 @@ bg:
     natural=heath: Bg:Tag:natural=heath
     railway=crossing: Bg:Tag:railway=crossing
     railway=level_crossing: Bg:Tag:railway=level crossing
+bn:
+  key:
+    highway: Bn:Key:highway
+  tag:
+    highway=residential: Bn:Tag:highway=residential
 ca:
   key:
     amenity: Ca:Key:amenity
@@ -28,8 +33,10 @@ ca:
     operator:type: Ca:Key:operator:type
     phone: Ca:Key:phone
   tag:
+    amenity=post_box: Ca:Tag:amenity=post box
     landuse=farmland: Ca:Tag:landuse=farmland
     leisure=swimming_pool: Ca:Tag:leisure=swimming pool
+    office=notary: Ca:Tag:office=notary
     place=isolated_dwelling: Ca:Tag:place=isolated dwelling
     shop=frozen_food: Ca:Tag:shop=frozen food
 cs:
@@ -45,6 +52,7 @@ cs:
     abandoned:amenity: Cs:Key:abandoned:amenity
     abutters: Cs:Key:abutters
     access: Cs:Key:access
+    access:conditional: Cs:Key:access:conditional
     access:lanes: Cs:Key:access:lanes
     addr: Cs:Key:addr
     addr:city: Cs:Key:addr:city
@@ -964,6 +972,7 @@ cs:
     amenity=townhall: Cs:Tag:amenity=townhall
     amenity=university: Cs:Tag:amenity=university
     amenity=vacuum_cleaner: Cs:Tag:amenity=vacuum cleaner
+    amenity=vehicle_inspection: Cs:Tag:amenity=vehicle inspection
     amenity=vending_machine: Cs:Tag:amenity=vending machine
     amenity=veterinary: Cs:Tag:amenity=veterinary
     amenity=waste_basket: Cs:Tag:amenity=waste basket
@@ -1740,6 +1749,7 @@ cs:
     place=suburb: Cs:Tag:place=suburb
     place=town: Cs:Tag:place=town
     place=village: Cs:Tag:place=village
+    power=catenary_mast: Cs:Tag:power=catenary mast
     power=generator: Cs:Tag:power=generator
     power=heliostat: Cs:Tag:power=heliostat
     power=terminal: Cs:Tag:power=terminal
@@ -1974,7 +1984,6 @@ cs:
     shop=pharmacy: Cs:Tag:shop=pharmacy
     shop=photo: Cs:Tag:shop=photo
     shop=photography: Cs:Tag:shop=photography
-    shop=piercing: Cs:Tag:shop=piercing
     shop=pottery: Cs:Tag:shop=pottery
     shop=printing: Cs:Tag:shop=printing
     shop=pyrotechnics: Cs:Tag:shop=pyrotechnics
@@ -2212,6 +2221,7 @@ da:
     amenity=place_of_worship: Da:Tag:amenity=place of worship
     amenity=veterinary: Da:Tag:amenity=veterinary
     highway=bridleway: Da:Tag:highway=bridleway
+    highway=cycleway: Da:Tag:highway=cycleway
     highway=ford: Da:Tag:highway=ford
     highway=road: Da:Tag:highway=road
     highway=tertiary: Da:Tag:highway=tertiary
@@ -2223,6 +2233,7 @@ da:
     place=village: Da:Tag:place=village
     route=ferry: Da:Tag:route=ferry
     service=driveway: Da:Tag:service=driveway
+    shop=charity: Da:Tag:shop=charity
 de:
   key:
     AlpinRes_ID: DE:Key:AlpinRes ID
@@ -2230,6 +2241,7 @@ de:
     Annotations: DE:Key:Annotations
     FIXME: DE:Key:FIXME
     TODO: DE:Key:TODO
+    VRS:ref: DE:Key:VRS:ref
     WDPA_ID:ref: DE:Key:WDPA ID:ref
     'abandoned:': 'DE:Key:abandoned:'
     abandoned:*: DE:Key:abandoned:*
@@ -2249,6 +2261,7 @@ de:
     advertising: DE:Key:advertising
     aerialway: DE:Key:aerialway
     aerialway:drag_lift: DE:Key:aerialway:drag lift
+    aerodrome:type: DE:Key:aerodrome:type
     aeroway: DE:Key:aeroway
     after_school: DE:Key:after school
     agricultural: DE:Key:agricultural
@@ -2262,8 +2275,10 @@ de:
     automated: DE:Key:automated
     backcountry: DE:Key:backcountry
     backrest: DE:Key:backrest
+    backward: DE:Key:backward
     barrier: DE:Key:barrier
     basin: DE:Key:basin
+    bath:type: DE:Key:bath:type
     bdouble: DE:Key:bdouble
     beacon:type: DE:Key:beacon:type
     beds: DE:Key:beds
@@ -2308,6 +2323,7 @@ de:
     carriage: DE:Key:carriage
     castle_type: DE:Key:castle type
     cemetery: DE:Key:cemetery
+    check_date: DE:Key:check date
     circuits: DE:Key:circuits
     circumference: DE:Key:circumference
     city_limit: DE:Key:city limit
@@ -2376,6 +2392,8 @@ de:
     diaper: DE:Key:diaper
     diet: DE:Key:diet
     diet:*: DE:Key:diet:*
+    diet:vegan: DE:Key:diet:vegan
+    diet:vegetarian: DE:Key:diet:vegetarian
     diplomatic: DE:Key:diplomatic
     direction: DE:Key:direction
     display: DE:Key:display
@@ -2402,17 +2420,21 @@ de:
     ferry:cable: DE:Key:ferry:cable
     fetish: DE:Key:fetish
     fire_hydrant: DE:Key:fire hydrant
-    fire_hydrant:type: DE:Key:fire hydrant:type
     fireplace: DE:Key:fireplace
     fixme: DE:Key:fixme
     floating: DE:Key:floating
     foot: DE:Key:foot
     footway: DE:Key:footway
     ford: DE:Key:ford
+    format: DE:Key:format
     fortification_type: DE:Key:fortification type
+    forward: DE:Key:forward
     frequency: DE:Key:frequency
     from: DE:Key:from
     fuel: DE:Key:fuel
+    fuel:LH2: DE:Key:fuel:LH2
+    garden:style: DE:Key:garden:style
+    garden:type: DE:Key:garden:type
     gauge: DE:Key:gauge
     generator:method: DE:Key:generator:method
     generator:output: DE:Key:generator:output
@@ -2428,6 +2450,7 @@ de:
     geological: DE:Key:geological
     golf:course: DE:Key:golf:course
     government: DE:Key:government
+    group_only: DE:Key:group only
     guest_house: DE:Key:guest house
     hazard: DE:Key:hazard
     hazmat: DE:Key:hazmat
@@ -2437,6 +2460,7 @@ de:
     hgv: DE:Key:hgv
     highspeed: DE:Key:highspeed
     highway: DE:Key:highway
+    hiking: DE:Key:hiking
     historic: DE:Key:historic
     historic:civilization: DE:Key:historic:civilization
     historic:period: DE:Key:historic:period
@@ -2460,6 +2484,7 @@ de:
     kids_area: DE:Key:kids area
     kms: DE:Key:kms
     kneipp_water_cure: DE:Key:kneipp water cure
+    landfill:waste: DE:Key:landfill:waste
     landuse: DE:Key:landuse
     lanes: DE:Key:lanes
     lanes:bus: DE:Key:lanes:bus
@@ -2482,24 +2507,29 @@ de:
     lock: DE:Key:lock
     lock_name: DE:Key:lock name
     lock_ref: DE:Key:lock ref
+    lockable: DE:Key:lockable
     lottery: DE:Key:lottery
     love_locks: DE:Key:love locks
     man_made: DE:Key:man made
     manhole: DE:Key:manhole
     manufacturer: DE:Key:manufacturer
     manufacturer:type: DE:Key:manufacturer:type
+    mapillary: DE:Key:mapillary
+    massage: DE:Key:massage
     material: DE:Key:material
     max_age: DE:Key:max age
     maxaxleload: DE:Key:maxaxleload
     maxheight: DE:Key:maxheight
     maxlength: DE:Key:maxlength
     maxspeed: DE:Key:maxspeed
+    maxspeed:type: DE:Key:maxspeed:type
     maxstay: DE:Key:maxstay
     maxweight: DE:Key:maxweight
     maxwidth: DE:Key:maxwidth
     megalith_type: DE:Key:megalith type
     memorial: DE:Key:memorial
     memorial:type: DE:Key:memorial:type
+    milestone_type: DE:Key:milestone type
     military: DE:Key:military
     min_age: DE:Key:min age
     mineshaft_type: DE:Key:mineshaft type
@@ -2526,6 +2556,7 @@ de:
     motorcycle: DE:Key:motorcycle
     motorcycle:clothes: DE:Key:motorcycle:clothes
     motorcycle:conditional: DE:Key:motorcycle:conditional
+    motorcycle:parking: DE:Key:motorcycle:parking
     motorcycle:parts: DE:Key:motorcycle:parts
     motorcycle:rental: DE:Key:motorcycle:rental
     motorcycle:repair: DE:Key:motorcycle:repair
@@ -2549,16 +2580,21 @@ de:
     note: DE:Key:note
     nudism: DE:Key:nudism
     nursery: DE:Key:nursery
+    observatory:type: DE:Key:observatory:type
     office: DE:Key:office
+    official_name: DE:Key:official name
     offshore: DE:Key:offshore
+    old_name: DE:Key:old name
     oneway: DE:Key:oneway
     oneway:bicycle: DE:Key:oneway:bicycle
     oneway:moped: DE:Key:oneway:moped
     onkz: DE:Key:onkz
     openfire: DE:Key:openfire
     opening_hours: DE:Key:opening hours
+    opening_hours:kitchen: DE:Key:opening hours:kitchen
     operator: DE:Key:operator
     operator:MNC: DE:Key:operator:MNC
+    operator:type: DE:Key:operator:type
     organic: DE:Key:organic
     osak: DE:Key:osak
     osmc:status: DE:Key:osmc:status
@@ -2579,6 +2615,9 @@ de:
     placement: DE:Key:placement
     plant: DE:Key:plant
     plant:output: DE:Key:plant:output
+    plant:output:electricity: DE:Key:plant:output:electricity
+    plant:output:hot_water: DE:Key:plant:output:hot water
+    plant:source: DE:Key:plant:source
     playground: DE:Key:playground
     'playground:': 'DE:Key:playground:'
     population: DE:Key:population
@@ -2625,6 +2664,7 @@ de:
     seamark: DE:Key:seamark
     seamark:fixme: DE:Key:seamark:fixme
     seamark:type: DE:Key:seamark:type
+    seasonal: DE:Key:seasonal
     seats: DE:Key:seats
     second_hand: DE:Key:second hand
     segregated: DE:Key:segregated
@@ -2636,6 +2676,7 @@ de:
     shelter_type: DE:Key:shelter type
     shooting: DE:Key:shooting
     shop: DE:Key:shop
+    short_protection_title: DE:Key:short protection title
     shower: DE:Key:shower
     sidewalk: DE:Key:sidewalk
     site_type: DE:Key:site type
@@ -2665,11 +2706,14 @@ de:
     surface: DE:Key:surface
     surveillance: DE:Key:surveillance
     surveillance:zone: DE:Key:surveillance:zone
+    survey:date: DE:Key:survey:date
+    swimming_pool: DE:Key:swimming pool
     symbol: DE:Key:symbol
     tactile_paving: DE:Key:tactile paving
     tactile_writing: DE:Key:tactile writing
     takeaway: DE:Key:takeaway
     target: DE:Key:target
+    telescope:type: DE:Key:telescope:type
     tidal: DE:Key:tidal
     to: DE:Key:to
     todo: DE:Key:todo
@@ -2678,6 +2722,7 @@ de:
     toll: DE:Key:toll
     tomb: DE:Key:tomb
     tourism: DE:Key:tourism
+    tower:construction: DE:Key:tower:construction
     tower:type: DE:Key:tower:type
     tracks: DE:Key:tracks
     tracktype: DE:Key:tracktype
@@ -2702,6 +2747,7 @@ de:
     voltage: DE:Key:voltage
     waste: DE:Key:waste
     water: DE:Key:water
+    water_characteristic: DE:Key:water characteristic
     waterway: DE:Key:waterway
     website: DE:Key:website
     wetland: DE:Key:wetland
@@ -2725,6 +2771,7 @@ de:
     abandoned:amenity=prison_camp: DE:Tag:abandoned:amenity=prison camp
     abandoned=yes: DE:Tag:abandoned=yes
     access=designated: DE:Tag:access=designated
+    access=destination: DE:Tag:access=destination
     access=private: DE:Tag:access=private
     admin_level=2: DE:Tag:admin level=2
     advertising=column: DE:Tag:advertising=column
@@ -2736,6 +2783,9 @@ de:
     aerialway=magic_carpet: DE:Tag:aerialway=magic carpet
     aerialway=pylon: DE:Tag:aerialway=pylon
     aerialway=station: DE:Tag:aerialway=station
+    aerodrome:type=gliding: DE:Tag:aerodrome:type=gliding
+    aerodrome:type=international: DE:Tag:aerodrome:type=international
+    aerodrome:type=regional: DE:Tag:aerodrome:type=regional
     aeroway=aerodrome: DE:Tag:aeroway=aerodrome
     aeroway=apron: DE:Tag:aeroway=apron
     aeroway=gate: DE:Tag:aeroway=gate
@@ -2743,6 +2793,7 @@ de:
     aeroway=helipad: DE:Tag:aeroway=helipad
     aeroway=heliport: DE:Tag:aeroway=heliport
     aeroway=navigationaid: DE:Tag:aeroway=navigationaid
+    aeroway=parking_position: DE:Tag:aeroway=parking position
     aeroway=runway: DE:Tag:aeroway=runway
     aeroway=spaceport: DE:Tag:aeroway=spaceport
     aeroway=taxiway: DE:Tag:aeroway=taxiway
@@ -2847,6 +2898,7 @@ de:
     amenity=school: DE:Tag:amenity=school
     amenity=shelter: DE:Tag:amenity=shelter
     amenity=shower: DE:Tag:amenity=shower
+    amenity=ski_school: DE:Tag:amenity=ski school
     amenity=smoking_area: DE:Tag:amenity=smoking area
     amenity=social_facility: DE:Tag:amenity=social facility
     amenity=stables: DE:Tag:amenity=stables
@@ -2874,28 +2926,35 @@ de:
     atm=yes: DE:Tag:atm=yes
     attraction=animal: DE:Tag:attraction=animal
     attraction=train: DE:Tag:attraction=train
+    attraction=water_slide: DE:Tag:attraction=water slide
     barrier=block: DE:Tag:barrier=block
     barrier=bollard: DE:Tag:barrier=bollard
     barrier=cattle_grid: DE:Tag:barrier=cattle grid
     barrier=city_wall: DE:Tag:barrier=city wall
     barrier=cycle_barrier: DE:Tag:barrier=cycle barrier
     barrier=ditch: DE:Tag:barrier=ditch
+    barrier=entrance: DE:Tag:barrier=entrance
     barrier=fence: DE:Tag:barrier=fence
     barrier=gate: DE:Tag:barrier=gate
     barrier=hedge: DE:Tag:barrier=hedge
     barrier=hedge_bank: DE:Tag:barrier=hedge bank
+    barrier=height_restrictor: DE:Tag:barrier=height restrictor
     barrier=kissing_gate: DE:Tag:barrier=kissing gate
     barrier=lift_gate: DE:Tag:barrier=lift gate
     barrier=retaining_wall: DE:Tag:barrier=retaining wall
     barrier=sally_port: DE:Tag:barrier=sally port
     barrier=toll_booth: DE:Tag:barrier=toll booth
     barrier=wall: DE:Tag:barrier=wall
+    bath:type=hammam: DE:Tag:bath:type=hammam
+    bath:type=thermal: DE:Tag:bath:type=thermal
+    bay=fjord: DE:Tag:bay=fjord
     bicycle=designated: DE:Tag:bicycle=designated
     bicycle=use_sidepath: DE:Tag:bicycle=use sidepath
     biosphärenwirt=yes: DE:Tag:biosphärenwirt=yes
     boundary=national_park: DE:Tag:boundary=national park
     boundary=postal_code: DE:Tag:boundary=postal code
     boundary=protected_area: DE:Tag:boundary=protected area
+    boundary=religious_administration: DE:Tag:boundary=religious administration
     boundary=water_protection_area: DE:Tag:boundary=water protection area
     bridge:movable=bascule: DE:Tag:bridge:movable=bascule
     bridge:movable=drawbridge: DE:Tag:bridge:movable=drawbridge
@@ -2919,12 +2978,14 @@ de:
     bridge=viaduct: DE:Tag:bridge=viaduct
     building=apartments: DE:Tag:building=apartments
     building=barn: DE:Tag:building=barn
+    building=boathouse: DE:Tag:building=boathouse
     building=bungalow: DE:Tag:building=bungalow
     building=cathedral: DE:Tag:building=cathedral
     building=chapel: DE:Tag:building=chapel
     building=church: DE:Tag:building=church
     building=civic: DE:Tag:building=civic
     building=commercial: DE:Tag:building=commercial
+    building=container: DE:Tag:building=container
     building=detached: DE:Tag:building=detached
     building=dormitory: DE:Tag:building=dormitory
     building=entrance: DE:Tag:building=entrance
@@ -2953,11 +3014,13 @@ de:
     building=shed: DE:Tag:building=shed
     building=shrine: DE:Tag:building=shrine
     building=slurry_tank: DE:Tag:building=slurry tank
+    building=sports_hall: DE:Tag:building=sports hall
     building=stable: DE:Tag:building=stable
     building=static_caravan: DE:Tag:building=static caravan
     building=sty: DE:Tag:building=sty
     building=synagogue: DE:Tag:building=synagogue
     building=tech_cab: DE:Tag:building=tech cab
+    building=temple: DE:Tag:building=temple
     building=terrace: DE:Tag:building=terrace
     building=train_station: DE:Tag:building=train station
     building=university: DE:Tag:building=university
@@ -2977,17 +3040,21 @@ de:
     club=fan: DE:Tag:club=fan
     club=scout: DE:Tag:club=scout
     club=sport: DE:Tag:club=sport
+    communication=line: DE:Tag:communication=line
     craft=agricultural_engines: DE:Tag:craft=agricultural engines
     craft=basket_maker: DE:Tag:craft=basket maker
     craft=beekeeper: DE:Tag:craft=beekeeper
     craft=blacksmith: DE:Tag:craft=blacksmith
     craft=boatbuilder: DE:Tag:craft=boatbuilder
     craft=bookbinder: DE:Tag:craft=bookbinder
+    craft=builder: DE:Tag:craft=builder
     craft=car_repair: DE:Tag:craft=car repair
     craft=carpenter: DE:Tag:craft=carpenter
     craft=carpet_layer: DE:Tag:craft=carpet layer
+    craft=caterer: DE:Tag:craft=caterer
     craft=chimney_sweeper: DE:Tag:craft=chimney sweeper
     craft=cooper: DE:Tag:craft=cooper
+    craft=dental_technician: DE:Tag:craft=dental technician
     craft=distillery: DE:Tag:craft=distillery
     craft=dressmaker: DE:Tag:craft=dressmaker
     craft=electrican: DE:Tag:craft=electrican
@@ -3014,6 +3081,8 @@ de:
     craft=scaffolder: DE:Tag:craft=scaffolder
     craft=shoemaker: DE:Tag:craft=shoemaker
     craft=stonemason: DE:Tag:craft=stonemason
+    craft=sun_protection: DE:Tag:craft=sun protection
+    craft=tailor: DE:Tag:craft=tailor
     craft=tiler: DE:Tag:craft=tiler
     craft=tinsmith: DE:Tag:craft=tinsmith
     craft=toolmaker: DE:Tag:craft=toolmaker
@@ -3053,8 +3122,13 @@ de:
     emergency=emergency_ward_entrance: DE:Tag:emergency=emergency ward entrance
     emergency=fire_hydrant: DE:Tag:emergency=fire hydrant
     emergency=fire_water_pond: DE:Tag:emergency=fire water pond
+    emergency=first_aid: DE:Tag:emergency=first aid
+    emergency=first_aid_kit: DE:Tag:emergency=first aid kit
     emergency=life_ring: DE:Tag:emergency=life ring
+    emergency=lifeguard_base: DE:Tag:emergency=lifeguard base
+    emergency=lifeguard_place: DE:Tag:emergency=lifeguard place
     emergency=lifeguard_tower: DE:Tag:emergency=lifeguard tower
+    emergency=mountain_rescue: DE:Tag:emergency=mountain rescue
     emergency=phone: DE:Tag:emergency=phone
     emergency=siren: DE:Tag:emergency=siren
     emergency=suction_point: DE:Tag:emergency=suction point
@@ -3062,9 +3136,11 @@ de:
     emergency_service=technical: DE:Tag:emergency service=technical
     entrance=main: DE:Tag:entrance=main
     entrance=yes: DE:Tag:entrance=yes
-    food=gourmet: DE:Tag:food=gourmet
     foot=designated: DE:Tag:foot=designated
+    footway=crossing: DE:Tag:footway=crossing
     footway=sidewalk: DE:Tag:footway=sidewalk
+    ford=stepping_stones: DE:Tag:ford=stepping stones
+    ford=yes: DE:Tag:ford=yes
     fortification_type=hill_fort: DE:Tag:fortification type=hill fort
     fortification_type=limes: DE:Tag:fortification type=limes
     fortification_type=ringfort: DE:Tag:fortification type=ringfort
@@ -3125,17 +3201,24 @@ de:
     golf=rough: DE:Tag:golf=rough
     golf=tee: DE:Tag:golf=tee
     golf=water_hazard: DE:Tag:golf=water hazard
+    government=cadaster: DE:Tag:government=cadaster
+    government=customs: DE:Tag:government=customs
+    government=healthcare: DE:Tag:government=healthcare
     government=ministry: DE:Tag:government=ministry
     government=prosecutor: DE:Tag:government=prosecutor
     government=register_office: DE:Tag:government=register office
+    government=statistics: DE:Tag:government=statistics
     government=tax: DE:Tag:government=tax
+    government=youth_welfare_department: DE:Tag:government=youth welfare department
     hazmat:water=permissive: DE:Tag:hazmat:water=permissive
     healthcare=blood_donation: DE:Tag:healthcare=blood donation
+    healthcare=laboratory: DE:Tag:healthcare=laboratory
     highway=abandoned: DE:Tag:highway=abandoned
     highway=access: DE:Tag:highway=access
     highway=bridleway: DE:Tag:highway=bridleway
     highway=bus_guideway: DE:Tag:highway=bus guideway
     highway=bus_stop: DE:Tag:highway=bus stop
+    highway=byway: DE:Tag:highway=byway
     highway=corridor: DE:Tag:highway=corridor
     highway=crossing: DE:Tag:highway=crossing
     highway=cycleway: DE:Tag:highway=cycleway
@@ -3149,6 +3232,7 @@ de:
     highway=give_way: DE:Tag:highway=give way
     highway=kerb: DE:Tag:highway=kerb
     highway=living_street: DE:Tag:highway=living street
+    highway=milestone: DE:Tag:highway=milestone
     highway=mini_roundabout: DE:Tag:highway=mini roundabout
     highway=motorway: DE:Tag:highway=motorway
     highway=motorway_junction: DE:Tag:highway=motorway junction
@@ -3217,6 +3301,7 @@ de:
     historic=wayside_shrine: DE:Tag:historic=wayside shrine
     historic=wreck: DE:Tag:historic=wreck
     horse=designated: DE:Tag:horse=designated
+    industrial=bakery: DE:Tag:industrial=bakery
     industrial=scrap_yard: DE:Tag:industrial=scrap yard
     information=audioguide: DE:Tag:information=audioguide
     information=board: DE:Tag:information=board
@@ -3308,6 +3393,7 @@ de:
     leisure=tanning_salon: DE:Tag:leisure=tanning salon
     leisure=track: DE:Tag:leisure=track
     leisure=water_park: DE:Tag:leisure=water park
+    leisure=wildlife_hide: DE:Tag:leisure=wildlife hide
     level_crossing=automatic_barrier: DE:Tag:level crossing=automatic barrier
     level_crossing=traffic_signals: DE:Tag:level crossing=traffic signals
     level_crossing=uncontrolled: DE:Tag:level crossing=uncontrolled
@@ -3397,6 +3483,9 @@ de:
     military=range: DE:Tag:military=range
     military=training_area: DE:Tag:military=training area
     motorcycle:type=scooter: DE:Tag:motorcycle:type=scooter
+    museum=history: DE:Tag:museum=history
+    museum=local: DE:Tag:museum=local
+    museum=railway: DE:Tag:museum=railway
     natural=anthill: DE:Tag:natural=anthill
     natural=arete: DE:Tag:natural=arete
     natural=bare_rock: DE:Tag:natural=bare rock
@@ -3410,6 +3499,7 @@ de:
     natural=geyser: DE:Tag:natural=geyser
     natural=glacier: DE:Tag:natural=glacier
     natural=grassland: DE:Tag:natural=grassland
+    natural=gully: DE:Tag:natural=gully
     natural=heath: DE:Tag:natural=heath
     natural=hot_spring: DE:Tag:natural=hot spring
     natural=moor: DE:Tag:natural=moor
@@ -3450,6 +3540,7 @@ de:
     network=rcn: DE:Tag:network=rcn
     network=rhn: DE:Tag:network=rhn
     network=rwn: DE:Tag:network=rwn
+    observatory:type=astronomical: DE:Tag:observatory:type=astronomical
     office=accountant: DE:Tag:office=accountant
     office=administrative: DE:Tag:office=administrative
     office=advertising_agency: DE:Tag:office=advertising agency
@@ -3460,16 +3551,19 @@ de:
     office=energy_supplier: DE:Tag:office=energy supplier
     office=estate_agent: DE:Tag:office=estate agent
     office=forestry: DE:Tag:office=forestry
+    office=geodesist: DE:Tag:office=geodesist
     office=government: DE:Tag:office=government
     office=guide: DE:Tag:office=guide
     office=insurance: DE:Tag:office=insurance
     office=lawyer: DE:Tag:office=lawyer
     office=moving_company: DE:Tag:office=moving company
     office=newspaper: DE:Tag:office=newspaper
+    office=ngo: DE:Tag:office=ngo
     office=parish: DE:Tag:office=parish
     office=political_party: DE:Tag:office=political party
     office=religion: DE:Tag:office=religion
     office=research: DE:Tag:office=research
+    office=surveyor: DE:Tag:office=surveyor
     office=tax_advisor: DE:Tag:office=tax advisor
     office=therapist: DE:Tag:office=therapist
     office=travel_agent: DE:Tag:office=travel agent
@@ -3482,6 +3576,7 @@ de:
     operator=cambio: DE:Tag:operator=cambio
     operator=stadtmobil: DE:Tag:operator=stadtmobil
     operator=teilAuto: DE:Tag:operator=teilAuto
+    park_ride: DE:Tag:park ride
     parking:lane:hgv=on_street: DE:Tag:parking:lane:hgv=on street
     pipeline=marker: DE:Tag:pipeline=marker
     pipeline=substation: DE:Tag:pipeline=substation
@@ -3537,6 +3632,7 @@ de:
     railway=halt: DE:Tag:railway=halt
     railway=level_crossing: DE:Tag:railway=level crossing
     railway=light_rail: DE:Tag:railway=light rail
+    railway=milestone: DE:Tag:railway=milestone
     railway=miniature: DE:Tag:railway=miniature
     railway=monorail: DE:Tag:railway=monorail
     railway=narrow_gauge: DE:Tag:railway=narrow gauge
@@ -3558,6 +3654,7 @@ de:
     railway=traverser: DE:Tag:railway=traverser
     railway=turntable: DE:Tag:railway=turntable
     railway=wash: DE:Tag:railway=wash
+    railway=water_tower: DE:Tag:railway=water tower
     railway=yard: DE:Tag:railway=yard
     religion=buddhist: DE:Tag:religion=buddhist
     religion=christian: DE:Tag:religion=christian
@@ -3595,6 +3692,7 @@ de:
     service=siding: DE:Tag:service=siding
     service=spur: DE:Tag:service=spur
     service=yard: DE:Tag:service=yard
+    shelter_type=basic_hut: DE:Tag:shelter type=basic hut
     shelter_type=lean_to: DE:Tag:shelter type=lean to
     shop=agrarian: DE:Tag:shop=agrarian
     shop=alcohol: DE:Tag:shop=alcohol
@@ -3614,10 +3712,12 @@ de:
     shop=boutique: DE:Tag:shop=boutique
     shop=butcher: DE:Tag:shop=butcher
     shop=camera: DE:Tag:shop=camera
+    shop=candles: DE:Tag:shop=candles
     shop=car: DE:Tag:shop=car
     shop=car_parts: DE:Tag:shop=car parts
     shop=car_repair: DE:Tag:shop=car repair
     shop=carpet: DE:Tag:shop=carpet
+    shop=ceramics: DE:Tag:shop=ceramics
     shop=charity: DE:Tag:shop=charity
     shop=cheese: DE:Tag:shop=cheese
     shop=chemist: DE:Tag:shop=chemist
@@ -3638,6 +3738,7 @@ de:
     shop=doityourself: DE:Tag:shop=doityourself
     shop=dry_cleaning: DE:Tag:shop=dry cleaning
     shop=electronics: DE:Tag:shop=electronics
+    shop=equestrian: DE:Tag:shop=equestrian
     shop=erotic: DE:Tag:shop=erotic
     shop=fabric: DE:Tag:shop=fabric
     shop=farm: DE:Tag:shop=farm
@@ -3647,6 +3748,7 @@ de:
     shop=flooring: DE:Tag:shop=flooring
     shop=florist: DE:Tag:shop=florist
     shop=frame: DE:Tag:shop=frame
+    shop=frozen_food: DE:Tag:shop=frozen food
     shop=funeral_directors: DE:Tag:shop=funeral directors
     shop=furniture: DE:Tag:shop=furniture
     shop=garden_centre: DE:Tag:shop=garden centre
@@ -3659,6 +3761,7 @@ de:
     shop=hairdresser: DE:Tag:shop=hairdresser
     shop=hairdresser_supply: DE:Tag:shop=hairdresser supply
     shop=hardware: DE:Tag:shop=hardware
+    shop=health_food: DE:Tag:shop=health food
     shop=hearing_aids: DE:Tag:shop=hearing aids
     shop=herbalist: DE:Tag:shop=herbalist
     shop=hifi: DE:Tag:shop=hifi
@@ -3691,9 +3794,12 @@ de:
     shop=perfumery: DE:Tag:shop=perfumery
     shop=pet: DE:Tag:shop=pet
     shop=photo: DE:Tag:shop=photo
+    shop=religion: DE:Tag:shop=religion
+    shop=robot: DE:Tag:shop=robot
     shop=scuba_diving: DE:Tag:shop=scuba diving
     shop=seafood: DE:Tag:shop=seafood
     shop=second_hand: DE:Tag:shop=second hand
+    shop=sewing: DE:Tag:shop=sewing
     shop=shoes: DE:Tag:shop=shoes
     shop=spare_parts: DE:Tag:shop=spare parts
     shop=spices: DE:Tag:shop=spices
@@ -3715,6 +3821,7 @@ de:
     shop=vacant: DE:Tag:shop=vacant
     shop=variety_store: DE:Tag:shop=variety store
     shop=video: DE:Tag:shop=video
+    shop=video_games: DE:Tag:shop=video games
     shop=watches: DE:Tag:shop=watches
     shop=weapons: DE:Tag:shop=weapons
     shop=wholesale: DE:Tag:shop=wholesale
@@ -3745,6 +3852,7 @@ de:
     sport=10pin: DE:Tag:sport=10pin
     sport=9pin: DE:Tag:sport=9pin
     sport=archery: DE:Tag:sport=archery
+    sport=athletics: DE:Tag:sport=athletics
     sport=baseball: DE:Tag:sport=baseball
     sport=basketball: DE:Tag:sport=basketball
     sport=bobsleigh: DE:Tag:sport=bobsleigh
@@ -3783,6 +3891,7 @@ de:
     substation=transmission: DE:Tag:substation=transmission
     summit:cross=yes: DE:Tag:summit:cross=yes
     surface=asphalt: DE:Tag:surface=asphalt
+    telescope:type=radio: DE:Tag:telescope:type=radio
     tourism=alpine_hut: DE:Tag:tourism=alpine hut
     tourism=apartment: DE:Tag:tourism=apartment
     tourism=aquarium: DE:Tag:tourism=aquarium
@@ -3805,6 +3914,12 @@ de:
     tourism=wilderness_hut: DE:Tag:tourism=wilderness hut
     tourism=wine_cellar: DE:Tag:tourism=wine cellar
     tourism=zoo: DE:Tag:tourism=zoo
+    tower:construction=dish: DE:Tag:tower:construction=dish
+    tower:construction=dome: DE:Tag:tower:construction=dome
+    tower:construction=freestanding: DE:Tag:tower:construction=freestanding
+    tower:construction=guyed_lattice: DE:Tag:tower:construction=guyed lattice
+    tower:construction=guyed_tube: DE:Tag:tower:construction=guyed tube
+    tower:construction=lattice: DE:Tag:tower:construction=lattice
     tower:type=bell_tower: DE:Tag:tower:type=bell tower
     tower:type=bridge: DE:Tag:tower:type=bridge
     tower:type=communication: DE:Tag:tower:type=communication
@@ -3822,6 +3937,7 @@ de:
     tower:type=watchtower: DE:Tag:tower:type=watchtower
     traffic_sign=city_limit: DE:Tag:traffic sign=city limit
     tunnel=culvert: DE:Tag:tunnel=culvert
+    vending: DE:Tag:vending
     vending=animal_feed: DE:Tag:vending=animal feed
     vending=bicycle_tube: DE:Tag:vending=bicycle tube
     vending=bottle_return: DE:Tag:vending=bottle return
@@ -3840,15 +3956,22 @@ de:
     vending=parcel_pickup: DE:Tag:vending=parcel pickup
     vending=parcel_pickup;parcel_mail_in: DE:Tag:vending=parcel pickup;parcel mail
       in
+    vending=parking_tickets: DE:Tag:vending=parking tickets
     vending=public_transport_tickets: DE:Tag:vending=public transport tickets
     vending=sex_toys: DE:Tag:vending=sex toys
     vending=stamps: DE:Tag:vending=stamps
     vending=toys: DE:Tag:vending=toys
     vending=water: DE:Tag:vending=water
     vending_machine=fuel: DE:Tag:vending machine=fuel
+    water=canal: DE:Tag:water=canal
+    water=lagoon: DE:Tag:water=lagoon
     water=lake: DE:Tag:water=lake
     water=lock: DE:Tag:water=lock
+    water=oxbow: DE:Tag:water=oxbow
+    water=pond: DE:Tag:water=pond
     water=reservoir: DE:Tag:water=reservoir
+    water=river: DE:Tag:water=river
+    water=wastewater: DE:Tag:water=wastewater
     waterway=boat_lift: DE:Tag:waterway=boat lift
     waterway=boatyard: DE:Tag:waterway=boatyard
     waterway=canal: DE:Tag:waterway=canal
@@ -3890,6 +4013,7 @@ el:
     building:architecture: El:Key:building:architecture
     building:levels: El:Key:building:levels
     height: El:Key:height
+    shop: El:Key:shop
   tag:
     amenity=bar: El:Tag:amenity=bar
     amenity=bbq: El:Tag:amenity=bbq
@@ -3917,12 +4041,14 @@ el:
     amenity=university: El:Tag:amenity=university
 en:
   key:
+    3dmr: Key:3dmr
     3dr:type: Key:3dr:type
     4wd_only: Key:4wd only
     :lanes: Key::lanes
     AND_nosr_r: Key:AND nosr r
     AlpinRes_ID: Key:AlpinRes ID
     CEMT: Key:CEMT
+    CLC:code: Key:CLC:code
     DGPS_correction: Key:DGPS correction
     EHAK:code: Key:EHAK:code
     EH_ref: Key:EH ref
@@ -3930,6 +4056,7 @@ en:
     Fetish: Key:Fetish
     Finance_agent: Key:Finance agent
     HE_ref: Key:HE ref
+    HU:ed_direction: Key:HU:ed direction
     HU:hu-go:length: Key:HU:hu-go:length
     HU:hu-go:milestone: Key:HU:hu-go:milestone
     HU:hu-go:road: Key:HU:hu-go:road
@@ -3979,6 +4106,7 @@ en:
     addr:city:de: Key:addr:city:de
     addr:city:en: Key:addr:city:en
     addr:city:it: Key:addr:city:it
+    addr:city:simc: Key:addr:city:simc
     addr:conscriptionnumber: Key:addr:conscriptionnumber
     addr:country: Key:addr:country
     addr:district: Key:addr:district
@@ -4019,15 +4147,20 @@ en:
     aerialway:drag_lift: Key:aerialway:drag lift
     aerialway:duration: Key:aerialway:duration
     aerodrome: Key:aerodrome
+    aerodrome:type: Key:aerodrome:type
     aeroway: Key:aeroway
     after_school: Key:after school
     agricultural: Key:agricultural
     air_conditioning: Key:air conditioning
+    airconditioned: Key:airconditioned
     alt_name: Key:alt name
     alt_name:ar: Key:alt name:ar
+    alt_name:be: Key:alt name:be
     alt_name:en: Key:alt name:en
     alt_name:ko: Key:alt name:ko
     alt_name:mg: Key:alt name:mg
+    alt_name:pl: Key:alt name:pl
+    alt_name:ru: Key:alt name:ru
     alt_name:th: Key:alt name:th
     alt_name_1: Key:alt name 1
     amenity: Key:amenity
@@ -4036,6 +4169,7 @@ en:
     animal: Key:animal
     animated: Key:animated
     architect: Key:architect
+    architect:wikipedia: Key:architect:wikipedia
     area: Key:area
     area:highway: Key:area:highway
     artist_name: Key:artist name
@@ -4059,12 +4193,14 @@ en:
     barrier:personnel: Key:barrier:personnel
     baseball: Key:baseball
     basin: Key:basin
+    bath:type: Key:bath:type
     bdouble: Key:bdouble
     beacon: Key:beacon
     beacon:colour: Key:beacon:colour
     beacon:function: Key:beacon:function
     beacon:type: Key:beacon:type
     beds: Key:beds
+    bell_tower: Key:bell tower
     bench: Key:bench
     bicycle: Key:bicycle
     bicycle:class:mtb: Key:bicycle:class:mtb
@@ -4082,12 +4218,12 @@ en:
     board_type: Key:board type
     boat: Key:boat
     bollard: Key:bollard
+    booking: Key:booking
     books: Key:books
     border_type: Key:border type
     both: Key:both
     bottom:material: Key:bottom:material
     boundary: Key:boundary
-    boundary_type: Key:boundary type
     branch: Key:branch
     brand: Key:brand
     brand:wikidata: Key:brand:wikidata
@@ -4101,6 +4237,7 @@ en:
     bridge:name: Key:bridge:name
     bridge:official_name: Key:bridge:official name
     bridge:old_name: Key:bridge:old name
+    bridge:ref: Key:bridge:ref
     bridge:short_name: Key:bridge:short name
     bridge:structure: Key:bridge:structure
     bridge:support: Key:bridge:support
@@ -4121,6 +4258,7 @@ en:
     building:obm: Key:building:obm
     building:part: Key:building:part
     building:place: Key:building:place
+    building:roof: Key:building:roof
     building:roof:colour: Key:building:roof:colour
     building:ruian:type: Key:building:ruian:type
     building:type: Key:building:type
@@ -4144,6 +4282,8 @@ en:
     canoe: Key:canoe
     capacity: Key:capacity
     capacity:disabled: Key:capacity:disabled
+    capacity:parent: Key:capacity:parent
+    capacity:women: Key:capacity:women
     capital: Key:capital
     capital_city: Key:capital city
     car_wash: Key:car wash
@@ -4163,7 +4303,6 @@ en:
     center_turn_lane: Key:center turn lane
     centralkey: Key:centralkey
     centre_turn_lane: Key:centre turn lane
-    cep: Key:cep
     change: Key:change
     changesets_count: Key:changesets count
     charge: Key:charge
@@ -4173,6 +4312,7 @@ en:
     circuits: Key:circuits
     circumference: Key:circumference
     city_limit: Key:city limit
+    clacks_overhead: Key:clacks overhead
     class: Key:class
     class:bicycle: Key:class:bicycle
     class:bicycle:commute: Key:class:bicycle:commute
@@ -4182,10 +4322,14 @@ en:
     class:bicycle:roadcycling: Key:class:bicycle:roadcycling
     class:bicycle:touring: Key:class:bicycle:touring
     class:bicycle:trailer: Key:class:bicycle:trailer
+    climbing: Key:climbing
+    climbing:*: Key:climbing:*
+    climbing:rock: Key:climbing:rock
     clli: Key:clli
     clothes: Key:clothes
     club: Key:club
     club-mate: Key:club-mate
+    coach: Key:coach
     coastline:survey_quality: Key:coastline:survey quality
     cocktails: Key:cocktails
     coffee: Key:coffee
@@ -4197,6 +4341,7 @@ en:
     communication:amateur_radio: Key:communication:amateur radio
     communication:amateur_radio:repeater: Key:communication:amateur radio:repeater
     communication:bos: Key:communication:bos
+    communication:gsm-r: Key:communication:gsm-r
     communication:microwave: Key:communication:microwave
     communication:mobile_phone: Key:communication:mobile phone
     communication:radio: Key:communication:radio
@@ -4205,15 +4350,18 @@ en:
     community_centre:for: Key:community centre:for
     condition: Key:condition
     conditional: Key:conditional
+    condo: Key:condo
     construction: Key:construction
     construction:website: Key:construction:website
     construction_end_expected: Key:construction end expected
+    construction_start_expected: Key:construction start expected
     contact: Key:contact
     contact:diaspora: Key:contact:diaspora
     contact:email: Key:contact:email
     contact:facebook: Key:contact:facebook
     contact:fax: Key:contact:fax
     contact:flickr: Key:contact:flickr
+    contact:foursquare: Key:contact:foursquare
     contact:gnusocial: Key:contact:gnusocial
     contact:google_plus: Key:contact:google plus
     contact:instagram: Key:contact:instagram
@@ -4221,12 +4369,16 @@ en:
     contact:mastodon: Key:contact:mastodon
     contact:phone: Key:contact:phone
     contact:skype: Key:contact:skype
+    contact:telegram: Key:contact:telegram
     contact:twitter: Key:contact:twitter
     contact:vhf: Key:contact:vhf
+    contact:viber: Key:contact:viber
     contact:vk: Key:contact:vk
     contact:webcam: Key:contact:webcam
     contact:website: Key:contact:website
+    contact:whatsapp: Key:contact:whatsapp
     contact:xing: Key:contact:xing
+    contact:xmpp: Key:contact:xmpp
     contact:youtube: Key:contact:youtube
     content: Key:content
     conveying: Key:conveying
@@ -4250,6 +4402,7 @@ en:
     currency:EUR: Key:currency:EUR
     currency:GBP: Key:currency:GBP
     currency:PLN: Key:currency:PLN
+    currency:RUB: Key:currency:RUB
     currency:USD: Key:currency:USD
     currency:XXX: Key:currency:XXX
     currency:others: Key:currency:others
@@ -4257,10 +4410,12 @@ en:
     cyclability: Key:cyclability
     cycle: Key:cycle
     cycle_network: Key:cycle network
+    cyclestreet: Key:cyclestreet
     cyclestreets_id: Key:cyclestreets id
     cycleway: Key:cycleway
     cycleway:both: Key:cycleway:both
     cycleway:buffer: Key:cycleway:buffer
+    cycleway:lane: Key:cycleway:lane
     cycleway:left: Key:cycleway:left
     cycleway:left=backward: Key:cycleway:left=backward
     cycleway:right: Key:cycleway:right
@@ -4274,12 +4429,17 @@ en:
     de:regionalschluessel: Key:de:regionalschluessel
     de:strassenschluessel: Key:de:strassenschluessel
     deanery: Key:deanery
+    default_language: Key:default language
     dehoga: Key:dehoga
     delivery: Key:delivery
+    delivery_point: Key:delivery point
+    delivery_point:access: Key:delivery point:access
+    delivery_point:type: Key:delivery point:type
     demolished: Key:demolished
     'demolished:': 'Key:demolished:'
     denomination: Key:denomination
     denotation: Key:denotation
+    departures_board: Key:departures board
     depth: Key:depth
     depth:clearance: Key:depth:clearance
     depth:dangerous: Key:depth:dangerous
@@ -4293,6 +4453,7 @@ en:
     description: Key:description
     description:restrictions: Key:description:restrictions
     descriptions:restrictions: Key:descriptions:restrictions
+    design: Key:design
     design:ref: Key:design:ref
     designation: Key:designation
     destination: Key:destination
@@ -4302,14 +4463,18 @@ en:
     destination:lanes:backward: Key:destination:lanes:backward
     destination:lanes:forward: Key:destination:lanes:forward
     detour: Key:detour
+    devices: Key:devices
     dhm_id: Key:dhm id
     diameter: Key:diameter
     diaper: Key:diaper
     dibavod:id: Key:dibavod:id
     diet: Key:diet
+    'diet:': 'Key:diet:'
     diet:*: Key:diet:*
     diet:dairy_free: Key:diet:dairy free
     diet:gluten_free: Key:diet:gluten free
+    diet:halal: Key:diet:halal
+    diet:kosher: Key:diet:kosher
     diet:lactose_free: Key:diet:lactose free
     diet:vegan: Key:diet:vegan
     diet:vegetarian: Key:diet:vegetarian
@@ -4324,6 +4489,7 @@ en:
     dispensing: Key:dispensing
     display: Key:display
     distance: Key:distance
+    distillery: Key:distillery
     disused: Key:disused
     'disused:': 'Key:disused:'
     disused:amenity: Key:disused:amenity
@@ -4353,6 +4519,7 @@ en:
     drive_through: Key:drive through
     drive_thru: Key:drive thru
     driving_side: Key:driving side
+    dryer: Key:dryer
     duration: Key:duration
     earthquake: Key:earthquake
     earthquake:damage: Key:earthquake:damage
@@ -4360,6 +4527,7 @@ en:
     ele: Key:ele
     ele:NHN: Key:ele:NHN
     ele:local: Key:ele:local
+    electricity: Key:electricity
     electrified: Key:electrified
     email: Key:email
     embankment: Key:embankment
@@ -4402,7 +4570,6 @@ en:
     finance_agent: Key:finance agent
     fire_boundary: Key:fire boundary
     fire_hydrant: Key:fire hydrant
-    fire_hydrant:type: Key:fire hydrant:type
     fire_object:type: Key:fire object:type
     fire_operator: Key:fire operator
     fire_rank: Key:fire rank
@@ -4414,13 +4581,17 @@ en:
     flood_mark: Key:flood mark
     flood_prone: Key:flood prone
     floor:material: Key:floor:material
+    flow_rate: Key:flow rate
     foot: Key:foot
     footway: Key:footway
     ford: Key:ford
     forestry: Key:forestry
     format: Key:format
+    format:top: Key:format:top
     fortification_type: Key:fortification type
     forward: Key:forward
+    fountain: Key:fountain
+    free_refill: Key:free refill
     frequency: Key:frequency
     fridge: Key:fridge
     from: Key:from
@@ -4431,6 +4602,7 @@ en:
     fuel:E10: Key:fuel:E10
     fuel:GTL_diesel: Key:fuel:GTL diesel
     fuel:HGV_diesel: Key:fuel:HGV diesel
+    fuel:LH2: Key:fuel:LH2
     fuel:adblue: Key:fuel:adblue
     fuel:alcohol: Key:fuel:alcohol
     fuel:biodiesel: Key:fuel:biodiesel
@@ -4463,6 +4635,7 @@ en:
     garden:style: Key:garden:style
     garden:type: Key:garden:type
     gauge: Key:gauge
+    gender_segregated: Key:gender segregated
     generator:method: Key:generator:method
     generator:output: Key:generator:output
     generator:output:biogas: Key:generator:output:biogas
@@ -4481,6 +4654,7 @@ en:
     generator:type: Key:generator:type
     genus: Key:genus
     genus:de: Key:genus:de
+    genus:ru: Key:genus:ru
     geocodigo: Key:geocodigo
     geological: Key:geological
     geothermal: Key:geothermal
@@ -4505,7 +4679,11 @@ en:
     gun_emplacement_type: Key:gun emplacement type
     gun_turret: Key:gun turret
     gvr:code: Key:gvr:code
+    handicap: Key:handicap
     handrail: Key:handrail
+    handrail:center: Key:handrail:center
+    handrail:left: Key:handrail:left
+    handrail:right: Key:handrail:right
     happy_hours: Key:happy hours
     harbour: Key:harbour
     harbour:category: Key:harbour:category
@@ -4521,9 +4699,12 @@ en:
     healthcare: Key:healthcare
     healthcare:speciality: Key:healthcare:speciality
     height: Key:height
+    height:hub: Key:height:hub
     heritage: Key:heritage
     hgv: Key:hgv
+    hgv_articulated: Key:hgv articulated
     high_water_mark: Key:high water mark
+    highchair: Key:highchair
     highspeed: Key:highspeed
     highway: Key:highway
     highway:category: Key:highway:category
@@ -4562,6 +4743,7 @@ en:
     indoormark: Key:indoormark
     industrial: Key:industrial
     industry:isic_code: Key:industry:isic code
+    infant_bed: Key:infant bed
     informal: Key:informal
     information: Key:information
     inline_skates: Key:inline skates
@@ -4590,7 +4772,9 @@ en:
     is_in:region: Key:is in:region
     is_in:sea: Key:is in:sea
     is_in:state: Key:is in:state
+    is_in:state_code: Key:is in:state code
     is_in:ward: Key:is in:ward
+    isced:level: Key:isced:level
     it:fvg:ctrn:code: Key:it:fvg:ctrn:code
     jel: Key:jel
     jetski:sales: Key:jetski:sales
@@ -4623,13 +4807,12 @@ en:
     label: Key:label
     lacounty:ain: Key:lacounty:ain
     lacounty:bld_id: Key:lacounty:bld id
-    lactose_free: Key:lactose free
     ladder: Key:ladder
     lamp_mount: Key:lamp mount
     lamp_type: Key:lamp type
+    landfill:waste: Key:landfill:waste
     landmark: Key:landmark
     landuse: Key:landuse
-    lane_hint: Key:lane hint
     lanes: Key:lanes
     lanes:backward: Key:lanes:backward
     lanes:both_ways: Key:lanes:both ways
@@ -4638,6 +4821,7 @@ en:
     lanes:psv: Key:lanes:psv
     lanes:psv:backward: Key:lanes:psv:backward
     lanes:psv:forward: Key:lanes:psv:forward
+    language:LL: Key:language:LL
     lawyer: Key:lawyer
     layer: Key:layer
     lcn_ref: Key:lcn ref
@@ -4671,6 +4855,7 @@ en:
     long_name:ar: Key:long name:ar
     lottery: Key:lottery
     love_locks: Key:love locks
+    luminous: Key:luminous
     lunch: Key:lunch
     lunch:specials: Key:lunch:specials
     maintained: Key:maintained
@@ -4695,7 +4880,10 @@ en:
     maxlength: Key:maxlength
     maxspeed: Key:maxspeed
     maxspeed:advisory: Key:maxspeed:advisory
+    maxspeed:backward: Key:maxspeed:backward
     maxspeed:conditional: Key:maxspeed:conditional
+    maxspeed:forward: Key:maxspeed:forward
+    maxspeed:hgv: Key:maxspeed:hgv
     maxspeed:practical: Key:maxspeed:practical
     maxspeed:source: Key:maxspeed:source
     maxspeed:type: Key:maxspeed:type
@@ -4703,14 +4891,18 @@ en:
     maxweight: Key:maxweight
     maxwidth: Key:maxwidth
     maxwidth:physical: Key:maxwidth:physical
+    mcrb:criteria: Key:mcrb:criteria
     mdb_id: Key:mdb id
     measurement: Key:measurement
     medical_supply: Key:medical supply
     megalith_type: Key:megalith type
+    membership: Key:membership
     memorial: Key:memorial
     memorial:type: Key:memorial:type
     message: Key:message
+    mhs:inscription_date: Key:mhs:inscription date
     microbrewery: Key:microbrewery
+    milestone_type: Key:milestone type
     military: Key:military
     min_age: Key:min age
     min_height: Key:min height
@@ -4745,10 +4937,13 @@ en:
     motorcycle: Key:motorcycle
     motorcycle:clothes: Key:motorcycle:clothes
     motorcycle:conditional: Key:motorcycle:conditional
+    motorcycle:lanes: Key:motorcycle:lanes
+    motorcycle:parking: Key:motorcycle:parking
     motorcycle:parts: Key:motorcycle:parts
     motorcycle:rental: Key:motorcycle:rental
     motorcycle:repair: Key:motorcycle:repair
     motorcycle:sales: Key:motorcycle:sales
+    motorcycle:scale: Key:motorcycle:scale
     motorcycle:type: Key:motorcycle:type
     motorcycle:tyres: Key:motorcycle:tyres
     motorhome: Key:motorhome
@@ -4770,20 +4965,24 @@ en:
     name:be: Key:name:be
     name:be-tarask: Key:name:be-tarask
     name:ber: Key:name:ber
+    name:bn: Key:name:bn
     name:botanical: Key:name:botanical
     name:br: Key:name:br
     name:ca: Key:name:ca
     name:cs: Key:name:cs
     name:cy: Key:name:cy
+    name:da: Key:name:da
     name:de: Key:name:de
     name:dv: Key:name:dv
     name:el: Key:name:el
     name:en: Key:name:en
     name:eo: Key:name:eo
     name:es: Key:name:es
+    name:et: Key:name:et
     name:etymology: Key:name:etymology
     name:etymology:wikipedia: Key:name:etymology:wikipedia
     name:eu: Key:name:eu
+    name:fa: Key:name:fa
     name:fi: Key:name:fi
     name:fr: Key:name:fr
     name:fy: Key:name:fy
@@ -4791,22 +4990,28 @@ en:
     name:gd: Key:name:gd
     name:he: Key:name:he
     name:hi: Key:name:hi
+    name:hr: Key:name:hr
     name:hu: Key:name:hu
+    name:hy: Key:name:hy
     name:io: Key:name:io
     name:it: Key:name:it
     name:ja: Key:name:ja
     name:ja-Hira: Key:name:ja-Hira
     name:jbo: Key:name:jbo
+    name:ka: Key:name:ka
     name:kab: Key:name:kab
     name:kn: Key:name:kn
     name:kn:iso15919: Key:name:kn:iso15919
     name:ko: Key:name:ko
+    name:ko-Latn: Key:name:ko-Latn
     name:ko_rm: Key:name:ko rm
     name:ku: Key:name:ku
     name:left: Key:name:left
     name:left:ar: Key:name:left:ar
     name:left:fr: Key:name:left:fr
     name:lg: Key:name:lg
+    name:lt: Key:name:lt
+    name:lv: Key:name:lv
     name:mg: Key:name:mg
     name:mk: Key:name:mk
     name:ml: Key:name:ml
@@ -4818,15 +5023,19 @@ en:
     name:nov: Key:name:nov
     name:pl: Key:name:pl
     name:prefix: Key:name:prefix
+    name:prefix:be: Key:name:prefix:be
     name:pronunciation: Key:name:pronunciation
     name:pt: Key:name:pt
     name:right: Key:name:right
     name:right:ar: Key:name:right:ar
+    name:ro: Key:name:ro
     name:ru: Key:name:ru
     name:ru:word_stress: Key:name:ru:word stress
     name:sc: Key:name:sc
     name:sk: Key:name:sk
     name:sl: Key:name:sl
+    name:sr: Key:name:sr
+    name:sr-Latn: Key:name:sr-Latn
     name:suffix: Key:name:suffix
     name:sv: Key:name:sv
     name:ta: Key:name:ta
@@ -4836,8 +5045,12 @@ en:
     name:tr: Key:name:tr
     name:tzl: Key:name:tzl
     name:uk: Key:name:uk
+    name:ur: Key:name:ur
     name:vo: Key:name:vo
+    name:wikipedia: Key:name:wikipedia
+    name:yue: Key:name:yue
     name:zh: Key:name:zh
+    name:zh-sg: Key:name:zh-sg
     name_1: Key:name 1
     narrow: Key:narrow
     nat_name: Key:nat name
@@ -4860,6 +5073,7 @@ en:
     ncn_milepost: Key:ncn milepost
     ncn_ref: Key:ncn ref
     network: Key:network
+    network:wikidata: Key:network:wikidata
     no-barnehage:nsrid: Key:no-barnehage:nsrid
     noaddress: Key:noaddress
     noexit: Key:noexit
@@ -4879,19 +5093,26 @@ en:
     nursery: Key:nursery
     nvdb:date: Key:nvdb:date
     nvdb:id: Key:nvdb:id
+    observatory:type: Key:observatory:type
     obstacle: Key:obstacle
     occurrence: Key:occurrence
     office: Key:office
     official_name: Key:official name
     official_name:ar: Key:official name:ar
+    official_name:be: Key:official name:be
     official_ref: Key:official ref
     offshore: Key:offshore
     ois:fixme: Key:ois:fixme
     old_name: Key:old name
     old_name:ar: Key:old name:ar
+    old_name:be: Key:old name:be
     old_name:etymology:wikidata: Key:old name:etymology:wikidata
+    old_name:pl: Key:old name:pl
+    old_name:ru: Key:old name:ru
+    old_name:uk: Key:old name:uk
     old_railway_operator: Key:old railway operator
     old_ref: Key:old ref
+    old_ref:legislative: Key:old ref:legislative
     old_ref_legislative: Key:old ref legislative
     oneclass: Key:oneclass
     oneway: Key:oneway
@@ -4902,18 +5123,23 @@ en:
     openfire: Key:openfire
     opening_date: Key:opening date
     opening_hours: Key:opening hours
+    opening_hours:atm: Key:opening hours:atm
     opening_hours:kitchen: Key:opening hours:kitchen
     openplaques:id: Key:openplaques:id
     openplaques_plaque: Key:openplaques plaque
     opensource: Key:opensource
     operator: Key:operator
     operator:MNC: Key:operator:MNC
+    operator:be: Key:operator:be
+    operator:en: Key:operator:en
+    operator:ru: Key:operator:ru
     operator:type: Key:operator:type
     operator:wikipedia: Key:operator:wikipedia
     organic: Key:organic
     orientation: Key:orientation
     orienteering: Key:orienteering
     origin: Key:origin
+    orv: Key:orv
     osak: Key:osak
     osak:identifier: Key:osak:identifier
     osak:municipality_no: Key:osak:municipality no
@@ -4935,6 +5161,7 @@ en:
     ownership: Key:ownership
     par: Key:par
     parish: Key:parish
+    park:type: Key:park:type
     parking: Key:parking
     parking:condition: Key:parking:condition
     parking:condition:both: Key:parking:condition:both
@@ -4956,11 +5183,16 @@ en:
     paved:date: Key:paved:date
     payment: Key:payment
     payment:account_cards: Key:payment:account cards
+    payment:american_express: Key:payment:american express
     payment:cash: Key:payment:cash
     payment:coins: Key:payment:coins
+    payment:contactless: Key:payment:contactless
     payment:credit_cards: Key:payment:credit cards
+    payment:debit_cards: Key:payment:debit cards
     payment:electronic_purses: Key:payment:electronic purses
     payment:foo: Key:payment:foo
+    payment:girocard: Key:payment:girocard
+    payment:maestro: Key:payment:maestro
     payment:mastercard: Key:payment:mastercard
     payment:mir: Key:payment:mir
     payment:none: Key:payment:none
@@ -5005,8 +5237,10 @@ en:
     'playground:': 'Key:playground:'
     playground:theme: Key:playground:theme
     point: Key:point
+    pole:type: Key:pole:type
     police: Key:police
     population: Key:population
+    population:date: Key:population:date
     population_rank: Key:population rank
     post_box:type: Key:post box:type
     post_office:type: Key:post office:type
@@ -5019,6 +5253,7 @@ en:
     power_supply: Key:power supply
     power_supply:schedule: Key:power supply:schedule
     preschool: Key:preschool
+    pressure: Key:pressure
     previous: Key:previous
     previous:access: Key:previous:access
     previous:vehicle: Key:previous:vehicle
@@ -5032,6 +5267,7 @@ en:
     protected: Key:protected
     protection_title: Key:protection title
     prow_ref: Key:prow ref
+    pruning: Key:pruning
     psv: Key:psv
     public_bookcase:type: Key:public bookcase:type
     public_transport: Key:public transport
@@ -5065,6 +5301,8 @@ en:
     ramp:stroller: Key:ramp:stroller
     ramp:wheelchair: Key:ramp:wheelchair
     ramsar: Key:ramsar
+    razed: Key:razed
+    'razed:': 'Key:razed:'
     rcn_ref: Key:rcn ref
     real_ale: Key:real ale
     real_cider: Key:real cider
@@ -5099,6 +5337,7 @@ en:
     ref:IFOPT: Key:ref:IFOPT
     ref:INSEE: Key:ref:INSEE
     ref:ISTAT: Key:ref:ISTAT
+    ref:NLPG:UPRN:1: Key:ref:NLPG:UPRN:1
     ref:NPLG:UPRN:1: Key:ref:NPLG:UPRN:1
     ref:TECB: Key:ref:TECB
     ref:TECC: Key:ref:TECC
@@ -5123,12 +5362,15 @@ en:
     ref:isil: Key:ref:isil
     ref:kmb: Key:ref:kmb
     ref:lor: Key:ref:lor
+    ref:mcrb: Key:ref:mcrb
     ref:mhs: Key:ref:mhs
     ref:miaaddr: Key:ref:miaaddr
     ref:miabldg: Key:ref:miabldg
+    ref:mise: Key:ref:mise
     ref:mobil-parken.de: Key:ref:mobil-parken.de
     ref:ortsnetz: Key:ref:ortsnetz
     ref:penndot: Key:ref:penndot
+    ref:raa: Key:ref:raa
     ref:ruian: Key:ref:ruian
     ref:ruian:addr: Key:ref:ruian:addr
     ref:ruian:building: Key:ref:ruian:building
@@ -5140,6 +5382,7 @@ en:
     ref:sitp: Key:ref:sitp
     ref:taskey: Key:ref:taskey
     ref:vatin: Key:ref:vatin
+    ref:vatin:hu: Key:ref:vatin:hu
     ref:vorwahl: Key:ref:vorwahl
     ref:wawa: Key:ref:wawa
     ref:whc: Key:ref:whc
@@ -5160,6 +5403,7 @@ en:
     reservation: Key:reservation
     residential: Key:residential
     resource: Key:resource
+    restaurant: Key:restaurant
     restriction:conditional: Key:restriction:conditional
     retreat: Key:retreat
     retroreflecting: Key:retroreflecting
@@ -5173,11 +5417,13 @@ en:
     roof:colour: Key:roof:colour
     roof:direction: Key:roof:direction
     roof:material: Key:roof:material
+    roof:shape: Key:roof:shape
     room: Key:room
     rooms: Key:rooms
     rotor:diameter: Key:rotor:diameter
     roundtrip: Key:roundtrip
     route: Key:route
+    route_availability: Key:route availability
     route_master: Key:route master
     route_ref: Key:route ref
     route_ref:De_Lijn: Key:route ref:De Lijn
@@ -5204,6 +5450,11 @@ en:
     sagns_id: Key:sagns id
     salt: Key:salt
     sanitary_dump_station: Key:sanitary dump station
+    sauna: Key:sauna
+    sauna:fuel: Key:sauna:fuel
+    sauna:heating: Key:sauna:heating
+    sauna:temperature: Key:sauna:temperature
+    sauna:water:description: Key:sauna:water:description
     scenic: Key:scenic
     school: Key:school
     seamark: Key:seamark
@@ -5306,6 +5557,7 @@ en:
     sidewalk: Key:sidewalk
     sidewalk_orientation: Key:sidewalk orientation
     sign: Key:sign
+    sinkhole: Key:sinkhole
     site_type: Key:site type
     size: Key:size
     ski: Key:ski
@@ -5327,6 +5579,8 @@ en:
     socket: Key:socket
     sorting_name: Key:sorting name
     sorting_name:ar: Key:sorting name:ar
+    sorting_name:be: Key:sorting name:be
+    sorting_name:ru: Key:sorting name:ru
     source: Key:source
     source:ProRail: Key:source:ProRail
     source:addr: Key:source:addr
@@ -5338,7 +5592,10 @@ en:
     source:ja: Key:source:ja
     source:loc: Key:source:loc
     source:maxspeed: Key:source:maxspeed
+    source:maxspeed:backward: Key:source:maxspeed:backward
+    source:maxspeed:forward: Key:source:maxspeed:forward
     source:name: Key:source:name
+    source:population: Key:source:population
     source:position: Key:source:position
     source:postcode: Key:source:postcode
     source:ref: Key:source:ref
@@ -5348,6 +5605,8 @@ en:
     species:cs: Key:species:cs
     species:de: Key:species:de
     species:en: Key:species:en
+    species:ru: Key:species:ru
+    species:wikidata: Key:species:wikidata
     speech_input: Key:speech input
     speech_input:lg: Key:speech input:lg
     speech_output: Key:speech output
@@ -5371,10 +5630,13 @@ en:
     stop: Key:stop
     storage_area: Key:storage area
     stranded: Key:stranded
+    strapline: Key:strapline
     stream: Key:stream
     stroller: Key:stroller
+    structure: Key:structure
     sub_sea: Key:sub sea
     subject: Key:subject
+    subject:wikipedia: Key:subject:wikipedia
     subsea: Key:subsea
     substance: Key:substance
     substation: Key:substation
@@ -5412,6 +5674,7 @@ en:
     technical_type: Key:technical type
     technology: Key:technology
     telecom: Key:telecom
+    telescope:type: Key:telescope:type
     temporary: Key:temporary
     tenant: Key:tenant
     tents: Key:tents
@@ -5438,12 +5701,16 @@ en:
     toilets:type: Key:toilets:type
     toilets:wheelchair: Key:toilets:wheelchair
     toll: Key:toll
+    toll:hgv: Key:toll:hgv
+    toll:motorcycle: Key:toll:motorcycle
     topmark: Key:topmark
     topmark:colour: Key:topmark:colour
     touring: Key:touring
     tourism: Key:tourism
     tourist_bus: Key:tourist bus
+    tower:construction: Key:tower:construction
     tower:type: Key:tower:type
+    townhall:type: Key:townhall:type
     tracks: Key:tracks
     tracktype: Key:tracktype
     traffic: Key:traffic
@@ -5461,10 +5728,13 @@ en:
     traffic_signals:turn:forward: Key:traffic signals:turn:forward
     traffic_signals:vibration: Key:traffic signals:vibration
     trail_visibility: Key:trail visibility
+    trailblazed: Key:trailblazed
     trailer: Key:trailer
     train: Key:train
     tram: Key:tram
+    transformer:devices: Key:transformer:devices
     trees: Key:trees
+    trench: Key:trench
     trolley_wire: Key:trolley wire
     trolleybus: Key:trolleybus
     tsunami: Key:tsunami
@@ -5494,8 +5764,11 @@ en:
     usage: Key:usage
     user_defined_other: Key:user defined other
     utahagrc:parcelid: Key:utahagrc:parcelid
+    validate:ants:yellow: Key:validate:ants:yellow
     validate:no_name: Key:validate:no name
     validate:no_ref: Key:validate:no ref
+    vegan: Key:vegan
+    vegetarian: Key:vegetarian
     vehicle: Key:vehicle
     vehicle:conditional: Key:vehicle:conditional
     verge: Key:verge
@@ -5504,10 +5777,13 @@ en:
     visibility: Key:visibility
     voltage: Key:voltage
     wall:material: Key:wall:material
+    washing_machine: Key:washing machine
     waste: Key:waste
     waste_basket: Key:waste basket
     water: Key:water
+    water_characteristic: Key:water characteristic
     water_point: Key:water point
+    water_system: Key:water system
     waterway: Key:waterway
     way_area: Key:way area
     website: Key:website
@@ -5522,8 +5798,26 @@ en:
     wikimedia_commons: Key:wikimedia commons
     wikipedia: Key:wikipedia
     wikipedia:ar: Key:wikipedia:ar
+    wikipedia:be: Key:wikipedia:be
+    wikipedia:de: Key:wikipedia:de
     wikipedia:en: Key:wikipedia:en
+    wikipedia:fr: Key:wikipedia:fr
+    wikipedia:pl: Key:wikipedia:pl
+    windings: Key:windings
+    windings:configuration: Key:windings:configuration
+    windings:primary: Key:windings:primary
+    windings:secondary: Key:windings:secondary
+    windings:tertiary: Key:windings:tertiary
+    wine:grape: Key:wine:grape
+    wine:region: Key:wine:region
+    wine:type: Key:wine:type
+    wine:vineyard: Key:wine:vineyard
+    winery: Key:winery
     winter_road: Key:winter road
+    winter_service: Key:winter service
+    winter_service:gritting: Key:winter service:gritting
+    winter_service:priority: Key:winter service:priority
+    winter_service:salting: Key:winter service:salting
     wires: Key:wires
     woeid: Key:woeid
     wood: Key:wood
@@ -5531,6 +5825,7 @@ en:
     workrules: Key:workrules
     www.prezzibenzina.it: Key:www.prezzibenzina.it
     xmas:feature: Key:xmas:feature
+    xmpp: Key:xmpp
     year_of_construction: Key:year of construction
     yh:LINE_NAME: Key:yh:LINE NAME
     yh:LINE_NUM: Key:yh:LINE NUM
@@ -5597,6 +5892,11 @@ en:
     aerialway=station: Tag:aerialway=station
     aerialway=t-bar: Tag:aerialway=t-bar
     aerialway=zip_line: Tag:aerialway=zip line
+    aerodrome:type=airfield: Tag:aerodrome:type=airfield
+    aerodrome:type=gliding: Tag:aerodrome:type=gliding
+    aerodrome:type=international: Tag:aerodrome:type=international
+    aerodrome:type=private: Tag:aerodrome:type=private
+    aerodrome:type=regional: Tag:aerodrome:type=regional
     aeroway=aerodrome: Tag:aeroway=aerodrome
     aeroway=airport: Tag:aeroway=airport
     aeroway=airstrip: Tag:aeroway=airstrip
@@ -5606,6 +5906,7 @@ en:
     aeroway=hangar: Tag:aeroway=hangar
     aeroway=helipad: Tag:aeroway=helipad
     aeroway=heliport: Tag:aeroway=heliport
+    aeroway=highway_strip: Tag:aeroway=highway strip
     aeroway=holding_position: Tag:aeroway=holding position
     aeroway=landingpad: Tag:aeroway=landingpad
     aeroway=launchpad: Tag:aeroway=launchpad
@@ -5645,7 +5946,6 @@ en:
     amenity=bicycle_repair_station: Tag:amenity=bicycle repair station
     amenity=bicycle_trailer_sharing: Tag:amenity=bicycle trailer sharing
     amenity=biergarten: Tag:amenity=biergarten
-    amenity=bikeshed: Tag:amenity=bikeshed
     amenity=boat_rental: Tag:amenity=boat rental
     amenity=boat_sharing: Tag:amenity=boat sharing
     amenity=boat_storage: Tag:amenity=boat storage
@@ -5655,7 +5955,6 @@ en:
     amenity=bus_station: Tag:amenity=bus station
     amenity=bus_stop: Tag:amenity=bus stop
     amenity=cafe: Tag:amenity=cafe
-    amenity=canoe_hire: Tag:amenity=canoe hire
     amenity=car_pooling: Tag:amenity=car pooling
     amenity=car_rental: Tag:amenity=car rental
     amenity=car_repair: Tag:amenity=car repair
@@ -5668,6 +5967,7 @@ en:
     amenity=cinema: Tag:amenity=cinema
     amenity=citymap_post: Tag:amenity=citymap post
     amenity=clinic: Tag:amenity=clinic
+    amenity=cloakroom: Tag:amenity=cloakroom
     amenity=clock: Tag:amenity=clock
     amenity=club: Tag:amenity=club
     amenity=coast_guard: Tag:amenity=coast guard
@@ -5677,6 +5977,7 @@ en:
     amenity=community_centre: Tag:amenity=community centre
     amenity=compressed_air: Tag:amenity=compressed air
     amenity=concert_hall: Tag:amenity=concert hall
+    amenity=concession_stand: Tag:amenity=concession stand
     amenity=conference_centre: Tag:amenity=conference centre
     amenity=courthouse: Tag:amenity=courthouse
     amenity=coworking_space: Tag:amenity=coworking space
@@ -5688,6 +5989,7 @@ en:
     amenity=dancing_school: Tag:amenity=dancing school
     amenity=dead_pub: Tag:amenity=dead pub
     amenity=dentist: Tag:amenity=dentist
+    amenity=device_charging_station: Tag:amenity=device charging station
     amenity=disused: Tag:amenity=disused
     amenity=dive_centre: Tag:amenity=dive centre
     amenity=doctor: Tag:amenity=doctor
@@ -5695,13 +5997,13 @@ en:
     amenity=dog_bin: Tag:amenity=dog bin
     amenity=dog_waste_bin: Tag:amenity=dog waste bin
     amenity=dojo: Tag:amenity=dojo
+    amenity=dressing_room: Tag:amenity=dressing room
     amenity=drinking_water: Tag:amenity=drinking water
     amenity=driving_school: Tag:amenity=driving school
     amenity=dryer: Tag:amenity=dryer
     amenity=education: Tag:amenity=education
     amenity=embassy: Tag:amenity=embassy
     amenity=emergency_phone: Tag:amenity=emergency phone
-    amenity=emergency_service: Tag:amenity=emergency service
     amenity=ev_charging: Tag:amenity=ev charging
     amenity=events_venue: Tag:amenity=events venue
     amenity=exercise_point: Tag:amenity=exercise point
@@ -5737,6 +6039,7 @@ en:
     amenity=ice_cream: Tag:amenity=ice cream
     amenity=internet_cafe: Tag:amenity=internet cafe
     amenity=jobcentre: Tag:amenity=jobcentre
+    amenity=juice_bar: Tag:amenity=juice bar
     amenity=kindergarten: Tag:amenity=kindergarten
     amenity=kiosk: Tag:amenity=kiosk
     amenity=kitchen: Tag:amenity=kitchen
@@ -5748,6 +6051,7 @@ en:
     amenity=life_ring: Tag:amenity=life ring
     amenity=lifeboat_station: Tag:amenity=lifeboat station
     amenity=loading_dock: Tag:amenity=loading dock
+    amenity=lounger: Tag:amenity=lounger
     amenity=love_hotel: Tag:amenity=love hotel
     amenity=marae: Tag:amenity=marae
     amenity=marketplace: Tag:amenity=marketplace
@@ -5770,6 +6074,7 @@ en:
     amenity=parking_space: Tag:amenity=parking space
     amenity=parkink: Tag:amenity=parkink
     amenity=payment_centre: Tag:amenity=payment centre
+    amenity=payment_terminal: Tag:amenity=payment terminal
     amenity=pharmacy: Tag:amenity=pharmacy
     amenity=photo_booth: Tag:amenity=photo booth
     amenity=place_of_worship: Tag:amenity=place of worship
@@ -5787,7 +6092,6 @@ en:
     amenity=public_bath: Tag:amenity=public bath
     amenity=public_bookcase: Tag:amenity=public bookcase
     amenity=public_building: Tag:amenity=public building
-    amenity=public_hall: Tag:amenity=public hall
     amenity=ranger_station: Tag:amenity=ranger station
     amenity=reception_desk: Tag:amenity=reception desk
     amenity=recycling: Tag:amenity=recycling
@@ -5811,6 +6115,7 @@ en:
     amenity=ski_rental: Tag:amenity=ski rental
     amenity=ski_school: Tag:amenity=ski school
     amenity=smoking_area: Tag:amenity=smoking area
+    amenity=snow_removal_station: Tag:amenity=snow removal station
     amenity=social_centre: Tag:amenity=social centre
     amenity=social_facility: Tag:amenity=social facility
     amenity=spa: Tag:amenity=spa
@@ -5824,7 +6129,6 @@ en:
     amenity=swingerclub: Tag:amenity=swingerclub
     amenity=table: Tag:amenity=table
     amenity=taxi: Tag:amenity=taxi
-    amenity=taxi_point: Tag:amenity=taxi point
     amenity=telephone: Tag:amenity=telephone
     amenity=television: Tag:amenity=television
     amenity=theatre: Tag:amenity=theatre
@@ -5834,6 +6138,7 @@ en:
     amenity=toilets: Tag:amenity=toilets
     amenity=townhall: Tag:amenity=townhall
     amenity=trolley_bay: Tag:amenity=trolley bay
+    amenity=tuition: Tag:amenity=tuition
     amenity=university: Tag:amenity=university
     amenity=vacuum_cleaner: Tag:amenity=vacuum cleaner
     amenity=vehicle_inspection: Tag:amenity=vehicle inspection
@@ -5854,9 +6159,14 @@ en:
     amenity=yacht_club: Tag:amenity=yacht club
     amenity=youth_centre: Tag:amenity=youth centre
     aminety=sceptic_tank: Tag:aminety=sceptic tank
+    animal=horse_walker: Tag:animal=horse walker
     animal=school: Tag:animal=school
     animated=trivision_blades: Tag:animated=trivision blades
     animated=winding_posters: Tag:animated=winding posters
+    area:highway=cycleway: Tag:area:highway=cycleway
+    area:highway=footway: Tag:area:highway=footway
+    area:highway=path: Tag:area:highway=path
+    area:highway=pedestrian: Tag:area:highway=pedestrian
     artwork_type=sculpture: Tag:artwork type=sculpture
     artwork_type=statue: Tag:artwork type=statue
     atm=no: Tag:atm=no
@@ -5864,6 +6174,7 @@ en:
     attraction=animal: Tag:attraction=animal
     attraction=maze: Tag:attraction=maze
     attraction=train: Tag:attraction=train
+    attraction=water_slide: Tag:attraction=water slide
     baby_hatch=yes: Tag:baby hatch=yes
     bakehouse: Tag:bakehouse
     baking_oven: Tag:baking oven
@@ -5917,6 +6228,10 @@ en:
     barrier=turnstile: Tag:barrier=turnstile
     barrier=wall: Tag:barrier=wall
     baseball=softball: Tag:baseball=softball
+    bath:type=hammam: Tag:bath:type=hammam
+    bath:type=hot_spring: Tag:bath:type=hot spring
+    bath:type=onsen: Tag:bath:type=onsen
+    bath:type=thermal: Tag:bath:type=thermal
     bay=fjord: Tag:bay=fjord
     bicycle=designated: Tag:bicycle=designated
     bicycle=official: Tag:bicycle=official
@@ -5941,15 +6256,20 @@ en:
     boundary=protected_area: Tag:boundary=protected area
     boundary=regional_park: Tag:boundary=regional park
     boundary=timezone: Tag:boundary=timezone
+    boundary=urban: Tag:boundary=urban
     boundary=vice_county: Tag:boundary=vice county
     boundary=water_protection_area: Tag:boundary=water protection area
+    brand=Harley-Davidson: Tag:brand=Harley-Davidson
     brand=KTM: Tag:brand=KTM
+    brand=Moto_Guzzi: Tag:brand=Moto Guzzi
     brand=Zero: Tag:brand=Zero
     bridge:movable=bascule: Tag:bridge:movable=bascule
     bridge:movable=drawbridge: Tag:bridge:movable=drawbridge
     bridge:movable=lift: Tag:bridge:movable=lift
+    bridge:movable=retractable: Tag:bridge:movable=retractable
     bridge:movable=submersible: Tag:bridge:movable=submersible
     bridge:movable=swing: Tag:bridge:movable=swing
+    bridge:movable=tilt: Tag:bridge:movable=tilt
     bridge:movable=transporter: Tag:bridge:movable=transporter
     bridge:structure=arch: Tag:bridge:structure=arch
     bridge:structure=beam: Tag:bridge:structure=beam
@@ -6001,6 +6321,7 @@ en:
     building=font: Tag:building=font
     building=garage: Tag:building=garage
     building=garages: Tag:building=garages
+    building=government: Tag:building=government
     building=grandstand: Tag:building=grandstand
     building=greenhouse: Tag:building=greenhouse
     building=ground_station: Tag:building=ground station
@@ -6028,10 +6349,13 @@ en:
     building=ruins: Tag:building=ruins
     building=school: Tag:building=school
     building=semi: Tag:building=semi
+    building=semidetached_house: Tag:building=semidetached house
     building=service: Tag:building=service
     building=shed: Tag:building=shed
     building=shrine: Tag:building=shrine
     building=slurry_tank: Tag:building=slurry tank
+    building=sports_centre: Tag:building=sports centre
+    building=sports_hall: Tag:building=sports hall
     building=stable: Tag:building=stable
     building=stadium: Tag:building=stadium
     building=static_caravan: Tag:building=static caravan
@@ -6042,6 +6366,7 @@ en:
     building=tech_cab: Tag:building=tech cab
     building=temple: Tag:building=temple
     building=terrace: Tag:building=terrace
+    building=toilets: Tag:building=toilets
     building=train_station: Tag:building=train station
     building=transformer_tower: Tag:building=transformer tower
     building=transportation: Tag:building=transportation
@@ -6049,9 +6374,11 @@ en:
     building=warehouse: Tag:building=warehouse
     building=water_tower: Tag:building=water tower
     building=yes: Tag:building=yes
+    bunker_type=gun_emplacement: Tag:bunker type=gun emplacement
     bunker_type=hardened_aircraft_shelter: Tag:bunker type=hardened aircraft shelter
     bunker_type=munitions: Tag:bunker type=munitions
     bunker_type=pillbox: Tag:bunker type=pillbox
+    bunker_type=technical: Tag:bunker type=technical
     busway:left=lane: Tag:busway:left=lane
     busway:right=lane: Tag:busway:right=lane
     busway=lane: Tag:busway=lane
@@ -6069,6 +6396,7 @@ en:
     clothes=motorcycle: Tag:clothes=motorcycle
     clothes=sports: Tag:clothes=sports
     clothes=underwear: Tag:clothes=underwear
+    club=amateur_radio: Tag:club=amateur radio
     club=automobile: Tag:club=automobile
     club=fan: Tag:club=fan
     club=scout: Tag:club=scout
@@ -6095,11 +6423,13 @@ en:
     craft=clockmaker: Tag:craft=clockmaker
     craft=confectionery: Tag:craft=confectionery
     craft=cooper: Tag:craft=cooper
+    craft=dental_technician: Tag:craft=dental technician
     craft=distillery: Tag:craft=distillery
     craft=dressmaker: Tag:craft=dressmaker
     craft=electrican: Tag:craft=electrican
     craft=electrician: Tag:craft=electrician
     craft=electronics_repair: Tag:craft=electronics repair
+    craft=embroiderer: Tag:craft=embroiderer
     craft=engraver: Tag:craft=engraver
     craft=floorer: Tag:craft=floorer
     craft=gardener: Tag:craft=gardener
@@ -6114,6 +6444,7 @@ en:
     craft=key_cutter: Tag:craft=key cutter
     craft=locksmith: Tag:craft=locksmith
     craft=metal_construction: Tag:craft=metal construction
+    craft=mint: Tag:craft=mint
     craft=musical_instrument: Tag:craft=musical instrument
     craft=oil_mill: Tag:craft=oil mill
     craft=optician: Tag:craft=optician
@@ -6127,6 +6458,7 @@ en:
     craft=plasterer: Tag:craft=plasterer
     craft=plumber: Tag:craft=plumber
     craft=pottery: Tag:craft=pottery
+    craft=printmaker: Tag:craft=printmaker
     craft=rigger: Tag:craft=rigger
     craft=roofer: Tag:craft=roofer
     craft=saddler: Tag:craft=saddler
@@ -6178,6 +6510,7 @@ en:
     cuisine=tea_shop: Tag:cuisine=tea shop
     cycle_network=US:CA:SF: Tag:cycle network=US:CA:SF
     cycle_network=US:GA: Tag:cycle network=US:GA
+    cycle_network=US:LA:NO: Tag:cycle network=US:LA:NO
     cycle_network=US:NC: Tag:cycle network=US:NC
     cycle_network=US:NM: Tag:cycle network=US:NM
     cycle_network=US:NY: Tag:cycle network=US:NY
@@ -6206,10 +6539,12 @@ en:
     defensive=bergfried: Tag:defensive=bergfried
     defensive=donjon: Tag:defensive=donjon
     defensive=keep: Tag:defensive=keep
+    demolished=yes: Tag:demolished=yes
     dennert_fir_tree=yes: Tag:dennert fir tree=yes
     denomination=mormon: Tag:denomination=mormon
     denomination=reformed: Tag:denomination=reformed
     denotation=cluster: Tag:denotation=cluster
+    destroyed=yes: Tag:destroyed=yes
     diplomatic=ambassadors_residence: Tag:diplomatic=ambassadors residence
     diplomatic=consulate: Tag:diplomatic=consulate
     diplomatic=consulate_general: Tag:diplomatic=consulate general
@@ -6221,6 +6556,8 @@ en:
     dock=drydock: Tag:dock=drydock
     dock=floating: Tag:dock=floating
     dock=tidal: Tag:dock=tidal
+    electrified=contact_line: Tag:electrified=contact line
+    electrified=rail: Tag:electrified=rail
     emergency=access_point: Tag:emergency=access point
     emergency=aed: Tag:emergency=aed
     emergency=ambulance_station: Tag:emergency=ambulance station
@@ -6228,23 +6565,33 @@ en:
     emergency=coast_guard: Tag:emergency=coast guard
     emergency=defibrilator: Tag:emergency=defibrilator
     emergency=defibrillator: Tag:emergency=defibrillator
+    emergency=disaster_response: Tag:emergency=disaster response
     emergency=dry_riser: Tag:emergency=dry riser
     emergency=dry_riser_inlet: Tag:emergency=dry riser inlet
     emergency=emergency_ward_entrance: Tag:emergency=emergency ward entrance
+    emergency=fire_alarm: Tag:emergency=fire alarm
+    emergency=fire_alarm_box: Tag:emergency=fire alarm box
     emergency=fire_extinguisher: Tag:emergency=fire extinguisher
     emergency=fire_flapper: Tag:emergency=fire flapper
     emergency=fire_hose: Tag:emergency=fire hose
     emergency=fire_hydrant: Tag:emergency=fire hydrant
+    emergency=fire_point_stand: Tag:emergency=fire point stand
+    emergency=fire_sand_bin: Tag:emergency=fire sand bin
     emergency=fire_water_pond: Tag:emergency=fire water pond
+    emergency=first_aid: Tag:emergency=first aid
+    emergency=first_aid_kit: Tag:emergency=first aid kit
     emergency=landing_site: Tag:emergency=landing site
     emergency=life_ring: Tag:emergency=life ring
     emergency=lifeboat_station: Tag:emergency=lifeboat station
+    emergency=lifeguard: Tag:emergency=lifeguard
     emergency=lifeguard_base: Tag:emergency=lifeguard base
     emergency=lifeguard_place: Tag:emergency=lifeguard place
     emergency=lifeguard_platform: Tag:emergency=lifeguard platform
     emergency=lifeguard_tower: Tag:emergency=lifeguard tower
     emergency=marine_refuge: Tag:emergency=marine refuge
+    emergency=mountain_rescue: Tag:emergency=mountain rescue
     emergency=phone: Tag:emergency=phone
+    emergency=rescue_box: Tag:emergency=rescue box
     emergency=ses_station: Tag:emergency=ses station
     emergency=siamese: Tag:emergency=siamese
     emergency=siren: Tag:emergency=siren
@@ -6263,11 +6610,15 @@ en:
     esperanto=esperanto: Tag:esperanto=esperanto
     estuary=yes: Tag:estuary=yes
     fast_food=cafeteria: Tag:fast food=cafeteria
-    food=gourmet: Tag:food=gourmet
+    flood_mark=painting: Tag:flood mark=painting
+    flood_mark=plaque: Tag:flood mark=plaque
     foot=designated: Tag:foot=designated
     foot=official: Tag:foot=official
     footway=crossing: Tag:footway=crossing
     footway=sidewalk: Tag:footway=sidewalk
+    ford=boat: Tag:ford=boat
+    ford=stepping_stones: Tag:ford=stepping stones
+    ford=yes: Tag:ford=yes
     fortification_type=hill_fort: Tag:fortification type=hill fort
     fortification_type=limes: Tag:fortification type=limes
     fortification_type=ring_ditch: Tag:fortification type=ring ditch
@@ -6336,11 +6687,15 @@ en:
     golf=tee: Tag:golf=tee
     golf=water_hazard: Tag:golf=water hazard
     government=audit: Tag:government=audit
+    government=cadaster: Tag:government=cadaster
+    government=customs: Tag:government=customs
+    government=healthcare: Tag:government=healthcare
     government=ministry: Tag:government=ministry
     government=prosecutor: Tag:government=prosecutor
     government=register_office: Tag:government=register office
     government=statistics: Tag:government=statistics
     government=tax: Tag:government=tax
+    government=youth_welfare_department: Tag:government=youth welfare department
     grit_bin: Tag:grit bin
     guidepost=simple: Tag:guidepost=simple
     harbour:category=RoRo: Tag:harbour:category=RoRo
@@ -6444,12 +6799,15 @@ en:
     historic=boundary_stone: Tag:historic=boundary stone
     historic=cannon: Tag:historic=cannon
     historic=castle: Tag:historic=castle
+    historic=castle_wall: Tag:historic=castle wall
     historic=charcoal_pile: Tag:historic=charcoal pile
+    historic=church: Tag:historic=church
     historic=city_gate: Tag:historic=city gate
     historic=city_wall: Tag:historic=city wall
     historic=citywalls: Tag:historic=citywalls
     historic=event: Tag:historic=event
     historic=farm: Tag:historic=farm
+    historic=flood_mark: Tag:historic=flood mark
     historic=fort: Tag:historic=fort
     historic=gallows: Tag:historic=gallows
     historic=heritage: Tag:historic=heritage
@@ -6459,6 +6817,7 @@ en:
     historic=memorial: Tag:historic=memorial
     historic=milestone: Tag:historic=milestone
     historic=mine: Tag:historic=mine
+    historic=mine_shaft: Tag:historic=mine shaft
     historic=monastery: Tag:historic=monastery
     historic=monument: Tag:historic=monument
     historic=optical_telegraph: Tag:historic=optical telegraph
@@ -6478,6 +6837,10 @@ en:
     historic=wreck: Tag:historic=wreck
     horse=designated: Tag:horse=designated
     hunting=raised_hide: Tag:hunting=raised hide
+    indoor=area: Tag:indoor=area
+    indoor=corridor: Tag:indoor=corridor
+    indoor=room: Tag:indoor=room
+    indoor=wall: Tag:indoor=wall
     indoormark=beacon: Tag:indoormark=beacon
     industrial=aluminium_smelting: Tag:industrial=aluminium smelting
     industrial=auto_wrecker: Tag:industrial=auto wrecker
@@ -6497,6 +6860,7 @@ en:
     industrial=oil: Tag:industrial=oil
     industrial=oil_mill: Tag:industrial=oil mill
     industrial=port: Tag:industrial=port
+    industrial=rice_mill: Tag:industrial=rice mill
     industrial=salt_pond: Tag:industrial=salt pond
     industrial=sawmill: Tag:industrial=sawmill
     industrial=scrap_yard: Tag:industrial=scrap yard
@@ -6514,6 +6878,7 @@ en:
     information=tactile_model: Tag:information=tactile model
     information=terminal: Tag:information=terminal
     internet_access=wlan: Tag:internet access=wlan
+    irrigation=pivot: Tag:irrigation=pivot
     junction=circular: Tag:junction=circular
     junction=crossing: Tag:junction=crossing
     junction=filter: Tag:junction=filter
@@ -6536,7 +6901,6 @@ en:
     landmark=large_rock: Tag:landmark=large rock
     landmark=mast: Tag:landmark=mast
     landmark=memorial_plaque: Tag:landmark=memorial plaque
-    landmark=monument: Tag:landmark=monument
     landmark=obelisk: Tag:landmark=obelisk
     landmark=pillar: Tag:landmark=pillar
     landmark=radar_scanner: Tag:landmark=radar scanner
@@ -6549,6 +6913,7 @@ en:
     landmark=windsock: Tag:landmark=windsock
     landuse=agriculture: Tag:landuse=agriculture
     landuse=allotments: Tag:landuse=allotments
+    landuse=animal_keeping: Tag:landuse=animal keeping
     landuse=apiary: Tag:landuse=apiary
     landuse=aquaculture: Tag:landuse=aquaculture
     landuse=basin: Tag:landuse=basin
@@ -6558,6 +6923,7 @@ en:
     landuse=cemetery: Tag:landuse=cemetery
     landuse=churchyard: Tag:landuse=churchyard
     landuse=commercial: Tag:landuse=commercial
+    landuse=conservation: Tag:landuse=conservation
     landuse=construction: Tag:landuse=construction
     landuse=depot: Tag:landuse=depot
     landuse=farm: Tag:landuse=farm
@@ -6572,6 +6938,7 @@ en:
     landuse=grave_yard: Tag:landuse=grave yard
     landuse=greenfield: Tag:landuse=greenfield
     landuse=greenhouse_horticulture: Tag:landuse=greenhouse horticulture
+    landuse=harbour: Tag:landuse=harbour
     landuse=highway: Tag:landuse=highway
     landuse=hop_garden: Tag:landuse=hop garden
     landuse=industrial: Tag:landuse=industrial
@@ -6600,7 +6967,6 @@ en:
     landuse=traffic_island: Tag:landuse=traffic island
     landuse=trees: Tag:landuse=trees
     landuse=turbary: Tag:landuse=turbary
-    landuse=utility: Tag:landuse=utility
     landuse=village_green: Tag:landuse=village green
     landuse=vineyard: Tag:landuse=vineyard
     landuse=well: Tag:landuse=well
@@ -6691,6 +7057,7 @@ en:
     level_crossing=uncontrolled: Tag:level crossing=uncontrolled
     line=bay: Tag:line=bay
     line=busbar: Tag:line=busbar
+    line=substation: Tag:line=substation
     lines=phone: Tag:lines=phone
     locality=subtownland: Tag:locality=subtownland
     locality=townland: Tag:locality=townland
@@ -6698,6 +7065,7 @@ en:
     maintenance=gritting: Tag:maintenance=gritting
     man_made=MDF: Tag:man made=MDF
     man_made=adit: Tag:man made=adit
+    man_made=animal_trap: Tag:man made=animal trap
     man_made=antenna: Tag:man made=antenna
     man_made=archimedes_screw: Tag:man made=archimedes screw
     man_made=beacon: Tag:man made=beacon
@@ -6707,6 +7075,7 @@ en:
     man_made=bunker_silo: Tag:man made=bunker silo
     man_made=cairn: Tag:man made=cairn
     man_made=campanile: Tag:man made=campanile
+    man_made=carpet_hanger: Tag:man made=carpet hanger
     man_made=chimney: Tag:man made=chimney
     man_made=clearcut: Tag:man made=clearcut
     man_made=communications_tower: Tag:man made=communications tower
@@ -6725,6 +7094,7 @@ en:
     man_made=flagpole: Tag:man made=flagpole
     man_made=flare: Tag:man made=flare
     man_made=floating_storage: Tag:man made=floating storage
+    man_made=footwear_decontamination: Tag:man made=footwear decontamination
     man_made=frost_fan: Tag:man made=frost fan
     man_made=gasometer: Tag:man made=gasometer
     man_made=geoglyph: Tag:man made=geoglyph
@@ -6819,6 +7189,7 @@ en:
     memorial=stele: Tag:memorial=stele
     memorial=stolperstein: Tag:memorial=stolperstein
     memorial=stone: Tag:memorial=stone
+    memorial=storm_surge_post: Tag:memorial=storm surge post
     memorial=war_memorial: Tag:memorial=war memorial
     microbrewery=yes: Tag:microbrewery=yes
     military=airfield: Tag:military=airfield
@@ -6845,9 +7216,21 @@ en:
     mooring=sbm: Tag:mooring=sbm
     mooring=spm: Tag:mooring=spm
     mooring=visitor: Tag:mooring=visitor
+    motorcycle:theme=yes: Tag:motorcycle:theme=yes
     motorcycle:type=electric: Tag:motorcycle:type=electric
     motorcycle:type=sportbike: Tag:motorcycle:type=sportbike
-    motorcycle_friendly: Tag:motorcycle friendly
+    motorcycle_friendly=customary: Tag:motorcycle friendly=customary
+    museum=archaeological: Tag:museum=archaeological
+    museum=art: Tag:museum=art
+    museum=history: Tag:museum=history
+    museum=living_history: Tag:museum=living history
+    museum=local: Tag:museum=local
+    museum=military: Tag:museum=military
+    museum=nature: Tag:museum=nature
+    museum=open_air: Tag:museum=open air
+    museum=railway: Tag:museum=railway
+    museum=technology: Tag:museum=technology
+    museum=transport: Tag:museum=transport
     name=7-Eleven: Tag:name=7-Eleven
     name=BMO: Tag:name=BMO
     name=BMO_Bank_of_Montreal: Tag:name=BMO Bank of Montreal
@@ -6871,6 +7254,7 @@ en:
     natural=bay: Tag:natural=bay
     natural=beach: Tag:natural=beach
     natural=bedrock: Tag:natural=bedrock
+    natural=birds_nest: Tag:natural=birds nest
     natural=blowhole: Tag:natural=blowhole
     natural=breaker: Tag:natural=breaker
     natural=cape: Tag:natural=cape
@@ -6895,7 +7279,7 @@ en:
     natural=grassland: Tag:natural=grassland
     natural=gully: Tag:natural=gully
     natural=heath: Tag:natural=heath
-    natural=herb: Tag:natural=herb
+    natural=hill: Tag:natural=hill
     natural=hot_spring: Tag:natural=hot spring
     natural=lake: Tag:natural=lake
     natural=land: Tag:natural=land
@@ -6931,6 +7315,7 @@ en:
     natural=termite_mound: Tag:natural=termite mound
     natural=tree: Tag:natural=tree
     natural=tree_row: Tag:natural=tree row
+    natural=tree_stump: Tag:natural=tree stump
     natural=tundra: Tag:natural=tundra
     natural=valley: Tag:natural=valley
     natural=volcano: Tag:natural=volcano
@@ -7096,6 +7481,7 @@ en:
     network=US:TX:NASA: Tag:network=US:TX:NASA
     network=US:TX:RM: Tag:network=US:TX:RM
     network=US:TX:Spur: Tag:network=US:TX:Spur
+    network=US:TX:Wood: Tag:network=US:TX:Wood
     network=US:US: Tag:network=US:US
     network=US:UT: Tag:network=US:UT
     network=US:VA: Tag:network=US:VA
@@ -7114,14 +7500,19 @@ en:
     network=jp:prefectural:nagano: Tag:network=jp:prefectural:nagano
     network=lcn: Tag:network=lcn
     network=lhn: Tag:network=lhn
+    network=lpn: Tag:network=lpn
     network=lwn: Tag:network=lwn
     network=ncn: Tag:network=ncn
     network=nextbike: Tag:network=nextbike
     network=nwn: Tag:network=nwn
     network=rcn: Tag:network=rcn
     network=rhn: Tag:network=rhn
+    network=rin: Tag:network=rin
+    network=rmn: Tag:network=rmn
+    network=rpn: Tag:network=rpn
     network=rwn: Tag:network=rwn
     noexit=no: Tag:noexit=no
+    observatory:type=astronomical: Tag:observatory:type=astronomical
     odbl=clean: Tag:odbl=clean
     office:realtor: Tag:office:realtor
     office=accountant: Tag:office=accountant
@@ -7136,10 +7527,12 @@ en:
     office=educational_institution: Tag:office=educational institution
     office=employment_agency: Tag:office=employment agency
     office=energy_supplier: Tag:office=energy supplier
+    office=engineer: Tag:office=engineer
     office=estate_agent: Tag:office=estate agent
     office=financial: Tag:office=financial
     office=forestry: Tag:office=forestry
     office=foundation: Tag:office=foundation
+    office=geodesist: Tag:office=geodesist
     office=government: Tag:office=government
     office=guide: Tag:office=guide
     office=insurance: Tag:office=insurance
@@ -7155,6 +7548,7 @@ en:
     office=parish: Tag:office=parish
     office=political_party: Tag:office=political party
     office=private_investigator: Tag:office=private investigator
+    office=property_management: Tag:office=property management
     office=quango: Tag:office=quango
     office=real_estate_agent: Tag:office=real estate agent
     office=realtor: Tag:office=realtor
@@ -7166,6 +7560,7 @@ en:
     office=tax_advisor: Tag:office=tax advisor
     office=telecommunication: Tag:office=telecommunication
     office=therapist: Tag:office=therapist
+    office=tourist_accommodation: Tag:office=tourist accommodation
     office=travel_agent: Tag:office=travel agent
     office=water_utility: Tag:office=water utility
     office=yes: Tag:office=yes
@@ -7197,6 +7592,7 @@ en:
     pilotage=office: Tag:pilotage=office
     pipeline=marker: Tag:pipeline=marker
     pipeline=substation: Tag:pipeline=substation
+    pipeline=surge_tank: Tag:pipeline=surge tank
     pipeline=valve: Tag:pipeline=valve
     piste:type=connection: Tag:piste:type=connection
     piste:type=downhill: Tag:piste:type=downhill
@@ -7221,6 +7617,7 @@ en:
     place=quarter: Tag:place=quarter
     place=region: Tag:place=region
     place=sea: Tag:place=sea
+    place=shieling: Tag:place=shieling
     place=square: Tag:place=square
     place=state: Tag:place=state
     place=suburb: Tag:place=suburb
@@ -7229,6 +7626,7 @@ en:
     placement=right_of:1: Tag:placement=right of:1
     placement=transition: Tag:placement=transition
     pole=transition: Tag:pole=transition
+    power=busbar: Tag:power=busbar
     power=cable: Tag:power=cable
     power=cable_distribution_cabinet: Tag:power=cable distribution cabinet
     power=catenary_mast: Tag:power=catenary mast
@@ -7238,6 +7636,7 @@ en:
     power=heliostat: Tag:power=heliostat
     power=insulator: Tag:power=insulator
     power=line: Tag:power=line
+    power=marker: Tag:power=marker
     power=minor_line: Tag:power=minor line
     power=outlet: Tag:power=outlet
     power=plant: Tag:power=plant
@@ -7256,6 +7655,7 @@ en:
     priority=national: Tag:priority=national
     priority=regional: Tag:priority=regional
     prison_camp=concentration_camp: Tag:prison camp=concentration camp
+    prison_camp=extermination_camp: Tag:prison camp=extermination camp
     psv=designated: Tag:psv=designated
     public_transport=pay_scale_area: Tag:public transport=pay scale area
     public_transport=platform: Tag:public transport=platform
@@ -7290,6 +7690,7 @@ en:
     railway=abandoned: Tag:railway=abandoned
     railway=buffer_stop: Tag:railway=buffer stop
     railway=crossing: Tag:railway=crossing
+    railway=crossing_controller: Tag:railway=crossing controller
     railway=derail: Tag:railway=derail
     railway=diamond: Tag:railway=diamond
     railway=disused: Tag:railway=disused
@@ -7322,6 +7723,8 @@ en:
     railway=traverser: Tag:railway=traverser
     railway=turntable: Tag:railway=turntable
     railway=wash: Tag:railway=wash
+    railway=water_crane: Tag:railway=water crane
+    railway=water_tower: Tag:railway=water tower
     railway=yard: Tag:railway=yard
     recycling_type=container: Tag:recycling type=container
     religion=buddhist: Tag:religion=buddhist
@@ -7332,6 +7735,7 @@ en:
     religion=multifaith: Tag:religion=multifaith
     religion=muslim: Tag:religion=muslim
     religion=pagan: Tag:religion=pagan
+    religion=self-realization_fellowship: Tag:religion=self-realization fellowship
     religion=shinto: Tag:religion=shinto
     religion=sikh: Tag:religion=sikh
     religion=taoist: Tag:religion=taoist
@@ -7348,8 +7752,11 @@ en:
     route=bicycle: Tag:route=bicycle
     route=bus: Tag:route=bus
     route=canal: Tag:route=canal
+    route=canoe: Tag:route=canoe
     route=coach: Tag:route=coach
     route=detour: Tag:route=detour
+    route=evacuation: Tag:route=evacuation
+    route=ferrata: Tag:route=ferrata
     route=ferry: Tag:route=ferry
     route=fitness_trail: Tag:route=fitness trail
     route=foot: Tag:route=foot
@@ -7359,6 +7766,7 @@ en:
     route=light_rail: Tag:route=light rail
     route=minibus: Tag:route=minibus
     route=monorail: Tag:route=monorail
+    route=motorboat: Tag:route=motorboat
     route=ncn: Tag:route=ncn
     route=nordic_walking: Tag:route=nordic walking
     route=pipeline: Tag:route=pipeline
@@ -7372,6 +7780,7 @@ en:
     route=tracks: Tag:route=tracks
     route=train: Tag:route=train
     route=tram: Tag:route=tram
+    route=transhumance: Tag:route=transhumance
     route=trolleybus: Tag:route=trolleybus
     seamark:beacon_cardinal:colour_pattern=horizontal: Tag:seamark:beacon cardinal:colour
       pattern=horizontal
@@ -7701,6 +8110,7 @@ en:
     service=spur: Tag:service=spur
     service=yard: Tag:service=yard
     shelter_type=basic_hut: Tag:shelter type=basic hut
+    shelter_type=field_shelter: Tag:shelter type=field shelter
     shelter_type=lean_to: Tag:shelter type=lean to
     shelter_type=public_transport: Tag:shelter type=public transport
     shop=*: Tag:shop=*
@@ -7711,6 +8121,7 @@ en:
     shop=anime: Tag:shop=anime
     shop=antique: Tag:shop=antique
     shop=antiques: Tag:shop=antiques
+    shop=appliance: Tag:shop=appliance
     shop=art: Tag:shop=art
     shop=atv: Tag:shop=atv
     shop=audiologist: Tag:shop=audiologist
@@ -7725,6 +8136,7 @@ en:
     shop=betting: Tag:shop=betting
     shop=beverages: Tag:shop=beverages
     shop=bicycle: Tag:shop=bicycle
+    shop=board: Tag:shop=board
     shop=boat: Tag:shop=boat
     shop=bookmaker: Tag:shop=bookmaker
     shop=books: Tag:shop=books
@@ -7734,14 +8146,14 @@ en:
     shop=butcher: Tag:shop=butcher
     shop=camera: Tag:shop=camera
     shop=candles: Tag:shop=candles
-    shop=canoe_hire: Tag:shop=canoe hire
+    shop=cannabis: Tag:shop=cannabis
     shop=car: Tag:shop=car
-    shop=car_bodyshop: Tag:shop=car bodyshop
     shop=car_parts: Tag:shop=car parts
     shop=car_repair: Tag:shop=car repair
     shop=car_service: Tag:shop=car service
     shop=carpet: Tag:shop=carpet
     shop=cell_phones: Tag:shop=cell phones
+    shop=ceramics: Tag:shop=ceramics
     shop=chandler: Tag:shop=chandler
     shop=charity: Tag:shop=charity
     shop=cheese: Tag:shop=cheese
@@ -7774,6 +8186,7 @@ en:
     shop=electrical: Tag:shop=electrical
     shop=electronics: Tag:shop=electronics
     shop=energy: Tag:shop=energy
+    shop=equestrian: Tag:shop=equestrian
     shop=erotic: Tag:shop=erotic
     shop=estate_agent: Tag:shop=estate agent
     shop=fabric: Tag:shop=fabric
@@ -7826,7 +8239,7 @@ en:
     shop=herbalist: Tag:shop=herbalist
     shop=hifi: Tag:shop=hifi
     shop=hobby: Tag:shop=hobby
-    shop=household: Tag:shop=household
+    shop=hookah: Tag:shop=hookah
     shop=houseware: Tag:shop=houseware
     shop=hunting: Tag:shop=hunting
     shop=ice_cream: Tag:shop=ice cream
@@ -7880,7 +8293,6 @@ en:
     shop=photo: Tag:shop=photo
     shop=photo_studio: Tag:shop=photo studio
     shop=photography: Tag:shop=photography
-    shop=piercing: Tag:shop=piercing
     shop=pottery: Tag:shop=pottery
     shop=printer_ink: Tag:shop=printer ink
     shop=printing: Tag:shop=printing
@@ -7917,6 +8329,7 @@ en:
     shop=tickets: Tag:shop=tickets
     shop=tiles: Tag:shop=tiles
     shop=tobacco: Tag:shop=tobacco
+    shop=tool_hire: Tag:shop=tool hire
     shop=toy: Tag:shop=toy
     shop=toys: Tag:shop=toys
     shop=trade: Tag:shop=trade
@@ -7941,8 +8354,6 @@ en:
     shop=winery: Tag:shop=winery
     shop=wool: Tag:shop=wool
     shop=yes: Tag:shop=yes
-    sign=no: Tag:sign=no
-    sign=yes: Tag:sign=yes
     signal_station=bridge: Tag:signal station=bridge
     signal_station=control: Tag:signal station=control
     signal_station=distress: Tag:signal station=distress
@@ -7983,17 +8394,22 @@ en:
     social_facility=shelter: Tag:social facility=shelter
     social_facility=soup_kitchen: Tag:social facility=soup kitchen
     social_facility=workshop: Tag:social facility=workshop
+    source:addr=GURS: Tag:source:addr=GURS
     source:ele=barometric: Tag:source:ele=barometric
     source:geometry=ACT2016: Tag:source:geometry=ACT2016
     source:geometry=ACTMapiRoads: Tag:source:geometry=ACTMapiRoads
     source:geometry=ACTMapiTP: Tag:source:geometry=ACTMapiTP
     source:geometry=Bing: Tag:source:geometry=Bing
+    source:geometry=NPWS_Estate: Tag:source:geometry=NPWS Estate
     source:geometry=NSW_LPI_Base_Map: Tag:source:geometry=NSW LPI Base Map
     source:geometry=NSW_LPI_Imagery: Tag:source:geometry=NSW LPI Imagery
     source:maxspeed=implicit: Tag:source:maxspeed=implicit
     source:name=LPI_NSW_Base_Map: Tag:source:name=LPI NSW Base Map
+    source:name=NPWS_Estate: Tag:source:name=NPWS Estate
     source:name=NSW_LPI_Base_Map: Tag:source:name=NSW LPI Base Map
+    source:position=NPWS_Estate: Tag:source:position=NPWS Estate
     source=ACT2016: Tag:source=ACT2016
+    source=ACT2017: Tag:source=ACT2017
     source=ACTMapiRoads: Tag:source=ACTMapiRoads
     source=ACTMapiTP: Tag:source=ACTMapiTP
     source=Bymiljøetaten: Tag:source=Bymiljøetaten
@@ -8007,11 +8423,13 @@ en:
     source=LPI_NSW_Base_Map: Tag:source=LPI NSW Base Map
     source=LPI_NSW_Imagery: Tag:source=LPI NSW Imagery
     source=NAIP: Tag:source=NAIP
+    source=NPWS_Estate: Tag:source=NPWS Estate
     source=NSW_LPI_Base_Map: Tag:source=NSW LPI Base Map
     source=NSW_LPI_Imagery: Tag:source=NSW LPI Imagery
     source=Naturbase: Tag:source=Naturbase
     source=PGS: Tag:source=PGS
     source=RABA-KGZ: Tag:source=RABA-KGZ
+    source=Schadow1_Expeditions: Tag:source=Schadow1 Expeditions
     source=YahooJapan/ALPSMAP: Tag:source=YahooJapan/ALPSMAP
     source=gurs: Tag:source=gurs
     sport=10pin: Tag:sport=10pin
@@ -8030,6 +8448,7 @@ en:
     sport=base: Tag:sport=base
     sport=baseball: Tag:sport=baseball
     sport=basketball: Tag:sport=basketball
+    sport=batting_cage: Tag:sport=batting cage
     sport=beachvolleyball: Tag:sport=beachvolleyball
     sport=billards: Tag:sport=billards
     sport=billiards: Tag:sport=billiards
@@ -8075,9 +8494,11 @@ en:
     sport=ice_skating: Tag:sport=ice skating
     sport=ice_stock: Tag:sport=ice stock
     sport=judo: Tag:sport=judo
+    sport=karate: Tag:sport=karate
     sport=karting: Tag:sport=karting
     sport=kitesurfing: Tag:sport=kitesurfing
     sport=korfball: Tag:sport=korfball
+    sport=lacrosse: Tag:sport=lacrosse
     sport=laser_tag: Tag:sport=laser tag
     sport=model_aerodrome: Tag:sport=model aerodrome
     sport=motocross: Tag:sport=motocross
@@ -8087,6 +8508,7 @@ en:
     sport=obstacle_course: Tag:sport=obstacle course
     sport=orienteering: Tag:sport=orienteering
     sport=paddle_tennis: Tag:sport=paddle tennis
+    sport=padel: Tag:sport=padel
     sport=paintball: Tag:sport=paintball
     sport=parachuting: Tag:sport=parachuting
     sport=paragliding: Tag:sport=paragliding
@@ -8126,6 +8548,7 @@ en:
     sport=yoga: Tag:sport=yoga
     sports=aikido: Tag:sports=aikido
     sports=athletics: Tag:sports=athletics
+    spring:type=hot: Tag:spring:type=hot
     station=light_rail: Tag:station=light rail
     station=subway: Tag:station=subway
     substation=compensation: Tag:substation=compensation
@@ -8148,6 +8571,9 @@ en:
     telecom=datacenter: Tag:telecom=datacenter
     telecom=remote_digital_terminal: Tag:telecom=remote digital terminal
     telecom=remote_terminal: Tag:telecom=remote terminal
+    telescope:type=optical: Tag:telescope:type=optical
+    telescope:type=radio: Tag:telescope:type=radio
+    tourism=accommodation: Tag:tourism=accommodation
     tourism=alpine_hut: Tag:tourism=alpine hut
     tourism=apartment: Tag:tourism=apartment
     tourism=aquarium: Tag:tourism=aquarium
@@ -8177,6 +8603,8 @@ en:
     tower:construction=dish: Tag:tower:construction=dish
     tower:construction=dome: Tag:tower:construction=dome
     tower:construction=freestanding: Tag:tower:construction=freestanding
+    tower:construction=guyed_lattice: Tag:tower:construction=guyed lattice
+    tower:construction=guyed_tube: Tag:tower:construction=guyed tube
     tower:construction=lattice: Tag:tower:construction=lattice
     tower:type: Tag:tower:type
     tower:type=bell_tower: Tag:tower:type=bell tower
@@ -8189,6 +8617,7 @@ en:
     tower:type=intake: Tag:tower:type=intake
     tower:type=lattice: Tag:tower:type=lattice
     tower:type=lighting: Tag:tower:type=lighting
+    tower:type=minaret: Tag:tower:type=minaret
     tower:type=monitoring: Tag:tower:type=monitoring
     tower:type=monument: Tag:tower:type=monument
     tower:type=observation: Tag:tower:type=observation
@@ -8211,6 +8640,7 @@ en:
     transformer=traction: Tag:transformer=traction
     transformer=yes: Tag:transformer=yes
     tunnel=culvert: Tag:tunnel=culvert
+    tunnel=flooded: Tag:tunnel=flooded
     two_sided=yes: Tag:two sided=yes
     type=AutoPASS: Tag:type=AutoPASS
     type=autopass: Tag:type=autopass
@@ -8220,10 +8650,24 @@ en:
     type=observation_spot: Tag:type=observation spot
     type=public_transport: Tag:type=public transport
     type=triangulation: Tag:type=triangulation
+    usage=distribution: Tag:usage=distribution
+    usage=facility: Tag:usage=facility
+    usage=flare_header: Tag:usage=flare header
+    usage=flowline: Tag:usage=flowline
+    usage=gathering: Tag:usage=gathering
+    usage=headrace: Tag:usage=headrace
+    usage=injection: Tag:usage=injection
+    usage=irrigation: Tag:usage=irrigation
+    usage=penstock: Tag:usage=penstock
+    usage=spillway: Tag:usage=spillway
+    usage=tailrace: Tag:usage=tailrace
+    usage=transmission: Tag:usage=transmission
+    vending: Tag:vending
     vending=SIM-cards: Tag:vending=SIM-cards
     vending=SIM_cards: Tag:vending=SIM cards
     vending=admission_tickets: Tag:vending=admission tickets
     vending=animal_feed: Tag:vending=animal feed
+    vending=art: Tag:vending=art
     vending=bicycle_tube: Tag:vending=bicycle tube
     vending=books: Tag:vending=books
     vending=bottle_return: Tag:vending=bottle return
@@ -8279,11 +8723,17 @@ en:
     wall=seawall: Tag:wall=seawall
     wall=training_wall: Tag:wall=training wall
     waste=dog_excrement: Tag:waste=dog excrement
+    water=canal: Tag:water=canal
     water=intermittent: Tag:water=intermittent
+    water=lagoon: Tag:water=lagoon
     water=lake: Tag:water=lake
     water=lock: Tag:water=lock
+    water=oxbow: Tag:water=oxbow
+    water=pond: Tag:water=pond
     water=reservoir: Tag:water=reservoir
+    water=river: Tag:water=river
     water=tidal: Tag:water=tidal
+    water=wastewater: Tag:water=wastewater
     waterway=boat_lift: Tag:waterway=boat lift
     waterway=boatyard: Tag:waterway=boatyard
     waterway=brook: Tag:waterway=brook
@@ -8304,11 +8754,13 @@ en:
     waterway=milestone: Tag:waterway=milestone
     waterway=mooring: Tag:waterway=mooring
     waterway=offshore_field: Tag:waterway=offshore field
+    waterway=pressurised: Tag:waterway=pressurised
     waterway=rapids: Tag:waterway=rapids
     waterway=river: Tag:waterway=river
     waterway=riverbank: Tag:waterway=riverbank
     waterway=sanitary_dump_station: Tag:waterway=sanitary dump station
     waterway=seaway: Tag:waterway=seaway
+    waterway=spillway: Tag:waterway=spillway
     waterway=stream: Tag:waterway=stream
     waterway=stream_end: Tag:waterway=stream end
     waterway=swept_area: Tag:waterway=swept area
@@ -8343,7 +8795,8 @@ en:
 eo:
   key:
     esperanto: Eo:Key:esperanto
-    esperanto=yes: Eo:Key:esperanto=yes
+  tag:
+    esperanto=yes: Eo:Tag:esperanto=yes
 es:
   key:
     abandoned: ES:Key:abandoned
@@ -8369,27 +8822,36 @@ es:
     addr:subdistrict: ES:Key:addr:subdistrict
     addr:suburb: ES:Key:addr:suburb
     aerialway: ES:Key:aerialway
+    aeroway: ES:Key:aeroway
     amenity: ES:Key:amenity
+    area:highway: ES:Key:area:highway
     artist_name: ES:Key:artist name
     artwork_subject: ES:Key:artwork subject
     barrier: ES:Key:barrier
     bicycle_parking: ES:Key:bicycle parking
     bicycle_road: ES:Key:bicycle road
+    branch: ES:Key:branch
     brand: ES:Key:brand
     brewery: ES:Key:brewery
     bridge:structure: ES:Key:bridge:structure
     building: ES:Key:building
     building:levels: ES:Key:building:levels
+    building:material: ES:Key:building:material
+    building:part: ES:Key:building:part
     bus_bay: ES:Key:bus bay
     busway: ES:Key:busway
     cemetery: ES:Key:cemetery
+    check_date: ES:Key:check date
     circumference: ES:Key:circumference
     clothes: ES:Key:clothes
+    club: ES:Key:club
     comment: ES:Key:comment
     construction: ES:Key:construction
     contact: ES:Key:contact
+    content: ES:Key:content
     conveying: ES:Key:conveying
     craft: ES:Key:craft
+    crossing: ES:Key:crossing
     cuisine: ES:Key:cuisine
     cutting: ES:Key:cutting
     cycleway: ES:Key:cycleway
@@ -8415,6 +8877,8 @@ es:
     footway: ES:Key:footway
     ford: ES:Key:ford
     fuel:diesel_G2: ES:Key:fuel:diesel G2
+    garden:style: ES:Key:garden:style
+    garden:type: ES:Key:garden:type
     generator:output: ES:Key:generator:output
     generator:source: ES:Key:generator:source
     geological: ES:Key:geological
@@ -8427,9 +8891,13 @@ es:
     historic: ES:Key:historic
     historic:civilization: ES:Key:historic:civilization
     image: ES:Key:image
+    imagery_used: ES:Key:imagery used
+    incline: ES:Key:incline
     indoor: ES:Key:indoor
+    industrial: ES:Key:industrial
     intermittent: ES:Key:intermittent
     is_in: ES:Key:is in
+    kerb: ES:Key:kerb
     ladder: ES:Key:ladder
     landuse: ES:Key:landuse
     lanes: ES:Key:lanes
@@ -8439,12 +8907,15 @@ es:
     leisure: ES:Key:leisure
     local_ref: ES:Key:local ref
     locale: ES:Key:locale
+    location: ES:Key:location
     man_made: ES:Key:man made
     manufacturer: ES:Key:manufacturer
     mapillary: ES:Key:mapillary
     material: ES:Key:material
     maxheight: ES:Key:maxheight
     maxspeed: ES:Key:maxspeed
+    maxspeed:advisory: ES:Key:maxspeed:advisory
+    maxspeed:practical: ES:Key:maxspeed:practical
     memorial: ES:Key:memorial
     monitoring:galileo: ES:Key:monitoring:galileo
     monitoring:glonass: ES:Key:monitoring:glonass
@@ -8485,16 +8956,22 @@ es:
     public_transport:version: ES:Key:public transport:version
     pump: ES:Key:pump
     railway: ES:Key:railway
+    railway:preserved: ES:Key:railway:preserved
+    ramp: ES:Key:ramp
     ref: ES:Key:ref
     ref:bic: ES:Key:ref:bic
     ref:color: ES:Key:ref:color
     ref:colour: ES:Key:ref:colour
     ref:isil: ES:Key:ref:isil
     religion: ES:Key:religion
+    'removed:': 'ES:Key:removed:'
     resource: ES:Key:resource
     roof:direction: ES:Key:roof:direction
+    roof:material: ES:Key:roof:material
+    roundtrip: ES:Key:roundtrip
     route: ES:Key:route
     route_master: ES:Key:route master
+    route_ref: ES:Key:route ref
     ruins: ES:Key:ruins
     'ruins:': 'ES:Key:ruins:'
     rungs: ES:Key:rungs
@@ -8516,6 +8993,7 @@ es:
     todo: ES:Key:todo
     tourism: ES:Key:tourism
     tracktype: ES:Key:tracktype
+    traffic: ES:Key:traffic
     traffic_calming: ES:Key:traffic calming
     traffic_sign: ES:Key:traffic sign
     traffic_signals: ES:Key:traffic signals
@@ -8525,6 +9003,7 @@ es:
     tunnel: ES:Key:tunnel
     turn: ES:Key:turn
     type: ES:Key:type
+    unnamed: ES:Key:unnamed
     url: ES:Key:url
     water: ES:Key:water
     waterway: ES:Key:waterway
@@ -8540,9 +9019,11 @@ es:
     aerialway=cable_car: ES:Tag:aerialway=cable car
     aerialway=gondola: ES:Tag:aerialway=gondola
     aerialway=station: ES:Tag:aerialway=station
+    aerodrome:type=regional: ES:Tag:aerodrome:type=regional
     aeroway=apron: ES:Tag:aeroway=apron
     aeroway=helipad: ES:Tag:aeroway=helipad
     aeroway=heliport: ES:Tag:aeroway=heliport
+    aeroway=navigationaid: ES:Tag:aeroway=navigationaid
     aeroway=terminal: ES:Tag:aeroway=terminal
     aeroway=windsock: ES:Tag:aeroway=windsock
     airmark=beacon: ES:Tag:airmark=beacon
@@ -8552,19 +9033,24 @@ es:
     amenity=atm: ES:Tag:amenity=atm
     amenity=bank: ES:Tag:amenity=bank
     amenity=bar: ES:Tag:amenity=bar
+    amenity=bbq: ES:Tag:amenity=bbq
     amenity=bench: ES:Tag:amenity=bench
     amenity=bicycle_parking: ES:Tag:amenity=bicycle parking
     amenity=bicycle_rental: ES:Tag:amenity=bicycle rental
     amenity=biergarten: ES:Tag:amenity=biergarten
+    amenity=boat_storage: ES:Tag:amenity=boat storage
     amenity=brothel: ES:Tag:amenity=brothel
     amenity=bus_station: ES:Tag:amenity=bus station
     amenity=cafe: ES:Tag:amenity=cafe
     amenity=car_rental: ES:Tag:amenity=car rental
     amenity=car_wash: ES:Tag:amenity=car wash
     amenity=clinic: ES:Tag:amenity=clinic
+    amenity=clock: ES:Tag:amenity=clock
     amenity=college: ES:Tag:amenity=college
     amenity=community_centre: ES:Tag:amenity=community centre
+    amenity=compressed_air: ES:Tag:amenity=compressed air
     amenity=courthouse: ES:Tag:amenity=courthouse
+    amenity=coworking_space: ES:Tag:amenity=coworking space
     amenity=crematorium: ES:Tag:amenity=crematorium
     amenity=crypt: ES:Tag:amenity=crypt
     amenity=dentist: ES:Tag:amenity=dentist
@@ -8577,6 +9063,7 @@ es:
     amenity=exhibition_centre: ES:Tag:amenity=exhibition centre
     amenity=fast_food: ES:Tag:amenity=fast food
     amenity=ferry_terminal: ES:Tag:amenity=ferry terminal
+    amenity=food_court: ES:Tag:amenity=food court
     amenity=fountain: ES:Tag:amenity=fountain
     amenity=fuel: ES:Tag:amenity=fuel
     amenity=grave_yard: ES:Tag:amenity=grave yard
@@ -8589,15 +9076,18 @@ es:
     amenity=love_hotel: ES:Tag:amenity=love hotel
     amenity=marketplace: ES:Tag:amenity=marketplace
     amenity=mobile_library: ES:Tag:amenity=mobile library
+    amenity=mortuary: ES:Tag:amenity=mortuary
     amenity=music_school: ES:Tag:amenity=music school
     amenity=nightclub: ES:Tag:amenity=nightclub
     amenity=parking: ES:Tag:amenity=parking
+    amenity=parking_entrance: ES:Tag:amenity=parking entrance
     amenity=parking_space: ES:Tag:amenity=parking space
     amenity=payment_centre: ES:Tag:amenity=payment centre
     amenity=payment_terminal: ES:Tag:amenity=payment terminal
     amenity=pharmacy: ES:Tag:amenity=pharmacy
     amenity=photo_booth: ES:Tag:amenity=photo booth
     amenity=place_of_worship: ES:Tag:amenity=place of worship
+    amenity=planetarium: ES:Tag:amenity=planetarium
     amenity=police: ES:Tag:amenity=police
     amenity=prison_camp: ES:Tag:amenity=prison camp
     amenity=pub: ES:Tag:amenity=pub
@@ -8605,10 +9095,12 @@ es:
     amenity=public_building: ES:Tag:amenity=public building
     amenity=recycling: ES:Tag:amenity=recycling
     amenity=refugee_housing: ES:Tag:amenity=refugee housing
+    amenity=research_institute: ES:Tag:amenity=research institute
     amenity=restaurant: ES:Tag:amenity=restaurant
     amenity=school: ES:Tag:amenity=school
     amenity=shelter: ES:Tag:amenity=shelter
     amenity=shower: ES:Tag:amenity=shower
+    amenity=social_facility: ES:Tag:amenity=social facility
     amenity=stripclub: ES:Tag:amenity=stripclub
     amenity=taxi: ES:Tag:amenity=taxi
     amenity=theatre: ES:Tag:amenity=theatre
@@ -8622,21 +9114,30 @@ es:
     amenity=water_point: ES:Tag:amenity=water point
     amenity=watering_place: ES:Tag:amenity=watering place
     amenity=youth_centre: ES:Tag:amenity=youth centre
+    animal=school: ES:Tag:animal=school
+    area:highway=cycleway: ES:Tag:area:highway=cycleway
+    area:highway=footway: ES:Tag:area:highway=footway
+    area:highway=path: ES:Tag:area:highway=path
+    area:highway=pedestrian: ES:Tag:area:highway=pedestrian
     barrier=block: ES:Tag:barrier=block
     barrier=bollard: ES:Tag:barrier=bollard
     barrier=cable_barrier: ES:Tag:barrier=cable barrier
     barrier=chain: ES:Tag:barrier=chain
+    barrier=city_wall: ES:Tag:barrier=city wall
+    barrier=debris: ES:Tag:barrier=debris
     barrier=entrance: ES:Tag:barrier=entrance
     barrier=fence: ES:Tag:barrier=fence
     barrier=gate: ES:Tag:barrier=gate
     barrier=guard_rail: ES:Tag:barrier=guard rail
     barrier=hedge: ES:Tag:barrier=hedge
+    barrier=height_restrictor: ES:Tag:barrier=height restrictor
     barrier=jersey_barrier: ES:Tag:barrier=jersey barrier
     barrier=kerb: ES:Tag:barrier=kerb
     barrier=lift_gate: ES:Tag:barrier=lift gate
     barrier=retaining_wall: ES:Tag:barrier=retaining wall
     barrier=rope: ES:Tag:barrier=rope
     barrier=swing_gate: ES:Tag:barrier=swing gate
+    barrier=toll_booth: ES:Tag:barrier=toll booth
     barrier=wall: ES:Tag:barrier=wall
     bicycle=use_sidepath: ES:Tag:bicycle=use sidepath
     boundary=national_park: ES:Tag:boundary=national park
@@ -8646,14 +9147,19 @@ es:
     bridge=aqueduct: ES:Tag:bridge=aqueduct
     building=apartments: ES:Tag:building=apartments
     building=barn: ES:Tag:building=barn
+    building=boathouse: ES:Tag:building=boathouse
     building=brewery: ES:Tag:building=brewery
     building=bungalow: ES:Tag:building=bungalow
+    building=carport: ES:Tag:building=carport
     building=cathedral: ES:Tag:building=cathedral
     building=chapel: ES:Tag:building=chapel
     building=church: ES:Tag:building=church
     building=civic: ES:Tag:building=civic
     building=commercial: ES:Tag:building=commercial
     building=construction: ES:Tag:building=construction
+    building=container: ES:Tag:building=container
+    building=detached: ES:Tag:building=detached
+    building=dormitory: ES:Tag:building=dormitory
     building=farm: ES:Tag:building=farm
     building=garage: ES:Tag:building=garage
     building=garages: ES:Tag:building=garages
@@ -8661,7 +9167,9 @@ es:
     building=greenhouse: ES:Tag:building=greenhouse
     building=hospital: ES:Tag:building=hospital
     building=house: ES:Tag:building=house
+    building=houseboat: ES:Tag:building=houseboat
     building=hut: ES:Tag:building=hut
+    building=industrial: ES:Tag:building=industrial
     building=kiosk: ES:Tag:building=kiosk
     building=office: ES:Tag:building=office
     building=public: ES:Tag:building=public
@@ -8670,24 +9178,45 @@ es:
     building=roof: ES:Tag:building=roof
     building=ruins: ES:Tag:building=ruins
     building=school: ES:Tag:building=school
+    building=service: ES:Tag:building=service
     building=shed: ES:Tag:building=shed
+    building=sports_hall: ES:Tag:building=sports hall
     building=sty: ES:Tag:building=sty
+    building=terrace: ES:Tag:building=terrace
     building=university: ES:Tag:building=university
     building=warehouse: ES:Tag:building=warehouse
     cemetery=grave: ES:Tag:cemetery=grave
     club=scout: ES:Tag:club=scout
+    club=sport: ES:Tag:club=sport
     craft=agricultural_engines: ES:Tag:craft=agricultural engines
     craft=bakery: ES:Tag:craft=bakery
+    craft=basket_maker: ES:Tag:craft=basket maker
     craft=beekeeper: ES:Tag:craft=beekeeper
+    craft=blacksmith: ES:Tag:craft=blacksmith
+    craft=boatbuilder: ES:Tag:craft=boatbuilder
+    craft=bookbinder: ES:Tag:craft=bookbinder
     craft=brewery: ES:Tag:craft=brewery
+    craft=builder: ES:Tag:craft=builder
+    craft=carpet_layer: ES:Tag:craft=carpet layer
+    craft=caterer: ES:Tag:craft=caterer
+    craft=chimney_sweeper: ES:Tag:craft=chimney sweeper
     craft=clockmaker: ES:Tag:craft=clockmaker
+    craft=confectionery: ES:Tag:craft=confectionery
+    craft=dental_technician: ES:Tag:craft=dental technician
+    craft=distillery: ES:Tag:craft=distillery
     craft=electrician: ES:Tag:craft=electrician
+    craft=electronics_repair: ES:Tag:craft=electronics repair
+    craft=engraver: ES:Tag:craft=engraver
+    craft=gardener: ES:Tag:craft=gardener
     craft=handicraft: ES:Tag:craft=handicraft
+    craft=hvac: ES:Tag:craft=hvac
     craft=jeweller: ES:Tag:craft=jeweller
     craft=oil_mill: ES:Tag:craft=oil mill
     craft=optician: ES:Tag:craft=optician
     craft=photographer: ES:Tag:craft=photographer
     craft=plumber: ES:Tag:craft=plumber
+    craft=pottery: ES:Tag:craft=pottery
+    craft=tailor: ES:Tag:craft=tailor
     craft=tiler: ES:Tag:craft=tiler
     craft=watchmaker: ES:Tag:craft=watchmaker
     cycleway=lane: ES:Tag:cycleway=lane
@@ -8695,6 +9224,7 @@ es:
     cycleway=track: ES:Tag:cycleway=track
     emergency=ambulance_station: ES:Tag:emergency=ambulance station
     emergency=defibrillator: ES:Tag:emergency=defibrillator
+    emergency=dry_riser: ES:Tag:emergency=dry riser
     emergency=fire_extinguisher: ES:Tag:emergency=fire extinguisher
     emergency=fire_hydrant: ES:Tag:emergency=fire hydrant
     emergency=landing_site: ES:Tag:emergency=landing site
@@ -8735,6 +9265,7 @@ es:
     highway=platform: ES:Tag:highway=platform
     highway=primary: ES:Tag:highway=primary
     highway=raceway: ES:Tag:highway=raceway
+    highway=razed: ES:Tag:highway=razed
     highway=residential: ES:Tag:highway=residential
     highway=road: ES:Tag:highway=road
     highway=secondary: ES:Tag:highway=secondary
@@ -8750,6 +9281,8 @@ es:
     highway=turning_circle: ES:Tag:highway=turning circle
     highway=turning_loop: ES:Tag:highway=turning loop
     highway=unclassified: ES:Tag:highway=unclassified
+    historic=archaeological_site: ES:Tag:historic=archaeological site
+    historic=boundary_stone: ES:Tag:historic=boundary stone
     historic=farm: ES:Tag:historic=farm
     historic=heritage: ES:Tag:historic=heritage
     historic=memorial: ES:Tag:historic=memorial
@@ -8758,11 +9291,14 @@ es:
     historic=ruins: ES:Tag:historic=ruins
     historic=tomb: ES:Tag:historic=tomb
     historic=wayside_shrine: ES:Tag:historic=wayside shrine
+    historic=wreck: ES:Tag:historic=wreck
+    industrial=factory: ES:Tag:industrial=factory
     information=board: ES:Tag:information=board
     information=guidepost: ES:Tag:information=guidepost
     information=map: ES:Tag:information=map
     information=tactile_map: ES:Tag:information=tactile map
     internet_access=wlan: ES:Tag:internet access=wlan
+    junction=circular: ES:Tag:junction=circular
     junction=roundabout: ES:Tag:junction=roundabout
     landcover=grass: ES:Tag:landcover=grass
     landcover=trees: ES:Tag:landcover=trees
@@ -8788,6 +9324,7 @@ es:
     landuse=recreation_ground: ES:Tag:landuse=recreation ground
     landuse=reservoir: ES:Tag:landuse=reservoir
     landuse=residential: ES:Tag:landuse=residential
+    landuse=retail: ES:Tag:landuse=retail
     landuse=salt_pond: ES:Tag:landuse=salt pond
     landuse=traffic_island: ES:Tag:landuse=traffic island
     landuse=village_green: ES:Tag:landuse=village green
@@ -8799,6 +9336,7 @@ es:
     leisure=bandstand: ES:Tag:leisure=bandstand
     leisure=bird_hide: ES:Tag:leisure=bird hide
     leisure=bleachers: ES:Tag:leisure=bleachers
+    leisure=bowling_alley: ES:Tag:leisure=bowling alley
     leisure=common: ES:Tag:leisure=common
     leisure=dog_park: ES:Tag:leisure=dog park
     leisure=firepit: ES:Tag:leisure=firepit
@@ -8815,6 +9353,8 @@ es:
     leisure=pitch: ES:Tag:leisure=pitch
     leisure=playground: ES:Tag:leisure=playground
     leisure=sports_centre: ES:Tag:leisure=sports centre
+    leisure=swimming_pool: ES:Tag:leisure=swimming pool
+    leisure=track: ES:Tag:leisure=track
     leisure=water_park: ES:Tag:leisure=water park
     man_made=adit: ES:Tag:man made=adit
     man_made=archimedes_screw: ES:Tag:man made=archimedes screw
@@ -8827,6 +9367,7 @@ es:
     man_made=mast: ES:Tag:man made=mast
     man_made=monitoring_station: ES:Tag:man made=monitoring station
     man_made=nesting_site: ES:Tag:man made=nesting site
+    man_made=observatory: ES:Tag:man made=observatory
     man_made=pier: ES:Tag:man made=pier
     man_made=power_wind: ES:Tag:man made=power wind
     man_made=pumping_rig: ES:Tag:man made=pumping rig
@@ -8834,6 +9375,7 @@ es:
     man_made=reservoir_covered: ES:Tag:man made=reservoir covered
     man_made=storage_tank: ES:Tag:man made=storage tank
     man_made=survey_point: ES:Tag:man made=survey point
+    man_made=telescope: ES:Tag:man made=telescope
     man_made=wastewater_plant: ES:Tag:man made=wastewater plant
     man_made=water_tap: ES:Tag:man made=water tap
     man_made=water_tower: ES:Tag:man made=water tower
@@ -8861,6 +9403,7 @@ es:
     natural=cave_entrance: ES:Tag:natural=cave entrance
     natural=cliff: ES:Tag:natural=cliff
     natural=coastline: ES:Tag:natural=coastline
+    natural=esker: ES:Tag:natural=esker
     natural=fell: ES:Tag:natural=fell
     natural=geyser: ES:Tag:natural=geyser
     natural=glacier: ES:Tag:natural=glacier
@@ -8870,6 +9413,7 @@ es:
     natural=mud: ES:Tag:natural=mud
     natural=peak: ES:Tag:natural=peak
     natural=ridge: ES:Tag:natural=ridge
+    natural=riverbed: ES:Tag:natural=riverbed
     natural=rock: ES:Tag:natural=rock
     natural=saddle: ES:Tag:natural=saddle
     natural=sand: ES:Tag:natural=sand
@@ -8886,12 +9430,16 @@ es:
     natural=water: ES:Tag:natural=water
     natural=wetland: ES:Tag:natural=wetland
     natural=wood: ES:Tag:natural=wood
+    office=administrative: ES:Tag:office=administrative
     office=advertising_agency: ES:Tag:office=advertising agency
     office=association: ES:Tag:office=association
     office=company: ES:Tag:office=company
+    office=engineer: ES:Tag:office=engineer
+    office=estate_agent: ES:Tag:office=estate agent
     office=foundation: ES:Tag:office=foundation
     office=government: ES:Tag:office=government
     office=insurance: ES:Tag:office=insurance
+    office=it: ES:Tag:office=it
     office=lawyer: ES:Tag:office=lawyer
     office=logistics: ES:Tag:office=logistics
     office=moving_company: ES:Tag:office=moving company
@@ -8899,12 +9447,16 @@ es:
     office=ngo: ES:Tag:office=ngo
     office=notary: ES:Tag:office=notary
     office=occupational_safety: ES:Tag:office=occupational safety
+    office=parish: ES:Tag:office=parish
+    office=political_party: ES:Tag:office=political party
     office=private_investigator: ES:Tag:office=private investigator
     office=quango: ES:Tag:office=quango
     office=religion: ES:Tag:office=religion
     office=research: ES:Tag:office=research
+    office=surveyor: ES:Tag:office=surveyor
     office=tax: ES:Tag:office=tax
     office=therapist: ES:Tag:office=therapist
+    office=water_utility: ES:Tag:office=water utility
     passenger=yes: ES:Tag:passenger=yes
     place=borough: ES:Tag:place=borough
     place=city: ES:Tag:place=city
@@ -8938,8 +9490,12 @@ es:
     railway=subway_entrance: ES:Tag:railway=subway entrance
     railway=yard: ES:Tag:railway=yard
     route=bus: ES:Tag:route=bus
+    route=transhumance: ES:Tag:route=transhumance
     service=crossover: ES:Tag:service=crossover
+    service=driveway: ES:Tag:service=driveway
     service=parking_aisle: ES:Tag:service=parking aisle
+    service=siding: ES:Tag:service=siding
+    shelter_type=lean_to: ES:Tag:shelter type=lean to
     shop=alcohol: ES:Tag:shop=alcohol
     shop=baby_goods: ES:Tag:shop=baby goods
     shop=bakery: ES:Tag:shop=bakery
@@ -8949,6 +9505,7 @@ es:
     shop=bookmaker: ES:Tag:shop=bookmaker
     shop=books: ES:Tag:shop=books
     shop=butcher: ES:Tag:shop=butcher
+    shop=car: ES:Tag:shop=car
     shop=car_parts: ES:Tag:shop=car parts
     shop=car_repair: ES:Tag:shop=car repair
     shop=chocolate: ES:Tag:shop=chocolate
@@ -8961,10 +9518,12 @@ es:
     shop=craft: ES:Tag:shop=craft
     shop=doityourself: ES:Tag:shop=doityourself
     shop=electrical: ES:Tag:shop=electrical
+    shop=electronics: ES:Tag:shop=electronics
     shop=florist: ES:Tag:shop=florist
     shop=funeral_directors: ES:Tag:shop=funeral directors
     shop=games: ES:Tag:shop=games
     shop=garden_centre: ES:Tag:shop=garden centre
+    shop=gas: ES:Tag:shop=gas
     shop=gift: ES:Tag:shop=gift
     shop=greengrocer: ES:Tag:shop=greengrocer
     shop=hairdresser: ES:Tag:shop=hairdresser
@@ -8974,11 +9533,14 @@ es:
     shop=ice_cream: ES:Tag:shop=ice cream
     shop=jewelry: ES:Tag:shop=jewelry
     shop=kiosk: ES:Tag:shop=kiosk
+    shop=kitchen: ES:Tag:shop=kitchen
     shop=laundry: ES:Tag:shop=laundry
     shop=locksmith: ES:Tag:shop=locksmith
     shop=lottery: ES:Tag:shop=lottery
+    shop=mobile_phone: ES:Tag:shop=mobile phone
     shop=model: ES:Tag:shop=model
     shop=motorcycle: ES:Tag:shop=motorcycle
+    shop=nuts: ES:Tag:shop=nuts
     shop=optician: ES:Tag:shop=optician
     shop=outdoor: ES:Tag:shop=outdoor
     shop=paint: ES:Tag:shop=paint
@@ -8986,10 +9548,14 @@ es:
     shop=pastry: ES:Tag:shop=pastry
     shop=pawnbroker: ES:Tag:shop=pawnbroker
     shop=pet: ES:Tag:shop=pet
+    shop=pottery: ES:Tag:shop=pottery
     shop=seafood: ES:Tag:shop=seafood
+    shop=sewing: ES:Tag:shop=sewing
     shop=shoes: ES:Tag:shop=shoes
     shop=sports: ES:Tag:shop=sports
     shop=stationery: ES:Tag:shop=stationery
+    shop=storage_rental: ES:Tag:shop=storage rental
+    shop=supermarket: ES:Tag:shop=supermarket
     shop=tattoo: ES:Tag:shop=tattoo
     shop=tea: ES:Tag:shop=tea
     shop=ticket: ES:Tag:shop=ticket
@@ -9003,13 +9569,20 @@ es:
     shop=water: ES:Tag:shop=water
     shop=window_blind: ES:Tag:shop=window blind
     social_facility=clothing_bank: ES:Tag:social facility=clothing bank
+    social_facility=food_bank: ES:Tag:social facility=food bank
+    social_facility=nursing_home: ES:Tag:social facility=nursing home
     source:geometry=Bing: ES:Tag:source:geometry=Bing
     sport=boules: ES:Tag:sport=boules
+    sport=chess: ES:Tag:sport=chess
     sport=cycling: ES:Tag:sport=cycling
     sport=equestrian: ES:Tag:sport=equestrian
     sport=futsal: ES:Tag:sport=futsal
     sport=model_aerodrome: ES:Tag:sport=model aerodrome
     sport=motocross: ES:Tag:sport=motocross
+    sport=motor: ES:Tag:sport=motor
+    sport=paddle_tennis: ES:Tag:sport=paddle tennis
+    sport=padel: ES:Tag:sport=padel
+    sport=paintball: ES:Tag:sport=paintball
     sport=shooting: ES:Tag:sport=shooting
     sport=soccer: ES:Tag:sport=soccer
     tourism=alpine_hut: ES:Tag:tourism=alpine hut
@@ -9017,8 +9590,12 @@ es:
     tourism=artwork: ES:Tag:tourism=artwork
     tourism=attraction: ES:Tag:tourism=attraction
     tourism=camp_site: ES:Tag:tourism=camp site
+    tourism=chalet: ES:Tag:tourism=chalet
+    tourism=guest_house: ES:Tag:tourism=guest house
+    tourism=hostel: ES:Tag:tourism=hostel
     tourism=hotel: ES:Tag:tourism=hotel
     tourism=motel: ES:Tag:tourism=motel
+    tourism=museum: ES:Tag:tourism=museum
     tourism=picnic_site: ES:Tag:tourism=picnic site
     tourism=trail_riding_station: ES:Tag:tourism=trail riding station
     tourism=viewpoint: ES:Tag:tourism=viewpoint
@@ -9057,11 +9634,21 @@ et:
     building=roof: Et:Tag:building=roof
 fa:
   key:
+    area: Fa:Key:area
+    bridge: Fa:Key:bridge
+    enforcement: Fa:Key:enforcement
     highway: Fa:Key:highway
     level: Fa:Key:level
-    name: FA:Key:name
+    name: Fa:Key:name
+    noexit: Fa:Key:noexit
+    source: Fa:Key:source
+    traffic_calming: Fa:Key:traffic calming
   tag:
     amenity=fountain: Fa:Tag:amenity=fountain
+    highway=footway: Fa:Tag:highway=footway
+    highway=service: Fa:Tag:highway=service
+    shop=garden_centre: Fa:Tag:shop=garden centre
+    waterway=drain: Fa:Tag:waterway=drain
 fi:
   key:
     addr: Fi:Key:addr
@@ -9165,6 +9752,7 @@ fi:
 fr:
   key:
     CEMT: FR:Key:CEMT
+    FIXME: FR:Key:FIXME
     abutters: FR:Key:abutters
     access: FR:Key:access
     addr: FR:Key:addr
@@ -9173,16 +9761,20 @@ fr:
     addr:place: FR:Key:addr:place
     addr:street: FR:Key:addr:street
     addr:suburb: FR:Key:addr:suburb
+    admin_level: FR:Key:admin level
     advertising: FR:Key:advertising
     aeroway: FR:Key:aeroway
     alt_name: FR:Key:alt name
     amenity: FR:Key:amenity
+    animal: FR:Key:animal
     animated: FR:Key:animated
     area: FR:Key:area
+    artist_name: FR:Key:artist name
     artwork_type: FR:Key:artwork type
     backrest: FR:Key:backrest
     backward: FR:Key:backward
     barrier: FR:Key:barrier
+    baseball: FR:Key:baseball
     basin: FR:Key:basin
     bench: FR:Key:bench
     bicycle: FR:Key:bicycle
@@ -9190,19 +9782,21 @@ fr:
     boat: FR:Key:boat
     bollard: FR:Key:bollard
     books: FR:Key:books
-    boundary: FR:Key:boundary
     brand: FR:Key:brand
     brewery: FR:Key:brewery
     bridge: FR:Key:bridge
     bridge:movable: FR:Key:bridge:movable
     building: FR:Key:building
+    building:flats: FR:Key:building:flats
     building:levels: FR:Key:building:levels
     building:material: FR:Key:building:material
     building:part: FR:Key:building:part
+    building:use: FR:Key:building:use
     bulk_purchase: FR:Key:bulk purchase
     bus: FR:Key:bus
     capacity: FR:Key:capacity
     capacity:disabled: FR:Key:capacity:disabled
+    check_date: FR:Key:check date
     class:bicycle:commute: FR:Key:class:bicycle:commute
     clothes: FR:Key:clothes
     club: FR:Key:club
@@ -9218,6 +9812,7 @@ fr:
     contact:vhf: FR:Key:contact:vhf
     contact:webcam: FR:Key:contact:webcam
     contact:website: FR:Key:contact:website
+    content: FR:Key:content
     covered: FR:Key:covered
     craft: FR:Key:craft
     crop: FR:Key:crop
@@ -9226,6 +9821,7 @@ fr:
     currency: FR:Key:currency
     cutting: FR:Key:cutting
     cycleway: FR:Key:cycleway
+    cycleway:lane: FR:Key:cycleway:lane
     delivery: FR:Key:delivery
     denomination: FR:Key:denomination
     description: FR:Key:description
@@ -9246,8 +9842,10 @@ fr:
     enforcement: FR:Key:enforcement
     entrance: FR:Key:entrance
     est_width: FR:Key:est width
+    fair_trade: FR:Key:fair trade
     fax: FR:Key:fax
     fee: FR:Key:fee
+    female: FR:Key:female
     fishing: FR:Key:fishing
     fixme: FR:Key:fixme
     flood_prone: FR:Key:flood prone
@@ -9256,6 +9854,7 @@ fr:
     ford: FR:Key:ford
     format: FR:Key:format
     forward: FR:Key:forward
+    fuel: FR:Key:fuel
     garden:style: FR:Key:garden:style
     garden:type: FR:Key:garden:type
     generator:method: FR:Key:generator:method
@@ -9273,6 +9872,7 @@ fr:
     generator:plant: FR:Key:generator:plant
     generator:source: FR:Key:generator:source
     geological: FR:Key:geological
+    grande_circulation: FR:Key:grande circulation
     healthcare: FR:Key:healthcare
     height: FR:Key:height
     heritage: FR:Key:heritage
@@ -9280,6 +9880,7 @@ fr:
     highway: FR:Key:highway
     historic: FR:Key:historic
     historic:civilization: FR:Key:historic:civilization
+    horse: FR:Key:horse
     hov: FR:Key:hov
     incline: FR:Key:incline
     information: FR:Key:information
@@ -9288,6 +9889,7 @@ fr:
     intermittent: FR:Key:intermittent
     junction: FR:Key:junction
     kindergarten:FR: FR:Key:kindergarten:FR
+    ladder: FR:Key:ladder
     landuse: FR:Key:landuse
     lanes: FR:Key:lanes
     layer: FR:Key:layer
@@ -9302,6 +9904,7 @@ fr:
     lock: FR:Key:lock
     lock_name: FR:Key:lock name
     lock_ref: FR:Key:lock ref
+    male: FR:Key:male
     man_made: FR:Key:man made
     manhole: FR:Key:manhole
     manufacturer: FR:Key:manufacturer
@@ -9317,15 +9920,18 @@ fr:
     maxwidth: FR:Key:maxwidth
     memorial: FR:Key:memorial
     message: FR:Key:message
+    microbrewery: FR:Key:microbrewery
     military: FR:Key:military
     min_age: FR:Key:min age
     minage: FR:Key:minage
     monitoring:meteoric_activity: FR:Key:monitoring:meteoric activity
     mooring: FR:Key:mooring
     motorboat: FR:Key:motorboat
+    motorcycle:parking: FR:Key:motorcycle:parking
     mountain_pass: FR:Key:mountain pass
     mtb:scale: FR:Key:mtb:scale
     name: FR:Key:name
+    name:oc: FR:Key:name:oc
     nat_name: FR:Key:nat name
     natural: FR:Key:natural
     network: FR:Key:network
@@ -9337,9 +9943,12 @@ fr:
     old_name: FR:Key:old name
     oneway: FR:Key:oneway
     oneway:bicycle: FR:Key:oneway:bicycle
+    openfire: FR:Key:openfire
+    opening_date: FR:Key:opening date
     opening_hours: FR:Key:opening hours
     operator: FR:Key:operator
     operator:type: FR:Key:operator:type
+    organic: FR:Key:organic
     outdoor_seating: FR:Key:outdoor seating
     overtaking: FR:Key:overtaking
     parking: FR:Key:parking
@@ -9410,6 +10019,7 @@ fr:
     smoothness: FR:Key:smoothness
     social_facility: FR:Key:social facility
     source: FR:Key:source
+    source:date: FR:Key:source:date
     source:maxspeed: FR:Key:source:maxspeed
     source:maxwidth: FR:Key:source:maxwidth
     species: FR:Key:species
@@ -9418,9 +10028,12 @@ fr:
     step:condition: FR:Key:step:condition
     step:contrast: FR:Key:step:contrast
     step_count: FR:Key:step count
+    support: FR:Key:support
     surface: FR:Key:surface
     surveillance: FR:Key:surveillance
+    survey:date: FR:Key:survey:date
     switch: FR:Key:switch
+    symbol: FR:Key:symbol
     tactile_paving: FR:Key:tactile paving
     takeaway: FR:Key:takeaway
     tidal: FR:Key:tidal
@@ -9432,6 +10045,7 @@ fr:
     traffic_calming: FR:Key:traffic calming
     traffic_sign: FR:Key:traffic sign
     traffic_signals:direction: FR:Key:traffic signals:direction
+    traffic_signals:sound: FR:Key:traffic signals:sound
     trail_visibility: FR:Key:trail visibility
     trees: FR:Key:trees
     tunnel: FR:Key:tunnel
@@ -9440,6 +10054,7 @@ fr:
     turning_radius: FR:Key:turning radius
     type: FR:Key:type
     type:FR:FINESS: FR:Key:type:FR:FINESS
+    unisex: FR:Key:unisex
     url: FR:Key:url
     usage: FR:Key:usage
     visibility: FR:Key:visibility
@@ -9454,11 +10069,14 @@ fr:
     wikidata: FR:Key:wikidata
     wikimedia_commons: FR:Key:wikimedia commons
     wikipedia: FR:Key:wikipedia
+    windings: FR:Key:windings
     xmas:feature: FR:Key:xmas:feature
   tag:
     Bascule_publique: FR:Tag:Bascule publique
     FIXME=Position_estimated: FR:Tag:FIXME=Position estimated
     abandoned=yes: FR:Tag:abandoned=yes
+    access=designated: FR:Tag:access=designated
+    access=no: FR:Tag:access=no
     access=private: FR:Tag:access=private
     advertising=billboard: FR:Tag:advertising=billboard
     advertising=board: FR:Tag:advertising=board
@@ -9477,10 +10095,15 @@ fr:
     amenity=arts_centre: FR:Tag:amenity=arts centre
     amenity=atm: FR:Tag:amenity=atm
     amenity=bank: FR:Tag:amenity=bank
+    amenity=bar: FR:Tag:amenity=bar
+    amenity=bbq: FR:Tag:amenity=bbq
     amenity=bench: FR:Tag:amenity=bench
     amenity=bicycle_parking: FR:Tag:amenity=bicycle parking
     amenity=bicycle_rental: FR:Tag:amenity=bicycle rental
+    amenity=bicycle_repair_station: FR:Tag:amenity=bicycle repair station
     amenity=biergarten: FR:Tag:amenity=biergarten
+    amenity=brothel: FR:Tag:amenity=brothel
+    amenity=bus_station: FR:Tag:amenity=bus station
     amenity=cafe: FR:Tag:amenity=cafe
     amenity=car_rental: FR:Tag:amenity=car rental
     amenity=car_sharing: FR:Tag:amenity=car sharing
@@ -9501,20 +10124,25 @@ fr:
     amenity=driving_school: FR:Tag:amenity=driving school
     amenity=embassy: FR:Tag:amenity=embassy
     amenity=fast_food: FR:Tag:amenity=fast food
+    amenity=feeding_place: FR:Tag:amenity=feeding place
     amenity=fire_station: FR:Tag:amenity=fire station
     amenity=food_court: FR:Tag:amenity=food court
     amenity=fountain: FR:Tag:amenity=fountain
     amenity=fuel: FR:Tag:amenity=fuel
     amenity=grave_yard: FR:Tag:amenity=grave yard
+    amenity=hookah_lounge: FR:Tag:amenity=hookah lounge
     amenity=hospital: FR:Tag:amenity=hospital
     amenity=hunting_stand: FR:Tag:amenity=hunting stand
     amenity=kindergarten: FR:Tag:amenity=kindergarten
+    amenity=lavoir: FR:Tag:amenity=lavoir
     amenity=letter_box: FR:Tag:amenity=letter box
     amenity=library: FR:Tag:amenity=library
+    amenity=love_hotel: FR:Tag:amenity=love hotel
     amenity=marketplace: FR:Tag:amenity=marketplace
     amenity=motorcycle_parking: FR:Tag:amenity=motorcycle parking
     amenity=nightclub: FR:Tag:amenity=nightclub
     amenity=parking: FR:Tag:amenity=parking
+    amenity=parking_entrance: FR:Tag:amenity=parking entrance
     amenity=parking_space: FR:Tag:amenity=parking space
     amenity=pharmacy: FR:Tag:amenity=pharmacy
     amenity=photo_booth: FR:Tag:amenity=photo booth
@@ -9533,6 +10161,8 @@ fr:
     amenity=shelter: FR:Tag:amenity=shelter
     amenity=social_centre: FR:Tag:amenity=social centre
     amenity=social_facility: FR:Tag:amenity=social facility
+    amenity=stripclub: FR:Tag:amenity=stripclub
+    amenity=swingerclub: FR:Tag:amenity=swingerclub
     amenity=taxi: FR:Tag:amenity=taxi
     amenity=telephone: FR:Tag:amenity=telephone
     amenity=theatre: FR:Tag:amenity=theatre
@@ -9540,26 +10170,42 @@ fr:
     amenity=townhall: FR:Tag:amenity=townhall
     amenity=university: FR:Tag:amenity=university
     amenity=vacuum_cleaner: FR:Tag:amenity=vacuum cleaner
+    amenity=vehicle_inspection: FR:Tag:amenity=vehicle inspection
     amenity=vending_machine: FR:Tag:amenity=vending machine
     amenity=veterinary: FR:Tag:amenity=veterinary
     amenity=waste_basket: FR:Tag:amenity=waste basket
     amenity=waste_disposal: FR:Tag:amenity=waste disposal
+    amenity=water_point: FR:Tag:amenity=water point
+    amenity=watering_place: FR:Tag:amenity=watering place
     amenity=weighbridge: FR:Tag:amenity=weighbridge
+    animal=horse_walker: FR:Tag:animal=horse walker
+    atm=yes: FR:Tag:atm=yes
     barrier=block: FR:Tag:barrier=block
     barrier=bollard: FR:Tag:barrier=bollard
     barrier=city_wall: FR:Tag:barrier=city wall
     barrier=cycle_barrier: FR:Tag:barrier=cycle barrier
+    barrier=entrance: FR:Tag:barrier=entrance
+    barrier=fence: FR:Tag:barrier=fence
     barrier=gate: FR:Tag:barrier=gate
+    barrier=guard_rail: FR:Tag:barrier=guard rail
     barrier=hedge: FR:Tag:barrier=hedge
+    barrier=hedge_bank: FR:Tag:barrier=hedge bank
+    barrier=horse_stile: FR:Tag:barrier=horse stile
     barrier=lift_gate: FR:Tag:barrier=lift gate
     barrier=retaining_wall: FR:Tag:barrier=retaining wall
+    barrier=rope: FR:Tag:barrier=rope
     barrier=select_acces: FR:Tag:barrier=select acces
     barrier=wall: FR:Tag:barrier=wall
+    bicycle=use_sidepath: FR:Tag:bicycle=use sidepath
+    boundary=administrative: FR:Tag:boundary=administrative
     brand=Trilib': FR:Tag:brand=Trilib'
     building=apartments: FR:Tag:building=apartments
     building=barn: FR:Tag:building=barn
     building=cabin: FR:Tag:building=cabin
+    building=chapel: FR:Tag:building=chapel
+    building=church: FR:Tag:building=church
     building=commercial: FR:Tag:building=commercial
+    building=construction: FR:Tag:building=construction
     building=farm: FR:Tag:building=farm
     building=garage: FR:Tag:building=garage
     building=garages: FR:Tag:building=garages
@@ -9571,6 +10217,7 @@ fr:
     building=kiosk: FR:Tag:building=kiosk
     building=public: FR:Tag:building=public
     building=residential: FR:Tag:building=residential
+    building=riding_hall: FR:Tag:building=riding hall
     building=roof: FR:Tag:building=roof
     building=ruins: FR:Tag:building=ruins
     building=shed: FR:Tag:building=shed
@@ -9581,12 +10228,31 @@ fr:
     building=warehouse: FR:Tag:building=warehouse
     club=sport: FR:Tag:club=sport
     construction=yes: FR:Tag:construction=yes
+    craft=agricultural_engines: FR:Tag:craft=agricultural engines
+    craft=bakery: FR:Tag:craft=bakery
+    craft=basket_maker: FR:Tag:craft=basket maker
     craft=beekeeper: FR:Tag:craft=beekeeper
     craft=brewery: FR:Tag:craft=brewery
     craft=builder: FR:Tag:craft=builder
     craft=cabinet_maker: FR:Tag:craft=cabinet maker
     craft=car_repair: FR:Tag:craft=car repair
+    craft=carpenter: FR:Tag:craft=carpenter
+    craft=carpet_layer: FR:Tag:craft=carpet layer
+    craft=caterer: FR:Tag:craft=caterer
+    craft=chimney_sweeper: FR:Tag:craft=chimney sweeper
+    craft=distillery: FR:Tag:craft=distillery
+    craft=electrician: FR:Tag:craft=electrician
+    craft=floorer: FR:Tag:craft=floorer
+    craft=gardener: FR:Tag:craft=gardener
+    craft=handicraft: FR:Tag:craft=handicraft
+    craft=hvac: FR:Tag:craft=hvac
+    craft=insulation: FR:Tag:craft=insulation
+    craft=jeweller: FR:Tag:craft=jeweller
     craft=joiner: FR:Tag:craft=joiner
+    craft=key_cutter: FR:Tag:craft=key cutter
+    craft=locksmith: FR:Tag:craft=locksmith
+    craft=metal_construction: FR:Tag:craft=metal construction
+    craft=photographer: FR:Tag:craft=photographer
     cuisine=coffee_shop: FR:Tag:cuisine=coffee shop
     cycleway=asl: FR:Tag:cycleway=asl
     cycleway=bike_box: FR:Tag:cycleway=bike box
@@ -9617,6 +10283,7 @@ fr:
     generator:source=solar: FR:Tag:generator:source=solar
     generator:source=tidal: FR:Tag:generator:source=tidal
     generator:source=wind: FR:Tag:generator:source=wind
+    healthcare=laboratory: FR:Tag:healthcare=laboratory
     highway=bridleway: FR:Tag:highway=bridleway
     highway=bus_guideway: FR:Tag:highway=bus guideway
     highway=bus_stop: FR:Tag:highway=bus stop
@@ -9648,6 +10315,7 @@ fr:
     highway=stop: FR:Tag:highway=stop
     highway=tertiary: FR:Tag:highway=tertiary
     highway=track: FR:Tag:highway=track
+    highway=traffic_mirror: FR:Tag:highway=traffic mirror
     highway=traffic_signals: FR:Tag:highway=traffic signals
     highway=trunk: FR:Tag:highway=trunk
     highway=turning_circle: FR:Tag:highway=turning circle
@@ -9681,8 +10349,12 @@ fr:
     historic=wayside_shrine: FR:Tag:historic=wayside shrine
     historic=wreck: FR:Tag:historic=wreck
     industrial=brewery: FR:Tag:industrial=brewery
+    information=guidepost: FR:Tag:information=guidepost
+    information=map: FR:Tag:information=map
     junction=roundabout: FR:Tag:junction=roundabout
+    landcover=grass: FR:Tag:landcover=grass
     landuse=allotments: FR:Tag:landuse=allotments
+    landuse=animal_keeping: FR:Tag:landuse=animal keeping
     landuse=basin: FR:Tag:landuse=basin
     landuse=cemetery: FR:Tag:landuse=cemetery
     landuse=commercial: FR:Tag:landuse=commercial
@@ -9695,6 +10367,7 @@ fr:
     landuse=garages: FR:Tag:landuse=garages
     landuse=grass: FR:Tag:landuse=grass
     landuse=greenhouse_horticulture: FR:Tag:landuse=greenhouse horticulture
+    landuse=industrial: FR:Tag:landuse=industrial
     landuse=meadow: FR:Tag:landuse=meadow
     landuse=orchard: FR:Tag:landuse=orchard
     landuse=plant_nursery: FR:Tag:landuse=plant nursery
@@ -9705,7 +10378,10 @@ fr:
     landuse=salt_pond: FR:Tag:landuse=salt pond
     landuse=village_green: FR:Tag:landuse=village green
     leaf_cycle=deciduous: FR:Tag:leaf cycle=deciduous
+    leisure=bandstand: FR:Tag:leisure=bandstand
     leisure=dog_park: FR:Tag:leisure=dog park
+    leisure=escape_game: FR:Tag:leisure=escape game
+    leisure=firepit: FR:Tag:leisure=firepit
     leisure=fishing: FR:Tag:leisure=fishing
     leisure=fitness_centre: FR:Tag:leisure=fitness centre
     leisure=garden: FR:Tag:leisure=garden
@@ -9726,14 +10402,18 @@ fr:
     leisure=track: FR:Tag:leisure=track
     leisure=water_park: FR:Tag:leisure=water park
     man_made=adit: FR:Tag:man made=adit
+    man_made=carpet_hanger: FR:Tag:man made=carpet hanger
     man_made=cutline: FR:Tag:man made=cutline
     man_made=dovecote: FR:Tag:man made=dovecote
     man_made=flagpole: FR:Tag:man made=flagpole
+    man_made=insect_hotel: FR:Tag:man made=insect hotel
     man_made=kiln: FR:Tag:man made=kiln
     man_made=lighthouse: FR:Tag:man made=lighthouse
+    man_made=mast: FR:Tag:man made=mast
     man_made=mineshaft: FR:Tag:man made=mineshaft
     man_made=monitoring_station: FR:Tag:man made=monitoring station
     man_made=pier: FR:Tag:man made=pier
+    man_made=reservoir_covered: FR:Tag:man made=reservoir covered
     man_made=street_cabinet: FR:Tag:man made=street cabinet
     man_made=surveillance: FR:Tag:man made=surveillance
     man_made=survey_point: FR:Tag:man made=survey point
@@ -9746,9 +10426,11 @@ fr:
     man_made=windmill: FR:Tag:man made=windmill
     man_made=windpump: FR:Tag:man made=windpump
     medical=aed: FR:Tag:medical=aed
+    memorial=plaque: FR:Tag:memorial=plaque
     microbrewery=yes: FR:Tag:microbrewery=yes
     military=bunker: FR:Tag:military=bunker
     natural=bare_rock: FR:Tag:natural=bare rock
+    natural=beach: FR:Tag:natural=beach
     natural=cave_entrance: FR:Tag:natural=cave entrance
     natural=cliff: FR:Tag:natural=cliff
     natural=coastline: FR:Tag:natural=coastline
@@ -9767,8 +10449,13 @@ fr:
     natural=volcano: FR:Tag:natural=volcano
     natural=water: FR:Tag:natural=water
     natural=wetland: FR:Tag:natural=wetland
+    office=association: FR:Tag:office=association
+    office=company: FR:Tag:office=company
     office=employment_agency: FR:Tag:office=employment agency
     office=estate_agent: FR:Tag:office=estate agent
+    office=foundation: FR:Tag:office=foundation
+    office=government: FR:Tag:office=government
+    office=insurance: FR:Tag:office=insurance
     office=lawyer: FR:Tag:office=lawyer
     office=ngo: FR:Tag:office=ngo
     place=city: FR:Tag:place=city
@@ -9801,6 +10488,8 @@ fr:
     power=transformer: FR:Tag:power=transformer
     public_transport=platform: FR:Tag:public transport=platform
     public_transport=station: FR:Tag:public transport=station
+    public_transport=stop_area: FR:Tag:public transport=stop area
+    public_transport=stop_position: FR:Tag:public transport=stop position
     pump=powered: FR:Tag:pump=powered
     railway=crossing: FR:Tag:railway=crossing
     railway=disused: FR:Tag:railway=disused
@@ -9827,12 +10516,18 @@ fr:
     religion=sikh: FR:Tag:religion=sikh
     religion=taoist: FR:Tag:religion=taoist
     religion=zoroastrian: FR:Tag:religion=zoroastrian
+    route=bicycle: FR:Tag:route=bicycle
     route=coach: FR:Tag:route=coach
+    route=fitness_trail: FR:Tag:route=fitness trail
     route=piste: FR:Tag:route=piste
+    route=railway: FR:Tag:route=railway
+    route=transhumance: FR:Tag:route=transhumance
     service=alley: FR:Tag:service=alley
     service=driveway: FR:Tag:service=driveway
     service=parking_aisle: FR:Tag:service=parking aisle
     shelter_type=basic_hut: FR:Tag:shelter type=basic hut
+    shelter_type=lean_to: FR:Tag:shelter type=lean to
+    shop=agrarian: FR:Tag:shop=agrarian
     shop=alcohol: FR:Tag:shop=alcohol
     shop=anime: FR:Tag:shop=anime
     shop=baby_goods: FR:Tag:shop=baby goods
@@ -9860,8 +10555,11 @@ fr:
     shop=department_store: FR:Tag:shop=department store
     shop=dive: FR:Tag:shop=dive
     shop=doityourself: FR:Tag:shop=doityourself
+    shop=dry_cleaning: FR:Tag:shop=dry cleaning
     shop=electronics: FR:Tag:shop=electronics
+    shop=erotic: FR:Tag:shop=erotic
     shop=farm: FR:Tag:shop=farm
+    shop=fashion: FR:Tag:shop=fashion
     shop=florist: FR:Tag:shop=florist
     shop=frame: FR:Tag:shop=frame
     shop=frozen_food: FR:Tag:shop=frozen food
@@ -9874,6 +10572,7 @@ fr:
     shop=hairdresser: FR:Tag:shop=hairdresser
     shop=hardware: FR:Tag:shop=hardware
     shop=hunting: FR:Tag:shop=hunting
+    shop=interior_decoration: FR:Tag:shop=interior decoration
     shop=jewelry: FR:Tag:shop=jewelry
     shop=kiosk: FR:Tag:shop=kiosk
     shop=kitchen: FR:Tag:shop=kitchen
@@ -9883,21 +10582,28 @@ fr:
     shop=motorcycle: FR:Tag:shop=motorcycle
     shop=newsagent: FR:Tag:shop=newsagent
     shop=optician: FR:Tag:shop=optician
+    shop=outdoor: FR:Tag:shop=outdoor
     shop=pastry: FR:Tag:shop=pastry
     shop=pet: FR:Tag:shop=pet
     shop=pharmacy: FR:Tag:shop=pharmacy
     shop=photo: FR:Tag:shop=photo
     shop=second_hand: FR:Tag:shop=second hand
+    shop=sewing: FR:Tag:shop=sewing
     shop=shoes: FR:Tag:shop=shoes
     shop=supermarket: FR:Tag:shop=supermarket
     shop=ticket: FR:Tag:shop=ticket
     shop=toys: FR:Tag:shop=toys
     shop=trade: FR:Tag:shop=trade
+    shop=vacant: FR:Tag:shop=vacant
     shop=video: FR:Tag:shop=video
+    shop=video_games: FR:Tag:shop=video games
     sport=8pin: FR:Tag:sport=8pin
+    sport=archery: FR:Tag:sport=archery
     sport=boules: FR:Tag:sport=boules
     sport=climbing: FR:Tag:sport=climbing
+    sport=equestrian: FR:Tag:sport=equestrian
     sport=free_flying: FR:Tag:sport=free flying
+    sport=horse_racing: FR:Tag:sport=horse racing
     sport=shooting: FR:Tag:sport=shooting
     sport=soccer: FR:Tag:sport=soccer
     switch=circuit_breaker: FR:Tag:switch=circuit breaker
@@ -9922,16 +10628,37 @@ fr:
     tourism=museum: FR:Tag:tourism=museum
     tourism=picnic_site: FR:Tag:tourism=picnic site
     tourism=theme_park: FR:Tag:tourism=theme park
+    tourism=trail_riding_station: FR:Tag:tourism=trail riding station
     tourism=viewpoint: FR:Tag:tourism=viewpoint
     tourism=wilderness_hut: FR:Tag:tourism=wilderness hut
     tourism=zoo: FR:Tag:tourism=zoo
+    tower:type=communication: FR:Tag:tower:type=communication
     traffic_sign=city_limit: FR:Tag:traffic sign=city limit
     tunnel=culvert: FR:Tag:tunnel=culvert
+    tunnel=flooded: FR:Tag:tunnel=flooded
+    usage=headrace: FR:Tag:usage=headrace
+    usage=irrigation: FR:Tag:usage=irrigation
+    usage=penstock: FR:Tag:usage=penstock
+    usage=spillway: FR:Tag:usage=spillway
+    usage=tailrace: FR:Tag:usage=tailrace
+    vending=bread: FR:Tag:vending=bread
     vending=chemist: FR:Tag:vending=chemist
+    vending=coffee: FR:Tag:vending=coffee
     vending=condoms: FR:Tag:vending=condoms
+    vending=drinks: FR:Tag:vending=drinks
+    vending=electronics: FR:Tag:vending=electronics
     vending=excrement_bags: FR:Tag:vending=excrement bags
+    vending=fishing_bait: FR:Tag:vending=fishing bait
+    vending=flowers: FR:Tag:vending=flowers
+    vending=food: FR:Tag:vending=food
+    vending=ice_cream: FR:Tag:vending=ice cream
+    vending=milk: FR:Tag:vending=milk
     vending=parcel_pickup: FR:Tag:vending=parcel pickup
+    vending=parking_tickets: FR:Tag:vending=parking tickets
+    vending=sweets: FR:Tag:vending=sweets
+    vending=water: FR:Tag:vending=water
     wall=no: FR:Tag:wall=no
+    water=reservoir: FR:Tag:water=reservoir
     waterway=boatyard: FR:Tag:waterway=boatyard
     waterway=canal: FR:Tag:waterway=canal
     waterway=dam: FR:Tag:waterway=dam
@@ -9940,6 +10667,7 @@ fr:
     waterway=drain: FR:Tag:waterway=drain
     waterway=fish_pass: FR:Tag:waterway=fish pass
     waterway=lock_gate: FR:Tag:waterway=lock gate
+    waterway=pressurised: FR:Tag:waterway=pressurised
     waterway=river: FR:Tag:waterway=river
     waterway=riverbank: FR:Tag:waterway=riverbank
     waterway=stream: FR:Tag:waterway=stream
@@ -9949,9 +10677,20 @@ fr:
     wetland=swamp: FR:Tag:wetland=swamp
 gl:
   key:
+    imagery_used: Gl:Key:imagery used
+    locale: Gl:Key:locale
+    name: Gl:Key:name
+    route: Gl:Key:route
+    sport: Gl:Key:sport
+    tourism: Gl:Key:tourism
+    tunnel: Gl:Key:tunnel
     wheelchair: Gl:Key:wheelchair
   tag:
     amenity=recycling: Gl:Tag:amenity=recycling
+    railway=tram: Gl:Tag:railway=tram
+    social_facility=nursing_home: Gl:Tag:social facility=nursing home
+    sport=padel: Gl:Tag:sport=padel
+    waterway=dock: Gl:Tag:waterway=dock
 hr:
   key:
     amenity: Hr:Key:amenity
@@ -9973,6 +10712,7 @@ ht:
     pump: Ht:Key:pump
 hu:
   key:
+    HU:ed_direction: Hu:Key:HU:ed direction
     HU:hu-go:length: Hu:Key:HU:hu-go:length
     HU:hu-go:milestone: Hu:Key:HU:hu-go:milestone
     HU:hu-go:road: Hu:Key:HU:hu-go:road
@@ -10010,18 +10750,24 @@ hu:
     wood: Hu:Key:wood
   tag:
     boundary=administrative: Hu:Tag:boundary=administrative
+    highway=street_lamp: Hu:Tag:highway=street lamp
     natural=wallow: Hu:Tag:natural=wallow
     railway=level_crossing: Hu:Tag:railway=level crossing
 id:
   tag:
     highway=track: Id:Tag:highway=track
+    shop=pawnbroker: Id:Tag:shop=pawnbroker
 it:
   key:
     abutters: IT:Key:abutters
     access: IT:Key:access
     addr: IT:Key:addr
+    addr:housenumber: IT:Key:addr:housenumber
+    addr:postcode: IT:Key:addr:postcode
+    addr:street: IT:Key:addr:street
     aerialway: IT:Key:aerialway
     aeroway: IT:Key:aeroway
+    alt_name: IT:Key:alt name
     amenity: IT:Key:amenity
     artwork_type: IT:Key:artwork type
     backrest: IT:Key:backrest
@@ -10030,6 +10776,7 @@ it:
     bicycle_parking: IT:Key:bicycle parking
     boundary: IT:Key:boundary
     bridge: IT:Key:bridge
+    bridge:structure: IT:Key:bridge:structure
     building: IT:Key:building
     building:levels: IT:Key:building:levels
     cables: IT:Key:cables
@@ -10075,6 +10822,13 @@ it:
     maxwidth: IT:Key:maxwidth
     military: IT:Key:military
     mooring: IT:Key:mooring
+    motorcycle:clothes: IT:Key:motorcycle:clothes
+    motorcycle:parts: IT:Key:motorcycle:parts
+    motorcycle:rental: IT:Key:motorcycle:rental
+    motorcycle:repair: IT:Key:motorcycle:repair
+    motorcycle:sales: IT:Key:motorcycle:sales
+    motorcycle:type: IT:Key:motorcycle:type
+    motorcycle:tyres: IT:Key:motorcycle:tyres
     mountain_pass: IT:Key:mountain pass
     mtb:scale: IT:Key:mtb:scale
     mtb:scale:imba: IT:Key:mtb:scale:imba
@@ -10083,6 +10837,7 @@ it:
     noexit: IT:Key:noexit
     note: IT:Key:note
     office: IT:Key:office
+    oneway: IT:Key:oneway
     opening_hours: IT:Key:opening hours
     operator: IT:Key:operator
     organic: IT:Key:organic
@@ -10096,18 +10851,27 @@ it:
     proposed: IT:Key:proposed
     railway: IT:Key:railway
     ref: IT:Key:ref
+    ref:mise: IT:Key:ref:mise
     ref:vatin: IT:Key:ref:vatin
     religion: IT:Key:religion
     residential: IT:Key:residential
     route: IT:Key:route
     sac_scale: IT:Key:sac scale
+    second_hand: IT:Key:second hand
     service: IT:Key:service
+    service:bicycle:diy: IT:Key:service:bicycle:diy
+    service:bicycle:rental: IT:Key:service:bicycle:rental
+    service:bicycle:repair: IT:Key:service:bicycle:repair
+    service:bicycle:retail: IT:Key:service:bicycle:retail
+    service:bicycle:second_hand: IT:Key:service:bicycle:second hand
     shop: IT:Key:shop
+    sidewalk: IT:Key:sidewalk
     smoothness: IT:Key:smoothness
     sport: IT:Key:sport
     stop: IT:Key:stop
     surface: IT:Key:surface
     surveillance: IT:Key:surveillance
+    tank_trap: IT:Key:tank trap
     tourism: IT:Key:tourism
     tracktype: IT:Key:tracktype
     traffic_calming: IT:Key:traffic calming
@@ -10122,10 +10886,28 @@ it:
     wires: IT:Key:wires
     zone:maxspeed: IT:Key:zone:maxspeed
   tag:
+    aeroway=aerodrome: IT:Tag:aeroway=aerodrome
+    aeroway=airstrip: IT:Tag:aeroway=airstrip
+    aeroway=apron: IT:Tag:aeroway=apron
+    aeroway=gate: IT:Tag:aeroway=gate
+    aeroway=hangar: IT:Tag:aeroway=hangar
+    aeroway=helipad: IT:Tag:aeroway=helipad
+    aeroway=heliport: IT:Tag:aeroway=heliport
+    aeroway=holding_position: IT:Tag:aeroway=holding position
+    aeroway=navigationaid: IT:Tag:aeroway=navigationaid
+    aeroway=parking_position: IT:Tag:aeroway=parking position
+    aeroway=runway: IT:Tag:aeroway=runway
+    aeroway=spaceport: IT:Tag:aeroway=spaceport
+    aeroway=taxilane: IT:Tag:aeroway=taxilane
+    aeroway=taxiway: IT:Tag:aeroway=taxiway
+    aeroway=terminal: IT:Tag:aeroway=terminal
+    aeroway=windsock: IT:Tag:aeroway=windsock
     amenity=animal_boarding: IT:Tag:amenity=animal boarding
     amenity=animal_breeding: IT:Tag:amenity=animal breeding
     amenity=animal_shelter: IT:Tag:amenity=animal shelter
+    amenity=bank: IT:Tag:amenity=bank
     amenity=bar: IT:Tag:amenity=bar
+    amenity=bbq: IT:Tag:amenity=bbq
     amenity=bench: IT:Tag:amenity=bench
     amenity=bicycle_rental: IT:Tag:amenity=bicycle rental
     amenity=cafe: IT:Tag:amenity=cafe
     amenity=spa: IT:Tag:amenity=spa
     amenity=university: IT:Tag:amenity=university
     amenity=waste_basket: IT:Tag:amenity=waste basket
+    barrier=block: IT:Tag:barrier=block
+    barrier=bollard: IT:Tag:barrier=bollard
+    barrier=border_control: IT:Tag:barrier=border control
+    barrier=bump_gate: IT:Tag:barrier=bump gate
+    barrier=cable_barrier: IT:Tag:barrier=cable barrier
+    barrier=city_wall: IT:Tag:barrier=city wall
     barrier=ditch: IT:Tag:barrier=ditch
     barrier=fence: IT:Tag:barrier=fence
+    barrier=guard_rail: IT:Tag:barrier=guard rail
+    barrier=handrail: IT:Tag:barrier=handrail
+    barrier=hedge: IT:Tag:barrier=hedge
     barrier=jersey_barrier: IT:Tag:barrier=jersey barrier
+    barrier=kerb: IT:Tag:barrier=kerb
     barrier=retaining_wall: IT:Tag:barrier=retaining wall
+    barrier=tank_trap: IT:Tag:barrier=tank trap
     barrier=toll_booth: IT:Tag:barrier=toll booth
+    barrier=wall: IT:Tag:barrier=wall
     building=residential: IT:Tag:building=residential
     building=train_station: IT:Tag:building=train station
+    craft=agricultural_engines: IT:Tag:craft=agricultural engines
+    craft=bakery: IT:Tag:craft=bakery
+    craft=basket_maker: IT:Tag:craft=basket maker
+    craft=beekeeper: IT:Tag:craft=beekeeper
+    craft=blacksmith: IT:Tag:craft=blacksmith
+    craft=boatbuilder: IT:Tag:craft=boatbuilder
+    craft=bookbinder: IT:Tag:craft=bookbinder
+    craft=brewery: IT:Tag:craft=brewery
+    craft=builder: IT:Tag:craft=builder
+    craft=cabinet_maker: IT:Tag:craft=cabinet maker
+    craft=car_repair: IT:Tag:craft=car repair
+    craft=carpenter: IT:Tag:craft=carpenter
+    craft=carpet_layer: IT:Tag:craft=carpet layer
+    craft=caterer: IT:Tag:craft=caterer
+    craft=chimney_sweeper: IT:Tag:craft=chimney sweeper
+    craft=clockmaker: IT:Tag:craft=clockmaker
+    craft=confectionery: IT:Tag:craft=confectionery
+    craft=cooper: IT:Tag:craft=cooper
+    craft=dental_technician: IT:Tag:craft=dental technician
+    craft=distillery: IT:Tag:craft=distillery
+    craft=dressmaker: IT:Tag:craft=dressmaker
+    craft=electrician: IT:Tag:craft=electrician
+    craft=electronics_repair: IT:Tag:craft=electronics repair
+    craft=embroiderer: IT:Tag:craft=embroiderer
+    craft=engraver: IT:Tag:craft=engraver
+    craft=floorer: IT:Tag:craft=floorer
+    craft=gardener: IT:Tag:craft=gardener
+    craft=glaziery: IT:Tag:craft=glaziery
+    craft=grinding_mill: IT:Tag:craft=grinding mill
+    craft=handicraft: IT:Tag:craft=handicraft
+    craft=hvac: IT:Tag:craft=hvac
+    craft=insulation: IT:Tag:craft=insulation
+    craft=jeweller: IT:Tag:craft=jeweller
+    craft=joiner: IT:Tag:craft=joiner
+    craft=key_cutter: IT:Tag:craft=key cutter
+    craft=locksmith: IT:Tag:craft=locksmith
+    craft=metal_construction: IT:Tag:craft=metal construction
+    craft=mint: IT:Tag:craft=mint
+    craft=musical_instrument: IT:Tag:craft=musical instrument
+    craft=oil_mill: IT:Tag:craft=oil mill
+    craft=optician: IT:Tag:craft=optician
+    craft=organ_builder: IT:Tag:craft=organ builder
+    craft=painter: IT:Tag:craft=painter
+    craft=parquet_layer: IT:Tag:craft=parquet layer
+    craft=photographer: IT:Tag:craft=photographer
+    craft=photographic_laboratory: IT:Tag:craft=photographic laboratory
+    craft=piano_tuner: IT:Tag:craft=piano tuner
+    craft=plasterer: IT:Tag:craft=plasterer
+    craft=plumber: IT:Tag:craft=plumber
+    craft=pottery: IT:Tag:craft=pottery
+    craft=printmaker: IT:Tag:craft=printmaker
+    craft=rigger: IT:Tag:craft=rigger
+    craft=roofer: IT:Tag:craft=roofer
+    craft=saddler: IT:Tag:craft=saddler
+    craft=sailmaker: IT:Tag:craft=sailmaker
+    craft=sawmill: IT:Tag:craft=sawmill
+    craft=scaffolder: IT:Tag:craft=scaffolder
+    craft=sculptor: IT:Tag:craft=sculptor
+    craft=shoemaker: IT:Tag:craft=shoemaker
+    craft=stand_builder: IT:Tag:craft=stand builder
+    craft=stonemason: IT:Tag:craft=stonemason
+    craft=sun_protection: IT:Tag:craft=sun protection
+    craft=tailor: IT:Tag:craft=tailor
+    craft=tiler: IT:Tag:craft=tiler
+    craft=tinsmith: IT:Tag:craft=tinsmith
+    craft=toolmaker: IT:Tag:craft=toolmaker
+    craft=turner: IT:Tag:craft=turner
+    craft=upholsterer: IT:Tag:craft=upholsterer
+    craft=watchmaker: IT:Tag:craft=watchmaker
+    craft=window_construction: IT:Tag:craft=window construction
+    craft=winery: IT:Tag:craft=winery
     emergency=fire_hydrant: IT:Tag:emergency=fire hydrant
     footway=crossing: IT:Tag:footway=crossing
     footway=sidewalk: IT:Tag:footway=sidewalk
+    geological=moraine: IT:Tag:geological=moraine
+    geological=outcrop: IT:Tag:geological=outcrop
     geological=palaeontological_site: IT:Tag:geological=palaeontological site
+    highway=bus_stop: IT:Tag:highway=bus stop
     highway=crossing: IT:Tag:highway=crossing
     highway=cycleway: IT:Tag:highway=cycleway
     highway=footway: IT:Tag:highway=footway
@@ -10170,6 +11038,7 @@ it:
     highway=living_street: IT:Tag:highway=living street
     highway=mini_roundabout: IT:Tag:highway=mini roundabout
     highway=motorway: IT:Tag:highway=motorway
+    highway=motorway_junction: IT:Tag:highway=motorway junction
     highway=motorway_link: IT:Tag:highway=motorway link
     highway=path: IT:Tag:highway=path
     highway=pedestrian: IT:Tag:highway=pedestrian
@@ -10195,11 +11064,15 @@ it:
     landuse=cemetery: IT:Tag:landuse=cemetery
     landuse=construction: IT:Tag:landuse=construction
     landuse=greenhouse_horticulture: IT:Tag:landuse=greenhouse horticulture
+    landuse=salt_pond: IT:Tag:landuse=salt pond
     leisure=beach_resort: IT:Tag:leisure=beach resort
     leisure=dog_park: IT:Tag:leisure=dog park
+    leisure=garden: IT:Tag:leisure=garden
     leisure=marina: IT:Tag:leisure=marina
+    leisure=nature_reserve: IT:Tag:leisure=nature reserve
     leisure=playground: IT:Tag:leisure=playground
     leisure=swimming_pool: IT:Tag:leisure=swimming pool
+    leisure=track: IT:Tag:leisure=track
     man_made=mast: IT:Tag:man made=mast
     man_made=works: IT:Tag:man made=works
     natural=bare_rock: IT:Tag:natural=bare rock
@@ -10210,6 +11083,8 @@ it:
     natural=spring: IT:Tag:natural=spring
     natural=tree_row: IT:Tag:natural=tree row
     natural=wetland: IT:Tag:natural=wetland
+    office=foundation: IT:Tag:office=foundation
+    office=it: IT:Tag:office=it
     oneway=alternating: IT:Tag:oneway=alternating
     place=village: IT:Tag:place=village
     power=cable: IT:Tag:power=cable
@@ -10223,6 +11098,10 @@ it:
     power=substation: IT:Tag:power=substation
     power=tower: IT:Tag:power=tower
     power=transformer: IT:Tag:power=transformer
+    public_transport=platform: IT:Tag:public transport=platform
+    public_transport=station: IT:Tag:public transport=station
+    public_transport=stop_area: IT:Tag:public transport=stop area
+    public_transport=stop_position: IT:Tag:public transport=stop position
     railway=level_crossing: IT:Tag:railway=level crossing
     residential=rural: IT:Tag:residential=rural
     residential=urban: IT:Tag:residential=urban
@@ -10235,15 +11114,20 @@ it:
     shop=bicycle: IT:Tag:shop=bicycle
     shop=butcher: IT:Tag:shop=butcher
     shop=car: IT:Tag:shop=car
+    shop=car_parts: IT:Tag:shop=car parts
+    shop=car_repair: IT:Tag:shop=car repair
     shop=chemist: IT:Tag:shop=chemist
     shop=clothes: IT:Tag:shop=clothes
     shop=coffee: IT:Tag:shop=coffee
     shop=confectionery: IT:Tag:shop=confectionery
     shop=convenience: IT:Tag:shop=convenience
     shop=deli: IT:Tag:shop=deli
+    shop=electrical: IT:Tag:shop=electrical
+    shop=electronics: IT:Tag:shop=electronics
     shop=farm: IT:Tag:shop=farm
     shop=florist: IT:Tag:shop=florist
     shop=greengrocer: IT:Tag:shop=greengrocer
+    shop=hardware: IT:Tag:shop=hardware
     shop=hifi: IT:Tag:shop=hifi
     shop=kiosk: IT:Tag:shop=kiosk
     shop=mall: IT:Tag:shop=mall
@@ -10255,13 +11139,17 @@ it:
     shop=supermarket: IT:Tag:shop=supermarket
     shop=tea: IT:Tag:shop=tea
     shop=tobacco: IT:Tag:shop=tobacco
+    shop=tyres: IT:Tag:shop=tyres
     shop=wine: IT:Tag:shop=wine
+    sport=balle_pelote: IT:Tag:sport=balle pelote
     sport=climbing: IT:Tag:sport=climbing
     sport=surfing: IT:Tag:sport=surfing
     summit:cross=yes: IT:Tag:summit:cross=yes
+    tourism=aquarium: IT:Tag:tourism=aquarium
     tourism=artwork: IT:Tag:tourism=artwork
     tourism=museum: IT:Tag:tourism=museum
     waterway=ditch: IT:Tag:waterway=ditch
+    waterway=river: IT:Tag:waterway=river
     waterway=stream: IT:Tag:waterway=stream
 ja:
   key:
@@ -10336,7 +11224,10 @@ ja:
     border_type: JA:Key:border type
     both: JA:Key:both
     boundary: JA:Key:boundary
+    branch: JA:Key:branch
     brand: JA:Key:brand
+    brand:wikidata: JA:Key:brand:wikidata
+    breakfast: JA:Key:breakfast
     brewery: JA:Key:brewery
     bridge: JA:Key:bridge
     bridge:alt_name: JA:Key:bridge:alt name
@@ -10375,6 +11266,7 @@ ja:
     cemetery: JA:Key:cemetery
     change: JA:Key:change
     check_date: JA:Key:check date
+    checkpoint: JA:Key:checkpoint
     circumference: JA:Key:circumference
     clothes: JA:Key:clothes
     club: JA:Key:club
@@ -10665,6 +11557,7 @@ ja:
     parking: JA:Key:parking
     parking:condition: JA:Key:parking:condition
     parking:lane: JA:Key:parking:lane
+    passenger_information_display: JA:Key:passenger information display
     passing_places: JA:Key:passing places
     payment: JA:Key:payment
     payment:coins: JA:Key:payment:coins
@@ -11268,6 +12161,7 @@ ja:
     geological=outcrop: JA:Tag:geological=outcrop
     geological=palaeontological_site: JA:Tag:geological=palaeontological site
     golf=bunker: JA:Tag:golf=bunker
+    golf=driving_range: JA:Tag:golf=driving range
     golf=fairway: JA:Tag:golf=fairway
     government=ministry: JA:Tag:government=ministry
     government=prosecutor: JA:Tag:government=prosecutor
@@ -11437,6 +12331,7 @@ ja:
     leisure=common: JA:Tag:leisure=common
     leisure=dance: JA:Tag:leisure=dance
     leisure=dog_park: JA:Tag:leisure=dog park
+    leisure=escape_game: JA:Tag:leisure=escape game
     leisure=firepit: JA:Tag:leisure=firepit
     leisure=fishing: JA:Tag:leisure=fishing
     leisure=fitness_centre: JA:Tag:leisure=fitness centre
@@ -11474,6 +12369,7 @@ ja:
     man_made=cross: JA:Tag:man made=cross
     man_made=cutline: JA:Tag:man made=cutline
     man_made=dike: JA:Tag:man made=dike
+    man_made=dovecote: JA:Tag:man made=dovecote
     man_made=dyke: JA:Tag:man made=dyke
     man_made=embankment: JA:Tag:man made=embankment
     man_made=flagpole: JA:Tag:man made=flagpole
@@ -11555,6 +12451,7 @@ ja:
     natural=stone: JA:Tag:natural=stone
     natural=tree: JA:Tag:natural=tree
     natural=tree_row: JA:Tag:natural=tree row
+    natural=tree_stump: JA:Tag:natural=tree stump
     natural=valley: JA:Tag:natural=valley
     natural=volcano: JA:Tag:natural=volcano
     natural=water: JA:Tag:natural=water
@@ -11801,6 +12698,7 @@ ja:
     shop=pawnbroker: JA:Tag:shop=pawnbroker
     shop=perfumery: JA:Tag:shop=perfumery
     shop=pet: JA:Tag:shop=pet
+    shop=pet_grooming: JA:Tag:shop=pet grooming
     shop=pharmacy: JA:Tag:shop=pharmacy
     shop=photo: JA:Tag:shop=photo
     shop=printing: JA:Tag:shop=printing
@@ -11817,6 +12715,7 @@ ja:
     shop=spices: JA:Tag:shop=spices
     shop=sports: JA:Tag:shop=sports
     shop=stationery: JA:Tag:shop=stationery
+    shop=storage_rental: JA:Tag:shop=storage rental
     shop=supermarket: JA:Tag:shop=supermarket
     shop=swimming_pool: JA:Tag:shop=swimming pool
     shop=tailor: JA:Tag:shop=tailor
@@ -11904,6 +12803,9 @@ ja:
     vending=excrement_bags: JA:Tag:vending=excrement bags
     vending=fuel: JA:Tag:vending=fuel
     vending=milk: JA:Tag:vending=milk
+    vending=parcel_pickup: JA:Tag:vending=parcel pickup
+    vending=parcel_pickup;parcel_mail_in: JA:Tag:vending=parcel pickup;parcel mail
+      in
     vending=parking_tickets: JA:Tag:vending=parking tickets
     vending=photo: JA:Tag:vending=photo
     wall=no: JA:Tag:wall=no
@@ -11948,16 +12850,40 @@ ko:
   key:
     aerialway: Ko:Key:aerialway
     amenity: Ko:Key:amenity
+    crossing: Ko:Key:crossing
     ele: Ko:Key:ele
+    emergency: Ko:Key:emergency
     highway: Ko:Key:highway
+    intermittent: Ko:Key:intermittent
+    leisure: Ko:Key:leisure
+    local_ref: Ko:Key:local ref
     name: Ko:Key:name
+    operator:type: Ko:Key:operator:type
+    tracktype: Ko:Key:tracktype
+    wheelchair: Ko:Key:wheelchair
     wikipedia: Ko:Key:wikipedia
   tag:
     aerialway=cable_car: Ko:Tag:aerialway=cable car
+    amenity=fuel: Ko:Tag:amenity=fuel
+    barrier=kerb: Ko:Tag:barrier=kerb
     craft=tailor: Ko:Tag:craft=tailor
+    ford=stepping_stones: Ko:Tag:ford=stepping stones
+    highway=bus_stop: Ko:Tag:highway=bus stop
+    highway=elevator: Ko:Tag:highway=elevator
     highway=motorway: Ko:Tag:highway=motorway
+    highway=motorway_link: Ko:Tag:highway=motorway link
+    highway=service: Ko:Tag:highway=service
+    highway=services: Ko:Tag:highway=services
+    highway=stop: Ko:Tag:highway=stop
     highway=track: Ko:Tag:highway=track
     highway=trunk: Ko:Tag:highway=trunk
+    landuse=farmland: Ko:Tag:landuse=farmland
+    landuse=retail: Ko:Tag:landuse=retail
+    landuse=traffic_island: Ko:Tag:landuse=traffic island
+    leisure=disc_golf_course: Ko:Tag:leisure=disc golf course
+    man_made=mast: Ko:Tag:man made=mast
+    place=hamlet: Ko:Tag:place=hamlet
+    shop=convenience: Ko:Tag:shop=convenience
     shop=garden_centre: Ko:Tag:shop=garden centre
     shop=gift: Ko:Tag:shop=gift
 lt:
@@ -11976,6 +12902,9 @@ ms:
     highway=tertiary: Ms:Tag:highway=tertiary
     highway=trunk: Ms:Tag:highway=trunk
     highway=unclassified: Ms:Tag:highway=unclassified
+my:
+  tag:
+    craft=agricultural_engines: My:Tag:craft=agricultural engines
 ne:
   tag:
     landuse=meadow: Ne:Tag:landuse=meadow
@@ -12016,8 +12945,10 @@ nl:
     natural: NL:Key:natural
     office: NL:Key:office
     place: NL:Key:place
+    population: NL:Key:population
     power_supply:schedule: NL:Key:power supply:schedule
     public_transport: NL:Key:public transport
+    ref:bag: NL:Key:ref:bag
     religion: NL:Key:religion
     route_master: NL:Key:route master
     scenic: NL:Key:scenic
@@ -12039,6 +12970,7 @@ nl:
     amenity=parking: NL:Tag:amenity=parking
     amenity=post_office: NL:Tag:amenity=post office
     amenity=toilets: NL:Tag:amenity=toilets
+    amenity=vending_machine: NL:Tag:amenity=vending machine
     amenity=waste_basket: NL:Tag:amenity=waste basket
     barrier=bollard: NL:Tag:barrier=bollard
     barrier=fence: NL:Tag:barrier=fence
@@ -12057,6 +12989,7 @@ nl:
     landuse=garages: NL:Tag:landuse=garages
     landuse=grass: NL:Tag:landuse=grass
     landuse=industrial: NL:Tag:landuse=industrial
+    leaf_cycle=deciduous: NL:Tag:leaf cycle=deciduous
     man_made=windmill: NL:Tag:man made=windmill
     natural=tree: NL:Tag:natural=tree
     public_transport=platform: NL:Tag:public transport=platform
@@ -12067,6 +13000,7 @@ nl:
     shop=department_store: NL:Tag:shop=department store
     shop=greengrocer: NL:Tag:shop=greengrocer
     tourism=chalet: NL:Tag:tourism=chalet
+    vending=parking_tickets: NL:Tag:vending=parking tickets
     zoo=petting_zoo: NL:Tag:zoo=petting zoo
 no:
   key:
@@ -12074,6 +13008,7 @@ no:
     boundary: No:Key:boundary
     building: No:Key:building
     fenced: No:Key:fenced
+    highway: No:Key:highway
     maxheight:legal: No:Key:maxheight:legal
     maxheight:marine: No:Key:maxheight:marine
     maxheight:physical: No:Key:maxheight:physical
@@ -12087,39 +13022,40 @@ no:
     amenity=pharmacy: No:Tag:amenity=pharmacy
     amenity=place_of_worship: No:Tag:amenity=place of worship
     boundary=maritime: No:Tag:boundary=maritime
+    building=construction: No:Tag:building=construction
+    landuse=farmland: No:Tag:landuse=farmland
     leisure=park: No:Tag:leisure=park
     natural=tree: No:Tag:natural=tree
+oc:
+  key:
+    name:oc: Oc:Key:name:oc
 pl:
   key:
     4wd_only: Pl:Key:4wd only
     CEMT: Pl:Key:CEMT
+    FIXME: Pl:Key:FIXME
+    'abandoned:': 'Pl:Key:abandoned:'
     abutters: Pl:Key:abutters
     access: Pl:Key:access
     addr: Pl:Key:addr
     addr:city: Pl:Key:addr:city
-    addr:country: Pl:Key:addr:country
     addr:county: Pl:Key:addr:county
-    addr:district: Pl:Key:addr:district
     addr:flats: Pl:Key:addr:flats
-    addr:hamlet: Pl:Key:addr:hamlet
-    addr:housenumber: Pl:Key:addr:housenumber
     addr:municipality: Pl:Key:addr:municipality
     addr:place: Pl:Key:addr:place
-    addr:postcode: Pl:Key:addr:postcode
-    addr:province: Pl:Key:addr:province
-    addr:state: Pl:Key:addr:state
-    addr:street: Pl:Key:addr:street
-    addr:subdistrict: Pl:Key:addr:subdistrict
     addr:suburb: Pl:Key:addr:suburb
     addr:village: Pl:Key:addr:village
+    adr_les: Pl:Key:adr les
     advertising: Pl:Key:advertising
     aerialway: Pl:Key:aerialway
     aeroway: Pl:Key:aeroway
+    agricultural: Pl:Key:agricultural
     alt_name: Pl:Key:alt name
     amenity: Pl:Key:amenity
     area: Pl:Key:area
     area:highway: Pl:Key:area:highway
     artwork_type: Pl:Key:artwork type
+    automated: Pl:Key:automated
     automatic_door: Pl:Key:automatic door
     backrest: Pl:Key:backrest
     bar: Pl:Key:bar
@@ -12138,14 +13074,18 @@ pl:
     bridge:movable: Pl:Key:bridge:movable
     bridge:structure: Pl:Key:bridge:structure
     bridge:support: Pl:Key:bridge:support
+    budynek: Pl:Key:budynek
     building: Pl:Key:building
     building:architecture: Pl:Key:building:architecture
+    building:condition: Pl:Key:building:condition
     building:cullis:height: Pl:Key:building:cullis:height
     building:flats: Pl:Key:building:flats
     building:levels: Pl:Key:building:levels
     building:material: Pl:Key:building:material
     building:min_level: Pl:Key:building:min level
     building:part: Pl:Key:building:part
+    building:usage:pl: Pl:Key:building:usage:pl
+    building:use: Pl:Key:building:use
     bunker_type: Pl:Key:bunker type
     bus: Pl:Key:bus
     busway: Pl:Key:busway
@@ -12159,12 +13099,17 @@ pl:
     comment: Pl:Key:comment
     communication:mobile_phone: Pl:Key:communication:mobile phone
     construction: Pl:Key:construction
+    construction_end_expected: Pl:Key:construction end expected
+    construction_start_expected: Pl:Key:construction start expected
     contact: Pl:Key:contact
+    country: Pl:Key:country
     covered: Pl:Key:covered
     craft: Pl:Key:craft
     crop: Pl:Key:crop
     crossing: Pl:Key:crossing
+    currency: Pl:Key:currency
     cutting: Pl:Key:cutting
+    cycleway: Pl:Key:cycleway
     deanery: Pl:Key:deanery
     denomination: Pl:Key:denomination
     denotation: Pl:Key:denotation
@@ -12172,10 +13117,19 @@ pl:
     description: Pl:Key:description
     designation: Pl:Key:designation
     destination: Pl:Key:destination
+    diet: Pl:Key:diet
+    'diet:': 'Pl:Key:diet:'
+    diet:halal: Pl:Key:diet:halal
+    diet:kosher: Pl:Key:diet:kosher
     diocese: Pl:Key:diocese
+    diplomatic: Pl:Key:diplomatic
     direction: Pl:Key:direction
     dispensing: Pl:Key:dispensing
     distance: Pl:Key:distance
+    drink: Pl:Key:drink
+    drinking_water: Pl:Key:drinking water
+    driving_side: Pl:Key:driving side
+    dryer: Pl:Key:dryer
     duration: Pl:Key:duration
     ele: Pl:Key:ele
     electrified: Pl:Key:electrified
@@ -12188,6 +13142,7 @@ pl:
     fee: Pl:Key:fee
     fence_type: Pl:Key:fence type
     fire_boundary: Pl:Key:fire boundary
+    fishing: Pl:Key:fishing
     fixme: Pl:Key:fixme
     flood_mark: Pl:Key:flood mark
     flood_prone: Pl:Key:flood prone
@@ -12197,10 +13152,17 @@ pl:
     fuel: Pl:Key:fuel
     gauge: Pl:Key:gauge
     generator:output: Pl:Key:generator:output
+    genus: Pl:Key:genus
     handrail: Pl:Key:handrail
+    healthcare: Pl:Key:healthcare
     height: Pl:Key:height
+    hgv: Pl:Key:hgv
     highway: Pl:Key:highway
+    highway_(propozycja_zmian): Pl:Key:highway (propozycja zmian)
     historic: Pl:Key:historic
+    horse: Pl:Key:horse
+    ice_road: Pl:Key:ice road
+    incline: Pl:Key:incline
     industrial: Pl:Key:industrial
     information: Pl:Key:information
     inscription: Pl:Key:inscription
@@ -12240,7 +13202,6 @@ pl:
     man_made: Pl:Key:man made
     manhole: Pl:Key:manhole
     max_age: Pl:Key:max age
-    maxage: Pl:Key:maxage
     maxaxleload: Pl:Key:maxaxleload
     maxheight: Pl:Key:maxheight
     maxheight:legal: Pl:Key:maxheight:legal
@@ -12254,9 +13215,9 @@ pl:
     maxwidth: Pl:Key:maxwidth
     maxwidth:physical: Pl:Key:maxwidth:physical
     memorial:type: Pl:Key:memorial:type
+    military: Pl:Key:military
     min_age: Pl:Key:min age
     min_height: Pl:Key:min height
-    minage: Pl:Key:minage
     minspeed: Pl:Key:minspeed
     mofa: Pl:Key:mofa
     monitoring:air_quality: Pl:Key:monitoring:air quality
@@ -12264,8 +13225,11 @@ pl:
     moped: Pl:Key:moped
     motorboat: Pl:Key:motorboat
     motorcycle: Pl:Key:motorcycle
+    motorroad: Pl:Key:motorroad
+    mountain_pass: Pl:Key:mountain pass
     name: Pl:Key:name
     natural: Pl:Key:natural
+    network: Pl:Key:network
     noexit: Pl:Key:noexit
     note: Pl:Key:note
     office: Pl:Key:office
@@ -12276,8 +13240,10 @@ pl:
     overtaking: Pl:Key:overtaking
     owner: Pl:Key:owner
     ownership: Pl:Key:ownership
+    parish: Pl:Key:parish
     parking: Pl:Key:parking
     parking:lane: Pl:Key:parking:lane
+    passing_places: Pl:Key:passing places
     place: Pl:Key:place
     place_name: Pl:Key:place name
     playground: Pl:Key:playground
@@ -12286,6 +13252,7 @@ pl:
     priority: Pl:Key:priority
     produce: Pl:Key:produce
     product: Pl:Key:product
+    proposed: Pl:Key:proposed
     protect_class: Pl:Key:protect class
     psv: Pl:Key:psv
     public_transport: Pl:Key:public transport
@@ -12293,14 +13260,19 @@ pl:
     railway: Pl:Key:railway
     railway:area: Pl:Key:railway:area
     ramp: Pl:Key:ramp
+    razed: Pl:Key:razed
+    'razed:': 'Pl:Key:razed:'
     recycling_type: Pl:Key:recycling type
     religion: Pl:Key:religion
+    'removed:': 'Pl:Key:removed:'
     repair: Pl:Key:repair
     resource: Pl:Key:resource
     roof:material: Pl:Key:roof:material
     route: Pl:Key:route
     route_master: Pl:Key:route master
+    'ruined:': 'Pl:Key:ruined:'
     ruins: Pl:Key:ruins
+    'ruins:': 'Pl:Key:ruins:'
     sac_scale: Pl:Key:sac scale
     seamark:fixme: Pl:Key:seamark:fixme
     second_hand: Pl:Key:second hand
@@ -12315,13 +13287,21 @@ pl:
     social_facility:for: Pl:Key:social facility:for
     source:date: Pl:Key:source:date
     source:maxspeed: Pl:Key:source:maxspeed
+    species: Pl:Key:species
     sport: Pl:Key:sport
     start_date: Pl:Key:start date
     step_count: Pl:Key:step count
+    strapline: Pl:Key:strapline
     surface: Pl:Key:surface
     surveillance: Pl:Key:surveillance
     surveillance:type: Pl:Key:surveillance:type
     surveillance:zone: Pl:Key:surveillance:zone
+    symbol: Pl:Key:symbol
+    tactile_paving: Pl:Key:tactile paving
+    target: Pl:Key:target
+    taxon: Pl:Key:taxon
+    toilets: Pl:Key:toilets
+    toilets:wheelchair: Pl:Key:toilets:wheelchair
     toll: Pl:Key:toll
     tomb: Pl:Key:tomb
     tourism: Pl:Key:tourism
@@ -12334,6 +13314,8 @@ pl:
     traffic_signals:minimap: Pl:Key:traffic signals:minimap
     traffic_signals:sound: Pl:Key:traffic signals:sound
     traffic_signals:vibration: Pl:Key:traffic signals:vibration
+    trail_visibility: Pl:Key:trail visibility
+    trailer: Pl:Key:trailer
     train: Pl:Key:train
     tram: Pl:Key:tram
     trolleybus: Pl:Key:trolleybus
@@ -12345,12 +13327,16 @@ pl:
     usage: Pl:Key:usage
     vehicle: Pl:Key:vehicle
     voltage: Pl:Key:voltage
+    washing_machine: Pl:Key:washing machine
+    water: Pl:Key:water
     waterway: Pl:Key:waterway
     website: Pl:Key:website
     wetland: Pl:Key:wetland
     wheelchair: Pl:Key:wheelchair
+    wholesale: Pl:Key:wholesale
     width: Pl:Key:width
     wikipedia: Pl:Key:wikipedia
+    winter_road: Pl:Key:winter road
     wood: Pl:Key:wood
     zone:traffic: Pl:Key:zone:traffic
     zoo: Pl:Key:zoo
@@ -12374,53 +13360,98 @@ pl:
     advertising=totem: Pl:Tag:advertising=totem
     advertising=wall_painting: Pl:Tag:advertising=wall painting
     aeroway=hangar: Pl:Tag:aeroway=hangar
+    aeroway=helipad: Pl:Tag:aeroway=helipad
     allotments=plot: Pl:Tag:allotments=plot
     amenity=administration: Pl:Tag:amenity=administration
+    amenity=animal_boarding: Pl:Tag:amenity=animal boarding
+    amenity=archive: Pl:Tag:amenity=archive
     amenity=atm: Pl:Tag:amenity=atm
+    amenity=audiologist: Pl:Tag:amenity=audiologist
     amenity=baby_hatch: Pl:Tag:amenity=baby hatch
     amenity=bank: Pl:Tag:amenity=bank
+    amenity=bar: Pl:Tag:amenity=bar
     amenity=bbq: Pl:Tag:amenity=bbq
     amenity=bench: Pl:Tag:amenity=bench
     amenity=bicycle_parking: Pl:Tag:amenity=bicycle parking
     amenity=bicycle_rental: Pl:Tag:amenity=bicycle rental
+    amenity=bicycle_repair_station: Pl:Tag:amenity=bicycle repair station
+    amenity=biergarten: Pl:Tag:amenity=biergarten
+    amenity=boat_rental: Pl:Tag:amenity=boat rental
+    amenity=boat_storage: Pl:Tag:amenity=boat storage
     amenity=brothel: Pl:Tag:amenity=brothel
+    amenity=bureau_de_change: Pl:Tag:amenity=bureau de change
+    amenity=bus_station: Pl:Tag:amenity=bus station
+    amenity=cafe: Pl:Tag:amenity=cafe
+    amenity=car_pooling: Pl:Tag:amenity=car pooling
     amenity=car_wash: Pl:Tag:amenity=car wash
     amenity=casino: Pl:Tag:amenity=casino
+    amenity=clinic: Pl:Tag:amenity=clinic
+    amenity=college: Pl:Tag:amenity=college
     amenity=compressed_air: Pl:Tag:amenity=compressed air
+    amenity=conference_centre: Pl:Tag:amenity=conference centre
+    amenity=coworking_space: Pl:Tag:amenity=coworking space
+    amenity=crematorium: Pl:Tag:amenity=crematorium
     amenity=crypt: Pl:Tag:amenity=crypt
+    amenity=dentist: Pl:Tag:amenity=dentist
     amenity=doctors: Pl:Tag:amenity=doctors
     amenity=drinking_water: Pl:Tag:amenity=drinking water
     amenity=driving_school: Pl:Tag:amenity=driving school
+    amenity=dryer: Pl:Tag:amenity=dryer
+    amenity=embassy: Pl:Tag:amenity=embassy
     amenity=events_venue: Pl:Tag:amenity=events venue
+    amenity=exhibition_centre: Pl:Tag:amenity=exhibition centre
     amenity=fast_food: Pl:Tag:amenity=fast food
+    amenity=feeding_place: Pl:Tag:amenity=feeding place
     amenity=ferry_terminal: Pl:Tag:amenity=ferry terminal
     amenity=fire_station: Pl:Tag:amenity=fire station
     amenity=food_court: Pl:Tag:amenity=food court
     amenity=fuel: Pl:Tag:amenity=fuel
     amenity=game_feeding: Pl:Tag:amenity=game feeding
     amenity=grave_yard: Pl:Tag:amenity=grave yard
+    amenity=hookah_lounge: Pl:Tag:amenity=hookah lounge
+    amenity=hospital: Pl:Tag:amenity=hospital
     amenity=hunting_stand: Pl:Tag:amenity=hunting stand
     amenity=ice_cream: Pl:Tag:amenity=ice cream
+    amenity=kindergarten: Pl:Tag:amenity=kindergarten
+    amenity=lavoir: Pl:Tag:amenity=lavoir
+    amenity=library: Pl:Tag:amenity=library
+    amenity=lounger: Pl:Tag:amenity=lounger
     amenity=marketplace: Pl:Tag:amenity=marketplace
     amenity=mortuary: Pl:Tag:amenity=mortuary
     amenity=music_venue: Pl:Tag:amenity=music venue
+    amenity=nightclub: Pl:Tag:amenity=nightclub
     amenity=parking: Pl:Tag:amenity=parking
     amenity=parking_entrance: Pl:Tag:amenity=parking entrance
     amenity=parking_space: Pl:Tag:amenity=parking space
+    amenity=payment_centre: Pl:Tag:amenity=payment centre
     amenity=pharmacy: Pl:Tag:amenity=pharmacy
     amenity=place_of_worship: Pl:Tag:amenity=place of worship
     amenity=post_box: Pl:Tag:amenity=post box
     amenity=post_office: Pl:Tag:amenity=post office
+    amenity=prison: Pl:Tag:amenity=prison
+    amenity=pub: Pl:Tag:amenity=pub
+    amenity=public_bookcase: Pl:Tag:amenity=public bookcase
     amenity=recycling: Pl:Tag:amenity=recycling
     amenity=restaurant: Pl:Tag:amenity=restaurant
     amenity=school: Pl:Tag:amenity=school
     amenity=shelter: Pl:Tag:amenity=shelter
+    amenity=shower: Pl:Tag:amenity=shower
+    amenity=snow_removal_station: Pl:Tag:amenity=snow removal station
     amenity=social_facility: Pl:Tag:amenity=social facility
     amenity=taxi: Pl:Tag:amenity=taxi
+    amenity=toilets: Pl:Tag:amenity=toilets
+    amenity=university: Pl:Tag:amenity=university
+    amenity=vehicle_inspection: Pl:Tag:amenity=vehicle inspection
     amenity=vehicle_ramp: Pl:Tag:amenity=vehicle ramp
     amenity=vending_machine: Pl:Tag:amenity=vending machine
+    amenity=veterinary: Pl:Tag:amenity=veterinary
+    amenity=washing_machine: Pl:Tag:amenity=washing machine
     amenity=waste_disposal: Pl:Tag:amenity=waste disposal
     amenity=water_point: Pl:Tag:amenity=water point
+    area:highway=cycleway: Pl:Tag:area:highway=cycleway
+    area:highway=footway: Pl:Tag:area:highway=footway
+    area:highway=path: Pl:Tag:area:highway=path
+    area:highway=pedestrian: Pl:Tag:area:highway=pedestrian
     atm=no: Pl:Tag:atm=no
     atm=yes: Pl:Tag:atm=yes
     attraction=animal: Pl:Tag:attraction=animal
@@ -12439,9 +13470,11 @@ pl:
     barrier=guard_rail: Pl:Tag:barrier=guard rail
     barrier=handrail: Pl:Tag:barrier=handrail
     barrier=hedge: Pl:Tag:barrier=hedge
+    barrier=height_restrictor: Pl:Tag:barrier=height restrictor
     barrier=kerb: Pl:Tag:barrier=kerb
     barrier=lift_gate: Pl:Tag:barrier=lift gate
     barrier=retaining_wall: Pl:Tag:barrier=retaining wall
+    barrier=spikes: Pl:Tag:barrier=spikes
     barrier=toll_booth: Pl:Tag:barrier=toll booth
     barrier=turnstile: Pl:Tag:barrier=turnstile
     barrier=wall: Pl:Tag:barrier=wall
@@ -12488,18 +13521,22 @@ pl:
     building=bridge: Pl:Tag:building=bridge
     building=bunker: Pl:Tag:building=bunker
     building=cabin: Pl:Tag:building=cabin
+    building=carport: Pl:Tag:building=carport
     building=cathedral: Pl:Tag:building=cathedral
     building=chapel: Pl:Tag:building=chapel
     building=church: Pl:Tag:building=church
     building=civic: Pl:Tag:building=civic
     building=commercial: Pl:Tag:building=commercial
     building=construction: Pl:Tag:building=construction
+    building=cowshed: Pl:Tag:building=cowshed
     building=detached: Pl:Tag:building=detached
     building=dormitory: Pl:Tag:building=dormitory
     building=entrance: Pl:Tag:building=entrance
+    building=farm: Pl:Tag:building=farm
     building=farm_auxiliary: Pl:Tag:building=farm auxiliary
     building=garage: Pl:Tag:building=garage
     building=garages: Pl:Tag:building=garages
+    building=grandstand: Pl:Tag:building=grandstand
     building=greenhouse: Pl:Tag:building=greenhouse
     building=hangar: Pl:Tag:building=hangar
     building=hospital: Pl:Tag:building=hospital
@@ -12513,19 +13550,25 @@ pl:
     building=public: Pl:Tag:building=public
     building=residential: Pl:Tag:building=residential
     building=retail: Pl:Tag:building=retail
+    building=riding_hall: Pl:Tag:building=riding hall
     building=roof: Pl:Tag:building=roof
     building=ruins: Pl:Tag:building=ruins
     building=school: Pl:Tag:building=school
+    building=service: Pl:Tag:building=service
     building=shed: Pl:Tag:building=shed
     building=stable: Pl:Tag:building=stable
     building=sty: Pl:Tag:building=sty
     building=supermarket: Pl:Tag:building=supermarket
     building=synagogue: Pl:Tag:building=synagogue
     building=terrace: Pl:Tag:building=terrace
+    building=toilets: Pl:Tag:building=toilets
     building=train_station: Pl:Tag:building=train station
     building=transportation: Pl:Tag:building=transportation
     building=university: Pl:Tag:building=university
     building=warehouse: Pl:Tag:building=warehouse
+    bunker_type=gun_emplacement: Pl:Tag:bunker type=gun emplacement
+    bunker_type=technical: Pl:Tag:bunker type=technical
+    busway=lane: Pl:Tag:busway=lane
     castle_type=castrum: Pl:Tag:castle type=castrum
     castle_type=defensive: Pl:Tag:castle type=defensive
     castle_type=fortress: Pl:Tag:castle type=fortress
@@ -12546,13 +13589,24 @@ pl:
     craft=brewery: Pl:Tag:craft=brewery
     craft=builder: Pl:Tag:craft=builder
     craft=cabinet_maker: Pl:Tag:craft=cabinet maker
+    craft=caterer: Pl:Tag:craft=caterer
+    craft=embroiderer: Pl:Tag:craft=embroiderer
     craft=engraver: Pl:Tag:craft=engraver
     craft=grinding_mill: Pl:Tag:craft=grinding mill
+    craft=hvac: Pl:Tag:craft=hvac
     craft=oil_mill: Pl:Tag:craft=oil mill
+    craft=painter: Pl:Tag:craft=painter
+    craft=roofer: Pl:Tag:craft=roofer
     craft=sawmill: Pl:Tag:craft=sawmill
+    craft=shoemaker: Pl:Tag:craft=shoemaker
     craft=stonemason: Pl:Tag:craft=stonemason
     craft=winery: Pl:Tag:craft=winery
-    crossing=island: Pl:Tag:crossing=island
+    cycleway=lane: Pl:Tag:cycleway=lane
+    cycleway=opposite: Pl:Tag:cycleway=opposite
+    cycleway=opposite_lane: Pl:Tag:cycleway=opposite lane
+    cycleway=opposite_track: Pl:Tag:cycleway=opposite track
+    cycleway=share_busway: Pl:Tag:cycleway=share busway
+    cycleway=track: Pl:Tag:cycleway=track
     emergency=aed: Pl:Tag:emergency=aed
     emergency=defibrillator: Pl:Tag:emergency=defibrillator
     emergency=fire_extinguisher: Pl:Tag:emergency=fire extinguisher
@@ -12564,28 +13618,44 @@ pl:
     emergency=lifeguard_place: Pl:Tag:emergency=lifeguard place
     emergency=lifeguard_platform: Pl:Tag:emergency=lifeguard platform
     emergency=lifeguard_tower: Pl:Tag:emergency=lifeguard tower
+    emergency=phone: Pl:Tag:emergency=phone
     emergency=suction_point: Pl:Tag:emergency=suction point
     emergency=water_tank: Pl:Tag:emergency=water tank
     footway=crossing: Pl:Tag:footway=crossing
     footway=sidewalk: Pl:Tag:footway=sidewalk
+    ford=stepping_stones: Pl:Tag:ford=stepping stones
     government=ministry: Pl:Tag:government=ministry
     government=prosecutor: Pl:Tag:government=prosecutor
     healthcare=laboratory: Pl:Tag:healthcare=laboratory
+    highway=abandoned: Pl:Tag:highway=abandoned
     highway=bridleway: Pl:Tag:highway=bridleway
+    highway=bus_guideway: Pl:Tag:highway=bus guideway
     highway=bus_stop: Pl:Tag:highway=bus stop
+    highway=corridor: Pl:Tag:highway=corridor
     highway=crossing: Pl:Tag:highway=crossing
     highway=cycleway: Pl:Tag:highway=cycleway
+    highway=elevator: Pl:Tag:highway=elevator
+    highway=emergency_access_point: Pl:Tag:highway=emergency access point
+    highway=emergency_bay: Pl:Tag:highway=emergency bay
+    highway=escape: Pl:Tag:highway=escape
     highway=footway: Pl:Tag:highway=footway
+    highway=ford: Pl:Tag:highway=ford
     highway=give_way: Pl:Tag:highway=give way
     highway=living_street: Pl:Tag:highway=living street
     highway=milestone: Pl:Tag:highway=milestone
     highway=mini_roundabout: Pl:Tag:highway=mini roundabout
     highway=motorway: Pl:Tag:highway=motorway
+    highway=motorway_(propozycja_zmian): Pl:Tag:highway=motorway (propozycja zmian)
+    highway=motorway_junction: Pl:Tag:highway=motorway junction
+    highway=motorway_link: Pl:Tag:highway=motorway link
+    highway=passing_place: Pl:Tag:highway=passing place
     highway=path: Pl:Tag:highway=path
     highway=pedestrian: Pl:Tag:highway=pedestrian
+    highway=platform: Pl:Tag:highway=platform
     highway=primary: Pl:Tag:highway=primary
     highway=proposed: Pl:Tag:highway=proposed
     highway=raceway: Pl:Tag:highway=raceway
+    highway=razed: Pl:Tag:highway=razed
     highway=residential: Pl:Tag:highway=residential
     highway=rest_area: Pl:Tag:highway=rest area
     highway=road: Pl:Tag:highway=road
@@ -12593,14 +13663,18 @@ pl:
     highway=service: Pl:Tag:highway=service
     highway=services: Pl:Tag:highway=services
     highway=speed_camera: Pl:Tag:highway=speed camera
+    highway=speed_display: Pl:Tag:highway=speed display
     highway=steps: Pl:Tag:highway=steps
     highway=stop: Pl:Tag:highway=stop
     highway=street_lamp: Pl:Tag:highway=street lamp
     highway=tertiary: Pl:Tag:highway=tertiary
     highway=track: Pl:Tag:highway=track
+    highway=traffic_mirror: Pl:Tag:highway=traffic mirror
     highway=traffic_signals: Pl:Tag:highway=traffic signals
     highway=trunk: Pl:Tag:highway=trunk
+    highway=trunk_link: Pl:Tag:highway=trunk link
     highway=turning_circle: Pl:Tag:highway=turning circle
+    highway=turning_loop: Pl:Tag:highway=turning loop
     highway=unclassified: Pl:Tag:highway=unclassified
     historic=battlefield: Pl:Tag:historic=battlefield
     historic=city_gate: Pl:Tag:historic=city gate
@@ -12622,9 +13696,14 @@ pl:
     industrial=salt_pond: Pl:Tag:industrial=salt pond
     industrial=sawmill: Pl:Tag:industrial=sawmill
     industrial=shipyard: Pl:Tag:industrial=shipyard
+    information=board: Pl:Tag:information=board
     information=guidepost: Pl:Tag:information=guidepost
+    information=map: Pl:Tag:information=map
+    information=office: Pl:Tag:information=office
+    information=terminal: Pl:Tag:information=terminal
     junction=roundabout: Pl:Tag:junction=roundabout
     landuse=allotments: Pl:Tag:landuse=allotments
+    landuse=animal_keeping: Pl:Tag:landuse=animal keeping
     landuse=apiary: Pl:Tag:landuse=apiary
     landuse=brownfield: Pl:Tag:landuse=brownfield
     landuse=cemetery: Pl:Tag:landuse=cemetery
@@ -12642,6 +13721,7 @@ pl:
     landuse=industrial: Pl:Tag:landuse=industrial
     landuse=landfill: Pl:Tag:landuse=landfill
     landuse=meadow: Pl:Tag:landuse=meadow
+    landuse=military: Pl:Tag:landuse=military
     landuse=plant_nursery: Pl:Tag:landuse=plant nursery
     landuse=quarry: Pl:Tag:landuse=quarry
     landuse=railway: Pl:Tag:landuse=railway
@@ -12654,21 +13734,18 @@ pl:
     landuse=village_green: Pl:Tag:landuse=village green
     leisure=adult_gaming_centre: Pl:Tag:leisure=adult gaming centre
     leisure=amusement_arcade: Pl:Tag:leisure=amusement arcade
-    leisure=arena: Pl:Tag:leisure=arena
     leisure=bandstand: Pl:Tag:leisure=bandstand
     leisure=bathing_place: Pl:Tag:leisure=bathing place
     leisure=bbq: Pl:Tag:leisure=bbq
-    leisure=beach: Pl:Tag:leisure=beach
     leisure=beach_resort: Pl:Tag:leisure=beach resort
     leisure=bird_hide: Pl:Tag:leisure=bird hide
     leisure=bleachers: Pl:Tag:leisure=bleachers
     leisure=bowling_alley: Pl:Tag:leisure=bowling alley
-    leisure=casino: Pl:Tag:leisure=casino
-    leisure=club: Pl:Tag:leisure=club
     leisure=common: Pl:Tag:leisure=common
     leisure=dance: Pl:Tag:leisure=dance
     leisure=disc_golf_course: Pl:Tag:leisure=disc golf course
     leisure=dog_park: Pl:Tag:leisure=dog park
+    leisure=escape_game: Pl:Tag:leisure=escape game
     leisure=firepit: Pl:Tag:leisure=firepit
     leisure=fishing: Pl:Tag:leisure=fishing
     leisure=fitness_centre: Pl:Tag:leisure=fitness centre
@@ -12713,8 +13790,11 @@ pl:
     man_made=adit: Pl:Tag:man made=adit
     man_made=beacon: Pl:Tag:man made=beacon
     man_made=beehive: Pl:Tag:man made=beehive
+    man_made=bridge: Pl:Tag:man made=bridge
     man_made=bunker_silo: Pl:Tag:man made=bunker silo
+    man_made=campanile: Pl:Tag:man made=campanile
     man_made=chimney: Pl:Tag:man made=chimney
+    man_made=clearcut: Pl:Tag:man made=clearcut
     man_made=cross: Pl:Tag:man made=cross
     man_made=cutline: Pl:Tag:man made=cutline
     man_made=dyke: Pl:Tag:man made=dyke
@@ -12739,9 +13819,10 @@ pl:
     man_made=windmill: Pl:Tag:man made=windmill
     man_made=windpump: Pl:Tag:man made=windpump
     man_made=works: Pl:Tag:man made=works
-    maxspeed=none: Pl:Tag:maxspeed=none
-    maxspeed=signals: Pl:Tag:maxspeed=signals
     military=bunker: Pl:Tag:military=bunker
+    military=danger_area: Pl:Tag:military=danger area
+    military=nuclear_explosion_site: Pl:Tag:military=nuclear explosion site
+    military=range: Pl:Tag:military=range
     military=trench: Pl:Tag:military=trench
     mooring=ferry: Pl:Tag:mooring=ferry
     natural=arete: Pl:Tag:natural=arete
@@ -12786,9 +13867,44 @@ pl:
     natural=water: Pl:Tag:natural=water
     natural=wetland: Pl:Tag:natural=wetland
     natural=wood: Pl:Tag:natural=wood
+    network=lhn: Pl:Tag:network=lhn
+    network=rhn: Pl:Tag:network=rhn
+    office=accountant: Pl:Tag:office=accountant
+    office=adoption_agency: Pl:Tag:office=adoption agency
+    office=advertising_agency: Pl:Tag:office=advertising agency
+    office=architect: Pl:Tag:office=architect
+    office=association: Pl:Tag:office=association
+    office=charity: Pl:Tag:office=charity
+    office=company: Pl:Tag:office=company
+    office=educational_institution: Pl:Tag:office=educational institution
+    office=employment_agency: Pl:Tag:office=employment agency
+    office=energy_supplier: Pl:Tag:office=energy supplier
+    office=estate_agent: Pl:Tag:office=estate agent
+    office=forestry: Pl:Tag:office=forestry
+    office=foundation: Pl:Tag:office=foundation
+    office=geodesist: Pl:Tag:office=geodesist
     office=government: Pl:Tag:office=government
+    office=guide: Pl:Tag:office=guide
+    office=insurance: Pl:Tag:office=insurance
+    office=it: Pl:Tag:office=it
+    office=lawyer: Pl:Tag:office=lawyer
     office=logistics: Pl:Tag:office=logistics
+    office=moving_company: Pl:Tag:office=moving company
+    office=newspaper: Pl:Tag:office=newspaper
+    office=ngo: Pl:Tag:office=ngo
+    office=notary: Pl:Tag:office=notary
+    office=political_party: Pl:Tag:office=political party
+    office=private_investigator: Pl:Tag:office=private investigator
+    office=property_management: Pl:Tag:office=property management
+    office=quango: Pl:Tag:office=quango
     office=religion: Pl:Tag:office=religion
+    office=research: Pl:Tag:office=research
+    office=tax_advisor: Pl:Tag:office=tax advisor
+    office=telecommunication: Pl:Tag:office=telecommunication
+    office=therapist: Pl:Tag:office=therapist
+    office=tourist_accommodation: Pl:Tag:office=tourist accommodation
+    office=water_utility: Pl:Tag:office=water utility
+    parking:lane:hgv=on_street: Pl:Tag:parking:lane:hgv=on street
     place=allotments: Pl:Tag:place=allotments
     place=city: Pl:Tag:place=city
     place=farm: Pl:Tag:place=farm
@@ -12809,12 +13925,14 @@ pl:
     power=tower: Pl:Tag:power=tower
     power=transformer: Pl:Tag:power=transformer
     public_transport=platform: Pl:Tag:public transport=platform
+    public_transport=station: Pl:Tag:public transport=station
     public_transport=stop_area: Pl:Tag:public transport=stop area
     public_transport=stop_position: Pl:Tag:public transport=stop position
     railway=abandoned: Pl:Tag:railway=abandoned
     railway=buffer_stop: Pl:Tag:railway=buffer stop
     railway=crossing: Pl:Tag:railway=crossing
     railway=crossing_controller: Pl:Tag:railway=crossing controller
+    railway=disused: Pl:Tag:railway=disused
     railway=level_crossing: Pl:Tag:railway=level crossing
     railway=rail: Pl:Tag:railway=rail
     railway=tram_stop: Pl:Tag:railway=tram stop
@@ -12822,6 +13940,8 @@ pl:
     religion=jewish: Pl:Tag:religion=jewish
     religion=muslim: Pl:Tag:religion=muslim
     religion=pagan: Pl:Tag:religion=pagan
+    route=hiking: Pl:Tag:route=hiking
+    route=horse: Pl:Tag:route=horse
     service=alley: Pl:Tag:service=alley
     service=drive-through: Pl:Tag:service=drive-through
     service=driveway: Pl:Tag:service=driveway
@@ -12832,22 +13952,40 @@ pl:
     service=spur: Pl:Tag:service=spur
     service=yard: Pl:Tag:service=yard
     shop=agrarian: Pl:Tag:shop=agrarian
+    shop=alcohol: Pl:Tag:shop=alcohol
+    shop=appliance: Pl:Tag:shop=appliance
     shop=baby_goods: Pl:Tag:shop=baby goods
+    shop=bag: Pl:Tag:shop=bag
     shop=bakery: Pl:Tag:shop=bakery
     shop=bathroom_furnishing: Pl:Tag:shop=bathroom furnishing
     shop=beauty: Pl:Tag:shop=beauty
     shop=bed: Pl:Tag:shop=bed
+    shop=beverages: Pl:Tag:shop=beverages
     shop=bicycle: Pl:Tag:shop=bicycle
     shop=boutique: Pl:Tag:shop=boutique
+    shop=brewing_supplies: Pl:Tag:shop=brewing supplies
     shop=butcher: Pl:Tag:shop=butcher
+    shop=camera: Pl:Tag:shop=camera
     shop=car: Pl:Tag:shop=car
     shop=car_repair: Pl:Tag:shop=car repair
+    shop=cheese: Pl:Tag:shop=cheese
+    shop=chocolate: Pl:Tag:shop=chocolate
     shop=clothes: Pl:Tag:shop=clothes
+    shop=coffee: Pl:Tag:shop=coffee
+    shop=collector: Pl:Tag:shop=collector
     shop=confectionery: Pl:Tag:shop=confectionery
     shop=convenience: Pl:Tag:shop=convenience
+    shop=copyshop: Pl:Tag:shop=copyshop
+    shop=curtain: Pl:Tag:shop=curtain
+    shop=dairy: Pl:Tag:shop=dairy
+    shop=deli: Pl:Tag:shop=deli
     shop=department_store: Pl:Tag:shop=department store
     shop=doityourself: Pl:Tag:shop=doityourself
+    shop=dry_cleaning: Pl:Tag:shop=dry cleaning
+    shop=equestrian: Pl:Tag:shop=equestrian
     shop=erotic: Pl:Tag:shop=erotic
+    shop=fabric: Pl:Tag:shop=fabric
+    shop=farm: Pl:Tag:shop=farm
     shop=fishing: Pl:Tag:shop=fishing
     shop=fishmonger: Pl:Tag:shop=fishmonger
     shop=florist: Pl:Tag:shop=florist
@@ -12856,27 +13994,55 @@ pl:
     shop=garden_centre: Pl:Tag:shop=garden centre
     shop=gas: Pl:Tag:shop=gas
     shop=general: Pl:Tag:shop=general
+    shop=greengrocer: Pl:Tag:shop=greengrocer
     shop=haberdashery: Pl:Tag:shop=haberdashery
     shop=hairdresser: Pl:Tag:shop=hairdresser
+    shop=health_food: Pl:Tag:shop=health food
     shop=herbalist: Pl:Tag:shop=herbalist
     shop=houseware: Pl:Tag:shop=houseware
+    shop=hunting: Pl:Tag:shop=hunting
     shop=ice_cream: Pl:Tag:shop=ice cream
     shop=kiosk: Pl:Tag:shop=kiosk
     shop=kitchen: Pl:Tag:shop=kitchen
+    shop=laundry: Pl:Tag:shop=laundry
+    shop=leather: Pl:Tag:shop=leather
+    shop=lighting: Pl:Tag:shop=lighting
     shop=mall: Pl:Tag:shop=mall
+    shop=medical_supply: Pl:Tag:shop=medical supply
+    shop=optician: Pl:Tag:shop=optician
     shop=pastry: Pl:Tag:shop=pastry
+    shop=pet: Pl:Tag:shop=pet
+    shop=pet_grooming: Pl:Tag:shop=pet grooming
+    shop=pyrotechnics: Pl:Tag:shop=pyrotechnics
+    shop=religion: Pl:Tag:shop=religion
+    shop=rental: Pl:Tag:shop=rental
+    shop=seafood: Pl:Tag:shop=seafood
     shop=second_hand: Pl:Tag:shop=second hand
+    shop=sewing: Pl:Tag:shop=sewing
+    shop=shoes: Pl:Tag:shop=shoes
+    shop=spices: Pl:Tag:shop=spices
+    shop=stationery: Pl:Tag:shop=stationery
     shop=supermarket: Pl:Tag:shop=supermarket
+    shop=tattoo: Pl:Tag:shop=tattoo
     shop=tea: Pl:Tag:shop=tea
     shop=ticket: Pl:Tag:shop=ticket
     shop=travel_agency: Pl:Tag:shop=travel agency
     shop=tyres: Pl:Tag:shop=tyres
     shop=vacant: Pl:Tag:shop=vacant
     shop=variety_store: Pl:Tag:shop=variety store
+    shop=water: Pl:Tag:shop=water
+    shop=wholesale: Pl:Tag:shop=wholesale
+    shop=wine: Pl:Tag:shop=wine
     shop=yes: Pl:Tag:shop=yes
     social_facility=outreach: Pl:Tag:social facility=outreach
+    sport=10pin: Pl:Tag:sport=10pin
+    sport=9pin: Pl:Tag:sport=9pin
     sport=aikido: Pl:Tag:sport=aikido
+    sport=american_football: Pl:Tag:sport=american football
     sport=climbing: Pl:Tag:sport=climbing
+    sport=equestrian: Pl:Tag:sport=equestrian
+    sport=ice_hockey: Pl:Tag:sport=ice hockey
+    sport=soccer: Pl:Tag:sport=soccer
     tourism=alpine_hut: Pl:Tag:tourism=alpine hut
     tourism=apartment: Pl:Tag:tourism=apartment
     tourism=aquarium: Pl:Tag:tourism=aquarium
@@ -12900,9 +14066,14 @@ pl:
     tourism=viewpoint: Pl:Tag:tourism=viewpoint
     tourism=wilderness_hut: Pl:Tag:tourism=wilderness hut
     tourism=wine_cellar: Pl:Tag:tourism=wine cellar
-    tourism=yes: Pl:Tag:tourism=yes
     tourism=zoo: Pl:Tag:tourism=zoo
     tower:type=bell_tower: Pl:Tag:tower:type=bell tower
+    tower:type=communication: Pl:Tag:tower:type=communication
+    tower:type=cooling: Pl:Tag:tower:type=cooling
+    tower:type=defensive: Pl:Tag:tower:type=defensive
+    tower:type=lighting: Pl:Tag:tower:type=lighting
+    tower:type=minaret: Pl:Tag:tower:type=minaret
+    tower:type=observation: Pl:Tag:tower:type=observation
     traffic_calming=island: Pl:Tag:traffic calming=island
     traffic_calming=table: Pl:Tag:traffic calming=table
     traffic_sign=city_limit: Pl:Tag:traffic sign=city limit
@@ -12910,9 +14081,13 @@ pl:
     type=public_transport: Pl:Tag:type=public transport
     vending=bottle_return: Pl:Tag:vending=bottle return
     vending=candles: Pl:Tag:vending=candles
+    vending=food: Pl:Tag:vending=food
+    vending=fuel: Pl:Tag:vending=fuel
+    vending=milk: Pl:Tag:vending=milk
     wall=noise_barrier: Pl:Tag:wall=noise barrier
     water=lake: Pl:Tag:water=lake
     water=lock: Pl:Tag:water=lock
+    water=reservoir: Pl:Tag:water=reservoir
     waterway=boat_lift: Pl:Tag:waterway=boat lift
     waterway=boatyard: Pl:Tag:waterway=boatyard
     waterway=brook: Pl:Tag:waterway=brook
@@ -12985,7 +14160,7 @@ pt:
     building:part: Pt:Key:building:part
     button_operated: Pt:Key:button operated
     cables: Pt:Key:cables
-    cep: Pt:Key:cep
+    capacity: Pt:Key:capacity
     construction: Pt:Key:construction
     contact: Pt:Key:contact
     country: Pt:Key:country
@@ -13004,12 +14179,14 @@ pt:
     electrified: Pt:Key:electrified
     embankment: Pt:Key:embankment
     emergency: Pt:Key:emergency
+    fence_type: Pt:Key:fence type
     fenced: Pt:Key:fenced
     fishing: Pt:Key:fishing
     foot: Pt:Key:foot
     frequency: Pt:Key:frequency
     generator:method: Pt:Key:generator:method
     geological: Pt:Key:geological
+    group_only: Pt:Key:group only
     happy_hours: Pt:Key:happy hours
     height: Pt:Key:height
     heritage: Pt:Key:heritage
@@ -13040,6 +14217,7 @@ pt:
     maxheight:marine: Pt:Key:maxheight:marine
     maxheight:physical: Pt:Key:maxheight:physical
     maxspeed: Pt:Key:maxspeed
+    maxspeed:advisory: Pt:Key:maxspeed:advisory
     maxweight: Pt:Key:maxweight
     military: Pt:Key:military
     min_height: Pt:Key:min height
@@ -13065,6 +14243,7 @@ pt:
     population: Pt:Key:population
     postal_code: Pt:Key:postal code
     power: Pt:Key:power
+    product: Pt:Key:product
     psv: Pt:Key:psv
     public_transport: Pt:Key:public transport
     public_transport:version: Pt:Key:public transport:version
@@ -13087,6 +14266,7 @@ pt:
     sidewalk: Pt:Key:sidewalk
     ski: Pt:Key:ski
     smoothness: Pt:Key:smoothness
+    social_facility: Pt:Key:social facility
     source: Pt:Key:source
     sport: Pt:Key:sport
     substance: Pt:Key:substance
@@ -13112,15 +14292,29 @@ pt:
     wires: Pt:Key:wires
   tag:
     aerialway=cable_car: Pt:Tag:aerialway=cable car
+    aerialway=chair_lift: Pt:Tag:aerialway=chair lift
+    aerialway=drag_lift: Pt:Tag:aerialway=drag lift
+    aerialway=gondola: Pt:Tag:aerialway=gondola
+    aerialway=j-bar: Pt:Tag:aerialway=j-bar
+    aerialway=magic_carpet: Pt:Tag:aerialway=magic carpet
+    aerialway=mixed_lift: Pt:Tag:aerialway=mixed lift
+    aerialway=platter: Pt:Tag:aerialway=platter
+    aerialway=pylon: Pt:Tag:aerialway=pylon
+    aerialway=rope_tow: Pt:Tag:aerialway=rope tow
     aerialway=station: Pt:Tag:aerialway=station
+    aerialway=t-bar: Pt:Tag:aerialway=t-bar
+    aerialway=zip_line: Pt:Tag:aerialway=zip line
     aeroway=aerodrome: Pt:Tag:aeroway=aerodrome
     aeroway=apron: Pt:Tag:aeroway=apron
     aeroway=gate: Pt:Tag:aeroway=gate
     aeroway=hangar: Pt:Tag:aeroway=hangar
     aeroway=helipad: Pt:Tag:aeroway=helipad
+    aeroway=heliport: Pt:Tag:aeroway=heliport
     aeroway=holding_position: Pt:Tag:aeroway=holding position
+    aeroway=navigationaid: Pt:Tag:aeroway=navigationaid
     aeroway=parking_position: Pt:Tag:aeroway=parking position
     aeroway=runway: Pt:Tag:aeroway=runway
+    aeroway=taxilane: Pt:Tag:aeroway=taxilane
     aeroway=taxiway: Pt:Tag:aeroway=taxiway
     aeroway=terminal: Pt:Tag:aeroway=terminal
     aeroway=windsock: Pt:Tag:aeroway=windsock
@@ -13251,6 +14445,8 @@ pt:
     building=residential: Pt:Tag:building=residential
     building=roof: Pt:Tag:building=roof
     building=school: Pt:Tag:building=school
+    building=shed: Pt:Tag:building=shed
+    building=university: Pt:Tag:building=university
     building=yes: Pt:Tag:building=yes
     craft=agricultural_engines: Pt:Tag:craft=agricultural engines
     craft=basket_maker: Pt:Tag:craft=basket maker
@@ -14422,11 +15618,16 @@ ru:
     addr:suburb: RU:Key:addr:suburb
     aerialway: RU:Key:aerialway
     aeroway: RU:Key:aeroway
+    agricultural: RU:Key:agricultural
     alt_name: RU:Key:alt name
     amenity: RU:Key:amenity
+    anthropogenic: RU:Key:anthropogenic
+    architect: RU:Key:architect
     area: RU:Key:area
     area:highway: RU:Key:area:highway
+    artist_name: RU:Key:artist name
     artwork_type: RU:Key:artwork type
+    backcountry: RU:Key:backcountry
     barrier: RU:Key:barrier
     bench: RU:Key:bench
     bicycle: RU:Key:bicycle
@@ -14437,11 +15638,14 @@ ru:
     border_type: RU:Key:border type
     boundary: RU:Key:boundary
     brand: RU:Key:brand
+    brand:wikidata: RU:Key:brand:wikidata
     bridge: RU:Key:bridge
+    bridge:support: RU:Key:bridge:support
     building: RU:Key:building
     building:architecture: RU:Key:building:architecture
     building:height: RU:Key:building:height
     building:levels: RU:Key:building:levels
+    building:levels:underground: RU:Key:building:levels:underground
     building:material: RU:Key:building:material
     building:min_level: RU:Key:building:min level
     building:part: RU:Key:building:part
@@ -14451,12 +15655,14 @@ ru:
     bus: RU:Key:bus
     cafe: RU:Key:cafe
     capacity: RU:Key:capacity
+    cemetery: RU:Key:cemetery
     check_date: RU:Key:check date
     checkpoint: RU:Key:checkpoint
     clothes: RU:Key:clothes
     club: RU:Key:club
     colour: RU:Key:colour
     comment: RU:Key:comment
+    community_centre: RU:Key:community centre
     construction: RU:Key:construction
     contact: RU:Key:contact
     contact:facebook: RU:Key:contact:facebook
@@ -14472,6 +15678,7 @@ ru:
     crossing: RU:Key:crossing
     cuisine: RU:Key:cuisine
     cutting: RU:Key:cutting
+    cycleway: RU:Key:cycleway
     delivery: RU:Key:delivery
     denomination: RU:Key:denomination
     description: RU:Key:description
@@ -14526,6 +15733,7 @@ ru:
     grassland: RU:Key:grassland
     gvr:code: RU:Key:gvr:code
     handrail: RU:Key:handrail
+    healthcare: RU:Key:healthcare
     height: RU:Key:height
     hgv: RU:Key:hgv
     highway: RU:Key:highway
@@ -14543,6 +15751,7 @@ ru:
     internet_access: RU:Key:internet access
     junction: RU:Key:junction
     kerb: RU:Key:kerb
+    lamp_mount: RU:Key:lamp mount
     landmark: RU:Key:landmark
     landuse: RU:Key:landuse
     lanes: RU:Key:lanes
@@ -14557,6 +15766,7 @@ ru:
     living_street: RU:Key:living street
     loc_name: RU:Key:loc name
     loc_ref: RU:Key:loc ref
+    location: RU:Key:location
     lock: RU:Key:lock
     man_made: RU:Key:man made
     managed: RU:Key:managed
@@ -14597,7 +15807,9 @@ ru:
     oneway: RU:Key:oneway
     opening_date: RU:Key:opening date
     opening_hours: RU:Key:opening hours
+    opening_hours:kitchen: RU:Key:opening hours:kitchen
     operator: RU:Key:operator
+    operator:ref:inn: RU:Key:operator:ref:inn
     operator:type: RU:Key:operator:type
     origin: RU:Key:origin
     overtaking: RU:Key:overtaking
@@ -14627,6 +15839,7 @@ ru:
     previous:access: RU:Key:previous:access
     previous:vehicle: RU:Key:previous:vehicle
     priority_road: RU:Key:priority road
+    product: RU:Key:product
     psv: RU:Key:psv
     public_bookcase:type: RU:Key:public bookcase:type
     pump: RU:Key:pump
@@ -14635,17 +15848,21 @@ ru:
     recycling_type: RU:Key:recycling type
     ref: RU:Key:ref
     reference: RU:Key:reference
+    refitted: RU:Key:refitted
     reg_name: RU:Key:reg name
     reg_ref: RU:Key:reg ref
     religion: RU:Key:religion
     resource: RU:Key:resource
+    roof:direction: RU:Key:roof:direction
     roof:material: RU:Key:roof:material
+    room: RU:Key:room
     rooms: RU:Key:rooms
     route: RU:Key:route
     rtsa_scale: RU:Key:rtsa scale
     ruined: RU:Key:ruined
     'ruined:': 'RU:Key:ruined:'
     ruins: RU:Key:ruins
+    sac_scale: RU:Key:sac scale
     salt: RU:Key:salt
     sanitary_dump_station: RU:Key:sanitary dump station
     seasonal: RU:Key:seasonal
@@ -14659,6 +15876,7 @@ ru:
     shop: RU:Key:shop
     side_road: RU:Key:side road
     sidewalk: RU:Key:sidewalk
+    sinkhole: RU:Key:sinkhole
     smoking: RU:Key:smoking
     smoothness: RU:Key:smoothness
     snowplowing: RU:Key:snowplowing
@@ -14677,6 +15895,7 @@ ru:
     survey:date: RU:Key:survey:date
     tactile_paving: RU:Key:tactile paving
     todo: RU:Key:todo
+    toilets: RU:Key:toilets
     toilets:wheelchair: RU:Key:toilets:wheelchair
     toll: RU:Key:toll
     tourism: RU:Key:tourism
@@ -14690,6 +15909,7 @@ ru:
     turn: RU:Key:turn
     turn:lanes: RU:Key:turn:lanes
     type: RU:Key:type
+    usage: RU:Key:usage
     vehicle: RU:Key:vehicle
     voltage: RU:Key:voltage
     waste: RU:Key:waste
@@ -14755,6 +15975,7 @@ ru:
     amenity=cinema: RU:Tag:amenity=cinema
     amenity=clinic: RU:Tag:amenity=clinic
     amenity=clock: RU:Tag:amenity=clock
+    amenity=clothes_dryer: RU:Tag:amenity=clothes dryer
     amenity=college: RU:Tag:amenity=college
     amenity=community_centre: RU:Tag:amenity=community centre
     amenity=compressed_air: RU:Tag:amenity=compressed air
@@ -14799,6 +16020,7 @@ ru:
     amenity=place_of_worship: RU:Tag:amenity=place of worship
     amenity=planetarium: RU:Tag:amenity=planetarium
     amenity=police: RU:Tag:amenity=police
+    amenity=polling_station: RU:Tag:amenity=polling station
     amenity=post_box: RU:Tag:amenity=post box
     amenity=post_office: RU:Tag:amenity=post office
     amenity=prison: RU:Tag:amenity=prison
@@ -14808,6 +16030,7 @@ ru:
     amenity=recycling: RU:Tag:amenity=recycling
     amenity=register_office: RU:Tag:amenity=register office
     amenity=rescue_station: RU:Tag:amenity=rescue station
+    amenity=research_institute: RU:Tag:amenity=research institute
     amenity=restaurant: RU:Tag:amenity=restaurant
     amenity=sanatorium: RU:Tag:amenity=sanatorium
     amenity=sanitary_dump_station: RU:Tag:amenity=sanitary dump station
@@ -14845,6 +16068,7 @@ ru:
     barrier=ditch: RU:Tag:barrier=ditch
     barrier=entrance: RU:Tag:barrier=entrance
     barrier=fence: RU:Tag:barrier=fence
+    barrier=full-height_turnstile: RU:Tag:barrier=full-height turnstile
     barrier=gate: RU:Tag:barrier=gate
     barrier=handrail: RU:Tag:barrier=handrail
     barrier=hedge: RU:Tag:barrier=hedge
@@ -14877,6 +16101,7 @@ ru:
     bridge=covered: RU:Tag:bridge=covered
     building=apartments: RU:Tag:building=apartments
     building=barn: RU:Tag:building=barn
+    building=boathouse: RU:Tag:building=boathouse
     building=bridge: RU:Tag:building=bridge
     building=bungalow: RU:Tag:building=bungalow
     building=bunker: RU:Tag:building=bunker
@@ -14903,6 +16128,7 @@ ru:
     building=kindergarten: RU:Tag:building=kindergarten
     building=kiosk: RU:Tag:building=kiosk
     building=mosque: RU:Tag:building=mosque
+    building=office: RU:Tag:building=office
     building=public: RU:Tag:building=public
     building=residential: RU:Tag:building=residential
     building=retail: RU:Tag:building=retail
@@ -14917,8 +16143,10 @@ ru:
     building=transportation: RU:Tag:building=transportation
     building=university: RU:Tag:building=university
     building=warehouse: RU:Tag:building=warehouse
+    building=water_tower: RU:Tag:building=water tower
     bunker_type=pillbox: RU:Tag:bunker type=pillbox
     cafe=time-cafe: RU:Tag:cafe=time-cafe
+    cemetery=grave: RU:Tag:cemetery=grave
     craft=agricultural_engines: RU:Tag:craft=agricultural engines
     craft=basket_maker: RU:Tag:craft=basket maker
     craft=beekeeper: RU:Tag:craft=beekeeper
@@ -14936,12 +16164,14 @@ ru:
     craft=handicraft: RU:Tag:craft=handicraft
     craft=key_cutter: RU:Tag:craft=key cutter
     craft=photographer: RU:Tag:craft=photographer
+    craft=roofer: RU:Tag:craft=roofer
     craft=shoemaker: RU:Tag:craft=shoemaker
     craft=stonemason: RU:Tag:craft=stonemason
     craft=tailor: RU:Tag:craft=tailor
     craft=window_construction: RU:Tag:craft=window construction
     crop=grape: RU:Tag:crop=grape
     crop=hop: RU:Tag:crop=hop
+    cycleway=opposite_lane: RU:Tag:cycleway=opposite lane
     emergency=ambulance_station: RU:Tag:emergency=ambulance station
     emergency=fire_extinguisher: RU:Tag:emergency=fire extinguisher
     emergency=fire_hose: RU:Tag:emergency=fire hose
@@ -14957,6 +16187,7 @@ ru:
     generator:type=boiler: RU:Tag:generator:type=boiler
     geological=palaeontological_site: RU:Tag:geological=palaeontological site
     healthcare=blood_donation: RU:Tag:healthcare=blood donation
+    healthcare=laboratory: RU:Tag:healthcare=laboratory
     highway=bridleway: RU:Tag:highway=bridleway
     highway=bus_guideway: RU:Tag:highway=bus guideway
     highway=bus_stop: RU:Tag:highway=bus stop
@@ -14980,6 +16211,7 @@ ru:
     highway=platform: RU:Tag:highway=platform
     highway=primary: RU:Tag:highway=primary
     highway=primary_link: RU:Tag:highway=primary link
+    highway=proposed: RU:Tag:highway=proposed
     highway=raceway: RU:Tag:highway=raceway
     highway=residential: RU:Tag:highway=residential
     highway=rest_area: RU:Tag:highway=rest area
@@ -14991,6 +16223,7 @@ ru:
     highway=speed_camera: RU:Tag:highway=speed camera
     highway=steps: RU:Tag:highway=steps
     highway=stop: RU:Tag:highway=stop
+    highway=street_lamp: RU:Tag:highway=street lamp
     highway=tertiary: RU:Tag:highway=tertiary
     highway=tertiary_link: RU:Tag:highway=tertiary link
     highway=track: RU:Tag:highway=track
@@ -15020,11 +16253,14 @@ ru:
     historic=wayside_shrine: RU:Tag:historic=wayside shrine
     historic=wreck: RU:Tag:historic=wreck
     horse=designated: RU:Tag:horse=designated
+    industrial=factory: RU:Tag:industrial=factory
+    industrial=warehouse: RU:Tag:industrial=warehouse
     industrial=well_cluster: RU:Tag:industrial=well cluster
     information=board: RU:Tag:information=board
     information=guidepost: RU:Tag:information=guidepost
     junction=roundabout: RU:Tag:junction=roundabout
     landuse=allotments: RU:Tag:landuse=allotments
+    landuse=animal_keeping: RU:Tag:landuse=animal keeping
     landuse=basin: RU:Tag:landuse=basin
     landuse=brownfield: RU:Tag:landuse=brownfield
     landuse=cemetery: RU:Tag:landuse=cemetery
@@ -15038,6 +16274,7 @@ ru:
     landuse=grass: RU:Tag:landuse=grass
     landuse=greenhouse_horticulture: RU:Tag:landuse=greenhouse horticulture
     landuse=industrial: RU:Tag:landuse=industrial
+    landuse=institutional: RU:Tag:landuse=institutional
     landuse=landfill: RU:Tag:landuse=landfill
     landuse=logging: RU:Tag:landuse=logging
     landuse=meadow: RU:Tag:landuse=meadow
@@ -15069,7 +16306,9 @@ ru:
     leisure=escape_game: RU:Tag:leisure=escape game
     leisure=firepit: RU:Tag:leisure=firepit
     leisure=fitness_centre: RU:Tag:leisure=fitness centre
+    leisure=fitness_station: RU:Tag:leisure=fitness station
     leisure=hackerspace: RU:Tag:leisure=hackerspace
+    leisure=horse_riding: RU:Tag:leisure=horse riding
     leisure=ice_rink: RU:Tag:leisure=ice rink
     leisure=marina: RU:Tag:leisure=marina
     leisure=miniature_golf: RU:Tag:leisure=miniature golf
@@ -15077,6 +16316,7 @@ ru:
     leisure=pitch: RU:Tag:leisure=pitch
     leisure=playground: RU:Tag:leisure=playground
     leisure=resort: RU:Tag:leisure=resort
+    leisure=slipway: RU:Tag:leisure=slipway
     leisure=sports_centre: RU:Tag:leisure=sports centre
     leisure=stadium: RU:Tag:leisure=stadium
     leisure=summer_camp: RU:Tag:leisure=summer camp
@@ -15089,13 +16329,16 @@ ru:
     man_made=bridge: RU:Tag:man made=bridge
     man_made=bunker_silo: RU:Tag:man made=bunker silo
     man_made=campanile: RU:Tag:man made=campanile
+    man_made=carpet_hanger: RU:Tag:man made=carpet hanger
     man_made=clearcut: RU:Tag:man made=clearcut
     man_made=communications_tower: RU:Tag:man made=communications tower
+    man_made=cooling_tower: RU:Tag:man made=cooling tower
     man_made=crane: RU:Tag:man made=crane
     man_made=cutline: RU:Tag:man made=cutline
     man_made=dovecote: RU:Tag:man made=dovecote
     man_made=dyke: RU:Tag:man made=dyke
     man_made=embankment: RU:Tag:man made=embankment
+    man_made=flagpole: RU:Tag:man made=flagpole
     man_made=lighthouse: RU:Tag:man made=lighthouse
     man_made=mast: RU:Tag:man made=mast
     man_made=mineshaft: RU:Tag:man made=mineshaft
@@ -15113,6 +16356,7 @@ ru:
     man_made=telescope: RU:Tag:man made=telescope
     man_made=tower: RU:Tag:man made=tower
     man_made=wastewater_plant: RU:Tag:man made=wastewater plant
+    man_made=water_tap: RU:Tag:man made=water tap
     man_made=water_tower: RU:Tag:man made=water tower
     man_made=water_well: RU:Tag:man made=water well
     man_made=water_works: RU:Tag:man made=water works
@@ -15122,6 +16366,7 @@ ru:
     man_made=works: RU:Tag:man made=works
     military=airfield: RU:Tag:military=airfield
     military=bunker: RU:Tag:military=bunker
+    military=checkpoint: RU:Tag:military=checkpoint
     military=naval_base: RU:Tag:military=naval base
     name=Продукты: RU:Tag:name=Продукты
     natural=arete: RU:Tag:natural=arete
@@ -15133,10 +16378,12 @@ ru:
     natural=desert: RU:Tag:natural=desert
     natural=earth_bank: RU:Tag:natural=earth bank
     natural=fell: RU:Tag:natural=fell
+    natural=geyser: RU:Tag:natural=geyser
     natural=glacier: RU:Tag:natural=glacier
     natural=grassland: RU:Tag:natural=grassland
     natural=gully: RU:Tag:natural=gully
     natural=heath: RU:Tag:natural=heath
+    natural=hot_spring: RU:Tag:natural=hot spring
     natural=mud: RU:Tag:natural=mud
     natural=peak: RU:Tag:natural=peak
     natural=ridge: RU:Tag:natural=ridge
@@ -15147,6 +16394,7 @@ ru:
     natural=shingle: RU:Tag:natural=shingle
     natural=sinkhole: RU:Tag:natural=sinkhole
     natural=spring: RU:Tag:natural=spring
+    natural=stone: RU:Tag:natural=stone
     natural=tree: RU:Tag:natural=tree
     natural=tree_row: RU:Tag:natural=tree row
     natural=valley: RU:Tag:natural=valley
@@ -15225,6 +16473,7 @@ ru:
     railway=turntable: RU:Tag:railway=turntable
     religion=pagan: RU:Tag:religion=pagan
     religion=zoroastrian: RU:Tag:religion=zoroastrian
+    residential=rural: RU:Tag:residential=rural
     route=bus: RU:Tag:route=bus
     route=ferry: RU:Tag:route=ferry
     route=railway: RU:Tag:route=railway
@@ -15286,6 +16535,7 @@ ru:
     shop=fashion: RU:Tag:shop=fashion
     shop=fishing: RU:Tag:shop=fishing
     shop=fishmonger: RU:Tag:shop=fishmonger
+    shop=flooring: RU:Tag:shop=flooring
     shop=florist: RU:Tag:shop=florist
     shop=frame: RU:Tag:shop=frame
     shop=funeral_directors: RU:Tag:shop=funeral directors
@@ -15322,9 +16572,11 @@ ru:
     shop=optician: RU:Tag:shop=optician
     shop=organic: RU:Tag:shop=organic
     shop=outdoor: RU:Tag:shop=outdoor
+    shop=outpost: RU:Tag:shop=outpost
     shop=paint: RU:Tag:shop=paint
     shop=pawnbroker: RU:Tag:shop=pawnbroker
     shop=pet: RU:Tag:shop=pet
+    shop=pet_grooming: RU:Tag:shop=pet grooming
     shop=power_tools: RU:Tag:shop=power tools
     shop=radiotechnics: RU:Tag:shop=radiotechnics
     shop=religion: RU:Tag:shop=religion
@@ -15332,6 +16584,7 @@ ru:
     shop=second_hand: RU:Tag:shop=second hand
     shop=ship_chandler: RU:Tag:shop=ship chandler
     shop=shoes: RU:Tag:shop=shoes
+    shop=spices: RU:Tag:shop=spices
     shop=sports: RU:Tag:shop=sports
     shop=stationery: RU:Tag:shop=stationery
     shop=supermarket: RU:Tag:shop=supermarket
@@ -15350,12 +16603,16 @@ ru:
     shop=watches: RU:Tag:shop=watches
     shop=wholesale: RU:Tag:shop=wholesale
     shop=window_blind: RU:Tag:shop=window blind
+    sinkhole=bluehole: RU:Tag:sinkhole=bluehole
     social_facility=group_home: RU:Tag:social facility=group home
     sport=archery: RU:Tag:sport=archery
+    sport=futsal: RU:Tag:sport=futsal
+    sport=horse_racing: RU:Tag:sport=horse racing
     sport=motocross: RU:Tag:sport=motocross
     sport=motor: RU:Tag:sport=motor
     sport=scuba_diving: RU:Tag:sport=scuba diving
     sport=shooting: RU:Tag:sport=shooting
+    summit:cross=yes: RU:Tag:summit:cross=yes
     tank_trap=czech_hedgehog: RU:Tag:tank trap=czech hedgehog
     tourism=apartment: RU:Tag:tourism=apartment
     tourism=artwork: RU:Tag:tourism=artwork
@@ -15373,6 +16630,8 @@ ru:
     tourism=theme_park: RU:Tag:tourism=theme park
     tourism=viewpoint: RU:Tag:tourism=viewpoint
     tower:type=bell_tower: RU:Tag:tower:type=bell tower
+    tower:type=cooling: RU:Tag:tower:type=cooling
+    traffic_calming=table: RU:Tag:traffic calming=table
     tunnel=culvert: RU:Tag:tunnel=culvert
     type=site: RU:Tag:type=site
     waterway=boatyard: RU:Tag:waterway=boatyard
@@ -15408,6 +16667,7 @@ sv:
   key:
     access: Sv:Key:access
     name: Sv:Key:name
+    ref:raa: Sv:Key:ref:raa
   tag:
     aerialway=cable_car: Sv:Tag:aerialway=cable car
     amenity=place_of_worship: Sv:Tag:amenity=place of worship
@@ -15420,6 +16680,7 @@ sv:
     leisure=dog_park: Sv:Tag:leisure=dog park
     leisure=fitness_station: Sv:Tag:leisure=fitness station
     railway=rail: Sv:Tag:railway=rail
+    sport=motocross: Sv:Tag:sport=motocross
 tr:
   key:
     amenity: Tr:Key:amenity
@@ -15698,9 +16959,6 @@ yue:
     man_made=gasometer: Yue:Tag:man made=gasometer
     residential=university: Yue:Tag:residential=university
     tourism=attraction: Yue:Tag:tourism=attraction
-zh:
-  key:
-    name: ZH:Key:name
 zh-hans:
   key:
     amenity: Zh-hans:Key:amenity
@@ -15711,6 +16969,7 @@ zh-hans:
     highway: Zh-hans:Key:highway
     landuse: Zh-hans:Key:landuse
     name: Zh-hans:Key:name
+    parking:lane: Zh-hans:Key:parking:lane
     place: Zh-hans:Key:place
     railway: Zh-hans:Key:railway
     toll: Zh-hans:Key:toll
@@ -15720,6 +16979,7 @@ zh-hans:
     amenity=cafe: Zh-hans:Tag:amenity=cafe
     barrier=toll_booth: Zh-hans:Tag:barrier=toll booth
     barrier=wall: Zh-hans:Tag:barrier=wall
+    highway=footway: Zh-hans:Tag:highway=footway
     highway=residential: Zh-hans:Tag:highway=residential
     highway=tertiary: Zh-hans:Tag:highway=tertiary
     railway=light_rail: Zh-hans:Tag:railway=light rail
@@ -15734,9 +16994,11 @@ zh-hant:
     aeroway: Zh-hant:Key:aeroway
     amenity: Zh-hant:Key:amenity
     bridge: Zh-hant:Key:bridge
+    conveying: Zh-hant:Key:conveying
     diet:*: Zh-hant:Key:diet:*
     fixme: Zh-hant:Key:fixme
     fuel: Zh-hant:Key:fuel
+    maxspeed: Zh-hant:Key:maxspeed
     name: Zh-hant:Key:name
     noexit: Zh-hant:Key:noexit
     office: Zh-hant:Key:office
@@ -15755,14 +17017,19 @@ zh-hant:
     amenity=fountain: Zh-hant:Tag:amenity=fountain
     amenity=fuel: Zh-hant:Tag:amenity=fuel
     amenity=place_of_worship: Zh-hant:Tag:amenity=place of worship
+    amenity=post_box: Zh-hant:Tag:amenity=post box
     amenity=toilets: Zh-hant:Tag:amenity=toilets
     building=roof: Zh-hant:Tag:building=roof
+    highway=bus_guideway: Zh-hant:Tag:highway=bus guideway
     highway=bus_stop: Zh-hant:Tag:highway=bus stop
+    highway=footway: Zh-hant:Tag:highway=footway
     highway=milestone: Zh-hant:Tag:highway=milestone
+    highway=unclassified: Zh-hant:Tag:highway=unclassified
     historic=aircraft: Zh-hant:Tag:historic=aircraft
     landuse=cemetery: Zh-hant:Tag:landuse=cemetery
     leisure=pitch: Zh-hant:Tag:leisure=pitch
     natural=peak: Zh-hant:Tag:natural=peak
+    railway=rail: Zh-hant:Tag:railway=rail
     service=drive-through: Zh-hant:Tag:service=drive-through
     shop=funeral_directors: Zh-hant:Tag:shop=funeral directors
     shop=gas: Zh-hant:Tag:shop=gas
index 3232e27411fe4181c198d425e743042c86bb76b1..d1c20bcdbc2764c17d625f33cb980408a22f0359 100644 (file)
@@ -19,7 +19,7 @@ class MoveToInnodb < ActiveRecord::Migration[5.0]
       # current version to something less so that we can update the version in
       # batches of 10000
       tbl.classify.constantize.update_all(:version => -1)
-      tbl.classify.constantize.update_all("version=(SELECT max(version) FROM #{tbl} WHERE #{tbl}.id = current_#{tbl}.id)", { :version => -1 }, { :limit => 10000 }) while tbl.classify.constantize.where(:version => -1).count > 0
+      tbl.classify.constantize.update_all("version=(SELECT max(version) FROM #{tbl} WHERE #{tbl}.id = current_#{tbl}.id)", { :version => -1 }, { :limit => 10000 }) while tbl.classify.constantize.where(:version => -1).count.positive?
       # execute "UPDATE current_#{tbl} SET version = " +
       #  "(SELECT max(version) FROM #{tbl} WHERE #{tbl}.id = current_#{tbl}.id)"
       # The above update causes a MySQL error:
index 1fc5dc69698a238821e125d2ae2f26d1dff485bf..6582a30c0157ed1af60b844853df84743a33e72d 100644 (file)
@@ -61,6 +61,7 @@ class BoundingBox
     # check the bbox is sane
     raise OSM::APIBadBoundingBox, "The minimum longitude must be less than the maximum longitude, but it wasn't" if min_lon > max_lon
     raise OSM::APIBadBoundingBox, "The minimum latitude must be less than the maximum latitude, but it wasn't" if min_lat > max_lat
+
     if min_lon < -LON_LIMIT || min_lat < -LAT_LIMIT || max_lon > +LON_LIMIT || max_lat > +LAT_LIMIT
       raise OSM::APIBadBoundingBox, "The latitudes must be between #{-LAT_LIMIT} and #{LAT_LIMIT}," \
                                        " and longitudes between #{-LON_LIMIT} and #{LON_LIMIT}"
@@ -157,6 +158,7 @@ class BoundingBox
 
     def from_bbox_array(bbox_array)
       raise OSM::APIBadUserInput, "The parameter bbox is required, and must be of the form min_lon,min_lat,max_lon,max_lat" unless bbox_array
+
       # Take an array of length 4, create a bounding box with min_lon, min_lat, max_lon and
       # max_lat within their respective boundaries.
       min_lon = [[bbox_array[0].to_f, -LON_LIMIT].max, +LON_LIMIT].min
index 328237d52b35ef3222b4656a6496b70deb0d376c..811d09239d0fe5a325e3aca04204d86470434af5 100644 (file)
@@ -316,6 +316,7 @@ module ActionController
         # same page number).
         def ==(other)
           return false if other.nil?
+
           @paginator == other.paginator &&
             @number == other.number
         end
@@ -326,6 +327,7 @@ module ActionController
         # if the pages do not belong to the same Paginator object.
         def <=>(other)
           raise ArgumentError unless @paginator == other.paginator
+
           @number <=> other.number
         end
 
@@ -396,7 +398,7 @@ module ActionController
         # Sets the window's padding (the number of pages on either side of the
         # window page).
         def padding=(padding)
-          @padding = padding < 0 ? 0 : padding
+          @padding = padding.negative? ? 0 : padding
           # Find the beginning and end pages of the window
           @first = if @paginator.has_page_number?(@page.number - @padding)
                      @paginator[@page.number - @padding]
index 4445d1ec081aaefcd5ff193f95daf3384728d56e..a0344b58c95f9495c35537fbfcbddd49b900dff7 100755 (executable)
@@ -20,7 +20,7 @@ loop do
     begin
       gpx = trace.import
 
-      if gpx.actual_points > 0
+      if gpx.actual_points.positive?
         Notifier.gpx_success(trace, gpx.actual_points).deliver
       else
         Notifier.gpx_failure(trace, "0 points parsed ok. Do they all have lat,lng,alt,timestamp?").deliver
index e4a66f9324d81df17129aea5844fa7f65e9cbe59..e02734ec909dc8064f78d2cf8e17455287939911 100644 (file)
@@ -29,6 +29,7 @@ module GeoRecord
   def in_world?
     return false if lat < -90 || lat > 90
     return false if lon < -180 || lon > 180
+
     true
   end
 
index ee9d53afaa0fea65cfe403f5ae9cb26fb71c3167..8510df916821b7fc3aa615f54a880e81bd6bce3d 100644 (file)
@@ -79,7 +79,7 @@ module GPX
         px = proj.x(p.longitude)
         py = proj.y(p.latitude)
 
-        if m > 0
+        if m.positive?
           frames.times do |n|
             gc = if n == mm
                    highlightgc.dup
index 6fe0b0152a8808157e5a12f6696f7fc75f457c33..49e1e7a7404af3a6f248e57e650b98f84a3f8f02 100644 (file)
@@ -38,6 +38,7 @@ module Potlatch
       arr = {}
       while (key = getstring(s))
         break if key == ""
+
         arr[key] = getvalue(s)
       end
       s.getbyte # skip the 9 'end of object' value
index 7865d62039566855efc105f54b7682d18974cd46..613e3005ea68aedf5815f0c37e023fda557ced8d 100644 (file)
@@ -4,6 +4,7 @@ module UTF8
   # using the iconv library, which is in the standard library.
   def self.valid?(str)
     return true if str.nil?
+
     str.valid_encoding?
   end
 end
index 98e00d3328bdbab946a0e07f33f529b9182cc4ea..2c440c3ec60144b00d6cb571dae9ec8e3569df4e 100755 (executable)
@@ -23,7 +23,7 @@ end
 exit 0 unless token == digest[0, 6]
 exit 0 if date < 1.month.ago
 
-message.update(:message_read => true) if message
+message&.update(:message_read => true)
 
 mail = Mail.new(STDIN.read
                      .encode(:universal_newline => true)
index b86b793665d202cf3b511e71370c8170fca612d6..59ecff4f80424282a75079deb2c9591c1188c82a 100755 (executable)
@@ -6,6 +6,7 @@ start = 0
 User.where("image_use_gravatar AND id >=" + start.to_s).order("id").find_each do |user|
   p "checked up to id " + user.id.to_s if (user.id % 1000).zero? # just give a rough indication where we are for restarting
   next if user.image.present?
+
   hash = Digest::MD5.hexdigest(user.email.downcase)
   url = "https://www.gravatar.com/avatar/#{hash}?d=404" # without d=404 we will always get an image back
   response = OSM.http_client.get(URI.parse(url))
index 84e1e8a1c51117bf9673976cde7ef982cfab2934..3f15c0df0a7f69991c17799d2b947a365c8d4b00 100755 (executable)
@@ -3,20 +3,11 @@ use 5.010;
 use strict;
 use warnings;
 
-use Pod::Usage ();
-use Getopt::Long ();
-
-BEGIN {
-    eval "require MediaWiki::API; require YAML::XS;" or do {
-        print "You have to install some modules via CPAN to run this:\n";
-        print "   sudo cpanp MediaWiki::API YAML::XS\n";
-        exit 1;
-    };
-}
-
+use Getopt::Long;
+use Pod::Usage;
 use MediaWiki::API;
+use Test::More qw(no_plan);
 use YAML::XS qw(Dump);
-use Test::More 'no_plan';
 
 =head1 NAME
 
index ca046dea952fa904b03568b7d2d637482dc1c11f..fd9fb988d029a1bba7423c475b2dfa2352c0d266 100644 (file)
@@ -16,12 +16,12 @@ apt-get update
 apt-get upgrade -y
 
 # install packages as explained in INSTALL.md
-apt-get install -y ruby2.3 libruby2.3 ruby2.3-dev \
+apt-get install -y ruby2.5 libruby2.5 ruby2.5-dev \
                      libmagickwand-dev libxml2-dev libxslt1-dev nodejs \
                      apache2 apache2-dev build-essential git-core \
                      postgresql postgresql-contrib libpq-dev postgresql-server-dev-all \
                      libsasl2-dev imagemagick phantomjs
-gem2.3 install bundler
+gem2.5 install rake bundler
 
 ## install the bundle necessary for openstreetmap-website
 pushd /srv/openstreetmap-website
index 5d7e1b778c5e1b950d12535928e7d1fc64dd3b34..0bdd01bd2e5f2209d22997d176c9007dbfdaffd1 100644 (file)
@@ -73,7 +73,7 @@ class AmfControllerTest < ActionController::TestCase
     assert_response :success
     amf_parse_response
     result = amf_result("/1")
-    assert_equal -4, result[0]
+    assert_equal(-4, result[0])
     assert_equal "way", result[1]
     assert_equal id, result[2]
     assert(result[3].nil? && result[4].nil? && result[5].nil? && result[6].nil?)
@@ -154,7 +154,7 @@ class AmfControllerTest < ActionController::TestCase
     assert_response :success
     amf_parse_response
     way = amf_result("/1")
-    assert_equal -4, way[0]
+    assert_equal(-4, way[0])
     assert_equal "way", way[1]
     assert_equal 0, way[2]
     assert(way[3].nil?) && way[4].nil? && way[5].nil? && way[6].nil?
@@ -370,7 +370,7 @@ class AmfControllerTest < ActionController::TestCase
       assert_response :success
       amf_parse_response
       returned_way = amf_result("/1")
-      assert_equal -1, returned_way[0]
+      assert_equal(-1, returned_way[0])
       assert returned_way[3].nil?
       assert returned_way[4].nil?
       assert returned_way[5].nil?
@@ -391,7 +391,7 @@ class AmfControllerTest < ActionController::TestCase
       assert_response :success
       amf_parse_response
       returned_way = amf_result("/1")
-      assert_equal -1, returned_way[0]
+      assert_equal(-1, returned_way[0])
       assert returned_way[3].nil?
       assert returned_way[4].nil?
       assert returned_way[5].nil?
@@ -408,7 +408,7 @@ class AmfControllerTest < ActionController::TestCase
       assert_response :success
       amf_parse_response
       returned_way = amf_result("/1")
-      assert_equal -1, returned_way[0]
+      assert_equal(-1, returned_way[0])
       assert returned_way[3].nil?
       assert returned_way[4].nil?
       assert returned_way[5].nil?
@@ -498,8 +498,8 @@ class AmfControllerTest < ActionController::TestCase
     result = amf_result("/1")
 
     assert_equal 2, result.length
-    assert_equal -1, result[0]
-    assert_match /must be logged in/, result[1]
+    assert_equal(-1, result[0])
+    assert_match(/must be logged in/, result[1])
 
     blocked_user = create(:user)
     create(:user_block, :user => blocked_user)
@@ -510,8 +510,8 @@ class AmfControllerTest < ActionController::TestCase
     result = amf_result("/1")
 
     assert_equal 2, result.length
-    assert_equal -1, result[0]
-    assert_match /access to the API has been blocked/, result[1]
+    assert_equal(-1, result[0])
+    assert_match(/access to the API has been blocked/, result[1])
   end
 
   def test_findgpx_by_id
@@ -546,7 +546,7 @@ class AmfControllerTest < ActionController::TestCase
 
     # find by name fails as it uses mysql text search syntax...
     assert_equal 2, result.length
-    assert_equal -2, result[0]
+    assert_equal(-2, result[0])
   end
 
   def test_findrelations_by_id
@@ -636,7 +636,7 @@ class AmfControllerTest < ActionController::TestCase
     result = amf_result("/1")
 
     assert_equal 3, result.length
-    assert_equal -4, result[0]
+    assert_equal(-4, result[0])
     assert_equal "node", result[1]
     assert_equal 999999, result[2]
   end
@@ -671,7 +671,7 @@ class AmfControllerTest < ActionController::TestCase
     result = amf_result("/1")
 
     assert_equal 3, result.length
-    assert_equal -4, result[0]
+    assert_equal(-4, result[0])
     assert_equal "node", result[1]
     assert_equal node.node_id, result[2]
 
@@ -682,7 +682,7 @@ class AmfControllerTest < ActionController::TestCase
     result = amf_result("/1")
 
     assert_equal 3, result.length
-    assert_equal -4, result[0]
+    assert_equal(-4, result[0])
     assert_equal "node", result[1]
     assert_equal 999999, result[2]
   end
@@ -747,7 +747,7 @@ class AmfControllerTest < ActionController::TestCase
     assert_equal 5, result.size
     assert_equal 0, result[0], "expected to get the status ok from the amf"
     assert_equal 0, result[2], "The old id should be 0"
-    assert result[3] > 0, "The new id should be greater than 0"
+    assert result[3].positive?, "The new id should be greater than 0"
     assert_equal 1, result[4], "The new version should be 1"
 
     # Finally check that the node that was saved has saved the data correctly
@@ -784,7 +784,7 @@ class AmfControllerTest < ActionController::TestCase
     assert_equal 5, result.size
     assert_equal 0, result[0], "Expected to get the status ok in the amf"
     assert_equal 0, result[2], "The old id should be 0"
-    assert result[3] > 0, "The new id should be greater than 0"
+    assert result[3].positive?, "The new id should be greater than 0"
     assert_equal 1, result[4], "The new version should be 1"
 
     # Finally check that the node that was saved has saved the data correctly
@@ -831,7 +831,7 @@ class AmfControllerTest < ActionController::TestCase
     assert_equal 5, result.size
     assert_equal 0, result[0], "Expected to get the status ok in the amf"
     assert_equal 0, result[2], "The old id should be 0"
-    assert result[3] > 0, "The new id should be greater than 0"
+    assert result[3].positive?, "The new id should be greater than 0"
     assert_equal 1, result[4], "The new version should be 1"
 
     # Finally check that the node that was saved has saved the data correctly
@@ -864,7 +864,7 @@ class AmfControllerTest < ActionController::TestCase
     result = amf_result("/1")
 
     assert_equal 2, result.size
-    assert_equal -1, result[0], "Expected to get the status FAIL in the amf"
+    assert_equal(-1, result[0], "Expected to get the status FAIL in the amf")
     assert_equal "One of the tags is invalid. Linux users may need to upgrade to Flash Player 10.1.", result[1]
   end
 
@@ -904,7 +904,7 @@ class AmfControllerTest < ActionController::TestCase
     result = amf_result("/1")
 
     assert_equal 3, result.size
-    assert_equal -4, result[0]
+    assert_equal(-4, result[0])
     assert_equal "node", result[1]
     assert_equal nd.id, result[2]
   end
@@ -922,7 +922,7 @@ class AmfControllerTest < ActionController::TestCase
     result = amf_result("/1")
 
     assert_equal 3, result.size
-    assert_equal -4, result[0]
+    assert_equal(-4, result[0])
     assert_equal "node", result[1]
     assert_equal 999999, result[2]
   end
@@ -940,8 +940,8 @@ class AmfControllerTest < ActionController::TestCase
     result = amf_result("/1")
 
     assert_equal 2, result.size
-    assert_equal -2, result[0]
-    assert_match /Node is not in the world/, result[1]
+    assert_equal(-2, result[0])
+    assert_match(/Node is not in the world/, result[1])
   end
 
   # check that we can create a way
@@ -966,8 +966,8 @@ class AmfControllerTest < ActionController::TestCase
     assert_equal 8, result.size
     assert_equal 0, result[0]
     assert_equal "", result[1]
-    assert_equal -1, result[2]
-    assert_not_equal -1, result[3]
+    assert_equal(-1, result[2])
+    assert_not_equal(-1, result[3])
     assert_equal({}, result[4])
     assert_equal 1, result[5]
     assert_equal({}, result[6])
@@ -988,8 +988,8 @@ class AmfControllerTest < ActionController::TestCase
     assert_equal 8, result.size
     assert_equal 0, result[0]
     assert_equal "", result[1]
-    assert_equal -1, result[2]
-    assert_not_equal -1, result[3]
+    assert_equal(-1, result[2])
+    assert_not_equal(-1, result[3])
     assert_equal({}, result[4])
     assert_equal 1, result[5]
     assert_equal({}, result[6])
@@ -1011,8 +1011,8 @@ class AmfControllerTest < ActionController::TestCase
     assert_equal 8, result.size
     assert_equal 0, result[0]
     assert_equal "", result[1]
-    assert_equal -1, result[2]
-    assert_not_equal -1, result[3]
+    assert_equal(-1, result[2])
+    assert_not_equal(-1, result[3])
     assert_equal({ "-1" => new_node_id }, result[4])
     assert_equal 1, result[5]
     assert_equal({ new_node_id.to_s => 1, d.to_s => 2 }, result[6])
@@ -1193,8 +1193,8 @@ class AmfControllerTest < ActionController::TestCase
     result = amf_result("/1")
 
     assert_equal 2, result.size
-    assert_equal -1, result[0]
-    assert_match /Way #{way.id} is still used/, result[1]
+    assert_equal(-1, result[0])
+    assert_match(/Way #{way.id} is still used/, result[1])
 
     new_way = Way.find(way.id)
     assert_equal way.version, new_way.version
@@ -1225,8 +1225,8 @@ class AmfControllerTest < ActionController::TestCase
     assert_equal 5, result.size
     assert_equal 0, result[0]
     assert_equal "", result[1]
-    assert_equal -1, result[2]
-    assert_not_equal -1, result[3]
+    assert_equal(-1, result[2])
+    assert_not_equal(-1, result[3])
     assert_equal 1, result[4]
 
     new_relation = Relation.find(new_relation_id)
@@ -1307,8 +1307,8 @@ class AmfControllerTest < ActionController::TestCase
     result = amf_result("/1")
 
     assert_equal 2, result.size
-    assert_equal -1, result[0]
-    assert_match /relation #{relation.id} is used in/, result[1]
+    assert_equal(-1, result[0])
+    assert_match(/relation #{relation.id} is used in/, result[1])
 
     new_relation = Relation.find(relation.id)
     assert_equal relation.version, new_relation.version
@@ -1404,7 +1404,7 @@ class AmfControllerTest < ActionController::TestCase
     result = amf_result("/1")
 
     assert_equal 2, result.size
-    assert_equal -2, result[0]
+    assert_equal(-2, result[0])
     assert_equal "The user doesn't own that changeset", result[1]
 
     cs = Changeset.find(cs_id)
index 230a74cb64023d9693097de0244dcbea6fc4a95d..d6bde97d6add65bdcbaa9dc90088875f1a625640 100644 (file)
@@ -68,8 +68,10 @@ class BrowseControllerTest < ActionController::TestCase
   end
 
   def test_read_changeset
+    user = create(:user)
     private_changeset = create(:changeset, :user => create(:user, :data_public => false))
-    changeset = create(:changeset)
+    changeset = create(:changeset, :user => user)
+    create(:changeset, :user => user)
     browse_check "changeset", private_changeset.id, "browse/changeset"
     browse_check "changeset", changeset.id, "browse/changeset"
   end
index 575eed765d8f8ba2c46aa9d6e556a06fef5b3a0e..2886780a06d46f370e20f531bba5f07918d47cc0 100644 (file)
@@ -63,7 +63,7 @@ class ChangesetControllerTest < ActionController::TestCase
     )
     assert_routing(
       { :path => "/user/name/history", :method => :get },
-      { :controller => "changeset", :action => "list", :display_name => "name" }
+      { :controller => "changeset", :action => "index", :display_name => "name" }
     )
     assert_routing(
       { :path => "/user/name/history/feed", :method => :get },
@@ -71,15 +71,15 @@ class ChangesetControllerTest < ActionController::TestCase
     )
     assert_routing(
       { :path => "/history/friends", :method => :get },
-      { :controller => "changeset", :action => "list", :friends => true, :format => :html }
+      { :controller => "changeset", :action => "index", :friends => true, :format => :html }
     )
     assert_routing(
       { :path => "/history/nearby", :method => :get },
-      { :controller => "changeset", :action => "list", :nearby => true, :format => :html }
+      { :controller => "changeset", :action => "index", :nearby => true, :format => :html }
     )
     assert_routing(
       { :path => "/history", :method => :get },
-      { :controller => "changeset", :action => "list" }
+      { :controller => "changeset", :action => "index" }
     )
     assert_routing(
       { :path => "/history/feed", :method => :get },
@@ -213,7 +213,7 @@ class ChangesetControllerTest < ActionController::TestCase
         get :read, :params => { :id => id }
         assert_response :not_found, "should get a not found"
       rescue ActionController::UrlGenerationError => ex
-        assert_match /No route matches/, ex.to_s
+        assert_match(/No route matches/, ex.to_s)
       end
     end
   end
@@ -287,7 +287,7 @@ class ChangesetControllerTest < ActionController::TestCase
         put :close, :params => { :id => id }
         assert_response :unauthorized, "Shouldn't be able close the non-existant changeset #{id}, when not authorized"
       rescue ActionController::UrlGenerationError => ex
-        assert_match /No route matches/, ex.to_s
+        assert_match(/No route matches/, ex.to_s)
       end
     end
 
@@ -298,7 +298,7 @@ class ChangesetControllerTest < ActionController::TestCase
         put :close, :params => { :id => id }
         assert_response :not_found, "The changeset #{id} doesn't exist, so can't be closed"
       rescue ActionController::UrlGenerationError => ex
-        assert_match /No route matches/, ex.to_s
+        assert_match(/No route matches/, ex.to_s)
       end
     end
   end
@@ -469,9 +469,9 @@ CHANGESET
     new_rel_id = doc.find("//diffResult/relation").first["new_id"].to_i
 
     # check the old IDs are all present and negative one
-    assert_equal -1, doc.find("//diffResult/node").first["old_id"].to_i
-    assert_equal -1, doc.find("//diffResult/way").first["old_id"].to_i
-    assert_equal -1, doc.find("//diffResult/relation").first["old_id"].to_i
+    assert_equal(-1, doc.find("//diffResult/node").first["old_id"].to_i)
+    assert_equal(-1, doc.find("//diffResult/way").first["old_id"].to_i)
+    assert_equal(-1, doc.find("//diffResult/relation").first["old_id"].to_i)
 
     # check the versions are present and equal one
     assert_equal 1, doc.find("//diffResult/node").first["new_version"].to_i
@@ -1882,173 +1882,173 @@ CHANGESET
 
   ##
   # This should display the last 20 changesets closed
-  def test_list
-    get :list, :params => { :format => "html" }
+  def test_index
+    get :index, :params => { :format => "html" }
     assert_response :success
     assert_template "history"
     assert_template :layout => "map"
     assert_select "h2", :text => "Changesets", :count => 1
 
-    get :list, :params => { :format => "html", :list => "1" }, :xhr => true
+    get :index, :params => { :format => "html", :list => "1" }, :xhr => true
     assert_response :success
-    assert_template "list"
+    assert_template "index"
 
-    check_list_result(Changeset.all)
+    check_index_result(Changeset.all)
   end
 
   ##
   # This should display the last 20 changesets closed
-  def test_list_xhr
-    get :list, :params => { :format => "html" }, :xhr => true
+  def test_index_xhr
+    get :index, :params => { :format => "html" }, :xhr => true
     assert_response :success
     assert_template "history"
     assert_template :layout => "xhr"
     assert_select "h2", :text => "Changesets", :count => 1
 
-    get :list, :params => { :format => "html", :list => "1" }, :xhr => true
+    get :index, :params => { :format => "html", :list => "1" }, :xhr => true
     assert_response :success
-    assert_template "list"
+    assert_template "index"
 
-    check_list_result(Changeset.all)
+    check_index_result(Changeset.all)
   end
 
   ##
   # This should display the last 20 changesets closed in a specific area
-  def test_list_bbox
-    get :list, :params => { :format => "html", :bbox => "4.5,4.5,5.5,5.5" }
+  def test_index_bbox
+    get :index, :params => { :format => "html", :bbox => "4.5,4.5,5.5,5.5" }
     assert_response :success
     assert_template "history"
     assert_template :layout => "map"
     assert_select "h2", :text => "Changesets", :count => 1
 
-    get :list, :params => { :format => "html", :bbox => "4.5,4.5,5.5,5.5", :list => "1" }, :xhr => true
+    get :index, :params => { :format => "html", :bbox => "4.5,4.5,5.5,5.5", :list => "1" }, :xhr => true
     assert_response :success
-    assert_template "list"
+    assert_template "index"
 
-    check_list_result(Changeset.where("min_lon < 55000000 and max_lon > 45000000 and min_lat < 55000000 and max_lat > 45000000"))
+    check_index_result(Changeset.where("min_lon < 55000000 and max_lon > 45000000 and min_lat < 55000000 and max_lat > 45000000"))
   end
 
   ##
   # Checks the display of the user changesets listing
-  def test_list_user
+  def test_index_user
     user = create(:user)
     create(:changeset, :user => user)
     create(:changeset, :closed, :user => user)
 
-    get :list, :params => { :format => "html", :display_name => user.display_name }
+    get :index, :params => { :format => "html", :display_name => user.display_name }
     assert_response :success
     assert_template "history"
 
-    get :list, :params => { :format => "html", :display_name => user.display_name, :list => "1" }, :xhr => true
+    get :index, :params => { :format => "html", :display_name => user.display_name, :list => "1" }, :xhr => true
     assert_response :success
-    assert_template "list"
+    assert_template "index"
 
-    check_list_result(user.changesets)
+    check_index_result(user.changesets)
   end
 
   ##
   # Checks the display of the user changesets listing for a private user
-  def test_list_private_user
+  def test_index_private_user
     private_user = create(:user, :data_public => false)
     create(:changeset, :user => private_user)
     create(:changeset, :closed, :user => private_user)
 
-    get :list, :params => { :format => "html", :display_name => private_user.display_name }
+    get :index, :params => { :format => "html", :display_name => private_user.display_name }
     assert_response :success
     assert_template "history"
 
-    get :list, :params => { :format => "html", :display_name => private_user.display_name, :list => "1" }, :xhr => true
+    get :index, :params => { :format => "html", :display_name => private_user.display_name, :list => "1" }, :xhr => true
     assert_response :success
-    assert_template "list"
+    assert_template "index"
 
-    check_list_result(Changeset.none)
+    check_index_result(Changeset.none)
   end
 
   ##
-  # Check the not found of the list user changesets
-  def test_list_user_not_found
-    get :list, :params => { :format => "html", :display_name => "Some random user" }
+  # Check the not found of the index user changesets
+  def test_index_user_not_found
+    get :index, :params => { :format => "html", :display_name => "Some random user" }
     assert_response :not_found
     assert_template "user/no_such_user"
 
-    get :list, :params => { :format => "html", :display_name => "Some random user", :list => "1" }, :xhr => true
+    get :index, :params => { :format => "html", :display_name => "Some random user", :list => "1" }, :xhr => true
     assert_response :not_found
     assert_template "user/no_such_user"
   end
 
   ##
   # Checks the display of the friends changesets listing
-  def test_list_friends
+  def test_index_friends
     private_user = create(:user, :data_public => true)
     friend = create(:friend, :befriender => private_user)
     create(:changeset, :user => friend.befriendee)
 
-    get :list, :params => { :friends => true }
+    get :index, :params => { :friends => true }
     assert_response :redirect
     assert_redirected_to :controller => :user, :action => :login, :referer => friend_changesets_path
 
     session[:user] = private_user.id
 
-    get :list, :params => { :friends => true }
+    get :index, :params => { :friends => true }
     assert_response :success
     assert_template "history"
 
-    get :list, :params => { :friends => true, :list => "1" }, :xhr => true
+    get :index, :params => { :friends => true, :list => "1" }, :xhr => true
     assert_response :success
-    assert_template "list"
+    assert_template "index"
 
-    check_list_result(Changeset.where(:user => private_user.friend_users.identifiable))
+    check_index_result(Changeset.where(:user => private_user.friend_users.identifiable))
   end
 
   ##
   # Checks the display of the nearby user changesets listing
-  def test_list_nearby
+  def test_index_nearby
     private_user = create(:user, :data_public => false, :home_lat => 51.1, :home_lon => 1.0)
     user = create(:user, :home_lat => 51.0, :home_lon => 1.0)
     create(:changeset, :user => user)
 
-    get :list, :params => { :nearby => true }
+    get :index, :params => { :nearby => true }
     assert_response :redirect
     assert_redirected_to :controller => :user, :action => :login, :referer => nearby_changesets_path
 
     session[:user] = private_user.id
 
-    get :list, :params => { :nearby => true }
+    get :index, :params => { :nearby => true }
     assert_response :success
     assert_template "history"
 
-    get :list, :params => { :nearby => true, :list => "1" }, :xhr => true
+    get :index, :params => { :nearby => true, :list => "1" }, :xhr => true
     assert_response :success
-    assert_template "list"
+    assert_template "index"
 
-    check_list_result(Changeset.where(:user => user.nearby))
+    check_index_result(Changeset.where(:user => user.nearby))
   end
 
   ##
-  # Check that we can't request later pages of the changesets list
-  def test_list_max_id
-    get :list, :params => { :format => "html", :max_id => 4 }, :xhr => true
+  # Check that we can't request later pages of the changesets index
+  def test_index_max_id
+    get :index, :params => { :format => "html", :max_id => 4 }, :xhr => true
     assert_response :success
     assert_template "history"
     assert_template :layout => "xhr"
     assert_select "h2", :text => "Changesets", :count => 1
 
-    get :list, :params => { :format => "html", :list => "1", :max_id => 4 }, :xhr => true
+    get :index, :params => { :format => "html", :list => "1", :max_id => 4 }, :xhr => true
     assert_response :success
-    assert_template "list"
+    assert_template "index"
 
-    check_list_result(Changeset.where("id <= 4"))
+    check_index_result(Changeset.where("id <= 4"))
   end
 
   ##
   # Check that a list with a next page link works
-  def test_list_more
+  def test_index_more
     create_list(:changeset, 50)
 
-    get :list, :params => { :format => "html" }
+    get :index, :params => { :format => "html" }
     assert_response :success
 
-    get :list, :params => { :format => "html" }, :xhr => true
+    get :index, :params => { :format => "html" }, :xhr => true
     assert_response :success
   end
 
@@ -2063,7 +2063,7 @@ CHANGESET
 
     get :feed, :params => { :format => :atom }
     assert_response :success
-    assert_template "list"
+    assert_template "index"
     assert_equal "application/atom+xml", response.content_type
 
     check_feed_result([changeset, closed_changeset])
@@ -2081,7 +2081,7 @@ CHANGESET
 
     get :feed, :params => { :format => :atom, :bbox => "4.5,4.5,5.5,5.5" }
     assert_response :success
-    assert_template "list"
+    assert_template "index"
     assert_equal "application/atom+xml", response.content_type
 
     check_feed_result([changeset, closed_changeset])
@@ -2099,7 +2099,7 @@ CHANGESET
     get :feed, :params => { :format => :atom, :display_name => user.display_name }
 
     assert_response :success
-    assert_template "list"
+    assert_template "index"
     assert_equal "application/atom+xml", response.content_type
 
     check_feed_result(changesets)
@@ -2499,8 +2499,8 @@ CHANGESET
   end
 
   ##
-  # check the result of a list
-  def check_list_result(changesets)
+  # check the result of a index
+  def check_index_result(changesets)
     changesets = changesets.where("num_changes > 0")
                            .order(:created_at => :desc)
                            .limit(20)
index 809273c696e3f7addb70fe48699a20d1f9e731d7..edff9062560cb34d596a02b6e44957404c264f94 100644 (file)
@@ -16,23 +16,23 @@ class DiaryEntryControllerTest < ActionController::TestCase
   def test_routes
     assert_routing(
       { :path => "/diary", :method => :get },
-      { :controller => "diary_entry", :action => "list" }
+      { :controller => "diary_entry", :action => "index" }
     )
     assert_routing(
       { :path => "/diary/language", :method => :get },
-      { :controller => "diary_entry", :action => "list", :language => "language" }
+      { :controller => "diary_entry", :action => "index", :language => "language" }
     )
     assert_routing(
       { :path => "/user/username/diary", :method => :get },
-      { :controller => "diary_entry", :action => "list", :display_name => "username" }
+      { :controller => "diary_entry", :action => "index", :display_name => "username" }
     )
     assert_routing(
       { :path => "/diary/friends", :method => :get },
-      { :controller => "diary_entry", :action => "list", :friends => true }
+      { :controller => "diary_entry", :action => "index", :friends => true }
     )
     assert_routing(
       { :path => "/diary/nearby", :method => :get },
-      { :controller => "diary_entry", :action => "list", :nearby => true }
+      { :controller => "diary_entry", :action => "index", :nearby => true }
     )
 
     assert_routing(
@@ -67,7 +67,7 @@ class DiaryEntryControllerTest < ActionController::TestCase
     )
     assert_routing(
       { :path => "/user/username/diary/1", :method => :get },
-      { :controller => "diary_entry", :action => "view", :display_name => "username", :id => "1" }
+      { :controller => "diary_entry", :action => "show", :display_name => "username", :id => "1" }
     )
     assert_routing(
       { :path => "/user/username/diary/1/edit", :method => :get },
@@ -170,7 +170,7 @@ class DiaryEntryControllerTest < ActionController::TestCase
            :session => { :user => user.id }
     end
     assert_response :redirect
-    assert_redirected_to :action => :list, :display_name => user.display_name
+    assert_redirected_to :action => :index, :display_name => user.display_name
     entry = DiaryEntry.order(:id).last
     assert_equal user.id, entry.user_id
     assert_equal "New Title", entry.title
@@ -198,7 +198,7 @@ class DiaryEntryControllerTest < ActionController::TestCase
            :session => { :user => user.id }
     end
     assert_response :redirect
-    assert_redirected_to :action => :list, :display_name => user.display_name
+    assert_redirected_to :action => :index, :display_name => user.display_name
     entry = DiaryEntry.order(:id).last
     assert_equal user.id, entry.user_id
     assert_equal "New Title", entry.title
@@ -227,7 +227,7 @@ class DiaryEntryControllerTest < ActionController::TestCase
            :session => { :user => user.id }
     end
     assert_response :redirect
-    assert_redirected_to :action => :list, :display_name => user.display_name
+    assert_redirected_to :action => :index, :display_name => user.display_name
     entry = DiaryEntry.order(:id).last
     assert_equal user.id, entry.user_id
     assert_equal spammy_title, entry.title
@@ -236,7 +236,7 @@ class DiaryEntryControllerTest < ActionController::TestCase
     assert_equal "suspended", User.find(user.id).status
 
     # Follow the redirect
-    get :list,
+    get :index,
         :params => { :display_name => user.display_name },
         :session => { :user => user }
     assert_response :redirect
@@ -265,13 +265,13 @@ class DiaryEntryControllerTest < ActionController::TestCase
       assert_select "h2", :text => "No entry with the id: 9999", :count => 1
     end
 
-    # Verify that you get redirected to view if you are not the user
+    # Verify that you get redirected to show if you are not the user
     # that created the entry
     get :edit,
         :params => { :display_name => entry.user.display_name, :id => entry.id },
         :session => { :user => other_user }
     assert_response :redirect
-    assert_redirected_to :action => :view, :display_name => entry.user.display_name, :id => entry.id
+    assert_redirected_to :action => :show, :display_name => entry.user.display_name, :id => entry.id
 
     # Now pass the id, and check that you can edit it, when using the same
     # user as the person who created the entry
@@ -309,14 +309,14 @@ class DiaryEntryControllerTest < ActionController::TestCase
                                         :longitude => new_longitude, :language_code => new_language_code } },
          :session => { :user => entry.user.id }
     assert_response :redirect
-    assert_redirected_to :action => :view, :display_name => entry.user.display_name, :id => entry.id
+    assert_redirected_to :action => :show, :display_name => entry.user.display_name, :id => entry.id
 
     # Now check that the new data is rendered, when logged in
-    get :view,
+    get :show,
         :params => { :display_name => entry.user.display_name, :id => entry.id },
         :session => { :user => entry.user }
     assert_response :success
-    assert_template "diary_entry/view"
+    assert_template "diary_entry/show"
     assert_select "title", :text => /Users' diaries | /, :count => 1
     assert_select "div.content-heading", :count => 1 do
       assert_select "h2", :text => /#{entry.user.display_name}'s diary/, :count => 1
@@ -333,11 +333,11 @@ class DiaryEntryControllerTest < ActionController::TestCase
     end
 
     # and when not logged in as the user who wrote the entry
-    get :view,
+    get :show,
         :params => { :display_name => entry.user.display_name, :id => entry.id },
         :session => { :user => create(:user) }
     assert_response :success
-    assert_template "diary_entry/view"
+    assert_template "diary_entry/show"
     assert_select "title", :text => /Users' diaries | /, :count => 1
     assert_select "div.content-heading", :count => 1 do
       assert_select "h2", :text => /#{entry.user.display_name}'s diary/, :count => 1
@@ -397,7 +397,7 @@ class DiaryEntryControllerTest < ActionController::TestCase
       end
     end
     assert_response :success
-    assert_template :view
+    assert_template :show
 
     # Now try again with the right id
     assert_difference "ActionMailer::Base.deliveries.size", entry.subscribers.count do
@@ -410,20 +410,20 @@ class DiaryEntryControllerTest < ActionController::TestCase
       end
     end
     assert_response :redirect
-    assert_redirected_to :action => :view, :display_name => entry.user.display_name, :id => entry.id
+    assert_redirected_to :action => :show, :display_name => entry.user.display_name, :id => entry.id
     email = ActionMailer::Base.deliveries.first
     assert_equal [user.email], email.to
     assert_equal "[OpenStreetMap] #{other_user.display_name} commented on a diary entry", email.subject
-    assert_match /New comment/, email.text_part.decoded
-    assert_match /New comment/, email.html_part.decoded
+    assert_match(/New comment/, email.text_part.decoded)
+    assert_match(/New comment/, email.html_part.decoded)
     ActionMailer::Base.deliveries.clear
     comment = DiaryComment.order(:id).last
     assert_equal entry.id, comment.diary_entry_id
     assert_equal other_user.id, comment.user_id
     assert_equal "New comment", comment.body
 
-    # Now view the diary entry, and check the new comment is present
-    get :view,
+    # Now show the diary entry, and check the new comment is present
+    get :show,
         :params => { :display_name => entry.user.display_name, :id => entry.id }
     assert_response :success
     assert_select ".diary-comment", :count => 1 do
@@ -456,7 +456,7 @@ class DiaryEntryControllerTest < ActionController::TestCase
       end
     end
     assert_response :redirect
-    assert_redirected_to :action => :view, :display_name => entry.user.display_name, :id => entry.id
+    assert_redirected_to :action => :show, :display_name => entry.user.display_name, :id => entry.id
     email = ActionMailer::Base.deliveries.first
     assert_equal [user.email], email.to
     assert_equal "[OpenStreetMap] #{other_user.display_name} commented on a diary entry", email.subject
@@ -470,30 +470,30 @@ class DiaryEntryControllerTest < ActionController::TestCase
     assert_equal "suspended", User.find(other_user.id).status
 
     # Follow the redirect
-    get :list,
+    get :index,
         :params => { :display_name => user.display_name },
         :session => { :user => other_user }
     assert_response :redirect
     assert_redirected_to :controller => :user, :action => :suspended
 
-    # Now view the diary entry, and check the new comment is not present
-    get :view,
+    # Now show the diary entry, and check the new comment is not present
+    get :show,
         :params => { :display_name => entry.user.display_name, :id => entry.id }
     assert_response :success
     assert_select ".diary-comment", :count => 0
   end
 
-  def test_list_all
+  def test_index_all
     diary_entry = create(:diary_entry)
     geo_entry = create(:diary_entry, :latitude => 51.50763, :longitude => -0.10781)
     public_entry = create(:diary_entry, :user => create(:user))
 
     # Try a list of all diary entries
-    get :list
-    check_diary_list diary_entry, geo_entry, public_entry
+    get :index
+    check_diary_index diary_entry, geo_entry, public_entry
   end
 
-  def test_list_user
+  def test_index_user
     user = create(:user)
     other_user = create(:user)
 
@@ -502,16 +502,16 @@ class DiaryEntryControllerTest < ActionController::TestCase
     _other_entry = create(:diary_entry, :user => other_user)
 
     # Try a list of diary entries for a valid user
-    get :list, :params => { :display_name => user.display_name }
-    check_diary_list diary_entry, geo_entry
+    get :index, :params => { :display_name => user.display_name }
+    check_diary_index diary_entry, geo_entry
 
     # Try a list of diary entries for an invalid user
-    get :list, :params => { :display_name => "No Such User" }
+    get :index, :params => { :display_name => "No Such User" }
     assert_response :not_found
     assert_template "user/no_such_user"
   end
 
-  def test_list_friends
+  def test_index_friends
     user = create(:user)
     other_user = create(:user)
     friend = create(:friend, :befriender => user)
@@ -519,36 +519,36 @@ class DiaryEntryControllerTest < ActionController::TestCase
     _other_entry = create(:diary_entry, :user => other_user)
 
     # Try a list of diary entries for your friends when not logged in
-    get :list, :params => { :friends => true }
+    get :index, :params => { :friends => true }
     assert_response :redirect
     assert_redirected_to :controller => :user, :action => :login, :referer => "/diary/friends"
 
     # Try a list of diary entries for your friends when logged in
-    get :list, :params => { :friends => true }, :session => { :user => user }
-    check_diary_list diary_entry
-    get :list, :params => { :friends => true }, :session => { :user => other_user }
-    check_diary_list
+    get :index, :params => { :friends => true }, :session => { :user => user }
+    check_diary_index diary_entry
+    get :index, :params => { :friends => true }, :session => { :user => other_user }
+    check_diary_index
   end
 
-  def test_list_nearby
+  def test_index_nearby
     user = create(:user, :home_lat => 12, :home_lon => 12)
     nearby_user = create(:user, :home_lat => 11.9, :home_lon => 12.1)
 
     diary_entry = create(:diary_entry, :user => user)
 
     # Try a list of diary entries for nearby users when not logged in
-    get :list, :params => { :nearby => true }
+    get :index, :params => { :nearby => true }
     assert_response :redirect
     assert_redirected_to :controller => :user, :action => :login, :referer => "/diary/nearby"
 
     # Try a list of diary entries for nearby users when logged in
-    get :list, :params => { :nearby => true }, :session => { :user => nearby_user }
-    check_diary_list diary_entry
-    get :list, :params => { :nearby => true }, :session => { :user => user }
-    check_diary_list
+    get :index, :params => { :nearby => true }, :session => { :user => nearby_user }
+    check_diary_index diary_entry
+    get :index, :params => { :nearby => true }, :session => { :user => user }
+    check_diary_index
   end
 
-  def test_list_language
+  def test_index_language
     create(:language, :code => "de")
     create(:language, :code => "sl")
     diary_entry_en = create(:diary_entry, :language_code => "en")
@@ -556,29 +556,29 @@ class DiaryEntryControllerTest < ActionController::TestCase
     diary_entry_de = create(:diary_entry, :language_code => "de")
 
     # Try a list of diary entries in english
-    get :list, :params => { :language => "en" }
-    check_diary_list diary_entry_en, diary_entry_en2
+    get :index, :params => { :language => "en" }
+    check_diary_index diary_entry_en, diary_entry_en2
 
     # Try a list of diary entries in german
-    get :list, :params => { :language => "de" }
-    check_diary_list diary_entry_de
+    get :index, :params => { :language => "de" }
+    check_diary_index diary_entry_de
 
     # Try a list of diary entries in slovenian
-    get :list, :params => { :language => "sl" }
-    check_diary_list
+    get :index, :params => { :language => "sl" }
+    check_diary_index
   end
 
-  def test_list_paged
+  def test_index_paged
     # Create several pages worth of diary entries
     create_list(:diary_entry, 50)
 
-    # Try and get the list
-    get :list
+    # Try and get the index
+    get :index
     assert_response :success
     assert_select "div.diary_post", :count => 20
 
     # Try and get the second page
-    get :list, :params => { :page => 2 }
+    get :index, :params => { :page => 2 }
     assert_response :success
     assert_select "div.diary_post", :count => 20
   end
@@ -658,34 +658,34 @@ class DiaryEntryControllerTest < ActionController::TestCase
     assert_match "<title>&lt;script&gt;</title>", response.body
   end
 
-  def test_view
+  def test_show
     user = create(:user)
     suspended_user = create(:user, :suspended)
     deleted_user = create(:user, :deleted)
 
     # Try a normal entry that should work
     diary_entry = create(:diary_entry, :user => user)
-    get :view, :params => { :display_name => user.display_name, :id => diary_entry.id }
+    get :show, :params => { :display_name => user.display_name, :id => diary_entry.id }
     assert_response :success
-    assert_template :view
+    assert_template :show
 
     # Try a deleted entry
     diary_entry_deleted = create(:diary_entry, :user => user, :visible => false)
-    get :view, :params => { :display_name => user.display_name, :id => diary_entry_deleted.id }
+    get :show, :params => { :display_name => user.display_name, :id => diary_entry_deleted.id }
     assert_response :not_found
 
     # Try an entry by a suspended user
     diary_entry_suspended = create(:diary_entry, :user => suspended_user)
-    get :view, :params => { :display_name => suspended_user.display_name, :id => diary_entry_suspended.id }
+    get :show, :params => { :display_name => suspended_user.display_name, :id => diary_entry_suspended.id }
     assert_response :not_found
 
     # Try an entry by a deleted user
     diary_entry_deleted = create(:diary_entry, :user => deleted_user)
-    get :view, :params => { :display_name => deleted_user.display_name, :id => diary_entry_deleted.id }
+    get :show, :params => { :display_name => deleted_user.display_name, :id => diary_entry_deleted.id }
     assert_response :not_found
   end
 
-  def test_view_hidden_comments
+  def test_show_hidden_comments
     # Get a diary entry that has hidden comments
     user = create(:user)
     diary_entry = create(:diary_entry, :user => user)
@@ -694,9 +694,9 @@ class DiaryEntryControllerTest < ActionController::TestCase
     deleted_user_comment = create(:diary_comment, :diary_entry => diary_entry, :user => create(:user, :deleted))
     hidden_comment = create(:diary_comment, :diary_entry => diary_entry, :visible => false)
 
-    get :view, :params => { :display_name => user.display_name, :id => diary_entry.id }
+    get :show, :params => { :display_name => user.display_name, :id => diary_entry.id }
     assert_response :success
-    assert_template :view
+    assert_template :show
     assert_select "div.comments" do
       assert_select "p#comment#{visible_comment.id}", :count => 1
       assert_select "p#comment#{suspended_user_comment.id}", :count => 0
@@ -720,7 +720,7 @@ class DiaryEntryControllerTest < ActionController::TestCase
          :params => { :display_name => user.display_name, :id => diary_entry.id },
          :session => { :user => user }
     assert_response :redirect
-    assert_redirected_to :action => :view, :display_name => user.display_name, :id => diary_entry.id
+    assert_redirected_to :action => :show, :display_name => user.display_name, :id => diary_entry.id
     assert_equal true, DiaryEntry.find(diary_entry.id).visible
 
     # Finally try as an administrator
@@ -728,7 +728,7 @@ class DiaryEntryControllerTest < ActionController::TestCase
          :params => { :display_name => user.display_name, :id => diary_entry.id },
          :session => { :user => create(:administrator_user) }
     assert_response :redirect
-    assert_redirected_to :action => :list, :display_name => user.display_name
+    assert_redirected_to :action => :index, :display_name => user.display_name
     assert_equal false, DiaryEntry.find(diary_entry.id).visible
   end
 
@@ -748,7 +748,7 @@ class DiaryEntryControllerTest < ActionController::TestCase
          :params => { :display_name => user.display_name, :id => diary_entry.id, :comment => diary_comment.id },
          :session => { :user => user }
     assert_response :redirect
-    assert_redirected_to :action => :view, :display_name => user.display_name, :id => diary_entry.id
+    assert_redirected_to :action => :show, :display_name => user.display_name, :id => diary_entry.id
     assert_equal true, DiaryComment.find(diary_comment.id).visible
 
     # Finally try as an administrator
@@ -756,7 +756,7 @@ class DiaryEntryControllerTest < ActionController::TestCase
          :params => { :display_name => user.display_name, :id => diary_entry.id, :comment => diary_comment.id },
          :session => { :user => administrator_user }
     assert_response :redirect
-    assert_redirected_to :action => :view, :display_name => user.display_name, :id => diary_entry.id
+    assert_redirected_to :action => :show, :display_name => user.display_name, :id => diary_entry.id
     assert_equal false, DiaryComment.find(diary_comment.id).visible
   end
 
@@ -881,9 +881,9 @@ class DiaryEntryControllerTest < ActionController::TestCase
 
   private
 
-  def check_diary_list(*entries)
+  def check_diary_index(*entries)
     assert_response :success
-    assert_template "list"
+    assert_template "index"
     assert_no_missing_translations
     assert_select "div.diary_post", entries.count
 
index 6d4e808f66aca234f329f5a77bbc4a5edb060983..8536a1b010dece6dccd52f7e23193fd24fd453ce 100644 (file)
@@ -180,8 +180,8 @@ class MessagesControllerTest < ActionController::TestCase
     e = ActionMailer::Base.deliveries.first
     assert_equal [recipient_user.email], e.to
     assert_equal "[OpenStreetMap] Test Message", e.subject
-    assert_match /Test message body/, e.text_part.decoded
-    assert_match /Test message body/, e.html_part.decoded
+    assert_match(/Test message body/, e.text_part.decoded)
+    assert_match(/Test message body/, e.html_part.decoded)
     assert_match %r{#{SERVER_URL}/messages/[0-9]+}, e.text_part.decoded
     ActionMailer::Base.deliveries.clear
     m = Message.last
index 1f87431415dff2bd75ef7e46470a3e8091ba9dc3..346634f7d42d8b4f458b1f183567d58f9a3ca2ac 100644 (file)
@@ -161,7 +161,7 @@ class OldNodeControllerTest < ActionController::TestCase
     get :version, :params => { :id => id, :version => version }
     assert_response :not_found
   rescue ActionController::UrlGenerationError => ex
-    assert_match /No route matches/, ex.to_s
+    assert_match(/No route matches/, ex.to_s)
   end
 
   ##
index 73061ed57243af4913a5a73e903dc843001fc3ae..e2123f7250ee42afc9a0bbbf19dbfa1a47216c9f 100644 (file)
@@ -112,7 +112,7 @@ class RedactionsControllerTest < ActionController::TestCase
     delete :destroy, :params => { :id => redaction.id }
     assert_response :redirect
     assert_redirected_to(redaction_path(redaction))
-    assert_match /^Redaction is not empty/, flash[:error]
+    assert_match(/^Redaction is not empty/, flash[:error])
   end
 
   def test_delete_non_moderator
index 5bf355d089399af5f9db4543111587b6d2aa51e3..612ead2e6978257aa55a37fb0b59bd481b8ada40 100644 (file)
@@ -29,7 +29,7 @@ class ReportsControllerTest < ActionController::TestCase
            }
     end
     assert_response :redirect
-    assert_redirected_to user_path(target_user.display_name)
+    assert_redirected_to user_path(target_user)
   end
 
   def test_new_report_with_incomplete_details
@@ -55,7 +55,7 @@ class ReportsControllerTest < ActionController::TestCase
            }
     end
     assert_response :redirect
-    assert_redirected_to user_path(target_user.display_name)
+    assert_redirected_to user_path(target_user)
 
     issue = Issue.last
 
@@ -103,7 +103,7 @@ class ReportsControllerTest < ActionController::TestCase
            }
     end
     assert_response :redirect
-    assert_redirected_to user_path(target_user.display_name)
+    assert_redirected_to user_path(target_user)
 
     issue = Issue.last
 
index 6848f9a6543b9d08dffde8740acf665747570f97..2b8a19beb077a0823b660d616d3adc8a9a05789e 100644 (file)
@@ -26,19 +26,19 @@ class SwfControllerTest < ActionController::TestCase
     get :trackpoints, :params => { :xmin => -1, :xmax => 1, :ymin => 51, :ymax => 52, :baselong => 0, :basey => 0, :masterscale => 1 }
     assert_response :success
     assert_equal "application/x-shockwave-flash", response.content_type
-    assert_match /^FWS/, response.body
+    assert_match(/^FWS/, response.body)
     assert_equal 80, response.body.length
 
     get :trackpoints, :params => { :xmin => -1, :xmax => 1, :ymin => 51, :ymax => 52, :baselong => 0, :basey => 0, :masterscale => 1, :token => other_user.tokens.create.token }
     assert_response :success
     assert_equal "application/x-shockwave-flash", response.content_type
-    assert_match /^FWS/, response.body
+    assert_match(/^FWS/, response.body)
     assert_equal 67, response.body.length
 
     get :trackpoints, :params => { :xmin => -1, :xmax => 1, :ymin => 51, :ymax => 52, :baselong => 0, :basey => 0, :masterscale => 1, :token => user.tokens.create.token }
     assert_response :success
     assert_equal "application/x-shockwave-flash", response.content_type
-    assert_match /^FWS/, response.body
+    assert_match(/^FWS/, response.body)
     assert_equal 74, response.body.length
   end
 end
index e11fe146559fed8f2edfb8212958bb5288325e51..add7483a329b7f20bccc449140a36ee94b65e925 100644 (file)
@@ -278,25 +278,59 @@ class TracesControllerTest < ActionController::TestCase
     end
   end
 
-  # Check that the rss loads
+  # Check the RSS feed
   def test_rss
     user = create(:user)
+    # The fourth test below is surpisingly sensitive to timestamp ordering when the timestamps are equal.
+    trace_a = create(:trace, :visibility => "public", :timestamp => 4.seconds.ago) do |trace|
+      create(:tracetag, :trace => trace, :tag => "London")
+    end
+    trace_b = create(:trace, :visibility => "public", :timestamp => 3.seconds.ago) do |trace|
+      create(:tracetag, :trace => trace, :tag => "Birmingham")
+    end
+    create(:trace, :visibility => "private", :user => user, :timestamp => 2.seconds.ago) do |trace|
+      create(:tracetag, :trace => trace, :tag => "London")
+    end
+    create(:trace, :visibility => "private", :user => user, :timestamp => 1.second.ago) do |trace|
+      create(:tracetag, :trace => trace, :tag => "Birmingham")
+    end
 
     # First with the public feed
     get :georss, :params => { :format => :rss }
-    check_trace_feed Trace.visible_to_all
+    check_trace_feed [trace_b, trace_a]
 
     # Restrict traces to those with a given tag
     get :georss, :params => { :tag => "London", :format => :rss }
-    check_trace_feed Trace.tagged("London").visible_to_all
+    check_trace_feed [trace_a]
+  end
 
-    # Restrict traces to those for a given user
+  # Check the RSS feed for a specific user
+  def test_rss_user
+    user = create(:user)
+    second_user = create(:user)
+    create(:user)
+    create(:trace)
+    trace_b = create(:trace, :visibility => "public", :timestamp => 4.seconds.ago, :user => user)
+    trace_c = create(:trace, :visibility => "public", :timestamp => 3.seconds.ago, :user => user) do |trace|
+      create(:tracetag, :trace => trace, :tag => "London")
+    end
+    create(:trace, :visibility => "private")
+
+    # Test a user with no traces
+    get :georss, :params => { :display_name => second_user.display_name, :format => :rss }
+    check_trace_feed []
+
+    # Test the user with the traces - should see only public ones
     get :georss, :params => { :display_name => user.display_name, :format => :rss }
-    check_trace_feed user.traces.visible_to_all
+    check_trace_feed [trace_c, trace_b]
+
+    # Should only see traces with the correct tag when a tag is specified
+    get :georss, :params => { :display_name => user.display_name, :tag => "London", :format => :rss }
+    check_trace_feed [trace_c]
 
-    # Restrict traces to those for a given user with a tiven tag
-    get :georss, :params => { :display_name => user.display_name, :tag => "Birmingham", :format => :rss }
-    check_trace_feed user.traces.tagged("Birmingham").visible_to_all
+    # Should no traces if the user does not exist
+    get :georss, :params => { :display_name => "UnknownUser", :format => :rss }
+    check_trace_feed []
   end
 
   # Test showing a trace
@@ -559,7 +593,7 @@ class TracesControllerTest < ActionController::TestCase
     post :create, :params => { :trace => { :gpx_file => file, :description => "New Trace", :tagstring => "new,trace", :visibility => "trackable" } }, :session => { :user => user }
     assert_response :redirect
     assert_redirected_to :action => :index, :display_name => user.display_name
-    assert_match /file has been uploaded/, flash[:notice]
+    assert_match(/file has been uploaded/, flash[:notice])
     trace = Trace.order(:id => :desc).first
     assert_equal "a.gpx", trace.name
     assert_equal "New Trace", trace.description
@@ -995,11 +1029,11 @@ class TracesControllerTest < ActionController::TestCase
         assert_select "description"
         assert_select "link"
         assert_select "image"
-        assert_select "item", :count => traces.visible.count do |items|
-          traces.visible.order("timestamp DESC").zip(items).each do |trace, item|
+        assert_select "item", :count => traces.length do |items|
+          traces.zip(items).each do |trace, item|
             assert_select item, "title", trace.name
-            assert_select item, "link", "http://test.host/user/#{trace.user.display_name}/traces/#{trace.id}"
-            assert_select item, "guid", "http://test.host/user/#{trace.user.display_name}/traces/#{trace.id}"
+            assert_select item, "link", "http://test.host/user/#{ERB::Util.u(trace.user.display_name)}/traces/#{trace.id}"
+            assert_select item, "guid", "http://test.host/user/#{ERB::Util.u(trace.user.display_name)}/traces/#{trace.id}"
             assert_select item, "description"
             # assert_select item, "dc:creator", trace.user.display_name
             assert_select item, "pubDate", trace.timestamp.rfc822
index e5b0bdb3208468a769eaa0f21a5fe213fdbfaf19..62eee71a6fccfd80bf299eaf6c223fcba943a221 100644 (file)
@@ -182,7 +182,7 @@ class UserBlocksControllerTest < ActionController::TestCase
 
     # Check that the block edit page requires us to login
     get :edit, :params => { :id => active_block.id }
-    assert_redirected_to login_path(:referer => edit_user_block_path(:id => active_block.id))
+    assert_redirected_to login_path(:referer => edit_user_block_path(active_block))
 
     # Login as a normal user
     session[:user] = create(:user).id
@@ -306,7 +306,7 @@ class UserBlocksControllerTest < ActionController::TestCase
                        :user_block_period => "12",
                        :user_block => { :needs_view => true, :reason => "Vandalism" } }
     end
-    assert_redirected_to edit_user_block_path(:id => active_block.id)
+    assert_redirected_to edit_user_block_path(active_block)
     assert_equal "Only the moderator who created this block can edit it.", flash[:error]
 
     # Login as the correct moderator
@@ -318,7 +318,7 @@ class UserBlocksControllerTest < ActionController::TestCase
           :params => { :id => active_block.id,
                        :user_block_period => "99" }
     end
-    assert_redirected_to edit_user_block_path(:id => active_block.id)
+    assert_redirected_to edit_user_block_path(active_block)
     assert_equal "The blocking period must be one of the values selectable in the drop-down list.", flash[:error]
 
     # Check that updating a block works
@@ -328,7 +328,7 @@ class UserBlocksControllerTest < ActionController::TestCase
                        :user_block_period => "12",
                        :user_block => { :needs_view => true, :reason => "Vandalism" } }
     end
-    assert_redirected_to user_block_path(:id => active_block.id)
+    assert_redirected_to user_block_path(active_block)
     assert_equal "Block updated.", flash[:notice]
     b = UserBlock.find(active_block.id)
     assert_in_delta Time.now, b.updated_at, 1
@@ -378,7 +378,7 @@ class UserBlocksControllerTest < ActionController::TestCase
 
     # Check that revoking a block works
     post :revoke, :params => { :id => active_block.id, :confirm => true }
-    assert_redirected_to user_block_path(:id => active_block.id)
+    assert_redirected_to user_block_path(active_block)
     b = UserBlock.find(active_block.id)
     assert_in_delta Time.now, b.ends_at, 1
 
index d3cf5ef1385d1b9c9e993f499badcbbd778472f6..ffae32d0c89acf59501d1478f5dde63be6dadcd5 100644 (file)
@@ -130,7 +130,7 @@ class UserControllerTest < ActionController::TestCase
 
     assert_routing(
       { :path => "/user/username", :method => :get },
-      { :controller => "user", :action => "view", :display_name => "username" }
+      { :controller => "user", :action => "show", :display_name => "username" }
     )
 
     assert_routing(
@@ -170,19 +170,19 @@ class UserControllerTest < ActionController::TestCase
 
     assert_routing(
       { :path => "/users", :method => :get },
-      { :controller => "user", :action => "list" }
+      { :controller => "user", :action => "index" }
     )
     assert_routing(
       { :path => "/users", :method => :post },
-      { :controller => "user", :action => "list" }
+      { :controller => "user", :action => "index" }
     )
     assert_routing(
       { :path => "/users/status", :method => :get },
-      { :controller => "user", :action => "list", :status => "status" }
+      { :controller => "user", :action => "index", :status => "status" }
     )
     assert_routing(
       { :path => "/users/status", :method => :post },
-      { :controller => "user", :action => "list", :status => "status" }
+      { :controller => "user", :action => "index", :status => "status" }
     )
   end
 
@@ -245,7 +245,7 @@ class UserControllerTest < ActionController::TestCase
     register_email = ActionMailer::Base.deliveries.first
 
     assert_equal register_email.to[0], user.email
-    assert_match /#{@url}/, register_email.body.to_s
+    assert_match(/#{@url}/, register_email.body.to_s)
 
     # Check the page
     assert_redirected_to :action => "confirm", :display_name => user.display_name
@@ -404,7 +404,7 @@ class UserControllerTest < ActionController::TestCase
     @request.cookies["_osm_session"] = user.display_name
     post :confirm, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
     assert_redirected_to login_path
-    assert_match /Confirmed your account/, flash[:notice]
+    assert_match(/Confirmed your account/, flash[:notice])
   end
 
   def test_confirm_success_good_token_no_referer
@@ -427,7 +427,7 @@ class UserControllerTest < ActionController::TestCase
     @request.cookies["_osm_session"] = user.display_name
     post :confirm, :params => { :display_name => user.display_name, :confirm_string => confirm_string }, :session => { :token => token }
     assert_redirected_to login_path
-    assert_match /Confirmed your account/, flash[:notice]
+    assert_match(/Confirmed your account/, flash[:notice])
   end
 
   def test_confirm_success_no_token_with_referer
@@ -438,7 +438,7 @@ class UserControllerTest < ActionController::TestCase
     @request.cookies["_osm_session"] = user.display_name
     post :confirm, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
     assert_redirected_to login_path(:referer => diary_new_path)
-    assert_match /Confirmed your account/, flash[:notice]
+    assert_match(/Confirmed your account/, flash[:notice])
   end
 
   def test_confirm_success_good_token_with_referer
@@ -461,7 +461,7 @@ class UserControllerTest < ActionController::TestCase
     @request.cookies["_osm_session"] = user.display_name
     post :confirm, :params => { :display_name => user.display_name, :confirm_string => confirm_string }, :session => { :token => token }
     assert_redirected_to login_path(:referer => diary_new_path)
-    assert_match /Confirmed your account/, flash[:notice]
+    assert_match(/Confirmed your account/, flash[:notice])
   end
 
   def test_confirm_expired_token
@@ -471,7 +471,7 @@ class UserControllerTest < ActionController::TestCase
     @request.cookies["_osm_session"] = user.display_name
     post :confirm, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
     assert_redirected_to :action => "confirm"
-    assert_match /confirmation code has expired/, flash[:error]
+    assert_match(/confirmation code has expired/, flash[:error])
   end
 
   def test_confirm_already_confirmed
@@ -481,7 +481,7 @@ class UserControllerTest < ActionController::TestCase
     @request.cookies["_osm_session"] = user.display_name
     post :confirm, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
     assert_redirected_to :action => "login"
-    assert_match /already been confirmed/, flash[:error]
+    assert_match(/already been confirmed/, flash[:error])
   end
 
   def test_confirm_resend_success
@@ -494,7 +494,7 @@ class UserControllerTest < ActionController::TestCase
 
     assert_response :redirect
     assert_redirected_to login_path
-    assert_match /sent a new confirmation/, flash[:notice]
+    assert_match(/sent a new confirmation/, flash[:notice])
 
     email = ActionMailer::Base.deliveries.last
 
@@ -541,7 +541,7 @@ class UserControllerTest < ActionController::TestCase
     post :confirm_email, :params => { :confirm_string => confirm_string }
     assert_response :redirect
     assert_redirected_to :action => :account, :display_name => user.display_name
-    assert_match /Confirmed your change of email address/, flash[:notice]
+    assert_match(/Confirmed your change of email address/, flash[:notice])
   end
 
   def test_confirm_email_already_confirmed
@@ -551,14 +551,14 @@ class UserControllerTest < ActionController::TestCase
     post :confirm_email, :params => { :confirm_string => confirm_string }
     assert_response :redirect
     assert_redirected_to :action => :account, :display_name => user.display_name
-    assert_match /already been confirmed/, flash[:error]
+    assert_match(/already been confirmed/, flash[:error])
   end
 
   def test_confirm_email_bad_token
     post :confirm_email, :params => { :confirm_string => "XXXXX" }
     assert_response :success
     assert_template :confirm_email
-    assert_match /confirmation code has expired or does not exist/, flash[:error]
+    assert_match(/confirmation code has expired or does not exist/, flash[:error])
   end
 
   ##
@@ -575,7 +575,7 @@ class UserControllerTest < ActionController::TestCase
     post :confirm_email, :params => { :confirm_string => confirm_string }
     assert_response :redirect
     assert_redirected_to :action => :account, :display_name => user.display_name
-    assert_match /Confirmed your change of email address/, flash[:notice]
+    assert_match(/Confirmed your change of email address/, flash[:notice])
     # gravatar use should now be enabled
     assert User.find(user.id).image_use_gravatar
   end
@@ -590,7 +590,7 @@ class UserControllerTest < ActionController::TestCase
     post :confirm_email, :params => { :confirm_string => confirm_string }
     assert_response :redirect
     assert_redirected_to :action => :account, :display_name => user.display_name
-    assert_match /Confirmed your change of email address/, flash[:notice]
+    assert_match(/Confirmed your change of email address/, flash[:notice])
     # gravatar use should now be disabled
     assert_not User.find(user.id).image_use_gravatar
   end
@@ -678,7 +678,7 @@ class UserControllerTest < ActionController::TestCase
     end
     assert_response :redirect
     assert_redirected_to :action => :login
-    assert_match /^Sorry you lost it/, flash[:notice]
+    assert_match(/^Sorry you lost it/, flash[:notice])
     email = ActionMailer::Base.deliveries.first
     assert_equal 1, email.to.count
     assert_equal user.email, email.to.first
@@ -691,7 +691,7 @@ class UserControllerTest < ActionController::TestCase
     end
     assert_response :redirect
     assert_redirected_to :action => :login
-    assert_match /^Sorry you lost it/, flash[:notice]
+    assert_match(/^Sorry you lost it/, flash[:notice])
     email = ActionMailer::Base.deliveries.first
     assert_equal 1, email.to.count
     assert_equal uppercase_user.email, email.to.first
@@ -714,7 +714,7 @@ class UserControllerTest < ActionController::TestCase
     end
     assert_response :redirect
     assert_redirected_to :action => :login
-    assert_match /^Sorry you lost it/, flash[:notice]
+    assert_match(/^Sorry you lost it/, flash[:notice])
     email = ActionMailer::Base.deliveries.first
     assert_equal 1, email.to.count
     assert_equal third_user.email, email.to.first
@@ -727,7 +727,7 @@ class UserControllerTest < ActionController::TestCase
     end
     assert_response :redirect
     assert_redirected_to :action => :login
-    assert_match /^Sorry you lost it/, flash[:notice]
+    assert_match(/^Sorry you lost it/, flash[:notice])
     email = ActionMailer::Base.deliveries.first
     assert_equal 1, email.to.count
     assert_equal third_user.email, email.to.first
@@ -935,14 +935,15 @@ class UserControllerTest < ActionController::TestCase
 
   # Check that the user account page will display and contains some relevant
   # information for the user
-  def test_view
+  def test_show
     # Test a non-existent user
-    get :view, :params => { :display_name => "unknown" }
+    get :show, :params => { :display_name => "unknown" }
     assert_response :not_found
 
     # Test a normal user
     user = create(:user)
-    get :view, :params => { :display_name => user.display_name }
+    create(:friend, :befriender => user)
+    get :show, :params => { :display_name => user.display_name }
     assert_response :success
     assert_select "div#userinformation" do
       assert_select "a[href^='/user/#{ERB::Util.u(user.display_name)}/history']", 1
@@ -955,10 +956,13 @@ class UserControllerTest < ActionController::TestCase
       assert_select "a[href='/blocks/new/#{ERB::Util.u(user.display_name)}']", 0
     end
 
+    # Friends shouldn't be visible as we're not logged in
+    assert_select "div#friends-container", :count => 0
+
     # Test a user who has been blocked
     blocked_user = create(:user)
     create(:user_block, :user => blocked_user)
-    get :view, :params => { :display_name => blocked_user.display_name }
+    get :show, :params => { :display_name => blocked_user.display_name }
     assert_response :success
     assert_select "div#userinformation" do
       assert_select "a[href^='/user/#{ERB::Util.u(blocked_user.display_name)}/history']", 1
@@ -974,7 +978,7 @@ class UserControllerTest < ActionController::TestCase
     # Test a moderator who has applied blocks
     moderator_user = create(:moderator_user)
     create(:user_block, :creator => moderator_user)
-    get :view, :params => { :display_name => moderator_user.display_name }
+    get :show, :params => { :display_name => moderator_user.display_name }
     assert_response :success
     assert_select "div#userinformation" do
       assert_select "a[href^='/user/#{ERB::Util.u(moderator_user.display_name)}/history']", 1
@@ -991,7 +995,7 @@ class UserControllerTest < ActionController::TestCase
     session[:user] = user.id
 
     # Test the normal user
-    get :view, :params => { :display_name => user.display_name }
+    get :show, :params => { :display_name => user.display_name }
     assert_response :success
     assert_select "div#userinformation" do
       assert_select "a[href^='/user/#{ERB::Util.u(user.display_name)}/history']", 1
@@ -1004,11 +1008,16 @@ class UserControllerTest < ActionController::TestCase
       assert_select "a[href='/blocks/new/#{ERB::Util.u(user.display_name)}']", 0
     end
 
+    # Friends should be visible as we're now logged in
+    assert_select "div#friends-container" do
+      assert_select "div.contact-activity", :count => 1
+    end
+
     # Login as a moderator
     session[:user] = create(:moderator_user).id
 
     # Test the normal user
-    get :view, :params => { :display_name => user.display_name }
+    get :show, :params => { :display_name => user.display_name }
     assert_response :success
     assert_select "div#userinformation" do
       assert_select "a[href^='/user/#{ERB::Util.u(user.display_name)}/history']", 1
@@ -1028,13 +1037,13 @@ class UserControllerTest < ActionController::TestCase
     seen_user = create(:user, :terms_seen => true)
     not_seen_user = create(:user, :terms_seen => false)
 
-    get :view, :params => { :display_name => agreed_user.display_name }
+    get :show, :params => { :display_name => agreed_user.display_name }
     assert_response :success
     assert_select "div#userinformation" do
       assert_select "p", :count => 0, :text => /Contributor terms/
     end
 
-    get :view, :params => { :display_name => seen_user.display_name }
+    get :show, :params => { :display_name => seen_user.display_name }
     assert_response :success
     # put @response.body
     assert_select "div#userinformation" do
@@ -1042,7 +1051,7 @@ class UserControllerTest < ActionController::TestCase
       assert_select "p", /Declined/
     end
 
-    get :view, :params => { :display_name => not_seen_user.display_name }
+    get :show, :params => { :display_name => not_seen_user.display_name }
     assert_response :success
     assert_select "div#userinformation" do
       assert_select "p", :count => 1, :text => /Contributor terms/
@@ -1250,8 +1259,8 @@ class UserControllerTest < ActionController::TestCase
     assert_difference "ActionMailer::Base.deliveries.size", 1 do
       post :make_friend, :params => { :display_name => friend.display_name }, :session => { :user => user }
     end
-    assert_redirected_to user_path(:display_name => friend.display_name)
-    assert_match /is now your friend/, flash[:notice]
+    assert_redirected_to user_path(friend)
+    assert_match(/is now your friend/, flash[:notice])
     assert Friend.where(:user_id => user.id, :friend_user_id => friend.id).first
     email = ActionMailer::Base.deliveries.first
     assert_equal 1, email.to.count
@@ -1262,8 +1271,8 @@ class UserControllerTest < ActionController::TestCase
     assert_no_difference "ActionMailer::Base.deliveries.size" do
       post :make_friend, :params => { :display_name => friend.display_name }, :session => { :user => user }
     end
-    assert_redirected_to user_path(:display_name => friend.display_name)
-    assert_match /You are already friends with/, flash[:warning]
+    assert_redirected_to user_path(friend)
+    assert_match(/You are already friends with/, flash[:warning])
     assert Friend.where(:user_id => user.id, :friend_user_id => friend.id).first
   end
 
@@ -1290,7 +1299,7 @@ class UserControllerTest < ActionController::TestCase
       post :make_friend, :params => { :display_name => friend.display_name, :referer => "/test" }, :session => { :user => user }
     end
     assert_redirected_to "/test"
-    assert_match /is now your friend/, flash[:notice]
+    assert_match(/is now your friend/, flash[:notice])
     assert Friend.where(:user_id => user.id, :friend_user_id => friend.id).first
     email = ActionMailer::Base.deliveries.first
     assert_equal 1, email.to.count
@@ -1335,14 +1344,14 @@ class UserControllerTest < ActionController::TestCase
 
     # When logged in a POST should remove the friendship
     post :remove_friend, :params => { :display_name => friend.display_name }, :session => { :user => user }
-    assert_redirected_to user_path(:display_name => friend.display_name)
-    assert_match /was removed from your friends/, flash[:notice]
+    assert_redirected_to user_path(friend)
+    assert_match(/was removed from your friends/, flash[:notice])
     assert_nil Friend.where(:user_id => user.id, :friend_user_id => friend.id).first
 
     # A second POST should report that the friendship does not exist
     post :remove_friend, :params => { :display_name => friend.display_name }, :session => { :user => user }
-    assert_redirected_to user_path(:display_name => friend.display_name)
-    assert_match /is not one of your friends/, flash[:error]
+    assert_redirected_to user_path(friend)
+    assert_match(/is not one of your friends/, flash[:error])
     assert_nil Friend.where(:user_id => user.id, :friend_user_id => friend.id).first
   end
 
@@ -1368,7 +1377,7 @@ class UserControllerTest < ActionController::TestCase
     # When logged in a POST should remove the friendship and refer
     post :remove_friend, :params => { :display_name => friend.display_name, :referer => "/test" }, :session => { :user => user }
     assert_redirected_to "/test"
-    assert_match /was removed from your friends/, flash[:notice]
+    assert_match(/was removed from your friends/, flash[:notice])
     assert_nil Friend.where(:user_id => user.id, :friend_user_id => friend.id).first
   end
 
@@ -1390,12 +1399,12 @@ class UserControllerTest < ActionController::TestCase
     # Now try as a normal user
     get :set_status, :params => { :display_name => user.display_name, :status => "suspended" }, :session => { :user => user }
     assert_response :redirect
-    assert_redirected_to :action => :view, :display_name => user.display_name
+    assert_redirected_to :action => :show, :display_name => user.display_name
 
     # Finally try as an administrator
     get :set_status, :params => { :display_name => user.display_name, :status => "suspended" }, :session => { :user => create(:administrator_user) }
     assert_response :redirect
-    assert_redirected_to :action => :view, :display_name => user.display_name
+    assert_redirected_to :action => :show, :display_name => user.display_name
     assert_equal "suspended", User.find(user.id).status
   end
 
@@ -1410,12 +1419,12 @@ class UserControllerTest < ActionController::TestCase
     # Now try as a normal user
     get :delete, :params => { :display_name => user.display_name, :status => "suspended" }, :session => { :user => user }
     assert_response :redirect
-    assert_redirected_to :action => :view, :display_name => user.display_name
+    assert_redirected_to :action => :show, :display_name => user.display_name
 
     # Finally try as an administrator
     get :delete, :params => { :display_name => user.display_name, :status => "suspended" }, :session => { :user => create(:administrator_user) }
     assert_response :redirect
-    assert_redirected_to :action => :view, :display_name => user.display_name
+    assert_redirected_to :action => :show, :display_name => user.display_name
 
     # Check that the user was deleted properly
     user.reload
@@ -1431,7 +1440,7 @@ class UserControllerTest < ActionController::TestCase
     assert_equal "deleted", user.status
   end
 
-  def test_list_get
+  def test_index_get
     user = create(:user)
     moderator_user = create(:moderator_user)
     administrator_user = create(:administrator_user)
@@ -1443,21 +1452,21 @@ class UserControllerTest < ActionController::TestCase
     assert_equal 7, User.count
 
     # Shouldn't work when not logged in
-    get :list
+    get :index
     assert_response :redirect
     assert_redirected_to :action => :login, :referer => users_path
 
     session[:user] = user.id
 
     # Shouldn't work when logged in as a normal user
-    get :list
+    get :index
     assert_response :redirect
     assert_redirected_to :action => :login, :referer => users_path
 
     session[:user] = moderator_user.id
 
     # Shouldn't work when logged in as a moderator
-    get :list
+    get :index
     assert_response :redirect
     assert_redirected_to :action => :login, :referer => users_path
 
@@ -1465,25 +1474,25 @@ class UserControllerTest < ActionController::TestCase
 
     # Note there is a header row, so all row counts are users + 1
     # Should work when logged in as an administrator
-    get :list
+    get :index
     assert_response :success
-    assert_template :list
+    assert_template :index
     assert_select "table#user_list tr", :count => 7 + 1
 
     # Should be able to limit by status
-    get :list, :params => { :status => "suspended" }
+    get :index, :params => { :status => "suspended" }
     assert_response :success
-    assert_template :list
+    assert_template :index
     assert_select "table#user_list tr", :count => 1 + 1
 
     # Should be able to limit by IP address
-    get :list, :params => { :ip => "1.2.3.4" }
+    get :index, :params => { :ip => "1.2.3.4" }
     assert_response :success
-    assert_template :list
+    assert_template :index
     assert_select "table#user_list tr", :count => 1 + 1
   end
 
-  def test_list_get_paginated
+  def test_index_get_paginated
     1.upto(100).each do |n|
       User.create(:display_name => "extra_#{n}",
                   :email => "extra#{n}@example.com",
@@ -1495,29 +1504,29 @@ class UserControllerTest < ActionController::TestCase
     # 100 examples, an administrator, and a granter for the admin.
     assert_equal 102, User.count
 
-    get :list
+    get :index
     assert_response :success
-    assert_template :list
+    assert_template :index
     assert_select "table#user_list tr", :count => 51
 
-    get :list, :params => { :page => 2 }
+    get :index, :params => { :page => 2 }
     assert_response :success
-    assert_template :list
+    assert_template :index
     assert_select "table#user_list tr", :count => 51
 
-    get :list, :params => { :page => 3 }
+    get :index, :params => { :page => 3 }
     assert_response :success
-    assert_template :list
+    assert_template :index
     assert_select "table#user_list tr", :count => 3
   end
 
-  def test_list_post_confirm
+  def test_index_post_confirm
     inactive_user = create(:user, :pending)
     suspended_user = create(:user, :suspended)
 
     # Shouldn't work when not logged in
     assert_no_difference "User.active.count" do
-      post :list, :params => { :confirm => 1, :user => { inactive_user.id => 1, suspended_user.id => 1 } }
+      post :index, :params => { :confirm => 1, :user => { inactive_user.id => 1, suspended_user.id => 1 } }
     end
     assert_response :redirect
     assert_redirected_to :action => :login, :referer => users_path
@@ -1528,7 +1537,7 @@ class UserControllerTest < ActionController::TestCase
 
     # Shouldn't work when logged in as a normal user
     assert_no_difference "User.active.count" do
-      post :list, :params => { :confirm => 1, :user => { inactive_user.id => 1, suspended_user.id => 1 } }
+      post :index, :params => { :confirm => 1, :user => { inactive_user.id => 1, suspended_user.id => 1 } }
     end
     assert_response :redirect
     assert_redirected_to :action => :login, :referer => users_path
@@ -1539,7 +1548,7 @@ class UserControllerTest < ActionController::TestCase
 
     # Shouldn't work when logged in as a moderator
     assert_no_difference "User.active.count" do
-      post :list, :params => { :confirm => 1, :user => { inactive_user.id => 1, suspended_user.id => 1 } }
+      post :index, :params => { :confirm => 1, :user => { inactive_user.id => 1, suspended_user.id => 1 } }
     end
     assert_response :redirect
     assert_redirected_to :action => :login, :referer => users_path
@@ -1550,21 +1559,21 @@ class UserControllerTest < ActionController::TestCase
 
     # Should work when logged in as an administrator
     assert_difference "User.active.count", 2 do
-      post :list, :params => { :confirm => 1, :user => { inactive_user.id => 1, suspended_user.id => 1 } }
+      post :index, :params => { :confirm => 1, :user => { inactive_user.id => 1, suspended_user.id => 1 } }
     end
     assert_response :redirect
-    assert_redirected_to :action => :list
+    assert_redirected_to :action => :index
     assert_equal "confirmed", inactive_user.reload.status
     assert_equal "confirmed", suspended_user.reload.status
   end
 
-  def test_list_post_hide
+  def test_index_post_hide
     normal_user = create(:user)
     confirmed_user = create(:user, :confirmed)
 
     # Shouldn't work when not logged in
     assert_no_difference "User.active.count" do
-      post :list, :params => { :hide => 1, :user => { normal_user.id => 1, confirmed_user.id => 1 } }
+      post :index, :params => { :hide => 1, :user => { normal_user.id => 1, confirmed_user.id => 1 } }
     end
     assert_response :redirect
     assert_redirected_to :action => :login, :referer => users_path
@@ -1575,7 +1584,7 @@ class UserControllerTest < ActionController::TestCase
 
     # Shouldn't work when logged in as a normal user
     assert_no_difference "User.active.count" do
-      post :list, :params => { :hide => 1, :user => { normal_user.id => 1, confirmed_user.id => 1 } }
+      post :index, :params => { :hide => 1, :user => { normal_user.id => 1, confirmed_user.id => 1 } }
     end
     assert_response :redirect
     assert_redirected_to :action => :login, :referer => users_path
@@ -1586,7 +1595,7 @@ class UserControllerTest < ActionController::TestCase
 
     # Shouldn't work when logged in as a moderator
     assert_no_difference "User.active.count" do
-      post :list, :params => { :hide => 1, :user => { normal_user.id => 1, confirmed_user.id => 1 } }
+      post :index, :params => { :hide => 1, :user => { normal_user.id => 1, confirmed_user.id => 1 } }
     end
     assert_response :redirect
     assert_redirected_to :action => :login, :referer => users_path
@@ -1597,10 +1606,10 @@ class UserControllerTest < ActionController::TestCase
 
     # Should work when logged in as an administrator
     assert_difference "User.active.count", -2 do
-      post :list, :params => { :hide => 1, :user => { normal_user.id => 1, confirmed_user.id => 1 } }
+      post :index, :params => { :hide => 1, :user => { normal_user.id => 1, confirmed_user.id => 1 } }
     end
     assert_response :redirect
-    assert_redirected_to :action => :list
+    assert_redirected_to :action => :index
     assert_equal "deleted", normal_user.reload.status
     assert_equal "deleted", confirmed_user.reload.status
   end
index f9e32140621081672573fd07ae88477a9ba5a998..705f06a1c469e281122e1f0ecfd80fe1f0093d37 100644 (file)
@@ -31,7 +31,7 @@ class UserRolesControllerTest < ActionController::TestCase
 
     # Granting should still fail
     post :grant, :params => { :display_name => target_user.display_name, :role => "moderator" }
-    assert_redirected_to user_path(target_user.display_name)
+    assert_redirected_to user_path(target_user)
     assert_equal "Only administrators can perform user role management, and you are not an administrator.", flash[:error]
 
     # Login as an administrator
@@ -50,20 +50,20 @@ class UserRolesControllerTest < ActionController::TestCase
       assert_no_difference "UserRole.count" do
         post :grant, :params => { :display_name => super_user.display_name, :role => role }
       end
-      assert_redirected_to user_path(super_user.display_name)
+      assert_redirected_to user_path(super_user)
       assert_equal "The user already has role #{role}.", flash[:error]
 
       # Granting a role to a user that doesn't have it should work...
       assert_difference "UserRole.count", 1 do
         post :grant, :params => { :display_name => target_user.display_name, :role => role }
       end
-      assert_redirected_to user_path(target_user.display_name)
+      assert_redirected_to user_path(target_user)
 
       # ...but trying a second time should fail
       assert_no_difference "UserRole.count" do
         post :grant, :params => { :display_name => target_user.display_name, :role => role }
       end
-      assert_redirected_to user_path(target_user.display_name)
+      assert_redirected_to user_path(target_user)
       assert_equal "The user already has role #{role}.", flash[:error]
     end
 
@@ -71,7 +71,7 @@ class UserRolesControllerTest < ActionController::TestCase
     assert_difference "UserRole.count", 0 do
       post :grant, :params => { :display_name => target_user.display_name, :role => "no_such_role" }
     end
-    assert_redirected_to user_path(target_user.display_name)
+    assert_redirected_to user_path(target_user)
     assert_equal "The string `no_such_role' is not a valid role.", flash[:error]
   end
 
@@ -92,7 +92,7 @@ class UserRolesControllerTest < ActionController::TestCase
 
     # Revoking should still fail
     post :revoke, :params => { :display_name => target_user.display_name, :role => "moderator" }
-    assert_redirected_to user_path(target_user.display_name)
+    assert_redirected_to user_path(target_user)
     assert_equal "Only administrators can perform user role management, and you are not an administrator.", flash[:error]
 
     # Login as an administrator
@@ -111,20 +111,20 @@ class UserRolesControllerTest < ActionController::TestCase
       assert_no_difference "UserRole.count" do
         post :revoke, :params => { :display_name => target_user.display_name, :role => role }
       end
-      assert_redirected_to user_path(target_user.display_name)
+      assert_redirected_to user_path(target_user)
       assert_equal "The user does not have role #{role}.", flash[:error]
 
       # Removing a role from a user that has it should work...
       assert_difference "UserRole.count", -1 do
         post :revoke, :params => { :display_name => super_user.display_name, :role => role }
       end
-      assert_redirected_to user_path(super_user.display_name)
+      assert_redirected_to user_path(super_user)
 
       # ...but trying a second time should fail
       assert_no_difference "UserRole.count" do
         post :revoke, :params => { :display_name => super_user.display_name, :role => role }
       end
-      assert_redirected_to user_path(super_user.display_name)
+      assert_redirected_to user_path(super_user)
       assert_equal "The user does not have role #{role}.", flash[:error]
     end
 
@@ -132,12 +132,12 @@ class UserRolesControllerTest < ActionController::TestCase
     assert_difference "UserRole.count", 0 do
       post :revoke, :params => { :display_name => target_user.display_name, :role => "no_such_role" }
     end
-    assert_redirected_to user_path(target_user.display_name)
+    assert_redirected_to user_path(target_user)
     assert_equal "The string `no_such_role' is not a valid role.", flash[:error]
 
     # Revoking administrator role from current user should fail
     post :revoke, :params => { :display_name => administrator_user.display_name, :role => "administrator" }
-    assert_redirected_to user_path(administrator_user.display_name)
+    assert_redirected_to user_path(administrator_user)
     assert_equal "Cannot revoke administrator role from current user.", flash[:error]
   end
 end
index 59f234c41bd84011a134a3da7c6cd8e9b5237125..c786b4f4a87eee2092a287f3cee3bd1eed7645f0 100644 (file)
@@ -16,7 +16,7 @@ class ClientApplicationsTest < ActionDispatch::IntegrationTest
     assert_response :redirect
     follow_redirect!
     assert_response :success
-    assert_template "user/view"
+    assert_template "user/show"
     get "/user/#{ERB::Util.u(user.display_name)}/account"
     assert_response :success
     assert_template "user/account"
index 20ee9a885a9952f4008741bc2f904f4d7ad36dcd..fbec2fb9338ce4e42a62e3e6ed4dab14a061eb76 100644 (file)
@@ -95,7 +95,7 @@ class UserCreationTest < ActionDispatch::IntegrationTest
 
       assert_equal register_email.to.first, new_email
       # Check that the confirm account url is correct
-      assert_match /#{@url}/, register_email.body.to_s
+      assert_match(/#{@url}/, register_email.body.to_s)
 
       # Check the page
       assert_response :success
index 000ea0316082041096b216301e5c3a81d897facf..7001abd3dc9c2a30c2860bf416a0be5ec682daea 100644 (file)
@@ -33,7 +33,7 @@ class UserRolesTest < ActionDispatch::IntegrationTest
 
     target_user = create(:user)
     post "/user/#{ERB::Util.u(target_user.display_name)}/role/#{role}/#{action}"
-    assert_redirected_to :controller => "user", :action => "view", :display_name => target_user.display_name
+    assert_redirected_to user_path(target_user)
 
     reset!
   end
@@ -51,7 +51,7 @@ class UserRolesTest < ActionDispatch::IntegrationTest
 
     target_user = create(:user)
     post "/user/#{ERB::Util.u(target_user.display_name)}/role/#{role}/#{action}"
-    assert_redirected_to :controller => "user", :action => "view", :display_name => target_user.display_name
+    assert_redirected_to user_path(target_user)
 
     reset!
   end
index 46ff38c9ade19cd597cb0d08b4a9a135f9022a33..a29711b0b445dd531b485c61c8b13b985a33a344 100644 (file)
@@ -168,8 +168,8 @@ class BoundingBoxTest < ActiveSupport::TestCase
     @bad_negative_boundary_bbox.each do |bbox_string|
       bbox = BoundingBox.from_bbox_params(:bbox => bbox_string)
       array = bbox.to_a
-      assert_equal -180, [array[0], array[2]].min
-      assert_equal -90, [array[1], array[3]].min
+      assert_equal(-180, [array[0], array[2]].min)
+      assert_equal(-90, [array[1], array[3]].min)
     end
   end
 
index 0e21a9ed8439db7541d3bd9bd63c4e5f2d4d2e39..a6fc7c144d42f6f65f51d1a06b2eaeb0b4bf5876 100644 (file)
@@ -5,7 +5,7 @@ class CountryTest < ActiveSupport::TestCase
     gb = Country.find("GB")
     assert_not_nil gb
     assert_equal "GB", gb.code
-    assert_equal -8.623555, gb.min_lon
+    assert_equal(-8.623555, gb.min_lon)
     assert_equal 59.360249, gb.max_lat
     assert_equal 1.759, gb.max_lon
     assert_equal 49.906193, gb.min_lat
@@ -16,9 +16,9 @@ class CountryTest < ActiveSupport::TestCase
     assert_not_nil au
     assert_equal "AU", au.code
     assert_equal 112.911057, au.min_lon
-    assert_equal -10.062805, au.max_lat
+    assert_equal(-10.062805, au.max_lat)
     assert_equal 153.639252, au.max_lon
-    assert_equal -43.64397, au.min_lat
+    assert_equal(-43.64397, au.min_lat)
   end
 
   def test_xx
index cdb1a8e85c409edab877b94ed42d9f5591be03a2..bc8c84fb1f0a0a017d183c144e8dc80fc98a8a6e 100644 (file)
@@ -6,11 +6,11 @@ class ChangesetTest < ActiveSupport::TestCase
     message_create = assert_raise(OSM::APIBadXMLError) do
       Changeset.from_xml(no_text, true)
     end
-    assert_match /Must specify a string with one or more characters/, message_create.message
+    assert_match(/Must specify a string with one or more characters/, message_create.message)
     message_update = assert_raise(OSM::APIBadXMLError) do
       Changeset.from_xml(no_text, false)
     end
-    assert_match /Must specify a string with one or more characters/, message_update.message
+    assert_match(/Must specify a string with one or more characters/, message_update.message)
   end
 
   def test_from_xml_no_changeset
@@ -30,11 +30,11 @@ class ChangesetTest < ActiveSupport::TestCase
     message_create = assert_raise(OSM::APIBadXMLError) do
       Changeset.from_xml(nokv, true)
     end
-    assert_match /tag is missing key/, message_create.message
+    assert_match(/tag is missing key/, message_create.message)
     message_update = assert_raise(OSM::APIBadXMLError) do
       Changeset.from_xml(nokv, false)
     end
-    assert_match /tag is missing key/, message_update.message
+    assert_match(/tag is missing key/, message_update.message)
   end
 
   def test_from_xml_no_v
@@ -42,11 +42,11 @@ class ChangesetTest < ActiveSupport::TestCase
     message_create = assert_raise(OSM::APIBadXMLError) do
       Changeset.from_xml(no_v, true)
     end
-    assert_match /tag is missing value/, message_create.message
+    assert_match(/tag is missing value/, message_create.message)
     message_update = assert_raise(OSM::APIBadXMLError) do
       Changeset.from_xml(no_v, false)
     end
-    assert_match /tag is missing value/, message_update.message
+    assert_match(/tag is missing value/, message_update.message)
   end
 
   def test_from_xml_duplicate_k
index 48319843b9f91b2781c43fbf38e7c9fe2c039d8c..18b75f451e6aabe0aabef026e7750d136d23d115 100644 (file)
@@ -106,7 +106,7 @@ class MessageTest < ActiveSupport::TestCase
     assert_equal recipient_user, message.recipient
     assert_equal mail.date, message.sent_on
     assert_equal "Test message", message.title
-    assert_match /^ *This is a test & a message *$/, message.body
+    assert_match(/^ *This is a test & a message *$/, message.body)
     assert_equal "text", message.body_format
   end
 
@@ -153,7 +153,7 @@ class MessageTest < ActiveSupport::TestCase
     assert_equal recipient_user, message.recipient
     assert_equal mail.date, message.sent_on
     assert_equal "Test message", message.title
-    assert_match /^ *This is a test & a message in HTML format *$/, message.body
+    assert_match(/^ *This is a test & a message in HTML format *$/, message.body)
     assert_equal "text", message.body_format
   end
 
index a68be4aa9a30283da86cd8f987748828699c96f8..c53f0ee1d12ff78df52d93dca9e0c59f3688100e 100644 (file)
@@ -63,8 +63,8 @@ class NodeTest < ActiveSupport::TestCase
   def test_lat_lon_xml_format
     node = build(:node, :latitude => 0.00004 * OldNode::SCALE, :longitude => 0.00008 * OldNode::SCALE)
 
-    assert_match /lat="0.0000400"/, node.to_xml.to_s
-    assert_match /lon="0.0000800"/, node.to_xml.to_s
+    assert_match(/lat="0.0000400"/, node.to_xml.to_s)
+    assert_match(/lon="0.0000800"/, node.to_xml.to_s)
   end
 
   # Check that you can create a node and store it
@@ -173,7 +173,7 @@ class NodeTest < ActiveSupport::TestCase
     message = assert_raise(OSM::APIBadXMLError) do
       Node.from_xml(noid, false)
     end
-    assert_match /ID is required when updating./, message.message
+    assert_match(/ID is required when updating./, message.message)
   end
 
   def test_from_xml_no_lat
@@ -181,11 +181,11 @@ class NodeTest < ActiveSupport::TestCase
     message_create = assert_raise(OSM::APIBadXMLError) do
       Node.from_xml(nolat, true)
     end
-    assert_match /lat missing/, message_create.message
+    assert_match(/lat missing/, message_create.message)
     message_update = assert_raise(OSM::APIBadXMLError) do
       Node.from_xml(nolat, false)
     end
-    assert_match /lat missing/, message_update.message
+    assert_match(/lat missing/, message_update.message)
   end
 
   def test_from_xml_no_lon
@@ -193,11 +193,11 @@ class NodeTest < ActiveSupport::TestCase
     message_create = assert_raise(OSM::APIBadXMLError) do
       Node.from_xml(nolon, true)
     end
-    assert_match /lon missing/, message_create.message
+    assert_match(/lon missing/, message_create.message)
     message_update = assert_raise(OSM::APIBadXMLError) do
       Node.from_xml(nolon, false)
     end
-    assert_match /lon missing/, message_update.message
+    assert_match(/lon missing/, message_update.message)
   end
 
   def test_from_xml_no_changeset_id
@@ -205,11 +205,11 @@ class NodeTest < ActiveSupport::TestCase
     message_create = assert_raise(OSM::APIBadXMLError) do
       Node.from_xml(nocs, true)
     end
-    assert_match /Changeset id is missing/, message_create.message
+    assert_match(/Changeset id is missing/, message_create.message)
     message_update = assert_raise(OSM::APIBadXMLError) do
       Node.from_xml(nocs, false)
     end
-    assert_match /Changeset id is missing/, message_update.message
+    assert_match(/Changeset id is missing/, message_update.message)
   end
 
   def test_from_xml_no_version
@@ -220,7 +220,7 @@ class NodeTest < ActiveSupport::TestCase
     message_update = assert_raise(OSM::APIBadXMLError) do
       Node.from_xml(no_version, false)
     end
-    assert_match /Version is required when updating/, message_update.message
+    assert_match(/Version is required when updating/, message_update.message)
   end
 
   def test_from_xml_double_lat
@@ -228,11 +228,11 @@ class NodeTest < ActiveSupport::TestCase
     message_create = assert_raise(OSM::APIBadXMLError) do
       Node.from_xml(nocs, true)
     end
-    assert_match /Fatal error: Attribute lat redefined at/, message_create.message
+    assert_match(/Fatal error: Attribute lat redefined at/, message_create.message)
     message_update = assert_raise(OSM::APIBadXMLError) do
       Node.from_xml(nocs, false)
     end
-    assert_match /Fatal error: Attribute lat redefined at/, message_update.message
+    assert_match(/Fatal error: Attribute lat redefined at/, message_update.message)
   end
 
   def test_from_xml_id_zero
@@ -245,7 +245,7 @@ class NodeTest < ActiveSupport::TestCase
       message_update = assert_raise(OSM::APIBadUserInput) do
         Node.from_xml(zero_id, false)
       end
-      assert_match /ID of node cannot be zero when updating/, message_update.message
+      assert_match(/ID of node cannot be zero when updating/, message_update.message)
     end
   end
 
@@ -254,11 +254,11 @@ class NodeTest < ActiveSupport::TestCase
     message_create = assert_raise(OSM::APIBadXMLError) do
       Node.from_xml(no_text, true)
     end
-    assert_match /Must specify a string with one or more characters/, message_create.message
+    assert_match(/Must specify a string with one or more characters/, message_create.message)
     message_update = assert_raise(OSM::APIBadXMLError) do
       Node.from_xml(no_text, false)
     end
-    assert_match /Must specify a string with one or more characters/, message_update.message
+    assert_match(/Must specify a string with one or more characters/, message_update.message)
   end
 
   def test_from_xml_no_node
@@ -278,11 +278,11 @@ class NodeTest < ActiveSupport::TestCase
     message_create = assert_raise(OSM::APIBadXMLError) do
       Node.from_xml(nokv, true)
     end
-    assert_match /tag is missing key/, message_create.message
+    assert_match(/tag is missing key/, message_create.message)
     message_update = assert_raise(OSM::APIBadXMLError) do
       Node.from_xml(nokv, false)
     end
-    assert_match /tag is missing key/, message_update.message
+    assert_match(/tag is missing key/, message_update.message)
   end
 
   def test_from_xml_no_v
@@ -290,11 +290,11 @@ class NodeTest < ActiveSupport::TestCase
     message_create = assert_raise(OSM::APIBadXMLError) do
       Node.from_xml(no_v, true)
     end
-    assert_match /tag is missing value/, message_create.message
+    assert_match(/tag is missing value/, message_create.message)
     message_update = assert_raise(OSM::APIBadXMLError) do
       Node.from_xml(no_v, false)
     end
-    assert_match /tag is missing value/, message_update.message
+    assert_match(/tag is missing value/, message_update.message)
   end
 
   def test_from_xml_duplicate_k
index 42097c8531b18a612ca2e705fa6f9d4eeb7d4763..4aadd5e47ef4da536de4fda35f910bd029960de0 100644 (file)
@@ -63,8 +63,8 @@ class OldNodeTest < ActiveSupport::TestCase
   def test_lat_lon_xml_format
     old_node = build(:old_node, :latitude => 0.00004 * OldNode::SCALE, :longitude => 0.00008 * OldNode::SCALE)
 
-    assert_match /lat="0.0000400"/, old_node.to_xml.to_s
-    assert_match /lon="0.0000800"/, old_node.to_xml.to_s
+    assert_match(/lat="0.0000400"/, old_node.to_xml.to_s)
+    assert_match(/lon="0.0000800"/, old_node.to_xml.to_s)
   end
 
   def test_node_tags
index b06cbd9b85843be99ab930df7048f58092c989f8..e6d0c0abdcdaa99e2a3112c4ca6b0a7c0c30952d 100644 (file)
@@ -9,7 +9,7 @@ class RelationTest < ActiveSupport::TestCase
     message = assert_raise(OSM::APIBadXMLError) do
       Relation.from_xml(noid, false)
     end
-    assert_match /ID is required when updating/, message.message
+    assert_match(/ID is required when updating/, message.message)
   end
 
   def test_from_xml_no_changeset_id
@@ -17,11 +17,11 @@ class RelationTest < ActiveSupport::TestCase
     message_create = assert_raise(OSM::APIBadXMLError) do
       Relation.from_xml(nocs, true)
     end
-    assert_match /Changeset id is missing/, message_create.message
+    assert_match(/Changeset id is missing/, message_create.message)
     message_update = assert_raise(OSM::APIBadXMLError) do
       Relation.from_xml(nocs, false)
     end
-    assert_match /Changeset id is missing/, message_update.message
+    assert_match(/Changeset id is missing/, message_update.message)
   end
 
   def test_from_xml_no_version
@@ -32,7 +32,7 @@ class RelationTest < ActiveSupport::TestCase
     message_update = assert_raise(OSM::APIBadXMLError) do
       Relation.from_xml(no_version, false)
     end
-    assert_match /Version is required when updating/, message_update.message
+    assert_match(/Version is required when updating/, message_update.message)
   end
 
   def test_from_xml_id_zero
@@ -45,7 +45,7 @@ class RelationTest < ActiveSupport::TestCase
       message_update = assert_raise(OSM::APIBadUserInput) do
         Relation.from_xml(zero_id, false)
       end
-      assert_match /ID of relation cannot be zero when updating/, message_update.message
+      assert_match(/ID of relation cannot be zero when updating/, message_update.message)
     end
   end
 
@@ -54,11 +54,11 @@ class RelationTest < ActiveSupport::TestCase
     message_create = assert_raise(OSM::APIBadXMLError) do
       Relation.from_xml(no_text, true)
     end
-    assert_match /Must specify a string with one or more characters/, message_create.message
+    assert_match(/Must specify a string with one or more characters/, message_create.message)
     message_update = assert_raise(OSM::APIBadXMLError) do
       Relation.from_xml(no_text, false)
     end
-    assert_match /Must specify a string with one or more characters/, message_update.message
+    assert_match(/Must specify a string with one or more characters/, message_update.message)
   end
 
   def test_from_xml_no_k_v
@@ -66,11 +66,11 @@ class RelationTest < ActiveSupport::TestCase
     message_create = assert_raise(OSM::APIBadXMLError) do
       Relation.from_xml(nokv, true)
     end
-    assert_match /tag is missing key/, message_create.message
+    assert_match(/tag is missing key/, message_create.message)
     message_update = assert_raise(OSM::APIBadXMLError) do
       Relation.from_xml(nokv, false)
     end
-    assert_match /tag is missing key/, message_update.message
+    assert_match(/tag is missing key/, message_update.message)
   end
 
   def test_from_xml_no_v
@@ -78,11 +78,11 @@ class RelationTest < ActiveSupport::TestCase
     message_create = assert_raise(OSM::APIBadXMLError) do
       Relation.from_xml(no_v, true)
     end
-    assert_match /tag is missing value/, message_create.message
+    assert_match(/tag is missing value/, message_create.message)
     message_update = assert_raise(OSM::APIBadXMLError) do
       Relation.from_xml(no_v, false)
     end
-    assert_match /tag is missing value/, message_update.message
+    assert_match(/tag is missing value/, message_update.message)
   end
 
   def test_from_xml_duplicate_k
@@ -180,4 +180,31 @@ class RelationTest < ActiveSupport::TestCase
     assert_equal 1, cr.size
     assert_equal super_relation.id, cr.first.id
   end
+
+  def test_update_changeset_bbox_any_relation
+    relation = create(:relation)
+    super_relation = create(:relation)
+    node = create(:node, :longitude => 116, :latitude => 39)
+    create(:relation_member, :relation => super_relation, :member_type => "Relation", :member_id => relation.id)
+    node_member = create(:relation_member, :relation => super_relation, :member_type => "Node", :member_id => node.id)
+    user = create(:user)
+    changeset = create(:changeset, :user => user)
+    assert_nil changeset.min_lon
+    assert_nil changeset.max_lon
+    assert_nil changeset.max_lat
+    assert_nil changeset.min_lat
+    new_relation = Relation.new
+    new_relation.id = super_relation.id
+    new_relation.version = super_relation.version
+    new_relation.changeset = changeset
+    new_relation.add_member node_member.member_type, node_member.member_id, node_member.member_role
+    # one member(relation type) was removed, so any_relation flag is expected to be true.
+    super_relation.update_from(new_relation, user)
+
+    # changeset updated by node member, representing any_relation flag true.
+    assert_equal 116, changeset.min_lon
+    assert_equal 116, changeset.max_lon
+    assert_equal 39, changeset.min_lat
+    assert_equal 39, changeset.max_lat
+  end
 end
index 670db5bceecdd6acc1d754f870b3ef0179bb17b9..a672b7c62b9de9e0374afc4f93470e730c154e75 100644 (file)
@@ -12,7 +12,7 @@ class TracepointTest < ActiveSupport::TestCase
   def test_lat_lon_xml_format
     tracepoint = build(:tracepoint, :latitude => 0.00004 * GeoRecord::SCALE, :longitude => 0.00008 * GeoRecord::SCALE)
 
-    assert_match /lat="0.0000400"/, tracepoint.to_xml_node.to_s
-    assert_match /lon="0.0000800"/, tracepoint.to_xml_node.to_s
+    assert_match(/lat="0.0000400"/, tracepoint.to_xml_node.to_s)
+    assert_match(/lon="0.0000800"/, tracepoint.to_xml_node.to_s)
   end
 end
index 6abf99c575948824cc5cfd38abd674dbbb6ae8ae..fb37be1b4fdfb40b31a49957222ae32f9b1dd036 100644 (file)
@@ -48,7 +48,7 @@ class WayTest < ActiveSupport::TestCase
     message = assert_raise(OSM::APIBadXMLError) do
       Way.from_xml(noid, false)
     end
-    assert_match /ID is required when updating/, message.message
+    assert_match(/ID is required when updating/, message.message)
   end
 
   def test_from_xml_no_changeset_id
@@ -56,11 +56,11 @@ class WayTest < ActiveSupport::TestCase
     message_create = assert_raise(OSM::APIBadXMLError) do
       Way.from_xml(nocs, true)
     end
-    assert_match /Changeset id is missing/, message_create.message
+    assert_match(/Changeset id is missing/, message_create.message)
     message_update = assert_raise(OSM::APIBadXMLError) do
       Way.from_xml(nocs, false)
     end
-    assert_match /Changeset id is missing/, message_update.message
+    assert_match(/Changeset id is missing/, message_update.message)
   end
 
   def test_from_xml_no_version
@@ -71,7 +71,7 @@ class WayTest < ActiveSupport::TestCase
     message_update = assert_raise(OSM::APIBadXMLError) do
       Way.from_xml(no_version, false)
     end
-    assert_match /Version is required when updating/, message_update.message
+    assert_match(/Version is required when updating/, message_update.message)
   end
 
   def test_from_xml_id_zero
@@ -84,7 +84,7 @@ class WayTest < ActiveSupport::TestCase
       message_update = assert_raise(OSM::APIBadUserInput) do
         Way.from_xml(zero_id, false)
       end
-      assert_match /ID of way cannot be zero when updating/, message_update.message
+      assert_match(/ID of way cannot be zero when updating/, message_update.message)
     end
   end
 
@@ -93,11 +93,11 @@ class WayTest < ActiveSupport::TestCase
     message_create = assert_raise(OSM::APIBadXMLError) do
       Way.from_xml(no_text, true)
     end
-    assert_match /Must specify a string with one or more characters/, message_create.message
+    assert_match(/Must specify a string with one or more characters/, message_create.message)
     message_update = assert_raise(OSM::APIBadXMLError) do
       Way.from_xml(no_text, false)
     end
-    assert_match /Must specify a string with one or more characters/, message_update.message
+    assert_match(/Must specify a string with one or more characters/, message_update.message)
   end
 
   def test_from_xml_no_k_v
@@ -105,11 +105,11 @@ class WayTest < ActiveSupport::TestCase
     message_create = assert_raise(OSM::APIBadXMLError) do
       Way.from_xml(nokv, true)
     end
-    assert_match /tag is missing key/, message_create.message
+    assert_match(/tag is missing key/, message_create.message)
     message_update = assert_raise(OSM::APIBadXMLError) do
       Way.from_xml(nokv, false)
     end
-    assert_match /tag is missing key/, message_update.message
+    assert_match(/tag is missing key/, message_update.message)
   end
 
   def test_from_xml_no_v
@@ -117,11 +117,11 @@ class WayTest < ActiveSupport::TestCase
     message_create = assert_raise(OSM::APIBadXMLError) do
       Way.from_xml(no_v, true)
     end
-    assert_match /tag is missing value/, message_create.message
+    assert_match(/tag is missing value/, message_create.message)
     message_update = assert_raise(OSM::APIBadXMLError) do
       Way.from_xml(no_v, false)
     end
-    assert_match /tag is missing value/, message_update.message
+    assert_match(/tag is missing value/, message_update.message)
   end
 
   def test_from_xml_duplicate_k
index 99533353b1252e095f1c7628a8249a778af99301..9d919523b5bbba4fd4495f9321cd591e016c65d3 100644 (file)
@@ -6,15 +6,15 @@ class ReportUserTest < ApplicationSystemTestCase
     visit browse_note_path(note)
     assert page.has_content?(note.comments.first.body)
 
-    assert_not page.has_content?(I18n.t("user.view.report"))
+    assert_not page.has_content?(I18n.t("user.show.report"))
   end
 
   def test_can_report_user
     user = create(:user)
     sign_in_as(create(:user))
-    visit user_path(user.display_name)
+    visit user_path(user)
 
-    click_on I18n.t("user.view.report")
+    click_on I18n.t("user.show.report")
     assert page.has_content? "Report"
     assert page.has_content? I18n.t("reports.new.disclaimer.intro")
 
@@ -33,9 +33,9 @@ class ReportUserTest < ApplicationSystemTestCase
   def test_it_promotes_issues
     user = create(:user)
     sign_in_as(create(:user))
-    visit user_path(user.display_name)
+    visit user_path(user)
 
-    click_on I18n.t("user.view.report")
+    click_on I18n.t("user.show.report")
     assert page.has_content? "Report"
     assert page.has_content? I18n.t("reports.new.disclaimer.intro")
 
@@ -50,9 +50,9 @@ class ReportUserTest < ApplicationSystemTestCase
     assert_equal user, Issue.last.reportable
     assert_equal "moderator", Issue.last.assigned_role
 
-    visit user_path(user.display_name)
+    visit user_path(user)
 
-    click_on I18n.t("user.view.report")
+    click_on I18n.t("user.show.report")
     assert page.has_content? "Report"
     assert page.has_content? I18n.t("reports.new.disclaimer.intro")
 
index 2ec17fb4bd15e558aeb8958a79ccfef0c99cd645..a06971f891eb44b38790af31e029d41cdad752e1 100644 (file)
@@ -36,7 +36,7 @@
       , silk = /silk/i.test(ua)
       , sailfish = /sailfish/i.test(ua)
       , tizen = /tizen/i.test(ua)
-      , webos = /(web|hpw)os/i.test(ua)
+      , webos = /(web|hpw)(o|0)s/i.test(ua)
       , windowsphone = /windows phone/i.test(ua)
       , samsungBrowser = /SamsungBrowser/i.test(ua)
       , windows = !windowsphone && /windows/i.test(ua)
         , version: versionIdentifier || getFirstMatch(/(?:SamsungBrowser)[\s\/](\d+(\.\d+)?)/i)
       }
     }
+    else if (/Whale/i.test(ua)) {
+      result = {
+        name: 'NAVER Whale browser'
+        , whale: t
+        , version: getFirstMatch(/(?:whale)[\s\/](\d+(?:\.\d+)+)/i)
+      }
+    }
+    else if (/MZBrowser/i.test(ua)) {
+      result = {
+        name: 'MZ Browser'
+        , mzbrowser: t
+        , version: getFirstMatch(/(?:MZBrowser)[\s\/](\d+(?:\.\d+)+)/i)
+      }
+    }
     else if (/coast/i.test(ua)) {
       result = {
         name: 'Opera Coast'
         , version: versionIdentifier || getFirstMatch(/(?:coast)[\s\/](\d+(\.\d+)?)/i)
       }
     }
+    else if (/focus/i.test(ua)) {
+      result = {
+        name: 'Focus'
+        , focus: t
+        , version: getFirstMatch(/(?:focus)[\s\/](\d+(?:\.\d+)+)/i)
+      }
+    }
     else if (/yabrowser/i.test(ua)) {
       result = {
         name: 'Yandex Browser'
                    (result.vivaldi && result.version >= 1.0) ||
         (result.chrome && result.version >= 20) ||
         (result.samsungBrowser && result.version >= 4) ||
+        (result.whale && compareVersions([result.version, '1.0']) === 1) ||
+        (result.mzbrowser && compareVersions([result.version, '6.0']) === 1) ||
+        (result.focus && compareVersions([result.version, '1.0']) === 1) ||
         (result.firefox && result.version >= 20.0) ||
         (result.safari && result.version >= 6) ||
         (result.opera && result.version >= 10.0) ||
index d1b47a1251c18df4c08b0b8c0b2c64522c90eab9..70802f36874bffb5d8fee4b57a8c7d8f93a3aa1a 100644 (file)
@@ -45,7 +45,8 @@
 .leaflet-container .leaflet-marker-pane img,
 .leaflet-container .leaflet-shadow-pane img,
 .leaflet-container .leaflet-tile-pane img,
-.leaflet-container img.leaflet-image-layer {
+.leaflet-container img.leaflet-image-layer,
+.leaflet-container .leaflet-tile {
        max-width: none !important;
        max-height: none !important;
        }
        opacity: 0;
        -webkit-transition: opacity 0.2s linear;
           -moz-transition: opacity 0.2s linear;
-            -o-transition: opacity 0.2s linear;
                transition: opacity 0.2s linear;
        }
 .leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
 .leaflet-zoom-anim .leaflet-zoom-animated {
        -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
           -moz-transition:    -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
-            -o-transition:      -o-transform 0.25s cubic-bezier(0,0,0.25,1);
                transition:         transform 0.25s cubic-bezier(0,0,0.25,1);
        }
 .leaflet-zoom-anim .leaflet-tile,
 .leaflet-pan-anim .leaflet-tile {
        -webkit-transition: none;
           -moz-transition: none;
-            -o-transition: none;
                transition: none;
        }
 
 .leaflet-grab {
        cursor: -webkit-grab;
        cursor:    -moz-grab;
+       cursor:         grab;
        }
 .leaflet-crosshair,
 .leaflet-crosshair .leaflet-interactive {
        cursor: move;
        cursor: -webkit-grabbing;
        cursor:    -moz-grabbing;
+       cursor:         grabbing;
        }
 
 /* marker & overlays interactivity */
        -webkit-transform: rotate(45deg);
           -moz-transform: rotate(45deg);
            -ms-transform: rotate(45deg);
-            -o-transform: rotate(45deg);
                transform: rotate(45deg);
        }
 .leaflet-popup-content-wrapper,
index f977f27d82c7fed247afb8b27c78476a3a84238f..12bf1f0cda8a8bbe9b1d83955d4107f37a87aada 100644 (file)
@@ -1,5 +1,5 @@
 /* @preserve
- * Leaflet 1.3.3, a JS library for interactive maps. http://leafletjs.com
+ * Leaflet 1.3.4, a JS library for interactive maps. http://leafletjs.com
  * (c) 2010-2018 Vladimir Agafonkin, (c) 2010-2011 CloudMade
  */
 
@@ -9,7 +9,7 @@
        (factory((global.L = {})));
 }(this, (function (exports) { 'use strict';
 
-var version = "1.3.3";
+var version = "1.3.4";
 
 /*
  * @namespace Util
@@ -2221,7 +2221,7 @@ function removeDoubleTapListener(obj, id) {
 // @property TRANSFORM: String
 // Vendor-prefixed transform style name (e.g. `'webkitTransform'` for WebKit).
 var TRANSFORM = testProp(
-       ['transform', 'WebkitTransform', 'OTransform', 'MozTransform', 'msTransform']);
+       ['transform', 'webkitTransform', 'OTransform', 'MozTransform', 'msTransform']);
 
 // webkitTransition comes first because some browser versions that drop vendor prefix don't do
 // the same for the transitionend event, in particular the Android 4.1 stock browser
@@ -5369,6 +5369,10 @@ Map.mergeOptions({
 
 Map.addInitHook(function () {
        if (this.options.zoomControl) {
+               // @section Controls
+               // @property zoomControl: Control.Zoom
+               // The default zoom control (only available if the
+               // [`zoomControl` option](#map-zoomcontrol) was `true` when creating the map).
                this.zoomControl = new Zoom();
                this.addControl(this.zoomControl);
        }
@@ -7014,7 +7018,7 @@ var Icon = Class.extend({
 
        options: {
                popupAnchor: [0, 0],
-               tooltipAnchor: [0, 0],
+               tooltipAnchor: [0, 0]
        },
 
        initialize: function (options) {
@@ -7330,22 +7334,6 @@ var Marker = Layer.extend({
                // Option inherited from "Interactive layer" abstract class
                interactive: true,
 
-               // @option draggable: Boolean = false
-               // Whether the marker is draggable with mouse/touch or not.
-               draggable: false,
-
-               // @option autoPan: Boolean = false
-               // Set it to `true` if you want the map to do panning animation when marker hits the edges.
-               autoPan: false,
-
-               // @option autoPanPadding: Point = Point(50, 50)
-               // Equivalent of setting both top left and bottom right autopan padding to the same value.
-               autoPanPadding: [50, 50],
-
-               // @option autoPanSpeed: Number = 10
-               // Number of pixels the map should move by.
-               autoPanSpeed: 10,
-
                // @option keyboard: Boolean = true
                // Whether the marker can be tabbed to with a keyboard and clicked by pressing enter.
                keyboard: true,
@@ -7381,7 +7369,25 @@ var Marker = Layer.extend({
                // @option bubblingMouseEvents: Boolean = false
                // When `true`, a mouse event on this marker will trigger the same event on the map
                // (unless [`L.DomEvent.stopPropagation`](#domevent-stoppropagation) is used).
-               bubblingMouseEvents: false
+               bubblingMouseEvents: false,
+
+               // @section Draggable marker options
+               // @option draggable: Boolean = false
+               // Whether the marker is draggable with mouse/touch or not.
+               draggable: false,
+
+               // @option autoPan: Boolean = false
+               // Whether to pan the map when dragging this marker near its edge or not.
+               autoPan: false,
+
+               // @option autoPanPadding: Point = Point(50, 50)
+               // Distance (in pixels to the left/right and to the top/bottom) of the
+               // map edge to start panning the map.
+               autoPanPadding: [50, 50],
+
+               // @option autoPanSpeed: Number = 10
+               // Number of pixels the map should pan by.
+               autoPanSpeed: 10
        },
 
        /* @section
@@ -8963,12 +8969,12 @@ var ImageOverlay = Layer.extend({
                errorOverlayUrl: '',
 
                // @option zIndex: Number = 1
-               // The explicit [zIndex](https://developer.mozilla.org/docs/Web/CSS/CSS_Positioning/Understanding_z_index) of the tile layer.
+               // The explicit [zIndex](https://developer.mozilla.org/docs/Web/CSS/CSS_Positioning/Understanding_z_index) of the overlay layer.
                zIndex: 1,
 
                // @option className: String = ''
                // A custom class name to assign to the image. Empty by default.
-               className: '',
+               className: ''
        },
 
        initialize: function (url, bounds, options) { // (String, LatLngBounds, Object)
@@ -9074,7 +9080,7 @@ var ImageOverlay = Layer.extend({
                return events;
        },
 
-       // @method: setZIndex(value: Number) : this
+       // @method setZIndex(value: Number): this
        // Changes the [zIndex](#imageoverlay-zindex) of the image overlay.
        setZIndex: function (value) {
                this.options.zIndex = value;
@@ -9160,7 +9166,7 @@ var ImageOverlay = Layer.extend({
 
        _overlayOnError: function () {
                // @event error: Event
-               // Fired when the ImageOverlay layer has loaded its image
+               // Fired when the ImageOverlay layer fails to load its image
                this.fire('error');
 
                var errorUrl = this.options.errorOverlayUrl;
@@ -11220,12 +11226,6 @@ var GridLayer = Layer.extend({
                var tile = this._tiles[key];
                if (!tile) { return; }
 
-               // Cancels any pending http requests associated with the tile
-               // unless we're on Android's stock browser,
-               // see https://github.com/Leaflet/Leaflet/issues/137
-               if (!androidStock) {
-                       tile.el.setAttribute('src', emptyImageUrl);
-               }
                remove(tile.el);
 
                delete this._tiles[key];
@@ -11294,8 +11294,6 @@ var GridLayer = Layer.extend({
        },
 
        _tileReady: function (coords, err, tile) {
-               if (!this._map || tile.getAttribute('src') === emptyImageUrl) { return; }
-
                if (err) {
                        // @event tileerror: TileErrorEvent
                        // Fired when there is an error loading a tile.
@@ -11611,6 +11609,28 @@ var TileLayer = GridLayer.extend({
                                }
                        }
                }
+       },
+
+       _removeTile: function (key) {
+               var tile = this._tiles[key];
+               if (!tile) { return; }
+
+               // Cancels any pending http requests associated with the tile
+               // unless we're on Android's stock browser,
+               // see https://github.com/Leaflet/Leaflet/issues/137
+               if (!androidStock) {
+                       tile.el.setAttribute('src', emptyImageUrl);
+               }
+
+               return GridLayer.prototype._removeTile.call(this, key);
+       },
+
+       _tileReady: function (coords, err, tile) {
+               if (!this._map || (tile && tile.getAttribute('src') === emptyImageUrl)) {
+                       return;
+               }
+
+               return GridLayer.prototype._tileReady.call(this, coords, err, tile);
        }
 });
 
@@ -12073,7 +12093,7 @@ var Canvas = Renderer.extend({
 
        _updateDashArray: function (layer) {
                if (typeof layer.options.dashArray === 'string') {
-                       var parts = layer.options.dashArray.split(','),
+                       var parts = layer.options.dashArray.split(/[, ]+/),
                            dashArray = [],
                            i;
                        for (i = 0; i < parts.length; i++) {
index 813438a1b04a164b75b9e44492c11dbaca0771a2..37c8bcf7d8115ad20fd8488ed769e5bf75858eea 100644 (file)
@@ -22,6 +22,7 @@ L.OSM.Mapnik = L.OSM.TileLayer.extend({
 L.OSM.CycleMap = L.OSM.TileLayer.extend({
   options: {
     url: 'https://{s}.tile.thunderforest.com/cycle/{z}/{x}/{y}{r}.png?apikey={apikey}',
+    maxZoom: 21,
     attribution: '© <a href="https://www.openstreetmap.org/copyright" target="_blank">OpenStreetMap</a> contributors. Tiles courtesy of <a href="http://www.thunderforest.com/" target="_blank">Andy Allan</a>'
   }
 });
@@ -29,6 +30,7 @@ L.OSM.CycleMap = L.OSM.TileLayer.extend({
 L.OSM.TransportMap = L.OSM.TileLayer.extend({
   options: {
     url: 'https://{s}.tile.thunderforest.com/transport/{z}/{x}/{y}{r}.png?apikey={apikey}',
+    maxZoom: 21,
     attribution: '© <a href="https://www.openstreetmap.org/copyright" target="_blank">OpenStreetMap</a> contributors. Tiles courtesy of <a href="http://www.thunderforest.com/" target="_blank">Andy Allan</a>'
   }
 });
@@ -45,7 +47,8 @@ L.OSM.HOT = L.OSM.TileLayer.extend({
 L.OSM.GPS = L.OSM.TileLayer.extend({
   options: {
     url: 'https://gps-{s}.tile.openstreetmap.org/lines/{z}/{x}/{y}.png',
-    maxZoom: 20,
+    maxZoom: 21,
+    maxNativeZoom: 20,
     subdomains: 'abc'
   }
 });