Merged 16488:16743 from trunk.
This commit is contained in:
commit
05e2120273
82 changed files with 550 additions and 1761 deletions
|
@ -76,7 +76,7 @@ class AmfController < ApplicationController
|
|||
logger.info("Executing AMF #{message}(#{args.join(',')}):#{index}")
|
||||
|
||||
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_deleted'; results[index]=AMF.putdata(index,whichways_deleted(*args))
|
||||
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.):
|
||||
# uses POTLATCH_PRESETS global, set up in OSM::Potlatch.
|
||||
|
||||
def getpresets(lang) #:doc:
|
||||
lang.gsub!(/[^\w\-]/,'')
|
||||
def getpresets(usertoken,lang) #:doc:
|
||||
user = getuser(usertoken)
|
||||
|
||||
if user && !user.languages.empty?
|
||||
request.user_preferred_languages = user.languages
|
||||
end
|
||||
|
||||
lang = request.compatible_language_from(getlocales)
|
||||
|
||||
begin
|
||||
# if not, try the browser language
|
||||
localised = YAML::load(File.open("#{RAILS_ROOT}/config/potlatch/localised/#{lang}/localised.yaml"))
|
||||
rescue
|
||||
localised = "" # guess we'll just have to use the hardcoded English text instead
|
||||
# fall back to hardcoded English text
|
||||
localised = ""
|
||||
end
|
||||
|
||||
begin
|
||||
|
@ -518,6 +526,8 @@ class AmfController < ApplicationController
|
|||
amf_handle_error("'putrelation' #{relid}") do
|
||||
user = getuser(usertoken)
|
||||
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
|
||||
visible = (visible.to_i != 0)
|
||||
|
@ -604,6 +614,8 @@ class AmfController < ApplicationController
|
|||
user = getuser(usertoken)
|
||||
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 !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
|
||||
pointlist.collect! {|a| a.to_i }
|
||||
|
@ -628,6 +640,11 @@ class AmfController < ApplicationController
|
|||
node.lat = lat
|
||||
node.lon = lon
|
||||
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.version = version
|
||||
if id <= 0
|
||||
|
@ -700,6 +717,8 @@ class AmfController < ApplicationController
|
|||
amf_handle_error("'putpoi' #{id}") do
|
||||
user = getuser(usertoken)
|
||||
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
|
||||
visible = (visible.to_i == 1)
|
||||
|
@ -851,6 +870,34 @@ class AmfController < ApplicationController
|
|||
}
|
||||
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
|
||||
|
|
|
@ -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>"
|
||||
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
|
||||
@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
|
||||
@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
|
||||
@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
|
||||
else
|
||||
@title = t 'changeset.list.title'
|
||||
@heading = t 'changeset.list.heading'
|
||||
@description = t 'changeset.list.description'
|
||||
end
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@ class GeocoderController < ApplicationController
|
|||
require 'net/http'
|
||||
require 'rexml/document'
|
||||
|
||||
before_filter :authorize_web
|
||||
before_filter :set_locale
|
||||
|
||||
def search
|
||||
|
|
|
@ -104,5 +104,26 @@ class MessageController < ApplicationController
|
|||
@title = t'message.no_such_user.title'
|
||||
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
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
class User < ActiveRecord::Base
|
||||
require 'xml/libxml'
|
||||
|
||||
has_many :traces
|
||||
has_many :traces, :conditions => { :visible => true }
|
||||
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 :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 :tokens, :class_name => "UserToken"
|
||||
has_many :preferences, :class_name => "UserPreference"
|
||||
|
|
|
@ -234,7 +234,7 @@ class Way < ActiveRecord::Base
|
|||
def preconditions_ok?(old_nodes = [])
|
||||
return false if self.nds.empty?
|
||||
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
|
||||
|
||||
# check only the new nodes, for efficiency - old nodes having been checked last time and can't
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
<%= javascript_include_tag '/openlayers/OpenLayers.js' %>
|
||||
<%= javascript_include_tag '/openlayers/OpenStreetMap.js' %>
|
||||
<%= javascript_include_tag 'map.js' %>
|
||||
<td align="right">
|
||||
<td>
|
||||
<div style="width: 250px; margin: auto; text-align: right"">
|
||||
<% if map.instance_of? Changeset or map.visible %>
|
||||
<div id="small_map" style="width:250px; height: 300px; border: solid 1px black">
|
||||
</div>
|
||||
|
@ -14,6 +15,7 @@
|
|||
<% else %>
|
||||
<%= t 'browse.map.deleted' %>
|
||||
<% end %>
|
||||
</div>
|
||||
</td>
|
||||
<% if map.instance_of? Changeset or map.visible %>
|
||||
<script type="text/javascript">
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<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 %>
|
||||
<span class="nowrap">
|
||||
<% if @prev_by_user %>
|
||||
<
|
||||
<%= link_to @prev_by_user.id.to_s,
|
||||
|
@ -20,8 +21,10 @@
|
|||
{ :title => t('browse.changeset_navigation.user.next_tooltip', :user => @next_by_user.user.display_name) } %>
|
||||
>
|
||||
<% end %>
|
||||
</span>
|
||||
<br/>
|
||||
<% end %>
|
||||
<span class="nowrap">
|
||||
<% if @prev %>
|
||||
<
|
||||
<%= link_to @prev.id.to_s,
|
||||
|
@ -37,4 +40,5 @@
|
|||
{ :title => t('browse.changeset_navigation.all.next_tooltip') } %>
|
||||
>
|
||||
<% end %>
|
||||
</span>
|
||||
</div>
|
||||
|
|
|
@ -2,12 +2,17 @@
|
|||
<% cl = cycle('table0', 'table1') %>
|
||||
|
||||
<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 class="<%= cl %> date">
|
||||
<% 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>
|
||||
|
||||
|
||||
|
@ -48,8 +53,4 @@
|
|||
%>
|
||||
</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>
|
||||
|
|
|
@ -7,14 +7,5 @@ if (current_page.first_item < current_page.last_item) # if more than 1 changeset
|
|||
%>-<%= current_page.last_item %><%
|
||||
end %>
|
||||
<%= t'changeset.changeset_paging_nav.of'%> <%= @edit_pages.item_count %>)
|
||||
|
||||
<%
|
||||
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
|
||||
%>
|
||||
| <%= pagination_links_each(@edit_pages, {}) { |n| link_to(n, params.merge({ :page => n })) } %>
|
||||
</p>
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
<% end %>
|
||||
<th><%= t'changeset.changesets.comment' %></th>
|
||||
<th><%= t'changeset.changesets.area' %></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
<%= render :partial => 'changeset', :locals => {:showusername => showusername}, :collection => @edits unless @edits.nil? %>
|
||||
</table>
|
||||
|
|
|
@ -5,7 +5,9 @@ atom_feed(:language => I18n.locale, :schema_date => 2009,
|
|||
feed.title @title
|
||||
|
||||
feed.subtitle :type => 'xhtml' do |xhtml|
|
||||
xhtml.p @description
|
||||
xhtml.p do |p|
|
||||
p << @description
|
||||
end
|
||||
end
|
||||
|
||||
feed.updated @edits.map {|e| [e.created_at, e.closed_at].max }.max
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<h1><%= @title %></h1>
|
||||
<h1><%= @heading %></h1>
|
||||
<p><%= @description %></p>
|
||||
|
||||
<%= render :partial => 'changeset_paging_nav' %>
|
||||
|
|
|
@ -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? %>">
|
||||
<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-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? %>
|
||||
<td><%= button_to t('message.message_summary.unread_button'), :controller => 'message', :action => 'mark', :message_id => message_summary.id, :mark => 'unread' %></td>
|
||||
<% else %>
|
||||
<td><%= button_to t('message.message_summary.read_button'), :controller => 'message', :action => 'mark', :message_id => message_summary.id, :mark => 'read' %></td>
|
||||
<% 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.delete_button'), :controller => 'message', :action => 'delete', :message_id => message_summary.id, :referer => request.request_uri %></td>
|
||||
</tr>
|
||||
|
|
|
@ -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">
|
||||
<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-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>
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
<th><%= t'message.inbox.date' %></th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
<%= render :partial => "message_summary", :collection => @user.messages %>
|
||||
</table>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<th><%= t'message.outbox.to' %></th>
|
||||
<th><%= t'message.outbox.subject' %></th>
|
||||
<th><%= t'message.outbox.date' %></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
<%= render :partial => "sent_message_summary", :collection => @user.sent_messages %>
|
||||
</table>
|
||||
|
|
|
@ -81,7 +81,7 @@
|
|||
<% end %>
|
||||
<% end %>
|
||||
</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>
|
||||
<%end%>
|
||||
</table>
|
||||
|
@ -110,7 +110,7 @@
|
|||
<%= t 'user.view.km away', :count => distance.round %>
|
||||
<% end %>
|
||||
</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>
|
||||
<% end %>
|
||||
</table>
|
||||
|
|
|
@ -2,5 +2,3 @@ require 'globalize/i18n/missing_translations_log_handler'
|
|||
|
||||
I18n.missing_translations_logger = Logger.new("#{RAILS_ROOT}/log/missing_translations.log")
|
||||
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 }
|
||||
|
|
|
@ -184,7 +184,6 @@ be:
|
|||
show_area_box: "паказаць мяжу мясцовасці"
|
||||
big_area: "(вялікая)"
|
||||
view_changeset_details: "Падрабязней пра набор зменаў"
|
||||
more: "больш"
|
||||
changesets:
|
||||
id: "ID"
|
||||
saved_at: "Запісаны"
|
||||
|
|
|
@ -87,6 +87,14 @@ de:
|
|||
download: "{{changeset_xml_link}} oder {{osmchange_xml_link}} herunterladen"
|
||||
changesetxml: "Changeset 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:
|
||||
created_at: "Erstellt am:"
|
||||
closed_at: "Geschlossen am:"
|
||||
|
@ -95,9 +103,15 @@ de:
|
|||
no_bounding_box: "Für dieses Changeset wurde kein Bereich gespeichert."
|
||||
show_area_box: "Bereichsgrenze anzeigen"
|
||||
box: "Bereichsgrenze"
|
||||
has_nodes: "Enthält folgende {{count}} Knoten:"
|
||||
has_ways: "Enthält folgende {{count}} Wege:"
|
||||
has_relations: "Enthält folgende {{count}} Relationen:"
|
||||
has_nodes:
|
||||
one: "Enthält folgenden Knoten:"
|
||||
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:
|
||||
edited_at: "Bearbeitet am:"
|
||||
edited_by: "Bearbeitet von:"
|
||||
|
@ -145,6 +159,9 @@ de:
|
|||
relation_history:
|
||||
relation_history: "Relations-Chronik"
|
||||
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:
|
||||
entry: "{{type}} {{name}}"
|
||||
entry_role: "{{type}} {{name}} als {{role}}"
|
||||
|
@ -229,34 +246,18 @@ de:
|
|||
show_area_box: "Bereich anzeigen"
|
||||
big_area: "(groß)"
|
||||
view_changeset_details: "Details des Changesets"
|
||||
more: "mehr"
|
||||
changesets:
|
||||
id: "ID"
|
||||
saved_at: "Gespeichert am"
|
||||
user: "Benutzer"
|
||||
comment: "Kommentar"
|
||||
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:
|
||||
recent_changes: "Letzte Änderungen"
|
||||
recently_edited_changesets: "Zuletzt erstellte Changesets:"
|
||||
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."
|
||||
list_user:
|
||||
edits_by_username: "Beiträge von {{username_link}}"
|
||||
no_visible_edits_by: "Keine sichtbaren Beiträge von {{name}}."
|
||||
for_all_changes: "Änderungen von allen Nutzern {{recent_changes_link}}"
|
||||
recent_changes: "Letzte Änderungen"
|
||||
title: "Changesets"
|
||||
description: "Letzte Änderungen"
|
||||
description_user: "Letzte Änderungen von {{user}}"
|
||||
description_bbox: "Letzte Änderungen in {{bbox}}"
|
||||
description_user_bbox: "Letzte Änderungen von {{user}} in {{bbox}}"
|
||||
diary_entry:
|
||||
new:
|
||||
title: Selbst Bloggen
|
||||
|
@ -346,8 +347,36 @@ de:
|
|||
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>'
|
||||
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:
|
||||
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:
|
||||
project_name:
|
||||
# in <title>
|
||||
|
@ -517,6 +546,7 @@ de:
|
|||
unread_button: "Als ungelesen markieren"
|
||||
read_button: "Als gelesen markieren"
|
||||
reply_button: "Antworten"
|
||||
delete_button: "Löschen"
|
||||
new:
|
||||
title: "Nachricht senden"
|
||||
send_message_to: "Eine Nachricht an {{name}} senden"
|
||||
|
@ -552,9 +582,13 @@ de:
|
|||
reading_your_sent_messages: "Deine versendeten Nachrichten lesen"
|
||||
to: "An"
|
||||
back_to_outbox: "Zurück zu Gesendete Nachrichten"
|
||||
sent_message_summary:
|
||||
delete_button: "Löschen"
|
||||
mark:
|
||||
as_read: "Nachricht als gelesen markiert"
|
||||
as_unread: "Nachricht als ungelesen markiert"
|
||||
delete:
|
||||
deleted: "Nachricht gelöscht"
|
||||
site:
|
||||
index:
|
||||
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_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.'
|
||||
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:
|
||||
search_results: Suchergebnisse
|
||||
close: Schließen
|
||||
|
@ -670,6 +704,7 @@ de:
|
|||
owner: "Besitzer:"
|
||||
description: "Beschreibung:"
|
||||
tags: "Tags:"
|
||||
tags_help: "Trennung durch Komma"
|
||||
save_button: "Speichere Änderungen"
|
||||
no_such_user:
|
||||
title: "Benutzer nicht gefunden"
|
||||
|
@ -679,6 +714,7 @@ de:
|
|||
upload_gpx: "GPX-Datei"
|
||||
description: "Beschreibung"
|
||||
tags: "Tags"
|
||||
tags_help: "Trennung durch Komma"
|
||||
public: "Öffentlich?"
|
||||
public_help: "Was heißt das?"
|
||||
public_help_url: "http://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces"
|
||||
|
@ -820,6 +856,7 @@ de:
|
|||
your friends: Eigene Freunde
|
||||
no friends: Du hast bis jetzt keine Freunde hinzugefügt.
|
||||
km away: "{{count}}km entfernt"
|
||||
m away: "{{count}}m entfernt"
|
||||
nearby users: "Benutzer in der Nähe: "
|
||||
no nearby users: "Es gibt bisher keine Benutzer, die einen Standort in deiner Nähe angegeben haben."
|
||||
change your settings: Ändere deine Einstellungen
|
||||
|
|
|
@ -239,6 +239,7 @@ en:
|
|||
showing_page: "Showing page"
|
||||
of: "of"
|
||||
changeset:
|
||||
id: "#{{id}}"
|
||||
still_editing: "(still editing)"
|
||||
anonymous: "Anonymous"
|
||||
no_comment: "(none)"
|
||||
|
@ -246,7 +247,6 @@ en:
|
|||
show_area_box: "show area box"
|
||||
big_area: "(big)"
|
||||
view_changeset_details: "View changeset details"
|
||||
more: "more"
|
||||
changesets:
|
||||
id: "ID"
|
||||
saved_at: "Saved at"
|
||||
|
@ -255,10 +255,19 @@ en:
|
|||
area: "Area"
|
||||
list:
|
||||
title: "Changesets"
|
||||
description: "Recent edits"
|
||||
description_user: "Recent edits by {{user}}"
|
||||
description_bbox: "Recent edits within {{bbox}}"
|
||||
description_user_bbox: "Recent edits by {{user}} within {{bbox}}"
|
||||
title_user: "Changesets by {{user}}"
|
||||
title_bbox: "Changesets within {{bbox}}"
|
||||
title_user_bbox: "Changesets 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:
|
||||
new:
|
||||
title: New Diary Entry
|
||||
|
@ -547,6 +556,7 @@ en:
|
|||
unread_button: "Mark as unread"
|
||||
read_button: "Mark as read"
|
||||
reply_button: "Reply"
|
||||
delete_button: "Delete"
|
||||
new:
|
||||
title: "Send message"
|
||||
send_message_to: "Send a new message to {{name}}"
|
||||
|
@ -582,9 +592,13 @@ en:
|
|||
reading_your_sent_messages: "Reading your sent messages"
|
||||
to: "To"
|
||||
back_to_outbox: "Back to outbox"
|
||||
sent_message_summary:
|
||||
delete_button: "Delete"
|
||||
mark:
|
||||
as_read: "Message marked as read"
|
||||
as_unread: "Message marked as unread"
|
||||
delete:
|
||||
deleted: "Message deleted"
|
||||
site:
|
||||
index:
|
||||
js_1: "You are either using a browser that doesn't support javascript, or you have disabled javascript."
|
||||
|
|
|
@ -202,7 +202,6 @@ es:
|
|||
show_area_box: "mostrar caja"
|
||||
big_area: "(grande)"
|
||||
view_changeset_details: "Ver detalles del conjunto de cambios"
|
||||
more: "más"
|
||||
changesets:
|
||||
id: "ID"
|
||||
saved_at: "Guardado en"
|
||||
|
|
|
@ -184,7 +184,6 @@ he:
|
|||
show_area_box: "show area box"
|
||||
big_area: "(big)"
|
||||
view_changeset_details: "View changeset details"
|
||||
more: "more"
|
||||
changesets:
|
||||
id: "ID"
|
||||
saved_at: "Saved at"
|
||||
|
|
|
@ -209,7 +209,6 @@ hi:
|
|||
show_area_box: "show area box"
|
||||
big_area: "(बड़ा क्षेत्र)"
|
||||
view_changeset_details: "इस changeset के विवरण देखे"
|
||||
more: "और दिखाए"
|
||||
changesets:
|
||||
id: "आईडी"
|
||||
saved_at: "समय जब सुरक्षित किया गया"
|
||||
|
|
|
@ -83,10 +83,18 @@ hu:
|
|||
browse:
|
||||
changeset:
|
||||
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"
|
||||
changesetxml: "Changeset 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:
|
||||
created_at: "Készült:"
|
||||
closed_at: "Lezárva:"
|
||||
|
@ -95,9 +103,15 @@ hu:
|
|||
no_bounding_box: "Nincs eltárolva határoló ehhez a módosításcsomaghoz."
|
||||
show_area_box: "Területhatároló megtekintése"
|
||||
box: "határoló"
|
||||
has_nodes: "A következő {{count}} pontot tartalmazza:"
|
||||
has_ways: "A következő {{count}} vonalat tartalmazza:"
|
||||
has_relations: "A következő {{count}} kapcsolatot tartalmazza:"
|
||||
has_nodes:
|
||||
one: "A következő {{count}} pontot 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:
|
||||
edited_at: "Szerkesztve:"
|
||||
edited_by: "Szerkesztette:"
|
||||
|
@ -232,34 +246,18 @@ hu:
|
|||
show_area_box: "területhatároló megjelenítése"
|
||||
big_area: "(nagy)"
|
||||
view_changeset_details: "Módosításcsomag részleteinek megtekintése"
|
||||
more: "tovább"
|
||||
changesets:
|
||||
id: "Azonosító"
|
||||
saved_at: "Mentve"
|
||||
user: "Felhasználó"
|
||||
comment: "Megjegyzés"
|
||||
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:
|
||||
recent_changes: "Legutóbbi módosítások"
|
||||
recently_edited_changesets: "Legutóbb szerkesztett módosításcsomagok:"
|
||||
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."
|
||||
list_user:
|
||||
edits_by_username: "{{username_link}} szerkesztései"
|
||||
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"
|
||||
title: "Módosításcsomagok"
|
||||
description: "Legutóbbi szerkesztések"
|
||||
description_user: "{{user}} legutóbbi szerkesztései"
|
||||
description_bbox: "Legutóbbi szerkesztések ezen belül: {{bbox}}"
|
||||
description_user_bbox: "{{user}} legutóbbi szerkesztései ezen belül: {{bbox}}"
|
||||
diary_entry:
|
||||
new:
|
||||
title: Új naplóbejegyzés
|
||||
|
@ -711,7 +709,7 @@ hu:
|
|||
upload_gpx: "GPX fájl feltöltése"
|
||||
description: "Leírás"
|
||||
tags: "Címkék"
|
||||
tags_help: "használj vesszőket"
|
||||
tags_help: "vesszővel elválasztva"
|
||||
public: "Nyilvános?"
|
||||
public_help: "mit jelent ez?"
|
||||
public_help_url: "http://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces"
|
||||
|
|
|
@ -245,7 +245,6 @@ is:
|
|||
show_area_box: "sýna svæðismörk"
|
||||
big_area: "(stórt)"
|
||||
view_changeset_details: "Skoða breytingarsett"
|
||||
more: "meira"
|
||||
changesets:
|
||||
id: "Kennitala"
|
||||
saved_at: "Vistað"
|
||||
|
@ -254,10 +253,19 @@ is:
|
|||
area: "Svæði"
|
||||
list:
|
||||
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_user: "Nýlegar breytingar eftir {{user}}"
|
||||
description_bbox: "Nýlegar breytingar innan {{bbox}}"
|
||||
description_user_bbox: "Nýlegar breytingar eftir {{user}} innan {{bbox}}"
|
||||
description_user: "Breytingar eftir {{user}}"
|
||||
description_bbox: "Breytingar innan {{bbox}}"
|
||||
description_user_bbox: "Breytingar eftir {{user}} innan {{bbox}}"
|
||||
diary_entry:
|
||||
new:
|
||||
title: "Ný bloggfærsla"
|
||||
|
@ -496,7 +504,7 @@ is:
|
|||
more_videos: "Fleiri myndbönd er {{more_videos_link}}."
|
||||
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>.'
|
||||
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>.'
|
||||
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:
|
||||
|
@ -544,6 +552,7 @@ is:
|
|||
unread_button: "Merkja sem ólesin"
|
||||
read_button: "Merkja sem lesin"
|
||||
reply_button: "Svara"
|
||||
delete_button: "Eyða"
|
||||
new:
|
||||
title: "Senda skilaboð"
|
||||
send_message_to: "Senda skilaboð til {{name}}"
|
||||
|
@ -579,9 +588,13 @@ is:
|
|||
reading_your_sent_messages: "Les send skilaboð"
|
||||
to: "Til"
|
||||
back_to_outbox: "Aftur í úthólf"
|
||||
sent_message_summary:
|
||||
delete_button: "Eyða"
|
||||
mark:
|
||||
as_read: "Skilaboðin voru merkt sem lesin"
|
||||
as_unread: "Skilaboðin voru merkt sem ólesin"
|
||||
delete:
|
||||
deleted: "Skilaboðunum var eytt"
|
||||
site:
|
||||
index:
|
||||
js_1: "Þú ert annaðhvort að nota vafra sem styður ekki JavaScript eða hefur slökkt á JavaScript stuðning."
|
||||
|
|
|
@ -184,7 +184,6 @@ it:
|
|||
show_area_box: "visualizza il riquadro dell'area"
|
||||
big_area: "(grande)"
|
||||
view_changeset_details: "Visualizza i dettagli del gruppo di modifiche"
|
||||
more: "maggiori informazioni"
|
||||
changesets:
|
||||
id: "ID"
|
||||
saved_at: "Salvato il"
|
||||
|
@ -310,7 +309,7 @@ it:
|
|||
export: Esporta
|
||||
gps_traces: Tracciati GPS
|
||||
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_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}}."
|
||||
|
@ -425,12 +424,12 @@ it:
|
|||
project_name: "progetto OpenStreetMap"
|
||||
edit:
|
||||
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
|
||||
anon_edits: "({{link}})"
|
||||
anon_edits_link: "http://wiki.openstreetmap.org/wiki/Disabling_anonymous_edits"
|
||||
anon_edits_link_text: "Scopri perché è questo il caso."
|
||||
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.'
|
||||
anon_edits_link_text: "Leggi il perché."
|
||||
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.)"
|
||||
sidebar:
|
||||
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."
|
||||
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."
|
||||
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: "
|
||||
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>)'
|
||||
|
|
|
@ -210,7 +210,6 @@ ja:
|
|||
show_area_box: "領域境界を表示"
|
||||
big_area: "(大)"
|
||||
view_changeset_details: "変更セットの詳細表示"
|
||||
more: "詳細"
|
||||
changesets:
|
||||
id: "ID"
|
||||
saved_at: "保存日時"
|
||||
|
|
|
@ -210,7 +210,6 @@ ko:
|
|||
show_area_box: "지역 박스 보기"
|
||||
big_area: "(큰 지역)"
|
||||
view_changeset_details: "변경셋 세부 사항 보기"
|
||||
more: "more"
|
||||
changesets:
|
||||
id: "ID"
|
||||
saved_at: "저장 시간"
|
||||
|
|
|
@ -184,7 +184,6 @@ nl:
|
|||
show_area_box: "toon rechthoek"
|
||||
big_area: "(groot)"
|
||||
view_changeset_details: "Toon changeset-details"
|
||||
more: "meer"
|
||||
changesets:
|
||||
id: "ID"
|
||||
saved_at: "Opgeslagen op"
|
||||
|
|
|
@ -184,7 +184,6 @@ pl:
|
|||
show_area_box: "pokaż prostokąt zawierający"
|
||||
big_area: "(pełny)"
|
||||
view_changeset_details: "Zobacz szczegóły changesetu"
|
||||
more: "więcej"
|
||||
changesets:
|
||||
id: "ID"
|
||||
saved_at: "Zapisano"
|
||||
|
|
|
@ -210,7 +210,6 @@ pt-BR:
|
|||
show_area_box: "exibir limite da área"
|
||||
big_area: "(grande)"
|
||||
view_changeset_details: "Ver detalhes das alterações"
|
||||
more: "mais"
|
||||
changesets:
|
||||
id: "ID"
|
||||
saved_at: "Salvo em"
|
||||
|
|
|
@ -229,7 +229,6 @@ ro:
|
|||
show_area_box: "afișează chenarul zonei"
|
||||
big_area: "(mare)"
|
||||
view_changeset_details: "Vizualizare detalii set de schimbări"
|
||||
more: "mai mult"
|
||||
changesets:
|
||||
id: "ID"
|
||||
saved_at: "Salvat la"
|
||||
|
|
|
@ -184,7 +184,6 @@ ru:
|
|||
show_area_box: "Показать границы сеанса"
|
||||
big_area: "(большая)"
|
||||
view_changeset_details: "Просмотреть данные сеанса"
|
||||
more: "подробнее"
|
||||
changesets:
|
||||
id: "ID"
|
||||
saved_at: "Завершено"
|
||||
|
|
|
@ -72,6 +72,10 @@ sl:
|
|||
description: "Opis"
|
||||
languages: "Jeziki"
|
||||
pass_crypt: "Geslo"
|
||||
printable_name:
|
||||
with_id: "{{id}}"
|
||||
with_version: "{{id}}, {{version}}. različica"
|
||||
with_name: "{{name}} ({{id}})"
|
||||
map:
|
||||
view: Zemljevid
|
||||
edit: Urejanje
|
||||
|
@ -83,6 +87,14 @@ sl:
|
|||
download: "Prenesi {{changeset_xml_link}} ali {{osmchange_xml_link}}"
|
||||
changesetxml: "Changeset 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:
|
||||
created_at: "Ustvarjen:"
|
||||
closed_at: "Zaključen:"
|
||||
|
@ -139,7 +151,7 @@ sl:
|
|||
view_history: "poglej zgodovino"
|
||||
edit: "uredi"
|
||||
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:
|
||||
node: vozlišče
|
||||
way: pot
|
||||
|
@ -210,7 +222,6 @@ sl:
|
|||
nodes: "Vozlišča:"
|
||||
part_of: "Del:"
|
||||
also_part_of:
|
||||
one: "tudi del poti {{related_ways}}"
|
||||
other: "tudi del poti {{related_ways}}"
|
||||
way_history:
|
||||
way_history: "Zgodovina poti"
|
||||
|
@ -221,7 +232,7 @@ sl:
|
|||
way:
|
||||
way: "Pot"
|
||||
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"
|
||||
view_history: "poglej zgodovino"
|
||||
edit: "uredi"
|
||||
|
@ -230,6 +241,7 @@ sl:
|
|||
showing_page: "Prikaz strani"
|
||||
of: "od"
|
||||
changeset:
|
||||
id: "št. {{id}}"
|
||||
still_editing: "(še ureja)"
|
||||
anonymous: "Anonimen"
|
||||
no_comment: "(brez)"
|
||||
|
@ -237,34 +249,27 @@ sl:
|
|||
show_area_box: "prikaži pravokotno področje"
|
||||
big_area: "(veliko)"
|
||||
view_changeset_details: "Ogled podrobnosti paketa sprememb"
|
||||
more: "več"
|
||||
changesets:
|
||||
id: "ID"
|
||||
saved_at: "Shranjen"
|
||||
user: "Uporabnik"
|
||||
comment: "Komentar"
|
||||
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:
|
||||
recent_changes: "Nedavne spremembe"
|
||||
recently_edited_changesets: "Nedavno urejeni paketi sprememb:"
|
||||
for_more_changesets: "Za več sprememb izberite uporabnika in poglejte njegove spremembe ali pa med ogledom zemljevida nekega področja preklopite na zavihek 'zgodovina'."
|
||||
list_user:
|
||||
edits_by_username: "Spremembe uporabnika {{username_link}}"
|
||||
no_visible_edits_by: "Ni vidnih sprememb uporabnika {{name}}."
|
||||
for_all_changes: "Za spremembe vseh uporabnikov poglejte {{recent_changes_link}}"
|
||||
recent_changes: "nedavne spremembe"
|
||||
title: "Paketi sprememb"
|
||||
title_user: "Paketi sprememb uporabnika {{user}}"
|
||||
title_bbox: "Paketi sprememb znotraj področja {{bbox}}"
|
||||
title_user_bbox: "Paketi sprememb uporabnika {{user}} znotraj {{bbox}}"
|
||||
|
||||
heading: "Paketi sprememb"
|
||||
heading_user: "Paketi sprememb uporabnika {{user}}"
|
||||
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:
|
||||
new:
|
||||
title: Nov zapis v dnevnik uporabnikov
|
||||
|
@ -565,6 +570,7 @@ sl:
|
|||
unread_button: "Označi kot neprebrano"
|
||||
read_button: "Označi kot prebrano"
|
||||
reply_button: "Odgovori"
|
||||
delete_button: "Izbriši"
|
||||
new:
|
||||
title: "Pošiljanje sporočila"
|
||||
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"
|
||||
to: "Za"
|
||||
back_to_outbox: "Nazaj na poslano pošto"
|
||||
sent_message_summary:
|
||||
delete_button: "Izbriši"
|
||||
mark:
|
||||
as_read: "Sporočilo označeno kot prebrano"
|
||||
as_unread: "Sporočilo označeno kot neprebrano"
|
||||
delete:
|
||||
deleted: "Sporočilo izbrisano"
|
||||
site:
|
||||
index:
|
||||
js_1: "Bodisi uporabljate brskalnik, ki ne podpira Javascript-a, ali pa je izvajanje Javascript-a onemogočeno."
|
||||
|
|
|
@ -229,7 +229,6 @@ vi:
|
|||
show_area_box: "hiện hộp vùng"
|
||||
big_area: "(lớn)"
|
||||
view_changeset_details: "Xem chi tiết của bộ thay đổi"
|
||||
more: "thêm"
|
||||
changesets:
|
||||
id: "ID"
|
||||
saved_at: "Lúc Lưu"
|
||||
|
|
|
@ -210,7 +210,6 @@ yo:
|
|||
show_area_box: "show area box"
|
||||
big_area: "(big)"
|
||||
view_changeset_details: "View changeset details"
|
||||
more: "more"
|
||||
changesets:
|
||||
id: "ID"
|
||||
saved_at: "Saved at"
|
||||
|
|
|
@ -186,7 +186,6 @@ zh-CN:
|
|||
show_area_box: "显示区域窗口"
|
||||
big_area: "(大)"
|
||||
view_changeset_details: "查看详细变更"
|
||||
more: "更多"
|
||||
changesets:
|
||||
id: "ID"
|
||||
saved_at: "保存在"
|
||||
|
|
|
@ -210,7 +210,6 @@ zh-TW:
|
|||
show_area_box: "顯示區域方塊"
|
||||
big_area: "(big)"
|
||||
view_changeset_details: "檢視變更組合詳細資訊"
|
||||
more: "更多"
|
||||
changesets:
|
||||
id: "ID"
|
||||
saved_at: "儲存於"
|
||||
|
|
0
config/potlatch/autocomplete.txt
Executable file → Normal file
0
config/potlatch/autocomplete.txt
Executable file → Normal file
File diff suppressed because it is too large
Load diff
1
config/potlatch/localised/cz/localised.yaml
Executable file → Normal file
1
config/potlatch/localised/cz/localised.yaml
Executable file → Normal file
|
@ -83,3 +83,4 @@
|
|||
"advice_nocommonpoint": Cesty nesdílí společný bod
|
||||
"option_warnings": Zobrazovat plovoucí varování
|
||||
"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
0
config/potlatch/localised/da/localised.yaml
Executable file → Normal file
0
config/potlatch/localised/de/localised.yaml
Executable file → Normal file
0
config/potlatch/localised/de/localised.yaml
Executable file → Normal file
0
config/potlatch/localised/en/help.html
Executable file → Normal file
0
config/potlatch/localised/en/help.html
Executable file → Normal file
1
config/potlatch/localised/es/localised.yaml
Executable file → Normal file
1
config/potlatch/localised/es/localised.yaml
Executable file → Normal file
|
@ -83,3 +83,4 @@
|
|||
"advice_nocommonpoint": Las vías no comparten un punto en común
|
||||
"option_warnings": Mostrar alertas flotantes
|
||||
"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
1
config/potlatch/localised/fi/localised.yaml
Executable file → Normal file
|
@ -83,3 +83,4 @@
|
|||
"advice_nocommonpoint": Tiet eivät jaa yhteistä pistettä
|
||||
"option_warnings": Näytä siirtymisvaroitukset
|
||||
"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
1
config/potlatch/localised/fr/localised.yaml
Executable file → Normal file
|
@ -83,3 +83,4 @@
|
|||
"advice_nocommonpoint": Les chemins ne partagent pas de point commun
|
||||
"option_warnings": Montrer les avertissements flottants
|
||||
"reverting": annule
|
||||
"prompt_helpavailable": Vous avez des modifications non enregistrées. (Pour sauvegarder dans Potlatch, vous devez déselectionner tout point ou chemin)
|
||||
|
|
7
config/potlatch/localised/hu/localised.yaml
Executable file → Normal file
7
config/potlatch/localised/hu/localised.yaml
Executable file → Normal file
|
@ -1,5 +1,4 @@
|
|||
|
||||
"action_createpoi": POI készítése
|
||||
"action_createpoi": POI készítése
|
||||
"point": Pont
|
||||
"hint_pointselected": pont kijelölve\n(shift+kattintás a pontra\núj vonal kezdéséhez)
|
||||
"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_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_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_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_download": Az ő változatának letöltése
|
||||
"conflict_overwrite": Az ő változatának felülírása
|
||||
|
|
1
config/potlatch/localised/it/localised.yaml
Executable file → Normal file
1
config/potlatch/localised/it/localised.yaml
Executable file → Normal file
|
@ -83,3 +83,4 @@
|
|||
"advice_nocommonpoint": I percorsi non hanno nessun punto comune
|
||||
"option_warnings": Mostra avvertimenti galleggianti
|
||||
"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
0
config/potlatch/localised/ja/localised.yaml
Executable file → Normal file
0
config/potlatch/localised/ko/localised.yaml
Executable file → Normal file
0
config/potlatch/localised/ko/localised.yaml
Executable file → Normal file
0
config/potlatch/localised/lolcat/localised.yaml
Executable file → Normal file
0
config/potlatch/localised/lolcat/localised.yaml
Executable file → Normal file
1
config/potlatch/localised/nl/localised.yaml
Executable file → Normal file
1
config/potlatch/localised/nl/localised.yaml
Executable file → Normal file
|
@ -83,3 +83,4 @@
|
|||
"advice_nocommonpoint": "De 'ways' hebben geen gemeenschappelijk punt"
|
||||
"option_warnings": Floating warnings weergeven
|
||||
"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
0
config/potlatch/localised/no/localised.yaml
Executable file → Normal file
0
config/potlatch/localised/pt-BR/localised.yaml
Executable file → Normal file
0
config/potlatch/localised/pt-BR/localised.yaml
Executable file → Normal file
0
config/potlatch/localised/ro/localised.yaml
Executable file → Normal file
0
config/potlatch/localised/ro/localised.yaml
Executable file → Normal file
1
config/potlatch/localised/ru/localised.yaml
Executable file → Normal file
1
config/potlatch/localised/ru/localised.yaml
Executable file → Normal file
|
@ -83,3 +83,4 @@
|
|||
"advice_nocommonpoint": Линии не имеют общей точки
|
||||
"option_warnings": Показывать всплывающие предупреждения
|
||||
"reverting": возвращается
|
||||
"prompt_helpavailable": Присутствуют несохранённые изменения. (Чтобы записать изменения в Potlatch, снимите выделение с текущей точки или линии)
|
||||
|
|
0
config/potlatch/localised/sv/localised.yaml
Executable file → Normal file
0
config/potlatch/localised/sv/localised.yaml
Executable file → Normal file
|
@ -83,3 +83,4 @@
|
|||
"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
|
||||
"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
0
config/potlatch/localised/zh-HANS/localised.yaml
Executable file → Normal file
|
@ -83,3 +83,4 @@
|
|||
"advice_nocommonpoint": 這些路徑不再分享共同 point
|
||||
"option_warnings": 顯示浮動式警示
|
||||
"reverting": 正在反轉
|
||||
"prompt_helpavailable": 您有未儲存的變更。(要在 Potlatch 中儲存,您應該取消選取目前的路徑或 point。)
|
||||
|
|
|
@ -193,6 +193,7 @@ ActionController::Routing::Routes.draw do |map|
|
|||
map.connect '/message/read/:message_id', :controller => 'message', :action => 'read'
|
||||
map.connect '/message/mark/:message_id', :controller => 'message', :action => 'mark'
|
||||
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...)
|
||||
map.resources :oauth_clients
|
||||
|
|
9
db/migrate/036_add_visible_to_message.rb
Normal file
9
db/migrate/036_add_visible_to_message.rb
Normal 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
|
11
db/migrate/037_add_sender_visible_to_message.rb
Normal file
11
db/migrate/037_add_sender_visible_to_message.rb
Normal 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
|
|
@ -42,4 +42,4 @@ http://wiki.openstreetmap.org/wiki/REST
|
|||
=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
|
||||
|
|
|
@ -187,18 +187,18 @@ module OSM
|
|||
# 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
|
||||
class APITooManyWayNodesError < APIError
|
||||
def initialize(provided, max)
|
||||
@provided, @max = provided, max
|
||||
def initialize(id, provided, max)
|
||||
@id, @provided, @max = id, provided, max
|
||||
end
|
||||
|
||||
attr_reader :provided, :max
|
||||
attr_reader :id, :provided, :max
|
||||
|
||||
def status
|
||||
:bad_request
|
||||
end
|
||||
|
||||
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
|
||||
|
||||
|
|
|
@ -211,9 +211,6 @@ module Potlatch
|
|||
}
|
||||
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]
|
||||
end
|
||||
end
|
||||
|
|
14
lib/utf8.rb
Normal file
14
lib/utf8.rb
Normal 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
|
||||
|
|
@ -11,22 +11,10 @@ module ActiveRecord
|
|||
# is a valid UTF-8 format string.
|
||||
def validates_as_utf8(*attrs)
|
||||
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
|
||||
|
||||
##
|
||||
# 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
|
||||
|
|
|
@ -116,7 +116,8 @@ function addObjectToMap(url, zoom, callback) {
|
|||
strokeWidth: 3,
|
||||
strokeOpacity: 0.5,
|
||||
fillOpacity: 0.2,
|
||||
fillColor: "lightblue"
|
||||
fillColor: "lightblue",
|
||||
pointRadius: 6
|
||||
},
|
||||
projection: new OpenLayers.Projection("EPSG:4326"),
|
||||
displayInLayerSwitcher: false
|
||||
|
|
BIN
public/potlatch/potlatch.swf
Executable file → Normal file
BIN
public/potlatch/potlatch.swf
Executable file → Normal file
Binary file not shown.
0
public/potlatch/ymap.swf
Executable file → Normal file
0
public/potlatch/ymap.swf
Executable file → Normal file
|
@ -6,6 +6,7 @@ use YAML::Syck qw(LoadFile);
|
|||
use Test::Differences;
|
||||
use Pod::Usage ();
|
||||
use Getopt::Long ();
|
||||
use File::Basename qw(fileparse);
|
||||
|
||||
=head1 NAME
|
||||
|
||||
|
@ -101,8 +102,8 @@ my ($from, $to) = @ARGV;
|
|||
my $from_data = LoadFile($from);
|
||||
my $to_data = LoadFile($to);
|
||||
|
||||
my $from_parsed = { iterate($from_data->{basename($from)}) };
|
||||
my $to_parsed = { iterate($to_data->{basename($to)}) };
|
||||
my $from_parsed = { iterate($from_data->{fileparse($from, qr/\.[^.]*/)}) };
|
||||
my $to_parsed = { iterate($to_data->{fileparse($to, qr/\.[^.]*/)}) };
|
||||
|
||||
if ($keys)
|
||||
{
|
||||
|
@ -114,7 +115,7 @@ elsif ($untranslated_values or $untranslated_values_all)
|
|||
|
||||
# Prune according to blacklist
|
||||
if ($untranslated_values) {
|
||||
@untranslated = prune_untranslated_with_blacklist(basename($to), @untranslated);
|
||||
@untranslated = prune_untranslated_with_blacklist(scalar(fileparse($to, qr/\.[^.]*/)), @untranslated);
|
||||
}
|
||||
|
||||
say for @untranslated;
|
||||
|
@ -217,13 +218,6 @@ sub iterate
|
|||
return @ret;
|
||||
}
|
||||
|
||||
sub basename
|
||||
{
|
||||
my $name = shift;
|
||||
$name =~ s[\..*?$][];
|
||||
$name;
|
||||
}
|
||||
|
||||
sub help
|
||||
{
|
||||
my %arg = @_;
|
||||
|
@ -252,6 +246,9 @@ untranslated_values:
|
|||
site.index.license.project_url: true
|
||||
browse.relation_member.entry: true
|
||||
|
||||
# #{{id}}
|
||||
changeset.changeset.id: true
|
||||
|
||||
de:
|
||||
activerecord.attributes.message.sender: true
|
||||
activerecord.attributes.trace.name: true
|
||||
|
@ -303,3 +300,9 @@ untranslated_values:
|
|||
|
||||
# {{name}} ({{id}})
|
||||
printable_name.with_name: true
|
||||
|
||||
# {{type}}
|
||||
geocoder.search_osm_namefinder.prefix: true
|
||||
|
||||
# {{suffix}}, {{parentname}}
|
||||
geocoder.search_osm_namefinder.suffix_suburb: true
|
||||
|
|
8
test/fixtures/gps_points.yml
vendored
8
test/fixtures/gps_points.yml
vendored
|
@ -1,9 +1,11 @@
|
|||
<% SCALE = 10000000 unless defined?(SCALE) %>
|
||||
|
||||
first_trace_1:
|
||||
altitude: 134
|
||||
trackid: 1
|
||||
latitude: 1
|
||||
longitude: 1
|
||||
latitude: <%= 1 * SCALE %>
|
||||
longitude: <%= 1 * SCALE %>
|
||||
gpx_id: 1
|
||||
timestamp: "2008-10-01 10:10:10"
|
||||
tile: 1
|
||||
tile: <%= QuadTile.tile_for_point(1, 1) %>
|
||||
|
||||
|
|
|
@ -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"
|
||||
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
|
||||
|
||||
end
|
||||
|
|
|
@ -6,7 +6,7 @@ module Globalize
|
|||
def pluralize(locale, entry, count)
|
||||
return entry unless entry.is_a?(Hash) and count
|
||||
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)
|
||||
translation entry[key], :plural_key => key
|
||||
end
|
||||
|
@ -25,7 +25,22 @@ module Globalize
|
|||
end
|
||||
|
||||
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
|
||||
|
||||
# Overwrite this method to return something other than a String
|
||||
|
|
|
@ -48,9 +48,8 @@ module HttpAcceptLanguage
|
|||
#
|
||||
def compatible_language_from(array)
|
||||
user_preferred_languages.map do |x|
|
||||
x = x.to_s.split("-")[0]
|
||||
array.find do |y|
|
||||
y.to_s.split("-")[0] == x
|
||||
y.to_s =~ /^#{x.to_s}(-|$)/
|
||||
end
|
||||
end.compact.first
|
||||
end
|
||||
|
|
83
vendor/plugins/rails-i18n/locale/is.yml
vendored
83
vendor/plugins/rails-i18n/locale/is.yml
vendored
|
@ -1,22 +1,63 @@
|
|||
# Icelandic, by Ævar Arnfjörð Bjarmason <avarab@gmail.com>
|
||||
is:
|
||||
support:
|
||||
array:
|
||||
sentence_connector: "og"
|
||||
words_connector: ", "
|
||||
two_words_connector: " og "
|
||||
last_word_connector: " og "
|
||||
skip_last_comma: true
|
||||
number:
|
||||
# Used in number_with_delimiter()
|
||||
# These are also the defaults for 'currency', 'percentage', 'precision', and 'human'
|
||||
format:
|
||||
# Sets the separator between the units, for more precision (e.g. 1.0 / 2.0 == 0.5)
|
||||
separator: ","
|
||||
# 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:
|
||||
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"
|
||||
short: "%e. %b"
|
||||
long: "%e. %B %Y"
|
||||
|
||||
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]
|
||||
|
||||
# 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]
|
||||
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]
|
||||
|
||||
time:
|
||||
|
@ -28,6 +69,16 @@ is:
|
|||
am: ""
|
||||
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:
|
||||
distance_in_words:
|
||||
half_a_minute: "hálf mínúta"
|
||||
|
@ -62,20 +113,6 @@ is:
|
|||
one: "meira en 1 á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:
|
||||
errors:
|
||||
template:
|
||||
|
@ -84,8 +121,8 @@ is:
|
|||
other: "Ekki var hægt að vista {{model}} vegna {{count}} villna."
|
||||
body: "Upp kom vandamál í eftirfarandi dálkum:"
|
||||
messages:
|
||||
# inclusion: "er ikke inkludert i listen"
|
||||
# exclusion: "er reservert"
|
||||
inclusion: "er ekki í listanum"
|
||||
exclusion: "er frátekið"
|
||||
invalid: "er ógilt"
|
||||
confirmation: "er ekki jafngilt staðfestingunni"
|
||||
accepted: "þarf að vera tekið gilt"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue