Merged 16488:16743 from trunk.

This commit is contained in:
Matt Amos 2009-07-31 10:42:06 +00:00
commit 05e2120273
82 changed files with 550 additions and 1761 deletions

View file

@ -76,7 +76,7 @@ class AmfController < ApplicationController
logger.info("Executing AMF #{message}(#{args.join(',')}):#{index}") logger.info("Executing AMF #{message}(#{args.join(',')}):#{index}")
case message case message
when 'getpresets'; results[index]=AMF.putdata(index,getpresets(args[0])) when 'getpresets'; results[index]=AMF.putdata(index,getpresets(*args))
when 'whichways'; results[index]=AMF.putdata(index,whichways(*args)) when 'whichways'; results[index]=AMF.putdata(index,whichways(*args))
when 'whichways_deleted'; results[index]=AMF.putdata(index,whichways_deleted(*args)) when 'whichways_deleted'; results[index]=AMF.putdata(index,whichways_deleted(*args))
when 'getway'; results[index]=AMF.putdata(index,getway(args[0].to_i)) when 'getway'; results[index]=AMF.putdata(index,getway(args[0].to_i))
@ -213,13 +213,21 @@ class AmfController < ApplicationController
# Return presets (default tags, localisation etc.): # Return presets (default tags, localisation etc.):
# uses POTLATCH_PRESETS global, set up in OSM::Potlatch. # uses POTLATCH_PRESETS global, set up in OSM::Potlatch.
def getpresets(lang) #:doc: def getpresets(usertoken,lang) #:doc:
lang.gsub!(/[^\w\-]/,'') user = getuser(usertoken)
if user && !user.languages.empty?
request.user_preferred_languages = user.languages
end
lang = request.compatible_language_from(getlocales)
begin begin
# if not, try the browser language
localised = YAML::load(File.open("#{RAILS_ROOT}/config/potlatch/localised/#{lang}/localised.yaml")) localised = YAML::load(File.open("#{RAILS_ROOT}/config/potlatch/localised/#{lang}/localised.yaml"))
rescue rescue
localised = "" # guess we'll just have to use the hardcoded English text instead # fall back to hardcoded English text
localised = ""
end end
begin begin
@ -518,6 +526,8 @@ class AmfController < ApplicationController
amf_handle_error("'putrelation' #{relid}") do amf_handle_error("'putrelation' #{relid}") do
user = getuser(usertoken) user = getuser(usertoken)
if !user then return -1,"You are not logged in, so the relation could not be saved." end if !user then return -1,"You are not logged in, so the relation could not be saved." end
if !tags_ok(tags) then return -1,"One of the tags is invalid. Please pester Adobe to fix Flash on Linux." end
tags = strip_non_xml_chars tags
relid = relid.to_i relid = relid.to_i
visible = (visible.to_i != 0) visible = (visible.to_i != 0)
@ -604,6 +614,8 @@ class AmfController < ApplicationController
user = getuser(usertoken) user = getuser(usertoken)
if !user then return -1,"You are not logged in, so the way could not be saved." end if !user then return -1,"You are not logged in, so the way could not be saved." end
if pointlist.length < 2 then return -2,"Server error - way is only #{points.length} points long." end if pointlist.length < 2 then return -2,"Server error - way is only #{points.length} points long." end
if !tags_ok(attributes) then return -1,"One of the tags is invalid. Please pester Adobe to fix Flash on Linux." end
attributes = strip_non_xml_chars attributes
originalway = originalway.to_i originalway = originalway.to_i
pointlist.collect! {|a| a.to_i } pointlist.collect! {|a| a.to_i }
@ -628,6 +640,11 @@ class AmfController < ApplicationController
node.lat = lat node.lat = lat
node.lon = lon node.lon = lon
node.tags = a[4] node.tags = a[4]
# fixup node tags in a way as well
if !tags_ok(node.tags) then return -1,"One of the tags is invalid. Please pester Adobe to fix Flash on Linux." end
node.tags = strip_non_xml_chars node.tags
node.tags.delete('created_by') node.tags.delete('created_by')
node.version = version node.version = version
if id <= 0 if id <= 0
@ -700,6 +717,8 @@ class AmfController < ApplicationController
amf_handle_error("'putpoi' #{id}") do amf_handle_error("'putpoi' #{id}") do
user = getuser(usertoken) user = getuser(usertoken)
if !user then return -1,"You are not logged in, so the point could not be saved." end if !user then return -1,"You are not logged in, so the point could not be saved." end
if !tags_ok(tags) then return -1,"One of the tags is invalid. Please pester Adobe to fix Flash on Linux." end
tags = strip_non_xml_chars tags
id = id.to_i id = id.to_i
visible = (visible.to_i == 1) visible = (visible.to_i == 1)
@ -851,6 +870,34 @@ class AmfController < ApplicationController
} }
end end
def getlocales
Dir.glob("#{RAILS_ROOT}/config/potlatch/localised/*").collect { |f| File.basename(f) }
end
##
# check that all key-value pairs are valid UTF-8.
def tags_ok(tags)
tags.each do |k, v|
return false unless UTF8.valid? k
return false unless UTF8.valid? v
end
return true
end
##
# strip characters which are invalid in XML documents from the strings
# in the +tags+ hash.
def strip_non_xml_chars(tags)
new_tags = Hash.new
unless tags.nil?
tags.each do |k, v|
new_k = k.delete "\000-\037", "^\011\012\015"
new_v = v.delete "\000-\037", "^\011\012\015"
new_tags[new_k] = new_v
end
end
return new_tags
end
# ==================================================================== # ====================================================================
# Alternative SQL queries for getway/whichways # Alternative SQL queries for getway/whichways

View file

@ -285,15 +285,25 @@ class ChangesetController < ApplicationController
bbox_link = "<a href='#{url_for(:controller => "site", :action => "index", :minlon => bbox.min_lon, :minlat => bbox.min_lat, :maxlon => bbox.max_lon, :maxlat => bbox.max_lat, :box => "yes")}'>#{bbox.to_s}</a>" bbox_link = "<a href='#{url_for(:controller => "site", :action => "index", :minlon => bbox.min_lon, :minlat => bbox.min_lat, :maxlon => bbox.max_lon, :maxlat => bbox.max_lat, :box => "yes")}'>#{bbox.to_s}</a>"
end end
@title = t 'changeset.list.title' if user
user_link = "<a href='#{url_for(:controller => "user", :action => "view", :display_name => user.display_name)}'>#{user.display_name}</a>"
end
if user and bbox if user and bbox
@description = t 'changeset.list.description_user_bbox', :user => user.display_name, :bbox => bbox_link @title = t 'changeset.list.title_user_bbox', :user => user.display_name, :bbox => bbox.to_s
@heading = t 'changeset.list.heading_user_bbox', :user => user.display_name, :bbox => bbox.to_s
@description = t 'changeset.list.description_user_bbox', :user => user_link, :bbox => bbox_link
elsif user elsif user
@description = t 'changeset.list.description_user', :user => user.display_name @title = t 'changeset.list.title_user', :user => user.display_name
@heading = t 'changeset.list.heading_user', :user => user.display_name
@description = t 'changeset.list.description_user', :user => user_link
elsif bbox elsif bbox
@title = t 'changeset.list.title_bbox', :bbox => bbox.to_s
@heading = t 'changeset.list.heading_bbox', :bbox => bbox.to_s
@description = t 'changeset.list.description_bbox', :bbox => bbox_link @description = t 'changeset.list.description_bbox', :bbox => bbox_link
else else
@title = t 'changeset.list.title'
@heading = t 'changeset.list.heading'
@description = t 'changeset.list.description' @description = t 'changeset.list.description'
end end

View file

@ -3,6 +3,7 @@ class GeocoderController < ApplicationController
require 'net/http' require 'net/http'
require 'rexml/document' require 'rexml/document'
before_filter :authorize_web
before_filter :set_locale before_filter :set_locale
def search def search

View file

@ -104,5 +104,26 @@ class MessageController < ApplicationController
@title = t'message.no_such_user.title' @title = t'message.no_such_user.title'
render :action => 'no_such_user', :status => :not_found render :action => 'no_such_user', :status => :not_found
end end
# Delete the message.
def delete
if params[:message_id]
id = params[:message_id]
message = Message.find_by_id(id)
message.from_user_visible = false if message.sender == @user
message.to_user_visible = false if message.recipient == @user
if message.save
flash[:notice] = t 'message.delete.deleted'
if params[:referer]
redirect_to params[:referer]
else
redirect_to :controller => 'message', :action => 'inbox', :display_name => @user.display_name
end
end
end
rescue ActiveRecord::RecordNotFound
@title = t'message.no_such_user.title'
render :action => 'no_such_user', :status => :not_found
end
end end

View file

@ -1,11 +1,11 @@
class User < ActiveRecord::Base class User < ActiveRecord::Base
require 'xml/libxml' require 'xml/libxml'
has_many :traces has_many :traces, :conditions => { :visible => true }
has_many :diary_entries, :order => 'created_at DESC' has_many :diary_entries, :order => 'created_at DESC'
has_many :messages, :foreign_key => :to_user_id, :order => 'sent_on DESC' has_many :messages, :foreign_key => :to_user_id, :conditions => { :to_user_visible => true }, :order => 'sent_on DESC'
has_many :new_messages, :class_name => "Message", :foreign_key => :to_user_id, :conditions => {:message_read => false}, :order => 'sent_on DESC' has_many :new_messages, :class_name => "Message", :foreign_key => :to_user_id, :conditions => { :message_read => false }, :order => 'sent_on DESC'
has_many :sent_messages, :class_name => "Message", :foreign_key => :from_user_id, :order => 'sent_on DESC' has_many :sent_messages, :class_name => "Message", :foreign_key => :from_user_id, :conditions => { :from_user_visible => true }, :order => 'sent_on DESC'
has_many :friends, :include => :befriendee, :conditions => ["users.visible = ?", true] has_many :friends, :include => :befriendee, :conditions => ["users.visible = ?", true]
has_many :tokens, :class_name => "UserToken" has_many :tokens, :class_name => "UserToken"
has_many :preferences, :class_name => "UserPreference" has_many :preferences, :class_name => "UserPreference"

View file

@ -234,7 +234,7 @@ class Way < ActiveRecord::Base
def preconditions_ok?(old_nodes = []) def preconditions_ok?(old_nodes = [])
return false if self.nds.empty? return false if self.nds.empty?
if self.nds.length > APP_CONFIG['max_number_of_way_nodes'] if self.nds.length > APP_CONFIG['max_number_of_way_nodes']
raise OSM::APITooManyWayNodesError.new(self.nds.length, APP_CONFIG['max_number_of_way_nodes']) raise OSM::APITooManyWayNodesError.new(self.id, self.nds.length, APP_CONFIG['max_number_of_way_nodes'])
end end
# check only the new nodes, for efficiency - old nodes having been checked last time and can't # check only the new nodes, for efficiency - old nodes having been checked last time and can't

View file

@ -1,19 +1,21 @@
<%= javascript_include_tag '/openlayers/OpenLayers.js' %> <%= javascript_include_tag '/openlayers/OpenLayers.js' %>
<%= javascript_include_tag '/openlayers/OpenStreetMap.js' %> <%= javascript_include_tag '/openlayers/OpenStreetMap.js' %>
<%= javascript_include_tag 'map.js' %> <%= javascript_include_tag 'map.js' %>
<td align="right"> <td>
<% if map.instance_of? Changeset or map.visible %> <div style="width: 250px; margin: auto; text-align: right"">
<div id="small_map" style="width:250px; height: 300px; border: solid 1px black"> <% if map.instance_of? Changeset or map.visible %>
</div> <div id="small_map" style="width:250px; height: 300px; border: solid 1px black">
<span id="loading"><%= t 'browse.map.loading' %></span> </div>
<a id="area_larger_map" href=""></a> <span id="loading"><%= t 'browse.map.loading' %></span>
<% unless map.instance_of? Changeset %> <a id="area_larger_map" href=""></a>
<br /> <% unless map.instance_of? Changeset %>
<a id="object_larger_map" href=""></a> <br />
<a id="object_larger_map" href=""></a>
<% end %>
<% else %>
<%= t 'browse.map.deleted' %>
<% end %> <% end %>
<% else %> </div>
<%= t 'browse.map.deleted' %>
<% end %>
</td> </td>
<% if map.instance_of? Changeset or map.visible %> <% if map.instance_of? Changeset or map.visible %>
<script type="text/javascript"> <script type="text/javascript">

View file

@ -1,40 +1,44 @@
<div style="float:right; text-align:center; width: 250px;"> <div style="float:right; text-align:center; width: 100%;">
<% if @next_by_user or @prev_by_user %> <% if @next_by_user or @prev_by_user %>
<% if @prev_by_user %> <span class="nowrap">
&lt; <% if @prev_by_user %>
<%= link_to @prev_by_user.id.to_s, &lt;
{ :id => @prev_by_user.id }, <%= link_to @prev_by_user.id.to_s,
{ :title => t('browse.changeset_navigation.user.prev_tooltip', :user => @prev_by_user.user.display_name) } %> { :id => @prev_by_user.id },
| { :title => t('browse.changeset_navigation.user.prev_tooltip', :user => @prev_by_user.user.display_name) } %>
<% end %> |
<%= <% end %>
user = (@prev_by_user || @next_by_user).user.display_name <%=
link_to h(user), user = (@prev_by_user || @next_by_user).user.display_name
{ :controller => "changeset", :action => "list", :display_name => user }, link_to h(user),
{ :title => t('browse.changeset_navigation.user.name_tooltip', :user => h(user)) } { :controller => "changeset", :action => "list", :display_name => user },
%> { :title => t('browse.changeset_navigation.user.name_tooltip', :user => h(user)) }
<% if @next_by_user %> %>
| <% if @next_by_user %>
<%= link_to @next_by_user.id.to_s, |
{ :id => @next_by_user.id }, <%= link_to @next_by_user.id.to_s,
{ :title => t('browse.changeset_navigation.user.next_tooltip', :user => @next_by_user.user.display_name) } %> { :id => @next_by_user.id },
&gt; { :title => t('browse.changeset_navigation.user.next_tooltip', :user => @next_by_user.user.display_name) } %>
<% end %> &gt;
<% end %>
</span>
<br/> <br/>
<% end %> <% end %>
<% if @prev %> <span class="nowrap">
&lt; <% if @prev %>
<%= link_to @prev.id.to_s, &lt;
{ :id => @prev.id }, <%= link_to @prev.id.to_s,
{ :title => t('browse.changeset_navigation.all.prev_tooltip') } %> { :id => @prev.id },
<% end %> { :title => t('browse.changeset_navigation.all.prev_tooltip') } %>
<% if @prev and @next %> <% end %>
| <% if @prev and @next %>
<% end %> |
<% if @next %> <% end %>
<%= link_to @next.id.to_s, <% if @next %>
{ :id => @next.id }, <%= link_to @next.id.to_s,
{ :title => t('browse.changeset_navigation.all.next_tooltip') } %> { :id => @next.id },
&gt; { :title => t('browse.changeset_navigation.all.next_tooltip') } %>
<% end %> &gt;
<% end %>
</span>
</div> </div>

View file

@ -2,12 +2,17 @@
<% cl = cycle('table0', 'table1') %> <% cl = cycle('table0', 'table1') %>
<td class="<%= cl %>"> <td class="<%= cl %>">
#<%= changeset.id %> <%=
id_link = link_to(changeset.id,
{:controller => 'browse', :action => 'changeset', :id => changeset.id},
{:title => t('changeset.changeset.view_changeset_details')})
t'changeset.changeset.id', :id => id_link
%>
</td> </td>
<td class="<%= cl %> date"> <td class="<%= cl %> date">
<% if changeset.closed_at > DateTime.now %> <%= t'changeset.changeset.still_editing' %> <% if changeset.closed_at > DateTime.now %> <%= t'changeset.changeset.still_editing' %>
<% else %><%= changeset.closed_at.strftime("%d %b %Y %H:%M") %><% end %> <% else %><%= l changeset.closed_at, :format => :short %><% end %>
</td> </td>
@ -48,8 +53,4 @@
%> %>
</td> </td>
<td class="<%= cl %>">
<%= link_to t('changeset.changeset.more'), {:controller => 'browse', :action => 'changeset', :id => changeset.id}, {:title => t('changeset.changeset.view_changeset_details')} %>
</td>
</tr> </tr>

View file

@ -7,14 +7,5 @@ if (current_page.first_item < current_page.last_item) # if more than 1 changeset
%>-<%= current_page.last_item %><% %>-<%= current_page.last_item %><%
end %> end %>
<%= t'changeset.changeset_paging_nav.of'%> <%= @edit_pages.item_count %>) <%= t'changeset.changeset_paging_nav.of'%> <%= @edit_pages.item_count %>)
| <%= pagination_links_each(@edit_pages, {}) { |n| link_to(n, params.merge({ :page => n })) } %>
<%
if @edit_pages.page_count > 1
bboxparam = h(params['bbox'])
bboxparam = nil if bboxparam==""
%>
| <%= pagination_links_each(@edit_pages, {}) { |n| link_to(n, :display_name => @display_name, :bbox => bboxparam , :page => n) } %>
<%
end
%>
</p> </p>

View file

@ -8,7 +8,6 @@
<% end %> <% end %>
<th><%= t'changeset.changesets.comment' %></th> <th><%= t'changeset.changesets.comment' %></th>
<th><%= t'changeset.changesets.area' %></th> <th><%= t'changeset.changesets.area' %></th>
<th></th>
</tr> </tr>
<%= render :partial => 'changeset', :locals => {:showusername => showusername}, :collection => @edits unless @edits.nil? %> <%= render :partial => 'changeset', :locals => {:showusername => showusername}, :collection => @edits unless @edits.nil? %>
</table> </table>

View file

@ -5,7 +5,9 @@ atom_feed(:language => I18n.locale, :schema_date => 2009,
feed.title @title feed.title @title
feed.subtitle :type => 'xhtml' do |xhtml| feed.subtitle :type => 'xhtml' do |xhtml|
xhtml.p @description xhtml.p do |p|
p << @description
end
end end
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

View file

@ -1,4 +1,4 @@
<h1><%= @title %></h1> <h1><%= @heading %></h1>
<p><%= @description %></p> <p><%= @description %></p>
<%= render :partial => 'changeset_paging_nav' %> <%= render :partial => 'changeset_paging_nav' %>

View file

@ -1,14 +1,14 @@
<% this_colour = cycle('lightgrey', 'white') # can only call once for some dumb reason <% this_colour = cycle('lightgrey', 'white') %>
%>
<tr class="inbox-row<%= "-unread" if not message_summary.message_read? %>"> <tr class="inbox-row<%= "-unread" if not message_summary.message_read? %>">
<td class="inbox-sender" bgcolor="<%= this_colour %>"><%= link_to h(message_summary.sender.display_name), :controller => 'user', :action => message_summary.sender.display_name %></td> <td class="inbox-sender" bgcolor="<%= this_colour %>"><%= link_to h(message_summary.sender.display_name), :controller => 'user', :action => message_summary.sender.display_name %></td>
<td class="inbox-subject" bgcolor="<%= this_colour %>"><%= link_to h(message_summary.title), :controller => 'message', :action => 'read', :message_id => message_summary.id %></td> <td class="inbox-subject" bgcolor="<%= this_colour %>"><%= link_to h(message_summary.title), :controller => 'message', :action => 'read', :message_id => message_summary.id %></td>
<td class="inbox-sent" bgcolor="<%= this_colour %>"><%= l message_summary.sent_on %></td> <td class="inbox-sent nowrap" bgcolor="<%= this_colour %>"><%= l message_summary.sent_on %></td>
<% if message_summary.message_read? %> <% if message_summary.message_read? %>
<td><%= button_to t('message.message_summary.unread_button'), :controller => 'message', :action => 'mark', :message_id => message_summary.id, :mark => 'unread' %></td> <td><%= button_to t('message.message_summary.unread_button'), :controller => 'message', :action => 'mark', :message_id => message_summary.id, :mark => 'unread' %></td>
<% else %> <% else %>
<td><%= button_to t('message.message_summary.read_button'), :controller => 'message', :action => 'mark', :message_id => message_summary.id, :mark => 'read' %></td> <td><%= button_to t('message.message_summary.read_button'), :controller => 'message', :action => 'mark', :message_id => message_summary.id, :mark => 'read' %></td>
<% end %> <% end %>
<td><%= button_to t('message.message_summary.reply_button'), :controller => 'message', :action => 'reply', :message_id => message_summary.id %></td> <td><%= button_to t('message.message_summary.reply_button'), :controller => 'message', :action => 'reply', :message_id => message_summary.id %></td>
<td><%= button_to t('message.message_summary.delete_button'), :controller => 'message', :action => 'delete', :message_id => message_summary.id, :referer => request.request_uri %></td>
</tr> </tr>

View file

@ -1,8 +1,8 @@
<% this_colour = cycle('lightgrey', 'white') # can only call once for some dumb reason <% this_colour = cycle('lightgrey', 'white') %>
%>
<tr class="inbox-row"> <tr class="inbox-row">
<td class="inbox-sender" bgcolor="<%= this_colour %>"><%= link_to h(sent_message_summary.recipient.display_name), :controller => 'user', :action => sent_message_summary.recipient.display_name %></td> <td class="inbox-sender" bgcolor="<%= this_colour %>"><%= link_to h(sent_message_summary.recipient.display_name), :controller => 'user', :action => sent_message_summary.recipient.display_name %></td>
<td class="inbox-subject" bgcolor="<%= this_colour %>"><%= link_to h(sent_message_summary.title), :controller => 'message', :action => 'read', :message_id => sent_message_summary.id %></td> <td class="inbox-subject" bgcolor="<%= this_colour %>"><%= link_to h(sent_message_summary.title), :controller => 'message', :action => 'read', :message_id => sent_message_summary.id %></td>
<td class="inbox-sent" bgcolor="<%= this_colour %>"><%= l sent_message_summary.sent_on %></td> <td class="inbox-sent nowrap" bgcolor="<%= this_colour %>"><%= l sent_message_summary.sent_on %></td>
<td><%= button_to t('message.sent_message_summary.delete_button'), :controller => 'message', :action => 'delete', :message_id => sent_message_summary.id, :referer => request.request_uri %></td>
</tr> </tr>

View file

@ -11,10 +11,11 @@
<th><%= t'message.inbox.date' %></th> <th><%= t'message.inbox.date' %></th>
<th></th> <th></th>
<th></th> <th></th>
<th></th>
</tr> </tr>
<%= render :partial => "message_summary", :collection => @user.messages %> <%= render :partial => "message_summary", :collection => @user.messages %>
</table> </table>
</div> </div>
<% else %> <% else %>
<div id="messages"><%= t'message.inbox.no_messages_yet', :people_mapping_nearby_link => link_to(t('message.inbox.people_mapping_nearby'), :controller => 'user', :action => 'view', :display_name => @user.display_name) %></div> <div id="messages"><%= t'message.inbox.no_messages_yet', :people_mapping_nearby_link => link_to(t('message.inbox.people_mapping_nearby'), :controller => 'user', :action => 'view', :display_name => @user.display_name) %></div>
<% end %> <% end %>

View file

@ -9,10 +9,11 @@
<th><%= t'message.outbox.to' %></th> <th><%= t'message.outbox.to' %></th>
<th><%= t'message.outbox.subject' %></th> <th><%= t'message.outbox.subject' %></th>
<th><%= t'message.outbox.date' %></th> <th><%= t'message.outbox.date' %></th>
<th></th>
</tr> </tr>
<%= render :partial => "sent_message_summary", :collection => @user.sent_messages %> <%= render :partial => "sent_message_summary", :collection => @user.sent_messages %>
</table> </table>
</div> </div>
<% else %> <% else %>
<div id="messages"><%= t'message.outbox.no_sent_messages', :people_mapping_nearby_link => link_to(t('message.outbox.people_mapping_nearby'), :controller => 'user', :action => 'view', :display_name => @user.display_name) %></div> <div id="messages"><%= t'message.outbox.no_sent_messages', :people_mapping_nearby_link => link_to(t('message.outbox.people_mapping_nearby'), :controller => 'user', :action => 'view', :display_name => @user.display_name) %></div>
<% end %> <% end %>

View file

@ -81,7 +81,7 @@
<% end %> <% end %>
<% end %> <% end %>
</td> </td>
<td class="message">(<%= link_to t('user.view.send message'), :controller => 'message', :action => 'new', :user_id => @friend.id %>)</td> <td class="message">(<%= link_to t('user.view.send message'), :controller => 'message', :action => 'new', :display_name => @friend.display_name %>)</td>
</tr> </tr>
<%end%> <%end%>
</table> </table>
@ -110,7 +110,7 @@
<%= t 'user.view.km away', :count => distance.round %> <%= t 'user.view.km away', :count => distance.round %>
<% end %> <% end %>
</td> </td>
<td class="message">(<%= link_to t('user.view.send message'), :controller => 'message', :action => 'new', :user_id => nearby.id %>)</td> <td class="message">(<%= link_to t('user.view.send message'), :controller => 'message', :action => 'new', :display_name => nearby.display_name %>)</td>
</tr> </tr>
<% end %> <% end %>
</table> </table>

View file

@ -2,5 +2,3 @@ require 'globalize/i18n/missing_translations_log_handler'
I18n.missing_translations_logger = Logger.new("#{RAILS_ROOT}/log/missing_translations.log") I18n.missing_translations_logger = Logger.new("#{RAILS_ROOT}/log/missing_translations.log")
I18n.exception_handler = :missing_translations_log_handler I18n.exception_handler = :missing_translations_log_handler
I18n.backend.add_pluralizer :sl, lambda { |c| c%100 == 1 ? :one : c%100 == 2 ? :two : (3..4).include?(c%100) ? :few : :other }

View file

@ -184,7 +184,6 @@ be:
show_area_box: "паказаць мяжу мясцовасці" show_area_box: "паказаць мяжу мясцовасці"
big_area: "(вялікая)" big_area: "(вялікая)"
view_changeset_details: "Падрабязней пра набор зменаў" view_changeset_details: "Падрабязней пра набор зменаў"
more: "больш"
changesets: changesets:
id: "ID" id: "ID"
saved_at: "Запісаны" saved_at: "Запісаны"

View file

@ -87,6 +87,14 @@ de:
download: "{{changeset_xml_link}} oder {{osmchange_xml_link}} herunterladen" download: "{{changeset_xml_link}} oder {{osmchange_xml_link}} herunterladen"
changesetxml: "Changeset XML" changesetxml: "Changeset XML"
osmchangexml: "osmChange XML" osmchangexml: "osmChange XML"
changeset_navigation:
user:
name_tooltip: "Änderungen von {{user}} anzeigen"
prev_tooltip: "Vorherige Änderung von {{user}}"
next_tooltip: "Nächste Änderung von {{user}}"
all:
prev_tooltip: "Vorheriges Changeset"
next_tooltip: "Nächstes Changeset"
changeset_details: changeset_details:
created_at: "Erstellt am:" created_at: "Erstellt am:"
closed_at: "Geschlossen am:" closed_at: "Geschlossen am:"
@ -95,9 +103,15 @@ de:
no_bounding_box: "Für dieses Changeset wurde kein Bereich gespeichert." no_bounding_box: "Für dieses Changeset wurde kein Bereich gespeichert."
show_area_box: "Bereichsgrenze anzeigen" show_area_box: "Bereichsgrenze anzeigen"
box: "Bereichsgrenze" box: "Bereichsgrenze"
has_nodes: "Enthält folgende {{count}} Knoten:" has_nodes:
has_ways: "Enthält folgende {{count}} Wege:" one: "Enthält folgenden Knoten:"
has_relations: "Enthält folgende {{count}} Relationen:" other: "Enhält folgende {{count}} Knoten:"
has_ways:
one: "Enthält folgenden Weg:"
other: "Enthält folgende {{count}} Wege:"
has_relations:
one: "Enthält folgende Relation:"
other: "Enthält folgende {{count}} Relationen:"
common_details: common_details:
edited_at: "Bearbeitet am:" edited_at: "Bearbeitet am:"
edited_by: "Bearbeitet von:" edited_by: "Bearbeitet von:"
@ -145,6 +159,9 @@ de:
relation_history: relation_history:
relation_history: "Relations-Chronik" relation_history: "Relations-Chronik"
relation_history_title: "Relations-Chronik: {{relation_name}}" relation_history_title: "Relations-Chronik: {{relation_name}}"
download: "{{download_xml_link}} oder {{view_details_link}}"
download_xml: "XML herungerladen"
view_details: "Details anzeigen"
relation_member: relation_member:
entry: "{{type}} {{name}}" entry: "{{type}} {{name}}"
entry_role: "{{type}} {{name}} als {{role}}" entry_role: "{{type}} {{name}} als {{role}}"
@ -229,34 +246,18 @@ de:
show_area_box: "Bereich anzeigen" show_area_box: "Bereich anzeigen"
big_area: "(groß)" big_area: "(groß)"
view_changeset_details: "Details des Changesets" view_changeset_details: "Details des Changesets"
more: "mehr"
changesets: changesets:
id: "ID" id: "ID"
saved_at: "Gespeichert am" saved_at: "Gespeichert am"
user: "Benutzer" user: "Benutzer"
comment: "Kommentar" comment: "Kommentar"
area: "Bereich" area: "Bereich"
list_bbox:
history: "Chronik"
changesets_within_the_area: "Changesets in dem Bereich:"
show_area_box: "Bereich anzeigen"
no_changesets: "Keine Changesets"
all_changes_everywhere: "Für letzte Änderungen weltweit siehe {{recent_changes_link}}"
recent_changes: "Letzte Änderungen"
no_area_specified: "Kein Bereich angegeben"
first_use_view: "{{view_tab_link}} verwenden, um einen interessanten Bereich zu finden und dann auf das 'Chronik-Tab' klicken."
view_the_map: "Karte"
view_tab: "Kartenansicht"
alternatively_view: "Alternativ: {{recent_changes_link}} anzeigen"
list: list:
recent_changes: "Letzte Änderungen" title: "Changesets"
recently_edited_changesets: "Zuletzt erstellte Changesets:" description: "Letzte Änderungen"
for_more_changesets: "Mehr Changesets des Benutzers kannst du auf dessen Benutzerseite unter Beiträge einsehen, für Changesets eines Bereiches gehe auf den 'Chronik'-Reiter beim betrachten des gewünschten Kartenausschnitts." description_user: "Letzte Änderungen von {{user}}"
list_user: description_bbox: "Letzte Änderungen in {{bbox}}"
edits_by_username: "Beiträge von {{username_link}}" description_user_bbox: "Letzte Änderungen von {{user}} in {{bbox}}"
no_visible_edits_by: "Keine sichtbaren Beiträge von {{name}}."
for_all_changes: "Änderungen von allen Nutzern {{recent_changes_link}}"
recent_changes: "Letzte Änderungen"
diary_entry: diary_entry:
new: new:
title: Selbst Bloggen title: Selbst Bloggen
@ -346,8 +347,36 @@ de:
ca_postcode: 'Suchergebnisse von <a href="http://geocoder.ca/">Geocoder.CA</a>' ca_postcode: 'Suchergebnisse von <a href="http://geocoder.ca/">Geocoder.CA</a>'
osm_namefinder: 'Suchergebnisse von <a href="http://gazetteer.openstreetmap.org/namefinder/">OpenStreetMap Namefinder</a>' osm_namefinder: 'Suchergebnisse von <a href="http://gazetteer.openstreetmap.org/namefinder/">OpenStreetMap Namefinder</a>'
geonames: 'Suchergebnisse von <a href="http://www.geonames.org/">GeoNames</a>' geonames: 'Suchergebnisse von <a href="http://www.geonames.org/">GeoNames</a>'
search_osm_namefinder:
prefix: "{{type}} "
suffix_place: ", {{distance}} {{direction}} von {{placename}}"
suffix_parent: "{{suffix}} ({{parentdistance}} {{parentdirection}} von {{parentname}})"
suffix_suburb: "{{suffix}}, {{parentname}}"
description:
title:
osm_namefinder: '{{types}} vom <a href="http://gazetteer.openstreetmap.org/namefinder/">OpenStreetMap Namefinder</a>'
geonames: 'Ort von <a href="http://www.geonames.org/">GeoNames</a>'
types:
cities: Großstädte
towns: Städte
places: Orte
description_osm_namefinder:
prefix: "{{distance}} {{direction}} von {{type}} "
results: results:
no_results: "Keine Ergebnisse" no_results: "Keine Ergebnisse"
distance:
zero: "weniger als 1km"
one: "ca. 1km"
other: "ca. {{count}}km"
direction:
south_west: "südwestlich"
south: "südlich"
south_east: "südöstlich"
east: "östlich"
north_east: "nordöstlich"
north: "nördlich"
north_west: "nordwestlich"
west: "westlich"
layouts: layouts:
project_name: project_name:
# in <title> # in <title>
@ -517,6 +546,7 @@ de:
unread_button: "Als ungelesen markieren" unread_button: "Als ungelesen markieren"
read_button: "Als gelesen markieren" read_button: "Als gelesen markieren"
reply_button: "Antworten" reply_button: "Antworten"
delete_button: "Löschen"
new: new:
title: "Nachricht senden" title: "Nachricht senden"
send_message_to: "Eine Nachricht an {{name}} senden" send_message_to: "Eine Nachricht an {{name}} senden"
@ -552,9 +582,13 @@ de:
reading_your_sent_messages: "Deine versendeten Nachrichten lesen" reading_your_sent_messages: "Deine versendeten Nachrichten lesen"
to: "An" to: "An"
back_to_outbox: "Zurück zu Gesendete Nachrichten" back_to_outbox: "Zurück zu Gesendete Nachrichten"
sent_message_summary:
delete_button: "Löschen"
mark: mark:
as_read: "Nachricht als gelesen markiert" as_read: "Nachricht als gelesen markiert"
as_unread: "Nachricht als ungelesen markiert" as_unread: "Nachricht als ungelesen markiert"
delete:
deleted: "Nachricht gelöscht"
site: site:
index: index:
js_1: "Dein Browser unterstützt kein Javascript oder du hast es deaktiviert." js_1: "Dein Browser unterstützt kein Javascript oder du hast es deaktiviert."
@ -576,7 +610,7 @@ de:
anon_edits_link: "http://wiki.openstreetmap.org/wiki/Disabling_anonymous_edits" anon_edits_link: "http://wiki.openstreetmap.org/wiki/Disabling_anonymous_edits"
anon_edits_link_text: "Hier findest du mehr Infos dazu." anon_edits_link_text: "Hier findest du mehr Infos dazu."
flash_player_required: 'Du benötigst den Flash Player um Potlatch, den OpenStreetMap-Flash-Editor zu benutzen. <a href="http://www.adobe.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">Lade den Flash Player von Adobe.com herunter</a>. <a href="http://wiki.openstreetmap.org/wiki/DE:Editing">Einige andere Möglichkeiten</a>, um OpenStreetMap zu editieren, sind hier beschrieben.' flash_player_required: 'Du benötigst den Flash Player um Potlatch, den OpenStreetMap-Flash-Editor zu benutzen. <a href="http://www.adobe.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">Lade den Flash Player von Adobe.com herunter</a>. <a href="http://wiki.openstreetmap.org/wiki/DE:Editing">Einige andere Möglichkeiten</a>, um OpenStreetMap zu editieren, sind hier beschrieben.'
potlatch_unsaved_changes: "Du hast deine Arbeit noch nicht gespeichert. (Um sie in Potlach zu speichern, klicke auf eine leere Fläche bzw. deselektiere den Weg oder Punkt, wenn du im Live Modus editierst oder klicke auf Speichern, wenn ein Speicherbutton vorhanden ist.)" potlatch_unsaved_changes: "Du hast deine Arbeit noch nicht gespeichert. (Um sie in Potlach zu speichern, klicke auf eine leere Fläche bzw. deselektiere den Weg oder Punkt, wenn du im Live-Modus editierst oder klicke auf Speichern, wenn ein Speicherbutton vorhanden ist.)"
sidebar: sidebar:
search_results: Suchergebnisse search_results: Suchergebnisse
close: Schließen close: Schließen
@ -670,6 +704,7 @@ de:
owner: "Besitzer:" owner: "Besitzer:"
description: "Beschreibung:" description: "Beschreibung:"
tags: "Tags:" tags: "Tags:"
tags_help: "Trennung durch Komma"
save_button: "Speichere Änderungen" save_button: "Speichere Änderungen"
no_such_user: no_such_user:
title: "Benutzer nicht gefunden" title: "Benutzer nicht gefunden"
@ -679,6 +714,7 @@ de:
upload_gpx: "GPX-Datei" upload_gpx: "GPX-Datei"
description: "Beschreibung" description: "Beschreibung"
tags: "Tags" tags: "Tags"
tags_help: "Trennung durch Komma"
public: "Öffentlich?" public: "Öffentlich?"
public_help: "Was heißt das?" public_help: "Was heißt das?"
public_help_url: "http://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces" public_help_url: "http://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces"
@ -820,6 +856,7 @@ de:
your friends: Eigene Freunde your friends: Eigene Freunde
no friends: Du hast bis jetzt keine Freunde hinzugefügt. no friends: Du hast bis jetzt keine Freunde hinzugefügt.
km away: "{{count}}km entfernt" km away: "{{count}}km entfernt"
m away: "{{count}}m entfernt"
nearby users: "Benutzer in der Nähe: " nearby users: "Benutzer in der Nähe: "
no nearby users: "Es gibt bisher keine Benutzer, die einen Standort in deiner Nähe angegeben haben." no nearby users: "Es gibt bisher keine Benutzer, die einen Standort in deiner Nähe angegeben haben."
change your settings: Ändere deine Einstellungen change your settings: Ändere deine Einstellungen

View file

@ -239,6 +239,7 @@ en:
showing_page: "Showing page" showing_page: "Showing page"
of: "of" of: "of"
changeset: changeset:
id: "#{{id}}"
still_editing: "(still editing)" still_editing: "(still editing)"
anonymous: "Anonymous" anonymous: "Anonymous"
no_comment: "(none)" no_comment: "(none)"
@ -246,7 +247,6 @@ en:
show_area_box: "show area box" show_area_box: "show area box"
big_area: "(big)" big_area: "(big)"
view_changeset_details: "View changeset details" view_changeset_details: "View changeset details"
more: "more"
changesets: changesets:
id: "ID" id: "ID"
saved_at: "Saved at" saved_at: "Saved at"
@ -255,10 +255,19 @@ en:
area: "Area" area: "Area"
list: list:
title: "Changesets" title: "Changesets"
description: "Recent edits" title_user: "Changesets by {{user}}"
description_user: "Recent edits by {{user}}" title_bbox: "Changesets within {{bbox}}"
description_bbox: "Recent edits within {{bbox}}" title_user_bbox: "Changesets by {{user}} within {{bbox}}"
description_user_bbox: "Recent edits by {{user}} within {{bbox}}"
heading: "Changesets"
heading_user: "Changesets by {{user}}"
heading_bbox: "Changesets within {{bbox}}"
heading_user_bbox: "Changesets by {{user}} within {{bbox}}"
description: "Recent changes"
description_user: "Changesets by {{user}}"
description_bbox: "Changesets within {{bbox}}"
description_user_bbox: "Changesets by {{user}} within {{bbox}}"
diary_entry: diary_entry:
new: new:
title: New Diary Entry title: New Diary Entry
@ -547,6 +556,7 @@ en:
unread_button: "Mark as unread" unread_button: "Mark as unread"
read_button: "Mark as read" read_button: "Mark as read"
reply_button: "Reply" reply_button: "Reply"
delete_button: "Delete"
new: new:
title: "Send message" title: "Send message"
send_message_to: "Send a new message to {{name}}" send_message_to: "Send a new message to {{name}}"
@ -582,9 +592,13 @@ en:
reading_your_sent_messages: "Reading your sent messages" reading_your_sent_messages: "Reading your sent messages"
to: "To" to: "To"
back_to_outbox: "Back to outbox" back_to_outbox: "Back to outbox"
sent_message_summary:
delete_button: "Delete"
mark: mark:
as_read: "Message marked as read" as_read: "Message marked as read"
as_unread: "Message marked as unread" as_unread: "Message marked as unread"
delete:
deleted: "Message deleted"
site: site:
index: index:
js_1: "You are either using a browser that doesn't support javascript, or you have disabled javascript." js_1: "You are either using a browser that doesn't support javascript, or you have disabled javascript."

View file

@ -202,7 +202,6 @@ es:
show_area_box: "mostrar caja" show_area_box: "mostrar caja"
big_area: "(grande)" big_area: "(grande)"
view_changeset_details: "Ver detalles del conjunto de cambios" view_changeset_details: "Ver detalles del conjunto de cambios"
more: "más"
changesets: changesets:
id: "ID" id: "ID"
saved_at: "Guardado en" saved_at: "Guardado en"

View file

@ -184,7 +184,6 @@ he:
show_area_box: "show area box" show_area_box: "show area box"
big_area: "(big)" big_area: "(big)"
view_changeset_details: "View changeset details" view_changeset_details: "View changeset details"
more: "more"
changesets: changesets:
id: "ID" id: "ID"
saved_at: "Saved at" saved_at: "Saved at"

View file

@ -209,7 +209,6 @@ hi:
show_area_box: "show area box" show_area_box: "show area box"
big_area: "(बड़ा क्षेत्र)" big_area: "(बड़ा क्षेत्र)"
view_changeset_details: "इस changeset के विवरण देखे" view_changeset_details: "इस changeset के विवरण देखे"
more: "और दिखाए"
changesets: changesets:
id: "आईडी" id: "आईडी"
saved_at: "समय जब सुरक्षित किया गया" saved_at: "समय जब सुरक्षित किया गया"

View file

@ -83,10 +83,18 @@ hu:
browse: browse:
changeset: changeset:
title: "Módosításcsomag" title: "Módosításcsomag"
changeset: "Módosításcsomag:" changeset: "Módosításcsomag: {{id}}"
download: "{{changeset_xml_link}} vagy {{osmchange_xml_link}} letöltése" download: "{{changeset_xml_link}} vagy {{osmchange_xml_link}} letöltése"
changesetxml: "Changeset XML" changesetxml: "Changeset XML"
osmchangexml: "osmChange XML" osmchangexml: "osmChange XML"
changeset_navigation:
user:
name_tooltip: "{{user}} szerkesztéseinek megtekintése"
prev_tooltip: "{{user}} előző szerkesztése"
next_tooltip: "{{user}} következő szerkesztése"
all:
prev_tooltip: "Előző módosításcsomag"
next_tooltip: "Következő módosításcsomag"
changeset_details: changeset_details:
created_at: "Készült:" created_at: "Készült:"
closed_at: "Lezárva:" closed_at: "Lezárva:"
@ -95,9 +103,15 @@ hu:
no_bounding_box: "Nincs eltárolva határoló ehhez a módosításcsomaghoz." no_bounding_box: "Nincs eltárolva határoló ehhez a módosításcsomaghoz."
show_area_box: "Területhatároló megtekintése" show_area_box: "Területhatároló megtekintése"
box: "határoló" box: "határoló"
has_nodes: "A következő {{count}} pontot tartalmazza:" has_nodes:
has_ways: "A következő {{count}} vonalat tartalmazza:" one: "A következő {{count}} pontot tartalmazza:"
has_relations: "A következő {{count}} kapcsolatot tartalmazza:" other: "A következő {{count}} pontot tartalmazza:"
has_ways:
one: "A következő {{count}} vonalat tartalmazza:"
other: "A következő {{count}} vonalat tartalmazza:"
has_relations:
one: "A következő {{count}} kapcsolatot tartalmazza:"
other: "A következő {{count}} kapcsolatot tartalmazza:"
common_details: common_details:
edited_at: "Szerkesztve:" edited_at: "Szerkesztve:"
edited_by: "Szerkesztette:" edited_by: "Szerkesztette:"
@ -232,34 +246,18 @@ hu:
show_area_box: "területhatároló megjelenítése" show_area_box: "területhatároló megjelenítése"
big_area: "(nagy)" big_area: "(nagy)"
view_changeset_details: "Módosításcsomag részleteinek megtekintése" view_changeset_details: "Módosításcsomag részleteinek megtekintése"
more: "tovább"
changesets: changesets:
id: "Azonosító" id: "Azonosító"
saved_at: "Mentve" saved_at: "Mentve"
user: "Felhasználó" user: "Felhasználó"
comment: "Megjegyzés" comment: "Megjegyzés"
area: "Terület" area: "Terület"
list_bbox:
history: "Történet"
changesets_within_the_area: "Módosításcsomagok ezen a területen:"
show_area_box: "területhatároló megjelenítése"
no_changesets: "Nincsenek változtatáscsomagok"
all_changes_everywhere: "Az összes módosításhoz lásd a {{recent_changes_link}}at"
recent_changes: "Legutóbbi módosítások"
no_area_specified: "Nincs terület meghatározva"
first_use_view: "Először használd a {{view_tab_link}}t a kívánt területre való mozgatáshoz és nagyításhoz, majd kattints a történet fülre."
view_the_map: "a térkép megjelenítése"
view_tab: "térkép fül"
alternatively_view: "Vagy tekintsd meg az összeset: {{recent_changes_link}}"
list: list:
recent_changes: "Legutóbbi módosítások" title: "Módosításcsomagok"
recently_edited_changesets: "Legutóbb szerkesztett módosításcsomagok:" description: "Legutóbbi szerkesztések"
for_more_changesets: "További módosításcsomagokhoz válassz egy felhasználót, és tekintsd meg szerkesztéseit, vagy nézz meg egy meghatározott terület szerkesztési történetét." description_user: "{{user}} legutóbbi szerkesztései"
list_user: description_bbox: "Legutóbbi szerkesztések ezen belül: {{bbox}}"
edits_by_username: "{{username_link}} szerkesztései" description_user_bbox: "{{user}} legutóbbi szerkesztései ezen belül: {{bbox}}"
no_visible_edits_by: "{{name}} felhasználónak nincsenek látható szerkesztései"
for_all_changes: "Az összes felhasználó módosításaihoz lásd a {{recent_changes_link}}at"
recent_changes: "Legutóbbi módosítások"
diary_entry: diary_entry:
new: new:
title: Új naplóbejegyzés title: Új naplóbejegyzés
@ -711,7 +709,7 @@ hu:
upload_gpx: "GPX fájl feltöltése" upload_gpx: "GPX fájl feltöltése"
description: "Leírás" description: "Leírás"
tags: "Címkék" tags: "Címkék"
tags_help: "használj vesszőket" tags_help: "vesszővel elválasztva"
public: "Nyilvános?" public: "Nyilvános?"
public_help: "mit jelent ez?" public_help: "mit jelent ez?"
public_help_url: "http://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces" public_help_url: "http://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces"

View file

@ -245,7 +245,6 @@ is:
show_area_box: "sýna svæðismörk" show_area_box: "sýna svæðismörk"
big_area: "(stórt)" big_area: "(stórt)"
view_changeset_details: "Skoða breytingarsett" view_changeset_details: "Skoða breytingarsett"
more: "meira"
changesets: changesets:
id: "Kennitala" id: "Kennitala"
saved_at: "Vistað" saved_at: "Vistað"
@ -254,10 +253,19 @@ is:
area: "Svæði" area: "Svæði"
list: list:
title: "Breytingarsett" title: "Breytingarsett"
title_user: "Breytingar eftir {{user}}"
title_bbox: "Breytingar innan {{bbox}}"
title_user_bbox: "Breytingar eftir {{user}} innan {{bbox}}"
heading: "Breytingarsett"
heading_user: "Breytingar eftir {{user}}"
heading_bbox: "Breytingar innan {{bbox}}"
heading_user_bbox: "Breytingar eftir {{user}} innan {{bbox}}"
description: "Nýlegar breytingar" description: "Nýlegar breytingar"
description_user: "Nýlegar breytingar eftir {{user}}" description_user: "Breytingar eftir {{user}}"
description_bbox: "Nýlegar breytingar innan {{bbox}}" description_bbox: "Breytingar innan {{bbox}}"
description_user_bbox: "Nýlegar breytingar eftir {{user}} innan {{bbox}}" description_user_bbox: "Breytingar eftir {{user}} innan {{bbox}}"
diary_entry: diary_entry:
new: new:
title: "Ný bloggfærsla" title: "Ný bloggfærsla"
@ -365,9 +373,9 @@ is:
results: results:
no_results: "Ekkert fannst" no_results: "Ekkert fannst"
distance: distance:
zero: "minna en 1km" zero: "minna en 1 km"
one: "u.þ.b. 1km" one: "u.þ.b. 1 km"
other: "u.þ.b. {{count}}km" other: "u.þ.b. {{count}} km"
direction: direction:
south_west: "suðvestur" south_west: "suðvestur"
south: "suður" south: "suður"
@ -496,7 +504,7 @@ is:
more_videos: "Fleiri myndbönd er {{more_videos_link}}." more_videos: "Fleiri myndbönd er {{more_videos_link}}."
more_videos_here: "hægt að finna hér" more_videos_here: "hægt að finna hér"
get_reading: 'Þú getur lesið um OpenStreetMap verkefnið á <a href="http://wiki.openstreetmap.org/index.php?uselang=is&title=Beginners%27_Guide">wiki-síðunni okkar</p> eða <a href="http://www.opengeodata.org/">OpenGeoData blogginu</a> þar sem einnig er að finna <a href="http://www.opengeodata.org/?cat=13">hljóðvarp</a>.' get_reading: 'Þú getur lesið um OpenStreetMap verkefnið á <a href="http://wiki.openstreetmap.org/index.php?uselang=is&title=Beginners%27_Guide">wiki-síðunni okkar</p> eða <a href="http://www.opengeodata.org/">OpenGeoData blogginu</a> þar sem einnig er að finna <a href="http://www.opengeodata.org/?cat=13">hljóðvarp</a>.'
wiki_signup: 'Kannski viltu einnig <a href="http://wiki.openstreetmap.org/index.php?title=Special:Userlogin&type=signup&returnto=Main_Page">skrá þig á wiki-síðuna</a>.' wiki_signup: 'Kannski viltu einnig <a href="http://wiki.openstreetmap.org/index.php?title=Special:Userlogin&type=signup&returnto=Fors%C3%AD%C3%B0a">skrá þig á wiki-síðuna</a>.'
user_wiki_page: 'Það er mælt með því að þú búir ttil notandasíðu á wiki-inu þar sem tengt er í flokk sem gefur til kynna hvar þú ert, t.d. <a href="http://wiki.openstreetmap.org/index.php?uselang=is&title=Category:Users_in_Iceland">[[Category:Users_in_Iceland]]</a>.' user_wiki_page: 'Það er mælt með því að þú búir ttil notandasíðu á wiki-inu þar sem tengt er í flokk sem gefur til kynna hvar þú ert, t.d. <a href="http://wiki.openstreetmap.org/index.php?uselang=is&title=Category:Users_in_Iceland">[[Category:Users_in_Iceland]]</a>.'
current_user: 'Í flokkakerfinu getur þú einnig séð <a href="http://wiki.openstreetmap.org/index.php?uselang=is&title=Category:Users_by_geographical_region"> hvar í heiminum OpenStreetMap notendur</a> eru staðsettir.' current_user: 'Í flokkakerfinu getur þú einnig séð <a href="http://wiki.openstreetmap.org/index.php?uselang=is&title=Category:Users_by_geographical_region"> hvar í heiminum OpenStreetMap notendur</a> eru staðsettir.'
email_confirm: email_confirm:
@ -544,6 +552,7 @@ is:
unread_button: "Merkja sem ólesin" unread_button: "Merkja sem ólesin"
read_button: "Merkja sem lesin" read_button: "Merkja sem lesin"
reply_button: "Svara" reply_button: "Svara"
delete_button: "Eyða"
new: new:
title: "Senda skilaboð" title: "Senda skilaboð"
send_message_to: "Senda skilaboð til {{name}}" send_message_to: "Senda skilaboð til {{name}}"
@ -579,9 +588,13 @@ is:
reading_your_sent_messages: "Les send skilaboð" reading_your_sent_messages: "Les send skilaboð"
to: "Til" to: "Til"
back_to_outbox: "Aftur í úthólf" back_to_outbox: "Aftur í úthólf"
sent_message_summary:
delete_button: "Eyða"
mark: mark:
as_read: "Skilaboðin voru merkt sem lesin" as_read: "Skilaboðin voru merkt sem lesin"
as_unread: "Skilaboðin voru merkt sem ólesin" as_unread: "Skilaboðin voru merkt sem ólesin"
delete:
deleted: "Skilaboðunum var eytt"
site: site:
index: index:
js_1: "Þú ert annaðhvort að nota vafra sem styður ekki JavaScript eða hefur slökkt á JavaScript stuðning." js_1: "Þú ert annaðhvort að nota vafra sem styður ekki JavaScript eða hefur slökkt á JavaScript stuðning."

View file

@ -184,7 +184,6 @@ it:
show_area_box: "visualizza il riquadro dell'area" show_area_box: "visualizza il riquadro dell'area"
big_area: "(grande)" big_area: "(grande)"
view_changeset_details: "Visualizza i dettagli del gruppo di modifiche" view_changeset_details: "Visualizza i dettagli del gruppo di modifiche"
more: "maggiori informazioni"
changesets: changesets:
id: "ID" id: "ID"
saved_at: "Salvato il" saved_at: "Salvato il"
@ -310,7 +309,7 @@ it:
export: Esporta export: Esporta
gps_traces: Tracciati GPS gps_traces: Tracciati GPS
user_diaries: Diari degli utenti user_diaries: Diari degli utenti
tag_line: Il Wiki della mappa mondiale libera tag_line: "La wiki-mappa Libera del Mondo"
intro_1: "OpenStreetMap è una mappa liberamente modificabile dell'intero pianeta. E' fatta da persone come te." intro_1: "OpenStreetMap è una mappa liberamente modificabile dell'intero pianeta. E' fatta da persone come te."
intro_2: "OpenStreetMap permette a chiunque sulla Terra di visualizzare, modificare ed utilizzare dati geografici con un approccio collaborativo." intro_2: "OpenStreetMap permette a chiunque sulla Terra di visualizzare, modificare ed utilizzare dati geografici con un approccio collaborativo."
intro_3: "L'hosting di OpenStreetMap è supportato gentilmente dalla {{ucl}} e {{bytemark}}." intro_3: "L'hosting di OpenStreetMap è supportato gentilmente dalla {{ucl}} e {{bytemark}}."
@ -425,12 +424,12 @@ it:
project_name: "progetto OpenStreetMap" project_name: "progetto OpenStreetMap"
edit: edit:
not_public: "Non si sono impostate come pubbliche le proprie modifiche." not_public: "Non si sono impostate come pubbliche le proprie modifiche."
not_public_description: "Non si può più modificare la mappa finché non lo si fa. Si possono impostare come pubbliche le proprie modifiche dalla propria {{user_page}}." not_public_description: "Non è possibile modificare la mappa finché non lo si fa. Si possono impostare come pubbliche le proprie modifiche dalla propria {{user_page}}."
user_page_link: pagina utente user_page_link: pagina utente
anon_edits: "({{link}})" anon_edits: "({{link}})"
anon_edits_link: "http://wiki.openstreetmap.org/wiki/Disabling_anonymous_edits" anon_edits_link: "http://wiki.openstreetmap.org/wiki/Disabling_anonymous_edits"
anon_edits_link_text: "Scopri perché è questo il caso." anon_edits_link_text: "Leggi il perché."
flash_player_required: 'E'' necessario un Flash player per utilizzare Potlatch, il programma Flash per le modifiche di OpenStreetMap. Si può <a href="http://www.adobe.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">scaricare il Flash Player da Adobe.com</a>. Sono disponibili anche <a href="http://wiki.openstreetmap.org/wiki/Editing">altre possibilità</a> per apportare modifiche in OpenStreetMap.' flash_player_required: 'E'' necessario un visualizzatore Flash per utilizzare Potlatch, il programma Flash per le modifiche di OpenStreetMap. Si può <a href="http://www.adobe.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">scaricare il Flash Player da Adobe.com</a>. Sono disponibili anche <a href="http://wiki.openstreetmap.org/wiki/Editing">altre possibilità</a> per apportare modifiche a OpenStreetMap.'
potlatch_unsaved_changes: "Ci sono modifiche non salvate. (Per salvare in Potlatch, si dovrebbe deselezionare il percorso o nodo corrente, se si sta editando nella modalità 'list', o cliccare sul bottone salva se presente.)" potlatch_unsaved_changes: "Ci sono modifiche non salvate. (Per salvare in Potlatch, si dovrebbe deselezionare il percorso o nodo corrente, se si sta editando nella modalità 'list', o cliccare sul bottone salva se presente.)"
sidebar: sidebar:
search_results: Risultati della ricerca search_results: Risultati della ricerca
@ -545,7 +544,7 @@ it:
no_auto_account_create: "Sfortunatamente in questo momento non è possibile creare automaticamente per te un profilo." no_auto_account_create: "Sfortunatamente in questo momento non è possibile creare automaticamente per te un profilo."
contact_webmaster: 'Si prega di contattare il <a href="mailto:webmaster@openstreetmap.org">webmaster</a> affinchè faccia in modo di creare un profilo. Tenteremo di soddisfare la richiesta il più rapidamente possibile.' contact_webmaster: 'Si prega di contattare il <a href="mailto:webmaster@openstreetmap.org">webmaster</a> affinchè faccia in modo di creare un profilo. Tenteremo di soddisfare la richiesta il più rapidamente possibile.'
fill_form: "Riempi il modulo e noi ti invieremo velocemente una email per attivare il tuo profilo." fill_form: "Riempi il modulo e noi ti invieremo velocemente una email per attivare il tuo profilo."
license_agreement: 'Con la creazione di un profilo si accetta che tutto il lavoro caricato su openstreetmap.org e tutti i dati creati mediante l''utilizzo di qualsiasi strumento capace di connettersi a openstreetmap.org è da ritenersi (in modo non-esclusivo) rilasciato sotto <a href="http://creativecommons.org/licenses/by-sa/2.0/">questa licenza Creative Commons (by-sa)</a>.' license_agreement: 'Con la creazione di un profilo si accetta che tutto il lavoro caricato nel progetto Openstreetmap è da ritenersi (in modo non-esclusivo) rilasciato sotto <a href="http://creativecommons.org/licenses/by-sa/2.0/">questa licenza Creative Commons (by-sa)</a>.'
email address: "Indirizzo email: " email address: "Indirizzo email: "
confirm email address: "Conferma indirizzo email: " confirm email address: "Conferma indirizzo email: "
not displayed publicly: 'Non visualizzato pubblicamente (vedi le <a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy" title="wiki privacy policy including section on email addresses">norme sulla privacy</a>)' not displayed publicly: 'Non visualizzato pubblicamente (vedi le <a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy" title="wiki privacy policy including section on email addresses">norme sulla privacy</a>)'

View file

@ -210,7 +210,6 @@ ja:
show_area_box: "領域境界を表示" show_area_box: "領域境界を表示"
big_area: "(大)" big_area: "(大)"
view_changeset_details: "変更セットの詳細表示" view_changeset_details: "変更セットの詳細表示"
more: "詳細"
changesets: changesets:
id: "ID" id: "ID"
saved_at: "保存日時" saved_at: "保存日時"

View file

@ -210,7 +210,6 @@ ko:
show_area_box: "지역 박스 보기" show_area_box: "지역 박스 보기"
big_area: "(큰 지역)" big_area: "(큰 지역)"
view_changeset_details: "변경셋 세부 사항 보기" view_changeset_details: "변경셋 세부 사항 보기"
more: "more"
changesets: changesets:
id: "ID" id: "ID"
saved_at: "저장 시간" saved_at: "저장 시간"

View file

@ -184,7 +184,6 @@ nl:
show_area_box: "toon rechthoek" show_area_box: "toon rechthoek"
big_area: "(groot)" big_area: "(groot)"
view_changeset_details: "Toon changeset-details" view_changeset_details: "Toon changeset-details"
more: "meer"
changesets: changesets:
id: "ID" id: "ID"
saved_at: "Opgeslagen op" saved_at: "Opgeslagen op"

View file

@ -184,7 +184,6 @@ pl:
show_area_box: "pokaż prostokąt zawierający" show_area_box: "pokaż prostokąt zawierający"
big_area: "(pełny)" big_area: "(pełny)"
view_changeset_details: "Zobacz szczegóły changesetu" view_changeset_details: "Zobacz szczegóły changesetu"
more: "więcej"
changesets: changesets:
id: "ID" id: "ID"
saved_at: "Zapisano" saved_at: "Zapisano"

View file

@ -210,7 +210,6 @@ pt-BR:
show_area_box: "exibir limite da área" show_area_box: "exibir limite da área"
big_area: "(grande)" big_area: "(grande)"
view_changeset_details: "Ver detalhes das alterações" view_changeset_details: "Ver detalhes das alterações"
more: "mais"
changesets: changesets:
id: "ID" id: "ID"
saved_at: "Salvo em" saved_at: "Salvo em"

View file

@ -229,7 +229,6 @@ ro:
show_area_box: "afișează chenarul zonei" show_area_box: "afișează chenarul zonei"
big_area: "(mare)" big_area: "(mare)"
view_changeset_details: "Vizualizare detalii set de schimbări" view_changeset_details: "Vizualizare detalii set de schimbări"
more: "mai mult"
changesets: changesets:
id: "ID" id: "ID"
saved_at: "Salvat la" saved_at: "Salvat la"

View file

@ -184,7 +184,6 @@ ru:
show_area_box: "Показать границы сеанса" show_area_box: "Показать границы сеанса"
big_area: "(большая)" big_area: "(большая)"
view_changeset_details: "Просмотреть данные сеанса" view_changeset_details: "Просмотреть данные сеанса"
more: "подробнее"
changesets: changesets:
id: "ID" id: "ID"
saved_at: "Завершено" saved_at: "Завершено"

View file

@ -72,6 +72,10 @@ sl:
description: "Opis" description: "Opis"
languages: "Jeziki" languages: "Jeziki"
pass_crypt: "Geslo" pass_crypt: "Geslo"
printable_name:
with_id: "{{id}}"
with_version: "{{id}}, {{version}}. različica"
with_name: "{{name}} ({{id}})"
map: map:
view: Zemljevid view: Zemljevid
edit: Urejanje edit: Urejanje
@ -83,6 +87,14 @@ sl:
download: "Prenesi {{changeset_xml_link}} ali {{osmchange_xml_link}}" download: "Prenesi {{changeset_xml_link}} ali {{osmchange_xml_link}}"
changesetxml: "Changeset XML" changesetxml: "Changeset XML"
osmchangexml: "osmChange XML" osmchangexml: "osmChange XML"
changeset_navigation:
user:
name_tooltip: "Prikaz prispevkov uporabnika {{user}}"
prev_tooltip: "Prejšnji prispevek uporabnika {{user}}"
next_tooltip: "Naslednji prispevek uporabnika {{user}}"
all:
prev_tooltip: "Prejšnji paket sprememb"
next_tooltip: "Naslednji paket sprememb"
changeset_details: changeset_details:
created_at: "Ustvarjen:" created_at: "Ustvarjen:"
closed_at: "Zaključen:" closed_at: "Zaključen:"
@ -139,7 +151,7 @@ sl:
view_history: "poglej zgodovino" view_history: "poglej zgodovino"
edit: "uredi" edit: "uredi"
not_found: not_found:
sorry: "Oprostite, {{type}} z ID-jem {{id}} ni bilo mogoče najti." sorry: "Oprostite, {{type}} z ID-jem {{id}} ne obstaja v bazi."
type: type:
node: vozlišče node: vozlišče
way: pot way: pot
@ -210,7 +222,6 @@ sl:
nodes: "Vozlišča:" nodes: "Vozlišča:"
part_of: "Del:" part_of: "Del:"
also_part_of: also_part_of:
one: "tudi del poti {{related_ways}}"
other: "tudi del poti {{related_ways}}" other: "tudi del poti {{related_ways}}"
way_history: way_history:
way_history: "Zgodovina poti" way_history: "Zgodovina poti"
@ -221,7 +232,7 @@ sl:
way: way:
way: "Pot" way: "Pot"
way_title: "Pot: {{way_name}}" way_title: "Pot: {{way_name}}"
download: "{{download_xml_link}} ali {{view_history_link}}" download: "{{download_xml_link}}, {{view_history_link}} ali {{edit_link}}"
download_xml: "prenesi XML" download_xml: "prenesi XML"
view_history: "poglej zgodovino" view_history: "poglej zgodovino"
edit: "uredi" edit: "uredi"
@ -230,6 +241,7 @@ sl:
showing_page: "Prikaz strani" showing_page: "Prikaz strani"
of: "od" of: "od"
changeset: changeset:
id: "št. {{id}}"
still_editing: "(še ureja)" still_editing: "(še ureja)"
anonymous: "Anonimen" anonymous: "Anonimen"
no_comment: "(brez)" no_comment: "(brez)"
@ -237,34 +249,27 @@ sl:
show_area_box: "prikaži pravokotno področje" show_area_box: "prikaži pravokotno področje"
big_area: "(veliko)" big_area: "(veliko)"
view_changeset_details: "Ogled podrobnosti paketa sprememb" view_changeset_details: "Ogled podrobnosti paketa sprememb"
more: "več"
changesets: changesets:
id: "ID" id: "ID"
saved_at: "Shranjen" saved_at: "Shranjen"
user: "Uporabnik" user: "Uporabnik"
comment: "Komentar" comment: "Komentar"
area: "Področje" area: "Področje"
list_bbox:
history: "Zgodovina"
changesets_within_the_area: "Paketi sprememb na področju:"
show_area_box: "prikaži pravokotno področje"
no_changesets: "Ni paketov sprememb"
all_changes_everywhere: "Za vse spremembe kjerkoli poglejte {{recent_changes_link}}"
recent_changes: "Nedavne spremembe"
no_area_specified: "Področje ni določeno"
first_use_view: "Najprej na {{view_tab_link}} izberite področje, ki vas zanima, nato pa kliknite zavihek Zgodovina."
view_the_map: "zavihek, na katerem je zemljevid"
view_tab: "zavihku z zemljevidom"
alternatively_view: "Lahko pa pogledate tudi vse {{recent_changes_link}}"
list: list:
recent_changes: "Nedavne spremembe" title: "Paketi sprememb"
recently_edited_changesets: "Nedavno urejeni paketi sprememb:" title_user: "Paketi sprememb uporabnika {{user}}"
for_more_changesets: "Za več sprememb izberite uporabnika in poglejte njegove spremembe ali pa med ogledom zemljevida nekega področja preklopite na zavihek 'zgodovina'." title_bbox: "Paketi sprememb znotraj področja {{bbox}}"
list_user: title_user_bbox: "Paketi sprememb uporabnika {{user}} znotraj {{bbox}}"
edits_by_username: "Spremembe uporabnika {{username_link}}"
no_visible_edits_by: "Ni vidnih sprememb uporabnika {{name}}." heading: "Paketi sprememb"
for_all_changes: "Za spremembe vseh uporabnikov poglejte {{recent_changes_link}}" heading_user: "Paketi sprememb uporabnika {{user}}"
recent_changes: "nedavne spremembe" heading_bbox: "Paketi sprememb znotraj področja {{bbox}}"
heading_user_bbox: "Paketi sprememb uporabnika {{user}} znotraj {{bbox}}"
description: "Nedavne spremembe"
description_user: "Paketi sprememb uporabnika {{user}}"
description_bbox: "Paketi sprememb znotraj področja {{bbox}}"
description_user_bbox: "Paketi sprememb uporabnika {{user}} znotraj {{bbox}}"
diary_entry: diary_entry:
new: new:
title: Nov zapis v dnevnik uporabnikov title: Nov zapis v dnevnik uporabnikov
@ -565,6 +570,7 @@ sl:
unread_button: "Označi kot neprebrano" unread_button: "Označi kot neprebrano"
read_button: "Označi kot prebrano" read_button: "Označi kot prebrano"
reply_button: "Odgovori" reply_button: "Odgovori"
delete_button: "Izbriši"
new: new:
title: "Pošiljanje sporočila" title: "Pošiljanje sporočila"
send_message_to: "Pošlji novo sporočilo uporabniku {{name}}" send_message_to: "Pošlji novo sporočilo uporabniku {{name}}"
@ -600,9 +606,13 @@ sl:
reading_your_sent_messages: "Prebiranje vaših poslanih sporočil" reading_your_sent_messages: "Prebiranje vaših poslanih sporočil"
to: "Za" to: "Za"
back_to_outbox: "Nazaj na poslano pošto" back_to_outbox: "Nazaj na poslano pošto"
sent_message_summary:
delete_button: "Izbriši"
mark: mark:
as_read: "Sporočilo označeno kot prebrano" as_read: "Sporočilo označeno kot prebrano"
as_unread: "Sporočilo označeno kot neprebrano" as_unread: "Sporočilo označeno kot neprebrano"
delete:
deleted: "Sporočilo izbrisano"
site: site:
index: index:
js_1: "Bodisi uporabljate brskalnik, ki ne podpira Javascript-a, ali pa je izvajanje Javascript-a onemogočeno." js_1: "Bodisi uporabljate brskalnik, ki ne podpira Javascript-a, ali pa je izvajanje Javascript-a onemogočeno."

View file

@ -229,7 +229,6 @@ vi:
show_area_box: "hiện hộp vùng" show_area_box: "hiện hộp vùng"
big_area: "(lớn)" big_area: "(lớn)"
view_changeset_details: "Xem chi tiết của bộ thay đổi" view_changeset_details: "Xem chi tiết của bộ thay đổi"
more: "thêm"
changesets: changesets:
id: "ID" id: "ID"
saved_at: "Lúc Lưu" saved_at: "Lúc Lưu"

View file

@ -210,7 +210,6 @@ yo:
show_area_box: "show area box" show_area_box: "show area box"
big_area: "(big)" big_area: "(big)"
view_changeset_details: "View changeset details" view_changeset_details: "View changeset details"
more: "more"
changesets: changesets:
id: "ID" id: "ID"
saved_at: "Saved at" saved_at: "Saved at"

View file

@ -186,7 +186,6 @@ zh-CN:
show_area_box: "显示区域窗口" show_area_box: "显示区域窗口"
big_area: "(大)" big_area: "(大)"
view_changeset_details: "查看详细变更" view_changeset_details: "查看详细变更"
more: "更多"
changesets: changesets:
id: "ID" id: "ID"
saved_at: "保存在" saved_at: "保存在"

View file

@ -210,7 +210,6 @@ zh-TW:
show_area_box: "顯示區域方塊" show_area_box: "顯示區域方塊"
big_area: "(big)" big_area: "(big)"
view_changeset_details: "檢視變更組合詳細資訊" view_changeset_details: "檢視變更組合詳細資訊"
more: "更多"
changesets: changesets:
id: "ID" id: "ID"
saved_at: "儲存於" saved_at: "儲存於"

0
config/potlatch/autocomplete.txt Executable file → Normal file
View file

File diff suppressed because it is too large Load diff

1
config/potlatch/localised/cz/localised.yaml Executable file → Normal file
View file

@ -83,3 +83,4 @@
"advice_nocommonpoint": Cesty nesdílí společný bod "advice_nocommonpoint": Cesty nesdílí společný bod
"option_warnings": Zobrazovat plovoucí varování "option_warnings": Zobrazovat plovoucí varování
"reverting": reverting "reverting": reverting
"prompt_helpavailable": You have unsaved changes. (To save in Potlatch, you should deselect the current way or point.)

0
config/potlatch/localised/da/localised.yaml Executable file → Normal file
View file

0
config/potlatch/localised/de/localised.yaml Executable file → Normal file
View file

0
config/potlatch/localised/en/help.html Executable file → Normal file
View file

1
config/potlatch/localised/es/localised.yaml Executable file → Normal file
View file

@ -83,3 +83,4 @@
"advice_nocommonpoint": Las vías no comparten un punto en común "advice_nocommonpoint": Las vías no comparten un punto en común
"option_warnings": Mostrar alertas flotantes "option_warnings": Mostrar alertas flotantes
"reverting": revirtiendo "reverting": revirtiendo
"prompt_helpavailable": Tiene cambios sin guardar. (Para guardar en Potlach, debería deseleccionar la vía o el punto actual.)

1
config/potlatch/localised/fi/localised.yaml Executable file → Normal file
View file

@ -83,3 +83,4 @@
"advice_nocommonpoint": Tiet eivät jaa yhteistä pistettä "advice_nocommonpoint": Tiet eivät jaa yhteistä pistettä
"option_warnings": Näytä siirtymisvaroitukset "option_warnings": Näytä siirtymisvaroitukset
"reverting": kumotaan "reverting": kumotaan
"prompt_helpavailable": Kaikkia muutoksia ei ole tallennettu. (Tallentaaksesi Potlatchissa valitse jokin muu tie tai muu piste kuin nykyinen)

1
config/potlatch/localised/fr/localised.yaml Executable file → Normal file
View file

@ -83,3 +83,4 @@
"advice_nocommonpoint": Les chemins ne partagent pas de point commun "advice_nocommonpoint": Les chemins ne partagent pas de point commun
"option_warnings": Montrer les avertissements flottants "option_warnings": Montrer les avertissements flottants
"reverting": annule "reverting": annule
"prompt_helpavailable": Vous avez des modifications non enregistrées. (Pour sauvegarder dans Potlatch, vous devez déselectionner tout point ou chemin)

9
config/potlatch/localised/hu/localised.yaml Executable file → Normal file
View file

@ -1,5 +1,4 @@
 "action_createpoi": POI készítése
"action_createpoi": POI készítése
"point": Pont "point": Pont
"hint_pointselected": pont kijelölve\n(shift+kattintás a pontra\núj vonal kezdéséhez) "hint_pointselected": pont kijelölve\n(shift+kattintás a pontra\núj vonal kezdéséhez)
"action_movepoint": pont mozgatása "action_movepoint": pont mozgatása
@ -17,9 +16,9 @@
"error_connectionfailed": Sajnálom - az OpenStreetMap szerverhez való kapcsolódás sikertelen. A legutóbbi módosítások nem lettek elmentve.\n\nSzeretnéd megpróbálni újra? "error_connectionfailed": Sajnálom - az OpenStreetMap szerverhez való kapcsolódás sikertelen. A legutóbbi módosítások nem lettek elmentve.\n\nSzeretnéd megpróbálni újra?
"error_readfailed": Sajnálom - az OpenStreetMap szerver az adatok lekérdezésekor nem válaszolt.\n\nSzeretnéd megpróbálni újra? "error_readfailed": Sajnálom - az OpenStreetMap szerver az adatok lekérdezésekor nem válaszolt.\n\nSzeretnéd megpróbálni újra?
"conflict_waychanged": Amióta elkezdtél szerkeszteni, valaki más módosította a(z) $1$2 vonalat. "conflict_waychanged": Amióta elkezdtél szerkeszteni, valaki más módosította a(z) $1$2 vonalat.
"conflict_visitway": A vonal megtekintéséhez kattints az 'OK'-ra. "conflict_visitway": "A vonal megtekintéséhez kattints az 'OK'-ra."
"conflict_poichanged": Amióta elkezdtél szerkeszteni, valaki más módosította a(z) $1$2 pontot. "conflict_poichanged": Amióta elkezdtél szerkeszteni, valaki más módosította a(z) $1$2 pontot.
"conflict_visitpoi": A pont megtekintéséhez kattints az 'OK'-ra. "conflict_visitpoi": "A pont megtekintéséhez kattints az 'OK'-ra."
"conflict_relchanged": Amióta elkezdtél szerkeszteni, valaki más módosította a(z) $1$2 kapcsolatot. "conflict_relchanged": Amióta elkezdtél szerkeszteni, valaki más módosította a(z) $1$2 kapcsolatot.
"conflict_download": Az ő változatának letöltése "conflict_download": Az ő változatának letöltése
"conflict_overwrite": Az ő változatának felülírása "conflict_overwrite": Az ő változatának felülírása
@ -64,7 +63,7 @@
"deleting": törlése "deleting": törlése
"action_deletepoint": pont törlése "action_deletepoint": pont törlése
"action_cancelchanges": "módosítások elvetése:" "action_cancelchanges": "módosítások elvetése:"
"custom": "Egyéni: " "custom": "Egyéni:"
"nobackground": Nincs háttérkép "nobackground": Nincs háttérkép
"option_fadebackground": Áttetsző háttér "option_fadebackground": Áttetsző háttér
"option_thinlines": Vékony vonalak használata minden méretaránynál "option_thinlines": Vékony vonalak használata minden méretaránynál

1
config/potlatch/localised/it/localised.yaml Executable file → Normal file
View file

@ -83,3 +83,4 @@
"advice_nocommonpoint": I percorsi non hanno nessun punto comune "advice_nocommonpoint": I percorsi non hanno nessun punto comune
"option_warnings": Mostra avvertimenti galleggianti "option_warnings": Mostra avvertimenti galleggianti
"reverting": annullo... "reverting": annullo...
"prompt_helpavailable": ??? Alcune modifiche non sono salvate. (Per salvare in Potlatch si deve deselezionare il percorso o il punto corrente.)

0
config/potlatch/localised/ja/localised.yaml Executable file → Normal file
View file

0
config/potlatch/localised/ko/localised.yaml Executable file → Normal file
View file

0
config/potlatch/localised/lolcat/localised.yaml Executable file → Normal file
View file

1
config/potlatch/localised/nl/localised.yaml Executable file → Normal file
View file

@ -83,3 +83,4 @@
"advice_nocommonpoint": "De 'ways' hebben geen gemeenschappelijk punt" "advice_nocommonpoint": "De 'ways' hebben geen gemeenschappelijk punt"
"option_warnings": Floating warnings weergeven "option_warnings": Floating warnings weergeven
"reverting": omdraaien "reverting": omdraaien
"prompt_helpavailable": "Er zijn niet-opgeslagen wijzigingen (om op te slaan in Potlatch, moet u de geselecteerde 'way' of POI deselecteren)."

0
config/potlatch/localised/no/localised.yaml Executable file → Normal file
View file

0
config/potlatch/localised/pt-BR/localised.yaml Executable file → Normal file
View file

0
config/potlatch/localised/ro/localised.yaml Executable file → Normal file
View file

1
config/potlatch/localised/ru/localised.yaml Executable file → Normal file
View file

@ -83,3 +83,4 @@
"advice_nocommonpoint": Линии не имеют общей точки "advice_nocommonpoint": Линии не имеют общей точки
"option_warnings": Показывать всплывающие предупреждения "option_warnings": Показывать всплывающие предупреждения
"reverting": возвращается "reverting": возвращается
"prompt_helpavailable": Присутствуют несохранённые изменения. (Чтобы записать изменения в Potlatch, снимите выделение с текущей точки или линии)

0
config/potlatch/localised/sv/localised.yaml Executable file → Normal file
View file

View file

@ -83,3 +83,4 @@
"advice_nocommonpoint": Các lối không cắt ngang nhau tại điểm nào "advice_nocommonpoint": Các lối không cắt ngang nhau tại điểm nào
"option_warnings": Nổi các cảnh báo "option_warnings": Nổi các cảnh báo
"reverting": đang lùi sửa "reverting": đang lùi sửa
"prompt_helpavailable": Bạn chưa lưu một số thay đổi. (Để lưu trong Potlatch, chỉ việc bỏ chọn lối hoặc địa điểm hiện hành.)

0
config/potlatch/localised/zh-HANS/localised.yaml Executable file → Normal file
View file

View file

@ -83,3 +83,4 @@
"advice_nocommonpoint": 這些路徑不再分享共同 point "advice_nocommonpoint": 這些路徑不再分享共同 point
"option_warnings": 顯示浮動式警示 "option_warnings": 顯示浮動式警示
"reverting": 正在反轉 "reverting": 正在反轉
"prompt_helpavailable": 您有未儲存的變更。(要在 Potlatch 中儲存,您應該取消選取目前的路徑或 point。)

View file

@ -193,6 +193,7 @@ ActionController::Routing::Routes.draw do |map|
map.connect '/message/read/:message_id', :controller => 'message', :action => 'read' map.connect '/message/read/:message_id', :controller => 'message', :action => 'read'
map.connect '/message/mark/:message_id', :controller => 'message', :action => 'mark' map.connect '/message/mark/:message_id', :controller => 'message', :action => 'mark'
map.connect '/message/reply/:message_id', :controller => 'message', :action => 'reply' map.connect '/message/reply/:message_id', :controller => 'message', :action => 'reply'
map.connect '/message/delete/:message_id', :controller => 'message', :action => 'delete'
# oauth admin pages (i.e: for setting up new clients, etc...) # oauth admin pages (i.e: for setting up new clients, etc...)
map.resources :oauth_clients map.resources :oauth_clients

View file

@ -0,0 +1,9 @@
class AddVisibleToMessage < ActiveRecord::Migration
def self.up
add_column :messages, :visible, :boolean, :default => true, :null => false
end
def self.down
remove_column :messages, :visible
end
end

View file

@ -0,0 +1,11 @@
class AddSenderVisibleToMessage < ActiveRecord::Migration
def self.up
rename_column :messages, :visible, :to_user_visible
add_column :messages, :from_user_visible, :boolean, :default => true, :null => false
end
def self.down
remove_column :messages, :from_user_visible
rename_column :messages, :to_user_visible, :visible
end
end

View file

@ -42,4 +42,4 @@ http://wiki.openstreetmap.org/wiki/REST
=Bugs =Bugs
See the 'rails_port' component for bugs: See the 'rails_port' component for bugs:
http://trac.openstreetmap.org/query?status=new&status=assigned&status=reopened&component=rails_port&order=priority http://trac.openstreetmap.org/query?status=new&status=assigned&status=reopened&component=website&order=priority

View file

@ -187,18 +187,18 @@ module OSM
# Raised when a way has more than the configured number of way nodes. # Raised when a way has more than the configured number of way nodes.
# This prevents ways from being to long and difficult to work with # This prevents ways from being to long and difficult to work with
class APITooManyWayNodesError < APIError class APITooManyWayNodesError < APIError
def initialize(provided, max) def initialize(id, provided, max)
@provided, @max = provided, max @id, @provided, @max = id, provided, max
end end
attr_reader :provided, :max attr_reader :id, :provided, :max
def status def status
:bad_request :bad_request
end end
def to_s def to_s
"You tried to add #{provided} nodes to the way, however only #{max} are allowed" "You tried to add #{provided} nodes to way #{id}, however only #{max} are allowed"
end end
end end

View file

@ -211,9 +211,6 @@ module Potlatch
} }
end end
# # Read internationalisation
# localised = YAML::load(File.open("#{RAILS_ROOT}/config/potlatch/localised.yaml"))
[presets,presetmenus,presetnames,colours,casing,areas,autotags,relcolours,relalphas,relwidths,icon_list,icon_names,icon_tags] [presets,presetmenus,presetnames,colours,casing,areas,autotags,relcolours,relalphas,relwidths,icon_list,icon_names,icon_tags]
end end
end end

