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}")
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

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>"
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

View file

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

View file

@ -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

View file

@ -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"

View file

@ -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

View file

@ -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">

View file

@ -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 %>
&lt;
<%= 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) } %>
&gt;
<% end %>
</span>
<br/>
<% end %>
<span class="nowrap">
<% if @prev %>
&lt;
<%= link_to @prev.id.to_s,
@ -37,4 +40,5 @@
{ :title => t('browse.changeset_navigation.all.next_tooltip') } %>
&gt;
<% end %>
</span>
</div>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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

View file

@ -1,4 +1,4 @@
<h1><%= @title %></h1>
<h1><%= @heading %></h1>
<p><%= @description %></p>
<%= 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? %>">
<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>

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">
<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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

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.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: "паказаць мяжу мясцовасці"
big_area: "(вялікая)"
view_changeset_details: "Падрабязней пра набор зменаў"
more: "больш"
changesets:
id: "ID"
saved_at: "Запісаны"

View file

@ -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

View file

@ -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."

View file

@ -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"

View file

@ -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"

View file

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

View file

@ -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"

View file

@ -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."

View file

@ -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>)'

View file

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

View file

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

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

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

View file

@ -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."

View file

@ -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"

View file

@ -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"

View file

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

View file

@ -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
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
"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
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
"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
View 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
View 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
View 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
View 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
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"
"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
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": Линии не имеют общей точки
"option_warnings": Показывать всплывающие предупреждения
"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
"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
View file

View file

@ -83,3 +83,4 @@
"advice_nocommonpoint": 這些路徑不再分享共同 point
"option_warnings": 顯示浮動式警示
"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/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

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
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.
# 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

View file

@ -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
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.
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

View file

@ -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

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 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

View file

@ -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) %>

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"
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

View file

@ -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

View file

@ -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

View file

@ -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"