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}
   &nbs