14
lib/utf8.rb Normal file
View file

@ -0,0 +1,14 @@
module UTF8
##
# Checks that a string is valid UTF-8 by trying to convert it to UTF-8
# using the iconv library, which is in the standard library.
def self.valid?(str)
return true if str.nil?
Iconv.conv("UTF-8", "UTF-8", str)
return true
rescue
return false
end
end

View file

@ -11,22 +11,10 @@ module ActiveRecord
# is a valid UTF-8 format string. # is a valid UTF-8 format string.
def validates_as_utf8(*attrs) def validates_as_utf8(*attrs)
validates_each(attrs) do |record, attr, value| validates_each(attrs) do |record, attr, value|
record.errors.add(attr, @@invalid_utf8_message) unless valid_utf8? value record.errors.add(attr, @@invalid_utf8_message) unless UTF8.valid? value
end end
end end
##
# Checks that a string is valid UTF-8 by trying to convert it to UTF-8
# using the iconv library, which is in the standard library.
def valid_utf8?(str)
return true if str.nil?
Iconv.conv("UTF-8", "UTF-8", str)
return true
rescue
return false
end
end end
end end
end end

View file

@ -14,7 +14,7 @@ var nonamekeys = {
}; };
OpenLayers._getScriptLocation = function () { OpenLayers._getScriptLocation = function () {
// Should really have this file as an erb, so that this can return // Should really have this file as an erb, so that this can return
// the real rails root // the real rails root
return "/openlayers/"; return "/openlayers/";
} }
@ -116,7 +116,8 @@ function addObjectToMap(url, zoom, callback) {
strokeWidth: 3, strokeWidth: 3,
strokeOpacity: 0.5, strokeOpacity: 0.5,
fillOpacity: 0.2, fillOpacity: 0.2,
fillColor: "lightblue" fillColor: "lightblue",
pointRadius: 6
}, },
projection: new OpenLayers.Projection("EPSG:4326"), projection: new OpenLayers.Projection("EPSG:4326"),
displayInLayerSwitcher: false displayInLayerSwitcher: false
@ -145,7 +146,7 @@ function addObjectToMap(url, zoom, callback) {
callback(extent); callback(extent);
} }
}); });
map.addLayer(layer); map.addLayer(layer);
layer.loadGML(); layer.loadGML();
@ -165,7 +166,7 @@ function addBoxToMap(boxbounds) {
strokeColor: '#ee9900', strokeColor: '#ee9900',
fillOpacity: 0 fillOpacity: 0
}); });
vectors.addFeatures(box); vectors.addFeatures(box);
return box; return box;

BIN
public/potlatch/potlatch.swf Executable file → Normal file

Binary file not shown.

0
public/potlatch/ymap.swf Executable file → Normal file
View file

View file

@ -6,6 +6,7 @@ use YAML::Syck qw(LoadFile);
use Test::Differences; use Test::Differences;
use Pod::Usage (); use Pod::Usage ();
use Getopt::Long (); use Getopt::Long ();
use File::Basename qw(fileparse);
=head1 NAME =head1 NAME
@ -101,8 +102,8 @@ my ($from, $to) = @ARGV;
my $from_data = LoadFile($from); my $from_data = LoadFile($from);
my $to_data = LoadFile($to); my $to_data = LoadFile($to);
my $from_parsed = { iterate($from_data->{basename($from)}) }; my $from_parsed = { iterate($from_data->{fileparse($from, qr/\.[^.]*/)}) };
my $to_parsed = { iterate($to_data->{basename($to)}) }; my $to_parsed = { iterate($to_data->{fileparse($to, qr/\.[^.]*/)}) };
if ($keys) if ($keys)
{ {
@ -114,7 +115,7 @@ elsif ($untranslated_values or $untranslated_values_all)
# Prune according to blacklist # Prune according to blacklist
if ($untranslated_values) { if ($untranslated_values) {
@untranslated = prune_untranslated_with_blacklist(basename($to), @untranslated); @untranslated = prune_untranslated_with_blacklist(scalar(fileparse($to, qr/\.[^.]*/)), @untranslated);
} }
say for @untranslated; say for @untranslated;
@ -217,13 +218,6 @@ sub iterate
return @ret; return @ret;
} }
sub basename
{
my $name = shift;
$name =~ s[\..*?$][];
$name;
}
sub help sub help
{ {
my %arg = @_; my %arg = @_;
@ -252,6 +246,9 @@ untranslated_values:
site.index.license.project_url: true site.index.license.project_url: true
browse.relation_member.entry: true browse.relation_member.entry: true
# #{{id}}
changeset.changeset.id: true
de: de:
activerecord.attributes.message.sender: true activerecord.attributes.message.sender: true
activerecord.attributes.trace.name: true activerecord.attributes.trace.name: true
@ -303,3 +300,9 @@ untranslated_values:
# {{name}} ({{id}}) # {{name}} ({{id}})
printable_name.with_name: true printable_name.with_name: true
# {{type}}
geocoder.search_osm_namefinder.prefix: true
# {{suffix}}, {{parentname}}
geocoder.search_osm_namefinder.suffix_suburb: true

View file

@ -1,9 +1,11 @@
<% SCALE = 10000000 unless defined?(SCALE) %>
first_trace_1: first_trace_1:
altitude: 134 altitude: 134
trackid: 1 trackid: 1
latitude: 1 latitude: <%= 1 * SCALE %>
longitude: 1 longitude: <%= 1 * SCALE %>
gpx_id: 1 gpx_id: 1
timestamp: "2008-10-01 10:10:10" timestamp: "2008-10-01 10:10:10"
tile: 1 tile: <%= QuadTile.tile_for_point(1, 1) %>

View file

@ -454,6 +454,65 @@ class AmfControllerTest < ActionController::TestCase
assert_equal result[4], first_historic_node.version, "The version returned, is different to the one returned by the amf" assert_equal result[4], first_historic_node.version, "The version returned, is different to the one returned by the amf"
end end
# try creating a POI with rubbish in the tags
def test_putpoi_create_with_control_chars
# This node has no tags
nd = Node.new
# create a node with random lat/lon
lat = rand(100)-50 + rand
lon = rand(100)-50 + rand
# normal user has a changeset open
changeset = changesets(:public_user_first_change)
mostly_invalid = (0..31).to_a.map {|i| i.chr}.join
tags = { "something" => "foo#{mostly_invalid}bar" }
amf_content "putpoi", "/1", ["test@example.com:test", changeset.id, nil, nil, lon, lat, tags, nil]
post :amf_write
assert_response :success
amf_parse_response
result = amf_result("/1")
# check the array returned by the amf
assert_equal 5, result.size
assert_equal 0, result[0], "Expected to get the status ok in the amf"
assert_equal 0, result[2], "The old id should be 0"
assert result[3] > 0, "The new id should be greater than 0"
assert_equal 1, result[4], "The new version should be 1"
# Finally check that the node that was saved has saved the data correctly
# in both the current and history tables
# First check the current table
current_node = Node.find(result[3])
assert_equal 1, current_node.tags.size, "There seems to be a tag that has been added to the node"
assert_equal({ "something" => "foo\t\n\rbar" }, current_node.tags, "tags were not fixed correctly")
assert_equal result[4], current_node.version, "The version returned, is different to the one returned by the amf"
end
# try creating a POI with rubbish in the tags
def test_putpoi_create_with_invalid_utf8
# This node has no tags
nd = Node.new
# create a node with random lat/lon
lat = rand(100)-50 + rand
lon = rand(100)-50 + rand
# normal user has a changeset open
changeset = changesets(:public_user_first_change)
invalid = "\xc0\xc0"
tags = { "something" => "foo#{invalid}bar" }
amf_content "putpoi", "/1", ["test@example.com:test", changeset.id, nil, nil, lon, lat, tags, nil]
post :amf_write
assert_response :success
amf_parse_response
result = amf_result("/1")
assert_equal 2, result.size
assert_equal -1, result[0], "Expected to get the status FAIL in the amf"
assert_equal "One of the tags is invalid. Please pester Adobe to fix Flash on Linux.", result[1]
end
def test_putpoi_delete_valid def test_putpoi_delete_valid
end end

View file

@ -6,7 +6,7 @@ module Globalize
def pluralize(locale, entry, count) def pluralize(locale, entry, count)
return entry unless entry.is_a?(Hash) and count return entry unless entry.is_a?(Hash) and count
key = :zero if count == 0 && entry.has_key?(:zero) key = :zero if count == 0 && entry.has_key?(:zero)
key ||= pluralizer(locale).call(count) key ||= pluralizer(locale).call(count, entry)
raise InvalidPluralizationData.new(entry, count) unless entry.has_key?(key) raise InvalidPluralizationData.new(entry, count) unless entry.has_key?(key)
translation entry[key], :plural_key => key translation entry[key], :plural_key => key
end end
@ -25,7 +25,22 @@ module Globalize
end end
def pluralizers def pluralizers
@pluralizers ||= { :en => lambda{|n| n == 1 ? :one : :other } } @pluralizers ||= {
:en => lambda { |count, entry|
case count
when 1 then entry.has_key?(:one) ? :one : :other
else :other
end
},
:sl => lambda { |count, entry|
case count % 100
when 1 then entry.has_key?(:one) ? :one : :other
when 2 then entry.has_key?(:two) ? :two : :other
when 3,4 then entry.has_key?(:few) ? :few : :other
else :other
end
}
}
end end
# Overwrite this method to return something other than a String # Overwrite this method to return something other than a String
@ -34,4 +49,4 @@ module Globalize
end end
end end
end end
end end

View file

@ -48,9 +48,8 @@ module HttpAcceptLanguage
# #
def compatible_language_from(array) def compatible_language_from(array)
user_preferred_languages.map do |x| user_preferred_languages.map do |x|
x = x.to_s.split("-")[0]
array.find do |y| array.find do |y|
y.to_s.split("-")[0] == x y.to_s =~ /^#{x.to_s}(-|$)/
end end
end.compact.first end.compact.first
end end

View file

@ -1,22 +1,63 @@
# Icelandic, by Ævar Arnfjörð Bjarmason <avarab@gmail.com> # Icelandic, by Ævar Arnfjörð Bjarmason <avarab@gmail.com>
is: is:
support: number:
array: # Used in number_with_delimiter()
sentence_connector: "og" # These are also the defaults for 'currency', 'percentage', 'precision', and 'human'
words_connector: ", " format:
two_words_connector: " og " # Sets the separator between the units, for more precision (e.g. 1.0 / 2.0 == 0.5)
last_word_connector: " og " separator: ","
skip_last_comma: true # Delimets thousands (e.g. 1,000,000 is a million) (always in groups of three)
delimiter: "."
# Number of decimals, behind the separator (1 with a precision of 2 gives: 1.00)
precision: 2
# Used in number_to_currency()
currency:
format:
# Where is the currency sign? %u is the currency unit, %n the number (default: $5.00)
format: "%u %n"
unit: "kr."
# These three are to override number.format and are optional
#separator: ","
#delimiter: "."
#precision: 2
# Used in number_to_human_size()
human:
format:
# These three are to override number.format and are optional
# separator:
delimiter: ""
precision: 1
storage_units:
# Storage units output formatting.
# %u is the storage unit, %n is the number (default: 2 MB)
format: "%n %u"
units:
byte:
one: "bæti"
other: "bæti"
kb: "KB"
mb: "MB"
gb: "GB"
tb: "TB"
date: date:
formats: formats:
# Use the strftime parameters for formats.
# When no format has been given, it uses default.
# You can provide other formats here if you like!
default: "%d.%m.%Y" default: "%d.%m.%Y"
short: "%e. %b" short: "%e. %b"
long: "%e. %B %Y" long: "%e. %B %Y"
day_names: [Sunnudaginn, Mánudaginn, Þriðjudaginn, Miðvikudaginn, Fimmtudaginn, Föstudaginn, Laugardaginn] day_names: [Sunnudaginn, Mánudaginn, Þriðjudaginn, Miðvikudaginn, Fimmtudaginn, Föstudaginn, Laugardaginn]
abbr_day_names: [sun, mán, þri, mið, fim, fös, lau] abbr_day_names: [sun, mán, þri, mið, fim, fös, lau]
# Don't forget the nil at the beginning; there's no such thing as a 0th month
month_names: [~, janúar, febrúar, mars, apríl, maí, júní, júlí, ágúst, september, október, nóvember, desember] month_names: [~, janúar, febrúar, mars, apríl, maí, júní, júlí, ágúst, september, október, nóvember, desember]
abbr_month_names: [~, jan, feb, mar, apr, maí, jún, júl, ágú, sep, okt, nóv, des] abbr_month_names: [~, jan, feb, mar, apr, maí, jún, júl, ágú, sep, okt, nóv, des]
# Used in date_select and datime_select.
order: [:day, :month, :year] order: [:day, :month, :year]
time: time:
@ -28,6 +69,16 @@ is:
am: "" am: ""
pm: "" pm: ""
# Used in array.to_sentence.
support:
array:
sentence_connector: "og"
words_connector: ", "
two_words_connector: " og "
last_word_connector: " og "
skip_last_comma: true
# Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
datetime: datetime:
distance_in_words: distance_in_words:
half_a_minute: "hálf mínúta" half_a_minute: "hálf mínúta"
@ -62,20 +113,6 @@ is:
one: "meira en 1 ár" one: "meira en 1 ár"
other: "meira en {{count}} ár" other: "meira en {{count}} ár"
number:
format:
precision: 2
separator: "."
delimiter: ","
currency:
format:
unit: "kr"
format: "%n %u"
precision:
format:
delimiter: ""
precision: 4
activerecord: activerecord:
errors: errors:
template: template:
@ -84,8 +121,8 @@ is:
other: "Ekki var hægt að vista {{model}} vegna {{count}} villna." other: "Ekki var hægt að vista {{model}} vegna {{count}} villna."
body: "Upp kom vandamál í eftirfarandi dálkum:" body: "Upp kom vandamál í eftirfarandi dálkum:"
messages: messages:
# inclusion: "er ikke inkludert i listen" inclusion: "er ekki í listanum"
# exclusion: "er reservert" exclusion: "er frátekið"
invalid: "er ógilt" invalid: "er ógilt"
confirmation: "er ekki jafngilt staðfestingunni" confirmation: "er ekki jafngilt staðfestingunni"
accepted: "þarf að vera tekið gilt" accepted: "þarf að vera tekið gilt"