Merge branch 'master' into messages

This commit is contained in:
Andy Allan 2018-10-03 14:04:12 +02:00 committed by GitHub
commit 5e407dfb34
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
193 changed files with 3218 additions and 1547 deletions

View file

@ -1,5 +1,8 @@
inherit_from: .rubocop_todo.yml inherit_from: .rubocop_todo.yml
AllCops:
TargetRubyVersion: 2.3
Rails: Rails:
Enabled: true Enabled: true
@ -27,6 +30,9 @@ Rails/ApplicationRecord:
Rails/CreateTableWithTimestamps: Rails/CreateTableWithTimestamps:
Enabled: false Enabled: false
Rails/FindEach:
Enabled: false
Rails/HasManyOrHasOneDependent: Rails/HasManyOrHasOneDependent:
Enabled: false Enabled: false

View file

@ -1,23 +1,11 @@
# This configuration was generated by # This configuration was generated by
# `rubocop --auto-gen-config` # `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 # The point is for the user to remove these configuration records
# one by one as the offenses are removed from the code base. # one by one as the offenses are removed from the code base.
# Note that changes in the inspected code, or installation of new # Note that changes in the inspected code, or installation of new
# versions of RuboCop, may require this file to be generated again. # 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 # Offense count: 32
# Configuration parameters: AllowSafeAssignment. # Configuration parameters: AllowSafeAssignment.
Lint/AssignmentInCondition: Lint/AssignmentInCondition:
@ -42,17 +30,13 @@ Lint/HandleExceptions:
- 'app/controllers/amf_controller.rb' - 'app/controllers/amf_controller.rb'
- 'app/controllers/user_controller.rb' - 'app/controllers/user_controller.rb'
# Offense count: 2 # Offense count: 692
Lint/ShadowingOuterLocalVariable:
Exclude:
- 'app/views/changeset/list.atom.builder'
# Offense count: 690
Metrics/AbcSize: Metrics/AbcSize:
Max: 280 Max: 280
# Offense count: 41 # Offense count: 40
# Configuration parameters: CountComments, ExcludedMethods. # Configuration parameters: CountComments, ExcludedMethods.
# ExcludedMethods: refine
Metrics/BlockLength: Metrics/BlockLength:
Max: 262 Max: 262
@ -70,7 +54,7 @@ Metrics/ClassLength:
Metrics/CyclomaticComplexity: Metrics/CyclomaticComplexity:
Max: 20 Max: 20
# Offense count: 688 # Offense count: 691
# Configuration parameters: CountComments. # Configuration parameters: CountComments.
Metrics/MethodLength: Metrics/MethodLength:
Max: 179 Max: 179
@ -85,7 +69,7 @@ Metrics/ModuleLength:
Metrics/ParameterLists: Metrics/ParameterLists:
Max: 9 Max: 9
# Offense count: 71 # Offense count: 72
Metrics/PerceivedComplexity: Metrics/PerceivedComplexity:
Max: 23 Max: 23
@ -178,10 +162,17 @@ Style/AsciiComments:
Exclude: Exclude:
- 'test/models/message_test.rb' - 'test/models/message_test.rb'
# Offense count: 229 # Offense count: 230
Style/Documentation: Style/Documentation:
Enabled: false Enabled: false
# Offense count: 462
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle.
# SupportedStyles: when_needed, always, never
Style/FrozenStringLiteralComment:
Enabled: false
# Offense count: 2 # Offense count: 2
# Cop supports --auto-correct. # Cop supports --auto-correct.
Style/IfUnlessModifier: Style/IfUnlessModifier:
@ -194,7 +185,7 @@ Style/IfUnlessModifier:
Style/NumericLiterals: Style/NumericLiterals:
MinDigits: 11 MinDigits: 11
# Offense count: 3064 # Offense count: 3080
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns. # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
# URISchemes: http, https # URISchemes: http, https
Metrics/LineLength: Metrics/LineLength:

View file

@ -2,7 +2,7 @@ GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
specs: specs:
SystemTimer (1.2.3) SystemTimer (1.2.3)
aasm (5.0.0) aasm (5.0.1)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
actioncable (5.2.0) actioncable (5.2.0)
actionpack (= 5.2.0) actionpack (= 5.2.0)
@ -63,7 +63,7 @@ GEM
bigdecimal (1.1.0) bigdecimal (1.1.0)
binding_of_caller (0.8.0) binding_of_caller (0.8.0)
debug_inspector (>= 0.0.1) debug_inspector (>= 0.0.1)
bootsnap (1.3.1) bootsnap (1.3.2)
msgpack (~> 1.0) msgpack (~> 1.0)
builder (3.2.3) builder (3.2.3)
canonical-rails (0.2.4) canonical-rails (0.2.4)
@ -104,10 +104,10 @@ GEM
erubi (1.7.1) erubi (1.7.1)
execjs (2.7.0) execjs (2.7.0)
exifr (1.3.4) exifr (1.3.4)
factory_bot (4.11.0) factory_bot (4.11.1)
activesupport (>= 3.0.0) activesupport (>= 3.0.0)
factory_bot_rails (4.11.0) factory_bot_rails (4.11.1)
factory_bot (~> 4.11.0) factory_bot (~> 4.11.1)
railties (>= 3.0.0) railties (>= 3.0.0)
faraday (0.12.2) faraday (0.12.2)
multipart-post (>= 1.2, < 3) multipart-post (>= 1.2, < 3)
@ -169,7 +169,7 @@ GEM
nokogiri (>= 1.5.9) nokogiri (>= 1.5.9)
mail (2.7.0) mail (2.7.0)
mini_mime (>= 0.1.1) mini_mime (>= 0.1.1)
marcel (0.3.2) marcel (0.3.3)
mimemagic (~> 0.3.2) mimemagic (~> 0.3.2)
method_source (0.9.0) method_source (0.9.0)
mime-types (3.2.2) mime-types (3.2.2)
@ -301,7 +301,7 @@ GEM
rack (>= 1.4) rack (>= 1.4)
rinku (2.0.4) rinku (2.0.4)
rotp (3.3.1) rotp (3.3.1)
rubocop (0.58.2) rubocop (0.59.1)
jaro_winkler (~> 1.5.1) jaro_winkler (~> 1.5.1)
parallel (~> 1.10) parallel (~> 1.10)
parser (>= 2.5, != 2.5.1.1) parser (>= 2.5, != 2.5.1.1)
@ -317,7 +317,7 @@ GEM
crass (~> 1.0.2) crass (~> 1.0.2)
nokogiri (>= 1.4.4) nokogiri (>= 1.4.4)
nokogumbo (~> 1.4) nokogumbo (~> 1.4)
sass (3.5.7) sass (3.6.0)
sass-listen (~> 4.0.0) sass-listen (~> 4.0.0)
sass-listen (4.0.0) sass-listen (4.0.0)
rb-fsevent (~> 0.9, >= 0.9.4) rb-fsevent (~> 0.9, >= 0.9.4)
@ -358,7 +358,7 @@ GEM
tins (1.16.3) tins (1.16.3)
tzinfo (1.2.5) tzinfo (1.2.5)
thread_safe (~> 0.1) thread_safe (~> 0.1)
uglifier (4.1.18) uglifier (4.1.19)
execjs (>= 0.3.0, < 3) execjs (>= 0.3.0, < 3)
unicode-display_width (1.4.0) unicode-display_width (1.4.0)
validates_email_format_of (1.6.3) validates_email_format_of (1.6.3)

View 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). 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 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). 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).

17
Vagrantfile vendored
View file

@ -4,23 +4,26 @@
Vagrant.configure("2") do |config| Vagrant.configure("2") do |config|
# use official ubuntu image for virtualbox # use official ubuntu image for virtualbox
config.vm.provider "virtualbox" do |vb, override| config.vm.provider "virtualbox" do |vb, override|
override.vm.box = "ubuntu/xenial64" override.vm.box = "ubuntu/bionic64"
override.vm.synced_folder ".", "/srv/openstreetmap-website" override.vm.synced_folder ".", "/srv/openstreetmap-website"
vb.customize ["modifyvm", :id, "--memory", "1024"] vb.customize ["modifyvm", :id, "--memory", "1024"]
vb.customize ["modifyvm", :id, "--cpus", "2"] vb.customize ["modifyvm", :id, "--cpus", "2"]
vb.customize ["modifyvm", :id, "--uartmode1", "disconnected"] vb.customize ["modifyvm", :id, "--uartmode1", "disconnected"]
end 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| config.vm.provider "lxc" do |_, override|
override.vm.box = "generic/ubuntu1604" override.vm.box = "generic/ubuntu1804"
override.vm.synced_folder ".", "/srv/openstreetmap-website", :type => "nfs" override.vm.synced_folder ".", "/srv/openstreetmap-website", :type => sharing_type
end 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| config.vm.provider "libvirt" do |_, override|
override.vm.box = "generic/ubuntu1604" override.vm.box = "generic/ubuntu1804"
override.vm.synced_folder ".", "/srv/openstreetmap-website", :type => "nfs" override.vm.synced_folder ".", "/srv/openstreetmap-website", :type => sharing_type
end end
# configure shared package cache if possible # configure shared package cache if possible

View file

@ -11,13 +11,13 @@ folder 'vendor/assets' do
end end
folder 'leaflet' do folder 'leaflet' do
file 'leaflet.js', 'https://unpkg.com/leaflet@1.3.3/dist/leaflet-src.js' file 'leaflet.js', 'https://unpkg.com/leaflet@1.3.4/dist/leaflet-src.js'
file 'leaflet.css', 'https://unpkg.com/leaflet@1.3.3/dist/leaflet.css' file 'leaflet.css', 'https://unpkg.com/leaflet@1.3.4/dist/leaflet.css'
[ 'layers.png', 'layers-2x.png', [ 'layers.png', 'layers-2x.png',
'marker-icon.png', 'marker-icon-2x.png', 'marker-icon.png', 'marker-icon-2x.png',
'marker-shadow.png' ].each do |image| '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 end
from 'git://github.com/aratcliffe/Leaflet.contextmenu.git', :tag => 'v1.5.0' do from 'git://github.com/aratcliffe/Leaflet.contextmenu.git', :tag => 'v1.5.0' do
@ -69,7 +69,7 @@ folder 'vendor/assets' do
folder 'javascripts' do folder 'javascripts' do
file 'html5shiv.js', 'https://raw.githubusercontent.com/aFarkas/html5shiv/master/src/html5shiv.js' 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 end
folder 'swfobject' do folder 'swfobject' do

View file

@ -187,12 +187,12 @@ $(document).ready(function () {
$.cookie('_osm_location', OSM.locationCookie(map), { expires: expiry, path: '/' }); $.cookie('_osm_location', OSM.locationCookie(map), { expires: expiry, path: '/' });
}); });
if ($.cookie('_osm_welcome') === 'hide') { if ($.cookie('_osm_welcome') !== 'hide') {
$('.welcome').hide(); $('.welcome').addClass('visible');
} }
$('.welcome .close-wrap').on('click', function() { $('.welcome .close-wrap').on('click', function() {
$('.welcome').hide(); $('.welcome').removeClass('visible');
$.cookie('_osm_welcome', 'hide', { expires: expiry, path: '/' }); $.cookie('_osm_welcome', 'hide', { expires: expiry, path: '/' });
}); });

View file

@ -61,6 +61,12 @@ L.OSM.Map = L.Map.extend({
code: "G", code: "G",
name: I18n.t("javascripts.map.base.gps") 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) { updateLayers: function(layerParam) {

View file

@ -611,11 +611,18 @@ body.compact {
height: auto; height: auto;
overflow: hidden; overflow: hidden;
#banner, #banner {
.welcome {
display: block; display: block;
} }
.welcome {
display: none;
&.visible {
display: block;
}
}
#sidebar_content { #sidebar_content {
display: none; display: none;
} }
@ -971,6 +978,8 @@ header .search_forms,
img.button { img.button {
display: block; display: block;
width: 20px;
height: 20px;
} }
span.force_width { span.force_width {
@ -1501,7 +1510,7 @@ tr.turn:hover {
/* Rules for the trace view */ /* Rules for the trace view */
.trace-view { .trace-show {
.trace_pending { .trace_pending {
color: red; color: red;
} }
@ -1585,7 +1594,7 @@ tr.turn:hover {
margin-left: 70px; margin-left: 70px;
} }
.user-view { .user-show {
// Silly exception; remove when user page is redesigned. // Silly exception; remove when user page is redesigned.
.content-inner { .content-inner {
max-width: none; max-width: none;
@ -1712,7 +1721,7 @@ tr.turn:hover {
} }
} }
.diary_entry-view img.user_thumbnail { .diary_entry-show img.user_thumbnail {
float: left; float: left;
} }

View file

@ -126,9 +126,12 @@ body.small {
} }
} }
#sidebar .welcome, .overlay-sidebar #sidebar .welcome.visible {
#sidebar #banner { display: none;
display: none !important; }
.overlay-sidebar #sidebar #banner {
display: none;
} }
.leaflet-top.leaflet-right { .leaflet-top.leaflet-right {

View file

@ -143,6 +143,7 @@ class AmfController < ApplicationController
if cstags 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) 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 cstags = strip_non_xml_chars cstags
end end
@ -471,7 +472,7 @@ class AmfController < ApplicationController
return -1, t("application.setup_user_auth.blocked") if user.blocks.active.exists? return -1, t("application.setup_user_auth.blocked") if user.blocks.active.exists?
query = Trace.visible_to(user) query = Trace.visible_to(user)
query = if searchterm.to_i > 0 query = if searchterm.to_i.positive?
query.where(:id => searchterm.to_i) query.where(:id => searchterm.to_i)
else else
query.where("MATCH(name) AGAINST (?)", searchterm).limit(21) query.where("MATCH(name) AGAINST (?)", searchterm).limit(21)
@ -497,6 +498,7 @@ class AmfController < ApplicationController
rel = Relation.where(:id => relid).first rel = Relation.where(:id => relid).first
return [-4, "relation", relid] if rel.nil? || !rel.visible return [-4, "relation", relid] if rel.nil? || !rel.visible
[0, "", relid, rel.tags, rel.members, rel.version] [0, "", relid, rel.tags, rel.members, rel.version]
end end
end end
@ -506,9 +508,9 @@ class AmfController < ApplicationController
def findrelations(searchterm) def findrelations(searchterm)
rels = [] rels = []
if searchterm.to_i > 0 if searchterm.to_i.positive?
rel = Relation.where(:id => searchterm.to_i).first 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 else
RelationTag.where("v like ?", "%#{searchterm}%").limit(11).each do |t| 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 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, "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) 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 tags = strip_non_xml_chars tags
relid = relid.to_i relid = relid.to_i
@ -542,7 +545,7 @@ class AmfController < ApplicationController
relation = nil relation = nil
Relation.transaction do Relation.transaction do
# create a new relation, or find the existing one # 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 # We always need a new node, based on the data that has been sent to us
new_relation = Relation.new new_relation = Relation.new
@ -550,7 +553,7 @@ class AmfController < ApplicationController
typedmembers = [] typedmembers = []
members.each do |m| members.each do |m|
mid = m[1].to_i mid = m[1].to_i
if mid < 0 if mid.negative?
mid = renumberednodes[mid] if m[0] == "Node" mid = renumberednodes[mid] if m[0] == "Node"
mid = renumberedways[mid] if m[0] == "Way" mid = renumberedways[mid] if m[0] == "Way"
end end
@ -622,6 +625,7 @@ class AmfController < ApplicationController
return -2, "Server error - way is only #{pointlist.length} points long." if pointlist.length < 2 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) 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 attributes = strip_non_xml_chars attributes
originalway = originalway.to_i originalway = originalway.to_i
@ -651,6 +655,7 @@ class AmfController < ApplicationController
# fixup node tags in a way as well # 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) 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 = strip_non_xml_chars node.tags
node.tags.delete("created_by") 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, "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) 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 tags = strip_non_xml_chars tags
id = id.to_i id = id.to_i
@ -735,7 +741,7 @@ class AmfController < ApplicationController
node = nil node = nil
new_node = nil new_node = nil
Node.transaction do Node.transaction do
if id > 0 if id.positive?
begin begin
node = Node.find(id) node = Node.find(id)
rescue ActiveRecord::RecordNotFound rescue ActiveRecord::RecordNotFound
@ -883,12 +889,10 @@ class AmfController < ApplicationController
# in the +tags+ hash. # in the +tags+ hash.
def strip_non_xml_chars(tags) def strip_non_xml_chars(tags)
new_tags = {} new_tags = {}
unless tags.nil? tags&.each do |k, v|
tags.each do |k, v| new_k = k.delete "\000-\037\ufffe\uffff", "^\011\012\015"
new_k = k.delete "\000-\037\ufffe\uffff", "^\011\012\015" new_v = v.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
new_tags[new_k] = new_v
end
end end
new_tags new_tags
end end

View file

@ -283,8 +283,7 @@ class ApplicationController < ActionController::Base
# TODO: some sort of escaping of problem characters in the message # TODO: some sort of escaping of problem characters in the message
response.headers["Error"] = message response.headers["Error"] = message
if request.headers["X-Error-Format"] && if request.headers["X-Error-Format"]&.casecmp("xml")&.zero?
request.headers["X-Error-Format"].casecmp("xml").zero?
result = OSM::API.new.get_xml_doc result = OSM::API.new.get_xml_doc
result.root.name = "osmError" result.root.name = "osmError"
result.root << (XML::Node.new("status") << "#{Rack::Utils.status_code(status)} #{Rack::Utils::HTTP_STATUS_CODES[status]}") 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 helper_method :preferred_languages
def set_locale(reset = false) 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.languages = http_accept_language.user_preferred_languages
current_user.save current_user.save
end end
@ -435,7 +434,7 @@ class ApplicationController < ActionController::Base
def preferred_editor def preferred_editor
editor = if params[:editor] editor = if params[:editor]
params[:editor] params[:editor]
elsif current_user && current_user.preferred_editor elsif current_user&.preferred_editor
current_user.preferred_editor current_user.preferred_editor
else else
DEFAULT_EDITOR DEFAULT_EDITOR

View file

@ -58,7 +58,7 @@ class BrowseController < ApplicationController
def changeset def changeset
@type = "changeset" @type = "changeset"
@changeset = Changeset.find(params[:id]) @changeset = Changeset.find(params[:id])
@comments = if current_user && current_user.moderator? @comments = if current_user&.moderator?
@changeset.comments.unscope(:where => :visible).includes(:author) @changeset.comments.unscope(:where => :visible).includes(:author)
else else
@changeset.comments.includes(:author) @changeset.comments.includes(:author)
@ -77,7 +77,7 @@ class BrowseController < ApplicationController
def note def note
@type = "note" @type = "note"
if current_user && current_user.moderator? if current_user&.moderator?
@note = Note.find(params[:id]) @note = Note.find(params[:id])
@note_comments = @note.comments.unscope(:where => :visible) @note_comments = @note.comments.unscope(:where => :visible)
else else

View file

@ -4,19 +4,19 @@ class ChangesetController < ApplicationController
layout "site" layout "site"
require "xml/libxml" require "xml/libxml"
skip_before_action :verify_authenticity_token, :except => [:list] skip_before_action :verify_authenticity_token, :except => [:index]
before_action :authorize_web, :only => [:list, :feed, :comments_feed] before_action :authorize_web, :only => [:index, :feed, :comments_feed]
before_action :set_locale, :only => [:list, :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 :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_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_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 :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_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 :check_api_readable, :except => [:create, :update, :upload, :download, :query, :index, :feed, :comment, :subscribe, :unsubscribe, :comments_feed]
before_action(:only => [:list, :feed, :comments_feed]) { |c| c.check_database_readable(true) } before_action(:only => [:index, :feed, :comments_feed]) { |c| c.check_database_readable(true) }
around_action :api_call_handle_error, :except => [:list, :feed, :comments_feed] around_action :api_call_handle_error, :except => [:index, :feed, :comments_feed]
around_action :api_call_timeout, :except => [:list, :feed, :comments_feed, :upload] around_action :api_call_timeout, :except => [:index, :feed, :comments_feed, :upload]
around_action :web_timeout, :only => [:list, :feed, :comments_feed] around_action :web_timeout, :only => [:index, :feed, :comments_feed]
# Helper methods for checking consistency # Helper methods for checking consistency
include ConsistencyValidations include ConsistencyValidations
@ -255,7 +255,7 @@ class ChangesetController < ApplicationController
## ##
# list non-empty changesets in reverse chronological order # list non-empty changesets in reverse chronological order
def list def index
@params = params.permit(:display_name, :bbox, :friends, :nearby, :max_id, :list) @params = params.permit(:display_name, :bbox, :friends, :nearby, :max_id, :list)
if request.format == :atom && @params[:max_id] 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) @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
end end
## ##
# list edits as an atom feed # list edits as an atom feed
def feed def feed
list index
end end
## ##
@ -481,6 +481,7 @@ class ChangesetController < ApplicationController
u = if name.nil? u = if name.nil?
# user input checking, we don't have any UIDs < 1 # user input checking, we don't have any UIDs < 1
raise OSM::APIBadUserInput, "invalid user ID" if user.to_i < 1 raise OSM::APIBadUserInput, "invalid user ID" if user.to_i < 1
u = User.find(user.to_i) u = User.find(user.to_i)
else else
u = User.find_by(:display_name => name) u = User.find_by(:display_name => name)
@ -581,7 +582,7 @@ class ChangesetController < ApplicationController
# Get the maximum number of comments to return # Get the maximum number of comments to return
def comments_limit def comments_limit
if params[: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 params[:limit].to_i
else else
raise OSM::APIBadUserInput, "Comments limit must be between 1 and 10000" raise OSM::APIBadUserInput, "Comments limit must be between 1 and 10000"

View file

@ -4,11 +4,11 @@ class DiaryEntryController < ApplicationController
before_action :authorize_web before_action :authorize_web
before_action :set_locale before_action :set_locale
before_action :require_user, :only => [:new, :edit, :comment, :hide, :hidecomment, :subscribe, :unsubscribe] 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_readable
before_action :check_database_writable, :only => [:new, :edit, :comment, :hide, :hidecomment, :subscribe, :unsubscribe] before_action :check_database_writable, :only => [:new, :edit, :comment, :hide, :hidecomment, :subscribe, :unsubscribe]
before_action :require_administrator, :only => [:hide, :hidecomment] 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 def new
@title = t "diary_entry.new.title" @title = t "diary_entry.new.title"
@ -29,7 +29,7 @@ class DiaryEntryController < ApplicationController
# Subscribe user to diary comments # Subscribe user to diary comments
@diary_entry.subscriptions.create(:user => current_user) @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 else
render :action => "edit" render :action => "edit"
end end
@ -47,9 +47,9 @@ class DiaryEntryController < ApplicationController
@diary_entry = DiaryEntry.find(params[:id]) @diary_entry = DiaryEntry.find(params[:id])
if current_user != @diary_entry.user 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) 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 end
set_map_location set_map_location
@ -71,9 +71,9 @@ class DiaryEntryController < ApplicationController
# Add the commenter to the subscribers if necessary # Add the commenter to the subscribers if necessary
@entry.subscriptions.create(:user => current_user) unless @entry.subscribers.exists?(current_user.id) @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 else
render :action => "view" render :action => "show"
end end
rescue ActiveRecord::RecordNotFound rescue ActiveRecord::RecordNotFound
render :action => "no_such_entry", :status => :not_found 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) 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 rescue ActiveRecord::RecordNotFound
render :action => "no_such_entry", :status => :not_found render :action => "no_such_entry", :status => :not_found
end 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) 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 rescue ActiveRecord::RecordNotFound
render :action => "no_such_entry", :status => :not_found render :action => "no_such_entry", :status => :not_found
end end
def list def index
if params[:display_name] if params[:display_name]
@user = User.active.find_by(:display_name => params[:display_name]) @user = User.active.find_by(:display_name => params[:display_name])
if @user 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 @entries = @user.diary_entries
else else
render_unknown_user params[:display_name] render_unknown_user params[:display_name]
@ -112,7 +112,7 @@ class DiaryEntryController < ApplicationController
end end
elsif params[:friends] elsif params[:friends]
if current_user 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) @entries = DiaryEntry.where(:user_id => current_user.friend_users)
else else
require_user require_user
@ -120,7 +120,7 @@ class DiaryEntryController < ApplicationController
end end
elsif params[:nearby] elsif params[:nearby]
if current_user 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) @entries = DiaryEntry.where(:user_id => current_user.nearby)
else else
require_user require_user
@ -130,10 +130,10 @@ class DiaryEntryController < ApplicationController
@entries = DiaryEntry.joins(:user).where(:users => { :status => %w[active confirmed] }) @entries = DiaryEntry.joins(:user).where(:users => { :status => %w[active confirmed] })
if params[:language] 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]) @entries = @entries.where(:language_code => params[:language])
else else
@title = t "diary_entry.list.title" @title = t "diary_entry.index.title"
end end
end end
@ -157,7 +157,7 @@ class DiaryEntryController < ApplicationController
@entries = user.diary_entries @entries = user.diary_entries
@title = t("diary_entry.feed.user.title", :user => user.display_name) @title = t("diary_entry.feed.user.title", :user => user.display_name)
@description = t("diary_entry.feed.user.description", :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 else
head :not_found head :not_found
return return
@ -169,21 +169,21 @@ class DiaryEntryController < ApplicationController
@entries = @entries.where(:language_code => params[:language]) @entries = @entries.where(:language_code => params[:language])
@title = t("diary_entry.feed.language.title", :language_name => Language.find(params[:language]).english_name) @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) @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 else
@title = t("diary_entry.feed.all.title") @title = t("diary_entry.feed.all.title")
@description = t("diary_entry.feed.all.description") @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
end end
@entries = @entries.visible.includes(:user).order("created_at DESC").limit(20) @entries = @entries.visible.includes(:user).order("created_at DESC").limit(20)
end end
def view def show
@entry = @user.diary_entries.visible.where(:id => params[:id]).first @entry = @user.diary_entries.visible.where(:id => params[:id]).first
if @entry 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 else
@title = t "diary_entry.no_such_entry.title", :id => params[:id] @title = t "diary_entry.no_such_entry.title", :id => params[:id]
render :action => "no_such_entry", :status => :not_found render :action => "no_such_entry", :status => :not_found
@ -193,13 +193,13 @@ class DiaryEntryController < ApplicationController
def hide def hide
entry = DiaryEntry.find(params[:id]) entry = DiaryEntry.find(params[:id])
entry.update(:visible => false) 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 end
def hidecomment def hidecomment
comment = DiaryComment.find(params[:comment]) comment = DiaryComment.find(params[:comment])
comment.update(:visible => false) 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 end
def comments def comments
@ -235,7 +235,7 @@ class DiaryEntryController < ApplicationController
def require_administrator def require_administrator
unless current_user.administrator? unless current_user.administrator?
flash[:error] = t("user.filter.not_an_administrator") flash[:error] = t("user.filter.not_an_administrator")
redirect_to :action => "view" redirect_to :action => "show"
end end
end end

View file

@ -18,7 +18,7 @@ class IssuesController < ApplicationController
@issues = Issue.visible_to(current_user) @issues = Issue.visible_to(current_user)
# If search # 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]) @find_user = User.find_by(:display_name => params[:search_by_user])
if @find_user if @find_user
@issues = @issues.where(:reported_user_id => @find_user.id) @issues = @issues.where(:reported_user_id => @find_user.id)
@ -28,11 +28,11 @@ class IssuesController < ApplicationController
end end
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 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) @issues = @issues.where(:updated_by => last_updated_by)
end end

View file

@ -54,6 +54,7 @@ class NodeController < ApplicationController
new_node = Node.from_xml(request.raw_post) 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 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) node.delete_with_history!(new_node, current_user)
render :plain => node.version.to_s render :plain => node.version.to_s
end end
@ -65,6 +66,7 @@ class NodeController < ApplicationController
ids = params["nodes"].split(",").collect(&:to_i) ids = params["nodes"].split(",").collect(&:to_i)
raise OSM::APIBadUserInput, "No nodes were given to search for" if ids.empty? raise OSM::APIBadUserInput, "No nodes were given to search for" if ids.empty?
doc = OSM::API.new.get_xml_doc doc = OSM::API.new.get_xml_doc
Node.find(ids).each do |node| Node.find(ids).each do |node|

View file

@ -211,7 +211,7 @@ class NotesController < ApplicationController
# Find the note and check it is valid # Find the note and check it is valid
@note = Note.find(params[:id]) @note = Note.find(params[:id])
raise OSM::APINotFoundError unless @note 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 # Render the result
respond_to do |format| respond_to do |format|
@ -286,7 +286,7 @@ class NotesController < ApplicationController
@page = (params[:page] || 1).to_i @page = (params[:page] || 1).to_i
@page_size = 10 @page_size = 10
@notes = @user.notes @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 @notes = @notes.order("updated_at DESC, id").distinct.offset((@page - 1) * @page_size).limit(@page_size).preload(:comments => :author).to_a
else else
@title = t "user.no_such_user.title" @title = t "user.no_such_user.title"
@ -307,7 +307,7 @@ class NotesController < ApplicationController
# Get the maximum number of results to return # Get the maximum number of results to return
def result_limit def result_limit
if params[: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 params[:limit].to_i
else else
raise OSM::APIBadUserInput, "Note limit must be between 1 and 10000" raise OSM::APIBadUserInput, "Note limit must be between 1 and 10000"
@ -327,9 +327,9 @@ class NotesController < ApplicationController
7 7
end end
if closed_since < 0 if closed_since.negative?
notes.where.not(:status => "hidden") notes.where.not(:status => "hidden")
elsif closed_since > 0 elsif closed_since.positive?
notes.where(:status => "open") notes.where(:status => "open")
.or(notes.where(:status => "closed") .or(notes.where(:status => "closed")
.where(notes.arel_table[:closed_at].gt(Time.now - closed_since.days))) .where(notes.arel_table[:closed_at].gt(Time.now - closed_since.days)))

View file

@ -70,6 +70,6 @@ class OldController < ApplicationController
private private
def show_redactions? def show_redactions?
current_user && current_user.moderator? && params[:show_redactions] == "true" current_user&.moderator? && params[:show_redactions] == "true"
end end
end end

View file

@ -92,8 +92,8 @@ class TracesController < ApplicationController
def show def show
@trace = Trace.find(params[:id]) @trace = Trace.find(params[:id])
if @trace && @trace.visible? && if @trace&.visible? &&
(@trace.public? || @trace.user == current_user) (@trace&.public? || @trace&.user == current_user)
@title = t ".title", :name => @trace.name @title = t ".title", :name => @trace.name
else else
flash[:error] = t ".trace_not_found" flash[:error] = t ".trace_not_found"
@ -318,7 +318,7 @@ class TracesController < ApplicationController
visibility = params[:visibility] visibility = params[:visibility]
if visibility.nil? if visibility.nil?
visibility = if params[:public] && params[:public].to_i.nonzero? visibility = if params[:public]&.to_i&.nonzero?
"public" "public"
else else
"private" "private"

View file

@ -14,11 +14,11 @@ class UserController < ApplicationController
before_action :require_allow_read_prefs, :only => [:api_details] before_action :require_allow_read_prefs, :only => [:api_details]
before_action :require_allow_read_gpx, :only => [:api_gpx_files] before_action :require_allow_read_gpx, :only => [:api_gpx_files]
before_action :require_cookies, :only => [:new, :login, :confirm] 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] 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_id, :only => [:api_read]
before_action :lookup_user_by_name, :only => [:set_status, :delete] 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 def terms
@legale = params[:legale] || OSM.ip_to_country(request.remote_ip) || DEFAULT_LEGALE @legale = params[:legale] || OSM.ip_to_country(request.remote_ip) || DEFAULT_LEGALE
@ -29,7 +29,7 @@ class UserController < ApplicationController
else else
@title = t "user.terms.title" @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 # Already agreed to terms, so just show settings
redirect_to :action => :account, :display_name => current_user.display_name redirect_to :action => :account, :display_name => current_user.display_name
elsif current_user.nil? && session[:new_user].nil? elsif current_user.nil? && session[:new_user].nil?
@ -276,7 +276,7 @@ class UserController < ApplicationController
if params[:session] == session.id if params[:session] == session.id
if session[:token] if session[:token]
token = UserToken.find_by(:token => session[:token]) token = UserToken.find_by(:token => session[:token])
token.destroy if token token&.destroy
session.delete(:token) session.delete(:token)
end end
session.delete(:user) session.delete(:user)
@ -292,7 +292,7 @@ class UserController < ApplicationController
def confirm def confirm
if request.post? if request.post?
token = UserToken.find_by(:token => params[:confirm_string]) token = UserToken.find_by(:token => params[:confirm_string])
if token && token.user.active? if token&.user&.active?
flash[:error] = t("user.confirm.already active") flash[:error] = t("user.confirm.already active")
redirect_to :action => "login" redirect_to :action => "login"
elsif !token || token.expired? elsif !token || token.expired?
@ -349,7 +349,7 @@ class UserController < ApplicationController
def confirm_email def confirm_email
if request.post? if request.post?
token = UserToken.find_by(:token => params[:confirm_string]) token = UserToken.find_by(:token => params[:confirm_string])
if token && token.user.new_email? if token&.user&.new_email?
self.current_user = token.user self.current_user = token.user
current_user.email = current_user.new_email current_user.email = current_user.new_email
current_user.new_email = nil current_user.new_email = nil
@ -409,11 +409,11 @@ class UserController < ApplicationController
render :xml => doc.to_s render :xml => doc.to_s
end end
def view def show
@user = User.find_by(:display_name => params[:display_name]) @user = User.find_by(:display_name => params[:display_name])
if @user && if @user &&
(@user.visible? || (current_user && current_user.administrator?)) (@user.visible? || (current_user&.administrator?))
@title = @user.display_name @title = @user.display_name
else else
render_unknown_user params[:display_name] render_unknown_user params[:display_name]
@ -440,7 +440,7 @@ class UserController < ApplicationController
if params[:referer] if params[:referer]
redirect_to params[:referer] redirect_to params[:referer]
else else
redirect_to :action => "view" redirect_to :action => "show"
end end
end end
else else
@ -463,7 +463,7 @@ class UserController < ApplicationController
if params[:referer] if params[:referer]
redirect_to params[:referer] redirect_to params[:referer]
else else
redirect_to :action => "view" redirect_to :action => "show"
end end
end end
else else
@ -476,19 +476,19 @@ class UserController < ApplicationController
def set_status def set_status
@user.status = params[:status] @user.status = params[:status]
@user.save @user.save
redirect_to :action => "view", :display_name => params[:display_name] redirect_to user_path(:display_name => params[:display_name])
end end
## ##
# delete a user, marking them as deleted and removing personal data # delete a user, marking them as deleted and removing personal data
def delete def delete
@user.delete @user.delete
redirect_to :action => "view", :display_name => params[:display_name] redirect_to user_path(:display_name => params[:display_name])
end end
## ##
# display a list of users matching specified criteria # display a list of users matching specified criteria
def list def index
if request.post? if request.post?
ids = params[:user].keys.collect(&:to_i) ids = params[:user].keys.collect(&:to_i)
@ -552,7 +552,7 @@ class UserController < ApplicationController
if user.nil? && provider == "google" if user.nil? && provider == "google"
openid_url = auth_info[:extra][:id_info]["openid_id"] openid_url = auth_info[:extra][:id_info]["openid_id"]
user = User.find_by(:auth_provider => "openid", :auth_uid => openid_url) if openid_url 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 end
if user if user
@ -757,7 +757,7 @@ class UserController < ApplicationController
flash[:error] = t("user.filter.not_an_administrator") flash[:error] = t("user.filter.not_an_administrator")
if params[:display_name] if params[:display_name]
redirect_to :action => "view", :display_name => params[:display_name] redirect_to user_path(:display_name => params[:display_name])
else else
redirect_to :action => "login", :referer => request.fullpath redirect_to :action => "login", :referer => request.fullpath
end end
@ -826,6 +826,7 @@ class UserController < ApplicationController
def gravatar_enable(user) def gravatar_enable(user)
# code from example https://en.gravatar.com/site/implement/images/ruby/ # code from example https://en.gravatar.com/site/implement/images/ruby/
return false if user.image.present? return false if user.image.present?
hash = Digest::MD5.hexdigest(user.email.downcase) 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 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)) response = OSM.http_client.get(URI.parse(url))

View file

@ -26,7 +26,7 @@ module BannerHelper
# rotate all banner queue positions # rotate all banner queue positions
index = cval.to_i index = cval.to_i
cookies[ckey] = index - 1 if index > 0 cookies[ckey] = index - 1 if index.positive?
# pick banner with mininum queue position # pick banner with mininum queue position
next if index > min_index next if index > min_index

View file

@ -3,7 +3,7 @@ module ChangesetHelper
if changeset.user.status == "deleted" if changeset.user.status == "deleted"
t("user.no_such_user.deleted") t("user.no_such_user.deleted")
elsif changeset.user.data_public? 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 else
t("browse.anonymous") t("browse.anonymous")
end end
@ -32,15 +32,15 @@ module ChangesetHelper
end end
end end
def changeset_list_title(params, user) def changeset_index_title(params, user)
if params[:friends] && user if params[:friends] && user
t "changeset.list.title_friend" t "changeset.index.title_friend"
elsif params[:nearby] && user elsif params[:nearby] && user
t "changeset.list.title_nearby" t "changeset.index.title_nearby"
elsif params[:display_name] elsif params[:display_name]
t "changeset.list.title_user", :user => params[:display_name] t "changeset.index.title_user", :user => params[:display_name]
else else
t "changeset.list.title" t "changeset.index.title"
end end
end end
end end

View file

@ -2,11 +2,11 @@ module IssuesHelper
def reportable_url(reportable) def reportable_url(reportable)
case reportable case reportable
when DiaryEntry 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 when User
url_for(:controller => reportable.class.name.underscore, :action => :view, :display_name => reportable.display_name) user_url(reportable)
when DiaryComment 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 when Note
url_for(:controller => :browse, :action => :note, :id => reportable.id) url_for(:controller => :browse, :action => :note, :id => reportable.id)
end end
@ -29,7 +29,7 @@ module IssuesHelper
count = Issue.visible_to(current_user).open.limit(100).size count = Issue.visible_to(current_user).open.limit(100).size
if count > 99 if count > 99
content_tag(:span, "99+", :class => "count-number") content_tag(:span, "99+", :class => "count-number")
elsif count > 0 elsif count.positive?
content_tag(:span, count, :class => "count-number") content_tag(:span, count, :class => "count-number")
end end
end end

View file

@ -18,7 +18,7 @@ module NoteHelper
elsif author.status == "deleted" elsif author.status == "deleted"
t("user.no_such_user.deleted") t("user.no_such_user.deleted")
else 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 end
end end

View file

@ -29,6 +29,6 @@ module NotifierHelper
# Because we can't use stylesheets in HTML emails, we need to inline the # 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, # styles. Rather than copy-paste the same string of CSS into every message,
# we apply it once here, after the message has been composed. # 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
end end

View file

@ -6,24 +6,24 @@ module UserRolesHelper
end end
def role_icon(user, role) def role_icon(user, role)
if current_user && current_user.administrator? if current_user&.administrator?
if user.has_role?(role) if user.has_role?(role)
image = "roles/#{role}" image = "roles/#{role}"
alt = t("user.view.role.revoke.#{role}") alt = t("user.show.role.revoke.#{role}")
title = t("user.view.role.revoke.#{role}") title = t("user.show.role.revoke.#{role}")
url = revoke_role_path(:display_name => user.display_name, :role => 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) confirm = t("user_role.revoke.are_you_sure", :name => user.display_name, :role => role)
else else
image = "roles/blank_#{role}" image = "roles/blank_#{role}"
alt = t("user.view.role.grant.#{role}") alt = t("user.show.role.grant.#{role}")
title = t("user.view.role.grant.#{role}") title = t("user.show.role.grant.#{role}")
url = grant_role_path(:display_name => user.display_name, :role => 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) confirm = t("user_role.grant.are_you_sure", :name => user.display_name, :role => role)
end end
elsif user.has_role?(role) elsif user.has_role?(role)
image = "roles/#{role}" image = "roles/#{role}"
alt = t("user.view.role.#{role}") alt = t("user.show.role.#{role}")
title = t("user.view.role.#{role}") title = t("user.show.role.#{role}")
end end
if image if image

View file

@ -106,6 +106,7 @@ class Changeset < ActiveRecord::Base
pt.find("tag").each do |tag| 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 key") if tag["k"].nil?
raise OSM::APIBadXMLError.new("changeset", pt, "tag is missing value") if tag["v"].nil? raise OSM::APIBadXMLError.new("changeset", pt, "tag is missing value") if tag["v"].nil?
cs.add_tag_keyval(tag["k"], tag["v"]) cs.add_tag_keyval(tag["k"], tag["v"])
end end
@ -207,7 +208,7 @@ class Changeset < ActiveRecord::Base
user_display_name_cache = {} if user_display_name_cache.nil? 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 # use the cache if available
elsif user.data_public? elsif user.data_public?
user_display_name_cache[user_id] = user.display_name user_display_name_cache[user_id] = user.display_name

View file

@ -51,12 +51,13 @@ class ClientApplication < ActiveRecord::Base
def self.find_token(token_key) def self.find_token(token_key)
token = OauthToken.includes(:client_application).find_by(:token => token_key) token = OauthToken.includes(:client_application).find_by(:token => token_key)
token if token && token.authorized? token if token&.authorized?
end end
def self.verify_request(request, options = {}, &block) def self.verify_request(request, options = {}, &block)
signature = OAuth::Signature.build(request, options, &block) signature = OAuth::Signature.build(request, options, &block)
return false unless OauthNonce.remember(signature.request.nonce, signature.request.timestamp) return false unless OauthNonce.remember(signature.request.nonce, signature.request.timestamp)
value = signature.verify value = signature.verify
value value
rescue OAuth::Signature::UnknownSignatureMethod rescue OAuth::Signature::UnknownSignatureMethod

View 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, "lat missing") if pt["lat"].nil?
raise OSM::APIBadXMLError.new("node", pt, "lon missing") if pt["lon"].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.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") 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? raise OSM::APIBadXMLError.new("node", pt, "Changeset id is missing") if pt["changeset"].nil?
node.changeset_id = pt["changeset"].to_i node.changeset_id = pt["changeset"].to_i
raise OSM::APIBadUserInput, "The node is outside this world" unless node.in_world? raise OSM::APIBadUserInput, "The node is outside this world" unless node.in_world?
# version must be present unless creating # version must be present unless creating
raise OSM::APIBadXMLError.new("node", pt, "Version is required when updating") unless create || !pt["version"].nil? raise OSM::APIBadXMLError.new("node", pt, "Version is required when updating") unless create || !pt["version"].nil?
node.version = create ? 0 : pt["version"].to_i node.version = create ? 0 : pt["version"].to_i
unless create unless create
raise OSM::APIBadXMLError.new("node", pt, "ID is required when updating.") if pt["id"].nil? raise OSM::APIBadXMLError.new("node", pt, "ID is required when updating.") if pt["id"].nil?
node.id = pt["id"].to_i node.id = pt["id"].to_i
# .to_i will return 0 if there is no number that can be parsed. # .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 # 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| 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 key") if tag["k"].nil?
raise OSM::APIBadXMLError.new("node", pt, "tag is missing value") if tag["v"].nil? raise OSM::APIBadXMLError.new("node", pt, "tag is missing value") if tag["v"].nil?
node.add_tag_key_val(tag["k"], tag["v"]) node.add_tag_key_val(tag["k"], tag["v"])
end end

View file

@ -87,16 +87,8 @@ class Notifier < ActionMailer::Base
@from_user = comment.user.display_name @from_user = comment.user.display_name
@text = comment.body @text = comment.body
@title = comment.diary_entry.title @title = comment.diary_entry.title
@readurl = url_for(:controller => "diary_entry", @readurl = diary_entry_url(comment.diary_entry.user, comment.diary_entry, :anchor => "comment#{comment.id}")
:action => "view", @commenturl = diary_entry_url(comment.diary_entry.user, comment.diary_entry, :anchor => "newcomment")
: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")
@replyurl = new_message_url(comment.user, :message => { :title => "Re: #{comment.diary_entry.title}" }) @replyurl = new_message_url(comment.user, :message => { :title => "Re: #{comment.diary_entry.title}" })
@author = @from_user @author = @from_user
@ -112,8 +104,7 @@ class Notifier < ActionMailer::Base
def friend_notification(friend) def friend_notification(friend)
with_recipient_locale friend.befriendee do with_recipient_locale friend.befriendee do
@friend = friend @friend = friend
@viewurl = url_for(:controller => "user", :action => "view", @viewurl = user_url(@friend.befriender)
:display_name => @friend.befriender.display_name)
@friendurl = url_for(:controller => "user", :action => "make_friend", @friendurl = url_for(:controller => "user", :action => "make_friend",
:display_name => @friend.befriender.display_name) :display_name => @friend.befriender.display_name)
@author = @friend.befriender.display_name @author = @friend.befriender.display_name
@ -190,8 +181,8 @@ class Notifier < ActionMailer::Base
end end
def user_avatar_file_path(user) def user_avatar_file_path(user)
image = user && user.image image = user&.image
if image && image.file? if image&.file?
return image.path(:small) return image.path(:small)
else else
return Rails.root.join("app", "assets", "images", "users", "images", "small.png") return Rails.root.join("app", "assets", "images", "users", "images", "small.png")

View 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 # Remembers a nonce and it's associated timestamp. It returns false if it has already been used
def self.remember(nonce, timestamp) def self.remember(nonce, timestamp)
return false if Time.now.to_i - timestamp.to_i > 86400 return false if Time.now.to_i - timestamp.to_i > 86400
oauth_nonce = OauthNonce.create(:nonce => nonce, :timestamp => timestamp.to_i) oauth_nonce = OauthNonce.create(:nonce => nonce, :timestamp => timestamp.to_i)
return false if oauth_nonce.new_record? return false if oauth_nonce.new_record?
oauth_nonce oauth_nonce
end end
end end

View file

@ -70,12 +70,15 @@ class Relation < ActiveRecord::Base
relation = Relation.new relation = Relation.new
raise OSM::APIBadXMLError.new("relation", pt, "Version is required when updating") unless create || !pt["version"].nil? raise OSM::APIBadXMLError.new("relation", pt, "Version is required when updating") unless create || !pt["version"].nil?
relation.version = pt["version"] relation.version = pt["version"]
raise OSM::APIBadXMLError.new("relation", pt, "Changeset id is missing") if pt["changeset"].nil? raise OSM::APIBadXMLError.new("relation", pt, "Changeset id is missing") if pt["changeset"].nil?
relation.changeset_id = pt["changeset"] relation.changeset_id = pt["changeset"]
unless create unless create
raise OSM::APIBadXMLError.new("relation", pt, "ID is required when updating") if pt["id"].nil? raise OSM::APIBadXMLError.new("relation", pt, "ID is required when updating") if pt["id"].nil?
relation.id = pt["id"].to_i relation.id = pt["id"].to_i
# .to_i will return 0 if there is no number that can be parsed. # .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 # 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| 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 key") if tag["k"].nil?
raise OSM::APIBadXMLError.new("relation", pt, "tag is missing value") if tag["v"].nil? raise OSM::APIBadXMLError.new("relation", pt, "tag is missing value") if tag["v"].nil?
relation.add_tag_keyval(tag["k"], tag["v"]) relation.add_tag_keyval(tag["k"], tag["v"])
end end
@ -106,6 +110,7 @@ class Relation < ActiveRecord::Base
pt.find("member").each do |member| pt.find("member").each do |member|
# member_type = # member_type =
raise OSM::APIBadXMLError.new("relation", pt, "The #{member['type']} is not allowed only, #{TYPES.inspect} allowed") unless TYPES.include? 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_ref = member['ref']
# member_role # member_role
member["role"] ||= "" # Allow the upload to not include this, in which case we default to an empty string. 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! lock!
check_consistency(self, new_relation, user) 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) 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_id = new_relation.changeset_id
self.changeset = new_relation.changeset self.changeset = new_relation.changeset
self.tags = new_relation.tags self.tags = new_relation.tags
@ -219,6 +225,7 @@ class Relation < ActiveRecord::Base
def create_with_history(user) def create_with_history(user)
check_create_consistency(self, user) check_create_consistency(self, user)
raise OSM::APIPreconditionFailedError, "Cannot create relation: data or member data is invalid." unless preconditions_ok? raise OSM::APIPreconditionFailedError, "Cannot create relation: data or member data is invalid." unless preconditions_ok?
self.version = 0 self.version = 0
self.visible = true self.visible = true
save_with_history! save_with_history!
@ -253,7 +260,8 @@ class Relation < ActiveRecord::Base
element = model.lock("for share").find_by(:id => m[1]) element = model.lock("for share").find_by(:id => m[1])
# and check that it is OK to use. # 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 hash[m[1]] = true
end end
@ -267,9 +275,10 @@ class Relation < ActiveRecord::Base
def fix_placeholders!(id_map, placeholder_id = nil) def fix_placeholders!(id_map, placeholder_id = nil)
members.map! do |type, id, role| members.map! do |type, id, role|
old_id = id.to_i old_id = id.to_i
if old_id < 0 if old_id.negative?
new_id = id_map[type.downcase.to_sym][old_id] 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? 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] [type, new_id, role]
else else
[type, id, role] [type, id, role]
@ -372,7 +381,7 @@ class Relation < ActiveRecord::Base
# reasonable on the assumption that adding or removing members doesn't # reasonable on the assumption that adding or removing members doesn't
# materially change the rest of the relation. # materially change the rest of the relation.
any_relations = any_relations =
changed_members.collect { |_id, type| type == "relation" } changed_members.collect { |type, _id, _role| type == "Relation" }
.inject(false) { |acc, elem| acc || elem } .inject(false) { |acc, elem| acc || elem }
update_members = if tags_changed || any_relations update_members = if tags_changed || any_relations

View file

@ -40,6 +40,7 @@ class RequestToken < OauthToken
def authorize!(user) def authorize!(user)
return false if authorized? return false if authorized?
self.user = user self.user = user
self.authorized_at = Time.now self.authorized_at = Time.now
self.verifier = OAuth::Helper.generate_key(20)[0, 20] unless oauth10? self.verifier = OAuth::Helper.generate_key(20)[0, 20] unless oauth10?

View file

@ -214,10 +214,12 @@ class Trace < ActiveRecord::Base
def update_from_xml_node(pt, create = false) def update_from_xml_node(pt, create = false)
raise OSM::APIBadXMLError.new("trace", pt, "visibility missing") if pt["visibility"].nil? raise OSM::APIBadXMLError.new("trace", pt, "visibility missing") if pt["visibility"].nil?
self.visibility = pt["visibility"] self.visibility = pt["visibility"]
unless create unless create
raise OSM::APIBadXMLError.new("trace", pt, "ID is required when updating.") if pt["id"].nil? raise OSM::APIBadXMLError.new("trace", pt, "ID is required when updating.") if pt["id"].nil?
id = pt["id"].to_i id = pt["id"].to_i
# .to_i will return 0 if there is no number that can be parsed. # .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 # 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 description = pt.find("description").first
raise OSM::APIBadXMLError.new("trace", pt, "description missing") if description.nil? raise OSM::APIBadXMLError.new("trace", pt, "description missing") if description.nil?
self.description = description.content self.description = description.content
self.tags = pt.find("tag").collect do |tag| self.tags = pt.find("tag").collect do |tag|
@ -303,7 +306,7 @@ class Trace < ActiveRecord::Base
tp.save! tp.save!
end end
if gpx.actual_points > 0 if gpx.actual_points.positive?
max_lat = Tracepoint.where(:gpx_id => id).maximum(:latitude) max_lat = Tracepoint.where(:gpx_id => id).maximum(:latitude)
min_lat = Tracepoint.where(:gpx_id => id).minimum(:latitude) min_lat = Tracepoint.where(:gpx_id => id).minimum(:latitude)
max_lon = Tracepoint.where(:gpx_id => id).maximum(:longitude) max_lon = Tracepoint.where(:gpx_id => id).maximum(:longitude)

View file

@ -68,12 +68,15 @@ class Way < ActiveRecord::Base
way = Way.new way = Way.new
raise OSM::APIBadXMLError.new("way", pt, "Version is required when updating") unless create || !pt["version"].nil? raise OSM::APIBadXMLError.new("way", pt, "Version is required when updating") unless create || !pt["version"].nil?
way.version = pt["version"] way.version = pt["version"]
raise OSM::APIBadXMLError.new("way", pt, "Changeset id is missing") if pt["changeset"].nil? raise OSM::APIBadXMLError.new("way", pt, "Changeset id is missing") if pt["changeset"].nil?
way.changeset_id = pt["changeset"] way.changeset_id = pt["changeset"]
unless create unless create
raise OSM::APIBadXMLError.new("way", pt, "ID is required when updating") if pt["id"].nil? raise OSM::APIBadXMLError.new("way", pt, "ID is required when updating") if pt["id"].nil?
way.id = pt["id"].to_i way.id = pt["id"].to_i
# .to_i will return 0 if there is no number that can be parsed. # .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 # 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| 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 key") if tag["k"].nil?
raise OSM::APIBadXMLError.new("way", pt, "tag is missing value") if tag["v"].nil? raise OSM::APIBadXMLError.new("way", pt, "tag is missing value") if tag["v"].nil?
way.add_tag_keyval(tag["k"], tag["v"]) way.add_tag_keyval(tag["k"], tag["v"])
end 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] ordered_nodes[nd.sequence_id] = nd.node_id.to_s if visible_nodes[nd.node_id]
else else
# otherwise, manually go to the db to check things # 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
end end
@ -194,6 +198,7 @@ class Way < ActiveRecord::Base
def create_with_history(user) def create_with_history(user)
check_create_consistency(self, user) check_create_consistency(self, user)
raise OSM::APIPreconditionFailedError, "Cannot create way: data is invalid." unless preconditions_ok? raise OSM::APIPreconditionFailedError, "Cannot create way: data is invalid." unless preconditions_ok?
self.version = 0 self.version = 0
self.visible = true self.visible = true
save_with_history! save_with_history!
@ -249,9 +254,10 @@ class Way < ActiveRecord::Base
# to IDs +id_map+. # to IDs +id_map+.
def fix_placeholders!(id_map, placeholder_id = nil) def fix_placeholders!(id_map, placeholder_id = nil)
nds.map! do |node_id| nds.map! do |node_id|
if node_id < 0 if node_id.negative?
new_id = id_map[:node][node_id] 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? raise OSM::APIBadUserInput, "Placeholder node not found for reference #{node_id} in way #{id.nil? ? placeholder_id : id}" if new_id.nil?
new_id new_id
else else
node_id node_id

View file

@ -127,7 +127,7 @@
<% end %> <% end %>
<%= <%=
user = (@prev_by_user || @next_by_user).user.display_name 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 %> <% if @next_by_user %>
&middot; &middot;

View file

@ -14,7 +14,7 @@
<%= content_tag "li", :id => "changeset_#{changeset.id}", :data => {:changeset => changeset_data} do %> <%= content_tag "li", :id => "changeset_#{changeset.id}", :data => {:changeset => changeset_data} do %>
<h4> <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') %> <%= changeset.tags['comment'].to_s.presence || t('browse.no_comment') %>
</a> </a>
</h4> </h4>

View file

@ -5,9 +5,9 @@
<% end -%> <% end -%>
<% <%
set_title(changeset_list_title(params, current_user)) set_title(changeset_index_title(params, current_user))
if params[:display_name] 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 else
@heading = @title @heading = @title
end end

View file

@ -1,8 +1,8 @@
atom_feed(:language => I18n.locale, :schema_date => 2009, atom_feed(:language => I18n.locale, :schema_date => 2009,
:id => url_for(@params.merge(:only_path => false)), :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| "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.updated @edits.map { |e| [e.created_at, e.closed_at].max }.max
feed.icon image_url("favicon.ico") feed.icon image_url("favicon.ico")
@ -32,7 +32,7 @@ atom_feed(:language => I18n.locale, :schema_date => 2009,
if changeset.user.data_public? if changeset.user.data_public?
entry.author do |author| entry.author do |author|
author.name changeset.user.display_name 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
end end
@ -51,7 +51,7 @@ atom_feed(:language => I18n.locale, :schema_date => 2009,
table.tr do |tr| table.tr do |tr|
tr.th t("browse.changeset.belongs_to") tr.th t("browse.changeset.belongs_to")
tr.td do |td| 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 end
end end
@ -59,10 +59,10 @@ atom_feed(:language => I18n.locale, :schema_date => 2009,
table.tr do |tr| table.tr do |tr|
tr.th t("browse.tag_details.tags") tr.th t("browse.tag_details.tags")
tr.td do |td| tr.td do |td|
td.table :cellpadding => "0" do |table| td.table :cellpadding => "0" do |tag_table|
changeset.tags.sort.each do |tag| changeset.tags.sort.each do |tag|
table.tr do |tr| tag_table.tr do |tag_tr|
tr.td << "#{h(tag[0])} = #{linkify(h(tag[1]))}" tag_tr.td << "#{h(tag[0])} = #{linkify(h(tag[1]))}"
end end
end end
end end

View file

@ -4,10 +4,10 @@
<%= user_thumbnail diary_entry.user %> <%= user_thumbnail diary_entry.user %>
<% end %> <% 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'> <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> </small>
</div> </div>
@ -21,10 +21,10 @@
<% end %> <% end %>
<ul class='secondary-actions clearfix'> <ul class='secondary-actions clearfix'>
<% if params[:action] == 'list' %> <% if params[:action] == 'index' %>
<li><%= link_to t('.comment_link'), :action => 'view', :display_name => diary_entry.user.display_name, :id => diary_entry.id, :anchor => 'newcomment' %></li> <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('.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 %> <% end %>
<% if current_user && current_user == diary_entry.user %> <% if current_user && current_user == diary_entry.user %>

View file

@ -0,0 +1 @@
<%= render :partial => "diary_entry", :object => diary_index_entry %>

View file

@ -1 +0,0 @@
<%= render :partial => "diary_entry", :object => diary_list_entry %>

View file

@ -11,7 +11,7 @@
<% @comments.each do |comment| -%> <% @comments.each do |comment| -%>
<% cl = cycle('table0', 'table1') %> <% cl = cycle('table0', 'table1') %>
<tr class="<%= cl %>"> <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="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> <td width="50%" class="richtext"><%= comment.body.to_html %></td>
</tr> </tr>

View file

@ -35,7 +35,7 @@
<% if @user %> <% if @user %>
<%= render :partial => 'diary_entry', :collection => @entries %> <%= render :partial => 'diary_entry', :collection => @entries %>
<% else %> <% else %>
<%= render :partial => 'diary_list_entry', :collection => @entries %> <%= render :partial => 'diary_index_entry', :collection => @entries %>
<% end %> <% end %>
<div class="pagination"> <div class="pagination">

View file

@ -7,24 +7,24 @@ xml.rss("version" => "2.0",
xml.channel do xml.channel do
xml.title @title xml.title @title
xml.description @description 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.image do
xml.url image_url("mag_map-rss2.0.png") xml.url image_url("mag_map-rss2.0.png")
xml.title @title xml.title @title
xml.width "100" xml.width "100"
xml.height "100" xml.height "100"
xml.link url_for(:action => "list", :only_path => false) xml.link url_for(:action => "index", :only_path => false)
end end
@entries.each do |entry| @entries.each do |entry|
xml.item do xml.item do
xml.title entry.title xml.title entry.title
xml.link 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 url_for(:action => "view", :id => entry.id, :display_name => entry.user.display_name, :only_path => false) xml.guid diary_entry_url(entry.user, entry, :only_path => false)
xml.description entry.body.to_html xml.description entry.body.to_html
xml.dc :creator, entry.user.display_name xml.dc :creator, entry.user.display_name
xml.pubDate entry.created_at.to_s(:rfc822) 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 if entry.latitude && entry.longitude
xml.geo :lat, entry.latitude.to_s xml.geo :lat, entry.latitude.to_s

View file

@ -1,7 +1,7 @@
<% content_for :heading do %> <% content_for :heading do %>
<div id="userinformation" > <div id="userinformation" >
<%= user_image @entry.user %> <%= 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> <p><%= rss_link_to :action => :rss, :display_name => @entry.user.display_name %></p>
</div> </div>
<% end %> <% end %>

View file

@ -2,9 +2,9 @@
<% comments.each do |comment| %> <% comments.each do |comment| %>
<div class="comment"> <div class="comment">
<div style="float:left"> <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> </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 %> <%= comment.body %>
</div> </div>
<span class="deemphasize"> <span class="deemphasize">

View file

@ -1,9 +1,9 @@
<% reports.each do |report| %> <% reports.each do |report| %>
<div class="report"> <div class="report">
<div style="float:left"> <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> </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/> <br/>
<span class="deemphasize"> <span class="deemphasize">
<%= t(".updated_at", :datetime => l(report.updated_at.to_datetime, :format => :friendly)) %> <%= t(".updated_at", :datetime => l(report.updated_at.to_datetime, :format => :friendly)) %>

View file

@ -34,10 +34,10 @@
<td><%= t ".states.#{issue.status}" %></td> <td><%= t ".states.#{issue.status}" %></td>
<td><%= link_to t(".reports_count", :count => issue.reports_count), issue %></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 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> <td>
<% if issue.user_updated %> <% 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), :time => distance_of_time_in_words_to_now(issue.updated_at),
:title => l(issue.updated_at) %> :title => l(issue.updated_at) %>
<% else %> <% else %>

View file

@ -82,14 +82,14 @@
<li> <li>
<%= link_to inbox_messages_path do %> <%= link_to inbox_messages_path do %>
<span class='count-number'><%= number_with_delimiter(current_user.new_messages.size) %></span> <span class='count-number'><%= number_with_delimiter(current_user.new_messages.size) %></span>
<%= t('user.view.my messages') %> <%= t('user.show.my messages') %>
<% end %> <% end %>
</li> </li>
<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>
<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>
<li class="divider"></li> <li class="divider"></li>
<li> <li>

View file

@ -43,9 +43,8 @@
<h2><%= t 'layouts.intro_header' %></h2> <h2><%= t 'layouts.intro_header' %></h2>
<div class="close-wrap"><span class="icon close"></span></div> <div class="close-wrap"><span class="icon close"></span></div>
<p><%= t 'layouts.intro_text' %></p> <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"), :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"), :bytemark => link_to(t('layouts.partners_bytemark'), "https://www.bytemark.co.uk"),
:partners => link_to(t('layouts.partners_partners'), "https://hardware.openstreetmap.org/thanks/") %> :partners => link_to(t('layouts.partners_partners'), "https://hardware.openstreetmap.org/thanks/") %>
</p> </p>

View file

@ -2,7 +2,7 @@
<h1><%= t ".title" %></h1> <h1><%= t ".title" %></h1>
<% end %> <% 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 %> <%= form_tag authorize_url do %>
<%= hidden_field_tag "oauth_token", @token.token %> <%= hidden_field_tag "oauth_token", @token.token %>

View file

@ -32,9 +32,8 @@
<div class='section' id='partners'> <div class='section' id='partners'>
<h2><div class='icon partners'></div><%= t ".partners_title" %></h2> <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"), :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"), :bytemark => link_to(t('layouts.partners_bytemark'), "https://www.bytemark.co.uk"),
:partners => link_to(t('layouts.partners_partners'), "https://hardware.openstreetmap.org/thanks/") %> :partners => link_to(t('layouts.partners_partners'), "https://hardware.openstreetmap.org/thanks/") %>
</p> </p>

View file

@ -21,8 +21,8 @@ xml.rss("version" => "2.0",
xml.item do xml.item do
xml.title trace.name 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.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 => :view, :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.description do
xml.cdata! render(:partial => "description", :object => trace, :formats => [:html]) xml.cdata! render(:partial => "description", :object => trace, :formats => [:html])

View file

@ -14,16 +14,16 @@
<% if @user.home_lon and @user.home_lat and contact.home_lon and contact.home_lat %> <% if @user.home_lon and @user.home_lat and contact.home_lon and contact.home_lat %>
<% distance = @user.distance(contact) %> <% distance = @user.distance(contact) %>
<% if distance < 1 %> <% if distance < 1 %>
(<%= t 'user.view.m away', :count => (distance * 1000).round %>) (<%= t 'user.show.m away', :count => (distance * 1000).round %>)
<% else %> <% else %>
(<%= t 'user.view.km away', :count => distance.round %>) (<%= t 'user.show.km away', :count => distance.round %>)
<% end %> <% end %>
<% end %> <% end %>
</p> </p>
<p> <p>
<% changeset = contact.changesets.first %> <% changeset = contact.changesets.first %>
<% if changeset %> <% 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') %> <% comment = changeset.tags['comment'].to_s != '' ? changeset.tags['comment'] : t('browse.no_comment') %>
"<%= link_to(comment, "<%= link_to(comment,
{:controller => 'browse', :action => 'changeset', :id => changeset.id}, {:controller => 'browse', :action => 'changeset', :id => changeset.id},
@ -35,12 +35,12 @@
</p> </p>
<ul class='secondary-actions clearfix deemphasize'> <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> <li>
<% if current_user.is_friends_with?(contact) %> <% 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 %> <% 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 %> <% end %>
</li> </li>
</ul> </ul>

View file

@ -7,14 +7,14 @@
<td> <td>
<p> <p>
<% if user.creation_ip %> <% if user.creation_ip %>
<%= raw t 'user.list.summary', <%= raw t 'user.index.summary',
:name => link_to(h(user.display_name), :action => "view", :display_name => user.display_name), :name => link_to(h(user.display_name), user_path(user)),
:ip_address => link_to(user.creation_ip, :ip => user.creation_ip), :ip_address => link_to(user.creation_ip, :ip => user.creation_ip),
:date => l(user.creation_time, :format => :friendly) :date => l(user.creation_time, :format => :friendly)
%> %>
<% else %> <% else %>
<%= raw t 'user.list.summary_no_ip', <%= raw t 'user.index.summary_no_ip',
:name => link_to(h(user.display_name), :action => "view", :display_name => user.display_name), :name => link_to(h(user.display_name), user_path(user)),
:date => l(user.creation_time, :format => :friendly) :date => l(user.creation_time, :format => :friendly)
%> %>
<% end %> <% end %>

View file

@ -6,7 +6,7 @@
<h1><%= t '.my settings' %></h1> <h1><%= t '.my settings' %></h1>
<ul class='secondary-actions clearfix'> <ul class='secondary-actions clearfix'>
<li><%= link_to t('.return to profile'), user_path(current_user) %></li> <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> </ul>
<% end %> <% end %>

View file

@ -7,7 +7,7 @@
<!-- Displaying user's own profile page to themself --> <!-- Displaying user's own profile page to themself -->
<ul class='secondary-actions clearfix'> <ul class='secondary-actions clearfix'>
<li> <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> <span class='count-number'><%= number_with_delimiter(current_user.changesets.size) %></span>
</li> </li>
<li> <li>
@ -18,7 +18,7 @@
<span class='count-number'><%= number_with_delimiter(current_user.traces.size) %></span> <span class='count-number'><%= number_with_delimiter(current_user.traces.size) %></span>
</li> </li>
<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> <span class='count-number'><%= number_with_delimiter(current_user.diary_entries.size) %></span>
</li> </li>
<li> <li>
@ -49,7 +49,7 @@
<ul class='secondary-actions clearfix'> <ul class='secondary-actions clearfix'>
<li> <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> <span class='count-number'><%= number_with_delimiter(@user.changesets.size) %></span>
</li> </li>
<li> <li>
@ -66,7 +66,7 @@
<%= link_to t('.send message'), new_message_path(@user) %> <%= link_to t('.send message'), new_message_path(@user) %>
</li> </li>
<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> <span class='count-number'><%= number_with_delimiter(@user.diary_entries.size) %></span>
</li> </li>
<li> <li>

View file

@ -5,6 +5,7 @@ module I18n
super super
rescue InvalidPluralizationData => ex rescue InvalidPluralizationData => ex
raise ex unless ex.entry.key?(:other) raise ex unless ex.entry.key?(:other)
ex.entry[:other] ex.entry[:other]
end end
end end

View file

@ -52,6 +52,7 @@ module OpenStreetMap
def oauth1_verify(request, options = {}, &block) def oauth1_verify(request, options = {}, &block)
signature = OAuth::Signature.build(request, options, &block) signature = OAuth::Signature.build(request, options, &block)
return false unless OauthNonce.remember(signature.request.nonce, signature.request.timestamp) return false unless OauthNonce.remember(signature.request.nonce, signature.request.timestamp)
value = signature.verify value = signature.verify
if request.ssl? && !value if request.ssl? && !value
http_request = request.dup http_request = request.dup

View file

@ -222,7 +222,7 @@ af:
user: Gebruiker user: Gebruiker
comment: Opmerking comment: Opmerking
area: Gebied area: Gebied
list: index:
title: Wysigingsstel title: Wysigingsstel
empty: Geen wysigingstelle gevind nie. empty: Geen wysigingstelle gevind nie.
empty_area: Geen wysigingstelle in hierdie gebied. empty_area: Geen wysigingstelle in hierdie gebied.
@ -243,7 +243,7 @@ af:
new: new:
title: Nuwe dagboekinskrywing title: Nuwe dagboekinskrywing
publish_button: Publiseer publish_button: Publiseer
list: index:
title: Gebruikersdagboeke title: Gebruikersdagboeke
title_friends: Dagboeke van vriende title_friends: Dagboeke van vriende
title_nearby: Gebruikers in die omgewing se dagboeke title_nearby: Gebruikers in die omgewing se dagboeke
@ -266,7 +266,7 @@ af:
use_map_link: benut kaart use_map_link: benut kaart
save_button: Stoor save_button: Stoor
marker_text: Ligging van dagboekinskrywing marker_text: Ligging van dagboekinskrywing
view: show:
title: '%{user} se dagboek | %{title}' title: '%{user} se dagboek | %{title}'
user_title: '%{user} se dagboek' user_title: '%{user} se dagboek'
leave_a_comment: Lewer kommentaar leave_a_comment: Lewer kommentaar
@ -1041,7 +1041,7 @@ af:
get_directions_title: Kry rigtingaanwysings tussen twee punte get_directions_title: Kry rigtingaanwysings tussen twee punte
from: Vanaf from: Vanaf
to: Na to: Na
where_am_i: Waar is ek tans? where_am_i: Waar is dié?
submit_text: Soek submit_text: Soek
key: key:
table: table:
@ -1340,7 +1340,7 @@ af:
heading: Die gebruiker %{user} bestaan nie heading: Die gebruiker %{user} bestaan nie
body: Daar is geen gebruiker met die naam %{user} nie. Gaan u spelling na, of body: Daar is geen gebruiker met die naam %{user} nie. Gaan u spelling na, of
u het moontlik op 'n foutiewe skakel geklik. u het moontlik op 'n foutiewe skakel geklik.
view: show:
my diary: My Dagboek my diary: My Dagboek
new diary entry: nuwe dagboekinskrywing new diary entry: nuwe dagboekinskrywing
my edits: My Redigerings my edits: My Redigerings
@ -1451,7 +1451,7 @@ af:
remove_friend: remove_friend:
success: '%{name} is uit u vriendekring verwyder.' success: '%{name} is uit u vriendekring verwyder.'
not_a_friend: '%{name} is nie een van u vriende nie.' not_a_friend: '%{name} is nie een van u vriende nie.'
list: index:
title: Gebruikers title: Gebruikers
heading: Gebruikers heading: Gebruikers
summary: '%{name} geskep vanaf %{ip_address} op %{date}' summary: '%{name} geskep vanaf %{ip_address} op %{date}'

View file

@ -142,13 +142,13 @@ aln:
user: Përdorues user: Përdorues
comment: Koment comment: Koment
area: Zonë area: Zonë
list: index:
title: Changesets title: Changesets
title_user: Changesets nga %{user} title_user: Changesets nga %{user}
diary_entry: diary_entry:
new: new:
title: Hyrja e re Ditari title: Hyrja e re Ditari
list: index:
title: ditarë Përdorues , title: ditarë Përdorues ,
user_title: Ditari i %{user} user_title: Ditari i %{user}
in_language_title: Shënimet e Ditarit në %{language} in_language_title: Shënimet e Ditarit në %{language}
@ -169,7 +169,7 @@ aln:
use_map_link: Harta e përdorimit use_map_link: Harta e përdorimit
save_button: Ruje save_button: Ruje
marker_text: Vendndodhja Ditari hyrje marker_text: Vendndodhja Ditari hyrje
view: show:
title: ditari i %{user} | %{title} title: ditari i %{user} | %{title}
user_title: ditari i %{user} user_title: ditari i %{user}
leave_a_comment: Lene naj koment leave_a_comment: Lene naj koment
@ -1167,7 +1167,7 @@ aln:
heading: Ky shfrytzues %{user} nuk egziston heading: Ky shfrytzues %{user} nuk egziston
body: Na vjen keq, ska shfrytëzues me kët emën %{user}. Ju lutemi kontrolloni 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. shkrimin, ose nashta linku ku keni kliku asht gabim.
view: show:
my diary: ditari im my diary: ditari im
new diary entry: hyrje e re ne ditar new diary entry: hyrje e re ne ditar
my edits: ndryshimet e mia my edits: ndryshimet e mia
@ -1291,7 +1291,7 @@ aln:
not_a_friend: '%{name} nuk osht njoni pi shokve tu.' not_a_friend: '%{name} nuk osht njoni pi shokve tu.'
filter: filter:
not_an_administrator: Ju duhet të jeni administrator për me kry kët veprim. not_an_administrator: Ju duhet të jeni administrator për me kry kët veprim.
list: index:
title: Perdoruesit title: Perdoruesit
heading: Perdoruesit heading: Perdoruesit
showing: showing:

View file

@ -260,7 +260,7 @@ ar:
user: المستخدم user: المستخدم
comment: التعليق comment: التعليق
area: منطقة area: منطقة
list: index:
title: حزم التغييرات title: حزم التغييرات
title_user: حزم التغييرات بواسطة %{user} title_user: حزم التغييرات بواسطة %{user}
title_friend: مجموعات تغييرات بواسطة أصدقائي title_friend: مجموعات تغييرات بواسطة أصدقائي
@ -285,7 +285,7 @@ ar:
new: new:
title: مدخلة يومية جديدة title: مدخلة يومية جديدة
publish_button: نشر publish_button: نشر
list: index:
title: يوميات المستخدمين title: يوميات المستخدمين
title_friends: يوميات الأصدقاء title_friends: يوميات الأصدقاء
title_nearby: يوميات/مفكرات المستخدمين في المقبرة title_nearby: يوميات/مفكرات المستخدمين في المقبرة
@ -308,7 +308,7 @@ ar:
use_map_link: استخدم الخريطة use_map_link: استخدم الخريطة
save_button: احفظ save_button: احفظ
marker_text: موقع مدخلة اليومية marker_text: موقع مدخلة اليومية
view: show:
title: يوميات %{user} | %{title} title: يوميات %{user} | %{title}
user_title: يومية %{user} user_title: يومية %{user}
leave_a_comment: اترك تعليقًا leave_a_comment: اترك تعليقًا
@ -2081,7 +2081,7 @@ ar:
body: عذرًا، لا يوجد مستخدم بالاسم %{user}. يرجى تدقيق الاسم، أو ربما يكون الرابط body: عذرًا، لا يوجد مستخدم بالاسم %{user}. يرجى تدقيق الاسم، أو ربما يكون الرابط
الذي تم النقر عليه خاطئ. الذي تم النقر عليه خاطئ.
deleted: تم حذفه deleted: تم حذفه
view: show:
my diary: اليوميات my diary: اليوميات
new diary entry: مدخلة يومية جديدة new diary entry: مدخلة يومية جديدة
my edits: المُساهمات my edits: المُساهمات
@ -2252,7 +2252,7 @@ ar:
not_a_friend: '%{name} ليس من أحد أصدقائك.' not_a_friend: '%{name} ليس من أحد أصدقائك.'
filter: filter:
not_an_administrator: عليك أن تكون إداري لتنفيذ هذا الإجراء. not_an_administrator: عليك أن تكون إداري لتنفيذ هذا الإجراء.
list: index:
title: المستخدمون title: المستخدمون
heading: المستخدمون heading: المستخدمون
showing: showing:

View file

@ -117,13 +117,13 @@ arz:
user: المستخدم user: المستخدم
comment: التعليق comment: التعليق
area: منطقة area: منطقة
list: index:
title: حزم التغييرات title: حزم التغييرات
title_user: حزم التغييرات بواسطه %{user} title_user: حزم التغييرات بواسطه %{user}
diary_entry: diary_entry:
new: new:
title: مدخله يوميه جديدة title: مدخله يوميه جديدة
list: index:
title: يوميات المستخدمين title: يوميات المستخدمين
user_title: يوميه %{user} user_title: يوميه %{user}
in_language_title: مدخلات اليوميه باللغه %{language} in_language_title: مدخلات اليوميه باللغه %{language}
@ -144,7 +144,7 @@ arz:
use_map_link: استخدم الخريطة use_map_link: استخدم الخريطة
save_button: احفظ save_button: احفظ
marker_text: موقع مدخله اليومية marker_text: موقع مدخله اليومية
view: show:
title: يوميات المستخدمين | %{user} title: يوميات المستخدمين | %{user}
user_title: يوميه %{user} user_title: يوميه %{user}
leave_a_comment: اترك تعليقًا leave_a_comment: اترك تعليقًا
@ -972,7 +972,7 @@ arz:
heading: المستخدم %{user} غير موجود heading: المستخدم %{user} غير موجود
body: عذرًا، لا يوجد مستخدم بالاسم %{user}. يرجى تدقيق الاسم، أو ربما يكون الرابط body: عذرًا، لا يوجد مستخدم بالاسم %{user}. يرجى تدقيق الاسم، أو ربما يكون الرابط
الذى تم النقر عليه خاطئ. الذى تم النقر عليه خاطئ.
view: show:
my diary: يوميتي my diary: يوميتي
new diary entry: مدخله يوميه جديدة new diary entry: مدخله يوميه جديدة
my edits: مساهمات my edits: مساهمات

View file

@ -233,7 +233,7 @@ ast:
user: Usuariu user: Usuariu
comment: Comentariu comment: Comentariu
area: Área area: Área
list: index:
title: Conxuntos de cambeos title: Conxuntos de cambeos
title_user: Conxuntos de cambeos de %{user} title_user: Conxuntos de cambeos de %{user}
title_friend: Conxuntos de cambeos de los mios collacios title_friend: Conxuntos de cambeos de los mios collacios
@ -259,7 +259,7 @@ ast:
new: new:
title: Nueva entrada del diariu title: Nueva entrada del diariu
publish_button: Espublizar publish_button: Espublizar
list: index:
title: Diarios d'usuarios title: Diarios d'usuarios
title_friends: Diarios de collacios title_friends: Diarios de collacios
title_nearby: Diarios d'usuarios cercanos title_nearby: Diarios d'usuarios cercanos
@ -282,7 +282,7 @@ ast:
use_map_link: usar mapa use_map_link: usar mapa
save_button: Guardar save_button: Guardar
marker_text: Allugamientu de la entrada del diariu marker_text: Allugamientu de la entrada del diariu
view: show:
title: Diariu de %{user} | %{title} title: Diariu de %{user} | %{title}
user_title: Diariu de %{user} user_title: Diariu de %{user}
leave_a_comment: Dexar un comentariu 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 body: Lo siento, nun hai dengún usuariu col nome %{user}. Comprueba la escritura
o si calcasti nun enllaz enquivocáu. o si calcasti nun enllaz enquivocáu.
deleted: desaniciao deleted: desaniciao
view: show:
my diary: El mio diariu my diary: El mio diariu
new diary entry: nueva entrada del diariu new diary entry: nueva entrada del diariu
my edits: Les mios ediciones my edits: Les mios ediciones
@ -2248,7 +2248,7 @@ ast:
not_a_friend: '%{name} nun ye unu de los tos amigos.' not_a_friend: '%{name} nun ye unu de los tos amigos.'
filter: filter:
not_an_administrator: Has de ser alministrador pa facer esa aición. not_an_administrator: Has de ser alministrador pa facer esa aición.
list: index:
title: Usuarios title: Usuarios
heading: Usuarios heading: Usuarios
showing: showing:

View file

@ -185,7 +185,7 @@ az:
user: İstifadəçi user: İstifadəçi
comment: Şərh comment: Şərh
area: Ərazi area: Ərazi
list: index:
title: Dəyişikliklər dəsti title: Dəyişikliklər dəsti
title_user: '%{user} tərəfindən edilmiş 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 title_friend: Dostlarınız tərəfindən edilmiş dəyişikliklər dəsti
@ -199,7 +199,7 @@ az:
new: new:
title: Yeni Gündəlik Yazısı title: Yeni Gündəlik Yazısı
publish_button: Nəşr et publish_button: Nəşr et
list: index:
title: İstifadəçi gündəlikləri title: İstifadəçi gündəlikləri
title_friends: Dostların gündəlikləri title_friends: Dostların gündəlikləri
title_nearby: Yaxınlıqdakı İstifadəçilərin 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 use_map_link: xəritə üzərində göstər
save_button: Qeyd et save_button: Qeyd et
marker_text: Gundəlik yazısının yazıldığı yer marker_text: Gundəlik yazısının yazıldığı yer
view: show:
title: İstifadəçi %{user} gündəliyi | %{title} title: İstifadəçi %{user} gündəliyi | %{title}
user_title: İstifadəçi %{user} gündəliyi user_title: İstifadəçi %{user} gündəliyi
leave_a_comment: Şərh yaz leave_a_comment: Şərh yaz
@ -1073,7 +1073,7 @@ az:
legale_names: legale_names:
france: Fransa france: Fransa
italy: İtaliya italy: İtaliya
view: show:
my diary: mənim gündəliyim my diary: mənim gündəliyim
my edits: mənim redaktələrim my edits: mənim redaktələrim
my comments: mənim şərhlərim my comments: mənim şərhlərim
@ -1129,7 +1129,7 @@ az:
remove_friend: remove_friend:
heading: '%{user} dostluqdan silək?' heading: '%{user} dostluqdan silək?'
button: Dostluqdan sil button: Dostluqdan sil
list: index:
title: İstifadəçilər title: İstifadəçilər
heading: İstifadəçilər heading: İstifadəçilər
hide: Seçilmiş istifadəçiləri gizlət hide: Seçilmiş istifadəçiləri gizlət

View file

@ -245,7 +245,7 @@ ba:
user: Ҡулланыусы user: Ҡулланыусы
comment: Комментарий comment: Комментарий
area: Өлкә area: Өлкә
list: index:
title: Төҙәтеүҙәр пакеты title: Төҙәтеүҙәр пакеты
title_user: ' %{user} ҡулланыусыһының төҙәтеүҙәр пакеты' title_user: ' %{user} ҡулланыусыһының төҙәтеүҙәр пакеты'
title_friend: Дуҫтарығыҙҙың төҙәтеүҙәре пакеты title_friend: Дуҫтарығыҙҙың төҙәтеүҙәре пакеты
@ -271,7 +271,7 @@ ba:
new: new:
title: Яңы көндәлеккә инеү title: Яңы көндәлеккә инеү
publish_button: Баҫтырырға publish_button: Баҫтырырға
list: index:
title: Көндәлектәр title: Көндәлектәр
title_friends: Дуҫтарың көндәлектәре title_friends: Дуҫтарың көндәлектәре
title_nearby: Йәнәш ҡатнашыусылар көндәлеге title_nearby: Йәнәш ҡатнашыусылар көндәлеге
@ -291,7 +291,7 @@ ba:
use_map_link: картаны ҡуллан use_map_link: картаны ҡуллан
save_button: Һаҡларға save_button: Һаҡларға
marker_text: Көндәлек яҙыу урыны marker_text: Көндәлек яҙыу урыны
view: show:
title: '%{ҡулланыусы}ның көндәлеге|%{титул}' title: '%{ҡулланыусы}ның көндәлеге|%{титул}'
user_title: '%{ҡулланыусы}ның көндәлеге' user_title: '%{ҡулланыусы}ның көндәлеге'
leave_a_comment: Фекер ҡалдыр leave_a_comment: Фекер ҡалдыр

View file

@ -172,7 +172,7 @@ be-Tarask:
user: Карыстальнік user: Карыстальнік
comment: Камэнтар comment: Камэнтар
area: Абшар area: Абшар
list: index:
title: Наборы зьменаў title: Наборы зьменаў
title_user: Набор зьменаў %{user} title_user: Набор зьменаў %{user}
title_friend: Наборы зьменаў маіх сяброў title_friend: Наборы зьменаў маіх сяброў
@ -183,7 +183,7 @@ be-Tarask:
diary_entry: diary_entry:
new: new:
title: Новы запіс у дзёньніку title: Новы запіс у дзёньніку
list: index:
title: Дзёньнікі карыстальнікаў title: Дзёньнікі карыстальнікаў
title_friends: Дзёньнікі сяброў title_friends: Дзёньнікі сяброў
title_nearby: Дзёньнікі суседніх удзельнікаў title_nearby: Дзёньнікі суседніх удзельнікаў
@ -206,7 +206,7 @@ be-Tarask:
use_map_link: на мапе use_map_link: на мапе
save_button: Захаваць save_button: Захаваць
marker_text: Месцазнаходжаньне запісу дзёньніка marker_text: Месцазнаходжаньне запісу дзёньніка
view: show:
title: Дзёньнік %{user} | %{title} title: Дзёньнік %{user} | %{title}
user_title: Дзёньнік %{user} user_title: Дзёньнік %{user}
leave_a_comment: Пакінуць камэнтар leave_a_comment: Пакінуць камэнтар
@ -1312,7 +1312,7 @@ be-Tarask:
heading: Удзельнік %{user} не існуе heading: Удзельнік %{user} не існуе
body: Прабачце, няма ўдзельніка з іменем %{user}. Калі ласка, праверце дакладнасьць body: Прабачце, няма ўдзельніка з іменем %{user}. Калі ласка, праверце дакладнасьць
напісаньня, ці, магчыма, спасылка па якой Вы перайшлі, няслушная. напісаньня, ці, магчыма, спасылка па якой Вы перайшлі, няслушная.
view: show:
my diary: Мой дзёньнік my diary: Мой дзёньнік
new diary entry: новы запіс у дзёньніку new diary entry: новы запіс у дзёньніку
my edits: Мае рэдагаваньні my edits: Мае рэдагаваньні
@ -1471,7 +1471,7 @@ be-Tarask:
filter: filter:
not_an_administrator: Вам неабходна быць адміністратарам, каб выканаць гэтае not_an_administrator: Вам неабходна быць адміністратарам, каб выканаць гэтае
дзеяньне. дзеяньне.
list: index:
title: Удзельнікі title: Удзельнікі
heading: Карыстальнікі heading: Карыстальнікі
showing: showing:

View file

@ -238,7 +238,7 @@ be:
user: Карыстальнік user: Карыстальнік
comment: Каментар comment: Каментар
area: Мясцовасць area: Мясцовасць
list: index:
title: Наборы зменаў title: Наборы зменаў
title_user: Набор зменаў ад %{user} title_user: Набор зменаў ад %{user}
title_friend: Наборы зменаў ад вашых сяброў title_friend: Наборы зменаў ад вашых сяброў
@ -263,7 +263,7 @@ be:
new: new:
title: Новы запіс дзённіку title: Новы запіс дзённіку
publish_button: Апублікаваць publish_button: Апублікаваць
list: index:
title: Дзённікі карыстальнікаў title: Дзённікі карыстальнікаў
title_friends: Дзённікі сяброў title_friends: Дзённікі сяброў
title_nearby: Дзённікі карыстальнікаў паблізу title_nearby: Дзённікі карыстальнікаў паблізу
@ -286,7 +286,7 @@ be:
use_map_link: карыстацца картай use_map_link: карыстацца картай
save_button: Запісаць save_button: Запісаць
marker_text: Месцазнаходжанне запісу дзённіку marker_text: Месцазнаходжанне запісу дзённіку
view: show:
title: Дзённік карыстальніка | %{user} title: Дзённік карыстальніка | %{user}
user_title: Дзённік %{user} user_title: Дзённік %{user}
leave_a_comment: Пакінуць каментар leave_a_comment: Пакінуць каментар
@ -1879,7 +1879,7 @@ be:
body: Прабачце, карыстальнік %{user} не знойдзены. Please check your spelling, body: Прабачце, карыстальнік %{user} не знойдзены. Please check your spelling,
Калі ласка, праверце свой правапіс, ці, магчыма, вам далі няправільную спасылку. Калі ласка, праверце свой правапіс, ці, магчыма, вам далі няправільную спасылку.
deleted: выдалены deleted: выдалены
view: show:
my diary: Мой дзённік my diary: Мой дзённік
new diary entry: новы запіс у дзённіку new diary entry: новы запіс у дзённіку
my edits: Мае змены my edits: Мае змены
@ -2055,7 +2055,7 @@ be:
filter: filter:
not_an_administrator: Вам неабходна мець правы адміністратара для выканання not_an_administrator: Вам неабходна мець правы адміністратара для выканання
гэтага дзеяння. гэтага дзеяння.
list: index:
title: Удзельнікі title: Удзельнікі
heading: Удзельнікі heading: Удзельнікі
showing: showing:

View file

@ -190,7 +190,7 @@ bg:
user: Потребител user: Потребител
comment: Коментар comment: Коментар
area: Област area: Област
list: index:
title: Списък с промени title: Списък с промени
title_user: Списък с промени на %{user} title_user: Списък с промени на %{user}
title_friend: Списъци с промени на Ваши приятели title_friend: Списъци с промени на Ваши приятели
@ -209,7 +209,7 @@ bg:
new: new:
title: Нов запис в дневника title: Нов запис в дневника
publish_button: Публикуване publish_button: Публикуване
list: index:
title: Дневници на потребителите title: Дневници на потребителите
title_friends: Дневници на приятели title_friends: Дневници на приятели
title_nearby: Дневници на потребители наблизо title_nearby: Дневници на потребители наблизо
@ -227,7 +227,7 @@ bg:
longitude: 'Географска дължина:' longitude: 'Географска дължина:'
use_map_link: използвай карта use_map_link: използвай карта
save_button: Съхраняване save_button: Съхраняване
view: show:
title: Дневник на потребител %{user} | %{title} title: Дневник на потребител %{user} | %{title}
user_title: дневник на %{user} user_title: дневник на %{user}
leave_a_comment: Оставете коментар leave_a_comment: Оставете коментар
@ -1133,7 +1133,7 @@ bg:
title: Няма такъв потребител title: Няма такъв потребител
heading: Потребителят %{user} не съществува heading: Потребителят %{user} не съществува
deleted: изтрито deleted: изтрито
view: show:
my edits: Mоите редакции my edits: Mоите редакции
my traces: Моите следи my traces: Моите следи
my notes: Моите бележки my notes: Моите бележки
@ -1207,7 +1207,7 @@ bg:
heading: Потвърдете смяната на електронната поща heading: Потвърдете смяната на електронната поща
remove_friend: remove_friend:
success: '%{name} беше премахнат от списъка с приятелите.' success: '%{name} беше премахнат от списъка с приятелите.'
list: index:
title: Потребители title: Потребители
heading: Потребители heading: Потребители
user_role: user_role:

View file

@ -242,7 +242,7 @@ bn:
user: ব্যবহারকারী user: ব্যবহারকারী
comment: মন্তব্য comment: মন্তব্য
area: এলাকা area: এলাকা
list: index:
title: পরিবর্তনসমূহ title: পরিবর্তনসমূহ
title_user: '%{user} দ্বারা পরিবর্তন ধার্য' title_user: '%{user} দ্বারা পরিবর্তন ধার্য'
title_friend: আমার বন্ধুদের দ্বারা পরিবর্তনসেট title_friend: আমার বন্ধুদের দ্বারা পরিবর্তনসেট
@ -268,7 +268,7 @@ bn:
new: new:
title: নতুন দিনলিপির ভুক্তি title: নতুন দিনলিপির ভুক্তি
publish_button: প্রকাশ করুন publish_button: প্রকাশ করুন
list: index:
title: ব্যবহারকারীর দিনলিপি title: ব্যবহারকারীর দিনলিপি
title_friends: বন্ধুর দিনলিপি title_friends: বন্ধুর দিনলিপি
title_nearby: নিকটবর্তী ব্যবহারকারীর দিনলিপি title_nearby: নিকটবর্তী ব্যবহারকারীর দিনলিপি
@ -291,7 +291,7 @@ bn:
use_map_link: মানচিত্র ব্যবহার করুন use_map_link: মানচিত্র ব্যবহার করুন
save_button: সংরক্ষণ save_button: সংরক্ষণ
marker_text: দিনলিপির ভুক্তির অবস্থান marker_text: দিনলিপির ভুক্তির অবস্থান
view: show:
title: '%{user}-এর দিনলিপি | %{title}' title: '%{user}-এর দিনলিপি | %{title}'
user_title: '%{user}-এর দিনলিপি' user_title: '%{user}-এর দিনলিপি'
leave_a_comment: মন্তব্য করুন leave_a_comment: মন্তব্য করুন
@ -1325,7 +1325,7 @@ bn:
france: ফ্রান্স france: ফ্রান্স
italy: ইতালি italy: ইতালি
rest_of_world: অন্যান্য দেশসমূহ rest_of_world: অন্যান্য দেশসমূহ
view: show:
my edits: আমার সম্পাদনা my edits: আমার সম্পাদনা
my profile: আমার প্রোফাইল my profile: আমার প্রোফাইল
my settings: আমার সেটিংস my settings: আমার সেটিংস
@ -1384,7 +1384,7 @@ bn:
go_public: go_public:
flash success: আপনার সকল সম্পাদনা এখন উন্মুক্ত, এবং এখন আপনার সম্পাদনের অনুমতি flash success: আপনার সকল সম্পাদনা এখন উন্মুক্ত, এবং এখন আপনার সম্পাদনের অনুমতি
রয়েছে। রয়েছে।
list: index:
title: ব্যবহারকারীগণ title: ব্যবহারকারীগণ
heading: ব্যবহারকারীগণ heading: ব্যবহারকারীগণ
auth_association: auth_association:

View file

@ -239,7 +239,7 @@ br:
user: Implijer user: Implijer
comment: Addispleg comment: Addispleg
area: Takad area: Takad
list: index:
title: Hollad kemmoù title: Hollad kemmoù
title_user: Strolladoù kemmoù gant %{user} title_user: Strolladoù kemmoù gant %{user}
title_friend: Hollad ar c'hemmoù degaset gant ho mignoned title_friend: Hollad ar c'hemmoù degaset gant ho mignoned
@ -265,7 +265,7 @@ br:
new: new:
title: Enmoned nevez en deizlevr title: Enmoned nevez en deizlevr
publish_button: Embann publish_button: Embann
list: index:
title: Deizlevrioù an implijerien title: Deizlevrioù an implijerien
title_friends: Marilhoù ar vignoned title_friends: Marilhoù ar vignoned
title_nearby: Marilhoù mignoned a-dost title_nearby: Marilhoù mignoned a-dost
@ -288,7 +288,7 @@ br:
use_map_link: implijout ar gartenn use_map_link: implijout ar gartenn
save_button: Enrollañ save_button: Enrollañ
marker_text: Lec'hiadur an enmoned en deizlevr marker_text: Lec'hiadur an enmoned en deizlevr
view: show:
title: Deizlevr %{user} | %{title} title: Deizlevr %{user} | %{title}
user_title: Deizlevr %{user} user_title: Deizlevr %{user}
leave_a_comment: Lezel un addispleg 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 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. mat, pe marteze hoc'h eus kliket war ul liamm fall.
deleted: dilamet deleted: dilamet
view: show:
my diary: ma deizlevr my diary: ma deizlevr
new diary entry: enmoned nevez en deizlevr new diary entry: enmoned nevez en deizlevr
my edits: ma aozadennoù my edits: ma aozadennoù
@ -2148,7 +2148,7 @@ br:
not_a_friend: '%{name} n''eo ket unan eus ho mignoned.' not_a_friend: '%{name} n''eo ket unan eus ho mignoned.'
filter: filter:
not_an_administrator: Ret eo deoc'h bezañ merour evit kas an ober-mañ da benn. not_an_administrator: Ret eo deoc'h bezañ merour evit kas an ober-mañ da benn.
list: index:
title: Implijerien title: Implijerien
heading: Implijerien heading: Implijerien
showing: showing:

View file

@ -203,7 +203,7 @@ bs:
user: Korisnik user: Korisnik
comment: Komentar comment: Komentar
area: Područje area: Područje
list: index:
title: Setovi promjena title: Setovi promjena
title_user: Setovi promjena od %{user} title_user: Setovi promjena od %{user}
title_friend: Setovi promjena vaših prijatelja title_friend: Setovi promjena vaših prijatelja
@ -218,7 +218,7 @@ bs:
new: new:
title: Novi unos u dnevnik title: Novi unos u dnevnik
publish_button: Objavi publish_button: Objavi
list: index:
title: Dnevnici korisnika title: Dnevnici korisnika
title_friends: Dnevnici prijatelja title_friends: Dnevnici prijatelja
title_nearby: Dnevnici obližnjih korisnika title_nearby: Dnevnici obližnjih korisnika
@ -241,7 +241,7 @@ bs:
use_map_link: korisititi kartu use_map_link: korisititi kartu
save_button: Spremiti save_button: Spremiti
marker_text: Lokacija unosa u dnevnik marker_text: Lokacija unosa u dnevnik
view: show:
title: Dnevnik korisnika %{user} | %{title} title: Dnevnik korisnika %{user} | %{title}
user_title: Dnenvnik korisnika %{user} user_title: Dnenvnik korisnika %{user}
leave_a_comment: Ostaviti komentar leave_a_comment: Ostaviti komentar
@ -1542,7 +1542,7 @@ bs:
heading: Korisnik %{user} ne postoji heading: Korisnik %{user} ne postoji
body: Žao nam je, ne postoji korisnik s imenom %{user}. Molimo da provjerite 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. Vaš unos ili da li je poveznica na koju ste kliknuli ispravna.
view: show:
my diary: Moj dnevnik my diary: Moj dnevnik
new diary entry: Novi unos u dnevnik new diary entry: Novi unos u dnevnik
my edits: Moje promjene my edits: Moje promjene
@ -1703,7 +1703,7 @@ bs:
not_a_friend: '%{name} nije jedan od Vaših prijatelja.' not_a_friend: '%{name} nije jedan od Vaših prijatelja.'
filter: filter:
not_an_administrator: Trebate biti moderator da bi izvršili tu radnju. not_an_administrator: Trebate biti moderator da bi izvršili tu radnju.
list: index:
title: Korisnici title: Korisnici
heading: Korisnici heading: Korisnici
showing: showing:

View file

@ -262,7 +262,7 @@ ca:
user: Usuari user: Usuari
comment: Comentari comment: Comentari
area: Àrea area: Àrea
list: index:
title: Conjunt de canvis title: Conjunt de canvis
title_user: Conjunt de canvis de %{user} title_user: Conjunt de canvis de %{user}
title_friend: Conjunts de canvis dels meus amics title_friend: Conjunts de canvis dels meus amics
@ -288,7 +288,7 @@ ca:
new: new:
title: Entrada de diari nova title: Entrada de diari nova
publish_button: Publica publish_button: Publica
list: index:
title: Diaris d'usuari/a title: Diaris d'usuari/a
title_friends: Diaris dels amics title_friends: Diaris dels amics
title_nearby: Diaris d'amics propers title_nearby: Diaris d'amics propers
@ -311,7 +311,7 @@ ca:
use_map_link: usa el mapa use_map_link: usa el mapa
save_button: Desa save_button: Desa
marker_text: Localització de l'Entrada del Diari marker_text: Localització de l'Entrada del Diari
view: show:
title: Diari de %{user} | %{title} title: Diari de %{user} | %{title}
user_title: Diari de %{user} user_title: Diari de %{user}
leave_a_comment: Deixa un comentari leave_a_comment: Deixa un comentari
@ -935,6 +935,10 @@ ca:
reports: reports:
new: new:
categories: categories:
diary_entry:
other_label: Un altre
diary_comment:
other_label: Un altre
note: note:
spam_label: Aquesta nota és brossa spam_label: Aquesta nota és brossa
personal_label: Aquesta nota conté dades personals 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ó, identifiable: Identifiable (mostrat en llista de traça i com a punts d'identificació,
ordenades amb timestamps) ordenades amb timestamps)
new: new:
upload_trace: Carrega una traça GPS
upload_gpx: 'Carregui l''arxiu GPX:' upload_gpx: 'Carregui l''arxiu GPX:'
description: 'Descripció:' description: 'Descripció:'
tags: 'Etiquetes:' tags: 'Etiquetes:'
@ -1974,7 +1979,7 @@ ca:
body: No hi ha cap usuari amb el nom %{user}. Comproveu l'ortografia, o potser body: No hi ha cap usuari amb el nom %{user}. Comproveu l'ortografia, o potser
l'enllaç on heu fet clic és incorrecte. l'enllaç on heu fet clic és incorrecte.
deleted: esborrat deleted: esborrat
view: show:
my diary: El meu diari my diary: El meu diari
new diary entry: Nova entrada del diari new diary entry: Nova entrada del diari
my edits: Les meves edicions my edits: Les meves edicions
@ -2155,7 +2160,7 @@ ca:
not_a_friend: '%{name} no és un dels seus amics.' not_a_friend: '%{name} no és un dels seus amics.'
filter: filter:
not_an_administrator: Cal que sigueu administrador per dur a terme aquesta acció. not_an_administrator: Cal que sigueu administrador per dur a terme aquesta acció.
list: index:
title: Usuaris title: Usuaris
heading: Usuaris heading: Usuaris
showing: showing:

View file

@ -235,7 +235,7 @@ ce:
user: Декъашхо user: Декъашхо
comment: Коммент comment: Коммент
area: Область area: Область
list: index:
title: Нисдарш title: Нисдарш
title_user: Декъашхочун %{user} нисдарш title_user: Декъашхочун %{user} нисдарш
title_friend: Хьан доттагӀийн нисдарш title_friend: Хьан доттагӀийн нисдарш
@ -260,7 +260,7 @@ ce:
new: new:
title: Де керла дӀаяздар title: Де керла дӀаяздар
publish_button: Арахеца publish_button: Арахеца
list: index:
title: Дневникаш title: Дневникаш
title_friends: ДоттагӀийн дневникаш title_friends: ДоттагӀийн дневникаш
title_nearby: Уллера декъашхойн дневникаш title_nearby: Уллера декъашхойн дневникаш
@ -283,7 +283,7 @@ ce:
use_map_link: Гайта картан тӀехь use_map_link: Гайта картан тӀехь
save_button: Ӏалашдан save_button: Ӏалашдан
marker_text: Билгало язйаран меттиг marker_text: Билгало язйаран меттиг
view: show:
title: Декъашхочун дневник %{user} | %{title} title: Декъашхочун дневник %{user} | %{title}
user_title: Декъашхочун дневник %{user} user_title: Декъашхочун дневник %{user}
leave_a_comment: Йитта коммент leave_a_comment: Йитта коммент
@ -660,7 +660,7 @@ ce:
user: user:
new: new:
continue: Кхин дӀа continue: Кхин дӀа
view: show:
edits: Нисдарш edits: Нисдарш
ago: (%{time_in_words_ago} юха) ago: (%{time_in_words_ago} юха)
user location: Декъашхо волу/йолу меттиг user location: Декъашхо волу/йолу меттиг

View file

@ -270,7 +270,7 @@ cs:
user: Uživatel user: Uživatel
comment: Komentář comment: Komentář
area: Oblast area: Oblast
list: index:
title: Sady změn title: Sady změn
title_user: Sady změn uživatele %{user} title_user: Sady změn uživatele %{user}
title_friend: Sady změn podle mých přátel title_friend: Sady změn podle mých přátel
@ -295,7 +295,7 @@ cs:
new: new:
title: Nový záznam do deníku title: Nový záznam do deníku
publish_button: Publikovat publish_button: Publikovat
list: index:
title: Deníky uživatelů title: Deníky uživatelů
title_friends: Deníky přátel title_friends: Deníky přátel
title_nearby: Deníky uživatelů poblíž title_nearby: Deníky uživatelů poblíž
@ -318,7 +318,7 @@ cs:
use_map_link: použít mapu use_map_link: použít mapu
save_button: Uložit save_button: Uložit
marker_text: Místo deníkového záznamu marker_text: Místo deníkového záznamu
view: show:
title: Deník uživatele %{user} | %{title} title: Deník uživatele %{user} | %{title}
user_title: Deník uživatele %{user} user_title: Deník uživatele %{user}
leave_a_comment: Zanechat komentář leave_a_comment: Zanechat komentář
@ -1744,6 +1744,8 @@ cs:
upload_trace: Nahrát GPS stopu upload_trace: Nahrát GPS stopu
trace_uploaded: Váš GPX soubor byl uložen a čeká na zařazení do databáze. Obvykle 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. 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: traces_waiting:
few: Na zpracování čekají %{count} vaše stopy. Zvažte, zda by nebylo před 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 nahráním dalších lepší počkat, dokud nebudou zpracovány, abyste neblokovali
@ -1772,6 +1774,8 @@ cs:
visibility: 'Viditelnost:' visibility: 'Viditelnost:'
visibility_help: co tohle znamená? visibility_help: co tohle znamená?
visibility_help_url: http://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces?uselang=cs visibility_help_url: http://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces?uselang=cs
update:
updated: Stopa nahrána
trace_optionals: trace_optionals:
tags: Štítky tags: Štítky
show: show:
@ -2082,7 +2086,7 @@ cs:
body: Je mi líto, ale uživatel %{user} neexistuje. Zkontrolujte překlepy nebo body: Je mi líto, ale uživatel %{user} neexistuje. Zkontrolujte překlepy nebo
jste možná klikli na chybný odkaz. jste možná klikli na chybný odkaz.
deleted: smazán deleted: smazán
view: show:
my diary: Můj deníček my diary: Můj deníček
new diary entry: nový záznam do deníčku new diary entry: nový záznam do deníčku
my edits: Moje úpravy my edits: Moje úpravy
@ -2261,7 +2265,7 @@ cs:
not_a_friend: '%{name} není mezi vašimi přáteli.' not_a_friend: '%{name} není mezi vašimi přáteli.'
filter: filter:
not_an_administrator: K provedení této akce musíte být správce. not_an_administrator: K provedení této akce musíte být správce.
list: index:
title: Uživatelé title: Uživatelé
heading: Uživatelé heading: Uživatelé
showing: showing:

View file

@ -229,7 +229,7 @@ cy:
user: Defnyddiwr user: Defnyddiwr
comment: Sylw comment: Sylw
area: Maes area: Maes
list: index:
title: Setiau-newid title: Setiau-newid
title_user: Set-newid gan %{user} title_user: Set-newid gan %{user}
title_friend: Setiau-newid eich cyfeillion title_friend: Setiau-newid eich cyfeillion
@ -255,7 +255,7 @@ cy:
new: new:
title: Cofnod Dyddiadur Newydd title: Cofnod Dyddiadur Newydd
publish_button: Cyhoeddi publish_button: Cyhoeddi
list: index:
title: Dyddiaduron defnyddwyr title: Dyddiaduron defnyddwyr
title_friends: Dyddiaduron ffrindiau title_friends: Dyddiaduron ffrindiau
title_nearby: Dyddiaduron defnyddwyr gerllaw title_nearby: Dyddiaduron defnyddwyr gerllaw
@ -278,7 +278,7 @@ cy:
use_map_link: defnyddiwch y map use_map_link: defnyddiwch y map
save_button: Arbed save_button: Arbed
marker_text: Lleoliad cofnod y dyddiadur marker_text: Lleoliad cofnod y dyddiadur
view: show:
title: yddiadur %{user} | %{title} title: yddiadur %{user} | %{title}
user_title: dyddiadur %{user} user_title: dyddiadur %{user}
leave_a_comment: Gadael sylw leave_a_comment: Gadael sylw
@ -1391,7 +1391,7 @@ cy:
no_such_user: no_such_user:
title: Dim defnyddiwr o'r fath title: Dim defnyddiwr o'r fath
heading: Nid yw'r defnyddiwr %{user} yn bodoli. heading: Nid yw'r defnyddiwr %{user} yn bodoli.
view: show:
my diary: Fy Nyddiadur my diary: Fy Nyddiadur
new diary entry: cofnod dyddiadur newydd new diary entry: cofnod dyddiadur newydd
my edits: Fy Ngolygiadau my edits: Fy Ngolygiadau
@ -1510,7 +1510,7 @@ cy:
button: Peidio bod yn gyfaill button: Peidio bod yn gyfaill
success: Tynnwyd %{name} o'ch cyfeillion. success: Tynnwyd %{name} o'ch cyfeillion.
not_a_friend: Nid yw %{name} yn un o'ch cyfeillion. not_a_friend: Nid yw %{name} yn un o'ch cyfeillion.
list: index:
title: Defnyddwyr title: Defnyddwyr
heading: Defnyddwyr heading: Defnyddwyr
user_role: user_role:

View file

@ -261,7 +261,7 @@ da:
user: Bruger user: Bruger
comment: Kommentar comment: Kommentar
area: Område area: Område
list: index:
title: Ændringssæt title: Ændringssæt
title_user: Ændringssæt af %{user} title_user: Ændringssæt af %{user}
title_friend: Ændringssæt af mine venner title_friend: Ændringssæt af mine venner
@ -287,7 +287,7 @@ da:
new: new:
title: Nyt blogindlæg title: Nyt blogindlæg
publish_button: Offentliggør publish_button: Offentliggør
list: index:
title: Brugerblogs title: Brugerblogs
title_friends: Venners blogs title_friends: Venners blogs
title_nearby: Blogs fra brugere i nærheden title_nearby: Blogs fra brugere i nærheden
@ -310,7 +310,7 @@ da:
use_map_link: brug kort use_map_link: brug kort
save_button: Gem save_button: Gem
marker_text: Placering for blogindlæg marker_text: Placering for blogindlæg
view: show:
title: '%{user}''s blog | %{title}' title: '%{user}''s blog | %{title}'
user_title: '%{user}''s blog' user_title: '%{user}''s blog'
leave_a_comment: Tilføj en kommentar 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, body: Der findes desværre ingen bruger ved navn %{user}. Tjek venligst stavningen,
ellers kan linket du trykkede på være forkert. ellers kan linket du trykkede på være forkert.
deleted: slettet deleted: slettet
view: show:
my diary: Min blog my diary: Min blog
new diary entry: nyt blogindlæg new diary entry: nyt blogindlæg
my edits: Mine redigeringer my edits: Mine redigeringer
@ -2212,7 +2212,7 @@ da:
not_a_friend: '%{name} er ikke en af dine venner.' not_a_friend: '%{name} er ikke en af dine venner.'
filter: filter:
not_an_administrator: Du skal være administrator for at gøre dette. not_an_administrator: Du skal være administrator for at gøre dette.
list: index:
title: Brugere title: Brugere
heading: Brugere heading: Brugere
showing: showing:

View file

@ -285,7 +285,7 @@ de:
user: Benutzer user: Benutzer
comment: Kommentar comment: Kommentar
area: Bereich area: Bereich
list: index:
title: Änderungssätze title: Änderungssätze
title_user: Änderungssätze von %{user} title_user: Änderungssätze von %{user}
title_friend: Änderungssätze meiner Freunde title_friend: Änderungssätze meiner Freunde
@ -312,7 +312,7 @@ de:
new: new:
title: Neuer Blog-Eintrag title: Neuer Blog-Eintrag
publish_button: Veröffentlichen publish_button: Veröffentlichen
list: index:
title: Benutzer-Blogs title: Benutzer-Blogs
title_friends: Blogs deiner Freunde title_friends: Blogs deiner Freunde
title_nearby: Blogs von Nutzern in der Nähe title_nearby: Blogs von Nutzern in der Nähe
@ -335,7 +335,7 @@ de:
use_map_link: Ort auf Karte auswählen use_map_link: Ort auf Karte auswählen
save_button: Speichern save_button: Speichern
marker_text: Ort des Blogeintrags marker_text: Ort des Blogeintrags
view: show:
title: Blog von %{user} | %{title} title: Blog von %{user} | %{title}
user_title: Blog von %{user} user_title: Blog von %{user}
leave_a_comment: Schreibe einen Kommentar 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 body: Es gibt leider keinen Benutzer mit dem Namen %{user}. Du hast dich möglicherweise
vertippt oder bist einem ungültigem Link gefolgt. vertippt oder bist einem ungültigem Link gefolgt.
deleted: gelöscht deleted: gelöscht
view: show:
my diary: Mein Blog my diary: Mein Blog
new diary entry: Neuer Blogeintrag new diary entry: Neuer Blogeintrag
my edits: Meine Änderungen my edits: Meine Änderungen
@ -2358,7 +2358,7 @@ de:
not_a_friend: '%{name} ist nicht dein Freund.' not_a_friend: '%{name} ist nicht dein Freund.'
filter: filter:
not_an_administrator: Du musst ein Administrator sein um diese Aktion auszuführen. not_an_administrator: Du musst ein Administrator sein um diese Aktion auszuführen.
list: index:
title: Benutzer title: Benutzer
heading: Benutzer heading: Benutzer
showing: showing:

View file

@ -200,7 +200,7 @@ diq:
user: Karber user: Karber
comment: Mışewre comment: Mışewre
area: Erz area: Erz
list: index:
title: Seta vurnayışan title: Seta vurnayışan
title_user: Vurriyayışê setê %{user} title_user: Vurriyayışê setê %{user}
title_friend: Qeydê vurnayışê embazan title_friend: Qeydê vurnayışê embazan
@ -211,7 +211,7 @@ diq:
diary_entry: diary_entry:
new: new:
publish_button: Vıla ke publish_button: Vıla ke
list: index:
user_title: '%{user} (Rocek)' user_title: '%{user} (Rocek)'
edit: edit:
subject: 'Mewzu:' subject: 'Mewzu:'
@ -221,7 +221,7 @@ diq:
latitude: 'Verıniye:' latitude: 'Verıniye:'
longitude: 'Derganiye:' longitude: 'Derganiye:'
save_button: Qeyd ke save_button: Qeyd ke
view: show:
login: Cıkewtış login: Cıkewtış
save_button: Qeyd ke save_button: Qeyd ke
diary_entry: diary_entry:
@ -912,7 +912,7 @@ diq:
no_such_user: no_such_user:
title: Karbero do wuna çıniyo title: Karbero do wuna çıniyo
heading: '%{user} name dı karber çıniyo' heading: '%{user} name dı karber çıniyo'
view: show:
my diary: Rocekê mı my diary: Rocekê mı
new diary entry: Roceko newe defi new diary entry: Roceko newe defi
my edits: Iştirakê mı my edits: Iştirakê mı
@ -1004,7 +1004,7 @@ diq:
button: Xo rê embaz ke button: Xo rê embaz ke
remove_friend: remove_friend:
button: Embazan ra vec button: Embazan ra vec
list: index:
title: Karberi title: Karberi
heading: Karberi heading: Karberi
showing: showing:

View file

@ -220,7 +220,7 @@ dsb:
user: Wužywaŕ user: Wužywaŕ
comment: Komentar comment: Komentar
area: Wurězk area: Wurězk
list: index:
title: Sajźby změnow title: Sajźby změnow
title_user: Sajźby změnow wót %{user} title_user: Sajźby změnow wót %{user}
title_friend: Změny twójich pśijaśelow title_friend: Změny twójich pśijaśelow
@ -237,7 +237,7 @@ dsb:
diary_entry: diary_entry:
new: new:
title: Nowy zapisk dnjownika title: Nowy zapisk dnjownika
list: index:
title: Dnjowniki wužywarjow title: Dnjowniki wužywarjow
title_friends: Dnjowniki pśijaśelow title_friends: Dnjowniki pśijaśelow
title_nearby: Dnjowniki wužywarjow w bliskosći title_nearby: Dnjowniki wužywarjow w bliskosći
@ -260,7 +260,7 @@ dsb:
use_map_link: kórtu wužywaś use_map_link: kórtu wužywaś
save_button: Składowaś save_button: Składowaś
marker_text: Městno zapiska dnjownika marker_text: Městno zapiska dnjownika
view: show:
title: Dnjownik %{user} | %{title} title: Dnjownik %{user} | %{title}
user_title: dnjownik wužywarja %{user} user_title: dnjownik wužywarja %{user}
leave_a_comment: Komentar zawóstajiś leave_a_comment: Komentar zawóstajiś
@ -1677,7 +1677,7 @@ dsb:
heading: Wužywaŕ %{user} njeeksistěrujo heading: Wužywaŕ %{user} njeeksistěrujo
body: Bóžko njejo wužywaŕ z mjenim %{user}. Pšosym pśekontrolěruj swój pšawopis, 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. abo wótkaz, na kótaryž sy kliknuł, jo njepłaśiwy.
view: show:
my diary: Mój dnjownik my diary: Mój dnjownik
new diary entry: nowy dnjownikowy zapisk new diary entry: nowy dnjownikowy zapisk
my edits: Móje změny my edits: Móje změny
@ -1847,7 +1847,7 @@ dsb:
not_a_friend: '%{name} njejo twój pśijaśel.' not_a_friend: '%{name} njejo twój pśijaśel.'
filter: filter:
not_an_administrator: Musyš administrator byś, aby wuwjadł toś tu akciju. not_an_administrator: Musyš administrator byś, aby wuwjadł toś tu akciju.
list: index:
title: Wužywarje title: Wužywarje
heading: Wužywarje heading: Wužywarje
showing: showing:

View file

@ -269,7 +269,7 @@ el:
user: Χρήστης user: Χρήστης
comment: Σχόλιο comment: Σχόλιο
area: Περιοχή area: Περιοχή
list: index:
title: Ομάδες αλλαγών title: Ομάδες αλλαγών
title_user: Ομάδες αλλαγών από τον %{user} title_user: Ομάδες αλλαγών από τον %{user}
title_friend: Ομάδες αλλαγών από τους φίλους μου title_friend: Ομάδες αλλαγών από τους φίλους μου
@ -295,7 +295,7 @@ el:
new: new:
title: Νέα καταχώρηση ημερολογίου title: Νέα καταχώρηση ημερολογίου
publish_button: Δημοσίευση publish_button: Δημοσίευση
list: index:
title: Ημερολόγια χρηστών title: Ημερολόγια χρηστών
title_friends: Ημερολόγια φίλων title_friends: Ημερολόγια φίλων
title_nearby: Ημερολόγια κοντινών χρηστών title_nearby: Ημερολόγια κοντινών χρηστών
@ -318,7 +318,7 @@ el:
use_map_link: χρησιμοποιήστε τον χάρτη use_map_link: χρησιμοποιήστε τον χάρτη
save_button: Αποθήκευση save_button: Αποθήκευση
marker_text: Τοποθεσία καταχώρησης ημερολογίου marker_text: Τοποθεσία καταχώρησης ημερολογίου
view: show:
title: το ημερολόγιο του %{user} | %{title} title: το ημερολόγιο του %{user} | %{title}
user_title: ημερολόγιο του %{user} user_title: ημερολόγιο του %{user}
leave_a_comment: Αφήστε ένα σχόλιο leave_a_comment: Αφήστε ένα σχόλιο
@ -2150,7 +2150,7 @@ el:
ορθογραφικά λάθη ή να είναι λάθος ο σύνδεσμος μέσω του οποίου φτάσατε σε αυτήν ορθογραφικά λάθη ή να είναι λάθος ο σύνδεσμος μέσω του οποίου φτάσατε σε αυτήν
τη σελίδα. τη σελίδα.
deleted: διεγράφη deleted: διεγράφη
view: show:
my diary: Το Ημερολόγιό Μου my diary: Το Ημερολόγιό Μου
new diary entry: νέα καταχώρηση ημερολογίου new diary entry: νέα καταχώρηση ημερολογίου
my edits: Οι Επεξεργασίες Μου my edits: Οι Επεξεργασίες Μου
@ -2336,7 +2336,7 @@ el:
not_a_friend: Ο χρήστης %{name} δεν είναι ένας από τους φίλους σας. not_a_friend: Ο χρήστης %{name} δεν είναι ένας από τους φίλους σας.
filter: filter:
not_an_administrator: Πρέπει να είστε διαχειριστής για να το κάνετε αυτό. not_an_administrator: Πρέπει να είστε διαχειριστής για να το κάνετε αυτό.
list: index:
title: Χρήστες title: Χρήστες
heading: Χρήστες heading: Χρήστες
showing: showing:

View file

@ -252,7 +252,7 @@ en-GB:
user: User user: User
comment: Comment comment: Comment
area: Area area: Area
list: index:
title: Changesets title: Changesets
title_user: Changesets by %{user} title_user: Changesets by %{user}
title_friend: Changesets by your friends title_friend: Changesets by your friends
@ -277,7 +277,7 @@ en-GB:
new: new:
title: New Diary Entry title: New Diary Entry
publish_button: Publish publish_button: Publish
list: index:
title: Users' diaries title: Users' diaries
title_friends: Friends' diaries title_friends: Friends' diaries
title_nearby: Nearby Users' diaries title_nearby: Nearby Users' diaries
@ -300,7 +300,7 @@ en-GB:
use_map_link: use map use_map_link: use map
save_button: Save save_button: Save
marker_text: Diary entry location marker_text: Diary entry location
view: show:
title: '%{user}''s diary | %{title}' title: '%{user}''s diary | %{title}'
user_title: '%{user}''s diary' user_title: '%{user}''s diary'
leave_a_comment: Leave a comment 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, body: Sorry, there is no user with the name %{user}. Please check your spelling,
or maybe the link you clicked is wrong. or maybe the link you clicked is wrong.
deleted: deleted deleted: deleted
view: show:
my diary: My Diary my diary: My Diary
new diary entry: new diary entry new diary entry: new diary entry
my edits: My Edits my edits: My Edits
@ -2083,7 +2083,7 @@ en-GB:
not_a_friend: '%{name} is not one of your friends.' not_a_friend: '%{name} is not one of your friends.'
filter: filter:
not_an_administrator: You need to be an administrator to perform that action. not_an_administrator: You need to be an administrator to perform that action.
list: index:
title: Users title: Users
heading: Users heading: Users
showing: showing:

View file

@ -228,7 +228,7 @@ en:
user: "User" user: "User"
comment: "Comment" comment: "Comment"
area: "Area" area: "Area"
list: index:
title: "Changesets" title: "Changesets"
title_user: "Changesets by %{user}" title_user: "Changesets by %{user}"
title_friend: "Changesets by my friends" title_friend: "Changesets by my friends"
@ -253,7 +253,7 @@ en:
new: new:
title: New Diary Entry title: New Diary Entry
publish_button: "Publish" publish_button: "Publish"
list: index:
title: "Users' diaries" title: "Users' diaries"
title_friends: "Friends' diaries" title_friends: "Friends' diaries"
title_nearby: "Nearby Users' diaries" title_nearby: "Nearby Users' diaries"
@ -276,7 +276,7 @@ en:
use_map_link: "use map" use_map_link: "use map"
save_button: "Save" save_button: "Save"
marker_text: Diary entry location marker_text: Diary entry location
view: show:
title: "%{user}'s diary | %{title}" title: "%{user}'s diary | %{title}"
user_title: "%{user}'s diary" user_title: "%{user}'s diary"
leave_a_comment: "Leave a comment" leave_a_comment: "Leave a comment"
@ -1055,9 +1055,8 @@ en:
intro_header: Welcome to OpenStreetMap! 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_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" 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_ucl: "UCL"
partners_ic: "Imperial College London"
partners_bytemark: "Bytemark Hosting" partners_bytemark: "Bytemark Hosting"
partners_partners: "partners" partners_partners: "partners"
osm_offline: "The OpenStreetMap database is currently offline while essential database maintenance work is carried out." 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" 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." body: "Sorry, there is no user with the name %{user}. Please check your spelling, or maybe the link you clicked is wrong."
deleted: "deleted" deleted: "deleted"
view: show:
my diary: My Diary my diary: My Diary
new diary entry: new diary entry new diary entry: new diary entry
my edits: My Edits my edits: My Edits
@ -2168,7 +2167,7 @@ en:
not_a_friend: "%{name} is not one of your friends." not_a_friend: "%{name} is not one of your friends."
filter: filter:
not_an_administrator: "You need to be an administrator to perform that action." not_an_administrator: "You need to be an administrator to perform that action."
list: index:
title: Users title: Users
heading: Users heading: Users
showing: showing:

View file

@ -246,7 +246,7 @@ eo:
user: Uzanto user: Uzanto
comment: Komenti comment: Komenti
area: Areo area: Areo
list: index:
title: Ŝanĝaroj title: Ŝanĝaroj
title_user: Ŝanĝaroj de %{user} title_user: Ŝanĝaroj de %{user}
title_friend: Ŝanĝaroj de miaj amikoj title_friend: Ŝanĝaroj de miaj amikoj
@ -271,7 +271,7 @@ eo:
new: new:
title: Nova taglibra afiŝo title: Nova taglibra afiŝo
publish_button: Publiki publish_button: Publiki
list: index:
title: Taglibroj de uzantoj title: Taglibroj de uzantoj
title_friends: Taglibroj de amikoj title_friends: Taglibroj de amikoj
title_nearby: Taglibroj de proksimaj uzantoj title_nearby: Taglibroj de proksimaj uzantoj
@ -294,7 +294,7 @@ eo:
use_map_link: uzi mapon use_map_link: uzi mapon
save_button: Konservi save_button: Konservi
marker_text: Kie krei la afiŝon marker_text: Kie krei la afiŝon
view: show:
title: Taglibro de %{user} | %{title} title: Taglibro de %{user} | %{title}
user_title: Taglibro de %{user} user_title: Taglibro de %{user}
leave_a_comment: Komenti leave_a_comment: Komenti
@ -2054,7 +2054,7 @@ eo:
body: Bedaŭrinde, ne ekzistas uzanto kun la nomo %{user}. Bonvolu kontroli pri body: Bedaŭrinde, ne ekzistas uzanto kun la nomo %{user}. Bonvolu kontroli pri
liter-eraroj, aŭ eble vi alklakis mis-ligilon. liter-eraroj, aŭ eble vi alklakis mis-ligilon.
deleted: forigita deleted: forigita
view: show:
my diary: Mia taglibro my diary: Mia taglibro
new diary entry: nova taglibra afiŝo new diary entry: nova taglibra afiŝo
my edits: Miaj redaktoj my edits: Miaj redaktoj
@ -2229,7 +2229,7 @@ eo:
not_a_friend: '%{name} ne estas amiko via.' not_a_friend: '%{name} ne estas amiko via.'
filter: filter:
not_an_administrator: Vi devas esti administranto por fari tion. not_an_administrator: Vi devas esti administranto por fari tion.
list: index:
title: Uzantoj title: Uzantoj
heading: Uzantoj heading: Uzantoj
showing: showing:

View file

@ -281,7 +281,7 @@ es:
user: Usuario user: Usuario
comment: Comentario comment: Comentario
area: Área area: Área
list: index:
title: Conjuntos de cambios title: Conjuntos de cambios
title_user: Conjunto de cambios por %{user} title_user: Conjunto de cambios por %{user}
title_friend: Conjuntos de cambios realizados por mis amigos title_friend: Conjuntos de cambios realizados por mis amigos
@ -308,7 +308,7 @@ es:
new: new:
title: Nueva entrada en el diario title: Nueva entrada en el diario
publish_button: Publicar publish_button: Publicar
list: index:
title: Diarios de usuarios title: Diarios de usuarios
title_friends: Diarios de amigos title_friends: Diarios de amigos
title_nearby: Diarios de usuarios cercanos title_nearby: Diarios de usuarios cercanos
@ -331,7 +331,7 @@ es:
use_map_link: usar mapa use_map_link: usar mapa
save_button: Guardar save_button: Guardar
marker_text: Lugar de la entrada del diario marker_text: Lugar de la entrada del diario
view: show:
title: Diario de %{user} | %{title} title: Diario de %{user} | %{title}
user_title: Diario de %{user} user_title: Diario de %{user}
leave_a_comment: Dejar un comentario 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 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 en la base de datos. Esto normalmente ocurre en la próxima media hora, y se
te enviará un correo electrónico al terminar. 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: traces_waiting:
one: Tienes %{count} traza esperando por subir. Por favor, considera esperar 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 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 save_button: Guardar cambios
visibility: 'Visibilidad:' visibility: 'Visibilidad:'
visibility_help: ¿Qué significa esto? visibility_help: ¿Qué significa esto?
update:
updated: Traza actualizada
trace_optionals: trace_optionals:
tags: Etiquetas tags: Etiquetas
show: show:
@ -2136,7 +2140,7 @@ es:
body: Lo sentimos, no existe ningún usuario con el nombre %{user}. Por favor, 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. verifica las letras, o tal vez el vínculo en el que has hecho click está equivocado.
deleted: borrado deleted: borrado
view: show:
my diary: Mi diario my diary: Mi diario
new diary entry: nueva entrada de diario new diary entry: nueva entrada de diario
my edits: Mis ediciones my edits: Mis ediciones
@ -2318,7 +2322,7 @@ es:
not_a_friend: '%{name} no es uno de tus amigos.' not_a_friend: '%{name} no es uno de tus amigos.'
filter: filter:
not_an_administrator: Necesitas ser administrador para ejecutar esta acción. not_an_administrator: Necesitas ser administrador para ejecutar esta acción.
list: index:
title: Usuarios title: Usuarios
heading: Usuarios heading: Usuarios
showing: showing:

View file

@ -238,7 +238,7 @@ et:
user: Kasutaja user: Kasutaja
comment: Kommentaar comment: Kommentaar
area: Ala area: Ala
list: index:
title: Muudatuskogumid title: Muudatuskogumid
title_user: Kasutaja %{user} muudatuskogumid title_user: Kasutaja %{user} muudatuskogumid
title_friend: Sõprade muudatuskogumid title_friend: Sõprade muudatuskogumid
@ -263,7 +263,7 @@ et:
new: new:
title: Uus päeviku sissekanne title: Uus päeviku sissekanne
publish_button: Avalda publish_button: Avalda
list: index:
title: Kasutajate päevikud title: Kasutajate päevikud
title_friends: Sõprade päevikud title_friends: Sõprade päevikud
title_nearby: Lähedalasuvate kasutajate päevikud title_nearby: Lähedalasuvate kasutajate päevikud
@ -286,7 +286,7 @@ et:
use_map_link: kasuta kaarti use_map_link: kasuta kaarti
save_button: Salvesta save_button: Salvesta
marker_text: Päeviku sissekande tegemise asukoht marker_text: Päeviku sissekande tegemise asukoht
view: show:
title: Kasutaja %{user} päevik | %{title} title: Kasutaja %{user} päevik | %{title}
user_title: Kasutaja %{user} päevik user_title: Kasutaja %{user} päevik
leave_a_comment: Kommenteeri leave_a_comment: Kommenteeri
@ -1767,7 +1767,7 @@ et:
heading: Kasutajat %{user} pole olemas heading: Kasutajat %{user} pole olemas
body: Vabandust, kuid kasutaja nimega %{user} puudub. Palun kontrolli kirjapilti. body: Vabandust, kuid kasutaja nimega %{user} puudub. Palun kontrolli kirjapilti.
Võimalik, et link, millele klõpsasid, on vigane. Võimalik, et link, millele klõpsasid, on vigane.
view: show:
my diary: Minu päevik my diary: Minu päevik
new diary entry: uus päevikusissekanne new diary entry: uus päevikusissekanne
my edits: Minu muudatused my edits: Minu muudatused
@ -1942,7 +1942,7 @@ et:
not_a_friend: '%{name} ei ole üks sinu sõpradest.' not_a_friend: '%{name} ei ole üks sinu sõpradest.'
filter: filter:
not_an_administrator: Selle tegevuse sooritamiseks pead sa olema administraator. not_an_administrator: Selle tegevuse sooritamiseks pead sa olema administraator.
list: index:
title: Kasutajad title: Kasutajad
heading: Kasutajad heading: Kasutajad
showing: showing:

View file

@ -8,6 +8,7 @@
# Author: EukeneFL # Author: EukeneFL
# Author: Gorkaazk # Author: Gorkaazk
# Author: Iñaki LL # Author: Iñaki LL
# Author: Maite
# Author: Mikel Ibaiba # Author: Mikel Ibaiba
# Author: MikelEH # Author: MikelEH
# Author: PerroVerd # Author: PerroVerd
@ -251,7 +252,7 @@ eu:
user: Erabiltzailea user: Erabiltzailea
comment: Iruzkina comment: Iruzkina
area: Eremua area: Eremua
list: index:
title: Aldaketak title: Aldaketak
title_user: '%{user}k egindako aldaketak' title_user: '%{user}k egindako aldaketak'
title_friend: Nire lagunek egindako aldaketak title_friend: Nire lagunek egindako aldaketak
@ -277,7 +278,7 @@ eu:
new: new:
title: Eguneroko Sarrera Berria title: Eguneroko Sarrera Berria
publish_button: Argitaratu publish_button: Argitaratu
list: index:
title: Erabiltzaileen egunerokoak title: Erabiltzaileen egunerokoak
title_friends: Lagunen egunerokoak title_friends: Lagunen egunerokoak
title_nearby: Hurbileko erabiltzaileen egunerokoak title_nearby: Hurbileko erabiltzaileen egunerokoak
@ -300,7 +301,7 @@ eu:
use_map_link: erabili mapa use_map_link: erabili mapa
save_button: Gorde save_button: Gorde
marker_text: Eguneroko sarrera helbidea marker_text: Eguneroko sarrera helbidea
view: show:
title: '%{user}(r)en egunerokoa | %{title}' title: '%{user}(r)en egunerokoa | %{title}'
user_title: '%{user}(r)en egunerokoa' user_title: '%{user}(r)en egunerokoa'
leave_a_comment: Iruzkin bat utzi leave_a_comment: Iruzkin bat utzi
@ -1748,6 +1749,8 @@ eu:
upload_trace: GPS Aztarna igo upload_trace: GPS Aztarna igo
trace_uploaded: Zure GPX fitxategia kargatu da eta datu basean sartzeko zain trace_uploaded: Zure GPX fitxategia kargatu da eta datu basean sartzeko zain
dago. Ordu erdi barru egongo da eta posta elektronikoz bidaliko zaizu amaitzean. 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: traces_waiting:
one: '%{count} aztarna daukazu kargatzeko zain. Kontutan hartu gehiago igotzeko one: '%{count} aztarna daukazu kargatzeko zain. Kontutan hartu gehiago igotzeko
agindua ez ematea zain zauden bitartean, beste erabiltzaile batzuei ilarak agindua ez ematea zain zauden bitartean, beste erabiltzaile batzuei ilarak
@ -1772,6 +1775,8 @@ eu:
save_button: Aldaketak gorde save_button: Aldaketak gorde
visibility: Ikusgarritasuna; visibility: Ikusgarritasuna;
visibility_help: Zer esan nahi du honek? visibility_help: Zer esan nahi du honek?
update:
updated: Bilaketa eguneratua
trace_optionals: trace_optionals:
tags: Etiketak tags: Etiketak
show: show:
@ -2087,7 +2092,7 @@ eu:
body: Barkatu, ez dago %{user} izenarekin erabiltzailerik. Egiaztatu ortografia, body: Barkatu, ez dago %{user} izenarekin erabiltzailerik. Egiaztatu ortografia,
edo agian egin duzun esteka gaizki dago. edo agian egin duzun esteka gaizki dago.
deleted: ezabatua deleted: ezabatua
view: show:
my diary: Nire egunerokoa my diary: Nire egunerokoa
new diary entry: eguneroko sarrera berria new diary entry: eguneroko sarrera berria
my edits: Nire aldaketak my edits: Nire aldaketak
@ -2264,7 +2269,7 @@ eu:
not_a_friend: '%{name} ez da zure laguna.' not_a_friend: '%{name} ez da zure laguna.'
filter: filter:
not_an_administrator: Ekintza hori burutzeko administratzaile izan behar duzu. not_an_administrator: Ekintza hori burutzeko administratzaile izan behar duzu.
list: index:
title: Erabiltzaileak title: Erabiltzaileak
heading: Erabiltzaileak heading: Erabiltzaileak
showing: showing:

View file

@ -68,7 +68,7 @@ fa:
tracetag: برچسب رد tracetag: برچسب رد
user: کاربر user: کاربر
user_preference: ترجیحات کاربر user_preference: ترجیحات کاربر
user_token: رمزینهٔ کاربر user_token: توکن کاربر
way: راه way: راه
way_node: گره راه way_node: گره راه
way_tag: برچسب راه way_tag: برچسب راه
@ -228,9 +228,9 @@ fa:
open_title: 'یادداشت حل‌نشده #%{note_name}' open_title: 'یادداشت حل‌نشده #%{note_name}'
closed_title: 'یادداشت حل‌شده #%{note_name}' closed_title: 'یادداشت حل‌شده #%{note_name}'
hidden_title: 'یادداشت پنهان #%{note_name}' hidden_title: 'یادداشت پنهان #%{note_name}'
open_by: ایجاد شده توسط %{user} <abbr title='%{exact_time}'>%{when} قبل </abbr> open_by: <abbr title='%{exact_time}'>%{when} قبل </abbr> %{user} ایجادش کرد
open_by_anonymous: ایجاد شده توسط ناشناس <abbr title='%{exact_time}'>%{when} open_by_anonymous: <abbr title='%{exact_time}'>%{when} قبل</abbr> فرد ناشناس
قبل</abbr> ایجادش کرد.
commented_by: نظر از %{user}،‏ <abbr title='%{exact_time}'>%{when} قبل</abbr> commented_by: نظر از %{user}،‏ <abbr title='%{exact_time}'>%{when} قبل</abbr>
commented_by_anonymous: نظر از ناشناس، <abbr title='%{exact_time}'>%{when} قبل</abbr> commented_by_anonymous: نظر از ناشناس، <abbr title='%{exact_time}'>%{when} قبل</abbr>
closed_by: '%{user} آن را حل کرد، <abbr title=''%{exact_time}''>%{when} قبل</abbr>' closed_by: '%{user} آن را حل کرد، <abbr title=''%{exact_time}''>%{when} قبل</abbr>'
@ -262,7 +262,7 @@ fa:
user: کاربر user: کاربر
comment: نظر comment: نظر
area: منطقه area: منطقه
list: index:
title: تغییرات انجام شده title: تغییرات انجام شده
title_user: تغییرات انجام شده توسط %{user} title_user: تغییرات انجام شده توسط %{user}
title_friend: تغییرات انجام شده توسط دوستان من title_friend: تغییرات انجام شده توسط دوستان من
@ -288,7 +288,7 @@ fa:
new: new:
title: روزنوشت جدید title: روزنوشت جدید
publish_button: انتشار publish_button: انتشار
list: index:
title: روزنوشت‌های کاربران title: روزنوشت‌های کاربران
title_friends: روزنوشت‌های دوستان title_friends: روزنوشت‌های دوستان
title_nearby: روزنوشت‌های کاربران نزدیک title_nearby: روزنوشت‌های کاربران نزدیک
@ -311,7 +311,7 @@ fa:
use_map_link: استفاده از نقشه use_map_link: استفاده از نقشه
save_button: ذخیره save_button: ذخیره
marker_text: مکان روزنوشت marker_text: مکان روزنوشت
view: show:
title: روزنوشت %{user} | %{title} title: روزنوشت %{user} | %{title}
user_title: روزنوشت‌های %{user} user_title: روزنوشت‌های %{user}
leave_a_comment: ارسال نظر leave_a_comment: ارسال نظر
@ -339,6 +339,7 @@ fa:
comment_from: نظر از %{link_user} در %{comment_created_at} comment_from: نظر از %{link_user} در %{comment_created_at}
hide_link: پنهان کردن این نظر hide_link: پنهان کردن این نظر
confirm: تأیید confirm: تأیید
report: گزارش این نظر
location: location:
location: 'مکان:' location: 'مکان:'
view: نمایش view: نمایش
@ -919,12 +920,18 @@ fa:
index: index:
reported_user: کاربر گزارش‌شده reported_user: کاربر گزارش‌شده
reports: گزارش‌ها reports: گزارش‌ها
last_updated_time_html: <abbr title='%{title}'>%{time} پیش</abbr>
last_updated_time_user_html: <abbr title='%{title}'>%{time} پیش</abbr> توسط
%{user}
link_to_reports: نمایش گزارش‌ها link_to_reports: نمایش گزارش‌ها
reports_count: reports_count:
one: 1 گزارش one: 1 گزارش
other: '%{count} گزارش' other: '%{count} گزارش'
reported_item: گزارش‌ها
update: update:
new_report: گزارشتان با موفقیت ثبت شد new_report: گزارشتان با موفقیت ثبت شد
successful_update: گزارشتان با موفقیت به‌روز شد
provide_details: لطفاً جزئیات لازم را ارائه دهید
show: show:
reports: reports:
zero: گزارشی نیست zero: گزارشی نیست
@ -934,6 +941,9 @@ fa:
new_reports: گزارش‌های تازه new_reports: گزارش‌های تازه
reports: reports:
reported_by_html: '%{user} آن را به‌عنوان %{category} گزارش کرد' reported_by_html: '%{user} آن را به‌عنوان %{category} گزارش کرد'
helper:
reportable_title:
note: یادداشت %{note_id}
reports: reports:
new: new:
title_html: گزارش %{link} title_html: گزارش %{link}
@ -946,6 +956,9 @@ fa:
diary_comment: diary_comment:
spam_label: این نظر (بر روزنوشت) هرزنامه است/دارد spam_label: این نظر (بر روزنوشت) هرزنامه است/دارد
threat_label: این نظر (بر روزنوشت) تهدیدآمیز است threat_label: این نظر (بر روزنوشت) تهدیدآمیز است
note:
spam_label: این یادداشت هرزنامه است
abusive_label: این یادداشت زشت است
create: create:
successful_report: گزارشتان با موفقیت ثبت شد successful_report: گزارشتان با موفقیت ثبت شد
layouts: layouts:
@ -1071,23 +1084,23 @@ fa:
anonymous: کاربر ناشناس anonymous: کاربر ناشناس
greeting: ‎سلام ، greeting: ‎سلام ،
commented: commented:
subject_own: '[OpenStreetMap] %{commenter} روی یکی از یادداشت‌هایتان نظر داده subject_own: '[OpenStreetMap] %{commenter} روی یکی از یادداشت‌های شما نظر
است' داده است'
subject_other: '[OpenStreetMap] %{commenter} روی یادداشت موردعلاقه‌تان نظر subject_other: '[OpenStreetMap] %{commenter} روی یادداشت موردعلاقه‌تان نظر
داده' داده'
your_note: '%{commenter} روی یکی از یادداشت‌های شما روی نقشه نزدیک %{place} your_note: '%{commenter} روی یکی از یادداشت‌های شما روی نقشه نزدیک به %{place}
نظر گذاشت.' نظر گذاشته.'
commented_note: '%{commenter} روی یک از یادداشت‌های نقشه که شما بر آن نظر commented_note: '%{commenter} روی یک از یادداشت‌های نقشه که شما بر آن نظر
داده‌اید نظر داد. این یادداشت نزدیک %{place} است.' داده‌اید نظر داد. این یادداشت نزدیک به %{place} است.'
closed: closed:
subject_own: '[OpenStreetMap] %{commenter} یکی از یادداشت‌های شما را حل کرده subject_own: '[OpenStreetMap] %{commenter} یکی از یادداشت‌های شما را حل کرده
است' است'
subject_other: '[OpenStreetMap] %{commenter} یکی از یادداشت‌های موردعلاقه subject_other: '[OpenStreetMap] %{commenter} یکی از یادداشت‌های موردعلاقهٔ
شما را حل کرد' شما را حل کرد'
your_note: '%{commenter} یکی از یادداشت‌های شما بر نقشه در نزدیکی %{place} your_note: '%{commenter} یکی از یادداشت‌های شما بر نقشه در نزدیکی %{place}
را حل کرد.' را حل کرد.'
commented_note: '%{commenter} یکی از یادداشت‌های نقشه که شما بر آن نظر گذاشته‌اید commented_note: '%{commenter} یکی از یادداشت‌های نقشه که شما بر آن نظر گذاشته‌اید
را حل کرد. یادداشت نزدیک %{place} است.' را حل کرد. یادداشت نزدیک به %{place} است.'
reopened: reopened:
subject_own: '[OpenStreetMap] %{commenter} یکی از یادداشت‌های شما را دوباره subject_own: '[OpenStreetMap] %{commenter} یکی از یادداشت‌های شما را دوباره
فعال کرد' فعال کرد'
@ -1096,7 +1109,7 @@ fa:
your_note: '%{commenter} یکی از یادداشت‌های شما بر نقشه در نزدیکی %{place} your_note: '%{commenter} یکی از یادداشت‌های شما بر نقشه در نزدیکی %{place}
را دوباره فعال کرد.' را دوباره فعال کرد.'
commented_note: '%{commenter} یکی از یادداشت‌های نقشه را که شما بر آن نظر commented_note: '%{commenter} یکی از یادداشت‌های نقشه را که شما بر آن نظر
گذاشته‌اید دوباره فعال کرد. یادداشت نزدیک %{place} است.' گذاشته‌اید دوباره فعال کرد. یادداشت نزدیک به %{place} است.'
details: اطلاعات بیشتر درباره این یادداشت را در %{url} ببینید. details: اطلاعات بیشتر درباره این یادداشت را در %{url} ببینید.
changeset_comment_notification: changeset_comment_notification:
hi: سلام %{to_user}، hi: سلام %{to_user}،
@ -1588,7 +1601,7 @@ fa:
add_a_note: add_a_note:
title: زمانی برای ویرایش ندارید؟ یادداشت اضافه کنید! title: زمانی برای ویرایش ندارید؟ یادداشت اضافه کنید!
paragraph_1_html: "اگر میخواهید فقط چیز کوچکی را درست کنید و زمانی برای ثبت paragraph_1_html: "اگر میخواهید فقط چیز کوچکی را درست کنید و زمانی برای ثبت
نام و یادگیری ویرایش ندارید، به‌راحتی \nیک یادداشت بنویسید." نام و یادگیری ویرایش ندارید، به‌آسانی \nیک یادداشت بنویسید."
paragraph_2_html: |- paragraph_2_html: |-
فقط بروید به <a href='%{map_url}'>نقشه</a> و روی آیکون یادداشت کلیک کنید: فقط بروید به <a href='%{map_url}'>نقشه</a> و روی آیکون یادداشت کلیک کنید:
<span class='icon note'></span>. اینجوری یک علامت گذار به نقشه اضافه می‌شود، که می‌توانید با کشیدن جابجایش کنید. پیامتان را اضافه کنید، بعد روی ذخیره کلیک کنید، و سایر نقشه کشان بررسی خواهند کرد. <span class='icon note'></span>. اینجوری یک علامت گذار به نقشه اضافه می‌شود، که می‌توانید با کشیدن جابجایش کنید. پیامتان را اضافه کنید، بعد روی ذخیره کلیک کنید، و سایر نقشه کشان بررسی خواهند کرد.
@ -1716,17 +1729,18 @@ fa:
require_moderator: require_moderator:
not_a_moderator: برای انجام آن عمل نیاز هست مدیر باشید. not_a_moderator: برای انجام آن عمل نیاز هست مدیر باشید.
setup_user_auth: setup_user_auth:
blocked: دسترسی شما به API مسدود شده. برای یافتن اطلاعات بیشتر لطفاً وارد رابط blocked: دسترسی شما به API مسدود شده. برای یافتن اطلاعات بیشتر لطفاً به رابط
کاربری وب شوید. کاربری وب وارد شوید (log in).
need_to_see_terms: دسترسی شما به API بطور موقت معلق شده‌است. برای مشاهدهٔ شرایط need_to_see_terms: دسترسی شما به API بطور موقت معلق شده‌است. برای مشاهدهٔ شرایط
شرکت‌کننده لطفاً وارد رابط کاربری وب شوید. نیاز به موافقت شما نیست، ولی باید شرکت‌کننده لطفاً وارد رابط کاربری وب شوید. نیاز به موافقت شما نیست، ولی باید
حتماً آن‌ٰها را ببینید. حتماً آن‌ٰها را ببینید.
oauth: oauth:
authorize: authorize:
title: دسترسی اجازه دادن به حسابتان title: اجازهٔ دسترسی به حسابتان را صادر کنید
request_access: برنامهٔ %{app_name}%{app_name} درخواست دسترسی به حسابتان %{user} request_access: برنامهٔ %{app_name}%{app_name} درخواست دسترسی به حساب کاربری
را دارد. لطفاً بررسی کنید که می‌خواهید برنامه به قابلیت‌های زیر دسترسی داشته شما را دارد (%{user}). لطفاً بررسی کنید که آیا مایلید برنامه به قابلیت‌های
باشد. ممکن است چند تا یا فقط تعدادی را که دوست دارید انتخاب کنید. زیر دسترسی داشته باشد. می‌توانید همه یا فقط مواردی را که دوست دارید انتخاب
کنید.
allow_to: 'به برنامه کارخواه اجازه بده که:' allow_to: 'به برنامه کارخواه اجازه بده که:'
allow_read_prefs: خواندن ترجیحات کاربری شما. allow_read_prefs: خواندن ترجیحات کاربری شما.
allow_write_prefs: تغییر ترجیحات کاربری شما. allow_write_prefs: تغییر ترجیحات کاربری شما.
@ -1735,17 +1749,17 @@ fa:
allow_read_gpx: خواندن ردهای GPS شخصی شما. allow_read_gpx: خواندن ردهای GPS شخصی شما.
allow_write_gpx: بارگذاری ردهای GPS allow_write_gpx: بارگذاری ردهای GPS
allow_write_notes: اصلاح یادداشت‌ها. allow_write_notes: اصلاح یادداشت‌ها.
grant_access: امکان دسترسی grant_access: دسترسی می‌دهم
authorize_success: authorize_success:
title: درخواست اجازه دادن مجاز است title: درخواست صدور مجوز انجام شد
allowed: شما به برنامه ی %{app_name} اجازه ی دسترسی به حسابتان را دادید. allowed: شما به برنامه ی %{app_name} اجازه ی دسترسی به حسابتان را دادید.
verification: کد تأیید %{code} است. verification: کد تأیید %{code} است.
authorize_failure: authorize_failure:
title: درخواست اجازه دادن انجام نشد title: درخواست صدور مجوز انجام نشد
denied: شما به برنامه ی %{app_name} اجازه ی دسترسی به حسابتان را ندادید. denied: شما به برنامه ی %{app_name} اجازه ی دسترسی به حسابتان را ندادید.
invalid: نشانه مجوز معتبر نیست. invalid: توکن مجوز معتبر نیست.
revoke: revoke:
flash: شما نشانه را برای %{application} باطل کردید flash: توکن مربوط %{application} را باطل کردید
oauth_clients: oauth_clients:
new: new:
title: ثبت‌نام یک برنامهٔ تازه title: ثبت‌نام یک برنامهٔ تازه
@ -1757,7 +1771,7 @@ fa:
title: جزئیات OAuth برای %{app_name} title: جزئیات OAuth برای %{app_name}
key: 'کلید مصرف کننده:' key: 'کلید مصرف کننده:'
secret: 'کد مخفی مصرف کننده:' secret: 'کد مخفی مصرف کننده:'
url: 'آدرس درخواست نشانه:' url: 'نشانی توکنِ درخواست:'
access_url: 'آدرس دسترسی نشانه:' access_url: 'آدرس دسترسی نشانه:'
authorize_url: 'آدرس authorise:' authorize_url: 'آدرس authorise:'
support_notice: ما امضا های HMAC-SHA1 (پیشنهاد شده) و RSA-SHA1 را پشتیبانی می support_notice: ما امضا های HMAC-SHA1 (پیشنهاد شده) و RSA-SHA1 را پشتیبانی می
@ -1776,14 +1790,14 @@ fa:
index: index:
title: جزئیات OAuth من title: جزئیات OAuth من
my_tokens: نرم‌افزارهای مجاز من my_tokens: نرم‌افزارهای مجاز من
list_tokens: 'مجوزهای زیر با نام شما برای برنامه‌های زیر صادر شده است:' list_tokens: 'توکن‌های زیر با نام شما برای برنامه‌های زیر صادر شده است:'
application: نام برنامه application: نام برنامه
issued_at: تاریخ صدور issued_at: تاریخ صدور
revoke: باطل کردن! revoke: باطل شود!
my_apps: برنامه‌های کارخواه (client) من my_apps: برنامه‌های کارخواه (client) من
no_apps: آیا برنامه‌ای دارید که می‌خواهید به‌وسیله استاندارد %{oauth} ثبتش کنید no_apps: آیا برنامه‌ای دارید که می‌خواهید به‌وسیلهٔ استاندارد %{oauth} ثبتش
تا با ما از آن استفاده کنید؟ قبل از اینکه برنامه‌تان بتواند درخواست‌های OAuth کنید تا با ما از آن استفاده کنید؟ قبل از اینکه برنامه‌تان بتواند درخواست‌های
را انجام دهد باید برنامه تحت وب خود را ثبت نام کنید. OAuth را انجام دهد باید آن را ثبت کنید.
registered_apps: 'شما برنامه‌های کارخواه (client) زیر را ثبت کرده‌اید:' registered_apps: 'شما برنامه‌های کارخواه (client) زیر را ثبت کرده‌اید:'
register_new: برنامه‌تان را ثبت کنید register_new: برنامه‌تان را ثبت کنید
form: form:
@ -1884,7 +1898,7 @@ fa:
confirm password: 'تأیید گذرواژه:' confirm password: 'تأیید گذرواژه:'
reset: تنظیم مجدد کلمه عبور reset: تنظیم مجدد کلمه عبور
flash changed: کلمه عبور شما تغییر کرده است. flash changed: کلمه عبور شما تغییر کرده است.
flash token bad: نشانه را نیافتید؟ آدرس را برسی کنید شاید یافتید. flash token bad: توکن را نیافتید؟ نشانی را بررسی کنید شاید یافتید.
new: new:
title: ثبت نام title: ثبت نام
no_auto_account_create: متأسفانه در حال حاضر برای ما امکان ساخت خودکار حساب no_auto_account_create: متأسفانه در حال حاضر برای ما امکان ساخت خودکار حساب
@ -1895,8 +1909,8 @@ fa:
about: about:
header: رایگان و قابل ویرایش header: رایگان و قابل ویرایش
html: |- html: |-
<p>بر خلاف سایر نقشه‌ها، OpenStreetMap کاملاً توسط افرادی مثل شما ساخته‌شده و برای تعمیر، به‌روزرسانی، دریافت و استفاده برای هر کسی آزاد است.</p> <p>بر خلاف سایر نقشه‌ها، OpenStreetMap کاملاً توسط افرادی مثل شما ساخته‌شده و اصلاح، به‌روزرسانی، بارگیری و استفادهٔ آن برای همه آزاد است.</p>
<p>برای شروع کمک ثبت نام کنید. برای تأیید حساب‌تان ایمیلی می‌فرستیم.</p> <p>برای شروع همکاری ثبت نام کنید. برای تأیید حساب ایمیلی برای شما می‌فرستیم.</p>
license_agreement: وقتی ایمیلتان را تایید کردید نیاز است که با <a href="https://www.osmfoundation.org/wiki/License/Contributor_Terms">شرایط license_agreement: وقتی ایمیلتان را تایید کردید نیاز است که با <a href="https://www.osmfoundation.org/wiki/License/Contributor_Terms">شرایط
همکاری</a> موافقت کنید. همکاری</a> موافقت کنید.
email address: 'آدرس ایمیل:' email address: 'آدرس ایمیل:'
@ -1943,7 +1957,7 @@ fa:
body: با عرض پوزش، هیچ کاربری با نام %{user} وجود ندارد. لطفاً نحوه نوشتن تان body: با عرض پوزش، هیچ کاربری با نام %{user} وجود ندارد. لطفاً نحوه نوشتن تان
را بررسی کنید، یا شاید پیوندی که کلیک کردید اشتباه است. را بررسی کنید، یا شاید پیوندی که کلیک کردید اشتباه است.
deleted: حذف شده deleted: حذف شده
view: show:
my diary: روزنوشت من my diary: روزنوشت من
new diary entry: روزنوشت تازه new diary entry: روزنوشت تازه
my edits: ویرایش های من my edits: ویرایش های من
@ -1954,7 +1968,7 @@ fa:
my settings: تنظیمات من my settings: تنظیمات من
my comments: نظرات من my comments: نظرات من
oauth settings: تنظیمات oauth oauth settings: تنظیمات oauth
blocks on me: بلوک های بر من blocks on me: مسدودی‌های من
blocks by me: بوک های توسط من blocks by me: بوک های توسط من
send message: ارسال پیام send message: ارسال پیام
diary: روزنوشت diary: روزنوشت
@ -1979,9 +1993,10 @@ fa:
if set location: مکان خانه‌تان را در صفحهٔ %{settings_link} تنظیم کنید تا کاربران if set location: مکان خانه‌تان را در صفحهٔ %{settings_link} تنظیم کنید تا کاربران
نزدیکتان را ببینید. نزدیکتان را ببینید.
settings_link_text: تنظیمات settings_link_text: تنظیمات
my friends: دوستان من
no friends: شما هنوز هیچ دوستی اضافه نکرده‌اید no friends: شما هنوز هیچ دوستی اضافه نکرده‌اید
km away: '%{count} کیلومتر فاصله' km away: %{count} کیلومتر فاصله
m away: '%{count} متر فاصله' m away: %{count} متر فاصله
nearby users: دیگر کاربران نزدیک nearby users: دیگر کاربران نزدیک
no nearby users: در این حوالی هیچ کاربری نقشه ترسیم نکرده است no nearby users: در این حوالی هیچ کاربری نقشه ترسیم نکرده است
role: role:
@ -1993,10 +2008,10 @@ fa:
revoke: revoke:
administrator: لغو دسترسی سرپرست administrator: لغو دسترسی سرپرست
moderator: لغو دسترسی مدیر moderator: لغو دسترسی مدیر
block_history: بلوک شده های فعال block_history: مسدودی‌های فعال
moderator_history: بلوک های گرفته شده moderator_history: مسدودکردن‌ها
comments: نظرات comments: نظرات
create_block: بلوک کردن این کاربر create_block: این کاربر مسدود شود
activate_user: فعال کردن این کاربر activate_user: فعال کردن این کاربر
deactivate_user: غیر فعال کردن این کاربر deactivate_user: غیر فعال کردن این کاربر
confirm_user: تأیید این کاربر confirm_user: تأیید این کاربر
@ -2099,7 +2114,7 @@ fa:
دهید. دهید.
button: تأیید button: تأیید
success: تغییر ایمیل شما تأیید شد! success: تغییر ایمیل شما تأیید شد!
failure: یک آدرس ایمیل با این نشانه قبلاً تأیید شده است. failure: یک آدرس ایمیل با این توکن قبلاً تأیید شده است.
unknown_token: کد تأیید منقضی شده یا وجود ندارد. unknown_token: کد تأیید منقضی شده یا وجود ندارد.
set_home: set_home:
flash success: موقعیت خانه با موفقیت ذخیره شد flash success: موقعیت خانه با موفقیت ذخیره شد
@ -2118,7 +2133,7 @@ fa:
not_a_friend: '%{name} یکی از دوستان شما نیست.' not_a_friend: '%{name} یکی از دوستان شما نیست.'
filter: filter:
not_an_administrator: برای انجام آن عملیات نیاز هست که سرپرست باشید not_an_administrator: برای انجام آن عملیات نیاز هست که سرپرست باشید
list: index:
title: کاربران title: کاربران
heading: کاربران heading: کاربران
showing: showing:
@ -2178,103 +2193,102 @@ fa:
و نقش اطمینان حاصل نمایید. و نقش اطمینان حاصل نمایید.
user_blocks: user_blocks:
model: model:
non_moderator_update: برای بروزرسانی یا ایجاد بلوک باید یک مدیر بود. non_moderator_update: برای به‌روزرسانی یا ایجاد مسدودی باید مدیر بود.
non_moderator_revoke: برای لغو یک بلوک باید مدیر بود. non_moderator_revoke: برای لغو یک مسدودی باید مدیر بود.
not_found: not_found:
sorry: پوزش، بلوک کاربر با شناسه %{id} یافت نمی شود. sorry: پوزش، مسدودی کاربر با شناسه %{id} یافت نمی‌شود.
back: بازگشت به فهرست back: بازگشت به فهرست
new: new:
title: ایجاد بلوک در %{name} title: در حال مسدودکردن %{name}
heading: ایجاد بلوک در %{name} heading: مسدودکردن %{name}
reason: دلیل اینکه چرا %{name} بلوک شده است. لطفاً آرام باشید و تا جایی که ممکن reason: |-
است معقول و منطقی باشید، تا جایی که میتوانید دربارهٔ وضعیت اطلاع دهید، این دلیل مسدودشدن کاربری %{name}. لطفاً خونسرد و منطقی باشید و هرچه می‌توانید به‌شکل جزئی‌تر اوضاع را شرح دهید و همچنین به یاد داشته باشید که پیام شما به‌طور عمومی قابل مشاهده است.
را به خاطر داشته باشید که این پیام به‌صورت عمومی پدیدار است. به یاد داشته در نظر داشته باشید که همهٔ کاربران اصطلاحات تخصصی انجمن را نمی‌فهمند، لطفاً سعی کنید واژه‌هایی که استفاده می‌کنید غیرتخصصی باشد.
باشید همهٔ کاربران اصطلاحات خاص انجمن را نمی‌فهمند، پس لطفاً سعی کنید از شرایط period: مدت‌زمان مسدودی کاربر از API (شروع از حالا).
تازه‌واردان استفاده کنید. submit: ایجاد مسدودی
period: چه مدت، الان شروع شود، کاربر از API بلوک می‌شود برای.
submit: ایجاد بلوک
tried_contacting: من با کاربر تماس گرفته و درخواست کردم توقف کند. tried_contacting: من با کاربر تماس گرفته و درخواست کردم توقف کند.
tried_waiting: من مقدار مناسبی زمان را به کاربر دادم تا به این ارتباط پاسخ دهد. tried_waiting: من مقدار مناسبی زمان را به کاربر دادم تا به این ارتباط پاسخ دهد.
needs_view: کاربر قبل از پاک شدن این بلوک نیاز به وارد شدن دارد needs_view: برای پاک‌شدن این مسدودی کاربر باید وارد حسابش شود.
back: مشاهده تمام بلوک ها back: دیدن تمام مسدودی‌ها
edit: edit:
title: ویرایش بلوک در %{name} title: ویرایش مسدودی کاربر %{name}
heading: ویرایش بلوک در %{name} heading: ویرایش مسدودی %{name}
reason: دلیل اینکه چرا %{name} بلوک شده است. لطفاً آرام باشید و تا جایی که ممکن reason: دلیل مسدودشدن کاربری %{name}. لطفاً خونسرد و منطقی باشید و هرچه می‌توانید
است معقول و منطقی باشید، تا جایی که می‌توانید دربارهٔ وضعیت اطلاع دهید. به به‌شکل جزئی‌تر اوضاع را شرح دهید. در نظر داشته باشید که همهٔ کاربران اصطلاحات
یاد داشته باشید همهٔ کاربران اصطلاحات خاص انجمن را نمی‌فهمند، پس لطفاً سعی تخصصی انجمن را نمی‌فهمند، لطفاً سعی کنید واژه‌هایی که استفاده می‌کنید غیرتخصصی
کنید از شرایط تازه‌واردان استفاده کنید. باشد.
period: چه مدت، الان شروع شود، کاربر از API بلوک می‌شود برای. period: مدت‌زمان مسدودی کاربر از API (شروع از حالا).
submit: به روز رسانی بلوک submit: به‌روزرسانی مسدودی
show: مشاهده این بلوک show: مشاهده این مسدودی
back: مشاهده تمام بلوک ها back: دیدن تمام مسدودی‌ها
needs_view: چرا قبل از پاک کردن این بلوک کاربر نیاز به وارد شدن دارد؟ needs_view: آیا قبل از پاک‌شدن این مسدودی، کاربر باید وارد حساب کاربری شود؟
filter: filter:
block_expired: بلوک قبلا منقضی شده و قابل ویرایش نیست. block_expired: مسدودی قبلا منقضی شده و قابل ویرایش نیست.
block_period: دوره ی بلوک کردن باید یکی از مقدار های قابل انتخاب در لیست بازشو block_period: دوره مسدودی باید یکی از مقدارهای قابل انتخاب در لیست بازشو باشد.
باشد.
create: create:
try_contacting: لطفاً قبل از بلوک کردن با کاربر تماس بگیرید و به آنها زمان مناسب try_contacting: لطفاً قبل از مسدودکردن کاربر با وی تماس بگیرید و به او زمان
دهید تا پاسخ دهند. بدهید تا پاسخگو باشد.
try_waiting: لطفاً به کاربر زمان کافی دهید تا قبل از بسته‌شدن بتواند پاسخگو try_waiting: لطفاً پیش از مسدودکردن کاربر به او زمان کافی بدهید تا بتواند پاسخگو
باشد. باشد.
flash: یک بلوک روی کاربر %{name} ایجاد شد. flash: یک مسدودی روی کاربری %{name} ایجاد شد.
update: update:
only_creator_can_edit: فقط مدیری که این بلوک را ایجاد کرده میتواند آنرا ویرایش only_creator_can_edit: فقط مدیری که این مسدودی را ایجاد کرده می‌تواند آنرا ویرایش
کند. کند.
success: بلوک بروزرسانی شد. success: مسدودی به‌روزرسانی شد.
index: index:
title: بلوک های کاربر title: مسدودی‌های کاربر
heading: لیست بلوک های کاربر heading: لیست مسدودی‌های کاربری
empty: هنوز بلوکی ساخته نشده. empty: هنوز مسدودیتی ساخته نشده.
revoke: revoke:
title: لغو بلوک در %{block_on} title: لغو مسدودی از %{block_on}
heading: لغو بلوک در %{block_on} توسط %{block_by} heading: لغو مسدودی از %{block_on}، مسدودشده توسط %{block_by}
time_future: این بلوک در %{time} پایان می یابد. time_future: این مسدودی در %{time} پایان می یابد.
past: این بلوک %{time} پایان یافته و اکنون قابل لغو کردن نیست. past: این مسدودی %{time} پیش پایان یافته و اکنون قابل لغوکردن نیست.
confirm: مطمئنید میخواهید این بلوک را لغو کنید؟ confirm: مطمئنید می‌خواهید این مسدودی را لغو کنید؟
revoke: باطل کردن! revoke: باطل شود!
flash: این بلوک باطل شد. flash: این مسدودی لغو شد.
period: period:
one: 1 ساعت one: 1 ساعت
other: '%{count} ساعت' other: '%{count} ساعت'
helper: helper:
time_future: در %{time} پایان می پذیرد. time_future: در %{time} پایان می پذیرد.
until_login: فعال تا وقتی کاربر وارد شود. until_login: فعال تا وقتی کاربر وارد شود.
time_past: به پایان رسیده %{time} قبل. time_future_and_until_login: تا %{time} دیگر و پس از ورود به حساب کاربری پایان
می‌یابد.
time_past: '%{time} پیش به پایان رسید.'
blocks_on: blocks_on:
title: بلوک ها در %{name} title: مسدودی‌های کاربری %{name}
heading: فهرست بلوک ها در %{name} heading: فهرست مسدودی‌های %{name}
empty: '%{name} هنوز بلوک نشده.' empty: '%{name} تاکنون مسدود نبوده.'
blocks_by: blocks_by:
title: بلوک توسط %{name} title: مسدودشده‌ها توسط %{name}
heading: فهرست بلوک توسط %{name} heading: فهرست مسدودشده‌ها توسط %{name}
empty: '%{name} هنوز بلوکی ایجاد نکرده.' empty: '%{name} تاکنون مسدود نکرده.'
show: show:
title: '%{block_on} توسط %{block_by} بلوک شده' title: '%{block_on} توسط %{block_by} مسدود شده'
heading: '%{block_on} توسط %{block_by} بلوک شده' heading: '%{block_on} توسط %{block_by} مسدود شده'
time_future: در %{time} پایان می پذیرد time_future: در %{time} پایان می پذیرد
time_past: به پایان رسیده %{time} قبل time_past: '%{time} پیش به پایان رسید'
created: ایجاد شده created: ایجاد شده
ago: '%{time} پیش' ago: '%{time} پیش'
status: وضعیت status: وضعیت
show: نمایش show: نمایش
edit: ویرایش edit: ویرایش
revoke: باطل کردن! revoke: باطل شود!
confirm: آیا مطمئن هستید؟ confirm: آیا مطمئن هستید؟
reason: 'دلیل بلوک:' reason: 'دلیل مسدودی:'
back: مشاهده تمام بلوک ها back: دیدن تمام مسدودی‌ها
revoker: 'باطل کننده:' revoker: 'باطل کننده:'
needs_view: کاربر قبل از پاک شدن این بلوک نیاز به وارد شدن دارد. needs_view: برای پاک‌شدن این مسدودی کاربر باید وارد حسابش شود.
block: block:
not_revoked: (باطل نشده) not_revoked: (باطل نشده)
show: نمایش show: نمایش
edit: ویرایش edit: ویرایش
revoke: باطل کردن! revoke: باطل شود!
blocks: blocks:
display_name: کاربر بلوک شده display_name: کاربر مسدودشده
creator_name: ایجاد کننده creator_name: ایجاد کننده
reason: دلیل بلوک reason: دلیل مسدودی
status: وضعیت status: وضعیت
revoker_name: باطل شده توسط revoker_name: باطل شده توسط
showing_page: صفحهٔ %{page} showing_page: صفحهٔ %{page}
@ -2315,7 +2329,7 @@ fa:
javascripts: javascripts:
close: بستن close: بستن
share: share:
title: به‌اشتراک‌گذاری title: هم‌رسانی
cancel: لغو cancel: لغو
image: تصویر image: تصویر
link: پیوند یا اچ‌تی‌ام‌ال link: پیوند یا اچ‌تی‌ام‌ال
@ -2368,7 +2382,7 @@ fa:
createnote_disabled_tooltip: برای افزودن یادداشت به نقشه بزرگنمایی کنید createnote_disabled_tooltip: برای افزودن یادداشت به نقشه بزرگنمایی کنید
map_notes_zoom_in_tooltip: برای دیدن یادداشت‌های نقشه بزرگنمایی کنید map_notes_zoom_in_tooltip: برای دیدن یادداشت‌های نقشه بزرگنمایی کنید
map_data_zoom_in_tooltip: برای دیدن داده‌های نقشه بزرگنمایی کنید map_data_zoom_in_tooltip: برای دیدن داده‌های نقشه بزرگنمایی کنید
queryfeature_tooltip: کوئری ویژگی‌ها queryfeature_tooltip: پرس‌وجوی ویژگی‌ها
queryfeature_disabled_tooltip: برای پرس‌وجوی ویژگی‌ها بزرگنمایی کنید queryfeature_disabled_tooltip: برای پرس‌وجوی ویژگی‌ها بزرگنمایی کنید
changesets: changesets:
show: show:
@ -2474,33 +2488,33 @@ fa:
redactions: redactions:
edit: edit:
description: شرح description: شرح
heading: ویرایش کردن ویرایش heading: بازویرایی ویرایش
submit: ذخیره ویرایش submit: ذخیره ویرایش
title: ویرایش کردن ویرایش title: بازویرایی ویرایش
index: index:
empty: ویرایشی برای نشان دادن نیست. empty: ویرایشی برای نشان دادن نیست.
heading: فهرست ویرایش ها heading: سیاههٔ بازویراسته‌ها(redactions)
title: فهرست ویرایش ها title: فهرست ویرایش‌های حذف‌شده
new: new:
description: شرح description: شرح
heading: اطلاعات را برای ویرایش جدید وارد کنید heading: اطلاعات را برای بازویرایی جدید وارد کنید
submit: ایجاد ویرایش submit: ایجاد ویرایش
title: ایجاد ویرایش جدید title: ایجاد بازویرایی جدید
show: show:
description: 'شرح:' description: 'شرح:'
heading: نمایش ویرایش %{title} heading: نمایش بازویرایستهٔ %{title}
title: نمایش دادن ویرایش title: نمایش دادن ویرایش
user: 'ایجاد کننده:' user: 'ایجاد کننده:'
edit: ویرایش این ویرایش edit: ویرایش این بازویراسته
destroy: حذف این ویرایش destroy: حذف این ویرایش
confirm: آیا مطمئن هستید؟ confirm: آیا مطمئن هستید؟
create: create:
flash: ویرایش پاک شد. flash: بازویراسته ایجاد شد.
update: update:
flash: تغییرات ذخیره شد. flash: تغییرات ذخیره شد.
destroy: destroy:
not_empty: ویرایش خالی نیست. لطفاً همهٔ نسخه‌های متعلق به این ویرایش را در آورید not_empty: بازویرایی خالی نیست. لطفاً پیش از نابود کردنش، همهٔ نسخه‌های متعلق
قبل از نابود کردنش. به این بازویرایی را از بازویراستگی درآورید.
flash: ویرایش از بین رفت. flash: ویرایش از بین رفت.
error: در حال از بین بردن این ویرایش خطایی رخ داد. error: هنگام از بین بردن این بازویراسته خطایی رخ داد.
... ...

View file

@ -269,7 +269,7 @@ fi:
user: Käyttäjä user: Käyttäjä
comment: Kommentti comment: Kommentti
area: Alue area: Alue
list: index:
title: Muutoskokoelmat title: Muutoskokoelmat
title_user: Käyttäjän %{user} muutoskokoelmat title_user: Käyttäjän %{user} muutoskokoelmat
title_friend: Kaverieni muutoskokoelmat title_friend: Kaverieni muutoskokoelmat
@ -295,7 +295,7 @@ fi:
new: new:
title: Uusi päiväkirjamerkintä title: Uusi päiväkirjamerkintä
publish_button: Julkaise publish_button: Julkaise
list: index:
title: Käyttäjien päiväkirjamerkinnät title: Käyttäjien päiväkirjamerkinnät
title_friends: Kaverien päiväkirjat title_friends: Kaverien päiväkirjat
title_nearby: Lähellä olevien käyttäjien päiväkirjat title_nearby: Lähellä olevien käyttäjien päiväkirjat
@ -318,7 +318,7 @@ fi:
use_map_link: valitse kartalta use_map_link: valitse kartalta
save_button: Tallenna save_button: Tallenna
marker_text: Päiväkirjamerkinnän sijainti marker_text: Päiväkirjamerkinnän sijainti
view: show:
title: Käyttäjän %{user} päiväkirja | %{title} title: Käyttäjän %{user} päiväkirja | %{title}
user_title: Käyttäjän %{user} päiväkirja user_title: Käyttäjän %{user} päiväkirja
leave_a_comment: Kommentoi tätä kirjoitusta leave_a_comment: Kommentoi tätä kirjoitusta
@ -1200,11 +1200,12 @@ fi:
commented_note: '%{commenter} on kommentoinut yhtä kommentoimaasi merkintää. commented_note: '%{commenter} on kommentoinut yhtä kommentoimaasi merkintää.
Merkintä on lähellä paikkaa %{place}.' Merkintä on lähellä paikkaa %{place}.'
closed: closed:
subject_own: '[OpenStreetMap] %{commenter} on selvittänyt yhden merkintäsi' subject_own: '[OpenStreetMap] %{commenter} on ratkaissut karttailmoituksesi'
subject_other: '[OpenStreetMap] %{commenter} on selvittänyt sinua kiinnostavan subject_other: '[OpenStreetMap] %{commenter} on ratkaissut sinua kiinnostavan
merkinnän' karttailmoituksen'
your_note: '%{commenter} on selvittänyt yhden merkintäsi lähellä paikkaa %{place}' your_note: '%{commenter} on ratkaissut lähettämäsi karttailmoituksen lähellä
commented_note: '%{commenter} on selvittänyt merkinnän, jota olet kommentoinut. paikkaa %{place}.'
commented_note: '%{commenter} on ratkaissut karttailmoituksen, jota olet kommentoinut.
Merkintä on lähellä paikkaa %{place}.' Merkintä on lähellä paikkaa %{place}.'
reopened: reopened:
subject_own: '[OpenStreetMap] %{commenter} on avannut karttamerkintäsi uudelleen' subject_own: '[OpenStreetMap] %{commenter} on avannut karttamerkintäsi uudelleen'
@ -1215,7 +1216,7 @@ fi:
commented_note: '%{commenter} on aktivoinut karttailmoituksen uudelleen. Tämä commented_note: '%{commenter} on aktivoinut karttailmoituksen uudelleen. Tämä
viesti lähetetään siksi, että olet kommentoinut tätä karttailmoitusta, joka viesti lähetetään siksi, että olet kommentoinut tätä karttailmoitusta, joka
on lähellä paikkaa %{place}.' 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: changeset_comment_notification:
hi: Hei %{to_user}, hi: Hei %{to_user},
greeting: Hei, greeting: Hei,
@ -2086,7 +2087,7 @@ fi:
heading: Käyttäjää %{user} ei ole olemassa heading: Käyttäjää %{user} ei ole olemassa
body: Käyttäjää %{user} ei löytynyt. Tarkista oikeikirjoitus. body: Käyttäjää %{user} ei löytynyt. Tarkista oikeikirjoitus.
deleted: poistettu deleted: poistettu
view: show:
my diary: Oma päiväkirja my diary: Oma päiväkirja
new diary entry: uusi päiväkirjamerkintä new diary entry: uusi päiväkirjamerkintä
my edits: Omat muokkaukset my edits: Omat muokkaukset
@ -2261,7 +2262,7 @@ fi:
not_a_friend: '%{name} ei ole enää kaverisi.' not_a_friend: '%{name} ei ole enää kaverisi.'
filter: filter:
not_an_administrator: Tähän toimintoon tarvitaan ylläpitäjän oikeudet. not_an_administrator: Tähän toimintoon tarvitaan ylläpitäjän oikeudet.
list: index:
title: Käyttäjät title: Käyttäjät
heading: Käyttäjät heading: Käyttäjät
showing: showing:

View file

@ -294,7 +294,7 @@ fr:
user: Utilisateur user: Utilisateur
comment: Commentaire comment: Commentaire
area: Zone area: Zone
list: index:
title: Groupes de modifications title: Groupes de modifications
title_user: Groupes de modifications par %{user} title_user: Groupes de modifications par %{user}
title_friend: Groupes de modifications par mes amis title_friend: Groupes de modifications par mes amis
@ -322,7 +322,7 @@ fr:
new: new:
title: Nouvelle entrée du journal title: Nouvelle entrée du journal
publish_button: Publier publish_button: Publier
list: index:
title: Journaux des utilisateurs title: Journaux des utilisateurs
title_friends: Journaux des amis title_friends: Journaux des amis
title_nearby: Journaux des utilisateurs à proximité title_nearby: Journaux des utilisateurs à proximité
@ -345,7 +345,7 @@ fr:
use_map_link: utiliser la carte use_map_link: utiliser la carte
save_button: Enregistrer save_button: Enregistrer
marker_text: Emplacement de lentrée du journal marker_text: Emplacement de lentrée du journal
view: show:
title: Journal de %{user} | %{title} title: Journal de %{user} | %{title}
user_title: Journal de %{user} user_title: Journal de %{user}
leave_a_comment: Laisser un commentaire leave_a_comment: Laisser un commentaire
@ -462,7 +462,7 @@ fr:
courthouse: Palais de justice courthouse: Palais de justice
crematorium: Crématorium crematorium: Crématorium
dentist: Dentiste dentist: Dentiste
doctors: Docteurs doctors: Cabinet médical
drinking_water: Eau potable drinking_water: Eau potable
driving_school: École de conduite driving_school: École de conduite
embassy: Ambassade embassy: Ambassade
@ -2172,7 +2172,7 @@ fr:
body: Désolé, il ny a pas dutilisateur avec le nom %{user}. Veuillez vérifier body: Désolé, il ny a pas dutilisateur avec le nom %{user}. Veuillez vérifier
lorthographe, ou le lien que vous avez cliqué nest pas valide. lorthographe, ou le lien que vous avez cliqué nest pas valide.
deleted: supprimé deleted: supprimé
view: show:
my diary: Mon journal my diary: Mon journal
new diary entry: nouvelle entrée dans le journal new diary entry: nouvelle entrée dans le journal
my edits: Mes modifications my edits: Mes modifications
@ -2360,11 +2360,12 @@ fr:
not_a_friend: '%{name} nest pas parmi vos amis.' not_a_friend: '%{name} nest pas parmi vos amis.'
filter: filter:
not_an_administrator: Vous devez être administrateur pour effectuer cette action. not_an_administrator: Vous devez être administrateur pour effectuer cette action.
list: index:
title: Utilisateurs title: Utilisateurs
heading: Utilisateurs heading: Utilisateurs
showing: 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: '%{name} créé depuis %{ip_address} le %{date}'
summary_no_ip: '%{name} créé le %{date}' summary_no_ip: '%{name} créé le %{date}'
confirm: Confirmer les utilisateurs sélectionnés confirm: Confirmer les utilisateurs sélectionnés

View file

@ -223,7 +223,7 @@ fur:
user: Utent user: Utent
comment: Coment comment: Coment
area: Aree area: Aree
list: index:
title: Grups di cambiaments title: Grups di cambiaments
title_user: Grups di cambiaments di %{user} title_user: Grups di cambiaments di %{user}
title_friend: Grups di cambiaments dai tiei amîs title_friend: Grups di cambiaments dai tiei amîs
@ -248,7 +248,7 @@ fur:
diary_entry: diary_entry:
new: new:
title: Gnove vôs dal diari title: Gnove vôs dal diari
list: index:
title: Diaris dai utents title: Diaris dai utents
title_friends: Diaris dai amîs title_friends: Diaris dai amîs
title_nearby: Diaris dai utents dongje title_nearby: Diaris dai utents dongje
@ -271,7 +271,7 @@ fur:
use_map_link: dopre mape use_map_link: dopre mape
save_button: Salve save_button: Salve
marker_text: Lûc de vôs dal diari marker_text: Lûc de vôs dal diari
view: show:
title: Diari di %{user} | %{title} title: Diari di %{user} | %{title}
user_title: Diari di %{user} user_title: Diari di %{user}
leave_a_comment: Lasse un coment leave_a_comment: Lasse un coment
@ -1136,7 +1136,7 @@ fur:
heading: L'utent %{user} nol esist heading: L'utent %{user} nol esist
body: Nol esist un utent di non %{user}. Controle par plasê la grafie o che body: Nol esist un utent di non %{user}. Controle par plasê la grafie o che
tu vedis seguît il leam just. tu vedis seguît il leam just.
view: show:
my diary: Il gno diari my diary: Il gno diari
new diary entry: gnove vôs dal diari new diary entry: gnove vôs dal diari
my edits: I miei cambiaments my edits: I miei cambiaments
@ -1287,7 +1287,7 @@ fur:
button: Gjave dai amîs button: Gjave dai amîs
success: '%{name} al è stât gjavât dai tiei amîs.' success: '%{name} al è stât gjavât dai tiei amîs.'
not_a_friend: '%{name} nol è un dai tiei amîs.' not_a_friend: '%{name} nol è un dai tiei amîs.'
list: index:
title: Utents title: Utents
heading: Utents heading: Utents
showing: showing:

View file

@ -228,7 +228,7 @@ ga:
user: Úsáideoir user: Úsáideoir
comment: Nóta tráchta comment: Nóta tráchta
area: Limistéar area: Limistéar
list: index:
title: Tacair athruithe title: Tacair athruithe
title_user: Tacair athruithe de chuid %{user} title_user: Tacair athruithe de chuid %{user}
title_friend: Tacair athruithe de chuid mo chairde title_friend: Tacair athruithe de chuid mo chairde
@ -254,7 +254,7 @@ ga:
new: new:
title: Iontráil Nua Dialainne title: Iontráil Nua Dialainne
publish_button: Foilsigh publish_button: Foilsigh
list: index:
title: Dialanna úsáideoirí title: Dialanna úsáideoirí
title_friends: Dialanna cairde title_friends: Dialanna cairde
title_nearby: Dialann de chuid Úsáideoirí In Aice Láimhe 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 use_map_link: an léarscáil a úsáid
save_button: Sábháil save_button: Sábháil
marker_text: Suíomh na hiontrála dialainne marker_text: Suíomh na hiontrála dialainne
view: show:
title: Dialann %{user} | %{title} title: Dialann %{user} | %{title}
user_title: Dialann %{user} user_title: Dialann %{user}
leave_a_comment: Fág nóta tráchta leave_a_comment: Fág nóta tráchta
@ -1866,7 +1866,7 @@ ga:
no_such_user: no_such_user:
title: Níl an t-úsáideoir sin ann title: Níl an t-úsáideoir sin ann
deleted: scriosta deleted: scriosta
view: show:
my diary: Mo Dhialann my diary: Mo Dhialann
new diary entry: iontráil nua dialainne new diary entry: iontráil nua dialainne
my edits: Mo Athruithe my edits: Mo Athruithe
@ -1971,7 +1971,7 @@ ga:
button: Cuir leis mar chara button: Cuir leis mar chara
success: Is cara leat %{name} anois! success: Is cara leat %{name} anois!
failed: Ár leithscéal, níorbh fhéidir %{name} a chur leis mar chara. failed: Ár leithscéal, níorbh fhéidir %{name} a chur leis mar chara.
list: index:
title: Úsáideoirí title: Úsáideoirí
heading: Úsáideoirí heading: Úsáideoirí
suspended: suspended:

View file

@ -244,7 +244,7 @@ gd:
user: Cleachdaiche user: Cleachdaiche
comment: Beachd comment: Beachd
area: Raon area: Raon
list: index:
title: Seataichean atharraichean title: Seataichean atharraichean
title_user: Seataichean atharraichean le %{user} title_user: Seataichean atharraichean le %{user}
title_friend: Seataichean atharraichean le do charaidean title_friend: Seataichean atharraichean le do charaidean
@ -272,7 +272,7 @@ gd:
new: new:
title: Clàr ùr an leabhair-latha title: Clàr ùr an leabhair-latha
publish_button: Foillsich publish_button: Foillsich
list: index:
title: Leabhraichean-latha title: Leabhraichean-latha
title_friends: Leabhraichean-latha do charaidean title_friends: Leabhraichean-latha do charaidean
title_nearby: Leabhraichean-latha am fagas title_nearby: Leabhraichean-latha am fagas
@ -295,7 +295,7 @@ gd:
use_map_link: cleachd mapa use_map_link: cleachd mapa
save_button: Sàbhail save_button: Sàbhail
marker_text: Àite clàr an leabhair-latha marker_text: Àite clàr an leabhair-latha
view: show:
title: An leabhar-latha aig %{user} | %{title} title: An leabhar-latha aig %{user} | %{title}
user_title: An leabhar-latha aig %{user} user_title: An leabhar-latha aig %{user}
leave_a_comment: Thoir do bheachd 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 an litreachadh no 's dòcha nach eil an ceangal air an do rinn thu briogadh
mar bu chòir. mar bu chòir.
deleted: air a sguabadh às deleted: air a sguabadh às
view: show:
my diary: An leabhar-latha agam my diary: An leabhar-latha agam
new diary entry: clàr leabhair-latha ùr new diary entry: clàr leabhair-latha ùr
my edits: Na dheasaich mi my edits: Na dheasaich mi
@ -2102,7 +2102,7 @@ gd:
not_a_friend: Chan eil càirdeas eadar thu fhèin agus %{name}. not_a_friend: Chan eil càirdeas eadar thu fhèin agus %{name}.
filter: filter:
not_an_administrator: Feumaidh tu bhith 'nad rianaire gus an gnìomh seo a dhèanamh. not_an_administrator: Feumaidh tu bhith 'nad rianaire gus an gnìomh seo a dhèanamh.
list: index:
title: Cleachdaichean title: Cleachdaichean
heading: Cleachdaichean heading: Cleachdaichean
showing: showing:

File diff suppressed because it is too large Load diff

View file

@ -251,7 +251,7 @@ he:
user: משתמש user: משתמש
comment: הערה comment: הערה
area: שטח area: שטח
list: index:
title: ערכות שינויים title: ערכות שינויים
title_user: ערכות שינויים של %{user} title_user: ערכות שינויים של %{user}
title_friend: ערכות שינויים של החברים שלי title_friend: ערכות שינויים של החברים שלי
@ -276,7 +276,7 @@ he:
new: new:
title: רשומת יומן חדשה title: רשומת יומן חדשה
publish_button: פרסום publish_button: פרסום
list: index:
title: יומנים של המשתמש title: יומנים של המשתמש
title_friends: יומנים של חברים title_friends: יומנים של חברים
title_nearby: יומנים של משתמשים בסביבה title_nearby: יומנים של משתמשים בסביבה
@ -299,7 +299,7 @@ he:
use_map_link: להשתמש במפה use_map_link: להשתמש במפה
save_button: שמירה save_button: שמירה
marker_text: מיקום רשומת היומן marker_text: מיקום רשומת היומן
view: show:
title: היומן של %{user}&rlm; | %{title} title: היומן של %{user}&rlm; | %{title}
user_title: היומן של %{user} user_title: היומן של %{user}
leave_a_comment: הוספת תגובה leave_a_comment: הוספת תגובה
@ -1937,7 +1937,7 @@ he:
heading: המשתמש %{user} אינו קיים heading: המשתמש %{user} אינו קיים
body: סליחה, אין חשבון בשם %{user}. אולי האיות לא נכון ואולי לחצת על קישור שגוי. body: סליחה, אין חשבון בשם %{user}. אולי האיות לא נכון ואולי לחצת על קישור שגוי.
deleted: נמחק deleted: נמחק
view: show:
my diary: היומן שלי my diary: היומן שלי
new diary entry: רשומה חדשה ביומן new diary entry: רשומה חדשה ביומן
my edits: העריכות שלי my edits: העריכות שלי
@ -2110,7 +2110,7 @@ he:
not_a_friend: '%{name} לא אחד מהחברים שלך.' not_a_friend: '%{name} לא אחד מהחברים שלך.'
filter: filter:
not_an_administrator: צריך להיות מנהל כדי לבצע את הפעולה הזאת. not_an_administrator: צריך להיות מנהל כדי לבצע את הפעולה הזאת.
list: index:
title: משתמשים title: משתמשים
heading: משתמשים heading: משתמשים
showing: showing:

View file

@ -238,7 +238,7 @@ hr:
user: Korisnik user: Korisnik
comment: Komentar comment: Komentar
area: Područje area: Područje
list: index:
title: Setovi promjena title: Setovi promjena
title_user: Setovi promjena od %{user} title_user: Setovi promjena od %{user}
title_friend: Paketi uređivanja tvojih prijatelja title_friend: Paketi uređivanja tvojih prijatelja
@ -264,7 +264,7 @@ hr:
new: new:
title: Novi zapis u dnevnik title: Novi zapis u dnevnik
publish_button: Objavi publish_button: Objavi
list: index:
title: Dnevnici korisnika title: Dnevnici korisnika
title_friends: Dnevnici prijatelja title_friends: Dnevnici prijatelja
title_nearby: Dnevnici obližnjih članova title_nearby: Dnevnici obližnjih članova
@ -287,7 +287,7 @@ hr:
use_map_link: koristi kartu use_map_link: koristi kartu
save_button: Spremi save_button: Spremi
marker_text: Lokacija unosa u dnevnik marker_text: Lokacija unosa u dnevnik
view: show:
title: Blog korisnika %{user} | %{title} title: Blog korisnika %{user} | %{title}
user_title: '%{user}ov dnevnik' user_title: '%{user}ov dnevnik'
leave_a_comment: Ostavi komentar leave_a_comment: Ostavi komentar
@ -1623,7 +1623,7 @@ hr:
body: Žao mi je, ne postoji korisnik s imenom %{user}. Molim provjerite ukucano body: Žao mi je, ne postoji korisnik s imenom %{user}. Molim provjerite ukucano
ili je link na koji ste kliknuli neispravan. ili je link na koji ste kliknuli neispravan.
deleted: obrisano deleted: obrisano
view: show:
my diary: Moj dnevnik my diary: Moj dnevnik
new diary entry: novi unos u dnevnik new diary entry: novi unos u dnevnik
my edits: Moje promjene my edits: Moje promjene
@ -1782,7 +1782,7 @@ hr:
not_a_friend: '%{name} nije tvoj prijatelj.' not_a_friend: '%{name} nije tvoj prijatelj.'
filter: filter:
not_an_administrator: Morate biti administrator za izvođenje ovih akcija. not_an_administrator: Morate biti administrator za izvođenje ovih akcija.
list: index:
title: Korisnici title: Korisnici
heading: Korisnici heading: Korisnici
showing: showing:

Some files were not shown because too many files have changed in this diff Show more