From: Tom Hughes Date: Mon, 19 Apr 2010 23:41:03 +0000 (+0100) Subject: Merge branch 'master' into openid X-Git-Tag: live~7425 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/d36fab2913d10bef4eae2cee7c34875f20311af9?hp=bbf30e76e4bfcd70e62fc84ecd32c5e494506e9e Merge branch 'master' into openid Conflicts: app/controllers/user_controller.rb app/views/user/login.html.erb config/locales/en.yml --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..74094e8b3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +log +tmp diff --git a/app/controllers/browse_controller.rb b/app/controllers/browse_controller.rb index a77b0f94a..a511d67d3 100644 --- a/app/controllers/browse_controller.rb +++ b/app/controllers/browse_controller.rb @@ -86,11 +86,11 @@ private end rescue ActionView::TemplateError => ex if ex.original_exception.is_a?(Timeout::Error) - render :action => "timeout", :status => :request_timeout + render :action => "timeout" else raise end rescue Timeout::Error - render :action => "timeout", :status => :request_timeout + render :action => "timeout" end end diff --git a/app/controllers/geocoder_controller.rb b/app/controllers/geocoder_controller.rb index 8394b3e6e..aaa8d17ef 100644 --- a/app/controllers/geocoder_controller.rb +++ b/app/controllers/geocoder_controller.rb @@ -357,8 +357,8 @@ class GeocoderController < ApplicationController response = fetch_xml("http://nominatim.openstreetmap.org/reverse?lat=#{lat}&lon=#{lon}&zoom=#{zoom}&accept-language=#{request.user_preferred_languages.join(',')}") # parse the response - response.elements.each("reversegeocode") do |result| - description = result.get_text("result").to_s + response.elements.each("reversegeocode/result") do |result| + description = result.get_text.to_s @results.push({:prefix => "#{description}"}) end diff --git a/app/controllers/message_controller.rb b/app/controllers/message_controller.rb index 435c3fa78..5db9cccfa 100644 --- a/app/controllers/message_controller.rb +++ b/app/controllers/message_controller.rb @@ -47,25 +47,38 @@ class MessageController < ApplicationController # Allow the user to reply to another message. def reply - message = Message.find(params[:message_id], :conditions => ["to_user_id = ? or from_user_id = ?", @user.id, @user.id ]) - @body = "On #{message.sent_on} #{message.sender.display_name} wrote:\n\n#{message.body.gsub(/^/, '> ')}" - @title = @subject = "Re: #{message.title.sub(/^Re:\s*/, '')}" - @to_user = User.find(message.from_user_id) - render :action => 'new' + message = Message.find(params[:message_id]) + + if message.to_user_id == @user.id then + @body = "On #{message.sent_on} #{message.sender.display_name} wrote:\n\n#{message.body.gsub(/^/, '> ')}" + @title = @subject = "Re: #{message.title.sub(/^Re:\s*/, '')}" + @to_user = User.find(message.from_user_id) + + render :action => 'new' + else + flash[:notice] = t 'message.reply.wrong_user', :user => @user.display_name + redirect_to :controller => "user", :action => "login", :referer => request.request_uri + end rescue ActiveRecord::RecordNotFound - @title = t'message.no_such_user.title' - render :action => 'no_such_user', :status => :not_found + @title = t'message.no_such_message.title' + render :action => 'no_such_message', :status => :not_found end # Show a message def read @title = t 'message.read.title' - @message = Message.find(params[:message_id], :conditions => ["to_user_id = ? or from_user_id = ?", @user.id, @user.id ]) - @message.message_read = true if @message.to_user_id == @user.id - @message.save + @message = Message.find(params[:message_id]) + + if @message.to_user_id == @user.id or @message.from_user_id == @user.id then + @message.message_read = true if @message.to_user_id == @user.id + @message.save + else + flash[:notice] = t 'message.read.wrong_user', :user => @user.display_name + redirect_to :controller => "user", :action => "login", :referer => request.request_uri + end rescue ActiveRecord::RecordNotFound - @title = t'message.no_such_user.title' - render :action => 'no_such_user', :status => :not_found + @title = t'message.no_such_message.title' + render :action => 'no_such_message', :status => :not_found end # Display the list of messages that have been sent to the user. @@ -90,7 +103,7 @@ class MessageController < ApplicationController def mark if params[:message_id] id = params[:message_id] - message = Message.find_by_id(id) + message = Message.find_by_id(id, :conditions => ["to_user_id = ? or from_user_id = ?", @user.id, @user.id]) if params[:mark] == 'unread' message_read = false notice = t 'message.mark.as_unread' @@ -102,6 +115,7 @@ class MessageController < ApplicationController if message.save if request.xhr? render :update do |page| + page.replace "inboxanchor", :partial => "layouts/inbox" page.replace "inbox-count", :partial => "message_count" page.replace "inbox-#{message.id}", :partial => "message_summary", :object => message end @@ -112,15 +126,15 @@ class MessageController < ApplicationController end end rescue ActiveRecord::RecordNotFound - @title = t'message.no_such_user.title' - render :action => 'no_such_user', :status => :not_found + @title = t'message.no_such_message.title' + render :action => 'no_such_message', :status => :not_found end # Delete the message. def delete if params[:message_id] id = params[:message_id] - message = Message.find_by_id(id) + message = Message.find_by_id(id, :conditions => ["to_user_id = ? or from_user_id = ?", @user.id, @user.id]) message.from_user_visible = false if message.sender == @user message.to_user_visible = false if message.recipient == @user if message.save @@ -134,7 +148,7 @@ class MessageController < ApplicationController end end rescue ActiveRecord::RecordNotFound - @title = t'message.no_such_user.title' - render :action => 'no_such_user', :status => :not_found + @title = t'message.no_such_message.title' + render :action => 'no_such_message', :status => :not_found end end diff --git a/app/controllers/user_controller.rb b/app/controllers/user_controller.rb index 97e184b59..428a8b90c 100644 --- a/app/controllers/user_controller.rb +++ b/app/controllers/user_controller.rb @@ -253,6 +253,8 @@ if (!params[:user][:openid_url].nil? and params[:user][:openid_url].length > 0) end end end + + user end def go_public @@ -310,8 +312,8 @@ if (!params[:user][:openid_url].nil? and params[:user][:openid_url].length > 0) def new @title = t 'user.new.title' - # The user is logged in already, so don't show them the signup page, instead - # send them to the home page + # The user is logged in already, so don't show them the signup + # page, instead send them to the home page redirect_to :controller => 'site', :action => 'index' if session[:user] @nickname = params['nickname'] @@ -320,66 +322,64 @@ if (!params[:user][:openid_url].nil? and params[:user][:openid_url].length > 0) end def login + @title = t 'user.login.title' - #The redirect from the OpenID provider reenters here again + #The redirect from the OpenID provider reenters here again #and we need to pass the parameters through to the # open_id_authentication function if params[:open_id_complete] - open_id_authentication('') - end - - if params[:user] and session[:user].nil? - if !params[:user][:openid_url].nil? and !params[:user][:openid_url].empty? - session[:remember] = params[:remember_me] - open_id_authentication(params[:user][:openid_url]) + user = open_id_authentication('') + elsif params[:user] + if !params[:user][:openid_url].nil? and !params[:user][:openid_url].empty? + session[:remember] = params[:remember_me] + user = open_id_authentication(params[:user][:openid_url]) else - email_or_display_name = params[:user][:email] - pass = params[:user][:password] - user = User.authenticate(:username => email_or_display_name, :password => pass) - if user - session[:user] = user.id - session_expires_after 1.month if params[:remember_me] - elsif User.authenticate(:username => email_or_display_name, :password => pass, :inactive => true) - flash.now[:error] = t 'user.login.account not active' - else - flash.now[:error] = t 'user.login.auth failure' - end - end + email_or_display_name = params[:user][:email] + pass = params[:user][:password] + + if user = User.authenticate(:username => email_or_display_name, :password => pass) + session[:user] = user.id + session_expires_after 1.month if params[:remember_me] + elsif User.authenticate(:username => email_or_display_name, :password => pass, :inactive => true) + flash.now[:error] = t 'user.login.account not active' + else + flash.now[:error] = t 'user.login.auth failure' + end + end end - if session[:user] - # The user is logged in, if the referer param exists, redirect them to that - # unless they've also got a block on them, in which case redirect them to - # the block so they can clear it. - user = User.find(session[:user]) - block = user.blocked_on_view - if block - redirect_to block, :referrer => params[:referrer] + if user + # The user is logged in, if the referer param exists, redirect + # them to that unless they've also got a block on them, in + # which case redirect them to the block so they can clear it. + if user.blocked_on_view + redirect_to user.blocked_on_view, :referrer => params[:referrer] elsif params[:referer] redirect_to params[:referer] else redirect_to :controller => 'site', :action => 'index' end - return end - - @title = t 'user.login.title' end def logout - if session[:token] - token = UserToken.find_by_token(session[:token]) - if token - token.destroy + @title = t 'user.logout.title' + + if params[:session] == request.session_options[:id] + if session[:token] + token = UserToken.find_by_token(session[:token]) + if token + token.destroy + end + session[:token] = nil + end + session[:user] = nil + session_expires_automatically + if params[:referer] + redirect_to params[:referer] + else + redirect_to :controller => 'site', :action => 'index' end - session[:token] = nil - end - session[:user] = nil - session_expires_automatically - if params[:referer] - redirect_to params[:referer] - else - redirect_to :controller => 'site', :action => 'index' end end @@ -468,7 +468,11 @@ if (!params[:user][:openid_url].nil? and params[:user][:openid_url].length > 0) flash[:warning] = t 'user.make_friend.already_a_friend', :name => name end - redirect_to :controller => 'user', :action => 'view' + if params[:referer] + redirect_to params[:referer] + else + redirect_to :controller => 'user', :action => 'view' + end end end @@ -483,7 +487,11 @@ if (!params[:user][:openid_url].nil? and params[:user][:openid_url].length > 0) flash[:error] = t 'user.remove_friend.not_a_friend', :name => friend.display_name end - redirect_to :controller => 'user', :action => 'view' + if params[:referer] + redirect_to params[:referer] + else + redirect_to :controller => 'user', :action => 'view' + end end end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index d805e27ad..2ed50216f 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1,4 +1,10 @@ module ApplicationHelper + require 'rexml/document' + + def sanitize(text) + Sanitize.clean(text, Sanitize::Config::OSM) + end + def htmlize(text) return linkify(sanitize(simple_format(text))) end @@ -34,6 +40,39 @@ module ApplicationHelper return js end + def describe_location(lat, lon, zoom = nil, language = nil) + zoom = zoom || 14 + language = language || request.user_preferred_languages.join(',') + url = "http://nominatim.openstreetmap.org/reverse?lat=#{lat}&lon=#{lon}&zoom=#{zoom}&accept-language=#{language}" + response = REXML::Document.new(Net::HTTP.get(URI.parse(url))) + + if result = response.get_text("reversegeocode/result") + result.to_s + else + "#{number_with_precision(lat, :precision => 3)}, #{number_with_precision(lon, :precision => 3)}" + end + end + + def user_image(user, options = {}) + options[:class] ||= "user_image" + + if user.image + image_tag url_for_file_column(user, "image"), options + else + image_tag "anon_large.png", options + end + end + + def user_thumbnail(user, options = {}) + options[:class] ||= "user_thumbnail" + + if user.image + image_tag url_for_file_column(user, "image"), options + else + image_tag "anon_small.png", options + end + end + private def javascript_strings_for_key(key) diff --git a/app/models/diary_sweeper.rb b/app/models/diary_sweeper.rb index c003cc0f5..59d578f7e 100644 --- a/app/models/diary_sweeper.rb +++ b/app/models/diary_sweeper.rb @@ -30,5 +30,9 @@ private expire_action(:controller => 'diary_entry', :action => 'rss', :language => nil, :display_name => nil) expire_action(:controller => 'diary_entry', :action => 'rss', :language => entry.language_code, :display_name => nil) expire_action(:controller => 'diary_entry', :action => 'rss', :language => nil, :display_name => entry.user.display_name) + + if record.is_a?(DiaryEntry) + expire_fragment(:controller => 'diary_entry', :action => 'view', :display_name => entry.user.display_name, :id => entry.id, :part => "location") + end end end diff --git a/app/models/notifier.rb b/app/models/notifier.rb index 1f3d39808..df30d651b 100644 --- a/app/models/notifier.rb +++ b/app/models/notifier.rb @@ -89,15 +89,9 @@ class Notifier < ActionMailer::Base end def friend_notification(friend) - befriender = User.find_by_id(friend.user_id) - befriendee = User.find_by_id(friend.friend_user_id) - - common_headers befriendee - subject I18n.t('notifier.friend_notification.subject', :user => befriender.display_name, :locale => locale) - body :user => befriender.display_name, - :userurl => url_for(:host => SERVER_URL, - :controller => "user", :action => "view", - :display_name => befriender.display_name) + common_headers friend.befriendee + subject I18n.t('notifier.friend_notification.subject', :user => friend.befriender.display_name, :locale => locale) + body :friend => friend end private diff --git a/app/models/user.rb b/app/models/user.rb index 1a4769544..09e1a7d35 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -86,7 +86,7 @@ class User < ActiveRecord::Base end def languages - attribute_present?(:languages) ? read_attribute(:languages).split(",") : [] + attribute_present?(:languages) ? read_attribute(:languages).split(/ *, */) : [] end def languages=(languages) diff --git a/app/views/browse/_relation_details.html.erb b/app/views/browse/_relation_details.html.erb index bb7d45e44..e52c9981f 100644 --- a/app/views/browse/_relation_details.html.erb +++ b/app/views/browse/_relation_details.html.erb @@ -14,7 +14,7 @@ <% end %> <% unless relation_details.containing_relation_members.empty? %> - + <%= t'browse.relation_details.part_of' %> diff --git a/app/views/diary_entry/_diary_comment.html.erb b/app/views/diary_entry/_diary_comment.html.erb index b2a444982..77238b4d3 100644 --- a/app/views/diary_entry/_diary_comment.html.erb +++ b/app/views/diary_entry/_diary_comment.html.erb @@ -1,4 +1,5 @@ -

<%= t('diary_entry.diary_comment.comment_from', :link_user => (link_to h(diary_comment.user.display_name), :controller => 'user', :action => 'view', :display_name => diary_comment.user.display_name), :comment_created_at => l(diary_comment.created_at)) %>

+<%= user_thumbnail diary_comment.user, :style => "float: right" %> +

<%= t('diary_entry.diary_comment.comment_from', :link_user => (link_to h(diary_comment.user.display_name), :controller => 'user', :action => 'view', :display_name => diary_comment.user.display_name), :comment_created_at => l(diary_comment.created_at, :format => :friendly)) %>

<%= htmlize(diary_comment.body) %> <% if @user && @user.administrator? %> <%= link_to t('diary_entry.diary_comment.hide_link'), {:action => 'hidecomment', :display_name => @user.display_name, :id => diary_comment.diary_entry.id, :comment => diary_comment.id}, {:confirm => t('diary_entry.diary_comment.confirm')} %> diff --git a/app/views/diary_entry/_diary_entry.html.erb b/app/views/diary_entry/_diary_entry.html.erb index 0f4f6c206..17078a8bb 100644 --- a/app/views/diary_entry/_diary_entry.html.erb +++ b/app/views/diary_entry/_diary_entry.html.erb @@ -1,9 +1,10 @@ <%= link_to h(diary_entry.title), :action => 'view', :display_name => diary_entry.user.display_name, :id => diary_entry.id %>
<%= htmlize(diary_entry.body) %> <% if diary_entry.latitude and diary_entry.longitude %> -<%= t 'map.coordinates' %>
<%= diary_entry.latitude %>; <%= diary_entry.longitude %>
(<%=link_to (t 'map.view'), :controller => 'site', :action => 'index', :lat => diary_entry.latitude, :lon => diary_entry.longitude, :zoom => 14 %> / <%=link_to (t 'map.edit'), :controller => 'site', :action => 'edit', :lat => diary_entry.latitude, :lon => diary_entry.longitude, :zoom => 14 %>)
+<%= render :partial => "location", :object => diary_entry %> +
<% end %> -<%= t 'diary_entry.diary_entry.posted_by', :link_user => (link_to h(diary_entry.user.display_name), :controller => 'user', :action => 'view', :display_name => diary_entry.user.display_name), :created => l(diary_entry.created_at), :language_link => (link_to h(diary_entry.language.name), :controller => 'diary_entry', :action => 'list', :language => diary_entry.language_code) %> +<%= t 'diary_entry.diary_entry.posted_by', :link_user => (link_to h(diary_entry.user.display_name), :controller => 'user', :action => 'view', :display_name => diary_entry.user.display_name), :created => l(diary_entry.created_at, :format => :friendly), :language_link => (link_to h(diary_entry.language.name), :controller => 'diary_entry', :action => 'list', :language => diary_entry.language_code) %> <% if params[:action] == 'list' %>
<%= link_to t('diary_entry.diary_entry.comment_link'), :action => 'view', :display_name => diary_entry.user.display_name, :id => diary_entry.id, :anchor => 'newcomment' %> diff --git a/app/views/diary_entry/_diary_list_entry.html.erb b/app/views/diary_entry/_diary_list_entry.html.erb new file mode 100644 index 000000000..65ee73ff0 --- /dev/null +++ b/app/views/diary_entry/_diary_list_entry.html.erb @@ -0,0 +1,2 @@ +<%= user_thumbnail diary_list_entry.user, :style => "float: right" %> +<%= render :partial => "diary_entry", :object => diary_list_entry %> diff --git a/app/views/diary_entry/_location.html.erb b/app/views/diary_entry/_location.html.erb new file mode 100644 index 000000000..dfac3a198 --- /dev/null +++ b/app/views/diary_entry/_location.html.erb @@ -0,0 +1,11 @@ +<%= t 'diary_entry.location.location' %> + + +<% cache(:controller => 'diary_entry', :action => 'view', :display_name => location.user.display_name, :id => location.id, :part => "location") do %> +<%= describe_location location.latitude, location.longitude, 14, location.language_code %> +<% end %> + + +(<%=link_to t('diary_entry.location.view'), :controller => 'site', :action => 'index', :lat => location.latitude, :lon => location.longitude, :zoom => 14 %> +/ +<%=link_to t('diary_entry.location.edit'), :controller => 'site', :action => 'edit', :lat => location.latitude, :lon => location.longitude, :zoom => 14 %>) diff --git a/app/views/diary_entry/list.html.erb b/app/views/diary_entry/list.html.erb index 0bc17d2bb..9fbb9ca32 100644 --- a/app/views/diary_entry/list.html.erb +++ b/app/views/diary_entry/list.html.erb @@ -1,9 +1,8 @@ -

<%= h(@title) %>

- -<% if @this_user && @this_user.image %> - <%= image_tag url_for_file_column(@this_user, "image") %> +<% if @this_user %> +<%= user_image @this_user, :style => "float: right" %> <% end %> +

<%= h(@title) %>

<% if @this_user %> <% if @user == @this_user %> @@ -23,8 +22,12 @@
- <%= render :partial => 'diary_entry', :collection => @entries %> - + <% if @this_user %> + <%= render :partial => 'diary_entry', :collection => @entries %> + <% else %> + <%= render :partial => 'diary_list_entry', :collection => @entries %> + <% end %> + <%= link_to t('diary_entry.list.older_entries'), { :page => @entry_pages.current.next, :language => params[:language] } if @entry_pages.current.next %> <% if @entry_pages.current.next and @entry_pages.current.previous %>|<% end %> <%= link_to t('diary_entry.list.newer_entries'), { :page => @entry_pages.current.previous, :language => params[:language] } if @entry_pages.current.previous %> diff --git a/app/views/diary_entry/view.html.erb b/app/views/diary_entry/view.html.erb index 8e71cb242..312b7b81a 100644 --- a/app/views/diary_entry/view.html.erb +++ b/app/views/diary_entry/view.html.erb @@ -1,3 +1,5 @@ +<%= user_image @entry.user, :style => "float: right" %> +

<%= t 'diary_entry.view.user_title', :user => h(@entry.user.display_name) %>

<%= render :partial => 'diary_entry', :object => @entry %> diff --git a/app/views/export/_start.html.erb b/app/views/export/_start.html.erb index d541aae8b..722ba9be5 100644 --- a/app/views/export/_start.html.erb +++ b/app/views/export/_start.html.erb @@ -40,7 +40,7 @@

<%= t'export.start.too_large.body' %>

-
diff --git a/app/views/geocoder/error.html.erb b/app/views/geocoder/error.html.erb index e2ce07b6e..c4b6f8964 100644 --- a/app/views/geocoder/error.html.erb +++ b/app/views/geocoder/error.html.erb @@ -1 +1 @@ -

<%= @error %>

+

<%= h(@error) %>

diff --git a/app/views/layouts/_inbox.html.erb b/app/views/layouts/_inbox.html.erb new file mode 100644 index 000000000..18716618f --- /dev/null +++ b/app/views/layouts/_inbox.html.erb @@ -0,0 +1,7 @@ +<% +inbox_attributes = {} +inbox_attributes[:id] = "inboxanchor" +inbox_attributes[:class] = 'greeting-bar-unread' if @user.new_messages.size > 0 +inbox_attributes[:title] = t 'layouts.inbox_tooltip', :count => @user.new_messages.size +%> +<%= link_to t('layouts.inbox', :count => @user.new_messages.size), {:controller => 'message', :action => 'inbox', :display_name => @user.display_name}, inbox_attributes %> diff --git a/app/views/layouts/site.html.erb b/app/views/layouts/site.html.erb index 8fb9beae1..5679f3e8b 100644 --- a/app/views/layouts/site.html.erb +++ b/app/views/layouts/site.html.erb @@ -7,9 +7,9 @@ <%= javascript_include_tag 'site' %> <%= stylesheet_link_tag 'common' %> - - <%= stylesheet_link_tag 'site-sml', :media => "only screen and (max-width: 481px)" %> - <%= stylesheet_link_tag 'site', :media => "screen and (min-width: 482px)" %> + + <%= stylesheet_link_tag 'small', :media => "only screen and (max-width: 481px)" %> + <%= stylesheet_link_tag 'large', :media => "screen and (min-width: 482px)" %> <%= stylesheet_link_tag 'print', :media => "print" %> <%= tag("link", { :rel => "search", :type => "application/opensearchdescription+xml", :title => "OpenStreetMap Search", :href => "/opensearch/osm.xml" }) %> <%= tag("meta", { :name => "description", :content => "OpenStreetMap is the free wiki world map." }) %> @@ -36,13 +36,8 @@ <%= t 'layouts.welcome_user', :user_link => (link_to h(@user.display_name), {:controller => 'user', :action => 'view', :display_name => @user.display_name}, :title => t('layouts.welcome_user_link_tooltip')) %><%= link_to t('layouts.welcome_user_link_tooltip'), {:controller => 'user', :action => 'view', :display_name => @user.display_name} %> | <%= yield :greeting %> - <% - inbox_attributes = {} - inbox_attributes[:class] = 'greeting-bar-unread' if @user.new_messages.size > 0 - inbox_attributes[:title] = t 'layouts.inbox_tooltip', :count => @user.new_messages.size - %> - <%= link_to t('layouts.inbox', :count => @user.new_messages.size), {:controller => 'message', :action => 'inbox', :display_name => @user.display_name}, inbox_attributes %> | - <%= link_to t('layouts.logout'), {:controller => 'user', :action => 'logout', :referer => request.request_uri}, {:id => 'logoutanchor', :title => t('layouts.logout_tooltip')}%> + <%= render :partial => "layouts/inbox" %> | + <%= link_to t('layouts.logout'), {:controller => 'user', :action => 'logout', :session => request.session_options[:id], :referer => request.request_uri}, {:id => 'logoutanchor', :title => t('layouts.logout_tooltip'), :method => :post, :href => url_for(:controller => 'user', :action => 'logout', :referer => request.request_uri)}%> <% else %> <%= link_to t('layouts.log_in'), {:controller => 'user', :action => 'login', :referer => request.request_uri}, {:id => 'loginanchor', :title => t('layouts.log_in_tooltip')} %> | <%= link_to t('layouts.sign_up'), {:controller => 'user', :action => 'new'}, {:id => 'registeranchor', :title => t('layouts.sign_up_tooltip')} %> @@ -134,7 +129,7 @@ <%= h(t('layouts.make_a_donation.text')) %> - "> - + <% if message_summary.message_read? %> <% else %> diff --git a/app/views/message/_sent_message_summary.html.erb b/app/views/message/_sent_message_summary.html.erb index 9d3275835..d4d8b3fa5 100644 --- a/app/views/message/_sent_message_summary.html.erb +++ b/app/views/message/_sent_message_summary.html.erb @@ -3,6 +3,6 @@ - + diff --git a/app/views/message/no_such_message.html.erb b/app/views/message/no_such_message.html.erb new file mode 100644 index 000000000..6fd52124a --- /dev/null +++ b/app/views/message/no_such_message.html.erb @@ -0,0 +1,2 @@ +

<%= t'message.no_such_message.heading' %>

+

<%= t'message.no_such_message.body' %>

diff --git a/app/views/message/read.html.erb b/app/views/message/read.html.erb index 8a7b6b156..576403170 100644 --- a/app/views/message/read.html.erb +++ b/app/views/message/read.html.erb @@ -5,24 +5,23 @@
<%= link_to h(message_summary.sender.display_name), :controller => 'user', :action => message_summary.sender.display_name %> <%= link_to h(message_summary.title), :controller => 'message', :action => 'read', :message_id => message_summary.id %><%= l message_summary.sent_on %><%= l message_summary.sent_on, :format => :friendly %><%= button_to t('message.message_summary.unread_button'), {:controller => 'message', :action => 'mark', :message_id => message_summary.id, :mark => 'unread'}, { :onclick => remote_function(:url => {:controller => 'message', :action => 'mark', :message_id => message_summary.id, :mark => 'unread'}) + "; return false;" } %>
<%= link_to h(sent_message_summary.recipient.display_name), :controller => 'user', :action => sent_message_summary.recipient.display_name %> <%= link_to h(sent_message_summary.title), :controller => 'message', :action => 'read', :message_id => sent_message_summary.id %><%= l sent_message_summary.sent_on %><%= l sent_message_summary.sent_on, :format => :friendly %> <%= button_to t('message.sent_message_summary.delete_button'), :controller => 'message', :action => 'delete', :message_id => sent_message_summary.id, :referer => request.request_uri %>
- + + + - + + +
<%= t'message.read.from' %> - <% if @message.sender.image %> - <%= image_tag url_for_file_column(@message.sender, "image") %> - <% end %> - -<%= link_to h(@message.sender.display_name), :controller => 'user', :action => 'view', :display_name => @message.sender.display_name %><%= link_to h(@message.sender.display_name), :controller => 'user', :action => 'view', :display_name => @message.sender.display_name %><%= user_thumbnail @message.sender %>
<%= t'message.read.subject' %> <%= h(@message.title) %>
<%= t'message.read.date' %><%= l @message.sent_on %><%= l @message.sent_on, :format => :friendly %>
<%= htmlize(@message.body) %>
@@ -44,18 +43,22 @@ <%= t'message.read.to' %> <%= link_to h(@message.recipient.display_name), :controller => 'user', :action => 'view', :display_name => @message.recipient.display_name %> + <%= user_thumbnail @message.recipient %> <%= t'message.read.subject' %> <%= h(@message.title) %> + <%= t'message.read.date' %> - <%= l @message.sent_on %> + <%= l @message.sent_on, :format => :friendly %> + <%= htmlize(@message.body) %> + diff --git a/app/views/notifier/friend_notification.html.erb b/app/views/notifier/friend_notification.html.erb index 8917061f1..ca7754757 100644 --- a/app/views/notifier/friend_notification.html.erb +++ b/app/views/notifier/friend_notification.html.erb @@ -1,4 +1,20 @@ -<%= t'notifier.friend_notification.had_added_you', :user => @user %> +<%= + t 'notifier.friend_notification.had_added_you', + :user => @friend.befriender.display_name +%> -<%= t'notifier.friend_notification.see_their_profile', :userurl => @userurl %> +<%= + t 'notifier.friend_notification.see_their_profile', + :userurl => url_for(:host => SERVER_URL, + :controller => "user", :action => "view", + :display_name => @friend.befriender.display_name) +%> +<%= + unless @friend.befriendee.is_friends_with?(@friend.befriender) + t 'notifier.friend_notification.befriend_them', + :befriendurl => url_for(:host => SERVER_URL, + :controller => "user", :action => "make_friend", + :display_name => @friend.befriender.display_name) + end +%> diff --git a/app/views/site/_key.html.erb b/app/views/site/_key.html.erb index 22261900d..e990071c8 100644 --- a/app/views/site/_key.html.erb +++ b/app/views/site/_key.html.erb @@ -17,7 +17,7 @@ } function updateMapKey() { - var layer = map.baseLayer.name.toLowerCase().replace(/\s+/g, "_"); + var layer = map.baseLayer.keyid; var zoom = map.getZoom(); <%= remote_function :update => "sidebar_content", diff --git a/app/views/site/_search.html.erb b/app/views/site/_search.html.erb index 3750a7dc9..31b5af16f 100644 --- a/app/views/site/_search.html.erb +++ b/app/views/site/_search.html.erb @@ -5,12 +5,11 @@ } function describeLocation() { - var position = getPosition(); - var zoom = getZoom(); + var args = getArgs($("viewanchor").href); <%= remote_function(:loading => "startSearch()", :url => { :controller => :geocoder, :action => :description }, - :with => "'lat=' + position.lat + '&lon=' + position.lon + '&zoom=' + zoom") %> + :with => "'lat=' + args['lat'] + '&lon=' + args['lon'] + '&zoom=' + args['zoom']") %> } function setSearchViewbox() { @@ -33,8 +32,8 @@ <% content_for "optionals" do %>
- <%= t 'site.search.search' %> <%= t 'site.search.where_am_i' %> +

<%= t 'site.search.search' %>

<% form_remote_tag(:before => "setSearchViewbox()", diff --git a/app/views/trace/_trace.html.erb b/app/views/trace/_trace.html.erb index a3ae1fb08..509c346ed 100644 --- a/app/views/trace/_trace.html.erb +++ b/app/views/trace/_trace.html.erb @@ -10,7 +10,7 @@ <% end %> <%= link_to trace.name, {:controller => 'trace', :action => 'view', :display_name => trace.user.display_name, :id => trace.id} %> - ... + ... <% if trace.inserted %> (<%= t'trace.trace.count_points', :count => trace.size.to_s.gsub(/(\d)(?=(\d{3})+$)/,'\1,') %>) <% end %> diff --git a/app/views/trace/_trace_list.html.erb b/app/views/trace/_trace_list.html.erb index c1547027a..968fd85be 100644 --- a/app/views/trace/_trace_list.html.erb +++ b/app/views/trace/_trace_list.html.erb @@ -1,6 +1,6 @@ <%= render :partial => 'trace_paging_nav' %> - +
diff --git a/app/views/trace/_trace_optionals.html.erb b/app/views/trace/_trace_optionals.html.erb index f166a779b..69eedd143 100644 --- a/app/views/trace/_trace_optionals.html.erb +++ b/app/views/trace/_trace_optionals.html.erb @@ -1,7 +1,6 @@ <% content_for "optionals" do %>
- <%= t'trace.trace_optionals.tags' %> -
+

<%= t'trace.trace_optionals.tags' %>


<% if @all_tags %> <% @all_tags.each do |tag| %> diff --git a/app/views/trace/edit.html.erb b/app/views/trace/edit.html.erb index 523607ae6..202f9039d 100644 --- a/app/views/trace/edit.html.erb +++ b/app/views/trace/edit.html.erb @@ -11,7 +11,7 @@
- + <% if @trace.inserted? %> diff --git a/app/views/trace/view.html.erb b/app/views/trace/view.html.erb index c1d5e0445..73638cb3d 100644 --- a/app/views/trace/view.html.erb +++ b/app/views/trace/view.html.erb @@ -15,7 +15,7 @@ - + <% if @trace.inserted? %> diff --git a/app/views/user/_contact.html.erb b/app/views/user/_contact.html.erb new file mode 100644 index 000000000..e0babce7e --- /dev/null +++ b/app/views/user/_contact.html.erb @@ -0,0 +1,27 @@ + + + + + + + diff --git a/app/views/user/_friend_map.html.erb b/app/views/user/_map.html.erb similarity index 57% rename from app/views/user/_friend_map.html.erb rename to app/views/user/_map.html.erb index a73bb53b8..7c29526cf 100644 --- a/app/views/user/_friend_map.html.erb +++ b/app/views/user/_map.html.erb @@ -1,15 +1,5 @@ -<% nearest_str = "" %> -<% if !@user.home_lat.nil? and !@user.home_lon.nil? %> - <% if !@user.nearby.empty? %> - <% @user.nearby.each do |nearby| %> - <% nearest_str += "nearest.push( { 'display_name' : '#{escape_javascript(nearby.display_name)}', 'home_lat' : #{nearby.home_lat}, 'home_lon' : #{nearby.home_lon} } );\n" %> - <% end %> - <% end %> -<% end %> - +<% friends = @user.friends.collect { |f| f.befriendee }.select { |f| !f.home_lat.nil? and !f.home_lon.nil? } %> +<% nearest = @user.nearby - friends %> <% if @user.home_lat.nil? or @user.home_lon.nil? %> <% lon = h(params['lon'] || '-0.1') %> @@ -47,16 +37,29 @@ setMapCenter(centre, zoom); <% if marker %> - marker = addMarkerToMap(new OpenLayers.LonLat(<%= mlon %>, <%= mlat %>), null, "<%= t 'user.friend_map.your location' %>"); + marker = addMarkerToMap( + new OpenLayers.LonLat(<%= mlon %>, <%= mlat %>), null, + '<%= escape_javascript(render(:partial => "popup", :object => @user, :locals => { :type => "your location" })) %>' + ); <% end %> var near_icon = OpenLayers.Marker.defaultIcon(); - near_icon.url = OpenLayers.Util.getImagesLocation() + "marker-green.png";; - var i = nearest.length; - while( i-- ) { - var description = i18n('<%= t 'user.friend_map.nearby mapper'%>', { nearby_user: ''+nearest[i].display_name+'' }); - var nearmarker = addMarkerToMap(new OpenLayers.LonLat(nearest[i].home_lon, nearest[i].home_lat), near_icon.clone(), description); - } + near_icon.url = OpenLayers.Util.getImagesLocation() + "marker-green.png"; + <% nearest.each do |u| %> + addMarkerToMap(new OpenLayers.LonLat( + <%= u.home_lon %>, <%= u.home_lat %>), near_icon.clone(), + '<%= escape_javascript(render(:partial => "popup", :object => u, :locals => { :type => "nearby mapper" })) %>' + ); + <% end %> + + var friend_icon = OpenLayers.Marker.defaultIcon(); + friend_icon.url = OpenLayers.Util.getImagesLocation() + "marker-blue.png"; + <% friends.each do |u| %> + addMarkerToMap(new OpenLayers.LonLat( + <%= u.home_lon %>, <%= u.home_lat %>), friend_icon.clone(), + '<%= escape_javascript(render(:partial => "popup", :object => u, :locals => { :type => "friend" })) %>' + ); + <% end %> if (document.getElementById('updatehome')) { map.events.register("click", map, setHome); @@ -77,12 +80,13 @@ removeMarkerFromMap(marker); } - marker = addMarkerToMap(lonlat, null, "<%= t 'user.friend_map.your location' %>"); + marker = addMarkerToMap( + lonlat, null, + '<%= escape_javascript(render(:partial => "popup", :object => @user, :locals => { :type => "your location" })) %>' + ); } } window.onload = init; // --> - - diff --git a/app/views/user/_popup.html.erb b/app/views/user/_popup.html.erb new file mode 100644 index 000000000..cad5f7909 --- /dev/null +++ b/app/views/user/_popup.html.erb @@ -0,0 +1,5 @@ +
+ <%= user_thumbnail popup, :style => "float :left" %> +

<%= t('user.popup.' + type) %>

+

<%= link_to popup.display_name, :controller => "user", :action => "view", :display_name => popup.display_name %>

+
diff --git a/app/views/user/account.html.erb b/app/views/user/account.html.erb index c20f3526c..badcc1249 100644 --- a/app/views/user/account.html.erb +++ b/app/views/user/account.html.erb @@ -18,12 +18,12 @@ - + - + @@ -58,11 +58,11 @@ @@ -99,7 +99,7 @@
<%= t'trace.edit.uploaded_at' %><%= l @trace.timestamp %><%= l @trace.timestamp, :format => :friendly %>
<%= t'trace.view.uploaded' %><%= l @trace.timestamp %><%= l @trace.timestamp, :format => :friendly %>
+ <%= user_thumbnail contact %> + + <%= link_to h(contact.display_name), :controller => 'user', :action => 'view', :display_name => contact.display_name %> + <% if @this_user.home_lon and @this_user.home_lat and contact.home_lon and contact.home_lat %> + <% distance = @this_user.distance(contact) %> + <% if distance < 1 %> + (<%= t 'user.view.m away', :count => (distance * 1000).round %>) + <% else %> + (<%= t 'user.view.km away', :count => distance.round %>) + <% end %> + <% end %> +
+ <%= link_to t('user.view.send message'), :controller => 'message', :action => 'new', :display_name => contact.display_name %> + | + <% if @user.is_friends_with?(contact) %> + <%= link_to t('user.view.remove as friend'), :controller => 'user', :action => 'remove_friend', :display_name => contact.display_name, :referer => request.request_uri %> + <% else %> + <%= link_to t('user.view.add as friend'), :controller => 'user', :action => 'make_friend', :display_name => contact.display_name, :referer => request.request_uri %> + <% end %> +
<%= t 'user.new.password' %><%= f.password_field :pass_crypt, {:value => '', :size => 30, :maxlength => 255} %><%= f.password_field :pass_crypt, {:value => '', :size => 30, :maxlength => 255, :autocomplete => :off} %>
<%= t 'user.new.confirm password' %><%= f.password_field :pass_crypt_confirmation, {:value => '', :size => 30, :maxlength => 255} %><%= f.password_field :pass_crypt_confirmation, {:value => '', :size => 30, :maxlength => 255, :autocomplete => :off} %>
<%= t 'user.account.openid.openid' %> <% if @user.image.nil? %> <%= hidden_field_tag "image_action", "new" %> - <%= t 'user.account.new image' %>
<%= file_column_field "user", "image" %> + <%= t 'user.account.new image' %>
<%= file_column_field "user", "image" %>
<%= t 'user.account.image size hint' %> <% else %> - +
- + @@ -72,7 +72,7 @@ - +
<%= image_tag url_for_file_column(@user, "image") %><%= image_tag url_for_file_column(@user, "image"), :class => "user_image" %> <%= radio_button_tag "image_action", "keep", true %> <%= t 'user.account.keep image' %>
<%= radio_button_tag "image_action", "new" %><%= t 'user.account.replace image' %>
<%= file_column_field "user", "image", :onchange => "$('image_action_new').checked = true" %>
<%= t 'user.account.replace image' %>
<%= file_column_field "user", "image", :onchange => "$('image_action_new').checked = true" %>
<%= t 'user.account.image size hint' %>
<% end %> @@ -88,7 +88,7 @@

<%= t 'user.account.update home location on click' %> checked="checked" <% end %> id="updatehome" />

-
+
<% end %> -<%= render :partial => 'friend_map' %> +<%= render :partial => 'map' %> <% unless @user.data_public? %> diff --git a/app/views/user/login.html.erb b/app/views/user/login.html.erb index 269bbc0cc..46e7f7b8b 100644 --- a/app/views/user/login.html.erb +++ b/app/views/user/login.html.erb @@ -5,13 +5,12 @@ <% form_tag :action => 'login' do %> <%= hidden_field_tag('referer', h(params[:referer])) %> - - - - - - - - + + + + + + +
<%= t 'user.login.email or username' %><%= text_field('user', 'email',{:size => 28, :maxlength => 255, :tabindex => 1}) %>
<%= t 'user.login.password' %><%= password_field('user', 'password',{:size => 28, :maxlength => 255, :tabindex => 2}) %> (<%= link_to t('user.login.lost password link'), :controller => 'user', :action => 'lost_password' %>)

<%= t 'user.login.alternatively' %>

<%= t 'user.login.openid' %><%= text_field('user', 'openid_url',{:size => 28, :maxlength => 255, :tabindex => 3}) %> (<%= t 'user.account.openid.link text' %>)
 
 
<%= check_box_tag "remember_me", "yes", false, :tabindex => 3 %><%= submit_tag t('user.login.login_button'), :tabindex => 3 %>
<%= t 'user.login.email or username' %><%= text_field('user', 'email',{:value => "", :size => 28, :maxlength => 255, :tabindex => 1}) %>
<%= t 'user.login.password' %><%= password_field('user', 'password',{:value => "", :size => 28, :maxlength => 255, :tabindex => 2}) %> (<%= link_to t('user.login.lost password link'), :controller => 'user', :action => 'lost_password' %>)

<%= t 'user.login.alternatively' %>

<%= t 'user.login.openid' %><%= text_field('user', 'openid_url',{:size => 28, :maxlength => 255, :tabindex => 3}) %> (<%= t 'user.account.openid.link text' %>)
 
 
<%= check_box_tag "remember_me", "yes", false, :tabindex => 3 %><%= submit_tag t('user.login.login_button'), :tabindex => 3 %>
<% end %> diff --git a/app/views/user/logout.html.erb b/app/views/user/logout.html.erb new file mode 100644 index 000000000..e6d0dec59 --- /dev/null +++ b/app/views/user/logout.html.erb @@ -0,0 +1,6 @@ +

<%= t 'user.logout.heading' %>

+<% form_tag :action => "logout" do %> + <%= hidden_field_tag("referer", h(params[:referer])) %> + <%= hidden_field_tag("session", request.session_options[:id]) %> + <%= submit_tag t('user.logout.logout_button') %> +<% end %> diff --git a/app/views/user/new.html.erb b/app/views/user/new.html.erb index 3059a0bc0..d2c939bad 100644 --- a/app/views/user/new.html.erb +++ b/app/views/user/new.html.erb @@ -39,4 +39,6 @@ <% end %> +<%= javascript_include_tag 'https://ethnio.com/remotes/62786' %> + <% end %> diff --git a/app/views/user/view.html.erb b/app/views/user/view.html.erb index 372bd660d..b333b5c67 100644 --- a/app/views/user/view.html.erb +++ b/app/views/user/view.html.erb @@ -1,148 +1,122 @@ -<% if @this_user.image %> -<%= image_tag url_for_file_column(@this_user, "image"), :align => "right", :float => "left" %> -<% end %> +<%= user_image @this_user, :style => "float: right" %> +

<%= h(@this_user.display_name) %> + <% UserRole::ALL_ROLES.each do |role| %> -<% if @user and @user.administrator? %> -<% if @this_user.has_role? role %> -<%= link_to(image_tag("roles/#{role}.png", :size => "20x20", :border => 0, :alt => t("user.view.role.revoke.#{role}"), :title => t("user.view.role.revoke.#{role}")), :controller => 'user_roles', :action => 'revoke', :display_name => @this_user.display_name, :role => role) %> -<% else %> -<%= link_to(image_tag("roles/blank_#{role}.png", :size => "20x20", :border => 0, :alt => t("user.view.role.grant.#{role}"), :title => t("user.view.role.grant.#{role}")), :controller => 'user_roles', :action => 'grant', :display_name => @this_user.display_name, :role => role) %> -<% end %> -<% elsif @this_user.has_role? role %> -<%= image_tag("roles/#{role}.png", :size => "20x20", :border => 0, :alt => t("user.view.role.#{role}"), :title => t("user.view.role.#{role}")) %> -<% end %> + <% if @user and @user.administrator? %> + <% if @this_user.has_role? role %> + <%= link_to(image_tag("roles/#{role}.png", :size => "20x20", :border => 0, :alt => t("user.view.role.revoke.#{role}"), :title => t("user.view.role.revoke.#{role}")), :controller => 'user_roles', :action => 'revoke', :display_name => @this_user.display_name, :role => role) %> + <% else %> + <%= link_to(image_tag("roles/blank_#{role}.png", :size => "20x20", :border => 0, :alt => t("user.view.role.grant.#{role}"), :title => t("user.view.role.grant.#{role}")), :controller => 'user_roles', :action => 'grant', :display_name => @this_user.display_name, :role => role) %> + <% end %> + <% elsif @this_user.has_role? role %> + <%= image_tag("roles/#{role}.png", :size => "20x20", :border => 0, :alt => t("user.view.role.#{role}"), :title => t("user.view.role.#{role}")) %> + <% end %> <% end %>

+
-<% if @user and @this_user.id == @user.id %> - -<%= link_to t('user.view.my diary'), :controller => 'diary_entry', :action => 'list', :display_name => @user.display_name %> -| <%= link_to t('user.view.new diary entry'), :controller => 'diary_entry', :action => 'new', :display_name => @user.display_name %> -| <%= link_to t('user.view.my edits'), :controller => 'changeset', :action => 'list', :display_name => @user.display_name %> -| <%= link_to t('user.view.my traces'), :controller => 'trace', :action=>'mine' %> -| <%= link_to t('user.view.my settings'), :controller => 'user', :action => 'account', :display_name => @user.display_name %> -| <%= link_to t('user.view.blocks on me'), :controller => 'user_blocks', :action => 'blocks_on', :display_name => @user.display_name %> -<% if @user and @user.moderator? %> -| <%= link_to t('user.view.blocks by me'), :controller => 'user_blocks', :action => 'blocks_by', :display_name => @user.display_name %> -<% end %> -<% else %> - -<%= link_to t('user.view.send message'), :controller => 'message', :action => 'new', :display_name => @this_user.display_name %> -| <%= link_to t('user.view.diary'), :controller => 'diary_entry', :action => 'list', :display_name => @this_user.display_name %> -| <%= link_to t('user.view.edits'), :controller => 'changeset', :action => 'list', :display_name => @this_user.display_name %> -| <%= link_to t('user.view.traces'), :controller => 'trace', :action => 'view', :display_name => @this_user.display_name %> -| <% if @user and @user.is_friends_with?(@this_user) %> - <%= link_to t('user.view.remove as friend'), :controller => 'user', :action => 'remove_friend', :display_name => @this_user.display_name %> -<% else %> - <%= link_to t('user.view.add as friend'), :controller => 'user', :action => 'make_friend', :display_name => @this_user.display_name %> -<% end %> -| <%= link_to t('user.view.block_history'), :controller => 'user_blocks', :action => 'blocks_on', :display_name => @this_user.display_name %> -<% if @this_user.moderator? %> -| <%= link_to t('user.view.moderator_history'), :controller => 'user_blocks', :action => 'blocks_by', :display_name => @this_user.display_name %> -<% end %> -<% if @user and @user.moderator? %> -| <%= link_to t('user.view.create_block'), :controller => 'user_blocks', :action => 'new', :display_name => @this_user.display_name %> -<% end %> -<% end %> -<% if @user and @user.administrator? %> -
-<% if @this_user.active? %> -<%= link_to t('user.view.deactivate_user'), {:controller => 'user', :action => 'deactivate', :display_name => @this_user.display_name}, {:confirm => t('user.view.confirm')} %> -<% else %> -<%= link_to t('user.view.activate_user'), {:controller => 'user', :action => 'activate', :display_name => @this_user.display_name}, {:confirm => t('user.view.confirm')} %> -<% end %> -<% if @this_user.visible? %> -| <%= link_to t('user.view.hide_user'), {:controller => 'user', :action => 'hide', :display_name => @this_user.display_name}, {:confirm => t('user.view.confirm')} %> -| <%= link_to t('user.view.delete_user'), {:controller => 'user', :action => 'delete', :display_name => @this_user.display_name}, {:confirm => t('user.view.confirm')} %> -<% else %> -| <%= link_to t('user.view.unhide_user'), {:controller => 'user', :action => 'unhide', :display_name => @this_user.display_name}, {:confirm => t('user.view.confirm')} %> -<% end %> -<% end %> + <% if @user and @this_user.id == @user.id %> + + <%= link_to t('user.view.my diary'), :controller => 'diary_entry', :action => 'list', :display_name => @user.display_name %> + | + <%= link_to t('user.view.new diary entry'), :controller => 'diary_entry', :action => 'new', :display_name => @user.display_name %> + | + <%= link_to t('user.view.my edits'), :controller => 'changeset', :action => 'list', :display_name => @user.display_name %> + | + <%= link_to t('user.view.my traces'), :controller => 'trace', :action=>'mine' %> + | + <%= link_to t('user.view.my settings'), :controller => 'user', :action => 'account', :display_name => @user.display_name %> + | + <%= link_to t('user.view.oauth settings'), :controller => 'oauth_clients', :action => 'index' %> + | + <%= link_to t('user.view.blocks on me'), :controller => 'user_blocks', :action => 'blocks_on', :display_name => @user.display_name %> + <% if @user and @user.moderator? %> + | <%= link_to t('user.view.blocks by me'), :controller => 'user_blocks', :action => 'blocks_by', :display_name => @user.display_name %> + <% end %> + <% else %> + + <%= link_to t('user.view.send message'), :controller => 'message', :action => 'new', :display_name => @this_user.display_name %> + | + <%= link_to t('user.view.diary'), :controller => 'diary_entry', :action => 'list', :display_name => @this_user.display_name %> + | + <%= link_to t('user.view.edits'), :controller => 'changeset', :action => 'list', :display_name => @this_user.display_name %> + | + <%= link_to t('user.view.traces'), :controller => 'trace', :action => 'view', :display_name => @this_user.display_name %> + | + <% if @user and @user.is_friends_with?(@this_user) %> + <%= link_to t('user.view.remove as friend'), :controller => 'user', :action => 'remove_friend', :display_name => @this_user.display_name %> + <% else %> + <%= link_to t('user.view.add as friend'), :controller => 'user', :action => 'make_friend', :display_name => @this_user.display_name %> + <% end %> + | + <%= link_to t('user.view.block_history'), :controller => 'user_blocks', :action => 'blocks_on', :display_name => @this_user.display_name %> + <% if @this_user.moderator? %> + | <%= link_to t('user.view.moderator_history'), :controller => 'user_blocks', :action => 'blocks_by', :display_name => @this_user.display_name %> + <% end %> + <% if @user and @user.moderator? %> + | <%= link_to t('user.view.create_block'), :controller => 'user_blocks', :action => 'new', :display_name => @this_user.display_name %> + <% end %> + <% end %> + <% if @user and @user.administrator? %> +
+ <% if @this_user.active? %> + <%= link_to t('user.view.deactivate_user'), {:controller => 'user', :action => 'deactivate', :display_name => @this_user.display_name}, {:confirm => t('user.view.confirm')} %> + <% else %> + <%= link_to t('user.view.activate_user'), {:controller => 'user', :action => 'activate', :display_name => @this_user.display_name}, {:confirm => t('user.view.confirm')} %> + <% end %> + | + <% if @this_user.visible? %> + <%= link_to t('user.view.hide_user'), {:controller => 'user', :action => 'hide', :display_name => @this_user.display_name}, {:confirm => t('user.view.confirm')} %> + | + <%= link_to t('user.view.delete_user'), {:controller => 'user', :action => 'delete', :display_name => @this_user.display_name}, {:confirm => t('user.view.confirm')} %> + <% else %> + <%= link_to t('user.view.unhide_user'), {:controller => 'user', :action => 'unhide', :display_name => @this_user.display_name}, {:confirm => t('user.view.confirm')} %> + <% end %> + <% end %>
-

<%= t 'user.view.mapper since' %> <%= l @this_user.creation_time %> <%= t 'user.view.ago', :time_in_words_ago => time_ago_in_words(@this_user.creation_time) %>

+

<%= t 'user.view.mapper since' %> <%= l @this_user.creation_time, :format => :friendly %> <%= t 'user.view.ago', :time_in_words_ago => time_ago_in_words(@this_user.creation_time) %>

<% if @user and @user.administrator? %> -

<%= t 'user.view.email address' %> <%= @this_user.email %>

-

<%= t 'user.view.created from' %> <%= @this_user.creation_ip %>

+

<%= t 'user.view.email address' %> <%= @this_user.email %>

+

<%= t 'user.view.created from' %> <%= @this_user.creation_ip %>

<% end %>

<%= t 'user.view.description' %>

-
<%= htmlize(@this_user.description) %>
-<% if @this_user.home_lat.nil? or @this_user.home_lon.nil? %> -

<%= t 'user.view.user location' %>

- - <%= t 'user.view.no home location' %> - <% if @user and @this_user.id == @user.id %> - <%= t 'user.view.if set location', :settings_link => (link_to t('user.view.settings_link_text'), :controller => 'user', :action => 'account', :display_name => @user.display_name) %> - <% end %> -<% else %> +
<%= htmlize(@this_user.description) %>
- <% if @user and @this_user.id == @user.id %> -

<%= t 'user.view.your friends' %>

- <% if @this_user.friends.empty? %> - <%= t 'user.view.no friends' %> +<% if @user and @this_user.id == @user.id %> +
+ <% if @this_user.home_lat.nil? or @this_user.home_lon.nil? %> +

+ <%= t 'user.view.if set location', :settings_link => (link_to t('user.view.settings_link_text'), :controller => 'user', :action => 'account', :display_name => @user.display_name) %> +

<% else %> - - <% @this_user.friends.each do |friend| %> - <% @friend = User.find_by_id(friend.friend_user_id) %> - - - - - - - <%end%> -
- <% if @friend.image %> - <%= image_tag url_for_file_column(@friend, "image") %> - <% end %> - <%= link_to h(@friend.display_name), :controller => 'user', :action => 'view', :display_name => @friend.display_name %> - <% if @friend.home_lon and @friend.home_lat %> - <% distance = @this_user.distance(@friend) %> - <% if distance < 1 %> - <%= t 'user.view.m away', :count => (distance * 1000).round %> - <% else %> - <%= t 'user.view.km away', :count => distance.round %> - <% end %> - <% end %> - (<%= link_to t('user.view.send message'), :controller => 'message', :action => 'new', :display_name => @friend.display_name %>)
- <%end%> -
- <%end%> + <%= render :partial => 'map' %> + <% end %> +
+ <% friends = @this_user.friends.collect { |f| f.befriendee } %> + <% nearby = @this_user.nearby - friends %> - <% if @user and @this_user.id == @user.id %> -

<%= t 'user.view.nearby users' %>

- <% if @this_user.nearby.empty? %> - <%= t 'user.view.no nearby users' %> - <% else %> +

<%= t 'user.view.your friends' %>

-
- <%= render :partial => 'friend_map' %> - - <% @this_user.nearby.each do |nearby| %> - - - - - - <% end %> -
<%= link_to h(nearby.display_name), :controller => 'user', :action => 'view', :display_name => nearby.display_name %> - <% distance = @this_user.distance(nearby) %> - <% if distance < 1 %> - <%= t 'user.view.m away', :count => (distance * 1000).round %> - <% else %> - <%= t 'user.view.km away', :count => distance.round %> - <% end %> - (<%= link_to t('user.view.send message'), :controller => 'message', :action => 'new', :display_name => nearby.display_name %>)
- <% end %> + <% if friends.empty? %> + <%= t 'user.view.no friends' %> + <% else %> + + <%= render :partial => "contact", :collection => friends %> +
<% end %> -<% end %> -
-
-<% if @user and @this_user.id == @user.id %> -<%= link_to t('user.view.my_oauth_details'), :controller => 'oauth_clients', :action => 'index' %> +

<%= t 'user.view.nearby users' %>

+ + <% if nearby.empty? %> + <%= t 'user.view.no nearby users' %> + <% else %> + + <%= render :partial => "contact", :collection => nearby %> +
+ <% end %> <% end %> diff --git a/config/.gitignore b/config/.gitignore new file mode 100644 index 000000000..b5649dd03 --- /dev/null +++ b/config/.gitignore @@ -0,0 +1 @@ +database.yml diff --git a/config/environment.rb b/config/environment.rb index 70a1ddbd5..01115ba97 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -54,6 +54,7 @@ Rails::Initializer.run do |config| config.gem 'httpclient' config.gem 'ruby-openid', :lib => 'openid', :version => '>=2.0.4' config.gem 'SystemTimer', :version => '>= 1.1.3', :lib => 'system_timer' + config.gem 'sanitize' # Only load the plugins named here, in the order given. By default, all plugins # in vendor/plugins are loaded in alphabetical order. diff --git a/config/environments/test.rb b/config/environments/test.rb index 58850a797..a26b6ef92 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -20,3 +20,6 @@ config.action_controller.allow_forgery_protection = false # The :test delivery method accumulates sent emails in the # ActionMailer::Base.deliveries array. config.action_mailer.delivery_method = :test + +# Load timecop to help with testing time dependent code +config.gem 'timecop' diff --git a/config/initializers/i18n.rb b/config/initializers/i18n.rb index 54a925e3c..b2af5004e 100644 --- a/config/initializers/i18n.rb +++ b/config/initializers/i18n.rb @@ -2,3 +2,29 @@ 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 + +module I18n + module Backend + class Simple + protected + alias_method :old_init_translations, :init_translations + + def init_translations + old_init_translations + + merge_translations(:nb, translations[:no]) + translations[:no] = translations[:nb] + + friendly = translate('en', 'time.formats.friendly') + + available_locales.each do |locale| + time_formats = I18n.t('time.formats', :locale => locale) + + unless time_formats.has_key?(:friendly) + store_translations(locale, :time => { :formats => { :friendly => friendly } }) + end + end + end + end + end +end diff --git a/config/initializers/sanitize.rb b/config/initializers/sanitize.rb new file mode 100644 index 000000000..7360e2701 --- /dev/null +++ b/config/initializers/sanitize.rb @@ -0,0 +1,3 @@ +Sanitize::Config::OSM = Sanitize::Config::RELAXED.dup + +Sanitize::Config::OSM[:add_attributes] = { 'a' => { 'rel' => 'nofollow' } } diff --git a/config/locales/af.yml b/config/locales/af.yml index e7bbe8d2f..b1d57267c 100644 --- a/config/locales/af.yml +++ b/config/locales/af.yml @@ -353,6 +353,7 @@ af: auditorium: Ouditorium bank: Bank bar: Kroeg + bench: Bank bicycle_parking: Fietsparkering bicycle_rental: Fietsverhuring brothel: Bordeel @@ -367,6 +368,7 @@ af: club: Klub college: Kollege community_centre: Gemeenskap-sentrum + courthouse: Hof crematorium: Krematorium dentist: Tandarts doctors: Dokters @@ -382,6 +384,7 @@ af: fountain: Fontein fuel: Brandstof grave_yard: Begraafplaas + hall: Saal health_centre: Gesondheidsentrum hospital: Hospitaal hotel: Hotel @@ -392,6 +395,7 @@ af: market: Mark marketplace: Markplein nightclub: Nagklub + nursery: Kleuterskool nursing_home: Verpleeghuis office: Kantoor park: Park @@ -413,6 +417,7 @@ af: school: Skool shelter: Skuiling shop: Winkel + shopping: Inkopies social_club: Sosiale klub studio: Studio supermarket: Supermark @@ -474,6 +479,8 @@ af: platform: Platform primary: Primêre pad primary_link: Primêre pad + raceway: Renbaan + residential: Woonerf road: Pad secondary: Sekondêre pad secondary_link: Sekondêre pad @@ -559,6 +566,7 @@ af: feature: Besienswaardigheid geyser: Geiser glacier: Gletser + heath: Heide hill: Heuwel island: Eiland land: Land @@ -570,6 +578,7 @@ af: ridge: Bergkam river: Rivier rock: Rotse + scree: Puin scrub: Struikgewas shoal: Sandbank spring: Bron @@ -731,11 +740,10 @@ af: donate: Ondersteun OpenStreetMap deur aan die Hardeware Opgradeer-fonds te {{link}}. donate_link_text: skenk edit: Wysig - edit_tooltip: Wysig kaarte export: Eksporteer export_tooltip: Eksporteer kaartdata gps_traces: GPS-spore - gps_traces_tooltip: Beheer spore + gps_traces_tooltip: Beheer GPS-spore help_wiki: Help & Wiki help_wiki_tooltip: Help en wiki vir die projek history: Geskiedenis @@ -770,13 +778,9 @@ af: user_diaries: Gebruikersdagboeke user_diaries_tooltip: Wys gebruikersdagboeke view: Wys - view_tooltip: Wys kaarte + view_tooltip: Wys die kaart welcome_user: Welkom, {{user_link}} welcome_user_link_tooltip: U gebruikersblad - map: - coordinates: "Koördinate:" - edit: Wysig - view: Wys message: delete: deleted: Boodskap is verwyder @@ -807,9 +811,9 @@ af: subject: Onderwerp title: Stuur boodskap no_such_user: - body: Jammer, daar is geen gebruiker of boodskap met die naam of id nie - heading: Geen sodanige gebruiker of boodskap nie - title: Geen sodanige gebruiker of boodskap nie + body: Jammer, daar is geen gebruiker met die naam nie + heading: Die gebruiker bestaan nie + title: Die gebruiker bestaan nie outbox: date: Datum inbox: inboks @@ -1104,6 +1108,7 @@ af: email never displayed publicly: (word nie openbaar gemaak nie) flash update success: U gebruikersinligting is verander. home location: "Tuisligging:" + image: "Beeld:" latitude: "Breedtegraad:" longitude: "Lengtegraad:" make edits public button: Maak al my wysigings openbaar @@ -1127,9 +1132,6 @@ af: confirm_email: button: Bevestig success: U e-posadres is bevestig, dankie dat u geregistreer het! - friend_map: - nearby mapper: "Nabygeleë karteerder: [[nearby_user]]" - your location: U ligging login: auth failure: Jammer, kon nie met hierdie inligting aanteken nie. create_account: registreer @@ -1167,6 +1169,9 @@ af: body: Daar is geen gebruiker met die naam {{user}} nie. Kontroleer u spelling, of die skakel waarop u gekliek het is verkeerd. heading: Die gebruiker {{user}} bestaan nie title: Gebruiker bestaan nie + popup: + nearby mapper: Nabygeleë karteerder + your location: U ligging remove_friend: not_a_friend: "{{name}} is nie een van u vriende nie." success: "{{name}} is uit u lys van vriende verwyder." @@ -1182,16 +1187,13 @@ af: view: activate_user: aktiveer hierdie gebruiker add as friend: voeg by as vriend - add image: Voeg prent by ago: ({{time_in_words_ago}} gelede) block_history: wys blokkades ontvang blocks by me: blokkades deur my blocks on me: blokkades op my - change your settings: verander u voorkeure confirm: Bevestig create_block: blokkeer die gebruiker deactivate_user: deaktiveer hierdie gebruiker - delete image: Verwyder prent delete_user: skrap die gebruiker description: Beskrywing diary: dagboek @@ -1207,12 +1209,10 @@ af: my edits: my wysigings my settings: my voorkeure my traces: my spore - my_oauth_details: Wys my OAuth-besonderhede - nearby users: "Nabygeleë gebruikers:" + nearby users: Ander nabygeleë gebruikers new diary entry: nuwe dagboekinskrywing no friends: U het nog geen vriende bygevoeg nie. - no home location: Geen tuisligging verskaf nie. - no nearby users: Daar is nog geen nabygeleë gebruikers wat erken dat hulle karterinswerk doen nie. + no nearby users: Daar is nog geen gebruikers wat herken dat hulle nabygeleë karterinswerk doen nie. remove as friend: verwyder as vriend role: administrator: Hierdie gebruiker is 'n administrateur @@ -1227,8 +1227,6 @@ af: settings_link_text: voorkeure traces: spore unhide_user: maak die gebruiker weer sigbaar - upload an image: Laai 'n prent op - user image heading: Foto van gebruiker user location: Ligging van gebruiker your friends: U vriende user_block: diff --git a/config/locales/ar.yml b/config/locales/ar.yml index 832c106a7..8a0125175 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -3,6 +3,7 @@ # Export driver: syck # Author: Aude # Author: Bassem JARKAS +# Author: Grille chompa # Author: Mutarjem horr # Author: OsamaK ar: @@ -328,6 +329,10 @@ ar: recent_entries: "المدخلات اليومية الحديثة:" title: يوميات المستخدمين user_title: يومية {{user}} + location: + edit: عدّل + location: "الموقع:" + view: اعرض new: title: مدخلة يومية جديدة no_such_entry: @@ -367,6 +372,9 @@ ar: output: الخرج paste_html: ألصق HTML لتضمينه في موقع ما scale: القياس + too_large: + body: هذه المنطقة كبيرة جدًا للتصدير على هيئة بيانات إكس إم إل لخريطة الشارع المفتوحة. يرجى تكبير الخريطة أو استخدام منطقة أصغر. + heading: المنطقة كبيرة جدًا zoom: تكبير start_rjs: add_marker: أضف علامة على الخريطة @@ -852,27 +860,31 @@ ar: water_point: نقطة ماء شفة waterfall: شلال weir: هدار (سدّ منخفض) + html: + dir: rtl javascripts: map: base: cycle_map: خريطة للدراجات noname: التسمية غائبة site: + edit_disabled_tooltip: قم بالتكبير لتحرير الخريطة + edit_tooltip: عدّل الخريطة edit_zoom_alert: يجب عليك التكبير لتعديل الخريطة + history_disabled_tooltip: قم بالتكبير لعرض التعديلات في هذه المنطقة + history_tooltip: اعرض التعديلات في هذه المنطقة history_zoom_alert: يجب التكبير لرؤية تاريخ التعديل layouts: donate: ادعم خريطة الشارع المفتوحة ب{{link}} لتمويل ترقية العتاد. donate_link_text: التبرع edit: عدّل الخريطة - edit_tooltip: يمكنك تعديل هذه الخريطة، من فضلك اقرأ صفحة الدليل قبل البدء export: صدِّر export_tooltip: صدّر بيانات الخريطة gps_traces: آثار جي بي أس - gps_traces_tooltip: عالج الآثار + gps_traces_tooltip: عالج آثار جي بي إس help_wiki: المساعدة والويكي help_wiki_tooltip: المساعدة وموقع الويكي للمشروع history: تاريخ - history_tooltip: تاريخ حزمة التغييرات home: الصفحة الرئيسية home_tooltip: اذهب إلى الصفحة الرئيسية inbox: صندوق البريد ({{count}}) @@ -910,13 +922,9 @@ ar: user_diaries: يوميات المستخدمين user_diaries_tooltip: اعرض يوميات المستخدمين view: اعرض - view_tooltip: اعرض الخرائط + view_tooltip: اعرض الخريطة welcome_user: مرحبًا بك، {{user_link}} welcome_user_link_tooltip: صفحة المستخدم الخاصة بك - map: - coordinates: "الإحداثيات:" - edit: عدّل - view: اعرض message: delete: deleted: حُذفت الرسالة @@ -947,10 +955,14 @@ ar: send_message_to: أرسل رسالة جديدة إلى {{name}} subject: الموضوع title: أرسل رسالة + no_such_message: + body: عذرًا لا يوجد أي رسالة بهذا المعرف. + heading: لا توجد مثل هذه الرسالة + title: لا توجد مثل هذه الرسالة no_such_user: - body: عذرًا لا يوجد مستخدم أو رسالة بذلك الاسم أو المعرّف - heading: لا يوجد مستخدم أو رسالة - title: لا يوجد مستخدم أو رسالة + body: عذرًا لا يوجد مستخدم أو رسالة بذلك الاسم. + heading: لا يوجد مثل هذا المستخدم + title: لا يوجد مثل هذا المستخدم outbox: date: التاريخ inbox: صندوق البريد الوارد @@ -974,6 +986,9 @@ ar: title: اقرأ الرسالة to: إلى unread_button: علّم كغير مقروءة + wrong_user: أنت مسجل دخول باسم '{{user}}' ولكن الرسالة التي طلبت قراءتها لم تكن من أو إلى ذلك المستخدم. يرجى تسجيل الدخول كمستخدم صحيح للرد. + reply: + wrong_user: أنت مسجل دخول باسم '{{user}}' ولكن الرسالة التي طلبت الرد عليها لم تكن مرسلة لذلك المستخدم. يرجى تسجيل الدخول كمستخدم صحيح للرد. sent_message_summary: delete_button: احذف notifier: @@ -994,8 +1009,9 @@ ar: hopefully_you_1: شخص ما (نأمل أنت) يرغب بتغيير عنوان بريده الإلكتروني على hopefully_you_2: "{{server_url}} إلى {{new_address}}." friend_notification: + befriend_them: يمكنك أيضًا إضافتهم كصديق على {{befriendurl}}. had_added_you: "{{user}} قام بإضافتك كصديق على خريطة الشارع المفتوحة." - see_their_profile: يمكنك أن تشاهد ملفه الشخصي على {{userurl}} وإضافته كصديق أيضًا إن كنت ترغب في ذلك. + see_their_profile: يمكنك أن تشاهد ملفهم الشخصي على {{userurl}}. subject: "[خريطة الشارع المفتوحة] {{user}} أضافك كصديق." gpx_notification: and_no_tags: ولا يوجد سمات. @@ -1222,6 +1238,9 @@ ar: sidebar: close: أغلق search_results: نتائج البحث + time: + formats: + friendly: "%e %B %Y في %H:%M" trace: create: trace_uploaded: لقد تم تحميل ملفك الجي بي إكس ويتنظر الإدراج في قاعدة البيانات. وهذا يحدث عادًة خلال نصف ساعة، وسيتم إرسال رسالة إلكترونية لك عند الانتهاء. @@ -1324,15 +1343,20 @@ ar: user: account: current email address: "عنوان البريد الإلكرتروني الحالي:" + delete image: أزل الصورة الحالية email never displayed publicly: (لا يظهر علنًا) flash update success: تم تحديث معلومات المستخدم بنجاح. flash update success confirm needed: تم تحديث معلومات المستخدم بنجاح. تحقق من بريدك الإلكتروني لمذكرة تأكيد العنوان الإلكتروني الجديد. home location: "موقع المنزل:" + image: "الصورة:" + image size hint: (صورة مربعة على الأقل 100 × 100 تعمل بشكل أفضل) + keep image: احتفظ بالصورة الحالية latitude: "خط العرض:" longitude: "خط الطول:" make edits public button: اجعل جميع تعديلاتي عامة my settings: إعداداتي new email address: "عنوان البريد الإلكتروني الجديد:" + new image: أضف صورة no home location: لم تدخل موقع منزلك. preferred languages: "اللغات المفضّلة:" profile description: "وصف الملف الشخصي:" @@ -1346,6 +1370,7 @@ ar: public editing note: heading: تعديل عام text: حاليًا تعديلاتك تظهر بشكل مجهول ولا يمكن للناس إرسال رسائل لك أو رؤية موقعك. لإظهار ما قمت بتعديله وللسماح للناس بالاتصال بك من خلال الموقع، انقر على الزر أدناه. منذ التغيير إلى الأي بي أي 0.6، فقط المستخدمين العلنيين يمكنه تحرير بيانات الخريطة. (لمعرفة السبب).
  • عنوانك البريدي لن يكشف به علنّا.
  • هذا الإجراء لا يمكن عكسه وجميع المستخدمين الجديد علنيين بشكل افتراضي.
+ replace image: استبدل الصورة الحالية return to profile: العودة إلى الملف الشخصي save changes button: احفظ التغييرات title: عدّل الحساب @@ -1364,9 +1389,6 @@ ar: success: تم تأكيد عنوان بريدك الإلكتروني، شكرًا للاشتراك! filter: not_an_administrator: عليك أن تكون إداري لتنفيذ هذا الإجراء. - friend_map: - nearby mapper: "مخطط بالجوار: [[nearby_user]]" - your location: موقعك go_public: flash success: جميع تعديلاتك الآن عامة، ومسموح لك بالتعديل الآن. login: @@ -1379,7 +1401,12 @@ ar: lost password link: أنسيت كلمة المرور؟ password: "كلمة المرور:" please login: من فضلك لُج أو {{create_user_link}}. + remember: "تذكرني:" title: ولوج + logout: + heading: الخروج من خريطة الشارع المفتوحة + logout_button: اخرج + title: اخرج lost_password: email address: "عنوان البريد الإلكتروني:" heading: أنسيت كلمة المرور؟ @@ -1412,6 +1439,10 @@ ar: body: عذرًا، لا يوجد مستخدم بالاسم {{user}}. يرجى تدقيق الاسم، أو ربما يكون الرابط الذي تم النقر عليه خاطئ. heading: المستخدم {{user}} غير موجود title: مستخدم غير موجود + popup: + friend: صديق + nearby mapper: مخطط بالجوار + your location: موقعك remove_friend: not_a_friend: "{{name}} ليس من أحد أصدقائك." success: تم إزالة {{name}} من قائمة أصدقائك. @@ -1428,17 +1459,14 @@ ar: view: activate_user: نشّط هذا المستخدم add as friend: أضف كصديق - add image: أضف صورة ago: ({{time_in_words_ago}}) block_history: اعرض العرقلات الواصلة blocks by me: العرقلات بواسطتي blocks on me: العرقلات علي - change your settings: غيّر إعداداتك confirm: أكّد create_block: امنع هذا المستخدم created from: "أُنشىء من:" deactivate_user: احذف هذا المستخدم - delete image: احذف الصورة delete_user: احذف هذا المستخدم description: الوصف diary: يومية @@ -1454,12 +1482,11 @@ ar: my edits: مساهماتي my settings: إعداداتي my traces: آثاري - my_oauth_details: اعرض تفاصيل OAuth الخاص بي - nearby users: "مستخدمين بالجوار:" + nearby users: "مستخدمين أيضًا بالجوار:" new diary entry: مدخلة يومية جديدة no friends: لم تقم بإضافة أي أصدقاء بعد. - no home location: لم يتم تحديد الموقع. - no nearby users: لا يوجد بعد مستخدمين أفصحوا عن تخطيطهم بالجوار. + no nearby users: لا يوجد بعد المزيد من المستخدمين أفصحوا عن تخطيطهم بالجوار. + oauth settings: إعدادات oauth remove as friend: أزل كصديق role: administrator: هذا المستخدم إداري @@ -1474,8 +1501,6 @@ ar: settings_link_text: إعدادات traces: آثار unhide_user: أظهر هذا المستخدم - upload an image: حمّل صورة - user image heading: صورة المستخدم user location: الموقع your friends: أصدقاؤك user_block: diff --git a/config/locales/arz.yml b/config/locales/arz.yml index c49bdbfa9..bf861a937 100644 --- a/config/locales/arz.yml +++ b/config/locales/arz.yml @@ -818,7 +818,6 @@ arz: donate: ادعم خريطه الشارع المفتوحه ب{{link}} لتمويل ترقيه العتاد. donate_link_text: التبرع edit: عدّل هذه الخريطة - edit_tooltip: يمكنك تعديل هذه الخريطه، من فضلك اقرأ صفحه الدليل قبل البدء export: صدِّر export_tooltip: صدّر بيانات الخريطة gps_traces: آثار جى بى أس @@ -826,7 +825,6 @@ arz: help_wiki: المساعده والويكي help_wiki_tooltip: المساعده وموقع الويكى للمشروع history: تاريخ - history_tooltip: تاريخ حزمه التغييرات home: الصفحه الرئيسية home_tooltip: اذهب إلى الصفحه الرئيسية inbox: صندوق البريد ({{count}}) @@ -866,10 +864,6 @@ arz: view_tooltip: اعرض الخرائط welcome_user: مرحبًا بك، {{user_link}} welcome_user_link_tooltip: صفحه المستخدم الخاصه بك - map: - coordinates: "الإحداثيات:" - edit: عدّل - view: اعرض message: delete: deleted: حُذفت الرسالة @@ -1289,9 +1283,6 @@ arz: success: تم تأكيد عنوان بريدك الإلكترونى، شكرًا للاشتراك! filter: not_an_administrator: عليك أن تكون إدارى لتنفيذ هذا الإجراء. - friend_map: - nearby mapper: "مخطط بالجوار: [[nearby_user]]" - your location: موقعك go_public: flash success: جميع تعديلاتك الآن عامه، ومسموح لك بالتعديل الآن. login: @@ -1337,6 +1328,9 @@ arz: body: عذرًا، لا يوجد مستخدم بالاسم {{user}}. يرجى تدقيق الاسم، أو ربما يكون الرابط الذى تم النقر عليه خاطئ. heading: المستخدم {{user}} غير موجود title: مستخدم غير موجود + popup: + nearby mapper: مخطط بالجوار + your location: موقعك remove_friend: not_a_friend: "{{name}} ليس من أحد أصدقائك." success: تم إزاله {{name}} من قائمه أصدقائك. @@ -1353,17 +1347,14 @@ arz: view: activate_user: نشّط هذا المستخدم add as friend: أضف كصديق - add image: أضف صورة ago: (منذ {{time_in_words_ago}}) block_history: اعرض العرقلات الواصلة blocks by me: العرقلات بواسطتي blocks on me: العرقلات علي - change your settings: غيّر إعداداتك confirm: أكّد create_block: امنع هذا المستخدم created from: "أُنشىء من:" deactivate_user: احذف هذا المستخدم - delete image: احذف الصورة delete_user: احذف هذا المستخدم description: الوصف diary: يومية @@ -1379,11 +1370,9 @@ arz: my edits: مساهماتي my settings: إعداداتي my traces: آثاري - my_oauth_details: اعرض تفاصيل OAuth الخاص بي nearby users: "مستخدمين بالجوار:" new diary entry: مدخله يوميه جديدة no friends: لم تقم بإضافه أى أصدقاء بعد. - no home location: لم يتم تحديد الموقع. no nearby users: لا يوجد بعد مستخدمين أفصحوا عن تخطيطهم بالجوار. remove as friend: أزل كصديق role: @@ -1399,8 +1388,6 @@ arz: settings_link_text: إعدادات traces: آثار unhide_user: أظهر هذا المستخدم - upload an image: حمّل صورة - user image heading: صوره المستخدم user location: الموقع your friends: أصدقاؤك user_block: diff --git a/config/locales/be-TARASK.yml b/config/locales/be-TARASK.yml index 39de27112..b41bed97c 100644 --- a/config/locales/be-TARASK.yml +++ b/config/locales/be-TARASK.yml @@ -3,6 +3,7 @@ # Export driver: syck # Author: EugeneZelenko # Author: Jim-by +# Author: Wizardist be-TARASK: activerecord: attributes: @@ -30,6 +31,8 @@ be-TARASK: version: "Вэрсія:" map: deleted: Выдаленая + larger: + way: Паказаць шлях на большай мапе loading: Загрузка… node: download_xml: Загрузіць XML @@ -76,6 +79,9 @@ be-TARASK: type: node: Вузел way: Шлях + wait: Пачакайце... + tag_details: + tags: "Меткі:" way: download: "{{download_xml_link}}, {{view_history_link}} ці {{edit_link}}" download_xml: Загрузіць XML @@ -89,6 +95,10 @@ be-TARASK: way_history: download_xml: Загрузіць XML view_details: паказаць падрабязнасьці + way_history_title: "Гісторыя зьменаў шляху: {{way_name}}" + changeset: + list: + description: Апошнія зьмены diary_entry: edit: language: "Мова:" @@ -110,9 +120,6 @@ be-TARASK: edit: Рэдагаваць export: Экспартаваць history: Гісторыя - map: - coordinates: "Каардынаты:" - edit: Рэдагаваць message: inbox: subject: Тэма @@ -132,6 +139,8 @@ be-TARASK: edit: submit: Рэдагаваць trace: + create: + upload_trace: Загрузіць GPS-трэк edit: description: "Апісаньне:" download: загрузіць @@ -168,8 +177,6 @@ be-TARASK: reset: Ачысьціць пароль title: Ачысьціць пароль view: - add image: Дадаць выяву - delete image: Выдаліць выяву description: Апісаньне edits: рэдагаваньні my settings: мае ўстаноўкі diff --git a/config/locales/be.yml b/config/locales/be.yml index b176549b5..c3d9d59b8 100644 --- a/config/locales/be.yml +++ b/config/locales/be.yml @@ -282,7 +282,6 @@ be: donate: Падтрымайце OpenStreetMap {{link}} у фонд абнаўлення тэхнікі. donate_link_text: ахвяраваннем edit: Змяніць - edit_tooltip: Рэдагаваць карты export: Экспарт export_tooltip: Экспартаваць данныя карты gps_traces: GPS Трэкі @@ -291,7 +290,6 @@ be: help_wiki_tooltip: Даведка і сайт Вікі help_wiki_url: http://wiki.openstreetmap.org/wiki/RU:Main_Page?uselang=be history: Гісторыя - history_tooltip: Гісторыя змен home: дамоў home_tooltip: Паказаць маю хату inbox: уваходныя ({{count}}) @@ -327,10 +325,6 @@ be: view_tooltip: Паглядзець карты welcome_user: Вітаем, {{user_link}} welcome_user_link_tooltip: Ваша старонка карыстача - map: - coordinates: "Каардынаты:" - edit: Змяніць - view: Карта message: inbox: date: Дата @@ -593,9 +587,6 @@ be: heading: Пацвердзіць змену паштовага адрасу press confirm button: Націсніце кнопку, каб пацвердзіць ваш новы паштовы адрас. success: Ваш адрас пацверджаны, дзякуй за рэгістрацыю! - friend_map: - nearby mapper: "Карыстальнік: [[nearby_user]]" - your location: Ваша месцазнаходжанне go_public: flash success: Усе вашыя змены цяпер публічныя, і вам цяпер дазволена рэдагаванне login: @@ -639,6 +630,9 @@ be: body: Прабачце, карыстальнік {{user}} не знойдзены. Please check your spelling, Калі ласка, праверце свой правапіс, ці, магчыма, вам далі няправільную спасылку. heading: Карыстальнік {{user}} не існуе title: Няма такога карыстальніка + popup: + nearby mapper: Карыстальнік + your location: Ваша месцазнаходжанне remove_friend: not_a_friend: "{{name}} не з'яўляецца вашым сябрам." success: "{{name}} выдалены са спіса сяброў." @@ -649,10 +643,7 @@ be: flash success: Дамашняе месцазнаходжанне паспяхова запісана view: add as friend: дадаць у сябры - add image: Дадаць выяву ago: ({{time_in_words_ago}} таму) - change your settings: змяніць вашыя настаўленні - delete image: Выдаліць выяву description: Апісанне diary: дзённік edits: змены @@ -666,13 +657,10 @@ be: nearby users: "Карыстальнікі непадалёку:" new diary entry: новы запіс у дзённіку no friends: Вы пакуль не дадалі нікога ў сябры. - no home location: Карыстальнік не паказаў сваё месцазнаходжанне. no nearby users: Пакуль няма карыстальнікаў, што адмецілі сваё месцазнаходжанне непадалёку. remove as friend: выдаліць з сяброў send message: даслаць паведамленне settings_link_text: настаўленняў traces: трэкі - upload an image: Зацягнуць выяву - user image heading: Выява карыстальніка user location: Месцазнаходжанне your friends: Вашыя сябры diff --git a/config/locales/bg.yml b/config/locales/bg.yml index 47427fc54..76fbb74c5 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -4,6 +4,11 @@ # Author: DCLXVI bg: browse: + changeset_details: + belongs_to: "Принадлежи към:" + common_details: + changeset_comment: "Коментар:" + version: "Версия:" containing_relation: entry: Релация {{relation_name}} entry_role: Релация {{relation_name}} (като {{relation_role}}) @@ -31,6 +36,10 @@ bg: paging_nav: of: от showing_page: Показване на страница + relation: + download_xml: Изтегляне на XML + relation_details: + members: "Членове:" relation_history: download: "{{download_xml_link}} или {{view_details_link}}" download_xml: Изтегляне на XML @@ -39,6 +48,11 @@ bg: type: node: Възел relation: Релация + start_rjs: + details: Подробности + loading: Зареждане... + object_list: + details: Подробности way: download: "{{download_xml_link}}, {{view_history_link}} или {{edit_link}}" download_xml: Изтегляне на XML @@ -64,6 +78,9 @@ bg: view: login: Влизане save_button: Съхраняване + export: + start: + licence: Лиценз message: new: send_button: Изпращане @@ -73,3 +90,46 @@ bg: subject: Тема to: До unread_button: Отбелязване като непрочетено + notifier: + diary_comment_notification: + hi: Здравейте ((to_user)), + email_confirm: + subject: "[OpenStreetMap] Потвърждаване на вашия адрес за е-поща" + oauth_clients: + edit: + submit: Редактиране + form: + name: Име + new: + submit: Регистриране + trace: + edit: + description: "Описание:" + edit: редактиране + filename: "Име на файл:" + save_button: Съхраняване на промените + no_such_user: + title: Няма такъв потребител + trace: + edit: редактиране + in: в + trace_form: + help: Помощ + view: + edit: редактиране + filename: "Име на файл:" + user: + reset_password: + password: "Парола:" + user_block: + partial: + creator_name: Създател + display_name: Блокиран потребител + edit: Редактиране + reason: Причина за блокиране + status: Статут + user_role: + grant: + confirm: Потвърждаване + revoke: + confirm: Потвърждаване diff --git a/config/locales/br.yml b/config/locales/br.yml index 2342aa496..af01e66d7 100644 --- a/config/locales/br.yml +++ b/config/locales/br.yml @@ -214,6 +214,12 @@ br: zoom_or_select: Zoumañ pe diuzañ un takad eus ar gartenn da welet tag_details: tags: "Balizennoù :" + timeout: + type: + changeset: strollad kemmoù + node: skoulm + relation: darempred + way: hent way: download: "{{download_xml_link}}, {{view_history_link}} pe {{edit_link}}" download_xml: Pellgargañ XML @@ -277,7 +283,7 @@ br: comment_link: Addisplegañ an enmoned-mañ confirm: Kadarnaat edit_link: Aozañ an enmoned-mañ - hide_link: Kuzhat an ebarzhadenn-mañ + hide_link: Kuzhat an elfenn-mañ posted_by: Postet gant {{link_user}} da {{created}} e {{language_link}} reply_link: Respont d'an enmoned-mañ edit: @@ -311,6 +317,10 @@ br: recent_entries: "Enmonedoù nevez en deizlevr :" title: Deizlevrioù an implijerien user_title: Deizlevr {{user}} + location: + edit: Kemmañ + location: "Lec'hiadur :" + view: "Lec'hiadur :" new: title: Enmoned nevez en deizlevr no_such_entry: @@ -326,7 +336,7 @@ br: login: Kevreañ login_to_leave_a_comment: "{{login_link}} evit lezel un addispleg" save_button: Enrollañ - title: Deizlevrioù an implijerien | {{user}} + title: Deizlevr {{user}} | {{title}} user_title: Deizlevr {{user}} export: start: @@ -350,6 +360,8 @@ br: output: Er-maez paste_html: Pegañ HTML evit bezañ enkorfet en ul lec'hienn web scale: Skeuliad + too_large: + heading: Zonenn re vras zoom: Zoum start_rjs: add_marker: Ouzhpennañ ur merker d'ar gartenn @@ -385,6 +397,7 @@ br: other: war-dro {{count}} km zero: nebeutoc'h eget 1 km results: + more_results: Muioc'h a zisoc'hoù no_results: N'eus bet kavet respont ebet search: title: @@ -574,7 +587,7 @@ br: icon: Arlun manor: Maner memorial: Kounlec'h - mine: Maen-gleuz + mine: Mengleuz monument: Monumant museum: Mirdi ruins: Dismantroù @@ -600,7 +613,7 @@ br: landfill: Diskarg meadow: Prad military: Takad milourel - mine: Maen-gleuz + mine: Mengleuz mountain: Menez nature_reserve: Gwarezva natur park: Park @@ -658,7 +671,7 @@ br: moor: Lanneier mud: Fank peak: Pikern - point: Beg + point: Poent reef: Karreg ridge: Kribenn river: Stêr @@ -840,21 +853,23 @@ br: cycle_map: Kelc'hiad kartenn noname: AnvEbet site: + edit_disabled_tooltip: Zoumañ da zegas kemmoù war ar gartenn + edit_tooltip: Kemmañ ar gartenn edit_zoom_alert: Ret eo deoc'h zoumañ evit aozañ ar gartenn + history_disabled_tooltip: Zoumañ evit gwelet ar c'hemmoù degaset d'an takad-mañ + history_tooltip: Gwelet ar c'hemmoù er zonenn-se history_zoom_alert: Ret eo deoc'h zoumañ evit gwelet istor an aozadennoù layouts: donate: Skoazellit OpenStreetMap dre {{link}} d'an Hardware Upgrade Fund. donate_link_text: oc'h ober un donezon edit: Aozañ - edit_tooltip: Aozañ kartennoù export: Ezporzhiañ export_tooltip: Ezporzhiañ roadennoù ar gartenn gps_traces: Roudoù GPS - gps_traces_tooltip: Merañ ar roudoù + gps_traces_tooltip: Merañ ar roudoù GPS help_wiki: Skoazell & Wiki help_wiki_tooltip: Skoazell & lec'hienn Wiki evit ar raktres history: Istor - history_tooltip: Istor ar strollad kemmoù home: degemer home_tooltip: Mont da lec'h ar gêr inbox: boest resev ({{count}}) @@ -864,7 +879,8 @@ br: zero: N'eus kemennadenn anlennet ebet en ho poest resev intro_1: OpenStreetMap zo ur gartenn digoust eus ar bed a-bezh, a c'haller kemmañ. Graet eo gant tud eveldoc'h. intro_2: Gant OpenStreetMap e c'hallit gwelet, aozañ hag implijout roadennoù douaroniel eus forzh pelec'h er bed. - intro_3: Herberc'hiet eo OpenStreetMap gant {{ucl}} et {{bytemark}}. + intro_3: Herberc'hiet eo OpenStreetMap gant {{ucl}} et {{bytemark}}. Skoazellerien all eus ar raktres a vez rollet war ar {{partners}}. + intro_3_partners: wiki license: title: OpenStreetMap data zo dindan an aotre-implijout Creative Commons Attribution-Share Alike 2.0 log_in: kevreañ @@ -889,13 +905,9 @@ br: user_diaries: Deizlevrioù an implijer user_diaries_tooltip: Gwelet deizlevrioù an implijerien view: Gwelet - view_tooltip: Gwelet ar c'hartennoù + view_tooltip: Gwelet ar gartenn welcome_user: Degemer mat, {{user_link}} welcome_user_link_tooltip: Ho pajenn implijer - map: - coordinates: "Daveennoù :" - edit: Aozañ - view: Gwelet message: delete: deleted: Kemennadenn dilamet @@ -926,10 +938,14 @@ br: send_message_to: Kas ur gemennadenn nevez da {{name}} subject: Danvez title: Kas ur gemennadenn + no_such_message: + body: Ho tigarez, n'eus kemennadenn ebet gant an id-se. + heading: N'eus ket eus ar gemennadenn-se + title: N'eus ket eus ar gemennadenn-se no_such_user: - body: Ho tigarez, n'eus implijer ebet na kemennadenn ebet gant an anv pe an id-se - heading: N'eus ket un implijer pe ur gemennadenn evel-se - title: N'eus ket un implijer pe ur gemennadenn evel-se + body: Ho tigarez, n'eus implijer ebet gant an anv. + heading: N'eus implijer ebet evel-se + title: N'eus implijer ebet evel-se outbox: date: Deiziad inbox: boest resev @@ -973,8 +989,9 @@ br: hopefully_you_1: Unan bennak (c'hwi moarvat) a garfe cheñch e chomlec'h postel da hopefully_you_2: "{{server_url}} da {{new_address}}." friend_notification: + befriend_them: "Tu 'zo deoc'h e ouzhpennañ evel ur mignon amañ : {{befriendurl}}." had_added_you: "{{user}} en deus hoc'h ouzhpennet evel mignon war OpenStreetMap." - see_their_profile: Gallout a rit gwelet o frofil war {{userurl}} hag o ouzhpennañ evel mignoned ma karit. + see_their_profile: "Gallout a rit gwelet o frofil amañ : {{userurl}}." subject: "[OpenStreetMap] {{user}} en deus hoc'h ouzhpennet evel mignon" gpx_notification: and_no_tags: ha balizenn ebet. @@ -1200,6 +1217,9 @@ br: sidebar: close: Serriñ search_results: Disoc'hoù an enklask + time: + formats: + friendly: "%e %B %Y da %H:%M" trace: create: trace_uploaded: Kaset eo bet ho restr GPX hag emañ en gortoz a vezañ ensoc'het en diaz roadennoù. C'hoarvezout a ra dindan un hanter-eurvezh peurvuiañ, ha kaset e vo ur postel deoc'h pa vo echu. @@ -1271,6 +1291,10 @@ br: traces_waiting: Bez' hoc'h eus {{count}} roud a c'hortoz bezañ kaset. Gwell e vefe gortoz a-raok kas re all, evit chom hep stankañ al lostennad evit an implijerien all. trace_optionals: tags: Balizennoù + trace_paging_nav: + next: War-lerc'h » + previous: "« A-raok" + showing_page: O tiskouez ar bajenn {{page}} view: delete_track: Dilemel ar roudenn-mañ description: "Deskrivadur :" @@ -1297,14 +1321,21 @@ br: trackable: A c'haller treseal (rannet evel dizanv hepken, poent uzhiet gant deiziadoù) user: account: + current email address: "Chomlec'h postel a-vremañ :" + delete image: Dilemel ar skeudenn a-vremañ email never displayed publicly: (n'eo ket diskwelet d'an holl morse) flash update success: Hizivaet eo bet titouroù an implijer. flash update success confirm needed: Hizivaet eo bet titouroù an implijer. Gwiriit ho posteloù evit kadarnaat ho chomlec'h postel nevez. home location: "Lec'hiadur ar gêr :" + image: "Skeudenn :" + image size hint: (ar skeudennoù karrezenneg gant ar stumm 100×100 pixel a zo ar re wellañ) + keep image: Derc'hel ar skeudenn a-vremañ latitude: "Ledred :" longitude: "Hedred :" make edits public button: Lakaat ma holl aozadennoù da vezañ foran my settings: Ma arventennoù + new email address: "Chomlec'h postel nevez :" + new image: Ouzhpennañ ur skeudenn no home location: N'hoc'h eus ket ebarzhet lec'hiadur ho kêr. preferred languages: "Yezhoù gwellañ karet :" profile description: "Deskrivadur ar profil :" @@ -1318,6 +1349,7 @@ br: public editing note: heading: Kemm foran text: Evit poent ez eo ho embannoù dianv, dre-se ne c'hell den skrivañ deoc'h pe gwelet ho lec'hiadur. Evit diskouez ar pezh o peus embannet ha reiñ an tu d'an dud da vont e darempred ganeoc'h dre al lec'hienn, klikit war al liamm da heul. Abaoe ar c'hemm davet ar stumm API 0.6, ne c'hell nemet an dud gant an doare "kemmoù foran" embann kartennoù. (gouzout hiroc'h).
  • Ne vo ket roet ho chomlec'h e-mail d'an dud o kregiñ ganti.
  • An obererezh-se ne c'hell ket bezañ nullet hag an implijerien nevez a zo en doare "kemmoù foran" dre ziouer.
+ replace image: Erlec'hiañ ar skeudenn a-vremañ return to profile: Distreiñ d'ar profil save changes button: Enrollañ ar c'hemmoù title: Aozañ ar gont @@ -1336,9 +1368,6 @@ br: success: Kadarnaet eo ho chomlec'h postel, trugarez evit bezañ en em enskrivet ! filter: not_an_administrator: Ret eo deoc'h bezañ merour evit kas an ober-mañ da benn. - friend_map: - nearby mapper: "Kartennour en ardremez : [[nearby_user]]" - your location: Ho lec'hiadur go_public: flash success: Foran eo hoc'h holl aozadennoù bremañ, ha n'oc'h ket aotreet da aozañ. login: @@ -1351,7 +1380,12 @@ br: lost password link: Kollet hoc'h eus ho ker-tremen ? password: "Ger-tremen :" please login: Kevreit, mar plij, pe {{create_user_link}}. + remember: "Derc'hel soñj ac'hanon :" title: Kevreañ + logout: + heading: Kuitaat OpenStreetMap + logout_button: Kuitaat + title: Kuitaat lost_password: email address: "Chomlec'h postel :" heading: Ankouaet hoc'h eus ho ker-tremen ? @@ -1384,6 +1418,10 @@ br: body: Ho tigarez, n'eus implijer ebet en anv {{user}}. Gwiriit hag-eñ eo skrivet mat, pe marteze hoc'h eus kliket war ul liamm fall. heading: N'eus ket eus an implijer {{user}} title: N'eus ket un implijer evel-se + popup: + friend: Mignon + nearby mapper: Kartennour en ardremez + your location: Ho lec'hiadur remove_friend: not_a_friend: "{{name}} n'eo ket unan eus ho mignoned." success: "{{name}} zo bet lamet eus ho mignoned." @@ -1400,17 +1438,14 @@ br: view: activate_user: gweredekaat an implijer-mañ add as friend: Ouzhpennañ evel mignon - add image: Ouzhpennañ ur skeudenn ago: ({{time_in_words_ago}} zo) block_history: gwelet ar stankadurioù resevet blocks by me: stankadurioù graet ganin blocks on me: Stankadurioù evidon - change your settings: cheñch hoc'h arventennoù confirm: Kadarnaat create_block: stankañ an implijer-mañ created from: "Krouet diwar :" deactivate_user: diweredekaat an implijer-mañ - delete image: Dilemel ar skeudenn delete_user: dilemel an implijer-mañ description: Deskrivadur diary: deizlevr @@ -1426,12 +1461,11 @@ br: my edits: ma aozadennoù my settings: ma arventennoù my traces: ma roudoù - my_oauth_details: Gwelet ma munudoù OAuth - nearby users: "Implijerien tost deoc'h :" + nearby users: "Implijerien all tost deoc'h :" new diary entry: enmoned nevez en deizlevr no friends: N'hoc'h eus ouzhpennet mignon ebet c'hoazh. - no home location: N'eus bet lakaet lec'hiadur ebet evit ar gêr. - no nearby users: N'eus implijer ebet en ardremez c'hoazh. + no nearby users: N'eus implijer ebet all en ardremez c'hoazh. + oauth settings: arventennoù oauth remove as friend: Lemel evel mignon role: administrator: Ur merour eo an implijer-mañ @@ -1446,8 +1480,6 @@ br: settings_link_text: arventennoù traces: roudoù unhide_user: Diguzhat an implijer-mañ - upload an image: Kas ur skeudenn - user image heading: Skeudenn implijer user location: Lec'hiadur an implijer your friends: Ho mignoned user_block: diff --git a/config/locales/ca.yml b/config/locales/ca.yml index 3342444e6..d2c1f31b3 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -86,6 +86,7 @@ ca: title: Conjunt de canvis changeset_details: belongs_to: "Pertany a:" + bounding_box: "Caixa contenidora:" box: caixa closed_at: "Tancat el:" created_at: "Creat el:" @@ -238,30 +239,43 @@ ca: user: Usuari list: description: Canvis recents + description_bbox: Conjunt de canvis dins de {{bbox}} + description_user_bbox: Conjunt de canvis de {{user}} dins de {{bbox}} heading: Conjunt de canvis heading_bbox: Conjunt de canvis heading_user: Conjunt de canvis heading_user_bbox: Conjunt de canvis title: Conjunt de canvis + title_bbox: Conjunt de canvis dins de {{bbox}} + title_user: Conjunt de canvis de {{user}} + title_user_bbox: Conjunt de canvis de {{user}} dins de {{bbox}} diary_entry: diary_comment: confirm: Confirmar diary_entry: confirm: Confirmar edit: + body: "Cos del missatge:" language: Idioma latitude: "Latitud:" + location: "Ubicació:" longitude: "Longitud:" save_button: Guardar subject: "Assumpte:" + location: + edit: Edita + location: "Ubicació:" + view: Veure view: login: Accés save_button: Desa export: start: + area_to_export: Àrea a exportar export_button: Exporta export_details: Les dades l'OpenStreetMap són publicades sota el termes de la llicència Creative Commons Attribution-ShareAlike 2.0. format: Format + format_to_export: Format d'exportació image_size: Mida de la imatge latitude: "Lat:" licence: Llicència @@ -269,15 +283,24 @@ ca: mapnik_image: Imatge de Mapnik max: màx options: Opcions + osm_xml_data: OpenStreetMap XML Data + osmarender_image: Imatge de Osmarender output: Sortida scale: Escala + too_large: + heading: L'àrea és massa gran zoom: Zoom start_rjs: export: Exporta geocoder: description: + title: + geonames: Localització des de GeoNames + osm_nominatim: Localització des de OpenStreetMap Nominatim types: cities: Ciutats + places: Llocs + towns: Municipis description_osm_namefinder: prefix: "{{distance}} {{direction}} de {{type}}" direction: @@ -311,6 +334,8 @@ ca: auditorium: Auditori bank: Banc bar: Bar + bench: Banc + bicycle_rental: Lloguer de bicicletes brothel: Prostíbul bureau_de_change: Oficina de canvi bus_station: Estació d'autobusos @@ -318,10 +343,12 @@ ca: car_rental: Lloguer de cotxes casino: Casino cinema: Cinema + clinic: Clínica club: Club courthouse: Jutjat crematorium: Crematori dentist: Dentista + doctors: Metges drinking_water: Aigua potable driving_school: Autoescola embassy: Ambaixada @@ -334,6 +361,7 @@ ca: hospital: Hospital hotel: Hotel ice_cream: Gelat + kindergarten: Jardí d'infància library: Biblioteca market: Mercat nightclub: Club nocturn @@ -341,19 +369,25 @@ ca: parking: Pàrquing pharmacy: Farmàcia place_of_worship: Lloc de culte + police: Policia + post_box: Bustia post_office: Oficina de correus + preschool: Pre-Escola prison: Presó + pub: Pub public_building: Edifici públic recycling: Punt de reciclatge restaurant: Restaurant sauna: Sauna school: Escola + shelter: Refugi shop: Botiga social_club: Club social supermarket: Supermercat taxi: Taxi telephone: Telèfon públic theatre: Teatre + toilets: Banys townhall: Ajuntament university: Universitat wifi: Accés a internet WiFi @@ -385,7 +419,9 @@ ca: emergency_access_point: Accés d'emergència footway: Sendera gate: Porta + path: Camí primary_link: Carretera principal + residential: Residencial road: Carretera secondary: Carretera secundària secondary_link: Carretera secundària @@ -411,6 +447,7 @@ ca: landuse: cemetery: Cementiri commercial: Zona comercial + construction: Construcció farm: Granja forest: Bosc industrial: Zona industrial @@ -434,6 +471,7 @@ ca: sports_centre: Centre esportiu stadium: Estadi swimming_pool: Piscina + water_park: Parc aquàtic natural: bay: Badia beach: Platja @@ -443,9 +481,11 @@ ca: cliff: Cingle coastline: Litoral crater: Cràter + fell: Forest fjord: Fiord geyser: Guèiser glacier: Glacera + heath: Bruguerar hill: Pujol island: Illa moor: Amarratge @@ -453,11 +493,13 @@ ca: peak: Pic point: Punt reef: Escull + ridge: Cresta river: Riu rock: Roca scree: Pedregar shoal: Banc spring: Deu + strait: Estret tree: Arbre valley: Vall volcano: Volcà @@ -471,9 +513,13 @@ ca: country: País county: Comtat farm: Granja + hamlet: Aldea house: Casa houses: Cases island: Illa + islet: Illot + locality: Localitat + moor: Amarrador municipality: Municipi postcode: Codi postal region: Regió @@ -482,6 +528,7 @@ ca: subdivision: Subdivisió suburb: Suburbi town: Poble + village: Aldea railway: level_crossing: Pas a nivell monorail: Monorail @@ -490,6 +537,7 @@ ca: tram_stop: Parada de tramvia shop: bakery: Fleca + bicycle: Tenda de bicicletes books: Llibreria butcher: Carnisseria car_repair: Reparació d'automòbils @@ -499,19 +547,25 @@ ca: hairdresser: Perruqueria o barberia jewelry: Joieria laundry: Bugaderia + mall: Centre comercial market: Mercat shoes: Sabateria supermarket: Supermercat travel_agency: Agència de viatges tourism: + alpine_hut: Cabanya alpina artwork: Il·lustració attraction: Atracció bed_and_breakfast: Llist i esmorzar (B&B) + cabin: Cabanya + camp_site: Campament + caravan_site: Càmping per a caravanes chalet: Xalet guest_house: Alberg hostel: Hostal hotel: Hotel information: Informació + lean_to: Nau motel: Motel museum: Museu picnic_site: Àrea de pícnic @@ -520,6 +574,7 @@ ca: viewpoint: Mirador zoo: Zoològic waterway: + canal: Canal ditch: Séquia mooring: Amarradors rapids: Ràpids @@ -539,21 +594,27 @@ ca: history: Historial home: Inici intro_1: L'OpenStreetMap és un mapa editable i lliure de tot el món. Està fet per gent com vós. + intro_3_partners: wiki logo: alt_text: logotip de l'OpenStreetMap + logout: sortir + logout_tooltip: Sortir + make_a_donation: + text: Fer una donació shop: Botiga user_diaries: DIaris de usuari view: Veure view_tooltip: Visualitza els mapes welcome_user: Benvingut/da, {{user_link}} - map: - coordinates: "Coordenades:" - edit: Modifica - view: Visualitza + welcome_user_link_tooltip: La teva pàgina d'usuari message: + delete: + deleted: Missatge esborrat inbox: date: Data from: De + outbox: sortida + subject: Assumpte title: Safata d'entrada message_summary: delete_button: Suprimeix @@ -562,19 +623,30 @@ ca: unread_button: Marca com a no llegit new: back_to_inbox: Tornar a la safata d'entrada + body: Cos + message_sent: S'ha enviat el missatge send_button: Envia subject: Assumpte + title: Enviar missatge + no_such_message: + heading: No existeix aquest missatge + title: No existeix aquest missatge outbox: date: Data + inbox: Entrada my_inbox: El meu {{inbox_link}} + outbox: sortida subject: Assumpte + title: Sortida to: A read: date: Data from: De reply_button: Respon subject: Assumpte + title: Llegir missatge to: Per a + unread_button: Marca com a no llegit sent_message_summary: delete_button: Suprimeix notifier: @@ -606,11 +678,16 @@ ca: edit: user_page_link: pàgina d'usuari index: + license: + license_name: Creative Commons Reconeixement-Compartir Igual 2.0 + project_name: projecte OpenStreetMap permalink: Enllaç permanent shortlink: Enllaç curt key: table: entry: + apron: + 1: terminal cemetery: Cementiri centre: Centre esportiu farm: Granja @@ -632,6 +709,7 @@ ca: subway: Metro summit: 1: pic + track: Pista wood: Fusta search: search: Cerca @@ -661,6 +739,7 @@ ca: visibility: "Visibilitat:" visibility_help: Què vol dir això? list: + public_traces: Traces GPS públiques tagged_with: " etiquetat amb {{tags}}" your_traces: Les teves traces GPS no_such_user: @@ -707,6 +786,7 @@ ca: edit: modificació edit_track: Edita aquesta traça filename: "Nom del fitxer:" + heading: Veient traça {{name}} map: mapa none: Ningú owner: "Propietari:" @@ -714,18 +794,25 @@ ca: points: "Punts:" start_coordinates: "coordenada de inici:" tags: "Etiquetes:" + title: Veient traça {{name}} trace_not_found: No s'ha trobat la traça! uploaded: "Pujat el:" visibility: "Visibilitat:" user: account: + current email address: "Adreça de correu electrònic actual:" email never displayed publicly: (no es mostrarà mai en públic) + image: "Imatge:" latitude: "Latitud:" longitude: "Longitud:" my settings: La meva configuració + new image: Afegir una imatge preferred languages: "Llengües preferents:" + profile description: "Descripció del perfil:" public editing: + enabled link: http://wiki.openstreetmap.org/wiki/Anonymous_edits enabled link text: què és això? + heading: "Edició pública:" public editing note: heading: Edició pública return to profile: Torna al perfil @@ -735,8 +822,6 @@ ca: button: Confirmar confirm_email: button: Confirmar - friend_map: - your location: La teva situació go_public: flash success: Ara totes les teves edicions són públiques i ja estàs autoritzat per a editar login: @@ -748,6 +833,10 @@ ca: password: "Contrasenya:" please login: Si us plau, inicieu la sessió o {{create_user_link}}. title: Accés + logout: + heading: Sortir d'OpenStreetMap + logout_button: Sortir + title: Sortir lost_password: email address: "Adreça de correu electrònic:" heading: Heu oblidat la contrasenya? @@ -757,10 +846,16 @@ ca: success: "{{name}} ara és el vostre amic." new: confirm password: "Confirmeu la contrasenya:" + display name: "Nom en pantalla:" email address: "Adreça de correu:" heading: Crea un compte d'usuari password: "Contrasenya:" signup: Registre + no_such_user: + title: No existeix aquest usuari + popup: + friend: Amic + your location: La teva situació reset_password: confirm password: "Confirmeu la contrasenya:" flash changed: S'ha canviat la contrasenya. @@ -769,28 +864,35 @@ ca: reset: Restablir contrasenya title: Restablir la contrasenya view: - add image: Afegeix una imatge + activate_user: activa aquest usuari + add as friend: afegir com a amic + ago: (fa {{time_in_words_ago}}) confirm: Confirmeu create_block: boca aquest usuari + created from: "Creat a partir de:" deactivate_user: desactiva aquest usuari - delete image: Suprimeix la imatge delete_user: Suprimeix aquest usuari description: Descripció diary: diari edits: modificacions email address: "Adreça de correu:" hide_user: amagar aquest usuari + km away: "{{count}}km de distància" + m away: "{{count}}m de distància" + mapper since: "Mapejant des de:" my diary: el meu diari my edits: les meves edicions + my settings: les meves preferències my traces: les meves traces - my_oauth_details: Veure els meus detalls de OAuth - nearby users: "Usuaris propers:" + nearby users: Altres usuaris propers + oauth settings: configuració OAuth role: administrator: Aquest usuari és administrador moderator: Aquest usuari és moderador + send message: enviar missatge settings_link_text: preferències traces: traces - user image heading: Imatge d'usuari + user location: Ubicació de l'usuari your friends: Els vostres amics user_block: partial: diff --git a/config/locales/cs.yml b/config/locales/cs.yml index a07646b72..3cf944783 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -4,6 +4,7 @@ # Author: Bilbo # Author: Masox # Author: Mormegil +# Author: Mr. Richard Bolla cs: activerecord: attributes: @@ -187,6 +188,7 @@ cs: type: node: Uzel way: Cesta + private_user: anonym show_history: Zobrazit historii unable_to_load_size: "Nelze načíst: Rozměr [[bbox_size]] je příliÅ¡ velký (maximum je {{max_bbox_size}})" wait: Čekejte... @@ -227,7 +229,9 @@ cs: still_editing: (stále se upravuje) view_changeset_details: Zobrazit detaily sady změn changeset_paging_nav: - showing_page: Zobrazuji stranu + next: Následující » + previous: "« Předchozí" + showing_page: Zobrazuji stranu {{page}} changesets: area: Oblast comment: Komentář @@ -277,7 +281,7 @@ cs: login: Přihlaste se login_to_leave_a_comment: "{{login_link}} k zanechání komentáře" save_button: Uložit - title: Deníčky uživatelů | {{user}} + title: Deníček uživatele {{user}} | {{title}} export: start: add_marker: Přidat do mapy značku @@ -295,9 +299,13 @@ cs: mapnik_image: Obrázek z Mapniku max: max. options: Nastavení + osmarender_image: Obrázek z Osmarenderu output: Výstup paste_html: Ke vložení na stránku použijte toto HTML scale: Měřítko + too_large: + body: Tato oblast je pro export do XML formátu OpenStreetMap příliÅ¡ velká. Přejděte na větší měřítko nebo zvolte menší oblast. + heading: PříliÅ¡ velká oblast start_rjs: add_marker: Přidat do mapy značku change_marker: Změnit umístění značky @@ -346,10 +354,34 @@ cs: suffix_place: ", {{distance}} na {{direction}} od {{placename}}" search_osm_nominatim: prefix: + amenity: + cinema: Kino + parking: ParkoviÅ¡tě + post_office: PoÅ¡ta + toilets: Toalety + building: + train_station: Železniční stanice + highway: + bus_stop: Autobusová zastávka + gate: Brána + secondary: Silnice II. třídy + steps: Schody + historic: + museum: Muzeum leisure: garden: Zahrada miniature_golf: Minigolf + nature_reserve: Přírodní rezervace park: Park + pitch: HřiÅ¡tě + stadium: Stadion + natural: + beach: Pláž + glacier: Ledovec + hill: Kopec + island: Ostrov + tree: Strom + valley: Údolí place: airport: LetiÅ¡tě city: Velkoměsto @@ -365,8 +397,14 @@ cs: region: Region sea: Moře state: Stát + suburb: Městská část town: Město village: Vesnice + railway: + halt: Železniční zastávka + subway: Stanice metra + shop: + hairdresser: Kadeřnictví tourism: alpine_hut: Vysokohorská chata attraction: Turistická atrakce @@ -388,17 +426,15 @@ cs: map: base: cycle_map: Cyklomapa - noname: Bezejmenné ulice + noname: Nepojmenované ulice layouts: edit: Upravit - edit_tooltip: Upravovat mapy export: Export export_tooltip: Exportovat mapová data help_wiki: Nápověda & wiki help_wiki_tooltip: Server s nápovědou a wiki k tomuto projektu help_wiki_url: http://wiki.openstreetmap.org/wiki/Cs:Main_Page?uselang=cs history: Historie - history_tooltip: Historie změn home: domů home_tooltip: Přejít na polohu domova inbox: zprávy ({{count}}) @@ -409,8 +445,9 @@ cs: zero: Nemáte žádné nepřečtené zprávy intro_1: OpenStreetMap je svobodná editovatelná mapa celého světa. Tvoří ji lidé jako vy. intro_2: OpenStreetMap vám umožňuje společně si prohlížet, upravovat a používat geografická data z libovolného místa na Zemi. - intro_3: Hosting OpenStreetMap laskavě poskytují {{ucl}} a {{bytemark}}. + intro_3: Hosting OpenStreetMap laskavě poskytují {{ucl}} a {{bytemark}}. Další partneři projektu jsou uvedeni na {{partners}}. intro_3_bytemark: bytemark + intro_3_partners: wiki intro_3_ucl: středisko VR UCL license: title: Data OpenStreetMap jsou k dispozici pod licencí Creative Commons Uveďte autora-Zachovejte licenci 2.0 Generic @@ -431,16 +468,13 @@ cs: shop_tooltip: Obchod se zbožím s logem OpenStreetMap sign_up: zaregistrovat se sign_up_tooltip: Vytvořit si uživatelský účet pro editaci + tag_line: Otevřená wiki-mapa světa user_diaries: Deníčky user_diaries_tooltip: Zobrazit deníčky uživatelů view: Zobrazit - view_tooltip: Zobrazit mapy + view_tooltip: Zobrazit mapu welcome_user: Vítejte, {{user_link}} welcome_user_link_tooltip: VaÅ¡e uživatelská stránka - map: - coordinates: "Souřadnice:" - edit: Upravit - view: Zobrazit message: delete: deleted: Zpráva smazána @@ -493,6 +527,8 @@ cs: the_wiki_url: http://wiki.openstreetmap.org/wiki/Cs:Beginners_Guide?uselang=cs wiki_signup_url: http://wiki.openstreetmap.org/index.php?title=Special:UserLogin&type=signup&returnto=Cs:Main_Page&uselang=cs site: + edit: + flash_player_required: Pokud chcete používat Potlatch, flashový editor OpenStreetMap, potřebujete přehrávač Flashe. Můžete si stáhnout Flash Player z Adobe.com. Pro editaci OpenStreetMap existuje mnoho dalších možností. index: js_1: Buď používáte prohlížeč bez podpory JavaScriptu, nebo máte JavaScript zakázaný. license: @@ -502,8 +538,8 @@ cs: permalink: Trvalý odkaz shortlink: Krátký odkaz key: - map_key: Mapový klíč - map_key_tooltip: Mapový klíč pro vykreslení mapnikem na této úrovni přiblížení + map_key: Legenda + map_key_tooltip: Legenda pro vykreslení mapnikem na této úrovni přiblížení table: entry: admin: Administrativní hranice @@ -560,13 +596,13 @@ cs: - Vrchol - hora tourist: Turistická atrakce - track: Lesní či polní cesta + track: Lesní a polní cesta tram: - Rychlodráha - tramvaj trunk: Významná silnice tunnel: Čárkované obrysy = tunel - unclassified: Silnice bez klasifikace + unclassified: Silnice unsurfaced: Nezpevněná cesta heading: Legenda pro z{{zoom_level}} search: @@ -600,9 +636,12 @@ cs: list: your_traces: VaÅ¡e GPS záznamy no_such_user: + body: Lituji, ale uživatel {{user}} neexistuje. Zkontrolujte překlepy nebo jste možná klikli na chybný odkaz. heading: Uživatel {{user}} neexistuje + title: Uživatel nenalezen trace: ago: před {{time_in_words_ago}} + by: od count_points: "{{count}} bodů" edit: upravit edit_map: Upravit mapu @@ -626,6 +665,8 @@ cs: trace_optionals: tags: Tagy trace_paging_nav: + next: Následující » + previous: "« Předchozí" showing_page: Zobrazuji stranu {{page}} view: description: "Popis:" @@ -645,12 +686,17 @@ cs: trackable: Trackable (dostupný jedině jako anonymní, uspořádané body s časovými značkami) user: account: + current email address: "Stávající e-mailová adresa:" email never displayed publicly: (nikde se veřejně nezobrazuje) home location: "Poloha domova:" + image: "Obrázek:" + image size hint: (nejlépe fungují čtvercové obrázky velikosti nejméně 100×100) latitude: "Šířka:" longitude: "Délka:" make edits public button: Zvěřejnit vÅ¡echny moje úpravy my settings: Moje nastavení + new email address: "Nová e-mailová adresa:" + new image: Přidat obrázek no home location: Nezadali jste polohu svého bydliÅ¡tě. preferred languages: "Preferované jazyky:" profile description: "Popis profilu:" @@ -670,9 +716,6 @@ cs: button: Potvrdit failure: Tento kód byl už pro potvrzení e-mailové adresy použit. success: VaÅ¡e e-mailová adresa byla potvrzena, děkujeme za registraci! - friend_map: - nearby mapper: "Nedaleký uživatel: [[nearby_user]]" - your location: VaÅ¡e poloha login: account not active: Je mi líto, ale váš uživatelský účet dosud nebyl aktivován.
Svůj účet si můžete aktivovat kliknutím na odkaz v potvrzovacím e-mailu. auth failure: Je mi líto, ale s uvedenými údaji se nemůžete přihlásit. @@ -682,8 +725,12 @@ cs: login_button: Přihlásit lost password link: Ztratili jste heslo? password: "Heslo:" - please login: Prosím přihlaÅ¡te se, nebo si můžete {{create_user_link}}. + please login: Prosím přihlaste se, nebo si můžete {{create_user_link}}. + remember: "Zapamatuj si mě:" title: Přihlásit se + logout: + logout_button: Odhlásit se + title: Odhlásit se lost_password: email address: "E-mailová adresa:" heading: Zapomněli jste heslo? @@ -714,6 +761,9 @@ cs: body: Je mi líto, ale uživatel {{user}} neexistuje. Zkontrolujte překlepy nebo jste možná klikli na chybný odkaz. heading: Uživatel {{user}} neexistuje title: Uživatel nenalezen + popup: + nearby mapper: Nedaleký uživatel + your location: VaÅ¡e poloha remove_friend: not_a_friend: "{{name}} není mezi vaÅ¡imi přáteli." success: "{{name}} byl odstraněn z vaÅ¡ich přátel." @@ -729,12 +779,9 @@ cs: flash success: Pozice domova byla úspěšně uložena view: add as friend: přidat jako přítele - add image: Přidat obrázek ago: (před {{time_in_words_ago}}) blocks on me: moje zablokování - change your settings: změnit vaÅ¡e nastavení confirm: Potvrdit - delete image: Smazat obrázek description: Popis diary: deníček edits: editace @@ -746,15 +793,15 @@ cs: my diary: můj deníček my edits: moje editace my settings: moje nastavení - nearby users: "Uživatelé poblíž:" + nearby users: Další uživatelé poblíž new diary entry: nový záznam do deníčku no friends: Zatím jste nepřidali žádné přátele. - no home location: Pozice domova nebyla nastavena. + no nearby users: Nejsou známi žádní uživatelé, kteří by uvedli domov blízko vás. + oauth settings: nastavení oauth remove as friend: odstranit jako přítele send message: poslat zprávu settings_link_text: nastavení - upload an image: Nahrát obrázek - user image heading: Obrázek uživatele + traces: záznamy user location: Pozice uživatele your friends: VaÅ¡i přátelé user_role: diff --git a/config/locales/da.yml b/config/locales/da.yml index e18d0c3c4..e7324d736 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -215,6 +215,7 @@ da: no_edits: (ingen redigeringer) show_area_box: vis boks for omrÃ¥de still_editing: (redigerer stadig) + view_changeset_details: Vis detaljer for ændringssæt changeset_paging_nav: next: Næste » previous: "« Forrige" @@ -264,9 +265,12 @@ da: manually_select: Vælg et andet omrÃ¥de manuelt mapnik_image: Mapnik billede max: maks + options: Indstillinger osm_xml_data: OpenStreetMap XML-data osmarender_image: Osmarender billede scale: Skala + too_large: + heading: OmrÃ¥de for stort zoom: Zoom start_rjs: add_marker: Tilføj en markør pÃ¥ kortet @@ -318,7 +322,6 @@ da: donate: Støt OpenStreetMap med en {{link}} til Hardware-upgradefonden. donate_link_text: donation edit: Redigér - edit_tooltip: Redigér kortet export: Eksporter export_tooltip: Eksporter kortdata gps_traces: GPS-spor @@ -326,7 +329,6 @@ da: help_wiki_tooltip: Hjælp- og Wiki-side for projektet help_wiki_url: http://wiki.openstreetmap.org/wiki/Da:Main_Page?uselang=da history: Historik - history_tooltip: Historik af ændringssæt home: hjem home_tooltip: GÃ¥ til hjemmeposition inbox: indbakke ({{count}}) @@ -361,10 +363,6 @@ da: view_tooltip: Vis kortere welcome_user: Velkommen, {{user_link}} welcome_user_link_tooltip: Din brugerside - map: - coordinates: "Koordinater:" - edit: Redigér - view: Kort message: delete: deleted: Besked slettet @@ -557,8 +555,6 @@ da: heading: Bekræft ændring af e-mail adresse filter: not_an_administrator: Du skal være administrator for at gøre dette. - friend_map: - your location: Din position login: account not active: Din konto er ikke aktiveret endnu.
Klik på linket i bekræftelsemailen for at aktivere din konto. auth failure: Kunne ikke logge på med disse oplysninger. @@ -593,6 +589,8 @@ da: body: Der findes desværre ingen bruger ved navn {{user}}. Tjek venligst stavningen, ellers kan linket du trykkede på være forkert. heading: Brugeren {{user}} findes ikke title: Ingen sådan bruger + popup: + your location: Din position reset_password: confirm password: "Bekræft adgangskode:" flash changed: Din adgangskode er ændret. @@ -604,11 +602,9 @@ da: flash success: Hjemmeposition gemt view: add as friend: tilføj som ven - add image: Tilføj billede ago: ({{time_in_words_ago}} siden) confirm: Bekræft deactivate_user: deaktiver denne bruger - delete image: Slet billede delete_user: slet denne bruger description: Beskrivelse diary: dagbog @@ -623,7 +619,6 @@ da: my traces: mine GPS-spor nearby users: "Brugere nær dig:" new diary entry: ny dagbogsoptegnelse - no home location: Ingen hjemmeposition sat. remove as friend: fjern som ven role: administrator: Denne bruger er en administrator @@ -631,8 +626,6 @@ da: settings_link_text: indstillinger traces: GPS-spor unhide_user: stop med at skjule denne bruger - upload an image: Send et billede - user image heading: Brugerbillede user location: Brugereposition your friends: Dine venner user_block: diff --git a/config/locales/de.yml b/config/locales/de.yml index 3ee00a759..7cbdb2c71 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -108,7 +108,7 @@ de: created_at: "Erstellt am:" has_nodes: one: "Enthält folgenden Knoten:" - other: "Enhält folgende {{count}} Knoten:" + other: "Enthält folgende {{count}} Knoten:" has_relations: one: "Enthält folgende Relation:" other: "Enthält folgende {{count}} Relationen:" @@ -330,6 +330,10 @@ de: recent_entries: "Neuste Einträge:" title: Blogs user_title: "{{user}}s Blog" + location: + edit: Bearbeiten + location: "Ort:" + view: Anzeigen new: title: Selbst Bloggen no_such_entry: @@ -345,7 +349,7 @@ de: login: Anmelden login_to_leave_a_comment: "{{login_link}}, um einen Kommentar zu schreiben" save_button: Speichern - title: Benutzer-Blogs | {{user}} + title: "{{user}}s Blog | {{title}}" user_title: "{{user}}s Blog" export: start: @@ -369,6 +373,9 @@ de: output: Ausgabe paste_html: HTML-Code kopieren, um ihn in eine Website einzufügen. scale: Maßstab + too_large: + body: Dieser Bereich ist zu groß, um als OpenStreetMap XML-Daten exportiert werden. Bitte heranzoomen oder einen kleineren Bereich wählen. + heading: Bereich zu groß zoom: Zoom start_rjs: add_marker: Markierung zur Karte hinzufügen @@ -860,22 +867,24 @@ de: cycle_map: Radfahrerkarte noname: Straßen ohne Name site: + edit_disabled_tooltip: Reinzoomen zum Editieren der Karte + edit_tooltip: Karte bearbeiten edit_zoom_alert: Du musst näher heranzoomen, um die Karte zu bearbeiten + history_disabled_tooltip: Reinzoomen um Änderungen für diesen Bereich anzuzeigen + history_tooltip: Änderungen für diesen Bereich anzeigen history_zoom_alert: Du musst näher heranzoomen, um die Chronik zu sehen layouts: donate: Unterstütze die OpenStreetMap-Hardwarespendenaktion durch eine eigene {{link}}. donate_link_text: Spende edit: Bearbeiten - edit_tooltip: Karte bearbeiten export: Export export_tooltip: Kartendaten exportieren gps_traces: GPS-Tracks - gps_traces_tooltip: GPS-Tracks anzeigen und verwalten + gps_traces_tooltip: GPS-Tracks verwalten help_wiki: Hilfe & Wiki help_wiki_tooltip: Hilfe & Wiki des Projekts help_wiki_url: http://wiki.openstreetmap.org/wiki/Hauptseite?uselang=de history: Chronik - history_tooltip: Änderungen der Kartendaten anzeigen home: Standort home_tooltip: Eigener Standort inbox: Posteingang ({{count}}) @@ -885,7 +894,8 @@ de: zero: Dein Posteingang enthält keine ungelesenen Nachrichten intro_1: OpenStreetMap ist eine freie, editierbare Karte der gesamten Welt, die von Menschen wie dir erstellt wird. intro_2: OpenStreetMap ermöglicht es geographische Daten gemeinschaftlich von überall auf der Welt anzuschauen und zu bearbeiten. - intro_3: Das Hosting der OpenStreetMap-Server wird freundlicherweise von {{ucl}} und {{bytemark}} unterstützt. + intro_3: Das Hosting der OpenStreetMap-Server wird freundlicherweise von {{ucl}} und {{bytemark}} unterstützt. Weitere Unterstützer sind im {{partners}} aufgelistet. + intro_3_partners: Wiki license: title: Daten von OpenStreetMap stehen unter der „Creative Commons Attribution-Share Alike 2.0 Generic“-Lizenz log_in: Anmelden @@ -910,13 +920,9 @@ de: user_diaries: Blogs user_diaries_tooltip: Benutzer-Blogs lesen view: Karte - view_tooltip: Karte betrachten + view_tooltip: Karte anzeigen welcome_user: Willkommen, {{user_link}} welcome_user_link_tooltip: Eigene Benutzerseite - map: - coordinates: "Koordinaten:" - edit: Bearbeiten - view: Karte message: delete: deleted: Nachricht gelöscht @@ -947,10 +953,14 @@ de: send_message_to: Eine Nachricht an {{name}} senden subject: Betreff title: Nachricht senden + no_such_message: + body: Leider gibt es keine Nachricht mit dieser ID. + heading: Nachricht nicht vorhanden + title: Nachricht nicht vorhanden no_such_user: - body: Wir konnten leider keinen entsprechenden Benutzer oder eine entsprechende Nachricht finden. Du hast dich möglicherweise vertippt oder du bist einem ungültigem Link gefolgt. - heading: Benutzer oder Nachricht nicht gefunden - title: Benutzer oder Nachricht nicht gefunden + body: Leider gibt es kein Benutzer mit diesem Namen. + heading: Benutzer nicht gefunden + title: Benutzer nicht gefunden outbox: date: Datum inbox: Posteingang @@ -974,6 +984,9 @@ de: title: Nachricht lesen to: An unread_button: Als ungelesen markieren + wrong_user: Sie sind angemeldet als '{{user}}', aber die Nachricht die Sie lesen wollten wurde an einen anderen Benutzer geschickt. Bitte melden Sie sich zum Lesen mit dem korrekten Benutzer an. + reply: + wrong_user: Sie sind angemeldet als '{{user}}', aber die Nachricht auf die Sie antworten wollten wurde an einen anderen Benutzer geschickt. Bitte melden Sie sich zum Beantworten mit dem korrekten Benutzer an. sent_message_summary: delete_button: Löschen notifier: @@ -994,8 +1007,9 @@ de: hopefully_you_1: Jemand (hoffentlich du) möchte seine E-Mail-Adresse bei hopefully_you_2: "{{server_url}} zu {{new_address}} ändern." friend_notification: + befriend_them: Du kannst sie / ihn unter {{befriendurl}} ebenfalls als Freund hinzufügen. had_added_you: "{{user}} hat dich als Freund hinzugefügt." - see_their_profile: Sein Profil ist hier {{userurl}} zu finden, dort kannst du ihn ebenfalls als Freund hinzufügen. + see_their_profile: Du kannst sein / ihr Profil unter {{userurl}} ansehen. subject: "[OpenStreetMap] {{user}} hat dich als Freund hinzugefügt" gpx_notification: and_no_tags: und ohne Tags. @@ -1101,7 +1115,7 @@ de: no_apps: Wenn du mit einer Anwendung gerne den {{oauth}}-Standard verwenden würdest, musst du sie hier registrieren. register_new: Anwendung registrieren registered_apps: "Du hast die folgenden Client-Anwendungen registriert:" - revoke: Wiederrufen! + revoke: Widerrufen! title: Meine OAuth Details new: submit: Registrieren @@ -1223,6 +1237,9 @@ de: sidebar: close: Schließen search_results: Suchergebnisse + time: + formats: + friendly: "%e %B %Y um %H:%M" trace: create: trace_uploaded: Deine GPX-Datei wurde hochgeladen und wartet auf die Aufnahme in die Datenbank. Dies geschieht normalerweise innerhalb einer halben Stunde, anschließend wird dir eine Bestätigungs-E-Mail gesendet. @@ -1325,14 +1342,21 @@ de: trackable: Track (wird in der Trackliste als anonyme, sortierte Punktfolge mit Zeitstempel angezeigt) user: account: + current email address: "Aktuelle E-Mail-Adresse:" + delete image: Aktuelles Bild löschen email never displayed publicly: (nicht öffentlich sichtbar) flash update success: Benutzerinformationen erfolgreich aktualisiert. flash update success confirm needed: Benutzerinformationen erfolgreich aktualisiert. Du erhältst eine E-Mail, um deine neue E-Mail-Adresse zu bestätigen. home location: "Standort:" + image: "Bild:" + image size hint: (quadratische Bilder mit zumindes 100x100 funktionieren am Besten) + keep image: Aktuelles Bild beibehalten latitude: "Breitengrad:" longitude: "Längengrad:" make edits public button: Alle meine Bearbeitungen öffentlich machen my settings: Eigene Einstellungen + new email address: "Neue E-Mail Adresse:" + new image: Bild einfügen no home location: Du hast noch keinen Standort angegeben. preferred languages: "Bevorzugte Sprachen:" profile description: "Profil-Beschreibung:" @@ -1346,6 +1370,7 @@ de: public editing note: heading: Öffentliches Bearbeiten text: Im Moment sind deine Beiträge anonym und man kann dir weder Nachrichten senden noch deinen Wohnort sehen. Um sichtbar zu machen, welche Arbeit von dir stammt, und um kontaktierbar zu werden, klicke auf den Button unten. Seit Version 0.6 der API aktiv ist, können anonyme Benutzer die Karte nicht mehr bearbeiten (warum?).
  • Deine E-Mail-Adresse wird bei Verlassen des anonymen Statuses nicht veröffentlicht.
  • Die Aktion kann nicht rückgängig gemacht werden. Für neu registrierte Benutzer besteht die Möglichkeit des anonymen Accounts nicht mehr.
+ replace image: Aktuelles Bild austauschen return to profile: Zurück zum Profil save changes button: Speichere Änderungen title: Benutzerkonto bearbeiten @@ -1364,9 +1389,6 @@ de: success: Deine E-Mail-Adresse wurde bestätigt, danke fürs Registrieren! filter: not_an_administrator: Du must ein Administrator sein um das machen zu dürfen - friend_map: - nearby mapper: "Mapper in der Nähe: [[nearby_user]]" - your location: Eigener Standort go_public: flash success: Alle deine Bearbeitungen sind nun öffentlich und du kannst nun die Kartendaten bearbeiten. login: @@ -1379,7 +1401,12 @@ de: lost password link: Passwort vergessen? password: "Passwort:" please login: Bitte melde dich an oder {{create_user_link}}. + remember: "Anmeldedaten merken:" title: Anmelden + logout: + heading: Von OpenStreetMap abmelden + logout_button: Abmelden + title: Abmelden lost_password: email address: "E-Mail-Adresse:" heading: Passwort vergessen? @@ -1412,6 +1439,10 @@ de: body: Es gibt leider keinen Benutzer mit dem Namen {{user}}. Bitte überprüfe deine Schreibweise oder der Link war beschädigt. heading: Der Benutzer {{user}} existiert nicht title: Benutzer nicht gefunden + popup: + friend: Freund + nearby mapper: Mapper in der Nähe + your location: Eigener Standort remove_friend: not_a_friend: "{{name}} ist nicht dein Freund." success: "{{name}} wurde als Freund entfernt." @@ -1428,17 +1459,14 @@ de: view: activate_user: Benutzer aktivieren add as friend: Als Freund hinzufügen - add image: Ein Bild hinzufügen ago: ({{time_in_words_ago}} her) - block_history: Blockierungen ansehen + block_history: Erhaltene Sperren anzeigen blocks by me: Selbst vergebene Sperren blocks on me: Erhaltene Sperren - change your settings: Ändere deine Einstellungen confirm: Bestätigen create_block: Diesen Nutzer sperren created from: "erstellt aus:" deactivate_user: Benutzer deaktivieren - delete image: Bild löschen delete_user: Benutzer löschen description: Beschreibung diary: Blog @@ -1454,12 +1482,11 @@ de: my edits: Eigene Bearbeitungen my settings: Eigene Einstellungen my traces: Eigene Tracks - my_oauth_details: Meine OAuth-Details - nearby users: "Benutzer in der Nähe:" + nearby users: Anwender in der Nähe new diary entry: Neuer Blogeintrag no friends: Du hast bis jetzt keine Freunde hinzugefügt. - no home location: Es wurde kein Standort angegeben. no nearby users: Es gibt bisher keine Benutzer, die einen Standort in deiner Nähe angegeben haben. + oauth settings: oauth Einstellungen remove as friend: Als Freund entfernen role: administrator: Dieser Benutzer ist ein Administrator @@ -1474,15 +1501,13 @@ de: settings_link_text: Einstellungen traces: Tracks unhide_user: Benutzer nicht mehr verstecken - upload an image: Ein Bild hochladen - user image heading: Benutzerbild user location: Standort des Benutzers your friends: Eigene Freunde user_block: blocks_by: empty: "{{name}} hat noch keine Sperren eingerichtet." - heading: Liste der Blockierungen durch {{name}} - title: Blockierungen von {{name}} + heading: Liste der Sperren durch {{name}} + title: Sperre durch {{name}} blocks_on: empty: "{{name}} wurde bisher nicht gesperrt." heading: Liste der Sperren für {{name}} @@ -1490,33 +1515,33 @@ de: create: flash: Benutzer {{name}} wurde gesperrt. try_contacting: Bitte nimm Kontakt mit dem Benutzer auf und gib ihm eine angemessene Zeit zum Antworden, bevor Du ihn sperrst. - try_waiting: Bitte gib dem Benutzer einen angemessenen Zeitraum zu antworten bevor Du ihn blockierst. + try_waiting: Bitte gib dem Benutzer einen angemessenen Zeitraum zu antworten bevor Du ihn sperrst. edit: - back: Alle Blockierungen anzeigen - heading: Blockierung von {{name}} bearbeiten - needs_view: Muss der Benutzer sich anmelden, damit die Blockierung beendet wird? - period: Zeitraum, ab jetzt, den der Benutzer von der API blockiert wird. - reason: Der Grund warum {{name}} blockiert wird. Bitte bleibe ruhig und sachlich und versuche so viele Details wie möglich anzugeben. Bedenke, dass nicht alle Benutzer den Community Jargon verstehen und versuche eine Erklärung zu finden, die von Laien verstanden werden kann. - show: Diese Blockierung ansehen - submit: Blockierung aktualisieren - title: Blockierung von {{name}} bearbeiten + back: Alle Sperren anzeigen + heading: Sperre von {{name}} bearbeiten + needs_view: Muss der Benutzer sich anmelden, damit die Sperre aufgehoben wird? + period: Dauer, ab jetzt, während der dem Benutzer der Zugriff auf die API gesperrt wird. + reason: Der Grund warum {{name}} gesperrt wird. Bitte bleibe ruhig und sachlich und versuche so viele Details wie möglich anzugeben. Bedenke, dass nicht alle Benutzer den Community Jargon verstehen und versuche eine Erklärung zu finden, die von Laien verstanden werden kann. + show: Diese Sperre anzeigen + submit: Sperre aktualisieren + title: Sperre von {{name}} bearbeiten filter: - block_expired: Die Blockierung kann nicht bearbeitet werden weil die Blockierungszeit bereits abgelaufen ist. - block_period: Die Blockierungszeit muss einer der Werte aus der Drop-Down Liste sein + block_expired: Die Sperre kann nicht bearbeitet werden, da die Sperrdauer bereits abgelaufen ist. + block_period: Die Sperrdauer muss einem der Werte aus der Drop-Down-Liste entsprechen. not_a_moderator: Du musst Moderator sein um diese Aktion durchzuführen. helper: time_future: Endet in {{time}}. time_past: Endete vor {{time}} until_login: Aktiv, bis der Benutzer sich anmeldet. index: - empty: Noch nie blockiert. + empty: Noch nie gesperrt. heading: Liste der Benutzersperren title: Benutzersperren model: non_moderator_revoke: Du musst Moderator sein, um eine Sperre aufzuheben. non_moderator_update: Du musst Moderator sein, um eine Sperre einzurichten oder zu ändern. new: - back: Alle Blockierungen anzeigen + back: Alle Sperren anzeigen heading: Sperre für {{name}} einrichten needs_view: Der Benutzer muss sich anmelden, bevor die Sperre aufgehoben wird. period: Wie lange der Benutzer von jetzt ab für den Zugriff auf die API gesperrt wird. @@ -1527,14 +1552,14 @@ de: tried_waiting: Ich habe dem Benutzer eine angemessene Zeit eingeräumt, um auf diese Nachrichten zu antworten. not_found: back: Zurück zur Übersicht - sorry: Sorry, die Blockierung mit der ID {{id}} konnte nicht gefunden werden. + sorry: Entschuldigung, die Sperre mit der ID {{id}} konnte nicht gefunden werden. partial: confirm: Bist du sicher? creator_name: Ersteller - display_name: Blockierter Benutzer + display_name: Gesperrter Benutzer edit: Bearbeiten not_revoked: (nicht aufgehoben) - reason: Grund der Blockierung + reason: Grund der Sperre revoke: Aufheben! revoker_name: Aufgehoben von show: Anzeigen @@ -1543,7 +1568,7 @@ de: one: 1 Stunde other: "{{count}} Stunden" revoke: - confirm: Bist du sicher, das du diese Blockierung aufheben möchtest? + confirm: Bist du sicher, dass du diese Sperre aufheben möchtest? flash: Die Sperre wurde aufgehoben. heading: Sperre für {{block_on}} durch {{block_by}} aufgehoben past: Die Sperre ist seit {{time}} beendet und kann nicht mehr aufgehoben werden. @@ -1551,19 +1576,19 @@ de: time_future: "Blockablaufdatum: {{time}}." title: Sperre für {{block_on}} aufheben show: - back: Alle Blockierungen anzeigen + back: Alle Sperren anzeigen confirm: Bist Du sicher? edit: Bearbeiten - heading: "{{block_on}} blockiert durch {{block_by}}" - needs_view: Der Benutzer muss sich wieder anmelden, damit die Blockierung beendet wird. - reason: "Grund der Blockierung:" + heading: "{{block_on}} gesperrt durch {{block_by}}" + needs_view: Der Benutzer muss sich wieder anmelden, damit die Sperre beendet wird. + reason: "Grund der Sperre:" revoke: Aufheben! revoker: "Aufgehoben von:" show: anzeigen status: Status time_future: Endet in {{time}} time_past: Geendet vor {{time}} - title: "{{block_on}} blockiert von {{block_by}}" + title: "{{block_on}} gesperrt durch {{block_by}}" update: only_creator_can_edit: Nur der Moderator, der die Sperre eingerichtet hat, kann sie ändern. success: Block aktualisiert. diff --git a/config/locales/dsb.yml b/config/locales/dsb.yml index a3c78b9e9..c791c6f12 100644 --- a/config/locales/dsb.yml +++ b/config/locales/dsb.yml @@ -326,6 +326,10 @@ dsb: recent_entries: "Nejnowše zapiski dnjownika:" title: Dnjowniki wužywarjow user_title: dnjownik wužywarja {{user}} + location: + edit: Wobźěłaś + location: "Městno:" + view: Woglědaś se new: title: Nowy zapisk dnjownika no_such_entry: @@ -341,7 +345,7 @@ dsb: login: Pśizjawjenje login_to_leave_a_comment: "{{login_link}}, aby zawóstajił komentar" save_button: Składowaś - title: Dnjowniki | {{user}} + title: Dnjownik {{user}} | {{title}} user_title: dnjownik wužywarja {{user}} export: start: @@ -365,6 +369,8 @@ dsb: output: Wudaśe paste_html: HTML kopěrowaś, aby se zasajźił do websedła scale: Měritko + too_large: + heading: Wobłuk pśewjeliki zoom: Skalěrowanje start_rjs: add_marker: Kórśe marku pśidaś @@ -400,6 +406,7 @@ dsb: other: mjenjej ako {{count}} km zero: mjenjej ako 1 km results: + more_results: Dalšne wuslědki no_results: Žedne wuslědki namakane search: title: @@ -509,14 +516,18 @@ dsb: boundary: administrative: Zastojnstwowa granica building: + apartments: Bydleński blok chapel: Kapałka church: Cerkwja city_hall: Radnica + flats: Bydlenja + garage: Garaža hall: Hala hospital: Chórownja hotel: Hotel house: Dom industrial: Industrijowe twarjenje + school: Šulske twarjenje shop: Wobchod stadium: Stadion terrace: Terasa @@ -563,17 +574,26 @@ dsb: unclassified: Njezarědowana droga unsurfaced: Njewobtwarźona droga historic: + archaeological_site: Archeologiske wukopowanišćo building: Twarjenje castle: Grod church: Cerkwja house: Dom + icon: Ikona monument: Pomnik museum: Muzeum + ruins: Ruiny tower: Torm + wreck: Wrak landuse: + cemetery: Kjarchob construction: Twarnišćo + farm: Farma + forest: Góla industrial: Industrijowy wobcerk mountain: Góra + park: Park + plaza: Naměstno railway: Zeleznica wood: Lěs leisure: @@ -659,8 +679,10 @@ dsb: unincorporated_area: Bźezgmejnske strony village: Wjas railway: + historic_station: Historiske dwórnišćo station: Dwórnišćo tram: Elektriska + tram_stop: Zastanišćo elektriskeje shop: alcohol: Wobchod za spirituoze apparel: Woblekarnja @@ -778,23 +800,22 @@ dsb: map: base: cycle_map: Kórta za kolesowarjow - noname: ŽedneMě + noname: ŽednoMě site: + edit_tooltip: Kórtu wobźěłaś edit_zoom_alert: Musyš powětšyś, aby wobźěłał kórtu history_zoom_alert: Musyš powětšyś, aby wiźeł wobźěłowańsku historiju layouts: donate: Pódprěj OpenStreetMap pśez {{link}} do fondsa aktualizacije hardware donate_link_text: dar edit: Wobźěłaś - edit_tooltip: Kórty wobźěłaś export: Eksport export_tooltip: Kórtowe daty eksportěrowaś gps_traces: GPS-slědy - gps_traces_tooltip: Slědy zastojaś + gps_traces_tooltip: GPS-slědy zastojaś help_wiki: Pomoc & wiki help_wiki_tooltip: Pomoc & wikisedło za projekt history: Historija - history_tooltip: Historija sajźby změnow home: domoj home_tooltip: K stojnišćoju inbox: post ({{count}}) @@ -806,7 +827,8 @@ dsb: zero: Twój postowy kašćik njewopśimujo žedne njepśecytane powěsći intro_1: OpenStreetMap jo licho wobźěłujobna kórta cełego swěta. Jo se za luźi ako ty napórała. intro_2: OpenStreetMap śi dowólujo, geografiske daty wóte wšuźi na zemi zgromadnje se woglědaś, wobźěłaś a wužywaś. - intro_3: Hostowanje OpenStreetMap pódpěra se wót {{ucl}} a {{bytemark}} z pśijaznosću. + intro_3: Hostowanje OpenStreetMap pśijaznosću pódpěra se wót {{ucl}} a {{bytemark}}. Druge pódpěrarje projekta su w {{partners}} nalicone. + intro_3_partners: wiki license: title: Daty OpenStreetMap licencěruju se pód licencu Creative Commons Attribution-Share Alike 2.0 Generic log_in: pśizjawiś @@ -831,13 +853,9 @@ dsb: user_diaries: Dnjowniki user_diaries_tooltip: Wužywarske dnjowniki cytaś view: Kórta - view_tooltip: Kórty se woglědaś + view_tooltip: Kórtu se woglědaś welcome_user: Witaj, {{user_link}} welcome_user_link_tooltip: Twój wužywarski bok - map: - coordinates: "Koordinaty:" - edit: Wobźěłaś - view: Kórta message: delete: deleted: Powěsć wulašowana @@ -868,10 +886,13 @@ dsb: send_message_to: "{{name}} nowu powěsć pósłaś" subject: Temowe nadpismo title: Powěsć pósłaś + no_such_message: + heading: Powěsć njeeksistěrujo + title: Powěsć njeeksistěrujo no_such_user: - body: Bóžko njejo žeden wužywaŕ abo žedna powěsć z tym mjenim abo ID - heading: Wužywaŕ abo powěsć njeeksistěrujo - title: Wužywaŕ abo powěsć njeeksistěrujo + body: Bóžko njejo žeden wužywaŕ z tym mjenim. + heading: Wužywaŕ njeeksistěrujo + title: Wužywaŕ njeeksistěrujo outbox: date: Datum inbox: post @@ -916,7 +937,7 @@ dsb: hopefully_you_2: "{{server_url}} do {{new_address}} změniś." friend_notification: had_added_you: "{{user}} jo śi na OpenStreetMap ako pśijaśela pśidał." - see_their_profile: Jogo profil jo na {{userurl}} a móžoš jogo teke ako pśijaśela pśidaś, jolic coš. + see_their_profile: Móžoš profil na {{userurl}} wiźeś. subject: "[OpenStreetMap] {{user}} jo śi ako pśijaśela pśidał." gpx_notification: and_no_tags: a žedne atributy. @@ -1142,6 +1163,9 @@ dsb: sidebar: close: Zacyniś search_results: Pytańske wuslědki + time: + formats: + friendly: "%e. %B %Y %H:%M" trace: create: trace_uploaded: Twója GPX-dataja jo se nagrała a caka na zasajźenje do datoweje banki. To stawa se zwětšego za poł góźiny a dostanjoš e-mail za wobkšuśenje. @@ -1243,14 +1267,20 @@ dsb: trackable: Cera (jano źělona ako anonymne, zrědowane dypki z casowymi kołkami) user: account: + current email address: "Aktualna e-mailowa adresa:" + delete image: Aktualny wobraz wótpóraś email never displayed publicly: (njejo nigda widobna) flash update success: Wužywarske informacije wuspěšnje zaktualizěrowane. flash update success confirm needed: Wužywarske informacije wuspěšnje zaktualizěrowane. Dostanjoš e-mail z napominanim, twóju e-mailowu adresu wobkšuśiś. home location: "Bydlišćo:" + image: "Wobraz:" + keep image: Aktualny wobraz wobchowaś latitude: "Šyrina:" longitude: "Dlinina:" make edits public button: Wše móje změny wózjawiś my settings: Móje nastajenja + new email address: "Nowa e-mailowa adresa:" + new image: Wobraz pśidaś no home location: Njejsy swóje bydlišćo zapódał. preferred languages: "Preferěrowane rěcy:" profile description: "Profilowe wopisanje:" @@ -1264,6 +1294,7 @@ dsb: public editing note: heading: Zjawne wobźěłowanje text: Tuchylu twóje změny su anonymne a luźe njamógu śi powěsći pósłaś abo twójo městno wiźeś. Aby pokazał, což sy wobźěłał a luźam dowólił, se z tobu pśez websedło do zwiska stajiś, klikni dołojnce na tłocašk. Wót pśeźenja do API 0.6, jano zjawne wužywarje mógu kórtowe daty wobźěłaś. (glědaj pśicyny).
  • Twója e-mailowa adresa njebuźo zjawnje widobna.
  • Toś ta akcija njedajo se anulěrowaś a wÅ¡e nowe wužywarje su něnto pó standarźe zjawne.
+ replace image: Aktualny wobraz wuměniś return to profile: Slědk k profiloju save changes button: Změny składowaś title: Konto wobźěłaś @@ -1282,9 +1313,6 @@ dsb: success: Twója e-mailowa adresa jo se wobkšuśiła, źěkujomy se za registrěrowanje! filter: not_an_administrator: Musyš administrator byś, aby wuwjadł toś tu akciju. - friend_map: - nearby mapper: "Kartěrowaŕ w bliskosći: [[nearby_user]]" - your location: Twójo městno go_public: flash success: Wše twóje změny su něnto zjawne, a ty móžoš je něnto wobźěłaś. login: @@ -1298,6 +1326,10 @@ dsb: password: "Gronidło:" please login: Pšosym pśizjaw se abo {{create_user_link}}. title: Pśizjawjenje + logout: + heading: Z OpenStreetMap se wótzjawiś + logout_button: Wótzjawjenje + title: Wótzjawiś se lost_password: email address: "E-mailowa adresa:" heading: Sy gronidło zabył? @@ -1330,6 +1362,10 @@ dsb: body: Bóžko njejo wužywaŕ z mjenim {{user}}. Pšosym pśekontrolěruj swój pšawopis, abo wótkaz, na kótaryž sy kliknuł, jo njepłaśiwy. heading: Wužywaŕ {{user}} njeeksistěrujo title: Toś ten wužywaŕ njejo + popup: + friend: Pśijaśel + nearby mapper: Kartěrowaŕ w bliskosći + your location: Twójo městno remove_friend: not_a_friend: "{{name}} njejo twój pśijaśel." success: "{{name}} jo se z twójich pśijaśelow wótpórał." @@ -1346,17 +1382,14 @@ dsb: view: activate_user: toś togo wužywarja aktiwěrowaś add as friend: ako pśijaśela pśidaś - add image: Wobraz pśidaś ago: (pśed {{time_in_words_ago}}) block_history: Dostane blokěrowanja pokazaś blocks by me: blokěrowanja wóte mnjo blocks on me: blokěrowanja pśeśiwo mě - change your settings: Twóje nastajenja změniś confirm: Wobkšuśiś create_block: toś togo wužywarja blokěrowaś created from: "Napórany z:" deactivate_user: toś togo wužywarja znjemóžniś - delete image: Wobraz wulašowaś delete_user: toś togo wužywarja lašowaś description: Wopisanje diary: dnjownik @@ -1372,12 +1405,11 @@ dsb: my edits: móje změny my settings: móje nastajenja my traces: móje slědy - my_oauth_details: Móje OAuth-drobnostki pokazaś - nearby users: "Wužywarje w bliskosći:" + nearby users: Druge wužywarje w bliskosći new diary entry: nowy dnjownikowy zapisk no friends: Hyšći njejsy žednych pśijaśelow pśidał. - no home location: Žedne stojnišćo njejo se pódało. no nearby users: Hyšći njejsu žedne wužywarje, kótarež kartěruju w bliskosći. + oauth settings: OAUTH-nastajenja remove as friend: ako pśijaśela wótpóraś role: administrator: Toś ten wužywaŕ jo administrator @@ -1392,8 +1424,6 @@ dsb: settings_link_text: nastajenja traces: slědy unhide_user: toś togo wužiwarja pokazaś - upload an image: Wobraz nagraś - user image heading: Wužywarski wobraz user location: Wužywarske městno your friends: Twóje pśijaśele user_block: diff --git a/config/locales/el.yml b/config/locales/el.yml index e086bf5a5..b2d2af9fd 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -3,6 +3,7 @@ # Export driver: syck # Author: Consta # Author: Crazymadlover +# Author: Logictheo # Author: Omnipaedista el: activerecord: @@ -97,7 +98,7 @@ el: loading: Φόρτωση... node: download: "{{download_xml_link}} ή {{view_history_link}}" - node: Σήμεο + node: Σημείο node_title: "Σήμεο: {{node_name}}" view_history: Δες ιστορία node_details: @@ -168,12 +169,12 @@ el: way: download: "{{download_xml_link}} ή {{view_history_link}}" view_history: δες ιστορία - way: Κατεύθηνση - way_title: "Κατεύθηνση: {{way_name}}" + way: Κατεύθυνση + way_title: "Κατεύθυνση: {{way_name}}" way_details: also_part_of: - one: επίσης κομμάτι κατεύθηνσης {{related_ways}} - other: επίσης κομμάτι κατεύθηνσεων {{related_ways}} + one: επίσης κομμάτι κατεύθυνσης {{related_ways}} + other: επίσης κομμάτι κατευθύνσεων {{related_ways}} nodes: "Σημεία:" part_of: Κομμάτι του way_history: @@ -186,6 +187,8 @@ el: anonymous: Ανόνυμος show_area_box: δείξε περιοχή κουτιού view_changeset_details: Δες αλλαγή συλλογής λεπτομερειών + changeset_paging_nav: + showing_page: Eμφάνιση σελίδας {{page}} changesets: area: Περιοχή comment: Σχόλιο @@ -243,7 +246,7 @@ el: area_to_export: Εξαγωγή περιοχής export_button: Εξαγωγή export_details: OpenStreetMap data are licensed under the Creative Commons Attribution-ShareAlike 2.0 license. - format: Τρόπος παρουσίασης + format: Μορφοποίηση format_to_export: Εξαγωγή τρόπου παρουσίασης image_size: Μέγεθος εικόνας latitude: "Γ. Π.:" @@ -261,10 +264,6 @@ el: export: Εξαγωγή layouts: home: κύρια σελίδα - map: - coordinates: "Συντεταγμένες:" - edit: Άλλαξε - view: Εξέτασε message: message_summary: delete_button: Διαγραφή diff --git a/config/locales/en.yml b/config/locales/en.yml index b358cf8d3..2df80cd1d 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1,6 +1,9 @@ en: html: dir: ltr + time: + formats: + friendly: "%e %B %Y at %H:%M" activerecord: # Translates all the model names, which is used in error handling on the web site models: @@ -76,10 +79,6 @@ en: with_id: "{{id}}" with_version: "{{id}}, v{{version}}" with_name: "{{name}} ({{id}})" - map: - view: View - edit: Edit - coordinates: "Coordinates:" browse: changeset: title: "Changeset" @@ -328,7 +327,7 @@ en: heading: "The user {{user}} does not exist" body: "Sorry, there is no user with the name {{user}}. Please check your spelling, or maybe the link you clicked is wrong." diary_entry: - posted_by: "Posted by {{link_user}} at {{created}} in {{language_link}}" + posted_by: "Posted by {{link_user}} on {{created}} in {{language_link}}" comment_link: Comment on this entry reply_link: Reply to this entry comment_count: @@ -338,9 +337,13 @@ en: hide_link: Hide this entry confirm: Confirm diary_comment: - comment_from: "Comment from {{link_user}} at {{comment_created_at}}" + comment_from: "Comment from {{link_user}} on {{comment_created_at}}" hide_link: Hide this comment confirm: Confirm + location: + location: "Location:" + view: "View" + edit: "Edit" feed: user: title: "OpenStreetMap diary entries for {{user}}" @@ -938,7 +941,8 @@ en: friend_notification: subject: "[OpenStreetMap] {{user}} added you as a friend" had_added_you: "{{user}} has added you as a friend on OpenStreetMap." - see_their_profile: "You can see their profile at {{userurl}} and add them as a friend too if you wish." + see_their_profile: "You can see their profile at {{userurl}}." + befriend_them: "You can also add them as a friend at {{befriendurl}}." gpx_notification: greeting: "Hi," your_gpx_file: "It looks like your GPX file" @@ -1035,9 +1039,13 @@ en: message_sent: "Message sent" limit_exceeded: "You have sent a lot of messages recently. Please wait a while before trying to send any more." no_such_user: - title: "No such user or message" - heading: "No such user or message" - body: "Sorry there is no user or message with that name or id" + title: "No such user" + heading: "No such user" + body: "Sorry there is no user with that name." + no_such_message: + title: "No such message" + heading: "No such message" + body: "Sorry there is no message with that id." outbox: title: "Outbox" my_inbox: "My {{inbox_link}}" @@ -1049,6 +1057,8 @@ en: date: "Date" no_sent_messages: "You have no sent messages yet. Why not get in touch with some of the {{people_mapping_nearby_link}}?" people_mapping_nearby: "people mapping nearby" + reply: + wrong_user: "You are logged in as `{{user}}' but the message you have asked to reply to was not sent to that user. Please login as the correct user in order to reply." read: title: "Read message" reading_your_messages: "Reading your messages" @@ -1061,6 +1071,7 @@ en: reading_your_sent_messages: "Reading your sent messages" to: "To" back_to_outbox: "Back to outbox" + wrong_user: "You are logged in as `{{user}}' but the message you have asked to read to was not sent by or to that user. Please login as the correct user in order to read it." sent_message_summary: delete_button: "Delete" mark: @@ -1183,7 +1194,7 @@ en: heading: "Editing trace {{name}}" filename: "Filename:" download: "download" - uploaded_at: "Uploaded at:" + uploaded_at: "Uploaded:" points: "Points:" start_coord: "Start coordinate:" map: "map" @@ -1224,7 +1235,7 @@ en: pending: "PENDING" filename: "Filename:" download: "download" - uploaded: "Uploaded at:" + uploaded: "Uploaded:" points: "Points:" start_coordinates: "Start coordinate:" map: "map" @@ -1354,12 +1365,17 @@ en: openid: "OpenID:" openid description: "Use your OpenID to login" alternatively: "Alternatively" + remember: "Remember me:" lost password link: "Lost your password?" login_button: "Login" account not active: "Sorry, your account is not active yet.
Please click on the link in the account confirmation email to activate your account." auth failure: "Sorry, could not log in with those details." openid missing provider: "Sorry, could not contact your OpenID provider" openid invalid: "Sorry, your OpenID seems misformed" + logout: + title: "Logout" + heading: "Logout from OpenStreetMap" + logout_button: "Logout" lost_password: title: "Lost password" heading: "Forgotten Password?" @@ -1404,6 +1420,7 @@ en: my edits: my edits my traces: my traces my settings: my settings + oauth settings: oauth settings blocks on me: blocks on me blocks by me: blocks by me send message: send message @@ -1418,16 +1435,14 @@ en: created from: "Created from:" description: Description user location: User location - no home location: "No home location has been set." - if set location: "If you set your location, a pretty map and stuff will appear below. You can set your home location on your {{settings_link}} page." + if set location: "If you set your location, a pretty map and stuff will appear here. You can set your home location on your {{settings_link}} page." settings_link_text: settings your friends: Your friends no friends: You have not added any friends yet. km away: "{{count}}km away" m away: "{{count}}m away" - nearby users: "Nearby users:" - no nearby users: "There are no users who admit to mapping nearby yet." - my_oauth_details: "View my OAuth details" + nearby users: "Other nearby users" + no nearby users: "There are no other users who admit to mapping nearby yet." role: administrator: "This user is an administrator" moderator: "This user is a moderator" @@ -1446,9 +1461,10 @@ en: unhide_user: "unhide this user" delete_user: "delete this user" confirm: "Confirm" - friend_map: - your location: Your location - nearby mapper: "Nearby mapper: [[nearby_user]]" + popup: + your location: "Your location" + nearby mapper: "Nearby mapper" + friend: "Friend" account: title: "Edit account" my settings: My settings @@ -1476,6 +1492,7 @@ en: keep image: "Keep the current image" delete image: "Remove the current image" replace image: "Replace the current image" + image size hint: "(square images at least 100x100 work best)" home location: "Home Location:" no home location: "You have not entered your home location." latitude: "Latitude:" diff --git a/config/locales/eo.yml b/config/locales/eo.yml index 6197737dd..ab18da65b 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -196,6 +196,12 @@ eo: zoom_or_select: Zomu aŭ elektu videndan mapareon tag_details: tags: "Etikedoj:" + timeout: + type: + changeset: ŝanĝaro + node: nodo + relation: rilato + way: vojo way: download: "{{download_xml_link}}, {{view_history_link}} aŭ {{edit_link}}" download_xml: Elŝuti XML @@ -334,7 +340,6 @@ eo: donate: Subtenu OpenStreetMap {{link}} al Fonduso de Ĝisdatigo de Aparataro. donate_link_text: donacante edit: Redakti - edit_tooltip: Redakti mapojn export: Eksporti export_tooltip: Eksporti mapajn datumojn gps_traces: GPS spuroj @@ -342,7 +347,6 @@ eo: help_wiki: Helpo kaj Vikio help_wiki_tooltip: Helpo kaj Vikio por la projekto history: Historio - history_tooltip: Historio de ŝanĝaroj home: hejmo home_tooltip: Iri al hejmloko inbox: leterkesto ({{count}}) @@ -373,10 +377,6 @@ eo: view_tooltip: Vidi mapojn welcome_user: Bonvenon, {{user_link}} welcome_user_link_tooltip: Via uzantpaĝo - map: - coordinates: "Koordinatoj:" - edit: Redakti - view: Vidi message: delete: deleted: Mesaĝo forigita @@ -657,9 +657,6 @@ eo: success: Via retadreso estis konfirmita, dankon pro registriĝo. filter: not_an_administrator: Vi devas esti administristo por fari tion. - friend_map: - nearby mapper: "Proksima uzanto: [[nearby_user]]" - your location: Via loko go_public: flash success: Ĉiuj viaj redaktoj naŭ estas publikaj, kaj vi naŭ rajtas redakti. login: @@ -695,6 +692,9 @@ eo: no_such_user: heading: La uzanto {{user}} ne ekzistas title: Neniu tiel uzanto + popup: + nearby mapper: Proksima uzanto + your location: Via loko remove_friend: not_a_friend: "{{name}} ne estas amiko via." success: "{{name}} estis forviŝita el viaj amikoj." @@ -711,15 +711,12 @@ eo: view: activate_user: ebligi tiun uzanto add as friend: aldoni kiel amikon - add image: Aldoni Bildon ago: (antaŭ {{time_in_words_ago}}) blocks on me: blokas min - change your settings: ŝanĝi viajn agordojn confirm: Konfirmi create_block: bloki tiun uzanto created from: "Kreita de:" deactivate_user: malebligi tiun uzanto - delete image: Forigi Bildon delete_user: forviŝi ĉi tiun uzanton description: Priskribo diary: ĵurnalo @@ -733,11 +730,9 @@ eo: my edits: miaj redaktoj my settings: miaj agordoj my traces: miaj spuroj - my_oauth_details: Vidi miajn OAuth detalojn nearby users: "Proksimaj uzantoj:" new diary entry: nova ĵurnalrikordo no friends: Vi jam ne aldonis neniun amikon. - no home location: Neniu hejmloko estis elektita. remove as friend: forviŝu kiel amiko role: administrator: Ĉi tiu uzanto estas administranto @@ -746,8 +741,6 @@ eo: settings_link_text: agordoj traces: spuroj unhide_user: aperigi tiun uzanto - upload an image: Alŝuti bildon - user image heading: Uzantbildo user location: Loko de uzanto your friends: Viaj amikoj user_block: diff --git a/config/locales/es.yml b/config/locales/es.yml index 4392e96a4..e7a95265d 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -5,6 +5,7 @@ # Author: McDutchie # Author: PerroVerd # Author: Peter17 +# Author: Toliño # Author: Translationista es: activerecord: @@ -291,7 +292,7 @@ es: body: "Cuerpo:" language: "Idioma:" latitude: Latitud - location: "Lugar:" + location: "Ubicación:" longitude: Longitud marker_text: Lugar de la entrada del diario save_button: Guardar @@ -318,6 +319,10 @@ es: recent_entries: "Entradas recientes en el diario:" title: Diarios de usuarios user_title: Diario de {{user}} + location: + edit: Editar + location: "Ubicación:" + view: Ver new: title: Nueva entrada en el diario no_such_entry: @@ -341,7 +346,7 @@ es: area_to_export: Área a exportar embeddable_html: HTML para pegar export_button: Exportar - export_details: Los datos de OpenStreetMap se encuentran bajo una licencia Creative Commons Atribución-Compartir Igual 2.0. + export_details: Los datos de OpenStreetMap se encuentran bajo una licencia Creative Commons Atribución-Compartir Igual 2.0. format: Formato format_to_export: Formato de exportación image_size: Tamaño de la imagen @@ -357,6 +362,9 @@ es: output: Resultado paste_html: HTML para empotrar en otro sitio web scale: Escala + too_large: + body: Este área es demasiado grande para ser exportado como OpenStreetMap XML. Por favor, haga zoom o seleccione un área más pequeña. + heading: El área es demasiado grande zoom: Zoom start_rjs: add_marker: Añadir un marcador al mapa @@ -848,22 +856,24 @@ es: cycle_map: Mapa ciclista noname: Sin nombres site: + edit_disabled_tooltip: Haga zoom para editar el mapa + edit_tooltip: Edita el mapa edit_zoom_alert: Debe hacer más zoom para editar el mapa + history_disabled_tooltip: Haga zoom para ver las ediciones de este área + history_tooltip: Ver ediciones para este área history_zoom_alert: Debe hacer más zoom para ver el histórico de ediciones layouts: donate: Apoye a OpenStreetMap {{link}} al Fondo de Actualización de Hardware. donate_link_text: donando edit: Editar - edit_tooltip: Editar mapas export: Exportar export_tooltip: Exportar datos del mapa gps_traces: Trazas GPS - gps_traces_tooltip: Gestionar trazas + gps_traces_tooltip: Gestiona las trazas GPS help_wiki: Ayuda y Wiki help_wiki_tooltip: Ayuda y sitio Wiki del proyecto help_wiki_url: http://wiki.openstreetmap.org/wiki/ES:Main_Page?uselang=es history: Historial - history_tooltip: Historial de conjuntos de cambios home: inicio home_tooltip: Ir a la página inicial inbox: bandeja de entrada ({{count}}) @@ -899,13 +909,9 @@ es: user_diaries: Diarios de usuario user_diaries_tooltip: Ver diarios de usuario view: Ver - view_tooltip: Ver mapas + view_tooltip: Ver el mapa welcome_user: Bienvenido, {{user_link}} welcome_user_link_tooltip: Tu página de usuario - map: - coordinates: Coordenadas - edit: Editar - view: Ver message: delete: deleted: Mensaje borrado @@ -936,10 +942,14 @@ es: send_message_to: Enviar un mensaje nuevo a {{name}} subject: Asunto title: Enviar mensaje + no_such_message: + body: Lo sentimos, no hay ningún mensaje con este identificador. + heading: Este mensaje no existe. + title: Este mensaje no existe. no_such_user: - body: Perdón no existe usuario o mensaje con ese nombre o id - heading: No hay tal usuario o mensaje - title: No hay tal usuario o mensaje + body: Lo sentimos no hay ningún usuario con ese nombre. + heading: Este usuario no existe + title: Este usuario no existe outbox: date: Fecha inbox: entrada @@ -963,6 +973,9 @@ es: title: Leer mensaje to: A unread_button: Marcar como no leído + wrong_user: Está conectado como `{{user}}' pero el mensaje que quiere leer no se ha enviado a dicho usuario. Por favor, ingrese con el usuario correcto para ver el mensaje. + reply: + wrong_user: Está conectado como `{{user}}' pero el mensaje que quiere responder no se ha enviado a dicho usuario. Por favor, ingrese con el usuario correcto para responder. sent_message_summary: delete_button: Borrar notifier: @@ -983,8 +996,9 @@ es: hopefully_you_1: Alguien (posiblemente usted) quiere cambiar la dirección de correo en hopefully_you_2: "{{server_url}} a {{new_address}}." friend_notification: + befriend_them: También puede añadirle como amigo en {{befriendurl}}. had_added_you: "{{user}} te ha añadido como amigo en OpenStreetMap" - see_their_profile: Puede ver su perfil en {{userurl}} y añadirle como amigo también, si así­ lo desea + see_their_profile: Puede ver su perfil en {{userurl}}. subject: "[OpenStreetMap] {{user}} te ha añadido como amigo" gpx_notification: and_no_tags: y sin etiquetas @@ -1212,6 +1226,9 @@ es: sidebar: close: Cerrar search_results: Resultados de la búsqueda + time: + formats: + friendly: "%e %B %Y a las %H:%M" trace: create: trace_uploaded: Su archivo GPX ha sido cargado y está esperando ser agregado a la Base de Datos. Esto normalmente ocurre dentro de la próxima media hora, y un email le será enviado al terminar. @@ -1234,7 +1251,7 @@ es: title: Editando trazo {{name}} uploaded_at: "Subido el:" visibility: "Visibilidad:" - visibility_help: ¿Que significa esto? + visibility_help: ¿Qué significa esto? list: public_traces: Trazas GPS públicas public_traces_from: Trazas GPS Publicas de {{user}} @@ -1314,15 +1331,20 @@ es: user: account: current email address: "Dirección de correo electrónico actual:" + delete image: Elimina la imagen actual email never displayed publicly: (nunca es mostrado públicamente) flash update success: La información del usuario se ha actualizado correctamente. flash update success confirm needed: La información del usuario se ha actualizado correctamente. Compruebe su correo electrónico para ver una nota sobre cómo confirmar su nueva dirección de correo electrónico. home location: "Lugar de origen:" + image: "Imagen:" + image size hint: (las imágenes cuadradas de al menos 100x100 funcionan mejor) + keep image: Mantiene la imagen actual latitude: "Latitud:" longitude: "Longitud:" make edits public button: Hacer que todas mis ediciones sean públicas my settings: Mis preferencias new email address: "Nueva dirección de correo electrónico:" + new image: Añadir una imagen no home location: No has introducido tu lugar de origen. preferred languages: "Idiomas preferidos:" profile description: "Descripción del perfil:" @@ -1336,6 +1358,7 @@ es: public editing note: heading: Edición pública text: Actualmente sus ediciones son anónimas y la gente no puede ni enviarle mensajes ni ver su localización. Para mostrar que es lo que ha editado y permitir a la gente contactar con usted a través del sitio web, pulse el botón inferior. Desde la migración a la API 0.6, sólo los usuarios públicos pueden editar el mapa (más detalles aquí)
  • Su dirección de correo no será revelada por el hecho de ser público.
  • Esta acción no puede ser revertida y todos los nuevos usuarios son públicos por omisión.
+ replace image: Reemplazar la imagen actual return to profile: Regresar al perfil save changes button: Guardar cambios title: Editar cuenta @@ -1354,9 +1377,6 @@ es: success: Dirección de correo electrónico confirmada. ¡Gracias por registrarse! filter: not_an_administrator: Necesitas ser administrador para ejecutar esta acción. - friend_map: - nearby mapper: "Mapeadores cercanos:" - your location: "Tu lugar de origen:" go_public: flash success: Ahora todas tus ediciones son públicas y ya estás autorizado para editar login: @@ -1369,7 +1389,12 @@ es: lost password link: ¿Ha perdido su contraseña? password: Contraseña please login: Por favor inicie sesión o {{create_user_link}}. + remember: "Recordarme:" title: Iniciar sesión + logout: + heading: Salir de OpenStreetMap + logout_button: Cerrar sesión + title: Cerrar sesión lost_password: email address: "Dirección de correo:" heading: ¿Contraseña olvidada? @@ -1402,6 +1427,10 @@ es: body: Perdón, No existe usuario con el nombre {{user}}. Por favor verifica las letras, o posiblemente el vínculo que has hecho click está equivocado. heading: El usuario {{user}} no existe title: Este usuario no existe + popup: + friend: Amigo + nearby mapper: Mapeadores cercanos + your location: "Tu lugar de origen:" remove_friend: not_a_friend: "{{name}} no es uno de tus amigos." success: Has quitado a {{name}} de tus amigos. @@ -1418,17 +1447,14 @@ es: view: activate_user: activar este usuario add as friend: añadir como amigo - add image: Añadir imagen ago: (hace {{time_in_words_ago}}) block_history: ver los bloqueos recibidos blocks by me: bloqueados por mi blocks on me: bloqueos sobre mi - change your settings: cambiar tu configuración confirm: Confirmar create_block: bloquear a este usuario created from: "Creado a partir de:" deactivate_user: desactivar este usuario - delete image: Borrar imagen delete_user: borrar este usuario description: Descripción diary: diario @@ -1444,12 +1470,11 @@ es: my edits: mis ediciones my settings: mis preferencias my traces: mis trazas - my_oauth_details: Ver mis detalles OAuth - nearby users: "Usuarios cercanos:" + nearby users: "Otros usuarios cercanos:" new diary entry: nueva entrada de diario no friends: No has añadido ningún amigo aún. - no home location: No se ha fijado ninguna localización. - no nearby users: Todavía no hay usuarios que reconozcan el estar mapeando cerca. + no nearby users: Todavía no hay usuarios que se hayan ubicado en su proximidad. + oauth settings: ajustes OAuth remove as friend: eliminar como amigo role: administrator: Este usuario es un administrador @@ -1464,32 +1489,30 @@ es: settings_link_text: preferencias traces: trazas unhide_user: descubrir este usuario - upload an image: Subir una imagen - user image heading: Imagen del usuario user location: Localización del usuario your friends: Tus amigos user_block: blocks_by: - empty: "{{name}} todavía no ha creado ningún bloque." - heading: Listado de bloques por {{name}} - title: Bloques por {{name}} + empty: "{{name}} todavía no ha creado ningún bloqueo." + heading: Listado de bloqueos por {{name}} + title: Bloqueos por {{name}} blocks_on: empty: "{{name}} no ha sido bloqueado todavía." - heading: Listado de bloques en {{name}} + heading: Listado de bloqueos en {{name}} title: Bloqueos para {{name}} create: flash: Ha creado un bloque en el usuario {{name}}. try_contacting: Por favor, antes de bloquear al usuario, intenta contactarle y darle un tiempo razonable de respuesta. try_waiting: Por favor, trata de darle al usuario un tiempo razonable de respuesta antes de bloquearle. edit: - back: Ver todos los bloques - heading: Editando el bloque en {{name}} + back: Ver todos los bloqueos + heading: Editando el bloqueo en {{name}} needs_view: ¿Necesita el usuario hacer login antes de que este bloqueo sea eliminado_ period: ¿Por cuánto tiempo, empezando ahora, tiene que estar el usuario bloqueado del uso de la API? reason: El motivo por el que {{name}} está siendo bloqueado. Por favor, escriba todo lo calmado y razonable que pueda, proporcionando todos los detalles que pueda sobre la situación. Tenga en cuenta que no todos los usuarios entienden la jerga de la comunidad, así que por favor trate de usar un lenguaje plano. - show: Ver este bloque - submit: Actualizar el bloque - title: Editando el bloque en {{name}} + show: Ver este bloqueo + submit: Actualizar el bloqueo + title: Editando el bloqueo en {{name}} filter: block_expired: Este bloqueo ya ha expirado y no puede ser editado. block_period: El periodo de bloqueo debe de ser uno de los valores seleccionables de la lista desplegable @@ -1533,13 +1556,13 @@ es: one: 1 hora other: "{{count}} horas" revoke: - confirm: ¿Seguro que deseas revocar este bloque? - flash: Este bloque ha sido revocado. - heading: Revocando bloque en {{block_on}} por {{block_by}} - past: Este bloque terminó hace {{time}} y no puede ser revocado ahora. + confirm: ¿Seguro que deseas revocar este bloqueo? + flash: Este bloqueo ha sido revocado. + heading: Revocando bloqueo en {{block_on}} por {{block_by}} + past: Este bloqueo terminó hace {{time}} y no puede ser revocado ahora. revoke: Revocar - time_future: Este bloque finalizará en {{time}}. - title: Revocando bloque en {{block_on}} + time_future: Este bloqueo finalizará en {{time}}. + title: Revocando bloqueo en {{block_on}} show: back: Ver todos los bloqueos confirm: ¿Está seguro? @@ -1555,7 +1578,7 @@ es: time_past: Finalizado hace {{time}} title: "{{block_on}} bloqueado por {{block_by}}" update: - only_creator_can_edit: Sólo el moderador que ha creado este bloque puede editarlo. + only_creator_can_edit: Sólo el moderador que ha creado este bloqueo puede editarlo. success: Bloqueo actualizado. user_role: filter: diff --git a/config/locales/et.yml b/config/locales/et.yml new file mode 100644 index 000000000..0267cb4c1 --- /dev/null +++ b/config/locales/et.yml @@ -0,0 +1,400 @@ +# Messages for Estonian (Eesti) +# Exported from translatewiki.net +# Export driver: syck +# Author: Avjoska +et: + activerecord: + attributes: + diary_entry: + language: Keel + user: Kasutaja + friend: + friend: Sõber + user: Kasutaja + message: + recipient: Vastuvõtja + sender: Saatja + trace: + description: Kirjeldus + latitude: Laiuskraadid + longitude: Pikkuskraadid + name: Nimi + size: Suurus + user: Kasutaja + visible: Nähtav + user: + description: Kirjeldus + email: E-posti aadress + languages: Keeled + pass_crypt: Parool + models: + country: Riik + language: Keel + browse: + map: + deleted: Kustutatud + node: + edit: redigeeri + view_history: vaata redigeerimiste ajalugu + node_details: + coordinates: "Koordinaadid:" + relation_details: + members: "Liikmed:" + start_rjs: + details: Detailid + object_list: + details: Detailid + show_history: Näita ajalugu + wait: Oota... + way: + edit: redigeeri + view_history: vaata ajalugu + way_history: + view_details: vaata detaile + changeset: + changesets: + comment: Kommentaar + diary_entry: + edit: + language: "Keel:" + save_button: Salvesta + subject: "Teema:" + list: + title: Kasutajate päevikud + geocoder: + direction: + east: ida + north: põhja + north_east: kirde + north_west: loode + south: lõuna + south_east: kagu + south_west: edela + west: lääne + search_osm_nominatim: + prefix: + amenity: + airport: Lennujaam + atm: Pangaautomaat + auditorium: Auditoorium + bank: Pank + bench: Pink + bicycle_parking: Jalgrattaparkla + bicycle_rental: Jalgrattarent + bureau_de_change: Rahavahetus + bus_station: Bussijaam + cafe: Kohvik + car_rental: Autorent + car_wash: Autopesu + casino: Kasiino + cinema: Kino + clinic: Kliinik + club: Klubi + courthouse: Kohtuhoone + crematorium: Krematoorium + dentist: Hambaarst + drinking_water: Joogivesi + driving_school: Autokool + embassy: Saatkond + fast_food: Kiirtoit + fuel: Kütus + grave_yard: Surnuaed + hospital: Haigla + hotel: Hotell + ice_cream: Jäätis + kindergarten: Lasteaed + library: Raamatukogu + market: Turg + nightclub: Ööklubi + pharmacy: Apteek + police: Politsei + post_box: Postkast + post_office: Postkontor + preschool: Lasteaed + prison: Vangla + reception_area: Vastuvõtt + restaurant: Restoran + retirement_home: Vanadekodu + sauna: Saun + school: Kool + shop: Kauplus + supermarket: Supermarket + taxi: Takso + theatre: Teater + toilets: WC + university: Ülikool + waste_basket: Prügikast + wifi: WiFi + youth_centre: Noortekeskus + building: + chapel: Kabel + church: Kirik + hotel: Hotell + school: Koolihoone + shop: Kauplus + stadium: Staadion + tower: Torn + train_station: Raudteejaam + university: Ülikoolihoone + "yes": Hoone + highway: + bus_stop: Bussipeatus + cycleway: Jalgrattatee + footway: Jalgrada + pedestrian: Jalakäijatele + historic: + castle: Kindlus + church: Kirik + icon: Ikoon + manor: Mõis + museum: Muuseum + ruins: Varemed + tower: Torn + landuse: + cemetery: Surnuaed + forest: Mets + mountain: Mägi + railway: Raudtee + wetland: Soo + leisure: + garden: Aed + golf_course: Golfiväljak + ice_rink: Uisuväli + miniature_golf: Minigolf + park: Park + playground: Mänguväljak + sports_centre: Spordikeskus + stadium: Saadion + swimming_pool: Ujula + water_park: Veepark + natural: + beach: Rand + cave_entrance: Koopa sissepääs + coastline: Rannajoon + crater: Kraater + fjord: Fjord + geyser: Geiser + hill: Mägi + island: Saar + mud: Muda + peak: Mäetipp + river: Jõgi + spring: Allikas + tree: Puu + volcano: Vulkaan + water: Vesi + wetlands: Soo + place: + airport: Lennujaam + city: Linn + country: Riik + county: Maakond + house: Maja + houses: Majad + island: Saar + islet: Saareke + municipality: Vald + postcode: Sihtnumber + state: Osariik + town: Linn + village: Küla + railway: + station: Raudteejaam + tram: Trammitee + tram_stop: Trammipeatus + shop: + books: Raamatupood + car_repair: Autoparandus + carpet: Vaibakauplus + clothes: Riidepood + computer: Arvutikauplus + cosmetics: Kosmeetikapood + drugstore: Apteek + dry_cleaning: Keemiline puhastus + fish: Kalapood + food: Toidupood + furniture: Mööbel + gallery: Galerii + hairdresser: Juuksur + insurance: Kindlustus + jewelry: Juveelipood + kiosk: Kiosk + mobile_phone: Mobiiltelefonide pood + music: Muusikapood + pet: Lemmikloomapood + shoes: Kingapood + sports: Spordipood + supermarket: Supermarket + toys: Mänguasjapood + travel_agency: Reisiagentuur + tourism: + attraction: Turismiatraktsioon + camp_site: Laagriplats + guest_house: Külalistemaja + hotel: Hotell + information: Informatsioon + motel: Motell + museum: Muuseum + picnic_site: Piknikuplats + theme_park: Teemapark + zoo: Loomaaed + layouts: + edit: Redigeeri + log_in: logi sisse + logout_tooltip: Logi välja + shop: Kauplus + welcome_user_link_tooltip: Sinu kasutajaleht + message: + inbox: + date: Kuupäev + message_summary: + delete_button: Kustuta + read_button: Märgi loetuks + reply_button: Vasta + outbox: + date: Kuupäev + subject: Teema + read: + date: Kuupäev + from: Kellelt + reply_button: Vasta + subject: Teema + to: Kellele + unread_button: Märgi mitteloetuks + sent_message_summary: + delete_button: Kustuta + notifier: + email_confirm_html: + greeting: Tere, + email_confirm_plain: + greeting: Tere, + gpx_notification: + greeting: Tere, + lost_password_html: + greeting: Tere, + lost_password_plain: + greeting: Tere, + message_notification: + hi: Tere, {{to_user}}, + oauth_clients: + edit: + submit: Redigeeri + title: Redigeeri oma avaldust + index: + application: Avalduse nimi + new: + submit: Registreeri + title: Registreeri uus avaldus + site: + edit: + user_page_link: kasutajaleht + key: + table: + entry: + cemetery: Surnuaed + cycleway: Jalgrattatee + footway: Jalgtee + park: Park + search: + search: Otsi + submit_text: Otsi + where_am_i: Kus ma olen? + sidebar: + close: Sulge + search_results: Otsingu tulemused + trace: + edit: + description: "Kirjeldus:" + download: laadi alla + edit: redigeeri + filename: "Failinimi:" + map: kaart + owner: "Omanik:" + points: "Punktid:" + save_button: Salvesta muudatused + start_coord: "Alguskoordinaadid:" + visibility: "Nähtavus:" + visibility_help: mida see tähendab? + no_such_user: + title: Sellist kasutajat ei ole + trace: + view_map: Vaata kaarti + trace_form: + description: Kirjeldus + help: Abi + upload_button: Laadi üles + visibility: Nähtavus + visibility_help: mida see tähendab? + view: + description: "Kirjeldus:" + download: laadi alla + edit: redigeeri + filename: "Failinimi:" + map: kaardil + owner: "Omanik:" + points: "Punktid:" + start_coordinates: "Alguskoordinaadid:" + visibility: "Nähtavus:" + user: + account: + latitude: "Laiuskraadid:" + longitude: "Pikkuskraadid:" + preferred languages: "Eelistatud keeled:" + public editing: + disabled link text: miks ma ei saa redigeerida? + enabled link text: mis see on? + save changes button: Salvesta muudatused + confirm: + button: Kinnita + login: + create_account: loo uus kasutajanimi + email or username: "E-posti aadress või kasutajanimi:" + heading: Logi sisse + login_button: Logi sisse + password: "Parool:" + title: Sisselogimise lehekülg + lost_password: + email address: "E-posti aadress:" + heading: Parool ununenud? + make_friend: + success: "{{name}} on nüüd Sinu sõber." + new: + confirm email address: "Kinnita e-posti aadress:" + confirm password: "Kinnita parool:" + email address: "E-posti aadress:" + heading: Loo uus kasutajanimi + password: "Parool:" + reset_password: + confirm password: "Kinnita parool:" + flash changed: Sinu parool on muudetud. + password: "Parool:" + view: + activate_user: aktiveeri see kasutaja + add as friend: lisa sõbraks + create_block: blokeeri see kasutaja + delete_user: kustuta see kasutaja + description: Kirjeldus + diary: päevik + edits: muudatused + email address: "E-posti aadress:" + km away: "{{count}} kilomeetri kaugusel" + m away: "{{count}} meetri kaugusel" + my diary: minu päevik + new diary entry: uus päevikusissekanne + role: + administrator: See kasutaja on administraator + moderator: See kasutaja on moderaator + send message: saada sõnum + your friends: Sinu sõbrad + user_block: + edit: + back: Vaata kõiki blokeeringuid + new: + back: Vaata kõiki blokeeringuid + partial: + confirm: Oled Sa kindel? + show: + confirm: Oled Sa kindel? + user_role: + revoke: + confirm: Kinnita diff --git a/config/locales/eu.yml b/config/locales/eu.yml index 5b1e6874c..62213b589 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -489,7 +489,6 @@ eu: noname: Izenik gabe layouts: edit: Aldatu - edit_tooltip: Mapak aldatu export: Esportatu help_wiki: Laguntza eta Wiki history: Historia @@ -511,10 +510,6 @@ eu: view_tooltip: Mapak ikusi welcome_user: Ongietorri, {{user_link}} welcome_user_link_tooltip: Zure lankide orrialdea - map: - coordinates: "Koordenatuak:" - edit: Aldatu - view: Ikusi message: delete: deleted: Mezua ezabatuta @@ -690,9 +685,6 @@ eu: heading: Erabiltzaile kontua baieztatu confirm_email: button: Berretsi - friend_map: - nearby mapper: "Hurbileko mapeatzaileak: [[nearby_user]]" - your location: Zure kokapena login: create_account: kontua sortu email or username: "Eposta helbidea edo Erabiltzaile izena:" @@ -713,6 +705,9 @@ eu: password: "Pasahitza:" signup: Izena eman title: Kontua sortu + popup: + nearby mapper: Hurbileko mapeatzaileak + your location: Zure kokapena remove_friend: not_a_friend: "{{name}} ez da zure laguna." reset_password: @@ -723,10 +718,8 @@ eu: title: Pasahitza berrezarri view: add as friend: lagun bezala - add image: Irudia gehitu ago: (duela {{time_in_words_ago}}) confirm: Berretsi - delete image: Irudia ezabatu description: Deskribapen edits: aldaketak email address: "Helbide elektronikoa:" diff --git a/config/locales/fa.yml b/config/locales/fa.yml new file mode 100644 index 000000000..cda24e30a --- /dev/null +++ b/config/locales/fa.yml @@ -0,0 +1,341 @@ +# Messages for Persian (فارسی) +# Exported from translatewiki.net +# Export driver: syck +# Author: Grille chompa +fa: + activerecord: + attributes: + diary_entry: + language: زبان + latitude: عرض جغرافیایی + longitude: طول جغرافیایی + user: کاربر + friend: + friend: دوست + user: کاربر + trace: + latitude: عرض جغرافیایی + longitude: طول جغرافیایی + name: نام + user: کاربر + user: + pass_crypt: کلمه عبور + models: + country: کشور + friend: دوست + language: زبان + message: پیغام + node: گره + relation: ارتباط + user: کاربر + way: راه + browse: + common_details: + version: "نسخه :" + containing_relation: + entry: ارتباطات {{relation_name}} + node: + download: "{{download_xml_link}}، {{view_history_link}} یا {{edit_link}}" + edit: ویرایش + node: گره + node_title: "گره: {{node_name}}" + node_details: + part_of: "قسمتی از:" + not_found: + type: + node: گره + relation: ارتباط + way: راه + paging_nav: + of: از + relation: + relation: ارتباط + relation_title: "ارتباطات: {{relation_name}}" + relation_details: + part_of: "قسمتی از:" + relation_member: + entry_role: "{{type}} {{name}} به عنوان {{role}}" + type: + node: گره + relation: ارتباط + way: راه + start_rjs: + details: جزئیات + object_list: + details: جزئیات + history: + type: + node: گره [[id]] + way: راه [[id]] + selected: + type: + node: گره [[id]] + way: راه [[id]] + type: + node: گره + way: راه + tag_details: + tags: "برچسب‌ها:" + timeout: + type: + node: گره + relation: ارتباط + way: راه + way: + download: "{{download_xml_link}}، {{view_history_link}} یا {{edit_link}}" + edit: ویرایش + way: راه + way_title: "راه: {{way_name}}" + way_details: + nodes: "گره ها :" + part_of: "قسمتی از:" + changeset: + changeset: + big_area: (بزرگ) + changesets: + user: کاربر + diary_entry: + edit: + language: "زبان:" + latitude: "عرض جغرافیایی:" + longitude: "طول جغرافیایی:" + save_button: ذخیره + location: + edit: ویرایش + view: + save_button: ذخیره + export: + start: + latitude: "عرض:" + longitude: "طول:" + options: تنظیمات + geocoder: + description_osm_namefinder: + prefix: "{{distance}} {{direction}} {{type}}" + direction: + east: شرق + north: شمال + north_east: شمال شرقی + north_west: شمال غربی + south: جنوب + south_east: جنوب شرقی + south_west: جنوب غربی + west: غرب + search_osm_namefinder: + suffix_parent: "{{suffix}} ({{parentdistance}} {{parentdirection}} {{parentname}})" + suffix_place: ", {{distance}} {{direction}} {{placename}}" + search_osm_nominatim: + prefix: + amenity: + airport: فرودگاه + atm: عابر بانک + bank: بانک + bench: نیمکت + brothel: فاحشه خانه + cafe: کافه + cinema: سینما + clinic: درمانگاه + courthouse: دادگاه + dentist: دندانپزشک + dormitory: خوابگاه دانشجویی + embassy: سفارت + fire_station: آتش نشانی + fuel: پمپ بنزین + hospital: بیمارستان + hotel: هتل + kindergarten: کودکستان + library: کتابخانه + market: بازار + marketplace: بازار + office: دفتر + park: پارک + parking: پارکینگ + pharmacy: داروخانه + police: پلیس + post_box: صندوق پست + post_office: اداره پست + prison: زندان + pub: میخانه + recycling: بازیافت + restaurant: رستوران + school: مدرسه + supermarket: سوپرمارکت + taxi: تاکسی + theatre: تئاتر + townhall: شهر داری + university: دانشگاه + waste_basket: سطل اشغال + building: + garage: گاراژ + hotel: هتل + house: خانه + stadium: ورزشگاه + tower: برج + highway: + bus_stop: ایستگاه اتوبوس + motorway: اتوبان + path: مسیر + road: جاده + steps: پله + trunk: بزرگراه + historic: + castle: قلعه + museum: موزه + tower: برج + landuse: + farmland: زمین کشاورزی + forest: جنگل + mountain: کوه + park: پارک + railway: ریل + leisure: + garden: باغ + park: پارک + stadium: ورزشگاه + natural: + beach: ساحل + channel: کانال + coastline: ساحل + hill: تپه + island: جزیره + point: نقطه + river: رود خانه + rock: صخره + tree: درخت + valley: دره + volcano: کوه آتشفشان + water: اب + wood: جنگل + place: + airport: فرودگاه + city: شهر بزرگ + country: کشور + farm: مزرعه + house: خانه + island: جزیره + sea: دریا + suburb: محله + town: شهر + village: دهکده + shop: + bakery: نانوایی + butcher: قصاب + kiosk: کیوسک + market: بازار + supermarket: سوپرمارکت + tourism: + hotel: هتل + motel: متل + museum: موزه + valley: دره + zoo: باغ وحش + waterway: + canal: کانال + river: رودخانه + waterfall: ابشار + message: + inbox: + date: تاریخ + from: از + subject: عنوان + outbox: + date: تاریخ + subject: عنوان + to: به + read: + date: تاریخ + from: از + to: به + notifier: + diary_comment_notification: + hi: سلام {{to_user}} ، + email_confirm_html: + greeting: سلام ، + email_confirm_plain: + greeting: سلام ، + gpx_notification: + greeting: سلام ، + lost_password_html: + greeting: سلام ، + lost_password_plain: + greeting: سلام ، + message_notification: + hi: سلام {{to_user}}, + signup_confirm_plain: + greeting: سلام! + oauth_clients: + edit: + submit: ویرایش + form: + name: نام + site: + key: + table: + entry: + cemetery: گورستان + farm: مزرعه + forest: جنگل + lake: + - دریاچه + motorway: اتوبان + park: پارک + school: + - مدرسه + - دانشگاه + summit: + - قله + - قله + trunk: بزرگراه + sidebar: + close: بستن + trace: + edit: + edit: ویرایش + map: نقشه + tags: "برچسب‌ها:" + trace: + by: توسط + edit: ویرایش + edit_map: ویرایش نقشه + in: در + map: نقشه + more: بیشتر + trace_form: + help: راهنما + tags: برچسب‌ها + trace_optionals: + tags: برچسب‌ها + view: + edit: ویرایش + map: نقشه + tags: "برچسب‌ها:" + user: + account: + image: "تصویر :" + latitude: "عرض جغرافیایی:" + longitude: "طول جغرافیایی:" + confirm_email: + button: تأیید + login: + heading: ورود به سیستم + login_button: ورود + password: "کلمه عبور:" + title: ورود به سیستم + new: + password: "کلمه عبور:" + popup: + friend: دوست + reset_password: + password: "کلمه عبور:" + view: + settings_link_text: تنظیمات + user_block: + partial: + edit: ویرایش + show: + edit: ویرایش + user_role: + grant: + confirm: تائید + revoke: + confirm: تأیید diff --git a/config/locales/fi.yml b/config/locales/fi.yml index beaa1ff79..cb579699d 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -56,6 +56,7 @@ fi: node: Piste node_tag: Pisteen tägi notifier: Ilmoitus + old_node: Vanha piste old_relation: Vanha relaatio old_way: Vanha polku relation: Relaatio @@ -122,7 +123,7 @@ fi: node: Näytä piste suurella kartalla relation: Näytä relaatio suurella kartalla way: Näytä polku suurella kartalla - loading: Lataa tietoja... + loading: Ladataan… node: download: "{{download_xml_link}}, {{view_history_link}} tai {{edit_link}}" download_xml: Lataa XML @@ -304,6 +305,10 @@ fi: recent_entries: Uusimmat päiväkirjamerkinnät title: Käyttäjien päiväkirjamerkinnät user_title: Käyttäjän {{user}} päiväkirja + location: + edit: Muokkaa + location: "Sijainti:" + view: Näytä new: title: Uusi päiväkirjamerkintä no_such_entry: @@ -319,7 +324,7 @@ fi: login: Kirjaudu sisään login_to_leave_a_comment: "{{login_link}} kommentoidaksesi" save_button: Tallenna - title: Käyttäjien päiväkirjat | {{user}} + title: Käyttäjän {{user}} päiväkirja | {{title}} user_title: Käyttäjän {{user}} päiväkirja export: start: @@ -506,6 +511,7 @@ fi: primary: Kantatie primary_link: Kantatie raceway: Kilparata + residential: Asuinkatu road: Tie secondary: Seututie secondary_link: Seututie @@ -528,11 +534,13 @@ fi: wreck: Hylky landuse: cemetery: Hautausmaa + commercial: Kaupallinen alue construction: Rakennustyömaa forest: Metsä grass: Nurmikko industrial: Teollisuusalue landfill: Kaatopaikka + meadow: Niitty military: Sotilasalue mine: Kaivos mountain: Vuori @@ -607,12 +615,14 @@ fi: town: Kaupunki village: Kylä railway: + abandoned: Hylätty rautatie construction: Rakenteilla oleva rautatie disused_station: Käytöstä poistunut rautatieasema level_crossing: Tasoristeys monorail: Yksikiskoinen raide platform: Asemalaituri station: Rautatieasema + subway: Metroasema subway_entrance: Metron sisäänkäynti yard: Ratapiha shop: @@ -691,18 +701,18 @@ fi: base: cycle_map: Pyöräilykartta noname: Nimettömät tiet + site: + edit_tooltip: Muokkaa karttaa layouts: donate: Tue OpenStreetMapia {{link}} laitteistopäivitysrahastoon. donate_link_text: lahjoittamalla edit: Muokkaa - edit_tooltip: Muokkaa karttoja export: Vienti export_tooltip: Karttatiedon vienti gps_traces: GPS-jäljet help_wiki: Wiki ja ohjeet help_wiki_tooltip: Projektin ohje ja wiki history: Historia - history_tooltip: Muutoshistoria home: koti home_tooltip: Siirry kotisijaintiin inbox: viestit ({{count}}) @@ -734,13 +744,9 @@ fi: tag_line: Vapaa wikimaailmankartta user_diaries: Päiväkirjamerkinnät view: Kartta - view_tooltip: Näytä kartat + view_tooltip: Näytä kartta welcome_user: Tervetuloa, {{user_link}} welcome_user_link_tooltip: Käyttäjäsivusi - map: - coordinates: "Koordinaatit:" - edit: Muokkaa - view: Näytä message: delete: deleted: Viesti poistettu @@ -772,8 +778,8 @@ fi: subject: Otsikko title: Lähetä viesti no_such_user: - heading: Käyttäjää tai viestiä ei ole - title: Käyttäjää tai viestiä ei ole + heading: Käyttäjää ei löydy + title: Käyttäjää ei löydy outbox: date: Päiväys inbox: saapuneet @@ -968,6 +974,9 @@ fi: sidebar: close: Sulje search_results: Hakutulokset + time: + formats: + friendly: "%e. %Bta %Y kello %H:%M" trace: create: trace_uploaded: GPX-tiedostosi on nyt palvelimella ja jonossa tietokantaan syötettäväksi. Yleensä tämä valmistuu puolen tunnin sisällä. Saat vielä sähköpostiisi vahvistuksen asiasta. @@ -1010,6 +1019,7 @@ fi: other: "{{count}} pistettä" edit: muokkaa edit_map: Muokkaa karttaa + identifiable: TUNNISTETTAVA in: tägeillä map: sijainti kartalla more: tiedot @@ -1034,6 +1044,9 @@ fi: traces_waiting: Lähettämiäsi jälkiä on jo {{count}} käsittelyjonossa odottamassa tallennusta tietokantaan. Olisi huomaavaista jos odottaisit näiden valmistuvan ennen kuin lähetät lisää jälkiä. Näin muidenkin käyttäjien lähettämät jäljet pääsevät aiemmin tietokantaan. trace_optionals: tags: Tägit + trace_paging_nav: + next: Seuraava » + previous: "« Edellinen" view: delete_track: Poista tämä jälki description: "Kuvaus:" @@ -1058,14 +1071,21 @@ fi: trackable: Jäljitettävissä (pisteet jaetaan järjestettynä aikaleimoineen, mutta nimettömänä) user: account: + current email address: "Nykyinen sähköpostiosoite:" + delete image: Poista nykyinen kuva email never displayed publicly: (ei näy muille) flash update success: Käyttäjätiedot on päivitetty onnistuneesti. flash update success confirm needed: Käyttäjätiedot on päivitetty onnistuneesti. Vahvista sähköpostiosoitteesi sinulle lähetettyjen ohjeiden mukaisesti. home location: "Kodin sijainti:" + image: "Kuva:" + image size hint: (parhaiten toimivat neliöt kuvat, joiden koko on vähintään 100x100) + keep image: Säilytä nykyinen kuva latitude: "Leveyspiiri:" longitude: "Pituuspiiri:" make edits public button: Tee muokkauksistani julkisia my settings: Käyttäjän asetukset + new email address: "Uusi sähköpostiosoite:" + new image: Lisää kuva no home location: Et ole määrittänyt kodin sijaintia. preferred languages: "Kielivalinnat:" profile description: "Kuvaustekstisi:" @@ -1078,6 +1098,7 @@ fi: heading: "Muokkaukset julkisia:" public editing note: heading: Julkinen muokkaus + replace image: Korvaa nykyinen kuva return to profile: Palaa profiilisivulle save changes button: Tallenna muutokset title: Asetusten muokkaus @@ -1096,9 +1117,6 @@ fi: success: Sähköpostiosoite on vahvistettu. Kiitos liittymisestä! filter: not_an_administrator: Tähän toimintoon tarvitaan ylläpitäjän oikeudet. - friend_map: - nearby mapper: "Lähellä oleva kartoittaja: [[nearby_user]]" - your location: Oma sijaintisi go_public: flash success: Kaikki tekemäsi muokkaukset ovat nyt julkisia. login: @@ -1111,6 +1129,7 @@ fi: lost password link: Salasana unohtunut? password: "Salasana:" please login: Kirjaudu sisään tai {{create_user_link}}. + remember: "Muista minut:" title: Kirjautumissivu lost_password: email address: "Sähköpostiosoite:" @@ -1143,6 +1162,10 @@ fi: body: Käyttäjää {{user}} ei löytynyt. Tarkista oikeikirjoitus. heading: Käyttäjää {{user}} ei ole olemassa title: Haettua käyttäjää ei ole olemassa + popup: + friend: Ystävä + nearby mapper: Lähellä oleva kartoittaja + your location: Oma sijaintisi remove_friend: not_a_friend: "{{name}} ei ole enää kaverisi." success: "{{name}} poistettiin kaverilistastasi." @@ -1159,16 +1182,13 @@ fi: view: activate_user: aktivoi tämä käyttäjä add as friend: lisää kaveriksi - add image: Tallenna ago: ({{time_in_words_ago}} sitten) block_history: näytä estot blocks by me: tekemäni estot blocks on me: saadut estot - change your settings: muuta asetuksiasi confirm: Vahvista create_block: estä tämä käyttäjä deactivate_user: deaktivoi tämä käyttäjä - delete image: Poista kuva delete_user: poista käyttäjä description: Kuvaus diary: päiväkirja @@ -1184,12 +1204,11 @@ fi: my edits: omat muokkaukset my settings: asetukset my traces: omat jäljet - my_oauth_details: Näytä omat OAuth-yksityiskohdat - nearby users: "Lähialueen käyttäjät:" + nearby users: Muut lähialueen käyttäjät new diary entry: uusi päiväkirjamerkintä no friends: Sinulla ei ole vielä kavereita. - no home location: Käyttäjä ei ole asettanut kotisijaintiaan. no nearby users: Valitun sijainnin lähellä ei ole tiedossa muita käyttäjiä. + oauth settings: oauth-asetukset remove as friend: poista kavereista role: administrator: Tämä käyttäjä on ylläpitäjä. @@ -1203,8 +1222,6 @@ fi: send message: lähetä viesti settings_link_text: asetussivulla traces: jäljet - upload an image: Tallenna kuva - user image heading: Käyttäjän kuva user location: Käyttäjän sijainti your friends: Kaverit user_block: diff --git a/config/locales/fr.yml b/config/locales/fr.yml index d21f18d9b..728d24ee8 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -322,6 +322,10 @@ fr: recent_entries: "Entrées récentes:" title: Journaux des utilisateurs user_title: Journal de {{user}} + location: + edit: Modifier + location: "Lieu :" + view: Afficher new: title: Nouvelle entrée du journal no_such_entry: @@ -361,6 +365,9 @@ fr: output: Sortie paste_html: Collez le code HTML pour incorporer dans un site web. scale: Échelle + too_large: + body: Cette zone est trop vaste pour être exportée comme données XML OpenStreetMap. Veuillez zoomer ou sélectionner une zone plus petite. + heading: Zone trop grande zoom: Zoom start_rjs: add_marker: Ajouter un marqueur à la carte @@ -777,7 +784,7 @@ fr: greengrocer: Marchand de fruits et légumes grocery: Épicerie hairdresser: Coiffeur - hardware: Magasin de matériel informatique + hardware: Quincaillerie hifi: Magasin Hi-Fi insurance: Assurance jewelry: Bijouterie @@ -852,21 +859,23 @@ fr: cycle_map: Carte cyclable noname: SansNom site: + edit_disabled_tooltip: Zoomez en avant pour modifier la carte + edit_tooltip: Modifier la carte edit_zoom_alert: Vous devez zoomer pour modifier la carte + history_disabled_tooltip: Zoomez en avant pour voir les modifications dans cette zone + history_tooltip: Voir les modifications dans cette zone history_zoom_alert: Vous devez zoomer pour voir l’historique des modifications layouts: donate: Soutenez OpenStreetMap, {{link}} au fond pour améliorer le matériel. donate_link_text: participez edit: Modifier - edit_tooltip: Modifier des cartes export: Exporter export_tooltip: Exporter les données de la carte gps_traces: Traces GPS - gps_traces_tooltip: Gérer les traces + gps_traces_tooltip: Gérer les traces GPS help_wiki: Aide & Wiki help_wiki_tooltip: Aide et site Wiki du projet history: Historique - history_tooltip: Historique du groupe de modifications home: Chez moi home_tooltip: Aller à l'emplacement de mon domicile inbox: Boîte aux lettres ({{count}}) @@ -902,13 +911,9 @@ fr: user_diaries: Journaux user_diaries_tooltip: Voir les journaux d'utilisateurs view: Voir - view_tooltip: Afficher les cartes + view_tooltip: Afficher la carte welcome_user: Bienvenue, {{user_link}} welcome_user_link_tooltip: Votre page utilisateur - map: - coordinates: Coordonnées - edit: Modifier - view: Carte message: delete: deleted: Message supprimé @@ -939,10 +944,14 @@ fr: send_message_to: Envoyer un nouveau message à {{name}} subject: Sujet title: Envoyer un message + no_such_message: + body: Désolé, il n'y a aucun message avec cet identifiant. + heading: Message introuvable + title: Message introuvable no_such_user: - body: Désolé, il n'y a aucun utilisateur ni message avec ce nom ou cet identifiant - heading: Utilisateur ou message inexistant - title: Utilisateur ou message inexistant + body: Désolé, aucun utilisateur ne porte ce nom. + heading: Utilisateur inexistant + title: Utilisateur inexistant outbox: date: Date inbox: boîte de réception @@ -966,6 +975,9 @@ fr: title: Lire le message to: À unread_button: Marque comme non lu + wrong_user: Vous êtes identifié comme « {{user}} » mais le message que vous essayez de lire n'a été envoyé ni à ni par cet utilisateur. Veuillez vous connecter avec l'identifiant correct pour pouvoir le lire. + reply: + wrong_user: Vous êtes identifié(e) comme « {{user}} » mais le message auquel vous souhaitez répondre n'a pas été envoyé à cet utilisateur. Veuillez vous connecter avec l'identifiant correct pour pouvoir répondre. sent_message_summary: delete_button: Supprimer notifier: @@ -986,8 +998,9 @@ fr: hopefully_you_1: Quelqu'un (problablement vous) voudrait changer son adresse de courriel de hopefully_you_2: "{{server_url}} à {{new_address}}." friend_notification: + befriend_them: "Vous pouvez également l'ajouter comme ami ici : {{befriendurl}}." had_added_you: "{{user}} vous a ajouté comme ami dans OpenStreetMap." - see_their_profile: Vous pouvez voir son profil sur {{userurl}} et l’ajouter comme ami si vous le souhaitez. + see_their_profile: "Vous pouvez voir son profil ici : {{userurl}}." subject: "[OpenStreetMap] {{user}} vous a ajouté comme ami" gpx_notification: and_no_tags: et sans balise. @@ -1214,6 +1227,9 @@ fr: sidebar: close: Fermer search_results: Résultats de la recherche + time: + formats: + friendly: "%e %B %Y à %H:%M" trace: create: trace_uploaded: Votre fichier GPX a été envoyé et est en attente de son intégration dans la base de données. Ceci prend en général moins d'une demie heure, et un email vous sera envoyé lorsque cette tâche sera finie. @@ -1247,7 +1263,7 @@ fr: no_such_user: body: Désolé, aucun utilisateur ne porte le nom {{user}}. Veuillez vérifier l'orthographe. Si vous avez cliqué sur un lien, celui-ci est faux. heading: L’utilisateur {{user}} n’existe pas - title: Aucun utilisteur trouvé + title: Utilisateur inexistant offline: heading: Stockage GPX hors ligne message: Le système de stockage et d'envoi des GPX est actuellement indisponible. @@ -1316,15 +1332,20 @@ fr: user: account: current email address: "Adresse de courriel actuelle :" + delete image: Supprimer l'image actuelle email never displayed publicly: (jamais affiché publiquement) flash update success: Informations sur l'utilisateur mises à jour avec succès. flash update success confirm needed: Informations sur l'utilisateur mises à jour avec succès. Vérifiez votre boîte mail afin de valider la vérification de votre nouvelle adresse e-mail. home location: "Emplacement du domicile :" + image: "Image :" + image size hint: (les images carrées d'au moins 100×100 pixels fonctionnent le mieux) + keep image: Garder l'image actuelle latitude: "Latitude:" longitude: "Longitude:" make edits public button: Rendre toutes mes modifications publiques my settings: Mes options new email address: "Nouvelle adresse de courriel :" + new image: Ajouter une image no home location: Vous n'avez pas indiqué l'emplacement de votre domicile. preferred languages: "Langues préférées :" profile description: "Description du profil :" @@ -1338,6 +1359,7 @@ fr: public editing note: heading: Modification publique text: "Votre compte est actuellement en mode \"modifications anonymes\" : il n'existe pas de lien entre vos modifications et votre compte utilisateur et les autres contributeurs ne peuvent pas vous envoyer de message ni connaître votre localisation géographique. Pour qu'il soit possible de lister vos contributions et permettre aux autres personnes de vous contacter via ce site, cliquez sur le bouton ci-dessous. Depuis le basculement de l'API en version 0.6, seuls les utilisateurs en mode \"modifications publiques\" peuvent modifier les cartes (en savoir plus).
  • Votre adresse de courriel ne sera pas rendue publique.
  • Cette opération ne peut pas être annulée et tous les nouveaux utilisateurs sont en mode \"modifications publiques\" par défaut.
" + replace image: Remplacer l'image actuelle return to profile: Retourner au profil save changes button: Sauvegarder les changements title: Modifier le compte @@ -1356,9 +1378,6 @@ fr: success: Adresse email confirmée, merci de vous être enregistré ! filter: not_an_administrator: Vous devez être administrateur pour effectuer cette action. - friend_map: - nearby mapper: "Mappeur dans les environs: [[nearby_user]]" - your location: Votre emplacement go_public: flash success: Toutes vos modifications sont dorénavant publiques, et vous êtes autorisé a modifier. login: @@ -1371,7 +1390,12 @@ fr: lost password link: Vous avez perdu votre mot de passe ? password: "Mot de passe :" please login: Veuillez vous connecter ou {{create_user_link}}. + remember: "Se souvenir de moi :" title: Se connecter + logout: + heading: Déconnexion d'OpenStreetMap + logout_button: Déconnexion + title: Déconnexion lost_password: email address: "Adresse e-mail :" heading: Vous avez perdu votre mot de passe ? @@ -1404,6 +1428,10 @@ fr: body: Désolé, il n'y a pas d'utilisateur avec le nom {{user}}. Veuillez vérifier l'orthographe, ou le lien que vous avez cliqué n'est pas valide. heading: L'utilisateur {{user}} n'existe pas title: Utilisateur inexistant + popup: + friend: Ami + nearby mapper: Mappeur dans les environs + your location: Votre emplacement remove_friend: not_a_friend: "{{name}} n'est pas parmi vos amis." success: "{{name}} a été retiré de vos amis." @@ -1420,17 +1448,14 @@ fr: view: activate_user: activer cet utilisateur add as friend: ajouter en tant qu'ami - add image: Ajouter une image ago: (il y a {{time_in_words_ago}}) block_history: blocages reçus blocks by me: blocages donnés blocks on me: mes blocages - change your settings: modifiez vos options confirm: Confirmer create_block: bloquer cet utilisateur created from: "Créé depuis :" deactivate_user: désactiver cet utilisateur - delete image: Effacer l'image delete_user: supprimer cet utilisateur description: Description diary: journal @@ -1446,12 +1471,11 @@ fr: my edits: mes modifications my settings: mes options my traces: mes traces - my_oauth_details: Voir mes détails OAuth - nearby users: "Utilisateurs proches de vous :" + nearby users: Autres utilisateurs à proximité new diary entry: nouvelle entrée dans le journal no friends: Vous n'avez pas encore ajouté d'ami - no home location: Aucun lieu n'a été défini. - no nearby users: Il n'y a pas encore d'utilisateur à proximité. + no nearby users: Aucun utilisateur n'a encore signalé qu'il cartographiait à proximité. + oauth settings: paramètres OAuth remove as friend: enlever en tant qu'ami role: administrator: Cet utilisateur est un adminstrateur @@ -1466,8 +1490,6 @@ fr: settings_link_text: options traces: traces unhide_user: ré-afficher cet utilisateur - upload an image: Envoyer une image - user image heading: Image utilisateur user location: Emplacement de l'utilisateur your friends: Vos amis user_block: diff --git a/config/locales/fur.yml b/config/locales/fur.yml index 30f054f78..2b6716314 100644 --- a/config/locales/fur.yml +++ b/config/locales/fur.yml @@ -243,6 +243,10 @@ fur: recent_entries: "Ultimis vôs dal diari:" title: Diaris dai utents user_title: Diari di {{user}} + location: + edit: Cambie + location: "Lûc:" + view: Viôt new: title: Gnove vôs dal diari view: @@ -328,6 +332,7 @@ fur: bureau_de_change: Ufizi di cambi bus_station: Stazion des corieris car_wash: Lavaç machinis + casino: Casinò cinema: Cine clinic: Cliniche dentist: Dentist @@ -378,17 +383,21 @@ fur: landuse: cemetery: Simiteri commercial: Aree comerciâl + construction: In costruzion industrial: Aree industriâl military: Aree militâr nature_reserve: Riserve naturâl park: Parc + railway: Ferade residential: Aree residenziâl leisure: garden: Zardin golf_course: Troi di golf miniature_golf: Minigolf + nature_reserve: Riserve naturâl park: Parc sports_centre: Centri sportîf + stadium: Stadi swimming_pool: Pissine natural: bay: Rade @@ -427,6 +436,7 @@ fur: supermarket: Supermarcjât toys: Negozi di zugatui tourism: + information: Informazions museum: Museu valley: Val viewpoint: Pont panoramic @@ -446,15 +456,13 @@ fur: donate: Sosten OpenStreetMap {{link}} al font pal inzornament dal hardware. donate_link_text: donant edit: Cambie - edit_tooltip: Modifiche mapis export: Espuarte export_tooltip: Espuarte i dâts de mape gps_traces: Percors GPS - gps_traces_tooltip: Gjestìs i percors + gps_traces_tooltip: Gjestìs i percors GPS help_wiki: Jutori & Vichi help_wiki_tooltip: Jutori & Vichi pal progjet history: Storic - history_tooltip: Storic dal grup di cambiaments home: lûc iniziâl home_tooltip: Va al lûc iniziâl inbox: "{{count}} in jentrade" @@ -489,13 +497,9 @@ fur: user_diaries: Diaris dai utents user_diaries_tooltip: Viôt i diaris dai utents view: Viôt - view_tooltip: Viôt lis mapis + view_tooltip: Viôt la mape welcome_user: Benvignût/de, {{user_link}} welcome_user_link_tooltip: La tô pagjine utent - map: - coordinates: "Coordenadis:" - edit: Cambie - view: Viôt message: delete: deleted: Messaç eliminât @@ -708,6 +712,7 @@ fur: visibility: "Visibilitât:" user: account: + current email address: "Direzion di pueste eletroniche atuâl:" email never displayed publicly: (mai mostrade in public) flash update success: Informazions dal utent inzornadis cun sucès. flash update success confirm needed: Informazions dal utent inzornadis cun sucès. Controle la tô pueste par confermâ la tô gnove direzion di pueste eletroniche. @@ -736,9 +741,6 @@ fur: button: Conferme press confirm button: Frache sul boton di conferme par confermâ la gnove direzion di pueste. success: Tu âs confermât la tô direzion di pueste, graziis par jessiti regjistrât - friend_map: - nearby mapper: "Mapadôr dongje: [[nearby_user]]" - your location: La tô posizion login: auth failure: Nus displâs, ma no si à rivât a jentrâ cun i dâts inserîts. create_account: cree un profîl @@ -747,7 +749,12 @@ fur: login_button: Jentre lost password link: Password pierdude? please login: Jentre o {{create_user_link}}. + remember: Visiti di me title: Jentre + logout: + heading: Va fûr di OpenStreetMap + logout_button: Jes + title: Jes lost_password: email address: "Direzion di pueste:" make_friend: @@ -767,6 +774,10 @@ fur: body: Nol esist un utent di non {{user}}. Controle par plasê la grafie o che tu vedis seguît il leam just. heading: L'utent {{user}} nol esist title: Utent no cjatât + popup: + friend: Amì + nearby mapper: Mapadôr dongje + your location: La tô posizion remove_friend: not_a_friend: "{{name}} nol è un dai tiei amîs." success: "{{name}} al è stât gjavât dai tiei amîs." @@ -774,21 +785,19 @@ fur: flash success: Lûc iniziâl salvât cun sucès view: add as friend: zonte ai amîs - add image: Zonte figure ago: ({{time_in_words_ago}} fa) block_history: viôt i blocs ricevûts blocks by me: blocs aplicâts di me blocks on me: blocs su di me - change your settings: cambie lis tôs impostazions confirm: Conferme create_block: bloche chest utent created from: "Creât di:" - delete image: Elimine figure description: Descrizion diary: diari edits: cambiaments email address: "Direzion di pueste:" hide_user: plate chest utent + if set location: Se tu impuestis la tô locazion, tu viodarâs culì une biele mape e altris informazions. Tu puedis impuestâ il to lûc iniziâl inte pagjine des {{settings_link}}. km away: a {{count}}km di distance m away: "{{count}}m di distance" mapper since: "Al mape dai:" @@ -797,17 +806,14 @@ fur: my edits: miei cambiaments my settings: mês impostazions my traces: percors personâi - nearby users: "Utents dongje:" + nearby users: Altris utents dongje new diary entry: gnove vôs dal diari no friends: No tu âs ancjemò nissun amì. - no home location: Nol è stât configurât un lûc iniziâl. no nearby users: Ancjemò nissun utent che al declare di mapâ dongje di te. remove as friend: gjave dai amîs send message: mande messaç settings_link_text: impostazions traces: percors - upload an image: Cjame une figure - user image heading: Figure dal utent user location: Lûc dal utent your friends: I tiei amîs user_block: diff --git a/config/locales/gcf.yml b/config/locales/gcf.yml index 5c0a9765c..cc62af43e 100644 --- a/config/locales/gcf.yml +++ b/config/locales/gcf.yml @@ -133,12 +133,6 @@ gcf: user_diaries: Jounal view: Vwè welcome_user: Bienvini, {{user_link}} - map: - coordinates: Sitiyasion - edit: Édité - view: Kat - notifier: - diary_comment_notification: site: edit: anon_edits_link_text: Ka y ni la. @@ -196,9 +190,6 @@ gcf: button: Konfirmé heading: Konfirmé chanjman a adres imél aw press confirm button: Apiyé asi bouton la ki an ba pou konfirmé nouvo adres imél aw. - friend_map: - nearby mapper: "Arpantè owa aw: [[nearby_user]]" - your location: Koté ou yé go_public: flash success: Tou sa ou fè jis alè ki lé piblik ou pa otorizé édité. login: @@ -229,13 +220,13 @@ gcf: signup: Enskriw no_such_user: body: Malérezman, pa ti ni pon itilisatè èvè non la sa {{user}}. Kontrolé lòtograf la ouben lien la ou kliké asiy la pa bon. + popup: + nearby mapper: Arpantè owa aw + your location: Koté ou yé set_home: flash success: La ou ka rété la bien anrèjistré view: add as friend: Ajouté on zanmi - add image: Ajouté on imaj - change your settings: Chanjé opsion aw - delete image: Woté on imaj description: Deskription diary: Jounal edits: Édision @@ -249,13 +240,10 @@ gcf: nearby users: "Itilizatè owa aw :" new diary entry: On dot nouvel an jounal la no friends: Ou poko ni pon zanmi - no home location: Pa ni pon koté défini. no nearby users: Ou poko ni itilizatè owa aw. remove as friend: Woté on zanmi send message: Voyé on mésaj settings_link_text: Opsion traces: Chimen - upload an image: Voyé on imaj - user image heading: Foto itilizatè user location: Ola itilizatè yé your friends: Kanmarad aw diff --git a/config/locales/gl.yml b/config/locales/gl.yml index 50fc165ab..5e75c380d 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -1,21 +1,99 @@ # Messages for Galician (Galego) # Exported from translatewiki.net # Export driver: syck +# Author: Gallaecio # Author: Toliño gl: activerecord: attributes: + diary_comment: + body: Corpo + diary_entry: + language: Lingua + latitude: Latitude + longitude: Lonxitude + title: Título + user: Usuario + friend: + friend: Amigo + user: Usuario + message: + body: Corpo + recipient: Destinatario + sender: Remitente + title: Título + trace: + description: Descrición + latitude: Latitude + longitude: Lonxitude + name: Nome + public: Público + size: Tamaño + user: Usuario + visible: Visible user: + active: Activo + description: Descrición + display_name: Nome mostrado + email: Correo electrónico + languages: Linguas pass_crypt: Contrasinal models: + changeset: Conxunto de cambios + changeset_tag: Etiqueta do conxunto de cambios + country: País + friend: Amigo + language: Lingua + message: Mensaxe node: Nodo + node_tag: Etiqueta do nodo + notifier: Notificador + relation: Relación + relation_tag: Etiqueta da relación + session: Sesión + user: Usuario + user_preference: Preferencia do usuario way: Camiño browse: + changeset: + changeset: "Conxunto de cambios: {{id}}" + changesetxml: Conxunto de cambios XML + download: Descargar {{changeset_xml_link}} ou {{osmchange_xml_link}} + feed: + title: Conxunto de cambios {{id}} + title_comment: Conxunto de cambios {{id}} - {{comment}} + osmchangexml: osmChange XML + title: Conxunto de cambios changeset_details: + belongs_to: "Pertence a:" + bounding_box: "Caixa de envoltura:" box: caixa + closed_at: "Pechouse o:" + created_at: "Creado o:" + has_nodes: + one: "Ten o seguinte {{count}} nodo:" + other: "Ten os seguintes {{count}} nodos:" + has_relations: + one: "Ten a seguinte relación:" + other: "Ten as seguintes {{count}} relacións:" + has_ways: + one: "Ten o seguinte camiño:" + other: "Ten os seguintes {{count}} camiños:" + no_bounding_box: Non se seleccionou ningunha caixa de envoltura para este conxunto de cambios. + show_area_box: Amosar a caixa de zona + changeset_navigation: + all: + next_tooltip: Seguinte conxunto de cambios + prev_tooltip: Conxunto de cambios anterior + user: + name_tooltip: Ver as edicións de {{user}} + next_tooltip: Seguinte edición de {{user}} + prev_tooltip: Edición anterior de {{user}} common_details: changeset_comment: "Comentario:" + edited_at: "Editado o:" edited_by: "Editado por:" + in_changeset: "No conxunto de cambios:" version: "Versión:" containing_relation: entry: Relación {{relation_name}} @@ -45,7 +123,7 @@ gl: node_history_title: "Historial do nodo: {{node_name}}" view_details: ver os detalles not_found: - sorry: Sentímolo, non se puido atopar o {{type}} co ID {{id}}. + sorry: Sentímolo, non se puido atopar o {{type}} co id {{id}}. type: changeset: conxunto de cambios node: nodo @@ -75,12 +153,20 @@ gl: node: Nodo relation: Relación way: Camiño + start: + manually_select: Escoller manualmente unha zona distinta + view_data: Ver os datos para a vista do mapa actual start_rjs: data_frame_title: Datos data_layer_name: Datos details: Detalles + drag_a_box: Arrastre unha caixa sobre o mapa para escoller unha zona + edited_by_user_at_timestamp: Editado por [[user]] o [[timestamp]] + history_for_feature: Historial de [[feature]] load_data: Cargar os datos + loaded_an_area_with_num_features: Cargou unha zona que contén [[num_features]] funcionalidades. Pode que algúns navegadores teñan problemas para amosar correctamente esta cantidade de datos. Xeralmente, os navegadores traballan mellor amosando menos de 100 funcionalidades á vez. Utilizar máis pode provocar que o navegador vaia lento ou non responda. Se está seguro de que quere amosar estes datos, pode facelo premendo no seguinte botón. loading: Cargando... + manually_select: Escoller manualmente unha zona distinta object_list: api: Obter esta área desde o API back: Mostrar a lista de obxectos @@ -97,10 +183,20 @@ gl: type: node: Nodo way: Camiño + private_user: usuario privado show_history: Mostrar o historial + unable_to_load_size: "Non se puido cargar: o tamaño [[bbox_size]] da caixa de envoltura é grande de máis (ten que ser menor de {{max_bbox_size}})" wait: Agarde... + zoom_or_select: Escolla unha zona do mapa ou achéguese a ela para vela tag_details: tags: "Etiquetas:" + timeout: + sorry: Tardouse demasiado en obter os datos para o {{type}} co id {{id}}. + type: + changeset: conxunto de cambios + node: nodo + relation: relación + way: camiño way: download: "{{download_xml_link}}, {{view_history_link}} ou {{edit_link}}" download_xml: Descargar en XML @@ -120,53 +216,477 @@ gl: view_details: ver os detalles way_history: Historial do camiño way_history_title: "Historial co camiño: {{way_name}}" + changeset: + changesets: + area: Zona + comment: Comentario + id: ID + saved_at: Gardado o + user: Usuario + list: + description: Cambios recentes + description_bbox: Conxuntos de cambios en {{bbox}} + description_user: Conxuntos de cambios por {{user}} + description_user_bbox: Conxuntos de cambios por {{user}} en {{bbox}} + heading: Conxuntos de cambios + heading_bbox: Conxuntos de cambios + heading_user: Conxuntos de cambios + heading_user_bbox: Conxuntos de cambios + title: Conxuntos de cambios + title_bbox: Conxuntos de cambios en {{bbox}} + title_user: Conxuntos de cambios por {{user}} + title_user_bbox: Conxuntos de cambios por {{user}} en {{bbox}} diary_entry: + diary_comment: + confirm: Confirmar + hide_link: Agochar este comentario + diary_entry: + comment_count: + one: 1 comentario + other: "{{count}} comentarios" + comment_link: Comentar esta entrada + confirm: Confirmar + edit_link: Editar esta entrada + hide_link: Agochar esta entrada edit: + body: "Corpo:" + language: "Lingua:" + latitude: "Latitude:" + location: "Localización:" + longitude: "Lonxitude:" save_button: Gardar + subject: "Asunto:" + location: + edit: Editar + location: "Localización:" + view: Ver view: save_button: Gardar + export: + start: + add_marker: Engadir un marcador ao mapa + area_to_export: Zona a exportar + export_button: Exportar + format: Formato + format_to_export: Formato de exportación + image_size: Tamaño da imaxe + latitude: "Lat:" + licence: Licenza + longitude: "Lon:" + mapnik_image: Imaxe de Mapnik + max: máx. + options: Opcións + osm_xml_data: Datos XML do OpenStreetMap + scale: Escala + too_large: + body: Esta zona é grande de máis para ser exportada como datos XML do OpenStreetMap. Amplíe a zona ou escolla unha menor. + heading: Zona demasiado grande + zoom: Zoom + start_rjs: + add_marker: Engadir un marcador ao mapa + change_marker: Cambiar a posición do marcador + click_add_marker: Prema sobre o mapa para engadir un marcador + drag_a_box: Arrastre unha caixa sobre o mapa para escoller unha zona + export: Exportar + manually_select: Escoller manualmente unha zona distinta + view_larger_map: Ver un mapa máis grande geocoder: description: title: geonames: Localización desde GeoNames osm_namefinder: "{{types}} desde OpenStreetMap Namefinder" + osm_nominatim: Localización desde OpenStreetMap Nominatim + types: + cities: Cidades + places: Lugares + towns: Municipios + description_osm_namefinder: + prefix: "{{distance}} ao {{direction}} de {{type}}" + direction: + east: leste + north: norte + north_east: nordés + north_west: noroeste + south: sur + south_east: sueste + south_west: suroeste + west: oeste + distance: + one: arredor de 1km + other: arredor de {{count}}km + zero: menos de 1km + results: + more_results: Máis resultados + no_results: Non se atopou ningún resultado search: title: ca_postcode: Resultados desde Geocoder.CA geonames: Resultados desde GeoNames latlon: Resultados internos osm_namefinder: Resultados desde OpenStreetMap Namefinder + osm_nominatim: Resultados desde OpenStreetMap Nominatim uk_postcode: Resultados desde NPEMap / FreeThe Postcode us_postcode: Resultados desde Geocoder.us + search_osm_namefinder: + suffix_parent: "{{suffix}} ({{parentdistance}} {{parentdirection}} de {{parentname}})" + suffix_place: ", {{distance}} ao {{direction}} de {{placename}}" + search_osm_nominatim: + prefix: + highway: + emergency_access_point: Punto de acceso de emerxencia + footway: Carreiro + motorway_junction: Cruce de autovías + primary_link: Estrada principal + secondary_link: Estrada secundaria + leisure: + beach_resort: Balneario + common: Terreo común + fishing: Área de pesca + garden: Xardín + golf_course: Campo de golf + ice_rink: Pista de patinaxe sobre xeo + marina: Porto deportivo + miniature_golf: Minigolf + nature_reserve: Reserva natural + park: Parque + pitch: Cancha deportiva + playground: Patio de recreo + recreation_ground: Área recreativa + slipway: Varadoiro + sports_centre: Centro deportivo + stadium: Estadio + swimming_pool: Piscina + track: Pista de carreiras + water_park: Parque acuático + natural: + bay: Baía + beach: Praia + cape: Cabo + cave_entrance: Entrada de cova + channel: Canal + cliff: Cantil + coastline: Litoral + crater: Cráter + feature: Elemento + fell: Brañal + fjord: Fiorde + glacier: Glaciar + hill: Outeiro + island: Illa + land: Terra + marsh: Marisma + moor: Páramo + mud: Lama + peak: Pico + point: Punto + reef: Arrecife + river: Río + rock: Rocha + scree: Pedregal + shoal: Cardume + spring: Primavera + strait: Estreito + tree: Árbore + valley: Val + volcano: Volcán + water: Auga + wetland: Pantano + wetlands: Pantano + wood: Bosque + place: + airport: Aeroporto + city: Cidade + country: País + county: Condado + farm: Granxa + hamlet: Aldea + house: Casa + houses: Casas + island: Illa + islet: Illote + locality: Localidade + moor: Páramo + municipality: Municipio + postcode: Código postal + region: Rexión + sea: Mar + state: Estado/Provincia + subdivision: Subdivisión + suburb: Barrio + town: Cidade + unincorporated_area: Área non incorporada + village: Vila + tourism: + alpine_hut: Cabana alpina + artwork: Obra de arte + attraction: Atracción + bed_and_breakfast: Cama e almorzo + cabin: Cabana + camp_site: Campamento + caravan_site: Sitio de caravanas + chalet: Chalé + guest_house: Albergue + hostel: Hostal + hotel: Hotel + information: Información + lean_to: Caseta + motel: Motel + museum: Museo + picnic_site: Sitio de pícnic + theme_park: Parque temático + valley: Val + viewpoint: Miradoiro + zoo: Zoolóxico layouts: edit: Editar - map: - coordinates: "Coordenadas:" - edit: Editar + export: Exportar + export_tooltip: Exportar os datos do mapa + history: Historial + intro_3_partners: wiki + make_a_donation: + text: Facer unha doazón + news_blog: Blogue de novas + sign_up_tooltip: Crear unha conta para editar + view: Ver + view_tooltip: Ver o mapa message: + inbox: + date: Data + subject: Asunto message_summary: delete_button: Borrar + read_button: Marcar como lido + reply_button: Responder + unread_button: Marcar como non lido + new: + body: Corpo + subject: Asunto + outbox: + date: Data + subject: Asunto + read: + date: Data + reply_button: Responder + subject: Asunto sent_message_summary: delete_button: Borrar + notifier: + email_confirm: + subject: "[OpenStreetMap] Confirme o seu enderezo de correo electrónico" oauth_clients: edit: submit: Editar + title: Editar a súa aplicación + index: + application: Nome da aplicación + register_new: Rexistrar a súa aplicación + time: + formats: + friendly: "%e %B %Y ás %H:%M" trace: edit: + description: "Descrición:" + download: descargar edit: editar + filename: "Nome do ficheiro:" + map: mapa + owner: "Propietario:" + points: "Puntos:" save_button: Gardar os cambios + start_coord: "Coordenada de inicio:" + tags: "Etiquetas:" + tags_help: separadas por comas + uploaded_at: "Cargado o:" + visibility: "Visibilidade:" + visibility_help: que significa isto? + no_such_user: + title: Non existe tal usuario trace: + ago: hai {{time_in_words_ago}} + by: por + count_points: "{{count}} puntos" edit: editar + edit_map: Editar o mapa + identifiable: IDENTIFICABLE + in: en + map: mapa + more: máis + pending: PENDENTE + private: PRIVADO + public: PÚBLICO + view_map: Ver o mapa + trace_form: + description: Descrición + help: Axuda + tags: Etiquetas + tags_help: separadas por comas + upload_button: Cargar + visibility: Visibilidade + visibility_help: que significa isto? + trace_optionals: + tags: Etiquetas + trace_paging_nav: + next: Seguinte » + previous: "« Anterior" view: + description: "Descrición:" + download: descargar edit: editar + filename: "Nome do ficheiro:" + map: mapa + none: Ningún + owner: "Propietario:" + pending: PENDENTE + points: "Puntos:" + start_coordinates: "Coordenada de inicio:" + tags: "Etiquetas:" + uploaded: "Cargado o:" + visibility: "Visibilidade:" user: account: + current email address: "Enderezo de correo electrónico actual:" + delete image: Eliminar a imaxe actual + email never displayed publicly: (nunca mostrado publicamente) + flash update success: Información de usuario actualizada correctamente. + flash update success confirm needed: Información de usuario actualizada correctamente. Busque no seu correo electrónico unha mensaxe para confirmar o seu novo enderezo. + home location: "Lugar de orixe:" + image: "Imaxe:" + keep image: Manter a imaxe actual + latitude: "Latitude:" + longitude: "Lonxitude:" + make edits public button: Facer públicas todas as miñas edicións + my settings: Os meus axustes + new email address: "Novo enderezo de correo electrónico:" + new image: Engadir unha imaxe + preferred languages: "Linguas preferidas:" + profile description: "Descrición do perfil:" + public editing: + disabled link text: por que non podo editar? + enabled link: http://wiki.openstreetmap.org/wiki/Anonymous_edits + enabled link text: que é isto? + heading: "Edición pública:" + public editing note: + heading: Edición pública + replace image: Substituír a imaxe actual + return to profile: Voltar ao perfil save changes button: Gardar os cambios + title: Editar a conta + update home location on click: Quere actualizar o domicilio ao premer sobre o mapa? + confirm: + button: Confirmar + failure: Xa se confirmou unha conta de usuario con este pase. + heading: Confirmar unha conta de usuario + press confirm button: Prema sobre o botón de confirmación que aparece a continuación para activar a súa conta. + success: Confirmouse a súa conta. Grazas por se rexistrar! + confirm_email: + button: Confirmar + failure: Xa se confirmou un enderezo de correo electrónico con este pase. + heading: Confirmar o cambio do enderezo de correo electrónico + press confirm button: Prema sobre o botón de confirmación que aparece a continuación para confirmar o seu novo enderezo de correo electrónico. + success: Confirmouse o seu enderezo de correo electrónico. Grazas por se rexistrar! + filter: + not_an_administrator: Ten que ser administrador para poder levar a cabo esta acción. login: + create_account: cree unha conta + email or username: "Enderezo de correo electrónico ou nome de usuario:" + lost password link: Perdeu o seu contrasinal? password: "Contrasinal:" + please login: Identifíquese ou {{create_user_link}}. + remember: "Lembrádeme:" + lost_password: + email address: "Enderezo de correo electrónico:" + heading: Esqueceu o contrasinal? + new password button: Restablecer o contrasinal + notice email cannot find: Non se puido atopar o enderezo de correo electrónico. + notice email on way: Por desgraza perdeuno, pero hai en camiño unha mensaxe de correo electrónico coa que o poderá restablecer axiña. + title: Contrasinal perdido + make_friend: + already_a_friend: Xa é amigo de {{name}}. + failed: Houbo un erro ao engadir a {{name}} como amigo. + success: "{{name}} xa é o seu amigo." new: + confirm email address: Confirmar o enderezo de correo electrónico + confirm password: "Confirmar o contrasinal:" + display name: "Nome mostrado:" + display name description: O seu nome de usuario mostrado publicamente. Pode cambialo máis tarde nas preferencias. + email address: "Enderezo de correo electrónico:" + fill_form: Encha o formulario e axiña recibirá un correo electrónico coas instrucións para activar a súa conta. + heading: Crear unha conta de usuario + no_auto_account_create: Por desgraza, arestora non podemos crear automaticamente unha conta para vostede. password: "Contrasinal:" + title: Crear unha conta + no_such_user: + body: Non existe ningún usuario co nome "{{user}}". Comprobe a ortografía ou que a ligazón que seguiu estea ben. + heading: O usuario {{user}} non existe + title: Non existe tal usuario + popup: + friend: Amigo + your location: A súa localización + remove_friend: + not_a_friend: "{{name}} non é un dos seus amigos." + success: "{{name}} foi eliminado dos seus amigos." reset_password: + confirm password: "Confirmar o contrasinal:" + flash changed: Cambiouse o seu contrasinal. + flash token bad: Non se atopou o pase. Quizais debería comprobar o enderezo URL. + heading: Restablecer o contrasinal de {{user}} password: "Contrasinal:" + reset: Restablecer o contrasinal + title: Restablecer o contrasinal + set_home: + flash success: Gardouse o domicilio view: + activate_user: activar este usuario + add as friend: engadir como amigo + ago: (hai {{time_in_words_ago}}) + block_history: ver os bloqueos recibidos + confirm: Confirmar + create_block: bloquear este usuario + created from: "Creado a partir de:" + deactivate_user: desactivar este usuario + delete_user: borrar este usuario + description: Descrición edits: edicións + email address: "Enderezo de correo electrónico:" + hide_user: agochar este usuario + if set location: Se define a súa localización, aquí aparecerá un mapa. Pode establecer o seu lugar de orixe na súa páxina de {{settings_link}}. + km away: a {{count}}km de distancia + m away: a {{count}}m de distancia + moderator_history: ver os bloqueos dados + my edits: as miñas edicións + my settings: os meus axustes + no friends: Aínda non engadiu ningún amigo. + oauth settings: axustes OAuth + remove as friend: eliminar como amigo + role: + administrator: Este usuario é administrador + grant: + administrator: Conceder o acceso de administrador + moderator: Conceder o acceso de moderador + moderator: Este usuario é moderador + revoke: + administrator: Revogar o acceso de administrador + moderator: Revogar o acceso de moderador + send message: enviar unha mensaxe + settings_link_text: axustes + unhide_user: descubrir este usuario + user location: Localización do usuario + your friends: Os seus amigos + user_role: + filter: + already_has_role: O usuario xa ten o rol {{role}}. + doesnt_have_role: O usuario non ten o rol {{role}}. + not_a_role: A cadea "{{role}}" non é un rol correcto. + not_an_administrator: Só os administradores poden xestionar os roles dos usuarios, e vostede non é administrador. + grant: + are_you_sure: Seguro que quere concederlle o rol "{{role}}" ao usuario "{{name}}"? + confirm: Confirmar + fail: Non se lle puido conceder o rol "{{role}}" ao usuario "{{name}}". Comprobe que tanto o usuario coma o rol son correctos. + heading: Confirmar a concesión do rol + title: Confirmar a concesión do rol + revoke: + are_you_sure: Seguro que quere revogarlle o rol "{{role}}" ao usuario "{{name}}"? + confirm: Confirmar + fail: Non se lle puido revogar o rol "{{role}}" ao usuario "{{name}}". Comprobe que tanto o usuario coma o rol son correctos. + heading: Confirmar a revogación do rol + title: Confirmar a revogación do rol diff --git a/config/locales/gsw.yml b/config/locales/gsw.yml index 7baca62da..839e56cc5 100644 --- a/config/locales/gsw.yml +++ b/config/locales/gsw.yml @@ -162,6 +162,8 @@ gsw: create: trace_uploaded: Dyy GPX-Datei isch uffeglade wore un wartet uf d Ufnahm in d Datebank. Des gschiht normalerwyys innerhalb vun ere halbe Stund, derno wird Dir e Bstetigungs-E-Mail gschickt. upload_trace: E GPS-Track uffelade + delete: + scheduled_for_deletion: Track, wu zum Lesche vorgsäh isch edit: description: "Bschryybig:" download: abelade @@ -179,14 +181,111 @@ gsw: uploaded_at: "Uffegladen am:" visibility: "Sichtbarkeit:" visibility_help: Was heißt des? + list: + public_traces: Effetligi GPS-Track + public_traces_from: Effetligi GPS-Track vu {{user}} + tagged_with: Gchännzeichnet mit {{tags}} + your_traces: Dyy GPS-Track + make_public: + made_public: Track, wu vereffetligt isch + no_such_user: + body: Äxgisi, s git kei Benutzer mit em Name {{user}}. Bitte iberprief Dyy Schryybwyys, oder villicht isch s Gleich, wu Du nogange bisch, falsch. + heading: Dr Benutzer {{user}} git s nit + title: Benutzer nit gfunde trace: + ago: "{{time_in_words_ago}} här" + by: vu count_points: "{{count}} Pinkt" + edit: bearbeite edit_map: Charte bearbeite + in: in + map: Charte + more: meh pending: HÄNGIG private: PRIVAT + public: EFFETLI + trace_details: Track-Einzelheite aaluege view_map: Charten aazeige + trace_form: + description: Bschryybig + help: Hilf + tags: Markierige + tags_help: Trännig dur Komma + upload_button: Uffelade + upload_gpx: GPX-Datei uffelade + visibility: Sichtbarkeit + visibility_help: Was heißt des? trace_header: see_all_traces: Alli Tracks aaluege see_just_your_traces: Eigeni GPS-Tracks aazeige oder neji uffelade see_your_traces: Eigeni GPS-Tracks aazeige traces_waiting: "{{count}} vu Dyyne Tracks sin zur Zyt in dr Warteschlang. Bitte wart, bis die fertig sin go d Verarbeitig nit fir anderi Nutzer blockiere." + trace_optionals: + tags: Markierige + view: + delete_track: Dää Track lesche + description: "Bschryybig:" + download: abelade + edit: bearbeite + edit_track: Dää Track bearbeite + filename: "Dateiname:" + heading: Am Bschaue vum Track {{name}} + map: Charte + none: Keini + owner: "Bsitzer:" + pending: HÄNGIG + points: "Pinkt:" + start_coordinates: "Startkoordinate:" + tags: "Markierige:" + title: Am Aaluege vum Track {{name}} + trace_not_found: Track nit gfunde! + uploaded: "Uffegladen am:" + visibility: "Sichtbarkeit:" + visibility: + identifiable: Identifizierbar (wird in dr Tracklischt as anonymi, sortierti Punktfolg mit Zytstämpfel aazeigt) + private: Privat (nume as anonymi, nit sortierti Pinkt ohni Zytstämpfel aazeigt) + public: Effentlig (wird in dr Tracklischt aazeigt, aber numen as anonymi, nit sortierti Punktfolg ohni Zytstämpfel) + trackable: Track (wird in dr Tracklischt as anonymi, sortierti Punktfolg mit Zytstämpfel aazeigt) + user: + confirm_email: + button: Bstetige + failure: E E-Mail-Adräss isch scho mit däm Gleich bstetigt wore. + heading: Änderig vu dr E-Mail-Adräss bstetige + press confirm button: Druck unte uf dr „Bstetige“-Chnopf go Dyy nej E-Mail-Adräss bstetige. + success: Dyy E-Mail-Adräss isch bstetigt wore, dankschen fir s Regischtriere! + filter: + not_an_administrator: Du muesch e Administrator syy go die Aktion uusfiere. + go_public: + flash success: Alli Dyyni Bearbeitige sion jetz effetlig, un Du derfsch jetz Bearbeitige mache. + make_friend: + already_a_friend: Du bisch scho ne Frynd vu {{name}}. + failed: Excusez, {{name}} het nit as Frynd chenne zuegfiegt wäre. + success: "{{name}} isch jetz Dyy Frynd." + popup: + nearby mapper: Mapper in dr Nechi + your location: Dyy Standort + reset_password: + confirm password: "Passwort bstetige:" + flash changed: Dyy Passwort isch gänderet wore. + flash token bad: Mir hän des Chirzel leider nit chenne finde. Iberprief d URL. + heading: Passwort fir {{user}} zrucksetze + reset: Passwort zrucksetze + title: Passwort zrucksetze + user_role: + filter: + already_has_role: Dr Nutzer ghert scho zue dr Rolle {{role}}. + doesnt_have_role: Dr Nutzer het kei Roll {{role}}. + not_a_role: D Zeichechette „{{role}}“ bezeichnet kei giltigi Rolle. + not_an_administrator: Benutzerrolle chenne nume vu Adminischtratore verwaltet wäre, un Du bisch kei Adminischtrator. + grant: + are_you_sure: Bisch sicher, ass Du dr Benutzer „{{name}}“ dr Rolle „{{role}}“ witt zueordne? + confirm: Bstetige + fail: Dr Benutzer „{{name}}“ het dr Rolle „{{role}}“ nit chenne zuegordnet wären. Bitte iberprief, eb s sich um e giltige Benutzer un e giltigi Rolle handlet. + heading: Rollezueornig bstetige + title: Rollezueornig bstetige + revoke: + are_you_sure: Bisch sicher, ass Du d Zueornig vum Benutzer „{{name}}“ zue dr Rolle „{{role}}“ witt ufhebe? + confirm: Bstetige + fail: Het d Zueornig vum Benutzer „{{name}}“ zue dr Rolle „{{role}}“ nit chenne ufhebe. Bitte iberprief, eb s sich um e giltige Benutzer un e giltigi Rolle handlet. + heading: D Ufhebig vu dr Rollezueornig bstetige + title: Ufhebig vu dr Rollezueornig bstetige diff --git a/config/locales/he.yml b/config/locales/he.yml index 76f953b5a..d098292ac 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -205,7 +205,6 @@ he: zero: פחות מקילומטר layouts: edit: עריכה - edit_tooltip: עריכת מפות export: יצוא export_tooltip: ייצוא נתוני המפה gps_traces_tooltip: ניהול מסלולים @@ -235,9 +234,6 @@ he: view_tooltip: צפייה במפות welcome_user: "{{user_link}}ברוך הבא" welcome_user_link_tooltip: דף המשתמש שלך - map: - edit: עריכה - view: תצוגה message: delete: deleted: ההודעה נמחקה @@ -340,8 +336,6 @@ he: save changes button: שמירת השינויים confirm: heading: אימות חשבון משתמש - friend_map: - your location: מיקומך login: create_account: יצירת חשבון login_button: כניסה @@ -359,6 +353,8 @@ he: no_such_user: heading: המשתמש {{user}} אינו קיים title: אין משתמש כזה + popup: + your location: מיקומך reset_password: confirm password: "אימות הסיסמה:" flash changed: סיסמתך השתנתה. @@ -367,23 +363,17 @@ he: reset: איפוס הסיסמה title: reset password view: - add image: הוספת תמונה ago: (לפני {{time_in_words_ago}}) - change your settings: שינוי ההגדרות שלך - delete image: מחיקת תמונה description: תאור edits: עריכות km away: במרחק {{count}} ×§"מ m away: במרחק {{count}} מ' my diary: היומן שלי my edits: העריכות שלי - my_oauth_details: צפייה בפרטי ה־OAuth שלי new diary entry: רשומה חדשה ביומן no friends: לא הוספת חברים כלל עדיין. remove as friend: הסרה כחבר send message: שליחת הודעה settings_link_text: הגדרות traces: מסלולים - upload an image: העלאת תמונה - user image heading: תמונת המשתמש your friends: החברים שלך diff --git a/config/locales/hi.yml b/config/locales/hi.yml index c6c3ee2a6..18c816efc 100644 --- a/config/locales/hi.yml +++ b/config/locales/hi.yml @@ -97,7 +97,7 @@ hi: node_history_title: "नोड इतिहास: {{node_name}}" view_details: विवरण देखें not_found: - sorry: क्षमा करें, ये {{type}} इस आईडी {{id}} के साथ, पाया नहीं जा सका + sorry: क्षमा करें, ये {{type}} इस आईडी {{id }} के साथ, पाया नहीं जा सका type: node: आसंधि relation: संबंध @@ -174,6 +174,8 @@ hi: no_edits: (कोई संपादित नहीं है) still_editing: (संपादित किया जा रहा है) view_changeset_details: इस changeset के विवरण देखे + changeset_paging_nav: + showing_page: "इस पृष्ठ का प्रदर्शन:" changesets: area: क्षेत्र comment: टिप्पणी @@ -239,7 +241,6 @@ hi: other: करीब {{count}} किमी zero: 1 किमी से कम layouts: - edit_tooltip: नक्शा संपादन home: गृह inbox_tooltip: other: आपके इनबॉक्स में {{count}} अपठित संदेश हैं @@ -247,10 +248,6 @@ hi: sign_up_tooltip: संपादन के लिए खाता बनाएं view_tooltip: नक्शा देखें welcome_user_link_tooltip: आपका प्रयोक्ता पन्ना - map: - coordinates: "निर्देशांक:" - edit: संपादित करें - view: दृश्य message: delete: deleted: संदेश खात्मा diff --git a/config/locales/hr.yml b/config/locales/hr.yml index 1ac24f195..341b96980 100644 --- a/config/locales/hr.yml +++ b/config/locales/hr.yml @@ -857,7 +857,6 @@ hr: donate: Podržite OpenStreetMap sa {{link}} Hardware Upgrade Fond. donate_link_text: donacije edit: Uredi - edit_tooltip: Uredi kartu export: Izvoz export_tooltip: Izvoz podataka karte gps_traces: GPS trase @@ -866,7 +865,6 @@ hr: help_wiki_tooltip: Pomoć & Wiki-site za projekt help_wiki_url: http://wiki.openstreetmap.org/wiki/Hr:Main_Page?uselang=hr history: Povijest - history_tooltip: Povijest seta promjena home: dom home_tooltip: Idi na lokaciju svog doma inbox: poÅ¡ta ({{count}}) @@ -904,10 +902,6 @@ hr: view_tooltip: Prikaži kartu welcome_user: DobrodoÅ¡li, {{user_link}} welcome_user_link_tooltip: Tvoja korisnička stranica - map: - coordinates: "Koordinate:" - edit: Uredi - view: Karta message: delete: deleted: Poruka obrisana @@ -1353,9 +1347,6 @@ hr: success: Potvrđena je vaÅ¡a email adresa, hvala za priključenje! filter: not_an_administrator: Morate biti administrator za izvođenje ovih akcija. - friend_map: - nearby mapper: "Obližnji maper: [[nearby_user]]" - your location: VaÅ¡a lokacija go_public: flash success: Sve vaÅ¡e promjene su sada javne i sada vam je dozvoljeno uređivanje. login: @@ -1401,6 +1392,9 @@ hr: body: Žao mi je, ne postoji korisnik s imenom {{user}}. Molim provjerite ukucano ili je link na koji ste kliknuli neispravan. heading: Korisnik {{user}} ne postoji title: Nema takvog korisnika + popup: + nearby mapper: Obližnji maper + your location: VaÅ¡a lokacija remove_friend: not_a_friend: "{{name}} nije tvoj prijatelj." success: "{{name}} je izbačen iz prijatelja." @@ -1417,17 +1411,14 @@ hr: view: activate_user: aktiviraj ovog korisnika add as friend: dodaj kao prijatelja - add image: Dodaj sliku ago: prije ({{time_in_words_ago}}) block_history: prikaži dobivene blokade blocks by me: blokade koje sam postavio blocks on me: blokade na mene - change your settings: promjeni svoje postavke confirm: Potvrdi create_block: blokiraj ovog korisnika created from: "Napravljeno iz:" deactivate_user: deaktiviraj ovog korisnika - delete image: IzbriÅ¡i sliku delete_user: obriÅ¡i ovog korisnika description: Opis diary: dnevnik @@ -1443,11 +1434,9 @@ hr: my edits: moje promjene my settings: moje postavke my traces: moje trase - my_oauth_details: Prikaži moje OAuth detalje nearby users: "Okolni korisnici:" new diary entry: novi unos u dnevnik no friends: Nisi dodao niti jednog prijatelja. - no home location: Nije postavljena lokacija doma no nearby users: Nema okolnih korisnika koji mapiraju. remove as friend: ukloni kao prijatelja role: @@ -1463,8 +1452,6 @@ hr: settings_link_text: postavke traces: trase unhide_user: otkrij ovog korisnika - upload an image: Postavite sliku - user image heading: Slika korisnika user location: Lokacija boraviÅ¡ta korisnika your friends: Tvoji prijatelji user_block: diff --git a/config/locales/hsb.yml b/config/locales/hsb.yml index dc4e463b5..aecff5f91 100644 --- a/config/locales/hsb.yml +++ b/config/locales/hsb.yml @@ -326,6 +326,10 @@ hsb: recent_entries: "NajnowÅ¡e dźenikowe zapiski:" title: Dźeniki wužiwarjow user_title: dźenik wužiwarja {{user}} + location: + edit: Wobdźěłać + location: "Městno:" + view: Pokazać new: title: Nowy dźenikowy zapisk no_such_entry: @@ -341,7 +345,7 @@ hsb: login: Přizjew so login_to_leave_a_comment: "{{login_link}}, zo by komentar spisał" save_button: Składować - title: Dźeniki wužiwarja | {{user}} + title: Dźenik {{user}} | {{title}} user_title: dźenik wužiwarja {{user}} export: start: @@ -365,6 +369,9 @@ hsb: output: Wudaće paste_html: HTML-kod kopěrować, zo by so do websydła zasunył scale: Měritko + too_large: + body: Tutón wobłuk je přewulki za eksportowanje jako XML-daty OpenStreetMap. ProÅ¡u powjetÅ¡ abo wubjer mjeńši wobłuk. + heading: Wobłuk přewulki zoom: Skalowanje start_rjs: add_marker: Karće marku přidać @@ -856,21 +863,23 @@ hsb: cycle_map: Kolesowa karta noname: ŽaneMjeno site: + edit_disabled_tooltip: Za wobdźěłowanje karty powjetÅ¡ić + edit_tooltip: Kartu wobdźěłać edit_zoom_alert: DyrbiÅ¡ powjetÅ¡ić, zo by kartu wobdźěłał + history_disabled_tooltip: Za zwobraznjenje změnow za tutón wobłuk powjetÅ¡ić + history_tooltip: Změny za tutón wobłuk pokazać history_zoom_alert: DyrbiÅ¡ powjetÅ¡ić, zo by wobdźěłowansku historiju widźał layouts: donate: Podpěraj OpenStreetMap přez {{link}} k fondsej aktualizacije hardwary. donate_link_text: Darjenje edit: Wobdźěłać - edit_tooltip: Karty wobdźěłać export: Eksport export_tooltip: Kartowe daty eksportować gps_traces: GPS-ćěrje - gps_traces_tooltip: Ćěrje zrjadować + gps_traces_tooltip: GPS-ćěrje zrjadować help_wiki: Pomoc & wiki help_wiki_tooltip: Sydło Pomoc & wiki za projekt history: Historija - history_tooltip: Historija sadźbow změnow home: domoj home_tooltip: Domoj hić inbox: póst ({{count}}) @@ -882,7 +891,8 @@ hsb: zero: Twój póstowy kašćik žane njepřečitane powěsće njewobsahuje. intro_1: OpenStreetMap je swobodna wobdźěłujomna karta cyłeho swěta. Bu za ludźi kaž wy wutworjena. intro_2: OpenStreetMap ći dowola geografiske daty na zhromadne waÅ¡nje wot něhdźe na zemi pokazać, wobdźěłać a wužiwać. - intro_3: Hospodowanje OpenStreetMap so přećelnje wot {{ucl}} a {{bytemark}} podpěruje. + intro_3: Hospodowanje OpenStreetMap so přećelnje wot {{ucl}} a {{bytemark}} podpěruje. Druzy podpěraćeljo projekta su we {{partners}} nalistowani. + intro_3_partners: wiki license: alt: CC by-sa 2.0 title: Daty OpenStreetMap licencuja so pod licencu Creative Commons Attribution-Share Alike 2.0 Generic @@ -908,13 +918,9 @@ hsb: user_diaries: Dźeniki user_diaries_tooltip: Wužiwarske dźeniki čitać view: Karta - view_tooltip: Karty pokazać + view_tooltip: Kartu pokazać welcome_user: Witaj, {{user_link}} welcome_user_link_tooltip: Twoja wužiwarska strona - map: - coordinates: "Koordinaty:" - edit: Wobdźěłać - view: Karta message: delete: deleted: Powěsć zničena @@ -945,10 +951,14 @@ hsb: send_message_to: Wužiwarjej {{name}} nowu powěsć pósłać subject: Temowe nadpismo title: Powěsć pósłać + no_such_message: + body: Bohužel powěsć z tutym ID njeje. + heading: Powěsć njeeksistuje + title: Powěsć njeeksistuje no_such_user: - body: Bohužel wužiwar abo powěsć z tym mjenom resp. id njeje - heading: Wužiwar abo powěsć njeeksistuje - title: Wužiwar abo powěsć njeeksistuje + body: Bohužel wužiwar z tym mjenom njeeksistuje. + heading: Wužiwar njeeksistuje + title: Wužiwar njeeksistuje outbox: date: Datum inbox: póstowy kašćik @@ -972,6 +982,9 @@ hsb: title: Powěsć čitać to: Komu unread_button: Jako njepřečitany markěrować + wrong_user: Sy jako `{{user}}' přizjewjeny, ale powěsć, kotruž chcyÅ¡e čitać, njebu na toho wužiwarja pósłana. ProÅ¡u přizjew so jako korektny wužiwar, zo by čitał. + reply: + wrong_user: Sy jako `{{user}}' přizjewjeny, ale powěsć, na kotruž chcyÅ¡e wotmołwić, njebu na toho wužiwarja pósłana. ProÅ¡u přizjew so jako korektny wužiwar, zo by wotmołwił. sent_message_summary: delete_button: Zničić notifier: @@ -992,8 +1005,9 @@ hsb: hopefully_you_1: Něchtó (najskerje ty) chce swoju e-mejlowu adresu hopefully_you_2: na {{server_url}} do {{new_address}} změnić. friend_notification: + befriend_them: MóžeÅ¡ jich na {{befriendurl}} jako přećelow přidać. had_added_you: "{{user}} je će na OpenStreetMap jako přećela přidał." - see_their_profile: MóžeÅ¡ sej jich profil na {{userurl}} wobhladać a přidaj jich jako přećelow, jeli to chceÅ¡. + see_their_profile: MóžeÅ¡ jeho abo jeje profil na {{userurl}} widźeć. subject: "[OpenStreetMap] {{user}} je će jako přećela přidał" gpx_notification: and_no_tags: a žane atributy. @@ -1219,6 +1233,9 @@ hsb: sidebar: close: Začinić search_results: Pytanske wuslědki + time: + formats: + friendly: "%e %B %Y %H:%M" trace: create: trace_uploaded: Twoja GPX-dataja je so nahrała a čaka na zasunjenje do datoweje banki. To so zwjetÅ¡a za poł hodźiny stawa a po dokónčenju budźe so ći e-mejl słać. @@ -1320,14 +1337,21 @@ hsb: trackable: Čarujomny (jenož jako anonymny dźěleny, zrjadowane dypki z časowymi kołkami) user: account: + current email address: "Aktualna e-mejlowa adresa:" + delete image: Aktualny wobraz wotstronić email never displayed publicly: (njeje ženje zjawnje widźomna) flash update success: Wužiwarske informacije wuspěšnje zaktualizowane. flash update success confirm needed: Wužiwarske informacije wuspěšnje zaktualizowane. DóstanjeÅ¡ e-mejl z namołwu, swoju nowu e-mejlowu adresu wobkrućić. home location: "Domjace stejnišćo:" + image: "Wobraz:" + image size hint: (kwadratiske wobrazy z wulkosću wot znajmjeńša 100x100 najlěpje funguja) + keep image: Aktualny wobraz wobchować latitude: "Šěrokostnik:" longitude: "Dołhostnik:" make edits public button: Wšě moje změny zjawne činić my settings: Moje nastajenja + new email address: "Nowa e-mejlowa adresa:" + new image: Wobraz přidać no home location: Njejsy swoje domjace stejnišćo zapodał. preferred languages: "Preferowane rěče:" profile description: "Profilowe wopisanje:" @@ -1341,6 +1365,7 @@ hsb: public editing note: heading: Zjawne wobdźěłowanje text: Tuchwilu twoje změny su anonymne a ludźo njemóžeja ći powěsće pósłać abo twoje stejnišćo widźeć. Zo by pokazał, Å¡tož sy wobdźěłał a ludźom dowolił, so z tobu přez websydło do zwiska stajić, klikń deleka na tłóčatko. Wot přeńdźenja do API 0.6, jenož zjawni wužiwarjo móžeja kartowe daty wobdźěłać. (hlej přičiny).
  • Twoja e-mejlowa adresa njebudźe so zjawnej pokazać.
  • Tuta akcija njeda so wobroćić a wÅ¡itcy nowi wužiwarjo su nětko po standardźe zjawni.
+ replace image: Aktualny wobraz narunać return to profile: Wróćo k profilej save changes button: Změny składować title: Konto wobdźěłać @@ -1359,9 +1384,6 @@ hsb: success: Twoja e-mejlowa adresa bu wobkrućena, dźakujemy so za registrowanje! filter: not_an_administrator: Dyrbiš administrator być, zo by tutu akciju wuwjedł. - friend_map: - nearby mapper: "Kartěrowar w bliskosći: [[nearby_user]]" - your location: Twoje městno go_public: flash success: Wšě twoje změny su nětko zjawne, a směš nětko wobdźěłać. login: @@ -1374,7 +1396,12 @@ hsb: lost password link: Swoje hesło zabył? password: "Hesło:" please login: Prošu přizjew so abo {{create_user_link}}. + remember: "Spomjatkować sej:" title: Přizjewjenje + logout: + heading: Z OpenStreetMap wotzjewić + logout_button: Wotzjewić + title: Wotzjewić lost_password: email address: "E-mejlowa adresa:" heading: Sy hesło zabył? @@ -1407,6 +1434,10 @@ hsb: body: Bohužel žadyn wužiwar z mjenom {{user}} njeje. Prošu skontroluj prawopis, abo wotkaz, na kotryž sy kliknył, je njepłaćiwy. heading: Wužiwar {{user}} njeeksistuje title: Wužiwar njeeksistuje + popup: + friend: Přećel + nearby mapper: Kartěrowar w bliskosći + your location: Twoje městno remove_friend: not_a_friend: "{{name}} twój přećel njeje." success: "{{name}} je so jako přećel wotstronił." @@ -1423,17 +1454,14 @@ hsb: view: activate_user: tutoho wužiwarja aktiwizować add as friend: jako přećela přidać - add image: Wobraz přidać ago: (před {{time_in_words_ago}}) block_history: Dóstane blokowanja pokazać blocks by me: blokowanja wote mnje blocks on me: blokowanja přećiwo mi - change your settings: Twoje nastajenja změnić confirm: Wobkrućić create_block: tutoho wužiwarja blokować created from: "Wutworjeny z:" deactivate_user: tutoho wužiwarja znjemóžnić - delete image: Wobraz zničić delete_user: tutoho wužiwarja zničić description: Wopisanje diary: dźenik @@ -1449,12 +1477,11 @@ hsb: my edits: moje změny my settings: moje nastajenja my traces: moje ćěrje - my_oauth_details: Moje podrobnosće OAuth pokazać - nearby users: "Wužiwarjo w bliskosći:" + nearby users: Druzy wužiwarjo w bliskosći new diary entry: nowy dźenikowy zapisk no friends: Hišće njejsy přećelow přidał. - no home location: Žane domjace stejnišćo podate. - no nearby users: Hišće wužiwarjo njejsu, kotřiž w bliskosći kartěruja. + no nearby users: Njejsu druzy wužiwarjo, kotřiž w bliskosći kartěruja. + oauth settings: OAUTH-nastajenja remove as friend: jako přećela wotstronić role: administrator: Tutón wužiwar je administrator @@ -1469,8 +1496,6 @@ hsb: settings_link_text: nastajenja traces: ćěrje unhide_user: tutoho wužiwarja pokazaś - upload an image: Wobraz nahrać - user image heading: Wužiwarski wobraz user location: Wužiwarske stejnišćo your friends: Twoji přećeljo user_block: diff --git a/config/locales/hu.yml b/config/locales/hu.yml index b158ff8fc..1a175ebbd 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -319,6 +319,10 @@ hu: recent_entries: "Legutóbbi naplóbejegyzések:" title: Felhasználók naplói user_title: "{{user}} naplója" + location: + edit: Szerkesztés + location: "Hely:" + view: Megtekintés new: title: Új naplóbejegyzés no_such_entry: @@ -358,6 +362,9 @@ hu: output: Kimenet paste_html: Webhelyekbe való beágyazáshoz illeszd be a HTML kódot scale: Méretarány + too_large: + body: Ez a terület túl nagy ahhoz, hogy exportálásra kerüljön OpenStreetMap XML adatként. Közelíts, vagy jelölj ki kisebb területet. + heading: Túl nagy terület zoom: Nagyítási szint start_rjs: add_marker: Jelölő hozzáadása a térképhez @@ -851,13 +858,16 @@ hu: cycle_map: Kerékpártérkép noname: NincsNév site: + edit_disabled_tooltip: Közelíts a térkép szerkesztéséhez + edit_tooltip: Térkép szerkesztése edit_zoom_alert: Közelítened kell a térkép szerkesztéséhez + history_disabled_tooltip: Közelíts ahhoz, hogy lásd a szerkesztéseket ezen a területen. + history_tooltip: Szerkesztések megtekintése ezen a területen history_zoom_alert: Közelítened kell a szerkesztési előzmények megtekintéséhez layouts: donate: Támogasd az OpenStreetMapot a Hardverfrissítési Alapba történő {{link}}sal. donate_link_text: adományozás edit: Szerkesztés - edit_tooltip: Térkép szerkesztése export: Exportálás export_tooltip: Térképadatok exportálása gps_traces: Nyomvonalak @@ -866,7 +876,6 @@ hu: help_wiki_tooltip: Segítség és wikioldal a projekthez help_wiki_url: http://wiki.openstreetmap.org/wiki/HU:Main_Page?uselang=hu history: Előzmények - history_tooltip: Módosításcsomagok előzményei home: otthon home_tooltip: Ugrás otthonra inbox: postaláda ({{count}}) @@ -906,10 +915,6 @@ hu: view_tooltip: Térkép megjelenítése welcome_user: Üdvözlünk {{user_link}} welcome_user_link_tooltip: Felhasználói oldalad - map: - coordinates: "Koordináták:" - edit: Szerkesztés - view: Térkép message: delete: deleted: Üzenet törölve @@ -940,10 +945,14 @@ hu: send_message_to: "Új üzenet küldése neki: {{name}}" subject: Tárgy title: Üzenet küldése + no_such_message: + body: Sajnálom, nincs üzenet ezzel az azonosítóval. + heading: Nincs ilyen üzenet + title: Nincs ilyen üzenet no_such_user: - body: Sajnálom, nincs felhasználó vagy üzenet ezzel a névvel vagy azonosítóval - heading: Nincs ilyen felhasználó vagy üzenet - title: Nincs ilyen felhasználó vagy üzenet + body: Sajnálom, nincs felhasználó ezzel a névvel. + heading: Nincs ilyen felhasználó + title: Nincs ilyen felhasználó outbox: date: Elküldve inbox: Beérkezett üzenetek @@ -967,6 +976,9 @@ hu: title: Üzenet olvasása to: Címzett unread_button: Jelölés olvasatlanként + wrong_user: „{{user}}” néven jelentkeztél be, de a levelet, amit lekérdeztél olvasásra, nem ez a felhasználó küldte vagy kapta. Annak érdekében, hogy elolvashasd a levelet, jelentkezz be a helyes felhasználóval. + reply: + wrong_user: „{{user}}” néven jelentkeztél be, de a levelet, amit lekérdeztél válaszolásra, nem ez a felhasználó kapta. Annak érdekében, hogy válaszolhass, jelentkezz be a helyes felhasználóval. sent_message_summary: delete_button: Törlés notifier: @@ -987,8 +999,9 @@ hu: hopefully_you_1: "Valaki (remélhetőleg Te) meg szeretné változtatni az e-mail címét erről:" hopefully_you_2: "{{server_url}} erre: {{new_address}}." friend_notification: + befriend_them: "Felveheted őt barátnak is itt: {{befriendurl}}." had_added_you: "{{user}} felvett a barátai közé az OpenStreetMapon." - see_their_profile: "Megnézheted a profilját itt: {{userurl}} és felveheted őt is barátnak, ha szeretnéd." + see_their_profile: "Megnézheted a profilját itt: {{userurl}}." subject: "[OpenStreetMap] {{user}} felvett a barátai közé" gpx_notification: and_no_tags: és címkék nélkül @@ -1220,6 +1233,9 @@ hu: sidebar: close: Bezár search_results: Keresés eredményei + time: + formats: + friendly: "%Y. %B %e., %H.%M" trace: create: trace_uploaded: A GPX fájl feltöltése megtörtént, és várakozik az adatbázisba való beillesztésre. Ez általában fél órán belül megtörténik, és fogsz kapni egy e-mailt, amint elkészült. @@ -1322,15 +1338,20 @@ hu: user: account: current email address: "Jelenlegi e-mail cím:" + delete image: Jelenlegi kép eltávolítása email never displayed publicly: (soha nem jelenik meg nyilvánosan) flash update success: Felhasználói információk sikeresen frissítve. flash update success confirm needed: Felhasználói információk sikeresen frissítve. Nézd meg az e-mailjeidet az új e-mail címedet megerősítő levélhez. home location: "Otthon:" + image: "Kép:" + image size hint: (legalább 100x100 pixel nagyságú négyzetes kép javasolt) + keep image: Jelenlegi kép megtartása latitude: "Földrajzi szélesség:" longitude: "Földrajzi hosszúság:" make edits public button: Szerkesztéseim nyilvánossá tétele my settings: Beállításaim new email address: "Új e-mail cím:" + new image: Kép hozzáadása no home location: Nem adtad meg az otthonod helyét. preferred languages: "Előnyben részesített nyelvek:" profile description: "Profil leírása:" @@ -1344,6 +1365,7 @@ hu: public editing note: heading: Nyilvános szerkesztés text: Jelenleg a szerkesztéseid névtelenek, és az emberek nem küldhetnek neked üzeneteket, és nem láthatják a tartózkodási helyedet. Hogy megmutasd, mit szerkesztettél, és megengedd az embereknek, hogy a webhelyen keresztül kapcsolatba lépjenek veled, kattints az alábbi gombra. A 0.6 API-ra történt átállás óta csak nyilvános felhasználók szerkeszthetik a térképadatokat. (nézz utána, miért).
  • Az e-mail címed nem kerül felfedésre azzal, hogy nyilvános leszel.
  • Ez a művelet nem vonható vissza, és alapértelmezésben az összes új felhasználó már nyilvános.
+ replace image: Jelenlegi kép cseréje return to profile: Vissza a profilhoz save changes button: Módosítások mentése title: Felhasználói fiók szerkesztése @@ -1362,9 +1384,6 @@ hu: success: E-mail címed megerősítve, köszönjük a regisztrációt! filter: not_an_administrator: Ennek a műveletnek az elvégzéséhez adminisztrátori jogosultsággal kell rendelkezned. - friend_map: - nearby mapper: "Közeli térképszerkesztő: [[nearby_user]]" - your location: Helyed go_public: flash success: Mostantól az összes szerkesztésed nyilvános, és engedélyezett a szerkesztés. login: @@ -1377,7 +1396,12 @@ hu: lost password link: Elfelejtetted a jelszavad? password: "Jelszó:" please login: Jelentkezz be, vagy {{create_user_link}}. + remember: "Emlékezz rám:" title: Bejelentkezés + logout: + heading: Kijelentkezés az OpenStreetMapból + logout_button: Kijelentkezés + title: Kijelentkezés lost_password: email address: "E-mail cím:" heading: Elfelejtetted jelszavad? @@ -1410,6 +1434,10 @@ hu: body: Sajnálom, nincs {{user}} nevű felhasználó. Ellenőrizd a helyességét, vagy lehet, hogy a link, amire kattintottál, rossz. heading: "{{user}} felhasználó nem létezik" title: Nincs ilyen felhasználó + popup: + friend: Barát + nearby mapper: Közeli térképszerkesztő + your location: Helyed remove_friend: not_a_friend: "{{name}} nem tartozik a barátaid közé." success: "{{name}} eltávolítva a barátaid közül." @@ -1426,17 +1454,14 @@ hu: view: activate_user: felhasználó aktiválása add as friend: felvétel barátnak - add image: Kép hozzáadása ago: ({{time_in_words_ago}} óta) block_history: kapott blokkolások megjelenítése blocks by me: általam kiosztott blokkolások blocks on me: saját blokkolásaim - change your settings: beállítások módosítása confirm: Megerősítés create_block: ezen felhasználó blokkolása created from: "Készítve innen:" deactivate_user: felhasználó deaktiválása - delete image: Kép törlése delete_user: ezen felhasználó törlése description: Leírás diary: napló @@ -1452,12 +1477,11 @@ hu: my edits: szerkesztéseim my settings: beállításaim my traces: saját nyomvonalak - my_oauth_details: OAuth részletek megtekintése - nearby users: "Közeli felhasználók:" + nearby users: Egyéb közeli felhasználók new diary entry: új naplóbejegyzés no friends: Még nem adtál meg egyetlen barátot sem. - no home location: Nincs otthon beállítva. - no nearby users: Még nincsenek felhasználók, akik megadták, hogy a közelben szerkesztenek. + no nearby users: Még nincsenek más felhasználók, akik megadták, hogy a közelben szerkesztenek. + oauth settings: oauth beállítások remove as friend: barát eltávolítása role: administrator: Ez a felhasználó adminisztrátor @@ -1472,8 +1496,6 @@ hu: settings_link_text: beállítások traces: nyomvonalak unhide_user: felhasználó elrejtésének megszüntetése - upload an image: Kép feltöltése - user image heading: Felhasználó képe user location: Felhasználó helye your friends: Barátaid user_block: diff --git a/config/locales/ia.yml b/config/locales/ia.yml index b7faf4773..b7ffd96ee 100644 --- a/config/locales/ia.yml +++ b/config/locales/ia.yml @@ -331,7 +331,7 @@ ia: login: Aperir session login_to_leave_a_comment: "{{login_link}} pro lassar un commento" save_button: Salveguardar - title: Diarios de usatores | {{user}} + title: Diario de {{user}} | {{title}} user_title: Diario de {{user}} export: start: @@ -355,6 +355,9 @@ ia: output: Resultato paste_html: Colla HTML pro incorporar in sito web scale: Scala + too_large: + body: Iste area es troppo grande pro esser exportate como datos XML de OpenStreetMap. Per favor face zoom avante o selige un area minor. + heading: Area troppo grande zoom: Zoom start_rjs: add_marker: Adder un marcator al carta @@ -408,6 +411,7 @@ ia: amenity: airport: Aeroporto arts_centre: Centro artistic + atm: Cassa automatic auditorium: Auditorio bank: Banca bar: Bar @@ -430,6 +434,7 @@ ia: courthouse: Tribunal crematorium: Crematorio dentist: Dentista + doctors: Medicos dormitory: Dormitorio drinking_water: Aqua potabile driving_school: Autoschola @@ -438,11 +443,13 @@ ia: fast_food: Fast food ferry_terminal: Terminal de ferry fire_hydrant: Hydrante de incendio + fire_station: Caserna de pumperos fountain: Fontana fuel: Carburante grave_yard: Cemeterio gym: Centro de fitness / Gymnasio hall: Hall + health_centre: Centro de sanitate hospital: Hospital hotel: Hotel hunting_stand: Posto de cacia @@ -458,6 +465,7 @@ ia: office: Officio park: Parco parking: Parking + pharmacy: Pharmacia place_of_worship: Loco de adoration police: Policia post_box: Cassa postal @@ -488,6 +496,7 @@ ia: vending_machine: Distributor automatic veterinary: Clinica veterinari village_hall: Casa communal + waste_basket: Corbe a papiro wifi: Accesso WiFi youth_centre: Centro pro le juventute highway: @@ -529,6 +538,9 @@ ia: unclassified: Via non classificate unsurfaced: Cammino de terra landuse: + commercial: Area commercial + farm: Ferma + military: Area militar nature_reserve: Reserva natural leisure: beach_resort: Loco de vacantias al plagia @@ -612,6 +624,77 @@ ia: town: Urbe unincorporated_area: Area sin municipalitate village: Village + shop: + alcohol: Magazin de bibitas alcoholic + apparel: Boteca de vestimentos + art: Magazin de arte + bakery: Paneteria + beauty: Salon de beltate + beverages: Boteca de bibitas + bicycle: Magazin de bicyclettas + books: Libreria + butcher: Macelleria + car: Magazin de automobiles + car_dealer: Venditor de automobiles + car_parts: Partes de automobiles + car_repair: Reparation de automobiles + carpet: Magazin de tapetes + charity: Magazin de beneficentia + chemist: Pharmacia + clothes: Magazin de vestimentos + computer: Magazin de computatores + confectionery: Confecteria + convenience: Magazin de quartiero + copyshop: Centro de photocopias + cosmetics: Boteca de cosmetica + department_store: Grande magazin + discount: Boteca de disconto + doityourself: Magazin de bricolage + drugstore: Drogeria + dry_cleaning: Lavanderia a sic + electronics: Boteca de electronica + estate_agent: Agentia immobiliari + farm: Magazin agricole + fashion: Boteca de moda + fish: Pischeria + florist: Florista + food: Magazin de alimentation + funeral_directors: Directores de pompas funebre + furniture: Magazin de mobiles + gallery: Galeria + garden_centre: Jardineria + general: Magazin general + gift: Boteca de donos + greengrocer: Verdurero + grocery: Specieria + hairdresser: Perruccheria + hardware: Quincalieria + hifi: Hi-fi + insurance: Assecurantia + jewelry: Joieleria + kiosk: Kiosque + laundry: Lavanderia + mall: Galeria mercante + market: Mercato + mobile_phone: Boteca de telephonos mobile + motorcycle: Magazin de motocyclos + music: Magazin de musica + newsagent: Venditor de jornales + optician: Optico + organic: Boteca de alimentos organic + outdoor: Magazin de sport al aere libere + pet: Boteca de animales + photo: Magazin de photographia + salon: Salon + shoes: Scarperia + shopping_centre: Centro commercial + sports: Magazin de sport + stationery: Papireria + supermarket: Supermercato + toys: Magazin de joculos + travel_agency: Agentia de viages + video: Magazin de video + wine: Magazin de vinos tourism: alpine_hut: Cabana alpin artwork: Obra de arte @@ -633,6 +716,18 @@ ia: valley: Valle viewpoint: Puncto de vista zoo: Zoo + waterway: + derelict_canal: Canal abandonate + ditch: Fossato + dock: Dock + drain: Aquiero + lock: Esclusa + lock_gate: Porta de esclusa + mooring: Ammarrage + rapids: Rapidos + river: Fluvio/Riviera + riverbank: Ripa de fluvio/riviera + waterfall: Cascada javascripts: map: base: @@ -645,15 +740,13 @@ ia: donate: Supporta OpenStreetMap per {{link}} al Fundo de Actualisation de Hardware. donate_link_text: donation edit: Modificar - edit_tooltip: Modificar cartas export: Exportar export_tooltip: Exportar datos cartographic gps_traces: Tracias GPS - gps_traces_tooltip: Gerer tracias + gps_traces_tooltip: Gerer tracias GPS help_wiki: Adjuta & Wiki help_wiki_tooltip: Adjuta & sito Wiki pro le projecto history: Historia - history_tooltip: Historia del gruppo de modificationes home: initio home_tooltip: Ir al position de origine inbox: cassa de entrata ({{count}}) @@ -663,7 +756,9 @@ ia: zero: Tu cassa de entrata non contine messages non legite intro_1: OpenStreetMap es un carta libere e modificabile del mundo integre. Illo es facite per gente como te. intro_2: OpenStreetMap permitte vider, modificar e usar datos geographic de modo collaborative desde ubique in le mundo. - intro_3: Le albergamento de OpenStreetMap es gratiosemente supportate per le {{ucl}} e {{bytemark}}. + intro_3: Le albergamento de OpenStreetMap es gratiosemente supportate per le {{ucl}} e per {{bytemark}}. Altere sponsores del projecto es listate in le {{partners}}. + intro_3_bytemark: Bytemark + intro_3_ucl: Centro VR del UCL license: title: Le datos de OpenStreetMap es disponibile sub le licentia Attribution-Share Alike 2.0 Generic de Creative Commons log_in: aperir session @@ -688,13 +783,9 @@ ia: user_diaries: Diarios de usatores user_diaries_tooltip: Leger diarios de usatores view: Vider - view_tooltip: Vider cartas + view_tooltip: Vider le carta welcome_user: Benvenite, {{user_link}} welcome_user_link_tooltip: Tu pagina de usator - map: - coordinates: "Coordinatas:" - edit: Modificar - view: Vider message: delete: deleted: Message delite @@ -726,9 +817,9 @@ ia: subject: Subjecto title: Inviar message no_such_user: - body: Pardono, il non ha un usator o message con iste nomine o ID. - heading: Nulle tal usator o message - title: Nulle tal usator o message + body: Regrettabilemente, il non ha un usator o message con iste nomine. + heading: Iste usator non existe + title: Iste usator non existe outbox: date: Data inbox: cassa de entrata @@ -772,8 +863,9 @@ ia: hopefully_you_1: Alcuno (sperabilemente tu) vole cambiar su adresse de e-mail a hopefully_you_2: "{{server_url}} a {{new_address}}." friend_notification: + befriend_them: Tu pote equalmente adder le/la como amico a {{befriendurl}}. had_added_you: "{{user}} te ha addite como amico in OpenStreetMap." - see_their_profile: Tu pote vider su profilo a {{userurl}} e adder le/la tamben como amico si tu lo vole. + see_their_profile: Tu pote vider su profilo a {{userurl}}. subject: "[OpenStreetMap] {{user}} te ha addite como amico" gpx_notification: and_no_tags: e sin etiquettas. @@ -842,7 +934,7 @@ ia: allow_to: "Permitter al application cliente:" allow_write_api: modificar le carta. allow_write_diary: crear entratas de diario, commentos e adder amicos. - allow_write_gpx: cargar tracias GPS. + allow_write_gpx: incargar tracias GPS. allow_write_prefs: modificar tu preferentias de usator. request_access: Le application {{app_name}} requesta accesso a tu conto. Per favor verifica si tu vole que le application ha le sequente capabilitates. Tu pote seliger tantes o si poches como tu vole. revoke: @@ -860,7 +952,7 @@ ia: allow_read_prefs: leger su preferentias de usator. allow_write_api: modificar le carta. allow_write_diary: crear entratas de diario, commentos e adder amicos. - allow_write_gpx: cargar tracias GPS. + allow_write_gpx: incargar tracias GPS. allow_write_prefs: modificar su preferentias de usator. callback_url: URL de reappello name: Nomine @@ -890,7 +982,7 @@ ia: allow_read_prefs: leger su preferentias de usator. allow_write_api: modificar le carta. allow_write_diary: crear entratas de diario, commentos e adder amicos. - allow_write_gpx: cargar tracias GPS. + allow_write_gpx: incargar tracias GPS. allow_write_prefs: modificar su preferentias de usator. authorize_url: "URL de autorisation:" edit: Modificar detalios @@ -999,10 +1091,13 @@ ia: sidebar: close: Clauder search_results: Resultatos del recerca + time: + formats: + friendly: "%e %B %Y a %H:%M" trace: create: - trace_uploaded: Tu file GPX ha essite cargate e attende insertion in le base de datos. Isto prende generalmente minus de un medie hora, e un e-mail te essera inviate al completion. - upload_trace: Cargar tracia GPS + trace_uploaded: Tu file GPX ha essite incargate e attende insertion in le base de datos. Isto prende generalmente minus de un medie hora, e un e-mail te essera inviate al completion. + upload_trace: Incargar tracia GPS delete: scheduled_for_deletion: Tracia programmate pro deletion edit: @@ -1014,12 +1109,12 @@ ia: map: carta owner: "Proprietario:" points: "Punctos:" - save_button: Immagazinar modificationes + save_button: Salveguardar modificationes start_coord: "Coordinata initial:" tags: "Etiquettas:" tags_help: separate per commas title: Modification del tracia {{name}} - uploaded_at: "Cargate le:" + uploaded_at: "Incargate le:" visibility: "Visibilitate:" visibility_help: que significa isto? list: @@ -1035,9 +1130,9 @@ ia: title: Nulle tal usator offline: heading: Immagazinage GPX foras de linea - message: Le systema pro immagazinar e cargar files GPX es actualmente indisponibile. + message: Le systema pro immagazinar e incargar files GPX es actualmente indisponibile. offline_warning: - message: Le systema pro cargar files GPX es actualmente indisponibile + message: Le systema pro incargar files GPX es actualmente indisponibile trace: ago: "{{time_in_words_ago}} retro" by: per @@ -1059,15 +1154,15 @@ ia: help: Adjuta tags: Etiquettas tags_help: separate per commas - upload_button: Cargar + upload_button: Incargar upload_gpx: Incargar file GPX visibility: Visibilitate visibility_help: que significa isto? trace_header: see_all_traces: Vider tote le tracias - see_just_your_traces: Vider solo tu tracias, o cargar un tracia + see_just_your_traces: Vider solo tu tracias, o incargar un tracia see_your_traces: Vider tote tu tracias - traces_waiting: Tu ha {{count}} tracias attendente cargamento. Per favor considera attender le completion de istes ante de cargar alteres, pro non blocar le cauda pro altere usatores. + traces_waiting: Tu ha {{count}} tracias attendente incargamento. Per favor considera attender le completion de istes ante de incargar alteres, pro non blocar le cauda pro altere usatores. trace_optionals: tags: Etiquettas trace_paging_nav: @@ -1091,7 +1186,7 @@ ia: tags: "Etiquettas:" title: Visualisation del tracia {{name}} trace_not_found: Tracia non trovate! - uploaded: "Cargate le:" + uploaded: "Incargate le:" visibility: "Visibilitate:" visibility: identifiable: Identificabile (monstrate in le lista de tracias e como identificabile, punctos ordinate con datas e horas) @@ -1101,15 +1196,20 @@ ia: user: account: current email address: "Adresse de e-mail actual:" + delete image: Remover le imagine actual email never displayed publicly: (nunquam monstrate publicamente) flash update success: Informationes del usator actualisate con successo. flash update success confirm needed: Informationes del usator actualisate con successo. Tu recipera in e-mail un nota pro confirmar tu nove adresse de e-mail. home location: "Position de origine:" + image: "Imagine:" + image size hint: (imagines quadrate de al minus 100×100 functiona melio) + keep image: Retener le imagine actual latitude: "Latitude:" longitude: "Longitude:" make edits public button: Render tote mi modificationes public my settings: Mi configurationes new email address: "Adresse de e-mail nove:" + new image: Adder un imagine no home location: Tu non ha entrate tu position de origine. preferred languages: "Linguas preferite:" profile description: "Description del profilo:" @@ -1123,8 +1223,9 @@ ia: public editing note: heading: Modification public text: A iste momento tu modificationes es anonyme, e le gente non pote inviar te messages ni vider tu position. Pro poter monstrar tu contributiones e pro permitter al gente de contactar te per le sito web, clicca le button ci infra. Post le cambio al API 0.6, solo le usatores public pote modificar datos cartographic (lege proque).
  • Tu adresse de e-mail non essera revelate si tu deveni public.
  • Iste action non pote esser revertite e tote le nove usatores es ora public per predefinition.
+ replace image: Reimplaciar le imagine actual return to profile: Retornar al profilo - save changes button: Immagazinar modificationes + save changes button: Salveguardar modificationes title: Modificar conto update home location on click: Actualisar le position de origine quando io clicca super le carta? confirm: @@ -1141,9 +1242,6 @@ ia: success: Tu adresse de e-mail ha essite confirmate, gratias pro inscriber te! filter: not_an_administrator: Tu debe esser administrator pro executar iste action. - friend_map: - nearby mapper: "Cartographo vicin: [[nearby_user]]" - your location: Tu position go_public: flash success: Tote tu modificationes es ora public, e tu ha ora le permission de modificar. login: @@ -1156,7 +1254,12 @@ ia: lost password link: Tu perdeva le contrasigno? password: "Contrasigno:" please login: Per favor aperi un session o {{create_user_link}}. + remember: "Memorar me:" title: Aperir session + logout: + heading: Clauder le session de OpenStreetMap + logout_button: Clauder session + title: Clauder session lost_password: email address: "Adresse de e-mail:" heading: Contrasigno oblidate? @@ -1189,6 +1292,10 @@ ia: body: Non existe un usator con le nomine {{user}}. Per favor verifica le orthographia, o pote esser que le ligamine que tu sequeva es incorrecte. heading: Le usator {{user}} non existe title: Nulle tal usator + popup: + friend: Amico + nearby mapper: Cartographo vicin + your location: Tu position remove_friend: not_a_friend: "{{name}} non es un de tu amicos." success: "{{name}} ha essite removite de tu amicos." @@ -1205,17 +1312,14 @@ ia: view: activate_user: activar iste usator add as friend: adder como amico - add image: Adder imagine ago: ({{time_in_words_ago}} retro) block_history: vider blocadas recipite blocks by me: blocadas per me blocks on me: blocadas super me - change your settings: cambiar tu configurationes confirm: Confirmar create_block: blocar iste usator created from: "Create ex:" deactivate_user: disactivar iste usator - delete image: Deler imagine delete_user: deler iste usator description: Description diary: diario @@ -1231,12 +1335,11 @@ ia: my edits: mi modificationes my settings: mi configurationes my traces: mi tracias - my_oauth_details: Vider mi detalios OAuth - nearby users: "Usatores vicin:" + nearby users: Altere usatores vicin new diary entry: nove entrata de diario no friends: Tu non ha ancora addite alcun amico. - no home location: Nulle position de origine ha essite definite. - no nearby users: Il non ha ancora cartographos in le vicinitate. + no nearby users: Il non ha ancora altere cartographos in le vicinitate. + oauth settings: configuration oauth remove as friend: remover como amico role: administrator: Iste usator es un administrator @@ -1251,8 +1354,6 @@ ia: settings_link_text: configurationes traces: tracias unhide_user: revelar iste usator - upload an image: Cargar un imagine - user image heading: Imagine del usator user location: Position del usator your friends: Tu amicos user_block: diff --git a/config/locales/is.yml b/config/locales/is.yml index dddaa16d0..355660b5b 100644 --- a/config/locales/is.yml +++ b/config/locales/is.yml @@ -212,6 +212,13 @@ is: zoom_or_select: Þú verður að þysja að eða velja svæði á kortinu tag_details: tags: "Eigindi:" + timeout: + sorry: Ekki var hægt að ná í gögn fyrir {{type}} með kennitöluna {{id}}, það tók of langann tíma að ná í gögnin. + type: + changeset: breytingarsettið + node: hnútinn + relation: venslin + way: veginn way: download: "{{download_xml_link}} eða {{view_history_link}} eða {{edit_link}}" download_xml: Sækja veginn á XML sniði @@ -383,6 +390,7 @@ is: other: u.þ.b. {{count}} km zero: minna en 1 km results: + more_results: Fleiri niðurstöður no_results: Ekkert fannst search: title: @@ -405,6 +413,7 @@ is: bicycle_rental: Reiðhjólaleigan brothel: Hóruhúsið cafe: Kaffihúsið + car_rental: Bílaleigan car_wash: Bílaþvottastöðin cinema: Kvikmyndarhúsið dentist: Tannlæknirinn @@ -437,6 +446,7 @@ is: swimming_pool: Sundlaugin water_park: Vatnsleikjagarðurinn natural: + bay: Flóinn beach: Ströndin cave_entrance: Hellisop crater: Gígurinn @@ -517,7 +527,6 @@ is: donate: Hjálpaðu OpenStreetMap verkefninu með {{link}} í vélbúnaðarsjóðinn. donate_link_text: fjárframlagi edit: Breyta - edit_tooltip: Breyta kortagögnunum export: Niðurhala export_tooltip: Niðurhala kortagögnum á hinum ýmsu sniðum gps_traces: GPS ferlar @@ -526,7 +535,6 @@ is: help_wiki_tooltip: Hjálpar og wiki-síða fyrir verkefnið help_wiki_url: http://wiki.openstreetmap.org/wiki/Fors%C3%AD%C3%B0a?uselang=is history: Breytingarskrá - history_tooltip: Sjá skrá yfir breytingarsett home: heim home_tooltip: Færa kortasýnina á þína staðsetningu inbox: innhólf ({{count}}) @@ -565,10 +573,6 @@ is: view_tooltip: Kortasýn welcome_user: Hæ {{user_link}} welcome_user_link_tooltip: Notandasíðan þín - map: - coordinates: "Hnit:" - edit: Breyta - view: Kort message: delete: deleted: Skilaboðunum var eytt @@ -852,6 +856,9 @@ is: sidebar: close: Loka search_results: Leitarniðurstöður + time: + formats: + friendly: "%e .%B %Y kl. %H:%M" trace: create: trace_uploaded: Búið er að hlaða upp GPS ferlinum og bíður hann núna eftir því að vera settur inn í gagnagrunninn, sem gerist yfirleitt innan stundar. Póstur verður sendur á netfangið þitt þegar því er lokið. @@ -892,13 +899,15 @@ is: count_points: "{{count}} punktar" edit: breyta edit_map: Breyta kortinu með ferilin til hliðsjónar + identifiable: AUÐKENNANLEGUR in: í map: kort more: upplýsingar pending: Í BIÐ - private: BARA ÞÚ SÉRÐ + private: PRÍVAT public: ALLIR SJÁ trace_details: Sýna upplýsingar um ferilinn + trackable: REKJANLEGUR view_map: Sjá kort trace_form: description: Lýsing @@ -917,6 +926,10 @@ is: traces_waiting: Þú ert með {{count}} ferla í bið. Íhugaðu að bíða með að senda inn fleiri ferla til að aðrir notendur komist að. trace_optionals: tags: Tögg + trace_paging_nav: + next: Næsta » + previous: "« Fyrri" + showing_page: Sýni síðu {{page}} view: delete_track: Eyða description: "Lýsing:" @@ -943,14 +956,19 @@ is: trackable: Rekjanlegur (aðeins deilt sem óauðkennanlegir punktar með tímastimpli) user: account: + current email address: "Núverandi netfang:" + delete image: Eyða þessari mynd email never displayed publicly: (aldrei sýnt opinberlega) flash update success: Stillingarnar þínar voru uppfærðar. flash update success confirm needed: Stillingarnar þínar voru uppfærðar. Póstur var sendur á netfangið þitt sem þú þarft að bregðast við til að netfangið þitt verði staðfest. home location: "Staðsetning:" + image: "Mynd:" + keep image: Halda þessari mynd latitude: "Lengdargráða:" longitude: "Breiddargráða:" make edits public button: Gera allar breytingarnar mínar opinberar my settings: Mínar stillingar + new email address: "Nýtt netfang:" no home location: Þú hefur ekki stillt staðsetningu þína. preferred languages: "Viðmótstungumál:" profile description: "Lýsing á þér:" @@ -982,9 +1000,6 @@ is: success: Netfangið þitt hefur verið staðfest. filter: not_an_administrator: Þú þarft að vera möppudýr til að framkvæma þessa aðgerð. - friend_map: - nearby mapper: "Nálægur notandi: [[nearby_user]]" - your location: Þín staðsetning go_public: flash success: Allar breytingar þínar eru nú opinberar, og þú getur breytt gögnum. login: @@ -997,7 +1012,12 @@ is: lost password link: Gleymt lykilorð? password: "Lykilorð:" please login: Vinsamlegast innskráðu þig eða {{create_user_link}}. + remember: "Muna innskráninguna:" title: Innskrá + logout: + heading: Útskrá + logout_button: Útskrá + title: Útskrá lost_password: email address: "Netfang:" heading: Gleymt lykilorð? @@ -1030,6 +1050,10 @@ is: body: Það er ekki til notandi með nafninu {{user}}. Kannski slóstu nafnið rangt inn eða fylgdir ógildum tengli. heading: Notandinn {{user}} er ekki til title: Notandi ekki til + popup: + friend: Vinur + nearby mapper: Nálægur notandi + your location: Þín staðsetning remove_friend: not_a_friend: "{{name}} er ekki vinur þinn." success: "{{name}} er ekki lengur vinur þinn." @@ -1046,17 +1070,14 @@ is: view: activate_user: virkja þennan notanda add as friend: bæta við sem vin - add image: Senda ago: ({{time_in_words_ago}} síðan) block_history: bönn gegn þessum notanda blocks by me: bönn eftir mig blocks on me: bönn gegn mér - change your settings: breyttu stillingunum þínum confirm: Staðfesta create_block: banna þennan notanda created from: "Búin til frá:" deactivate_user: óvirkja þennan notanda - delete image: Eyða myndinni delete_user: eyða þessum notanda description: Lýsing diary: blogg @@ -1072,12 +1093,11 @@ is: my edits: mínar breytingar my settings: mínar stillingar my traces: mínir ferlar - my_oauth_details: OAuth stillingar nearby users: "Nálægir notendur:" new diary entry: ný bloggfærsla no friends: Þú átt enga vini - no home location: Engin staðsetning hefur verið stillt.. no nearby users: Engir notendur hafa stillt staðsetningu sína nálægt þér. + oauth settings: oauth stillingar remove as friend: fjarlægja sem vin role: administrator: Þessi notandi er möppudýr @@ -1092,8 +1112,6 @@ is: settings_link_text: stillingarsíðunni traces: ferlar unhide_user: af-fela þennan notanda - upload an image: Senda inn mynd - user image heading: Notandamynd user location: Staðsetning your friends: Vinir þínir user_block: diff --git a/config/locales/it.yml b/config/locales/it.yml index 5076c5dcf..3af1e40e8 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -3,6 +3,7 @@ # Export driver: syck # Author: Bellazambo # Author: Davalv +# Author: McDutchie it: activerecord: attributes: @@ -598,14 +599,12 @@ it: donate: Supporta OpenStreetMap {{link}} al fondo destinato all'aggiornamento dell'hardware. donate_link_text: donando edit: Modifica - edit_tooltip: Modifica mappe export: Esporta export_tooltip: Esporta i dati della mappa gps_traces: Tracciati GPS gps_traces_tooltip: Gestione tracciati help_wiki: Aiuto & Wiki history: Storico - history_tooltip: Storico delle modifiche home: posizione iniziale inbox: in arrivo ({{count}}) inbox_tooltip: @@ -639,10 +638,6 @@ it: view_tooltip: Visualizza mappe welcome_user: Benvenuto, {{user_link}} welcome_user_link_tooltip: Pagina utente personale - map: - coordinates: "Coordinate:" - edit: Modifica - view: Visualizza message: delete: deleted: Messaggio eliminato @@ -721,7 +716,7 @@ it: hopefully_you_2: "{{server_url}} con il nuovo indirizzo {{new_address}}." friend_notification: had_added_you: "{{user}} ti ha aggiunto come suo amico su OpenStreetMap." - see_their_profile: Puoi vedere il loro profilo su {{userurl}} e aggiungerli anche come amici, se lo si desidera. + see_their_profile: Puoi vedere il suo profilo su {{userurl}}. subject: "[OpenStreetMap] {{user}} ti ha aggiunto come amico" gpx_notification: and_no_tags: e nessuna etichetta. @@ -1007,15 +1002,12 @@ it: success: L'indirizzo email è stato confermato, grazie per l'iscrizione! filter: not_an_administrator: Bisogna essere amministratori per poter eseguire questa azione. - friend_map: - nearby mapper: "Mappatore vicino: [[nearby_user]]" - your location: Propria posizione go_public: flash success: Tutte le tue modifiche sono ora pubbliche, e hai il permesso di modificare. login: account not active: Spiacenti, il tuo profilo non è ancora attivo.
Clicca sul collegamento presente nell'email di conferma per attivare il tuo profilo. auth failure: Spiacenti, non si può accedere con questi dettagli. - create_account: crea un profilo + create_account: crealo ora email or username: "Indirizzo email o nome utente:" heading: Entra login_button: Entra @@ -1055,6 +1047,9 @@ it: body: Spiacenti, non c'è alcun utente con il nome {{user}}. Controllare la digitazione, oppure potrebbe essere che il collegamento che si è seguito sia errato. heading: L'utente {{user}} non esiste title: Nessun utente + popup: + nearby mapper: Mappatore vicino + your location: Propria posizione remove_friend: not_a_friend: "{{name}} non è uno dei tuoi amici." success: "{{name}} è stato rimosso dai tuoi amici." @@ -1071,17 +1066,14 @@ it: view: activate_user: attiva questo utente add as friend: aggiungi come amico - add image: Aggiungi immagine ago: ({{time_in_words_ago}} fa) block_history: visualizza i blocchi ricevuti blocks by me: blocchi applicati da me blocks on me: blocchi su di me - change your settings: modifica le impostazioni personali confirm: Conferma create_block: blocca questo utente created from: "Creato da:" deactivate_user: disattiva questo utente - delete image: Elimina immagine delete_user: elimina questo utente description: Descrizione diary: diario @@ -1100,7 +1092,6 @@ it: nearby users: "Utenti nelle vicinanze:" new diary entry: nuova voce del diario no friends: Non ci sono ancora amici. - no home location: Non è stato impostato alcun luogo. no nearby users: Non c'è ancora alcun utente che ammette di mappare nelle vicinanze. remove as friend: rimuovi come amico role: @@ -1116,8 +1107,6 @@ it: settings_link_text: impostazioni traces: tracciati unhide_user: mostra questo utente - upload an image: Carica una immagine - user image heading: Immagine dell'utente user location: Luogo dell'utente your friends: Amici personali user_block: diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 57b67b53e..8e6bc1bd1 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -414,7 +414,6 @@ ja: donate: ハードウェアーアップグレード基金への{{link}} で、OpenStreetMap を支援する。 donate_link_text: 寄付 edit: 編集 - edit_tooltip: 地図を編集する export: エクスポート export_tooltip: 地図データのエクスポート gps_traces: GPS トレース @@ -423,7 +422,6 @@ ja: help_wiki_tooltip: プロジェクトのヘルプと Wiki help_wiki_url: http://wiki.openstreetmap.org/wiki/Ja:Main_Page?uselang=ja history: 履歴 - history_tooltip: 変更セットの履歴 home: ホーム home_tooltip: ホームへ戻る inbox: 受信箱 ({{count}}) @@ -460,10 +458,6 @@ ja: view_tooltip: 地図を見る welcome_user: "{{user_link}} さん、ようこそ。" welcome_user_link_tooltip: あなたの個人ページ - map: - coordinates: "座標:" - edit: 編集 - view: 表示 message: delete: deleted: メッセージは削除されました @@ -816,9 +810,6 @@ ja: success: あなたのメールアドレスが確認できました。登録ありがとうございます。 filter: not_an_administrator: この作業を行うには、管理者になる必要があります。 - friend_map: - nearby mapper: "周辺のマッパー: [[nearby_user]]" - your location: あなたの位置 go_public: flash success: あなたの全ての編集は公開されます。今から編集できます。 login: @@ -863,6 +854,9 @@ ja: body: "{{user}}. という名前のユーザは存在しません。スペルミスが無いかチェックしてください。もしくはリンク元が間違っています。" heading: "{{user}} というユーザは存在しません。" title: ユーザが存在しません + popup: + nearby mapper: 周辺のマッパー + your location: あなたの位置 remove_friend: not_a_friend: "{{name}} はあなたの友達ではありません。" success: "{{name}} はあなたの友達から外しました。" @@ -878,12 +872,9 @@ ja: flash success: 活動地域を保存しました。 view: add as friend: 友達に追加 - add image: 画像の追加 ago: ({{time_in_words_ago}} 前) - change your settings: 設定を変更する confirm: 確認する create_block: このユーザーをブロック - delete image: 画像の削除 delete_user: このユーザーを消す description: 詳細 diary: 日記 @@ -898,11 +889,9 @@ ja: my edits: 私の編集 my settings: ユーザ情報の設定 my traces: 私のトレース - my_oauth_details: 自分の OAuth の詳細を表示 nearby users: "周辺のユーザ:" new diary entry: 新しい日記エントリ no friends: あなたは誰も友達として登録していません。 - no home location: 活動地域が設定されていません。 no nearby users: あなたの活動地域周辺にマッパーはいないようです。 remove as friend: 友達から削除 role: @@ -914,8 +903,6 @@ ja: send message: メッセージ送信 settings_link_text: 設定 traces: トレース - upload an image: 画像のアップロード - user image heading: ユーザの画像 user location: ユーザの位置 your friends: あなたの友達 user_block: diff --git a/config/locales/km.yml b/config/locales/km.yml index 68305de82..00b378a98 100644 --- a/config/locales/km.yml +++ b/config/locales/km.yml @@ -226,12 +226,10 @@ km: us_postcode: លទ្ធផលពី Geocoder.us layouts: edit: កែប្រែ​ - edit_tooltip: កែប្រែ​ផែនទី​ export: នាំចេញ​ export_tooltip: នាំចេញ​ទិន្នន័យផែនទី​ help_wiki_tooltip: ជំនួយ & តំបន់​វិគីសម្រាប់​គម្រោង​នេះ history: ប្រវត្តិ​ - history_tooltip: ប្រវត្តិនៃសំនុំ​បំលាស់ប្តូរ​ home_tooltip: ទៅទីតាំងដើម​ inbox: ប្រអប់សំបុត្រ​ ({{count}}) intro_2: OpenStreetMap អនុញ្ញាតឲ្យអ្នក​មើល កែប្រែ និងប្រើប្រាស់​ទិន្នន័យ​ភូមិសាស្រ្ត ក្នុងភាពរួមសហការគ្នា​ពីគ្រប់ទិសទី​លើផែនដី​។ @@ -245,9 +243,6 @@ km: view: មើល​ view_tooltip: មើលផែនទី welcome_user_link_tooltip: ទំព័រអ្នកប្រើប្រាស់​របស់អ្នក​ - map: - edit: កែប្រែ​ - view: មើល​ message: inbox: date: កាលបរិច្ឆេទ​ @@ -415,6 +410,4 @@ km: my edits: កំណែប្រែ​របស់ខ្ញុំ​ no friends: អ្នកមិនទាន់បានបន្ថែមមិត្តណាមួយនៅឡើយទេ​។ remove as friend: ដកចេញជាមិត្ត​ - upload an image: ផ្ទុកឡើង​រូបភាព​ - user image heading: រូបភាព​អ្នកប្រើប្រាស់​ your friends: មិត្តរបស់អ្នក​ diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 3eb677d0a..675208a6f 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -244,7 +244,6 @@ ko: layouts: donate_link_text: 기부 edit: 편집 - edit_tooltip: 지도 편집 export: 추출 export_tooltip: 맵 정보 추출 gps_traces: GPS 추적 @@ -252,7 +251,6 @@ ko: help_wiki: 도움말 & 위키 help_wiki_tooltip: 프로젝트 도움말 & 위키 history: 이력 - history_tooltip: 변경셋 이력 inbox: 받은 쪽지함 ({{count}}) inbox_tooltip: one: 한 개의 읽지 않은 쪽지가 있습니다. @@ -275,10 +273,6 @@ ko: view: 보기 view_tooltip: 지도 보기 welcome_user: "{{user_link}}님 환영합니다." - map: - coordinates: "좌표:" - edit: 편집 - view: 보기 message: inbox: date: 날짜 diff --git a/config/locales/ksh.yml b/config/locales/ksh.yml index 67765877d..ef81a0174 100644 --- a/config/locales/ksh.yml +++ b/config/locales/ksh.yml @@ -1,4 +1,4 @@ -# Messages for Ripoarisch (Ripoarisch) +# Messages for Colognian (Ripoarisch) # Exported from translatewiki.net # Export driver: syck # Author: Purodha @@ -102,12 +102,8 @@ ksh: start: osm_xml_data: OpenStreetMap sing XML Daate layouts: - edit_tooltip: Landkaate ändere view_tooltip: Landkaate beloore - map: - coordinates: "Ko'oodinate:" notifier: - diary_comment_notification: email_confirm: subject: "[OpenStreetMap] Donn Ding Addräß för de e-mail beshtääteje" email_confirm_html: @@ -116,7 +112,6 @@ ksh: hopefully_you_1: Someone (hopefully you) would like to change their Adräß för de e-mail ändere lost_password: subject: "[OpenStreetMap] Aanfrooch: Paßwoot neu säze" - message_notification: signup_confirm: subject: "[OpenStreetMap] Donn Ding Addräß för de e-mail beshtääteje" signup_confirm_html: diff --git a/config/locales/lt.yml b/config/locales/lt.yml index af79d9193..940c50b2e 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -15,9 +15,6 @@ lt: history: Istorija news_blog: Naujienų tinklaraštis shop: Parduotuvė - map: - edit: Redaguoti - view: Žemėlapis site: key: map_key: Žemėlapio legenda diff --git a/config/locales/lv.yml b/config/locales/lv.yml index 9943b161a..adfbf217b 100644 --- a/config/locales/lv.yml +++ b/config/locales/lv.yml @@ -24,6 +24,3 @@ lv: browse: common_details: version: "Versija:" - map: - edit: Labot - view: Skatīties diff --git a/config/locales/mk.yml b/config/locales/mk.yml index e57075e0d..88ce24505 100644 --- a/config/locales/mk.yml +++ b/config/locales/mk.yml @@ -316,6 +316,10 @@ mk: recent_entries: "Скорешни дневнички записи:" title: Дневници на корисници user_title: Дневник на {{user}} + location: + edit: Уреди + location: "Местоположба:" + view: Види new: title: Нова дневничка ставка no_such_entry: @@ -355,6 +359,9 @@ mk: output: Излезни податоци paste_html: Ископирајте го HTML кодот за да го вметнете во страницата. scale: Размер + too_large: + body: Подрачјето е преголемо за да може да се извезе како OpenStreetMap XML податоци. Приближете или изберете помала површина. + heading: Подрачјето е преголемо zoom: Приближи start_rjs: add_marker: Стави бележник на картата @@ -846,21 +853,23 @@ mk: cycle_map: Велосипедска карта noname: БезИме site: + edit_disabled_tooltip: Приближете за да ја уредите картата + edit_tooltip: Уреди карта edit_zoom_alert: Морате да зумирате за да можете да ја уредувате картата. + history_disabled_tooltip: Приближете за да ги видите уредувањата за ова подрачје + history_tooltip: Види уредувања за ова подрачје history_zoom_alert: Морате да зумирате за да можете да ја видите историјата на уредувања layouts: donate: Поддржете ја OpenStreetMap со {{link}} за Фондот за обнова на хардвер. donate_link_text: донирање edit: Уреди - edit_tooltip: Уредување карти export: Извези export_tooltip: Извези податоци од картата gps_traces: GPS-траги - gps_traces_tooltip: Раководење со траги + gps_traces_tooltip: Работа со GPS траги help_wiki: Помош и вики help_wiki_tooltip: Помош и Вики-страница за овој проект history: Историја - history_tooltip: Историја на измените home: дома home_tooltip: Оди на домашна локација inbox: пораки ({{count}}) @@ -898,13 +907,9 @@ mk: user_diaries: Кориснички дневници user_diaries_tooltip: Види кориснички дневници view: Карта - view_tooltip: Преглед на картите + view_tooltip: Види карта welcome_user: Добредојде, {{user_link}} welcome_user_link_tooltip: Ваша корисничка страница - map: - coordinates: "Координати:" - edit: Уреди - view: Карта message: delete: deleted: Пораката е избришана @@ -935,10 +940,14 @@ mk: send_message_to: Испрати нова порака за {{name}} subject: Наслов title: Испрати ја пораката + no_such_message: + body: Нажалост нема порака со тој id. + heading: Нема таква порака + title: Нема таква порака no_such_user: - body: Жалиме, нема корисник или порака со тоа име или ид. бр. - heading: Нема таков корисник или порака - title: Нема таков корисник или порака + body: Нажалост нема корисник со тоа име. + heading: Нема таков корисник + title: Нема таков корисник outbox: date: Даѕум inbox: примени пораки @@ -962,6 +971,9 @@ mk: title: Прочитај ја пораката to: За unread_button: Означи како непрочитано + wrong_user: Најавени сте како „{{user}}“, но пораката што побаравте да ја прочитате не е испратена до или од тој корисник. Најавете се под правилно корисничко име за да ја прочитате. + reply: + wrong_user: Најавени сте како „{{user}}“, но пораката на којашто побаравте да одговорите не е испратена до тој корисник. Најавете се под правилно корисничко име за да одговорите. sent_message_summary: delete_button: Избриши notifier: @@ -982,8 +994,9 @@ mk: hopefully_you_1: Некој (се надеваме Вие) сака да ја замени е-поштенската адреса на hopefully_you_2: "{{server_url}} со новата адреса {{new_address}}." friend_notification: + befriend_them: Можете личноста и да ја додадете како пријател на {{befriendurl}}. had_added_you: "{{user}} ве додаде како пријател на OpenStreetMap." - see_their_profile: Можете да му го погледате профилот на {{userurl}} и да го додадете како пријател, ако сакате. + see_their_profile: Можете да го погледате профилот на оваа личност на {{userurl}}. subject: "[OpenStreetMap] {{user}} ве додаде како пријател" gpx_notification: and_no_tags: и без ознаки. @@ -1209,6 +1222,9 @@ mk: sidebar: close: Затвори search_results: Резултати од пребарувањето + time: + formats: + friendly: "%e %B %Y во %H:%M" trace: create: trace_uploaded: Вашата GPX податотека е подигната и чека да биде вметната во базата на податоци. Ова обично се врши во рок од половина час, и откога ќе заврши, ќе ви биде испратена порака по е-пошта. @@ -1310,14 +1326,21 @@ mk: trackable: Проследиво (споделено само како анонимни, подредени точки со време) user: account: + current email address: "Тековна е-поштенска адреса:" + delete image: Отстрани тековна слика email never displayed publicly: (никогаш не се прикажува јавно) flash update success: Корисничките информации се успешно ажурирани. flash update success confirm needed: Корисничките информации се успешно ажурирани. Проверете е-пошта за да ја потврдите на адресата. home location: "Домашна локација:" + image: "Слика:" + image size hint: (најдобро работат квадратни слики, барем 100x100) + keep image: Задржи ја тековната слика latitude: Геог. ширина longitude: Геог. должина make edits public button: Објавувај ми ги сите уредувања my settings: Мои прилагодувања + new email address: "Нова е-поштенска адреса:" + new image: Додај слика no home location: Немате внесено домашна локација. preferred languages: "Претпочитани јазици:" profile description: "Опис за профилот:" @@ -1331,6 +1354,7 @@ mk: public editing note: heading: Јавно уредување text: Во моментов вашите уредувања се анонимни и луѓето не можат да ви пратат порака или да ви ја видат локацијата. За да покажете што уредувате и да овозможите корисниците да ве контактираат преку оваа страница, кликнете на копчето подолу. По преодот на 0.6 API, само јавни корисници можат да уредуваат податоци на карти. (дознајте зошто).
  • Ако станете јавен корисник, вашата е-пошта сепак нема да се открие.
  • Оваа постапка не може да се врати, и сите нови корисници сега се автоматски јавни.
+ replace image: Замени тековна слика return to profile: Назад кон профилот save changes button: Зачувај ги промените title: Уреди сметка @@ -1349,9 +1373,6 @@ mk: success: Вашата е-пошта е потврдена. Ви благодариме што се регистриравте! filter: not_an_administrator: За да го изведете тоа, треба да се администратор. - friend_map: - nearby mapper: "Соседен картограф: [[nearby_user]]" - your location: Ваша локација go_public: flash success: Сега сите уредувања ви се јавни, и ви е дозволено да уредувате. login: @@ -1364,7 +1385,12 @@ mk: lost password link: Си ја загубивте лозинката? password: "Лозинка:" please login: Најавете се или {{create_user_link}}. + remember: "Запомни ме:" title: Најавување + logout: + heading: Одјавување од OpenStreetMap + logout_button: Одјава + title: Одјава lost_password: email address: "Е-пошта:" heading: Ја заборавивте лозинката? @@ -1397,6 +1423,10 @@ mk: body: Жалиме, но не постои корисник по име {{user}}. Проверете да не сте згрешиле во пишувањето, или пак да не сте кликнале на погрешна врска. heading: Корисникот {{user}} не постои. title: Нема таков корисник + popup: + friend: Пријател + nearby mapper: Соседен картограф + your location: Ваша локација remove_friend: not_a_friend: "{{name}} не е меѓу вашите пријатели." success: Корисникот {{name}} е отстранет од вашите пријатели. @@ -1413,17 +1443,14 @@ mk: view: activate_user: активирај го корисников add as friend: додај како пријател - add image: Додај слика ago: (пред {{time_in_words_ago}}) block_history: погледај добиени блокови blocks by me: извршени болокови blocks on me: добиени блокови - change your settings: измени прилагодувања confirm: Потврди create_block: блокирај го корисников created from: "Создадено од:" deactivate_user: деактивирај го корисников - delete image: Избриши ја сликата delete_user: избриши го корисников description: Опис diary: дневник @@ -1439,12 +1466,11 @@ mk: my edits: мои уредувања my settings: мои прилагодувања my traces: мои траги - my_oauth_details: Моите OAuth детали - nearby users: "Соседни корисници:" + nearby users: Други соседни корисници new diary entry: нова ставка во дневникот no friends: Сè уште немате додадено пријатели. - no home location: Немате поставено домашна локација. - no nearby users: Сè уште нема корисници во вашата околина кои признаваат дека работат на карти. + no nearby users: Сè уште нема други корисници во вашата околина што признаваат дека работат на карти. + oauth settings: oauth поставки remove as friend: отстрани од пријатели role: administrator: Овој корисник е администратор @@ -1459,8 +1485,6 @@ mk: settings_link_text: прилагодувања traces: траги unhide_user: покажи го корисникот - upload an image: Подигни слика - user image heading: Корисничка слика user location: Локација на корисникот your friends: Ваши пријатели user_block: diff --git a/config/locales/nb.yml b/config/locales/nb.yml new file mode 100644 index 000000000..c40049e88 --- /dev/null +++ b/config/locales/nb.yml @@ -0,0 +1,2 @@ +nb: + dummy: dummy diff --git a/config/locales/nds.yml b/config/locales/nds.yml index e2ac2427c..b5f452384 100644 --- a/config/locales/nds.yml +++ b/config/locales/nds.yml @@ -235,7 +235,6 @@ nds: layouts: donate_link_text: Spennen edit: Ännern - edit_tooltip: Koorten ännern export: Export export_tooltip: Koortendaten exporteren help_wiki: Hülp & Wiki @@ -258,10 +257,6 @@ nds: view_tooltip: Koorten ankieken welcome_user: Willkamen, {{user_link}} welcome_user_link_tooltip: Dien Brukersied - map: - coordinates: "Koordinaten:" - edit: Ännern - view: Ankieken message: delete: deleted: Naricht wegdaan @@ -459,9 +454,6 @@ nds: return to profile: Trüch na’t Profil save changes button: Ännern spiekern title: Brukerkonto ännern - friend_map: - nearby mapper: "Koortenmaker in de Neegd: [[nearby_user]]" - your location: Dien Standoort login: create_account: Brukerkonto opstellen email or username: "E-Mail-Adress oder Brukernaam:" @@ -489,6 +481,9 @@ nds: no_such_user: heading: Den Bruker {{user}} gifft dat nich title: Bruker nich funnen + popup: + nearby mapper: Koortenmaker in de Neegd + your location: Dien Standoort remove_friend: not_a_friend: "{{name}} is keen von dien Frünn." success: "{{name}} is rutnahmen bi de Frünn." @@ -502,9 +497,7 @@ nds: flash success: Standoort is spiekert. view: add as friend: as Fründ tofögen - add image: Bild tofögen ago: (vör {{time_in_words_ago}}) - delete image: Bild wegdoon description: Beschrieven diary: Dagbook edits: Ännern @@ -516,11 +509,8 @@ nds: my edits: mien Ännern nearby users: "Brukers in de Neegd:" new diary entry: Nee Dagbook-Indrag - no home location: Keen Standoort angeven. remove as friend: as Fründ rutnehmen send message: Naricht sennen - upload an image: Bild hoochladen - user image heading: Brukerbild your friends: Dien Frünn user_block: partial: diff --git a/config/locales/ne.yml b/config/locales/ne.yml new file mode 100644 index 000000000..bb2735fd5 --- /dev/null +++ b/config/locales/ne.yml @@ -0,0 +1,300 @@ +# Messages for Nepali (नेपाली) +# Exported from translatewiki.net +# Export driver: syck +# Author: सरोज कुमार ढकाल +ne: + browse: + changeset: + changeset: "चेन्जसेट: {{id}}" + changesetxml: चेन्जसेट XML + download: डाउनलोड गर्ने {{changeset_xml_link}} वा {{osmchange_xml_link}} + feed: + title: चेन्जसेट {{id}} + title_comment: चेन्जसेट {{id}} - {{comment}} + title: चेन्जसेट + changeset_details: + belongs_to: "स्वामित्व:" + box: बाकस + closed_at: "बन्द गरिएको:" + created_at: "श्रृजना गरिएको:" + show_area_box: क्षेत्र बाकस देखाउने + changeset_navigation: + all: + next_tooltip: पछिल्लो चेन्जसेट + prev_tooltip: अघिल्लो चेन्जसेट + user: + name_tooltip: " {{user}}को सम्पादन हेर्ने" + next_tooltip: पछिल्लो सम्पादन {{user}} + prev_tooltip: पहिलो सम्पादन {{user}} + common_details: + changeset_comment: "टिप्पणी:" + edited_at: "समपादित :" + edited_by: "सम्पादक:" + in_changeset: "चेन्जसेटमा:" + version: "संस्करण:" + containing_relation: + entry: सम्बन्ध {{relation_name}} + entry_role: सम्बन्ध {{relation_name}} (as {{relation_role}}) + map: + deleted: मेटियो + larger: + area: क्षेत्र ठूलो नक्सामा हेर्ने + node: नोड ठूलो नक्सामा हेर्ने + relation: सम्बन्ध ठूलो नक्सामा हेर्ने + way: बाटो ठूलो नक्सामा हेर्ने \ + loading: लोड हुदैछ... + node: + download: "{{download_xml_link}}, {{view_history_link}} वा{{edit_link}}" + download_xml: " XML डाउनलोड गर्ने" + edit: सम्पादन + node: नोड + node_title: "नोड: {{node_name}}" + view_history: इतिहास हेर्ने + node_details: + coordinates: "अक्षांशहरु:" + part_of: "को खण्ड:" + node_history: + download: "{{download_xml_link}} वा {{view_details_link}}" + download_xml: XML डाउनलोड गर्ने + node_history: नोड इतिहास \ + node_history_title: "नोड इतिहास: {{node_name}}" + view_details: बिस्तृत जानकारी हेर्ने \ + not_found: + sorry: माफ गर्नुहोस, {{id}} आईडी भएको {{type}} , फेला पार्न सकिएन । + type: + changeset: परिवर्तनसेट \ + node: नोड + relation: सम्बन्ध + way: बाटो + paging_nav: + of: को \ + showing_page: देखाउदै पृष्ठ + relation: + download: "{{download_xml_link}} वा {{view_history_link}}" + download_xml: " XML डाउनलोड गर्ने" + relation: सम्बन्ध + relation_title: "सम्बन्ध: {{relation_name}}" + view_history: इतिहास हेर्ने + relation_details: + members: "सदस्यहरु:" + part_of: "को खण्ड:" + relation_history: + download: "{{download_xml_link}} वा {{view_details_link}}" + download_xml: XML डाउनलोड गर्ने + relation_history: सम्बन्ध इतिहास + relation_history_title: "सम्बन्ध इतिहास: {{relation_name}}" + view_details: विस्तृत जानकारी हेर्ने + relation_member: + entry_role: "{{type}} {{name}} {{role}}को रुपमा" + type: + node: नोड + relation: सम्बन्ध + way: बाटो + start: + manually_select: आफै फरक क्षेत्र छान्ने + view_data: हालको मानचित्रबाट डेटा हेर्ने + start_rjs: + data_frame_title: डेटा \ + data_layer_name: डेटा + details: विस्तृत जानकारी + drag_a_box: क्षेत्र छान्न नक्साको बाकसलाई घिसार्नुहोस + edited_by_user_at_timestamp: " [[user]]द्रारा [[timestamp]]मा सम्पादित \\" + history_for_feature: " [[feature]]को इतिहास" + load_data: डेटा लोडगर्ने + loading: लोड हुदैछ... + manually_select: आफै अर्को क्षेत्र छान्नुहोस \ + object_list: + api: यो क्षेत्र API बाट निकाल्नुहोस \ + back: वस्तु सुची देखाउने + details: विस्तृत जानकारीहरु \ + heading: वस्तु सुची + history: + type: + node: नोड [[id]] + way: बाटो [[id]] + selected: + type: + node: नोड [[id]] + way: बाटो [[id]] + type: + node: नोड + way: बाटो + private_user: निजी प्रयोगकर्ता + show_history: इतिहास देखाउने + wait: पर्खनुहोस..... + tag_details: + tags: "ट्यागहरु:" + way: + download: "{{download_xml_link}}, {{view_history_link}} वा {{edit_link}}" + download_xml: " XML डाउनलोड गर्ने" + edit: सम्पादन + view_history: इतिहास हेर्ने + way: बाटो + way_title: "बाटो: {{way_name}}" + way_details: + nodes: "नोडहरु:" + part_of: "को खण्ड:" + way_history: + download: "{{download_xml_link}} वा {{view_details_link}}" + download_xml: " XML डाउनलोड गर्ने" + view_details: विस्तृत जानकारी हेर्ने + way_history: बाटो इतिहास \ + way_history_title: "बाटो इतिहास: {{way_name}}" + diary_entry: + diary_comment: + confirm: " निश्चित गर्ने" + diary_entry: + comment_link: यो प्रविष्टीमा टिप्पणीगर्ने + confirm: निश्चित गर्ने + edit_link: यो प्रविष्टी सम्पादन गर्ने + hide_link: यो प्रविष्टी लुकाउने + reply_link: यो प्रविष्टीमा जवाफ लेख्ने + edit: + body: "मूख्य भाग:" + language: "भाषा:" + latitude: "देशान्तर:" + location: "स्थान:" + longitude: "अक्षांश:" + marker_text: दैनिकी प्रविष्ठी स्थान + save_button: संग्रह गर्ने + subject: "विषय:" + title: दैनिकी प्रविष्ठी सम्पादन गर्ने + use_map_link: नक्सा प्रयोगर्ने + view: + leave_a_comment: टिप्पणी छोड्ने + login_to_leave_a_comment: "{{login_link}} टिप्पणी छोड्नलाई" + trace: + create: + upload_trace: " GPS Trace अपलोड गर्ने" + delete: + scheduled_for_deletion: मेट्नको लागि तालिकावद्ध गरिएको ट्रेस + edit: + description: विवरण + download: डाउनलोड + edit: सम्पादन + filename: "फाइलनाम:" + heading: ट्रेस सम्पादन गर्दै {{name}} + map: नक्सा + owner: "मालिक:" + points: "बिन्दुहरु:" + save_button: परिवर्तनहरु संग्रह गर्ने + start_coord: "निर्देशंक सुरु गर्ने:" + tags: "ट्यागहरु:" + tags_help: अल्पविरामले छुट्याएको + title: ट्रेस सम्पादन गर्दै {{name}} + uploaded_at: "आध्यवधिक गरिएको:" + visibility: "दृश्यक्षमता:" + visibility_help: यसको मतलब के हो ? + list: + public_traces: सारवजनिक GPS ट्रेसहरु \ + public_traces_from: "{{user}}बाट सार्वकनिक GPS ट्रेसहरु" + tagged_with: " {{tags}}हरु द्वारा ट्याग गरिएको" + your_traces: तपाईको GPS ट्रेसहरु + make_public: + made_public: सार्वजनिक बनाइएको ट्रेस + no_such_user: + heading: प्रयोगकर्ता {{user}} अस्तित्वमा छैन \ + title: कुनै त्यस्तो प्रयोगकर्ता छैन + trace: + ago: "{{time_in_words_ago}} पहिले" + by: द्वारा + count_points: पोइन्टहरु {{count}} + edit: सम्पादन + edit_map: नक्सा सम्पादन गर्ने + in: मा + map: नक्सा + more: थप + pending: बाँकी रहेको + private: निजी + public: सार्वजनिक + trace_details: ट्रेसको विस्तृत जानकारी हेर्ने + view_map: नक्सा हेर्ने + trace_form: + description: विवरण + help: सहायता + tags: ट्यागहरु + tags_help: अल्पविरामले छुट्याएको + upload_button: अपलोड गर्ने + upload_gpx: GPX फाइल अपलोड गर्ने + visibility: दृश्यक्षमता + visibility_help: यसको मतलाब के हो ? + trace_header: + see_all_traces: सबै ट्रेसहरु हेर्ने + see_your_traces: तपाईको सबै ट्रेसहरु हेर्नुहोस \ + trace_optionals: + tags: ट्यागहरु + view: + delete_track: यो ट्रेस मेट्ने + description: "विवरण:" + download: डाउनलोड + edit: सम्पादन + edit_track: यो ट्रेस सम्पादन गर्ने + filename: "फाइलनाम:" + heading: हेर्दै ट्रेस {{name}} + map: नक्सा + none: कुनै पनि होइन + owner: "मालिक:" + pending: बाँकी + points: "विन्दुहरु:" + start_coordinates: निर्देशंक सुरु गर्ने + tags: "ट्यागहरु:" + title: हेर्दै ट्रेस {{name}} + trace_not_found: ट्रेस भेटिएन! + uploaded: "अपलोड गरिएको:" + visibility: "दृश्यक्षमता:" + user: + account: + flash update success: प्रयोगकर्ताको जानकारीहरु सफलतापूर्वक अध्यावधिक गरियो। + home location: "गृह स्थान:" + my settings: मेरो अनुकुलताहरु + no home location: तपाईले आफ्नो गृहस्थान प्रविष्ठ गर्नुभएको छैन। + preferred languages: "रुचाइएका भाषाहरु:" + public editing: + disabled link text: म किन सम्पादन गर्न सक्दिन? + enabled link text: यो के हो ? + heading: "सार्वजनिक सम्पादन:" + public editing note: + heading: सार्वजनिक सम्पादन + save changes button: परिवर्तनहरु संग्रह गर्नुहोस \ + confirm_email: + button: निश्चित + failure: यो टोकन को साथम एक इमेल पहिले नै निश्चित गरिसकिएको छ। + heading: इमेल परिवर्तन भएको निश्चित गर्नुहोस् \ + press confirm button: इमेल निश्चित गर्नको लागि निश्चितमा क्लिक गर्नुहोस् । + success: तपाईको इमेल निश्चित गर्नुहोस, ग्राह्याताको लागि धन्यवाद! + filter: + not_an_administrator: यो कार्य गर्न तपाई प्रवन्धक हुनुपर्छ . + go_public: + flash success: तपाईको सबै सम्पादनहरु सार्वाजनिक छन् ,तपाई अब सम्पान लायक हुनु भयो । + make_friend: + already_a_friend: " {{name}} सँग तपाई पहिले नै मित्रता गरिसक्नु भएको छ ।" + failed: माफ गर्नुहोला, {{name}}लाई मित्रको रुपमा थप्न सकिएन। + success: "{{name}} अब तपाईको मित्र हुनुभएको छ।" + popup: + nearby mapper: नजिकको मानचित्रकर्मी + your location: तपाईको स्थान + reset_password: + confirm password: "प्रवेशशव्द निश्चित गर्ने:" + flash changed: तपाईको प्रवेशशव्द परिवर्तन गरिएको छ। + heading: " {{name}}को लागि प्रवेशशव्द परिवर्तन गर्ने \\" + password: "प्रवेशशव्द:" + reset: नयाँ प्रवेशशव्द \ + title: प्रवेशशव्द परिवर्तन गर्ने + user_role: + filter: + already_has_role: प्रयोगकर्ता सँग {{role}} भूमिका पहिले देखि नै छ। + doesnt_have_role: " प्रयोगर्ताको {{role}}को भूमिका छैन" + not_a_role: " `{{role}}' मान्य भूमिका हैन ।" + not_an_administrator: प्रवन्धकहरुले भूमिका व्यवस्थापन गर्न सक्छन् र तपाई प्रवन्धक हैन । + grant: + are_you_sure: भूमिका `{{role}}' प्रयोगकर्ता `{{name}}'लाई प्रदान गर्न निश्चित हुनुहुन्छ? + confirm: निश्चित गर्ने + fail: भूमिका `{{role}}' प्रयोगकर्ता `{{name}}'लाई प्रदान गर्न सकिएन । कृपया प्रयोगकर्ता र भूमिका दुबै मान्य छन् भनि जाँच गर्नुहोस् । + heading: भूमिका प्रदान निश्चित गर्ने \ + title: भूमिका प्रदान निश्चित गर्ने \ + revoke: + are_you_sure: तपाईँ भूमिका `{{role}}' , `{{name}} प्रोगकर्ताबाट फिर्ता लिने कुरामा निश्चित हुनुहुन्छ'? + confirm: निश्चित गर्ने + fail: भूमिका `{{role}}' ,`{{name}}'बाट फिर्ता लिन सकिएन । प्रोगकर्ता नाम र भूमिका दुबै मान्य छन् भन्ने खुलाउनु होस् । + heading: भूमिका फिर्ता निश्चित गर्ने + title: Confirm role revoking diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 653a3d1d6..d14d38ea4 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -319,6 +319,10 @@ nl: recent_entries: "Recente dagboekberichten:" title: Gebruikersdagboeken user_title: Dagboek van {{user}} + location: + edit: Bewerken + location: "Locatie:" + view: Bekijken new: title: Nieuw dagboekbericht no_such_entry: @@ -328,7 +332,7 @@ nl: no_such_user: body: Sorry, er is geen gebruiker met de naam {{user}}. Controleer de spelling, of misschien is de verwijzing waarop u geklikt hebt onjuist. heading: De gebruiker {{user}} bestaat niet - title: De opgevraagde gebruiker bestaat niet + title: Deze gebruiker bestaat niet view: leave_a_comment: Opmerking achterlaten login: aanmelden @@ -358,6 +362,9 @@ nl: output: Uitvoer paste_html: Kopieer de HTML-code en voeg deze toe aan uw website scale: Schaal + too_large: + body: Dit gebied is te groot om als OpenStreetMap XML-gegevens te exporteren. Zoom in of selecteer een kleiner gebied. + heading: Gebied te groot zoom: Zoom start_rjs: add_marker: Marker op de kaart zetten @@ -731,7 +738,7 @@ nl: tram_stop: Tramhalte yard: Rangeerterrein shop: - alcohol: Verkooppunt alcoholische dranken + alcohol: Slijterij apparel: Kledingwinkel art: Kunstwinkel bakery: Bakkerij @@ -756,7 +763,7 @@ nl: department_store: Warenhuis discount: Discountwinkel doityourself: Doe-het-zelf-winkel - drugstore: Apotheek + drugstore: Drogisterij dry_cleaning: Stomerij electronics: Elektronicawinkel estate_agent: Makelaar @@ -766,13 +773,13 @@ nl: florist: Bloemist food: Etenswarenwinkel funeral_directors: Uitvaartcentrum - furniture: Meulbelzaak + furniture: Meubelzaak gallery: Galerie garden_centre: Tuincentrum general: Algemene winkel gift: Cadeauwinkel greengrocer: Groenteboer - grocery: Groentenwinkel + grocery: Kruidenierswinkel hairdresser: Kapper hardware: Gereedschappenwinkel hifi: Hi-fi @@ -800,7 +807,7 @@ nl: toys: Speelgoedwinkel travel_agency: Reisbureau video: Videotheek - wine: Verkooppunt alcoholische dranken + wine: Slijterij tourism: alpine_hut: Berghut artwork: Kunst @@ -831,7 +838,7 @@ nl: ditch: Sloot dock: Dock drain: Afvoerkanaal - lock: Sluis + lock: Schutsluis lock_gate: Sluisdeur mineral_spring: Bron mooring: Aanlegplaats @@ -849,21 +856,23 @@ nl: cycle_map: Fietskaart noname: GeenNaam site: + edit_disabled_tooltip: Zoom in om de kaart te bewerken + edit_tooltip: Kaart bewerken edit_zoom_alert: U moet inzoomen om de kaart te bewerken + history_disabled_tooltip: Zoom in om de bewerkingen voor dit gebied te bekijken + history_tooltip: Bewerkingen voor dit gebied bekijken history_zoom_alert: U moet inzoomen om de kaart te bewerkingsgeschiedenis te bekijken layouts: donate: Ondersteun OpenStreetMap door te {{link}} aan het Hardware Upgrade-fonds. donate_link_text: doneren edit: Bewerken - edit_tooltip: Kaarten bewerken export: Exporteren export_tooltip: Kaartgegevens exporteren gps_traces: GPS-tracks - gps_traces_tooltip: Tracks beheren + gps_traces_tooltip: GPS-tracks beheren help_wiki: Help & wiki help_wiki_tooltip: Help en wikisite voor het project history: Geschiedenis - history_tooltip: Wijzigingensetgeschiedenis home: home home_tooltip: Naar thuislocatie gaan inbox: Postvak IN ({{count}}) @@ -899,13 +908,9 @@ nl: user_diaries: Gebruikersdagboeken user_diaries_tooltip: Gebruikersdagboeken bekijken view: Bekijken - view_tooltip: Kaarten bekijken + view_tooltip: Kaart bekijken welcome_user: Welkom, {{user_link}} welcome_user_link_tooltip: Uw gebruikerspagina - map: - coordinates: "Coördinaten:" - edit: Bewerken - view: Bekijken message: delete: deleted: Het bericht is verwijderd @@ -936,10 +941,14 @@ nl: send_message_to: Een persoonlijk bericht naar {{name}} versturen subject: Onderwerp title: Bericht verzenden + no_such_message: + body: Er is geen bericht met dat ID. + heading: Bericht bestaat niet + title: Dat bericht bestaat niet no_such_user: - body: Sorry, er is geen gebruiker of bericht met die naam of id - heading: Deze gebruiker of dit bericht bestaat niet - title: De gebruiker of het bericht bestaat niet + body: Er is geen gebruiker die naam. + heading: Deze gebruiker bestaat niet + title: Deze gebruiker bestaat niet outbox: date: Datum inbox: Postvak IN @@ -963,6 +972,9 @@ nl: title: Bericht lezen to: Aan unread_button: Markeren als ongelezen + wrong_user: "U bent aangemeld als \"{{user}}\", maar het bericht dat u wilt lezen is niet aan die gebruiker gericht.\nMeld u aan als de juiste gebruiker om het te lezen." + reply: + wrong_user: U bent aangemeld als "{{user}}", maar het bericht waarop u wilt antwoorden is niet aan die gebruiker gericht. Meld u aan als de juiste gebruiker om te antwoorden. sent_message_summary: delete_button: Verwijderen notifier: @@ -983,8 +995,9 @@ nl: hopefully_you_1: Iemand - hopelijk u - wil zijn e-mailadres op hopefully_you_2: "{{server_url}} wijzigen naar {{new_address}}." friend_notification: + befriend_them: U kunt deze gebruiker ook als vriend toevoegen op {{befriendurl}}. had_added_you: "{{user}} heeft u toegevoegd als vriend op OpenStreetMap." - see_their_profile: U kunt zijn/haar profiel bekijken op {{userurl}} en deze gebruiker ook als vriend toevoegen. + see_their_profile: U kunt zijn/haar profiel bekijken op {{userurl}}. subject: "[OpenStreetMap] {{user}} heeft u als vriend toegevoegd" gpx_notification: and_no_tags: en geen labels. @@ -1210,6 +1223,9 @@ nl: sidebar: close: Sluiten search_results: Zoekresultaten + time: + formats: + friendly: "%e %B %Y om %H:%M" trace: create: trace_uploaded: Uw track is geüpload en staat te wachten totdat hij in de database wordt opgenomen. Dit gebeurt meestal binnen een half uur. U ontvangt dan een e-mail. @@ -1243,7 +1259,7 @@ nl: no_such_user: body: Sorry, er is geen gebruiker {{user}}. Controleer de spelling, of misschien is de verwijzing waarop u geklikt hebt onjuist. heading: De gebruiker {{user}} bestaat niet - title: De gebruiker bestaat niet + title: Deze gebruiker bestaat niet offline: heading: De opslag van GPX-bestanden is niet beschikbaar message: Het systeem voor het opslaan en uploaden van GPX-bestanden is op het moment niet beschikbaar. @@ -1313,15 +1329,20 @@ nl: user: account: current email address: "Huidige e-mailadres:" + delete image: Huidige afbeelding verwijderen email never displayed publicly: (nooit openbaar gemaakt) flash update success: De gebruikersinformatie is bijgewerkt. flash update success confirm needed: De gebruikersinformatie is bijgewerkt. Controleer uw e-mail om uw nieuwe e-mailadres te bevestigen. home location: "Thuislocatie:" + image: "Afbeelding:" + image size hint: (vierkante afbeeldingen van minstens 100x100 pixels werken het beste) + keep image: Huidige afbeelding behouden latitude: "Breedtegraad:" longitude: "Lengtegraad:" make edits public button: Al mijn wijzigingen openbaar maken my settings: Mijn instellingen new email address: "Nieuw e-mailadres:" + new image: Afbeelding toevoegen no home location: Er is geen thuislocatie ingevoerd. preferred languages: "Voorkeurstalen:" profile description: "Profielbeschrijving:" @@ -1335,6 +1356,7 @@ nl: public editing note: heading: Publiek bewerken text: Op dit moment zijn uw bewerkingen anoniem en kunnen andere gebruikers u geen berichten sturen of uw locatie zien. Om uw bewerkingen weer te kunnen geven en andere gebruikers in staat te stellen in contact met u te komen, kunt u op de onderstaande knop klikken. Sinds de overgang naar versie 0.6 van de API kunnen alleen publieke gebruikers de kaartgegevens bewerken (meer informatie).
  • Uw e-mailadres wordt niet publiek gemaakt door uw bewerkingen publiek te maken.
  • Deze handeling kan niet ongedaan gemaakt worden en alle nieuwe gebrukers zijn nu standaard publiek.
+ replace image: Huidige afbeelding vervangen return to profile: Terug naar profiel save changes button: Wijzgingen opslaan title: Gebruiker bewerken @@ -1353,9 +1375,6 @@ nl: success: Uw e-mailadres is bevestigd. Dank u wel voor het registreren! filter: not_an_administrator: U moet beheerder zijn om deze handeling uit te kunnen voeren. - friend_map: - nearby mapper: "Dichtbijzijnde mapper: [[nearby_user]]" - your location: Uw locatie go_public: flash success: Al uw bewerkingen zijn nu openbaar en u kunt bewerken. login: @@ -1368,7 +1387,12 @@ nl: lost password link: Wachtwoord vergeten? password: "Wachtwoord:" please login: Aanmelden of {{create_user_link}}. + remember: "Aanmeldgegevens onthouden:" title: Aanmelden + logout: + heading: Afmelden van OpenStreetMap + logout_button: Afmelden + title: Afmelden lost_password: email address: "E-mailadres:" heading: Wachtwoord vergeten? @@ -1401,6 +1425,10 @@ nl: body: Sorry, er is geen gebruiker met de naam {{user}}. Controleer de spelling, of misschien is de link waarop je klikte onjuist. heading: De gebruiker {{user}} bestaat niet title: Deze gebruiker bestaat niet + popup: + friend: Vriend + nearby mapper: Dichtbijzijnde mapper + your location: Uw locatie remove_friend: not_a_friend: "{{name}} staat niet in uw vriendelijst." success: "{{name}} is verwijderd uit uw vriendenlijst." @@ -1417,17 +1445,14 @@ nl: view: activate_user: gebruiker actief maken add as friend: vriend toevoegen - add image: Afbeelding toevoegen ago: ({{time_in_words_ago}} geleden) block_history: blokkades voor mij blocks by me: blokkades door mij blocks on me: blokkades door mij - change your settings: Instellingen aanpassen confirm: Bevestigen create_block: gebruiker blokkeren created from: "Aangemaakt door:" deactivate_user: gebruiker inactief maken - delete image: Afbeelding verwijderen delete_user: gebruiker verwijderen description: Beschrijving diary: dagboek @@ -1435,7 +1460,7 @@ nl: email address: "E-mailadres:" hide_user: gebruikers verbergen if set location: Als u uw locatie instelt, verschijnt er hieronder een kaart. U kunt de locatie instellen in uw {{settings_link}}. - km away: "{{count}}km ver" + km away: "{{count}} km verwijderd" m away: "{{count}} m verwijderd" mapper since: "Mapper sinds:" moderator_history: ingesteld blokkades bekijken @@ -1443,12 +1468,11 @@ nl: my edits: mijn bewerkingen my settings: mijn instellingen my traces: mijn tracks - my_oauth_details: Mijn OAuth-gegevens bekijken - nearby users: "Dichtbijzijnde mappers:" + nearby users: Andere dichtbijzijnde gebruikers new diary entry: nieuw dagboekbericht no friends: U hebt nog geen vrienden toegevoegd. - no home location: Geen thuislocatie ingesteld. - no nearby users: Er zijn geen dichtbijzijnde mappers. + no nearby users: Er zijn geen andere gebruikers die hebben aangegeven in de buurt te mappen. + oauth settings: Oauth-instellingen remove as friend: vriend verwijderen role: administrator: Deze gebruiker is beheerder @@ -1463,8 +1487,6 @@ nl: settings_link_text: voorkeuren traces: tracks unhide_user: gebruiker weer zichtbaar maken - upload an image: Afbeelding uploaden - user image heading: Gebruikersafbeelding user location: Gebruikerslocatie your friends: Uw vrienden user_block: diff --git a/config/locales/nn.yml b/config/locales/nn.yml index 0a6376099..ef6da4da1 100644 --- a/config/locales/nn.yml +++ b/config/locales/nn.yml @@ -1,7 +1,9 @@ # Messages for Norwegian Nynorsk (‪Norsk (nynorsk)‬) # Exported from translatewiki.net # Export driver: syck +# Author: Eirik # Author: Gunnernett +# Author: Nghtwlkr nn: activerecord: attributes: @@ -13,7 +15,75 @@ nn: friend: Ven user: Brukar browse: + changeset_details: + box: boks map: deleted: Sletta larger: area: Sjå området på eit større kart + loading: Lastar inn … + node: + download_xml: Last ned XML + view_history: vis historikk + node_history: + download_xml: Last ned XML + paging_nav: + of: av + relation_details: + members: "Medlemmar:" + relation_member: + entry_role: "{{type}} {{name}} som {{role}}" + type: + node: Punkt + relation: Relasjon + way: Veg + start_rjs: + data_frame_title: Data + data_layer_name: Data + load_data: Last data + loading: Lastar... + object_list: + back: Syn objektliste + details: Detaljer + heading: Objektliste + wait: Vent... + way: + download: "{{download_xml_link}}, {{view_history_link}} eller {{edit_link}}" + download_xml: Last ned XML + edit: rediger + view_history: vis historikk + way: Veg + way_title: "Veg: {{way_name}}" + way_details: + also_part_of: + one: også del av vegen {{related_ways}} + other: også del av vegane {{related_ways}} + nodes: Punkt + part_of: "Del av:" + way_history: + download_xml: Last ned XML + view_details: syn detaljer + geocoder: + distance: + one: omkring 1 km + other: omkring {{count}}km + zero: mindre enn 1 km + time: + formats: + friendly: "%e %B %Y kl %H:%M" + trace: + edit: + download: last ned + trace: + count_points: "{{count}} punkt" + in: i + map: kart + view: + download: last ned + filename: "Filnamn:" + map: kart + none: Inga + owner: "Eigar:" + user: + account: + image: "Bilete:" diff --git a/config/locales/no.yml b/config/locales/no.yml index 15e2f231f..8c127eea1 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -75,6 +75,11 @@ way: Vei way_node: Veinode way_tag: Veimerkelapp + application: + require_cookies: + cookies_needed: Du ser ut til å ha deaktivert informasjonskapsler. Aktiver informasjonskapsler i nettleseren din før du fortsetter. + setup_user_auth: + blocked: Din tilgang til API-et er blokkert. Logg inn på nettstedet for å finne ut mer. browse: changeset: changeset: "Endringssett: {{id}}" @@ -315,12 +320,18 @@ recent_entries: "Nye oppføringer i dagboka:" title: Brukernes dagbøker user_title: Dagboken for {{user}} + location: + edit: Rediger + location: "Posisjon:" + view: Vis new: title: Ny dagbokoppføring no_such_entry: + body: Det er ingen dagbokinnlegg eller kommentar med ID {{id}}. Sjekk om du har skrevet feil eller om lenka du klikket er feil. heading: Ingen oppføring med {{id}} title: Ingen slik dagbokoppføring no_such_user: + body: Beklager, det finnes ingen bruker med navnet {{user}}. Vennligst sjekk at du har stavet riktig, eller kanskje lenken du fulgte er feil. heading: Brukeren {{user}} finnes ikke title: Ingen bruker funnet view: @@ -352,6 +363,9 @@ output: Utdata paste_html: Lim inn HTML som skal bygges inn i nettsted scale: Skala + too_large: + body: Dette området er for stort for å bli eksportert som OpenStreetMap XML-data. Zoom inn eller velg et mindre område. + heading: For stort område zoom: Zoom start_rjs: add_marker: Legg til en markør på kartet @@ -366,6 +380,7 @@ title: geonames: Posisjon fra GeoNames osm_namefinder: "{{types}} fra OpenStreetMap Namefinder" + osm_nominatim: Sted fra OpenStreetMap Nominatim types: cities: Byer places: Steder @@ -394,6 +409,7 @@ geonames: Resultat fra GeoNames latlon: Resultat fra Internt osm_namefinder: Resultat fra OpenStreetMap Namefinder + osm_nominatim: Resultat fra OpenStreetMap Nominatim uk_postcode: Resultat fra NPEMap / FreeThe Postcode us_postcode: Resultat fra Geocoder.us search_osm_namefinder: @@ -409,23 +425,27 @@ bank: Bank bar: Bar bench: Benk + bicycle_parking: Sykkelparkering bicycle_rental: Sykkelutleie brothel: Bordell bureau_de_change: Vekslingskontor bus_station: Busstasjon cafe: Kafé car_rental: Bilutleie + car_sharing: Bildeling car_wash: Bilvask casino: Kasino cinema: Kino clinic: Klinikk club: Klubb college: Høyskole + courthouse: Rettsbygning crematorium: Krematorium dentist: Tannlege doctors: Leger dormitory: Sovesal drinking_water: Drikkevann + driving_school: Kjøreskole embassy: Ambassade emergency_phone: Nødtelefon fast_food: Hurtigmat @@ -444,6 +464,7 @@ library: Bibliotek market: Marked marketplace: Markedsplass + mountain_rescue: Fjellredning nightclub: Nattklubb office: Kontor park: Park @@ -457,9 +478,14 @@ prison: Fengsel pub: Pub public_building: Offentlig bygning + reception_area: Oppsamlingsområde + recycling: Resirkuleringspunkt restaurant: Restaurant retirement_home: Gamlehjem + sauna: Sauna school: Skole + shop: Butikk + shopping: Handel studio: Studio supermarket: Supermarked taxi: Drosje @@ -467,6 +493,8 @@ theatre: Teater toilets: Toaletter townhall: Rådhus + university: Universitet + vending_machine: Vareautomat veterinary: Veterinærklinikk wifi: WiFi-tilgangspunkt youth_centre: Ungdomssenter @@ -480,6 +508,7 @@ church: Kirke city_hall: Rådhus dormitory: Sovesal + entrance: Bygningsinngang farm: Gårdsbygg flats: Leiligheter garage: Garasje @@ -501,11 +530,25 @@ "yes": Bygning highway: bus_stop: Busstopp + construction: Motorvei under konstruksjon cycleway: Sykkelsti + distance_marker: Avstandsmarkør motorway: Motorvei + motorway_junction: Motorveikryss + path: Sti pedestrian: Gangvei + primary: Primær vei + primary_link: Primær vei road: Vei + secondary: Sekundær vei + secondary_link: Sekundær vei steps: Trapper + tertiary: Tertiær vei + track: Sti + trunk: Hovedvei + trunk_link: Hovedvei + unclassified: Uklassifisert vei + unsurfaced: Vei uten dekke historic: archaeological_site: Arkeologisk plass battlefield: Slagmark @@ -541,64 +584,92 @@ park: Park quarry: Steinbrudd railway: Jernbane + recreation_ground: Idrettsplass reservoir: Reservoar residential: Boligområde vineyard: Vingård wetland: Våtland wood: Skog leisure: + beach_resort: Strandsted + common: Allmenning fishing: Fiskeområde garden: Hage golf_course: Golfbane ice_rink: Skøytebane + marina: Båthavn miniature_golf: Minigolf nature_reserve: Naturreservat park: Park playground: Lekeplass + recreation_ground: Idrettsplass + slipway: Slipp sports_centre: Sportssenter stadium: Stadion swimming_pool: Svømmebaseng + track: Løpebane water_park: Vannpark natural: + bay: Bukt beach: Strand + cape: Nes cave_entrance: Huleinngang channel: Kanal cliff: Klippe coastline: Kystlinje crater: Krater + feature: Egenskap + fell: Fjellskrent fjord: Fjord geyser: Geysir glacier: Isbre + heath: Vidde + hill: Ås island: Øy + land: Land + marsh: Sump + moor: Myr mud: Gjørme peak: Topp + point: Punkt reef: Rev + ridge: Rygg river: Elv rock: Stein + scree: Ur scrub: Kratt + shoal: Grunning spring: Kilde + strait: Stred tree: Tre valley: Dal volcano: Vulkan water: Vann + wetland: Våtmark wetlands: Våtland wood: Skog place: airport: Flyplass city: By country: Land + county: Fylke farm: Gård + hamlet: Grend house: Hus houses: Hus island: Øy islet: Holme + locality: Plass + moor: Myr municipality: Kommune postcode: Postnummer region: Område sea: Hav + state: Delstat subdivision: Underavdeling suburb: Forstad town: Tettsted + village: Landsby railway: abandoned: Forlatt jernbane construction: Jernbane under konstruksjon @@ -606,10 +677,13 @@ disused_station: Nedlagt jernbanestasjon halt: Togstopp historic_station: Historisk jernbanestasjon + junction: Jernbanekryss platform: Jernbaneperrong station: Jernbanestasjon subway: T-banestasjon subway_entrance: T-baneinngang + tram: Sporvei + tram_stop: Trikkestopp shop: alcohol: Utenfor lisens art: Kunstbutikk @@ -675,13 +749,16 @@ alpine_hut: Fjellhytte artwork: Kunstverk attraction: Attraksjon + bed_and_breakfast: Bed and Breakfast cabin: Hytte camp_site: Teltplass caravan_site: Campingplass + chalet: Fjellhytte guest_house: Gjestehus hostel: Vandrerhjem hotel: Hotell information: Informasjon + lean_to: Lenne inntil motel: Motell museum: Museum picnic_site: Piknikplass @@ -693,8 +770,10 @@ canal: Kanal dam: Demning ditch: Grøft + mooring: Fortøyning rapids: Stryk river: Elv + riverbank: Elvebredd stream: Strøm waterfall: Foss javascripts: @@ -702,19 +781,24 @@ base: cycle_map: Sykkelkart noname: IntetNavn + site: + edit_disabled_tooltip: Zoom inn for å redigere kartet + edit_tooltip: Rediger kartet + edit_zoom_alert: Du må zoome inn for å redigere kartet + history_disabled_tooltip: Zoom inn for å vise redigeringer i dette området + history_tooltip: Vis redigeringer for dette området + history_zoom_alert: Du må zoome inn for å vise redigeringer i dette området layouts: donate: Støtt OpenStreetMap ved {{link}} til Hardware Upgrade Fund (et fond for maskinvareoppgraderinger). donate_link_text: donering edit: Rediger - edit_tooltip: Rediger kart export: Eksporter export_tooltip: Eksporter kartdata gps_traces: GPS-spor - gps_traces_tooltip: Behandle spor + gps_traces_tooltip: Behandle GPS-spor help_wiki: Hjelp & Wiki help_wiki_tooltip: Hjelp- & Wiki-side for prosjektet history: Historikk - history_tooltip: Historikk for endringssett home: hjem home_tooltip: Gå til hjemmeposisjon inbox: innboks ({{count}}) @@ -749,13 +833,9 @@ user_diaries: Brukerdagbok user_diaries_tooltip: Vis brukerens dagbok view: Vis - view_tooltip: Vis kart + view_tooltip: Vis kartet welcome_user: Velkommen, {{user_link}} welcome_user_link_tooltip: Din brukerside - map: - coordinates: "Koordinater:" - edit: Rediger - view: Vis message: delete: deleted: Melding slettet @@ -786,10 +866,14 @@ send_message_to: Send en ny melding til {{name}} subject: Emne title: Send melding + no_such_message: + body: Det er ingen melding med den ID-en. + heading: Ingen melding funnet + title: Ingen melding funnet no_such_user: - body: Det er ingen bruker eller melding med det navnet eller den id-en - heading: Ingen bruker eller melding funnet - title: Ingen bruker eller melding funnet + body: Det er ingen bruker med det navnet. + heading: Ingen bruker funnet + title: Ingen bruker funnet outbox: date: Dato inbox: innboks @@ -813,6 +897,9 @@ title: Les melding to: Til unread_button: Marker som ulest + wrong_user: Du er logget inn som «{{user}}», men meldingen du ønsker å lese ble ikke sendt til den brukeren. Logg inn som korrekt bruker for å lese. + reply: + wrong_user: Du er logget inn som «{{user}}», men meldingen du ønsker å svare på ble ikke sendt til den brukeren. Logg inn som korrekt bruker for å svare. sent_message_summary: delete_button: Slett notifier: @@ -833,8 +920,9 @@ hopefully_you_1: Noen (forhåpentligvis deg) ønsker å endre e-postadressen for hopefully_you_2: "{{server_url}} til {{new_address}}." friend_notification: + befriend_them: Du kan også legge dem til som venn på {{befriendurl}}. had_added_you: "{{user}} har lagt deg til som venn på OpenStreetMap." - see_their_profile: Du kan se profilen deres på {{userurl}} og legge dem til som venn også om du vil det. + see_their_profile: Du kan se profilen deres på {{userurl}}. subject: "[OpenStreetMap] {{user}} la deg til som en venn" gpx_notification: and_no_tags: og ingen merkelapper. @@ -846,6 +934,7 @@ subject: "[OpenStreetMap] Feil under import av GPX" greeting: Hei, success: + loaded_successfully: lastet med {{trace_points}} av {{possible_points}} mulige punkter. subject: "[OpenStreetMap] Vellykket import av GPX" with_description: med beskrivelse your_gpx_file: Det ser ut som GPX-filen din @@ -859,6 +948,7 @@ click_the_link: Om dette er deg, vennligst klikk på lenken under for å tilbakestille passordet. greeting: Hei, hopefully_you_1: Noen (muligens deg) har bedt om å tilbakestille passordet på denne + hopefully_you_2: e-postadressser for openstreetmap.org-konto. message_notification: footer1: Du kan også lese meldingen på {{readurl}} footer2: og du kan svare til {{replyurl}} @@ -868,23 +958,31 @@ signup_confirm: subject: "[OpenStreetMap] Bekreft din e-postadresse" signup_confirm_html: + click_the_link: Hvis dette er deg, så er du velkommen! Klikke lenka nedenfor for å bekrefte kontoen og les videre for mer informasjon om OpenStreetMap current_user: En liste over nåværende brukere i kategorier, basert på hvor i verden de er, er tilgjengelig fra Category:Users_by_geographical_region. + get_reading: Start å lese om OpenStreetMap på wikien, få med deg de siste nyhetene via OpenStreetMap-bloggen eller Twitter. Eller bla gjennom OpenStreetMaps grunnlegger Steve Coasts OpenGeoData-blogg for hele historien til prosjektet, som også har engelske podkaster du kan lytte til. greeting: Hei der! + hopefully_you: Noen (forhåpentligvis deg) ønsker å opprette en konto på introductory_video: Du kan se en {{introductory_video_link}}. more_videos: Det er {{more_videos_link}}. more_videos_here: flere videoer her + user_wiki_page: Det anbefales at du oppretter en brukerside på wiki-en som inkluderer kategorimerker som viser hvor du er, f.eks [[Category:Users_in_London]]. video_to_openstreetmap: introduksjonsvideo til OpenStreetMap wiki_signup: Du vil kanskje melde deg inn i OpenStreetMap-wikien også. signup_confirm_plain: blog_and_twitter: "Få med deg de siste nyhetene gjennom OpenStreetMap-bloggen eller Twitter:" click_the_link_1: Om dette er deg, velkommen! Vennligst klikk på lenken under for å bekrefte din click_the_link_2: konto og les videre for mer informasjon om OpenStreetMap. + current_user_1: En liste over nåværende brukere i kategorier, basert på hvor i verden current_user_2: "de er, er tilgjengelig fra:" greeting: Hei der! + hopefully_you: Noen (forhåpentligvis deg) ønsker å opprette en konto på introductory_video: "Du kan se en introduksjonsvideo for OpenStreetMap her:" more_videos: "Det er flere videoer her:" + opengeodata: "OpenGeoData.org er bloggen til OpenStreetMap-grunnlegger Steve Coast, og den har podcast-er også:" the_wiki: "Les mer om OpenStreetMap på wikien:" - user_wiki_1: Det anbefales at du oppretter en wikibrukerside som inkluderer + user_wiki_1: Det anbefales at du oppretter en brukerside på wiki-en som inkluderer + user_wiki_2: kategorimerker som viser hvor du er, f.eks [[Category:Users_in_London]]. wiki_signup: "Du vil kanskje også melde deg inn i OpenStreetMap-wikien på:" oauth: oauthorize: @@ -904,11 +1002,15 @@ submit: Rediger title: Rediger ditt programvare form: + allow_read_gpx: les deres private GPS-spor. + allow_read_prefs: les brukerinnstillingene deres. allow_write_api: endre kartet. allow_write_diary: opprett dagbokoppføringer, kommentarer og finn venner. allow_write_gpx: last opp GPS-spor. + allow_write_prefs: endre brukerinnstillingene deres. callback_url: "URL til sårbarhetsinformasjon:" name: Navn + requests: "Be om følgende tillatelser fra brukeren:" required: Påkrevet support_url: Støtte-URL url: "URL til sårbarhetsinformasjon:" @@ -933,19 +1035,23 @@ allow_write_diary: opprett dagbokoppføringer, kommentarer og finn venner. allow_write_gpx: last opp GPS-spor. allow_write_prefs: endre brukerinnstillingene deres. - authorize_url: "URL til sårbarhetsinformasjon:" + authorize_url: "Godkjenn URL:" edit: Rediger detaljer key: "Forbrukernøkkel:" requests: "Ber om følgende tillatelser fra brukeren:" secret: "Forbrukerhemmelighet:" support_notice: Vi støtter HMAC-SHA1 (anbefalt) så vel som ren tekst i ssl-modus. title: OAuth-detaljer for {{app_name}} - url: "URL til sårbarhetsinformasjon:" + url: "URL for forespørelsnøkkel:" update: flash: Oppdaterte klientinformasjonen site: edit: anon_edits_link_text: Finn ut hvorfor dette er tilfellet. + flash_player_required: Du trenger en Flash-spiller for å kunne bruke Potlatch, Flasheditoren for OpenStreetMap. Du kan laste ned Flash Player fra Adobe.com. Flere andre alternativ er også tilgjengelig for redigering av OpenStreetMap. + not_public: Du har ikke satt dine redigeringer til å være offentlige. + not_public_description: Du kan ikke lenger redigere kartet om du ikke gjør det. Du kan gjøre dine redigeringer offentlige fra din {{user_page}}. + potlatch_unsaved_changes: Du har ulagrede endringer. (For å lagre i Potlatch, må du fjerne markeringen av gjeldende vei eller punkt hvis du redigerer i live-modues eller klikke lagre hvis du har en lagreknapp.) user_page_link: brukerside index: js_1: Du har en nettleser som ikke støtter JavaScript eller så har du slått av JavaScript. @@ -1018,6 +1124,7 @@ trunk: Hovedvei tunnel: Streket kant = tunnel unclassified: Uklassifisert vei + unsurfaced: Vei uten dekke wood: Ved heading: Legend for z{{zoom_level}} search: @@ -1029,6 +1136,9 @@ sidebar: close: Lukk search_results: Søkeresultater + time: + formats: + friendly: "%e %B %Y kl. %H:%M" trace: create: trace_uploaded: Din GPX-fil er last opp og venter på å bli satt inn i databasen. Dette skjer vanligvis innen en halvtime og en e-post blir sendt til deg når det er gjort. @@ -1063,12 +1173,18 @@ body: Beklager, det finnes ingen bruker med navnet {{user}}. Vennligst sjekk at du har stavet riktig, eller kanskje lenken du fulgte er feil. heading: Brukeren {{user}} finnes ikke title: Ingen bruker funnet + offline: + heading: GPX-lagring er utilgjengelig + message: Systemet for opplasting og lagring av GPX-filer er ikke tilgjengelig for øyeblikket. + offline_warning: + message: Systemet for opplasting av GPX-filer er ikke tilgjengelig for øyeblikket. trace: ago: "{{time_in_words_ago}} siden" by: av count_points: "{{count}} punkter" edit: rediger edit_map: Rediger kart + identifiable: IDENTIFISERBAR in: i map: kart more: mer @@ -1076,6 +1192,7 @@ private: PRIVAT public: OFFENTLIG trace_details: Vis detaljer for spor + trackable: SPORBAR view_map: Vis kart trace_form: description: Beskrivelse @@ -1124,26 +1241,33 @@ user: account: current email address: "Nåværende e-postadresse:" + delete image: Fjern gjeldende bilde email never displayed publicly: " (vis aldri offentlig)" flash update success: Brukerinformasjon oppdatert. flash update success confirm needed: Brukerinformasjon oppdatert. Sjekk eposten din for å bekrefte din epostadresse. home location: "Hjemmeposisjon:" + image: "Bilde:" + image size hint: (kvadratiske bilder som er minst 100x100 fungerer best) + keep image: Behold gjeldende bilde latitude: "Breddegrad:" longitude: "Lengdegrad:" make edits public button: Gjør alle mine redigeringer offentlig my settings: Mine innstillinger new email address: "Ny e-postadresse:" + new image: Legg til et bilde no home location: Du har ikke skrevet inn din hjemmelokasjon. preferred languages: "Foretrukne språk:" profile description: "Profilbeskrivelse:" public editing: disabled: Deaktivert og kan ikke redigere data. Alle tidligere redigeringer er anonyme. disabled link text: hvorfor can jeg ikke redigere? + enabled: Aktivert. Ikke anonym og kan redigere data. enabled link: http://wiki.openstreetmap.org/wiki/Anonymous_edits enabled link text: hva er dette? heading: "Offentlig redigering:" public editing note: heading: Offentlig redigering + replace image: Erstatt gjeldende bilde return to profile: Returner til profil save changes button: Lagre endringer title: Rediger konto @@ -1162,9 +1286,6 @@ success: E-postadressen din er bekreftet - takk for at du registrerte deg. filter: not_an_administrator: Du må være administrator for å gjøre det. - friend_map: - nearby mapper: "Bruker i nærheten: [[nearby_user]]" - your location: Din posisjon go_public: flash success: Alle dine redigeringer er nå offentlig, og du har lov til å redigere. login: @@ -1177,7 +1298,12 @@ lost password link: Mistet passordet ditt? password: "Passord:" please login: Logg inn eller {{create_user_link}}. + remember: "Huske meg:" title: Logg inn + logout: + heading: Logg ut fra OpenStreetMap + logout_button: Logg ut + title: Logg ut lost_password: email address: "E-postadresse:" heading: Glemt passord? @@ -1193,17 +1319,27 @@ new: confirm email address: "Bekreft e-postadresse:" confirm password: "Bekreft passord:" + contact_webmaster: Kontakt webmaster for å opprette en konto. Vi vil prøve å behandle forespørselen så fort som mulig. display name: "Visningsnavn:" display name description: Ditt offentlig fremviste brukernavn. Du kan endre dette senere i innstillingene. email address: "E-postadresse:" fill_form: Fyll ut skjemaet og vi vil sende deg en e-post for å aktivere kontoen din. + flash create success message: Bruker ble opprettet. Se etter er en bekreftelsesmelding i e-posten din, og du vil lage kart på null tid :-)

Legg merke til at du ikke kan logge inn før du har bekreftet e-postadresssen din.

Hvis du bruker en antispam-løsning som krever bekreftelse fra avsender, så må du hvitliste webmaster@openstreetmap.org (siden vi ikke er i stand til å svare på slike forespørsler om bekreftelse). heading: Opprett en brukerkonto + license_agreement: Ved å opprette en konto, godtar du at alle data du sender inn til OpenStreetMap-prosjektet vil bli (ikke-eksklusivt) lisensiert under denne Creative Commons-lisensen (by-sa). + no_auto_account_create: Beklageligvis kan vi for øyeblikket ikke opprette en konto for deg automatisk. + not displayed publicly: Ikke vist offentlig (se vår personvernpolitikk) password: "Passord:" signup: Registrering title: Opprett konto no_such_user: + body: Det er ingen bruker med navnet {{user}}. Sjekk om du har skrevet navnet feil eller om lenka du klikket er feil. heading: Brukeren {{user}} finnes ikke title: Ingen bruker funnet + popup: + friend: Venn + nearby mapper: Bruker i nærheten + your location: Din posisjon remove_friend: not_a_friend: "{{name}} er ikke en av dine venner." success: "{{name}} ble fjernet fra dine venner" @@ -1220,23 +1356,21 @@ view: activate_user: aktiver denne brukeren add as friend: legg til som en venn - add image: Legg til bilde ago: ({{time_in_words_ago}} siden) block_history: vis mottatte blokkeringer blocks by me: blokkeringer utført av meg blocks on me: mine blokkeringer - change your settings: endre dine innstillinger confirm: Bekreft create_block: blokker denne brukeren created from: "Opprettet fra:" deactivate_user: deaktiver denne brukeren - delete image: Slett bilde delete_user: slett denne brukeren description: Beskrivelse diary: dagbok edits: redigeringer email address: "E-postadresse:" hide_user: skjul denne brukeren + if set location: Hvis du setter din posisjon, så vil et fint kart og ting vises her. Du kan sette din hjemmeposisjon på din {{settings_link}}-side. km away: "{{count}}km unna" m away: "{{count}}m unna" mapper since: "Bruker siden:" @@ -1245,12 +1379,11 @@ my edits: mine redigeringer my settings: mine innstillinger my traces: mine spor - my_oauth_details: Vis mine OAuth-detaljer - nearby users: "Næreliggende brukere:" + nearby users: Andre nærliggende brukere new diary entry: ny dagbokoppføring no friends: Du har ikke lagt til noen venner ennå. - no home location: Ingen hjemmelokasjon satt. - no nearby users: Det er ingen brukere som innrømmer kartlegging i ditt område ennå. + no nearby users: Det er ingen andre brukere som innrømmer kartlegging i ditt område ennå. + oauth settings: oauth-innstillinger remove as friend: fjern som venn role: administrator: Denne brukeren er en administrator @@ -1265,8 +1398,6 @@ settings_link_text: innstillinger traces: spor unhide_user: stopp å skjule denne brukeren - upload an image: Last opp et bilde - user image heading: Brukerbilde user location: Brukerens posisjon your friends: Dine venner user_block: @@ -1276,6 +1407,7 @@ title: Blokkeringer av {{name}} blocks_on: empty: "{{name}} har ikke blitt blokkert ennå." + heading: Liste over blokkeringer av {{name}} title: Blokkeringer av {{name}} create: flash: Opprettet en blokkering av bruker {{name}}. @@ -1284,6 +1416,8 @@ edit: back: Vis alle blokkeringer heading: Endrer blokkering av {{name}} + needs_view: Må brukeren logge inn før denne blokkeringen blir fjernet? + period: Hvor lenge, fra nå, brukeren vil bli blokkert fra API-en. reason: Årsaken til hvorfor {{name}} blir blokkert. Vennligst vær så rolig og rimelig som mulig og oppgi så mange detaljer du kan om situasjonen. Husk at ikke alle brukere forstår felleskapssjargongen så prøv å bruke lekmannsuttrykk. show: Vis denne blokkeringen submit: Oppdater blokkering @@ -1306,6 +1440,8 @@ new: back: Vis alle blokkeringer heading: Oppretter blokkering av {{name}} + needs_view: Brukeren må logge inn før denne blokkeringen blir fjernet. + period: Hvor lenge, fra nå, brukeren vil bli blokkert fra API-en. reason: Årsaken til at {{name}} blir blokkert. Vennligst vær så rolig og rimelig som mulig og gi så mange detaljer du kan om situasjonen, og husk på at meldingen blir synlig for offentligheten. Husk på at ikke alle brukere forstår fellesskapssjargongen så prøv å bruke lekmannsuttrykk. submit: Opprett blokkering title: Oppretter blokkering av {{name}} @@ -1313,6 +1449,7 @@ tried_waiting: Jeg har gitt brukeren rimelig med tid til å svare på disse kommunikasjonene. not_found: back: Tilbake til indeksen + sorry: Beklager, brukerblokkeringen med ID {{id}} ble ikke funnet. partial: confirm: Er du sikker? creator_name: Opprettet av @@ -1336,8 +1473,12 @@ time_future: Denne blokkeringen ender i {{time}} title: Tilbakekaller blokkering på {{block_on}} show: + back: Vis alle blokkeringer confirm: Er du sikker? edit: Rediger + heading: "{{block_on}} blokkert av {{block_by}}" + needs_view: Brukeren må logge inn før denne blokkeringen blir fjernet. + reason: "Årsak for blokkering:" revoke: Tilbakekall! show: Vis status: Status diff --git a/config/locales/pl.yml b/config/locales/pl.yml index d79e5a5eb..2f8136e73 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -323,6 +323,10 @@ pl: recent_entries: "Ostatnie wpisy do dziennika:" title: Dzienniki użytkowników user_title: Dziennik dla {{user}} + location: + edit: Edytuj + location: "Położenie:" + view: Podgląd new: title: Nowy wpis do dziennika no_such_entry: @@ -859,15 +863,13 @@ pl: donate: Wspomóż Projekt OpenStreetMap {{link}} na Konto Aktualizacji Naszego Sprzętu. donate_link_text: dokonując darowizny edit: Edycja - edit_tooltip: Edycja mapy export: Eksport export_tooltip: Eksport danych mapy gps_traces: Ślady GPS - gps_traces_tooltip: Zarządzaj śladami + gps_traces_tooltip: Zarządzanie śladami GPS help_wiki: Pomoc & Wiki help_wiki_tooltip: Pomoc i strony Wiki projektu history: Zmiany - history_tooltip: Historia zestawów zmian home: główna home_tooltip: Przejdź do strony głównej inbox: poczta ({{count}}) @@ -905,10 +907,6 @@ pl: view_tooltip: Zobacz mapę welcome_user: Witaj, {{user_link}} welcome_user_link_tooltip: Strona użytkownika - map: - coordinates: "Współrzędne:" - edit: Edycja - view: Mapa message: delete: deleted: Wiadomość usunięta @@ -1155,7 +1153,7 @@ pl: tunnel: Kreskowany obrys – tunel unclassified: Drogi niesklasyfikowane unsurfaced: Droga nieutwardzona - wood: Las + wood: Puszcza heading: Legenda dla przybliżenia {{zoom_level}} search: search: Szukaj @@ -1268,15 +1266,18 @@ pl: user: account: current email address: "Aktualny adres e-mail:" + delete image: Usuń obecną grafikę email never displayed publicly: (nie jest wyświetlany publicznie) flash update success: Zaktualizowano profil użytkownika. flash update success confirm needed: Zaktualizowano profil użytkownika. Sprawdź czy przyszedł już mail potwierdzający nowy adres mailowy. home location: "Lokalizacja domowa:" + image: "Grafika:" latitude: "Szerokość:" longitude: "Długość geograficzna:" make edits public button: Niech wszystkie edycje będą publiczne. my settings: Moje ustawienia new email address: "Nowy adres e-mail:" + new image: Dodaj grafikę no home location: Nie wpisałeś swojej lokalizacji domowej. preferred languages: "Preferowane Języki:" profile description: "Opis profilu:" @@ -1290,6 +1291,7 @@ pl: public editing note: heading: Publiczna edycja text: Obecnie twoje edycje są anonimowe i ludzie nie mogą wysyłać do ciebie wiadomości lub zobaczyć twojej lokalizacji. Aby pokazać, co edytowałeś i umożliwić ludziom kontakt z Tobą za pośrednictwem strony internetowej, kliknij przycisk poniżej. W międzyczasie API 0.6 zmienił się, jedynie publiczni użytkownicy mogą edytować dane mapy. . (dowiedz się dlaczego).
  • Twój adres e-mail nie zostanie ujawniony przez stawanie się publicznym. Tej akcji nie można cofnąć i wszyscy nowi użytkownicy są już domyślnie publiczni.
+ replace image: Zmień obecną grafikę return to profile: Powrót do profilu. save changes button: Zapisz zmiany title: Zmiana ustawień konta @@ -1308,9 +1310,6 @@ pl: success: Twój nowy adres został zatwierdzony, cieszymy się że do nas dołączyłeś! filter: not_an_administrator: Musisz mieć uprawnienia administratora do wykonania tego działania. - friend_map: - nearby mapper: "Mapowicz z okolicy: [[nearby_user]]" - your location: Twoje położenie go_public: flash success: Wszystkie Twoje modyfikacje są od teraz publiczne i jesteś uprawniony/a do edycji. login: @@ -1356,6 +1355,9 @@ pl: body: Niestety nie znaleziono użytkownika o nazwie {{user}}, sprawdź pisownię. Być może użyłeś(aś) linku który był niepoprawny. heading: Użytkownik{{user}} nie istnieje title: Nie znaleziono użytkownika + popup: + nearby mapper: Mapowicz z okolicy + your location: Twoje położenie remove_friend: not_a_friend: "{{name}} nie był Twoim znajomym." success: "{{name}} został wyłączony z grona Twoich znajomych." @@ -1372,17 +1374,14 @@ pl: view: activate_user: aktywuj tego użytkownika add as friend: dodaj do znajomych - add image: Dodaj zdjęcie ago: ({{time_in_words_ago}} temu) block_history: otrzymane blokady blocks by me: nałożone blokady blocks on me: otrzymane blokady - change your settings: zmień swoje ustawienia confirm: Potwierdź create_block: zablokuj tego użytkownika created from: "Stworzony z:" deactivate_user: dezaktywuj tego użytkownika - delete image: Usuń zdjęcie delete_user: usuń to konto description: Opis diary: dziennik @@ -1398,12 +1397,11 @@ pl: my edits: moje zmiany my settings: moje ustawienia my traces: moje ślady - my_oauth_details: Pokaż moje szczegóły OAuth - nearby users: "Najbliżsi użytkownicy:" + nearby users: Najbliżsi użytkownicy new diary entry: nowy wpis w dzienniku no friends: Nie dodałeś/aś jeszcze żadnych znajomych. - no home location: Lokalizacja domowa nie została podana. no nearby users: Nikt nie przyznał się jeszcze do mapowania w tej okolicy. + oauth settings: ustawienia oauth remove as friend: usuń ze znajomych role: administrator: Ten użytkownik jest administratorem @@ -1418,8 +1416,6 @@ pl: settings_link_text: stronie ustawień traces: ślady unhide_user: odkryj tego użytkownika - upload an image: Wgraj zdjęcie - user image heading: Zdjęcie użytkownika user location: Lokalizacja użytkownika your friends: Twoi znajomi user_block: diff --git a/config/locales/ps.yml b/config/locales/ps.yml index 85b5987af..09350f46b 100644 --- a/config/locales/ps.yml +++ b/config/locales/ps.yml @@ -10,6 +10,7 @@ ps: title: سرليک user: کارن friend: + friend: ملګری user: کارن message: title: سرليک @@ -29,5 +30,172 @@ ps: browse: map: deleted: ړنګ شو - map: + node: + edit: سمول + view_history: پېښليک کتل + node_details: + coordinates: "کوارډيناټونه:" + not_found: + type: + way: لار + relation_details: + members: "غړي:" + relation_member: + type: + way: لار + start_rjs: + object_list: + type: + way: لار + timeout: + type: + way: لار + way: + edit: سمول + view_history: پېښليک کتل + way: لار + changeset: + changesets: + user: کارن + diary_entry: + edit: + language: "ژبه:" + save_button: خوندي کول + use_map_link: نخشه کارول + location: + edit: سمول + view: کتل + view: + login: ننوتل + save_button: خوندي کول + geocoder: + description: + types: + cities: ښارونه + towns: ښارګوټي + direction: + east: ختيځ + north: سهېل + north_east: سهېل-ختيځ + north_west: سهېل-لوېديځ + south: سوېل + south_east: سوېل-ختيځ + south_west: سوېل-لوېديځ + west: لوېديځ + search_osm_nominatim: + prefix: + amenity: + bank: بانک + clinic: کلينيک + college: پوهنځی + embassy: سفارت + hospital: روغتون + hotel: هوټل + park: پارک + pharmacy: درملتون + police: پوليس + school: ښوونځی + shop: هټۍ + theatre: نندارتون + building: + hotel: هوټل + shop: هټۍ + stadium: لوبغالی + tower: برج + highway: + bus_stop: تمځای + road: واټ + historic: + castle: ماڼۍ + church: کليسا + house: کور + museum: موزيم + tower: برج + landuse: + cemetery: هديره + forest: ځنګل + park: پارک + leisure: + park: پارک + natural: + hill: غونډۍ + island: ټاپو + peak: څوکه + tree: ونه + valley: دره + water: اوبه + place: + airport: هوايي ډګر + city: ښار + country: هېواد + farm: فارم + house: کور + houses: کورونه + island: ټاپو + region: سيمه + town: ښارګوټی + village: کلی + shop: + bakery: بټيارۍ + gallery: ګالېري + tourism: + guest_house: مېلمستون + hostel: ليليه + hotel: هوټل + information: مالومات + museum: موزيم + picnic_site: مېله ځای + valley: دره + zoo: ژوبڼ + layouts: + home: کور + intro_3_partners: ويکي + log_in: ننوتل + shop: هټۍ view: کتل + message: + inbox: + date: نېټه + outbox: + date: نېټه + site: + search: + submit_text: ورځه + sidebar: + close: تړل + trace: + edit: + edit: سمول + filename: "د دوتنې نوم:" + map: نخشه + save_button: بدلونونه خوندي کول + trace: + edit: سمول + map: نخشه + view_map: نخشه کتل + view: + edit: سمول + filename: "د دوتنې نوم:" + map: نخشه + none: هېڅ + user: + account: + image: "انځور:" + login: + heading: ننوتل + login_button: ننوتل + password: "پټنوم:" + title: ننوتل + logout: + logout_button: وتل + title: وتل + new: + email address: "برېښليک پته:" + password: "پټنوم:" + popup: + friend: ملګری + reset_password: + password: "پټنوم:" + view: + email address: "برېښليک پته:" + send message: پيغام لېږل diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index 2d311a9ba..9b1a33d01 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -329,6 +329,10 @@ pt-BR: recent_entries: "Entradas recentes no Diário:" title: Diários dos Usuários user_title: Diário de {{user}} + location: + edit: Editar + location: "Local:" + view: Exibir new: title: Nova Entrada de Diário no_such_entry: @@ -368,6 +372,9 @@ pt-BR: output: Saída paste_html: Cole o HTML para publicar no site scale: Escala + too_large: + body: Esta área é muito grande para ser exportada como dados XML do OpenStreetMap. Por gentileza, aumente o zoom ou selecione uma área menor. + heading: Área muito grande zoom: Zoom start_rjs: add_marker: Adicionar um marcador ao mapa @@ -867,22 +874,24 @@ pt-BR: overlays: maplint: Maplint site: + edit_disabled_tooltip: Aumente o zoom para editar o mapa + edit_tooltip: Edite o mapa edit_zoom_alert: Você deve aumentar o zoom para editar o mapa + history_disabled_tooltip: Aumente o zoom para ver as edições desta área + history_tooltip: Veja as edições desta área history_zoom_alert: Você deve aumentar o zoom para ver o histórico de edição layouts: donate: "Ajude o OpenStreetMap fazendo doações para o Fundo de Upgrade de Hardware: {{link}}." donate_link_text: doando edit: Editar - edit_tooltip: Editar mapas export: Exportar export_tooltip: Exportar dados do mapa gps_traces: Trilhas GPS - gps_traces_tooltip: Gerenciar trilhas + gps_traces_tooltip: Gerenciar trilhas GPS help_wiki: Ajuda & Wiki help_wiki_tooltip: Ajuda & Wiki do projeto help_wiki_url: http://wiki.openstreetmap.org/wiki/Pt-br:Main_Page?uselang=pt-br history: Histórico - history_tooltip: Histórico de alterações home: início home_tooltip: Ir para a sua localização inbox: caixa de entrada ({{count}}) @@ -926,13 +935,9 @@ pt-BR: user_diaries: Diários de Usuário user_diaries_tooltip: Ver os diários dos usuários view: Ver - view_tooltip: Ver mapas + view_tooltip: Veja o mapa welcome_user: Bem vindo, {{user_link}} welcome_user_link_tooltip: Sua Página de usuário - map: - coordinates: "Coordenadas:" - edit: Editar - view: Ver message: delete: deleted: Mensagem apagada @@ -963,10 +968,14 @@ pt-BR: send_message_to: Enviar uma nova mensagem para {{name}} subject: Assunto title: Enviar mensagem + no_such_message: + body: Desculpe, mas não existe uma mensagem com este id. + heading: Esta mensagem não existe + title: Esta mensagem não existe no_such_user: - body: Me desculpe, não há nenhum usuário ou mensagem com esse nome ou id - heading: Não há tal usuário ou mensagem - title: Não existe usuário ou mensagem + body: Desculpe, mas não existe usuário com este nome. + heading: Este usuário não existe + title: Este usuário não existe outbox: date: Data inbox: caixa de entrada @@ -990,6 +999,9 @@ pt-BR: title: Ler Mensagem to: Para unread_button: Marcar como não lida + wrong_user: Você está conectado como `{{user}}' mas a mensagem que você quer ler não foi enviada para este usuário. Por gentileza, faça o login com o usuário correto para poder responder. + reply: + wrong_user: Você está conectado como `{{user}}' mas a mensagem que você quer responder não foi enviada para este usuário. Por gentileza, faça o login com o usuário correto para poder responder. sent_message_summary: delete_button: Apagar notifier: @@ -1010,8 +1022,9 @@ pt-BR: hopefully_you_1: Alguém (esperamos que você) quer alterar seu endereço de e-mail de hopefully_you_2: "{{server_url}} para {{new_address}}." friend_notification: + befriend_them: Você também pode adicioná-lo como amigo em {{befriendurl}}. had_added_you: "{{user}} adicionou você como amigo no OpenStreetMap." - see_their_profile: Você pode ver seu perfil em {{userurl}} e adicioná-lo também se desejar. + see_their_profile: Você pode ver o perfil dele em {{userurl}}. subject: "[OpenStreetMap] {{user}} adicionou você como amigo" gpx_notification: and_no_tags: e sem etiquetas. @@ -1248,6 +1261,9 @@ pt-BR: sidebar: close: Fechar search_results: Resultados da Busca + time: + formats: + friendly: "%e %B %E às %H:%M" trace: create: trace_uploaded: Seu arquivo GPX foi enviado e está aguardando para ser inserido no banco de dados. Isso normalmente leva meia hora, e um e-mail será enviado para você quando ocorrer. @@ -1353,15 +1369,20 @@ pt-BR: user: account: current email address: "Endereço de e-mail atual:" + delete image: Remova a imagem atual email never displayed publicly: (nunca mostrado publicamente) flash update success: Informação de usuário atualizada com sucesso. flash update success confirm needed: Informação de usuário atualizada com sucesso. Verifique sua caixa de entrada do email para confirmar seu novo endereço. home location: "Localização:" + image: "Imagem:" + image size hint: (imagens quadradas, com pelo menos 100x100, funcionam melhor) + keep image: Mantenha a imagem atual latitude: "Latitude:" longitude: "Longitude:" make edits public button: Tornar todas as minhas edições públicas my settings: Minhas configurações new email address: "Novo endereço de e-mail:" + new image: Adicionar uma imagem no home location: Você ainda não entrou a sua localização. preferred languages: "Preferência de Idioma:" profile description: "Descrição do Perfil:" @@ -1375,6 +1396,7 @@ pt-BR: public editing note: heading: Edição pública text: Atualmente suas edições são anônimas e ninguém pode lhe enviar mensagens ou saber sua localização. Para mostrar o que você editou e permitir que pessoas entrem em contato através do website, clique no botão abaixo. Desde as mudanças na API 0.6, apenas usuários públicos podem editar o mapa. (Veja por quê).
  • O seu endereço de e-mail não será revelado para o público.
  • Esta ação não pode ser desfeita e todos os novos usuários são agora públicos por padrão.
+ replace image: Substitua a imagem atual return to profile: Retornar para o perfil save changes button: Salvar Mudanças title: Editar conta @@ -1393,9 +1415,6 @@ pt-BR: success: Confirmamos seu endereço de email. Obrigado por se cadastrar! filter: not_an_administrator: Você precisa ser um administrador para executar essa ação. - friend_map: - nearby mapper: "Mapeador próximo: [[nearby_user]]" - your location: Sua localização go_public: flash success: Todas as suas edições agora são públicas, e você está com permissão para edição. login: @@ -1408,7 +1427,12 @@ pt-BR: lost password link: Esqueceu sua senha? password: "Senha:" please login: Por favor entre as informações de sua conta para entrar, ou {{create_user_link}}. + remember: Lembrar neste computador title: Entrar + logout: + heading: Sair do OpenStreetMap + logout_button: Sair + title: Sair lost_password: email address: "Endereço de Email:" heading: Esqueceu sua senha? @@ -1441,6 +1465,10 @@ pt-BR: body: Desculpe, não há nenhum usuário com o nome {{user}}. Por favor verifique se você digitou corretamente, ou talvez o link que você tenha clicado esteja errado. heading: O usuário {{user}} não existe title: Usuário não existe + popup: + friend: Amigo + nearby mapper: Mapeador próximo + your location: Sua localização remove_friend: not_a_friend: "{{name}} não é um de seus amigos." success: "{{name}} foi removido de seus amigos." @@ -1457,17 +1485,14 @@ pt-BR: view: activate_user: ativar este usuário add as friend: adicionar como amigos - add image: Adicionar Imagem ago: ({{time_in_words_ago}} atrás) block_history: ver bloqueios recebidos blocks by me: bloqueios em mim blocks on me: bloqueios sobre mim - change your settings: mudar suas configurações confirm: Confirmar create_block: bloquear este usuário created from: "Criado de:" deactivate_user: desativar este usuário - delete image: Apagar Imagem delete_user: excluir este usuário description: Descrição diary: diário @@ -1483,12 +1508,11 @@ pt-BR: my edits: minhas edições my settings: minhas configurações my traces: minhas trilhas - my_oauth_details: Ver meus detalhes OAuth - nearby users: "Usuários próximos:" + nearby users: Outros usuários próximos new diary entry: nova entrada de diário no friends: Você ainda não adicionou amigos. - no home location: Nenhuma localização foi definida. - no nearby users: Não existem usuários mapeando por perto. + no nearby users: Ainda não há outros usuários mapeando por perto. + oauth settings: configurações do oauth remove as friend: remover da lista de amigos role: administrator: Este usuário é um administrador @@ -1503,8 +1527,6 @@ pt-BR: settings_link_text: configurações traces: trilhas unhide_user: mostrar esse usuário - upload an image: Enviar uma Imagem - user image heading: Imagem do usuário user location: Local do usuário your friends: Seus amigos user_block: diff --git a/config/locales/pt.yml b/config/locales/pt.yml index 4ac591b2f..1d4267646 100644 --- a/config/locales/pt.yml +++ b/config/locales/pt.yml @@ -98,6 +98,13 @@ pt: view_details: ver detalhes way_history: Histórico do Trajeto way_history_title: "Histórico do Trajeto: {{way_name}}" + geocoder: + search_osm_nominatim: + prefix: + historic: + ruins: Ruínas + railway: + funicular: Funicular notifier: email_confirm_plain: greeting: Olá, @@ -130,6 +137,8 @@ pt: more: mais pending: PENDENTE view_map: Ver Mapa + trace_form: + help: Ajuda view: edit: editar map: mapa diff --git a/config/locales/ro.yml b/config/locales/ro.yml index 965d5351c..12f1956df 100644 --- a/config/locales/ro.yml +++ b/config/locales/ro.yml @@ -210,6 +210,8 @@ ro: show_area_box: afișează chenarul zonei still_editing: (încă se editează) view_changeset_details: Vizualizare detalii set de schimbări + changeset_paging_nav: + showing_page: Se afișează pagina changesets: area: Zonă comment: Comentariu @@ -220,10 +222,6 @@ ro: geocoder: search_osm_namefinder: prefix: "{{type}}" - map: - coordinates: "Coordonate:" - edit: Editare - view: Vizualizare message: delete: deleted: Mesaj şters diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 0d2302db6..a0b58bdcd 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -322,6 +322,10 @@ ru: recent_entries: "Недавние записи:" title: Дневники user_title: Дневник пользователя {{user}} + location: + edit: Правка + location: "Положение:" + view: Вид new: title: Сделать новую запись в дневнике no_such_entry: @@ -361,6 +365,9 @@ ru: output: Результат paste_html: HTML-код для встраивания на сайт scale: Масштаб + too_large: + body: Эта область слишком велика, для экспорта в качестве XML данных OpenStreetMap. Пожалуйста, увеличьте масштаб или выберите меньший размер. + heading: Область слишком большая zoom: Приблизить start_rjs: add_marker: Добавить маркер на карту @@ -856,22 +863,24 @@ ru: overlays: maplint: Maplint site: + edit_disabled_tooltip: Увеличить масштаб для редактирования карты + edit_tooltip: Править карту edit_zoom_alert: Необходимо увеличить масштаб карты, если вы хотите ее править. + history_disabled_tooltip: Увеличить масштаб для просмотра правок в этой области + history_tooltip: Просмотр правок в этой области history_zoom_alert: Необходимо увеличить масштаб карты, чтобы увидеть историю правок layouts: donate: Поддержите OpenStreetMap {{link}} в Фонд обновления оборудования. donate_link_text: пожертвованиями edit: Правка - edit_tooltip: Редактировать карты export: Экспорт export_tooltip: Экспортировать данные карты gps_traces: GPS-треки - gps_traces_tooltip: Работать с треками + gps_traces_tooltip: Работать с GPS треками help_wiki: Справка и вики help_wiki_tooltip: Справка и вики-сайт проекта help_wiki_url: http://wiki.openstreetmap.org/wiki/RU:Main_Page?uselang=ru history: История - history_tooltip: История пакета правок home: домой home_tooltip: Показать мой дом inbox: входящие ({{count}}) @@ -908,13 +917,9 @@ ru: user_diaries: Дневники user_diaries_tooltip: Посмотреть дневники view: Карта - view_tooltip: Посмотреть карты + view_tooltip: Посмотреть карту welcome_user: Добро пожаловать, {{user_link}} welcome_user_link_tooltip: Ваша страница пользователя - map: - coordinates: "Координаты:" - edit: Правка - view: Карта message: delete: deleted: Сообщение удалено @@ -945,10 +950,14 @@ ru: send_message_to: Отправить новое сообщение для {{name}} subject: "Тема:" title: Отправить сообщение + no_such_message: + body: "\nИзвините, но сообщения с таким ID нет." + heading: "\nНет такого сообщения" + title: "\nНет такого сообщения" no_such_user: - body: К сожалению, не удалось найти пользователя или сообщение с таким именем или идентификатором - heading: Нет такого пользователя/сообщения - title: Нет такого пользователя/сообщения + body: Извините, пользователя с таким именем нет. + heading: Нет такого пользователя + title: Нет такого пользователя outbox: date: Дата inbox: входящие @@ -972,6 +981,9 @@ ru: title: Просмотр сообщения to: "Кому:" unread_button: Пометить как непрочитанное + wrong_user: "\nВы вошли как пользователь `{{user}}' но сообщение, которое вы хотите прочитать, отправлено не этим или не этому пользователю. Пожалуйста, войдите как правильный пользователь, чтобы прочитать его." + reply: + wrong_user: "\nВы вошли как `{{user}}' но ответ на ваш вопрос был отправлен не этому пользователю. Пожалуйста, войдите как соответствующий вашему вопросу пользователь, чтобы прочитать ответ." sent_message_summary: delete_button: Удалить notifier: @@ -992,8 +1004,9 @@ ru: hopefully_you_1: Кто-то (надеемся, что вы) хочет изменить свой адрес электронной почты в hopefully_you_2: "{{server_url}} на адрес: {{new_address}}." friend_notification: + befriend_them: Вы также можете добавить их в качестве друзей в {{befriendurl}}. had_added_you: "{{user}} добавил вас в друзья на OpenStreetMap." - see_their_profile: "Вы можете просмотреть информацию о нем по ссылке: {{userurl}} и тоже добавить его в друзья." + see_their_profile: "Вы можете просмотреть информацию о них по ссылке: {{userurl}}." subject: "[OpenStreetMap] {{user}} добавил вас в список своих друзей" gpx_notification: and_no_tags: и без меток. @@ -1222,6 +1235,9 @@ ru: sidebar: close: Закрыть search_results: Результаты поиска + time: + formats: + friendly: "%e %B %Y в %H:%M" trace: create: trace_uploaded: Ваш файл GPX был передан на сервер и сейчас вносится в базу данных. Обычно это занимает от минуты до получаса. По завершении вам будет прислано уведомление на электронную почту. @@ -1327,15 +1343,20 @@ ru: user: account: current email address: "Текущий адрес эл. почты:" + delete image: Удалить текущее изображение email never displayed publicly: (не будет показан) flash update success: Информация о пользователе успешно обновлена. flash update success confirm needed: Информация о пользователе успешно обновлена. Проверьте свою электронную почту, чтобы подтвердить ваш новый адрес. home location: "Основное местоположение:" + image: "Изображение:" + image size hint: (квадратные изображения, по крайней мере 100x100 работают лучше) + keep image: Хранить текущее изображение latitude: "Широта:" longitude: "Долгота:" make edits public button: Сделать все мои правки доступными my settings: Мои настройки new email address: "Новый адрес эл. почты:" + new image: Добавить изображение no home location: Вы не обозначили свое основное местоположение. preferred languages: "Предпочитаемые языки:" profile description: "Описание профиля:" @@ -1349,6 +1370,7 @@ ru: public editing note: heading: Общедоступная правка text: В настоящий момент ваши правки анонимны и никто не может отправлять вам сообщения или видеть ваше местоположение. Чтобы указать авторство своих правок и позволить другим связываться с вами через вебсайт, нажмите на кнопку внизу. После перехода на API версии 0.6, только доступные для связи пользователи могут править данные карты. (узнайте, почему).
  • Ваш адрес электронной почты не будет раскрыт для других, но связаться с вами будет возможно.
  • Это действие не имеет обратной силы, а все новые пользователи теперь доступны для связи по умолчанию.
+ replace image: Заменить текущее изображение return to profile: Возврат к профилю save changes button: Сохранить изменения title: Изменение учётной записи @@ -1367,9 +1389,6 @@ ru: success: Ваш адрес электронной почты подтверждён, спасибо за регистрацию! filter: not_an_administrator: Только администратор может выполнить это действие. - friend_map: - nearby mapper: "Ближайший пользователь: [[nearby_user]]" - your location: Ваше местоположение go_public: flash success: Все ваши правки теперь общедоступны, и вы теперь можете редактировать. login: @@ -1382,7 +1401,12 @@ ru: lost password link: Забыли пароль? password: "Пароль:" please login: Пожалуйста, представьтесь или {{create_user_link}}. + remember: "\nЗапомнить меня:" title: Представьтесь + logout: + heading: Выйти из OpenStreetMap + logout_button: Выйти + title: Выйти lost_password: email address: "Аадрес эл. почты:" heading: Забыли пароль? @@ -1415,6 +1439,10 @@ ru: body: Извините, нет пользователя с именем {{user}}. Пожалуйста, проверьте правильность ввода. Возможно, вы перешли по ошибочной ссылке. heading: Пользователя {{user}} не существует title: Нет такого пользователя + popup: + friend: Друг + nearby mapper: Ближайший пользователь + your location: Ваше местоположение remove_friend: not_a_friend: "{{name}} не является вашим другом." success: "{{name}} удалён из вашего списка друзей." @@ -1431,17 +1459,14 @@ ru: view: activate_user: активировать этого пользователя add as friend: добавить в друзья - add image: Загрузить ago: ({{time_in_words_ago}} назад) block_history: полученные блокировки blocks by me: наложенные мною блокировки blocks on me: мои блокировки - change your settings: изменить настройки confirm: Подтвердить create_block: блокировать пользователя created from: "Создано из:" deactivate_user: деактивировать этого пользователя - delete image: Удалить аватар delete_user: удалить этого пользователя description: Описание diary: дневник @@ -1457,12 +1482,11 @@ ru: my edits: мои правки my settings: мои настройки my traces: мои треки - my_oauth_details: Просмотр подробностей OAuth - nearby users: "Ближайшие пользователи:" + nearby users: Другие ближайшие пользователи new diary entry: новая запись no friends: Вы не добавили ещё ни одного друга. - no home location: Местонахождение не было указано. - no nearby users: Поблизости пока нет пользователей, занимающихся составлением карты. + no nearby users: Пока нет других пользователей, признающих, что занимающихся составлением карты поблизости. + oauth settings: "\nнастройки OAuth" remove as friend: удалить из друзей role: administrator: Этот пользователь является администратором @@ -1477,8 +1501,6 @@ ru: settings_link_text: настройки traces: треки unhide_user: отобразить этого пользователя - upload an image: Передать аватар на сервер - user image heading: Аватар user location: Местонахождение пользователя your friends: Ваши друзья user_block: diff --git a/config/locales/sk.yml b/config/locales/sk.yml index 32e304342..11a55805f 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -20,6 +20,7 @@ sk: user: Užívateľ message: body: Telo + recipient: Príjemca sender: Odosielateľ trace: description: Popis @@ -33,23 +34,44 @@ sk: user: active: Aktívny description: Popis + display_name: Zobrazované meno email: E-mail languages: Jazyky pass_crypt: Heslo models: + changeset: Súbor zmien country: Krajina + diary_comment: Poznámka v denníku + diary_entry: Položka denníka friend: Priateľ language: Jazyk message: Správa - node: Uzol - node_tag: Tag uzlu - old_node: Starý uzol + node: Bod + node_tag: Tag bodu + old_node: Starý bod + old_node_tag: Stará značka bodu + old_relation: Stará relácia old_relation_member: Starý člen relácie - old_way_node: Starý uzol cesty + old_relation_tag: Stará značka relácie + old_way: Stará cesta + old_way_node: Starý bod cesty + old_way_tag: Stará značka cesty + relation: Relácia + relation_member: Člen relácie + relation_tag: Značka relácie session: Relácia + trace: Stopa + tracepoint: Bod stopy + tracetag: Značka stopy user: Užívateľ + user_preference: Osobné nastavenia way: Cesta - way_node: Uzol cesty + way_node: Bod cesty + application: + require_cookies: + cookies_needed: Vyzerá to tak, že máte zakázané cookies – prosím povoľte cookies vo vaÅ¡om prehliadači a až potom pokračujte. + setup_user_auth: + blocked: Váš prístup do API bol zablokovaný. Prosím prihláste sa na webové rozhranie pre zistenie viac informácií. browse: changeset: changeset: "Súbor zmien: {{id}}" @@ -106,8 +128,8 @@ sk: download: "{{download_xml_link}}, {{view_history_link}} alebo {{edit_link}}" download_xml: StiahnuÅ¥ XML edit: upraviÅ¥ - node: Uzol - node_title: "Uzol: {{node_name}}" + node: Bod + node_title: "Bod: {{node_name}}" view_history: zobraziÅ¥ históriu node_details: coordinates: "Súradnice:" @@ -115,19 +137,19 @@ sk: node_history: download: "{{download_xml_link}} alebo {{view_details_link}}" download_xml: StiahnuÅ¥ XML - node_history: História Uzla - node_history_title: "História Uzla: {{node_name}}" + node_history: História bodu + node_history_title: "História bodu: {{node_name}}" view_details: zobraziÅ¥ detaily not_found: sorry: Prepáčte, {{type}} s id {{id}} nebolo možné nájsÅ¥. type: changeset: počet zmien - node: uzol + node: bod relation: relácia way: cesta paging_nav: of: z - showing_page: Zobrazovanie stránky + showing_page: Strana relation: download: "{{download_xml_link}} alebo {{view_history_link}}" download_xml: StiahnuÅ¥ XML @@ -146,7 +168,7 @@ sk: relation_member: entry_role: "{{type}} {{name}} ako {{role}}" type: - node: Uzol + node: Bod relation: Relácia way: Cesta start: @@ -174,10 +196,10 @@ sk: way: Cesta [[id]] selected: type: - node: Uzol [[id]] + node: Bod [[id]] way: Cesta [[id]] type: - node: Uzol + node: Bod way: Cesta private_user: anonymný používateľ show_history: ZobraziÅ¥ Históriu @@ -189,7 +211,10 @@ sk: timeout: sorry: Prepáčte, ale načítanie dát {{type}} číslo {{id}} trvalo príliÅ¡ dlho type: - node: uzol + changeset: zmenový súbor + node: bod + relation: relácia + way: cesta way: download: "{{download_xml_link}}, {{view_history_link}} alebo {{edit_link}}" download_xml: StiahnuÅ¥ XML @@ -201,7 +226,7 @@ sk: also_part_of: one: tiež časÅ¥ou cesty {{related_ways}} other: tiež časÅ¥ou ciest {{related_ways}} - nodes: "Uzly:" + nodes: "Body:" part_of: "ČasÅ¥ z:" way_history: download: "{{download_xml_link}} alebo {{view_details_link}}" @@ -211,7 +236,13 @@ sk: way_history_title: "História Cesty: {{way_name}}" changeset: changeset: + anonymous: Anonym + big_area: (veľký) + no_comment: (žiadny) + no_edits: (bez úprav) + show_area_box: ZobraziÅ¥ Rám Oblasti still_editing: (stále sa upravuje) + view_changeset_details: ZobraziÅ¥ detaily zmenového súboru changeset_paging_nav: next: ĎalÅ¡ia » previous: "« PredoÅ¡lá" @@ -221,25 +252,88 @@ sk: comment: Komentár id: ID saved_at: Uložené - user: Používateľ + user: Užívateľ list: description: Posledné zmeny + description_bbox: Zmenové súbory vo vnútri {{bbox}} + description_user: Zmenové súbory užívateľa {{user}} + description_user_bbox: Zmenové súbory užívateľa {{user}} v {{bbox}} + heading: Zmenové súbory + heading_bbox: Zmenové súbory + heading_user: Zmenové súbory + heading_user_bbox: Zmenové súbory + title: Zmenové súbory + title_bbox: Zmenové súbory vo vnútri {{bbox}} + title_user: Zmenové súbory užívateľa {{user}} + title_user_bbox: Zmenové súbory užívateľa {{user}} v {{bbox}} diary_entry: + diary_comment: + comment_from: Poznámka od {{link_user}} na {{comment_created_at}} + confirm: PotvrdiÅ¥ + hide_link: SkryÅ¥ túto poznámku diary_entry: comment_count: few: "{{count}} komentáre" one: 1 komentár other: "{{count}} komentárov" + comment_link: Komentár k záznamu + confirm: PotvrdiÅ¥ + edit_link: UpraviÅ¥ tento záznam + hide_link: SkryÅ¥ tento záznam + posted_by: Odoslané od {{link_user}} pre {{created}} v {{language_link}} + reply_link: OdpovedaÅ¥ na tento záznam edit: + body: "Telo:" language: "Jazyk:" latitude: "Zemepisná šírka:" + location: "Poloha:" longitude: "Zemepisná dĺžka:" + marker_text: Umiestnenie položky zápisníka save_button: UložiÅ¥ subject: "Predmet:" + title: UpraviÅ¥ záznam denníka use_map_link: použiÅ¥ mapu + feed: + all: + description: Nedávna položka zápisníka od užívateľov OpenStreetMap + title: OpenStreetMap položka zápisníka + language: + description: Nedávna položka zápisníka od užívateľov OpenStreetMap v {{language_name}} + title: OpenStreetMap položka zápisníka v {{language_name}} + user: + description: Nedávna OpenStreetMap položka zápisníka od {{user}} + title: OpenStreetMap položka zápisníka pre {{user}} + list: + in_language_title: Záznamy denníka v {{language}} + new: Nový záznam denníka + new_title: NapísaÅ¥ nový záznam do svojho užívateľského denníka + newer_entries: NovÅ¡ie Príspevky + no_entries: Žiadny záznam denníka + older_entries: StarÅ¡ie záznamy + recent_entries: "Nedávne záznamy denníka:" + title: Užívateľské denníky + user_title: "{{user}}-ov denník" + location: + edit: EditovaÅ¥ + location: "Poloha:" + view: Pohľad + new: + title: Nový záznam denníka + no_such_entry: + body: Prepáčte, nie je tam žiadna položka denníka, alebo poznámka s id {{id}}. Prosím skontrolujte váš text, alebo možno že odkaz na ktorý ste klikli je zlý. + heading: "Žiadny záznam s id: {{id}}" + title: Nieto takýto záznam denníka + no_such_user: + body: Prepáčte, neexistuje užívateľ s menom {{user}}. Prosím skontrolujte váš text, alebo možno že odkaz na ktorý ste klikli je zlý. + heading: Užívateľ {{user}} neexistuje + title: Užívateľ neexistuje view: leave_a_comment: ZanechaÅ¥ komentár + login: PrihlásiÅ¥ sa + login_to_leave_a_comment: "{{login_link}} pre odchádzajúcu poznámku" save_button: UložiÅ¥ + title: "{{user}}-ov denník | {{title}}" + user_title: "{{user}} -ov denník" export: start: add_marker: PridaÅ¥ marker na mapu @@ -256,9 +350,14 @@ sk: mapnik_image: Zobrazenie Mapnik max: max options: Možnosti + osm_xml_data: OpenStreetMap XML Dáta osmarender_image: Zobrazenie Osmarender output: Výstup scale: Mierka + too_large: + body: Táto oblasÅ¥ je príliÅ¡ veľká pre export OpenStreetMap dát. Prosím priblížte, alebo vyberte menÅ¡iu oblasÅ¥. + heading: PríliÅ¡ veľká oblasÅ¥ + zoom: Zväčšenie start_rjs: add_marker: PridaÅ¥ marker na mapu change_marker: Zmena polohy markera @@ -269,6 +368,10 @@ sk: view_larger_map: ZobraziÅ¥ väčšiu mapu geocoder: description: + title: + geonames: Umiestnenie na GeoNames + osm_namefinder: "{{types}} z OpenStreetMap Namefinder" + osm_nominatim: Umiestnenie z OpenStreetMap Nominatim types: cities: Veľkomestá places: Miesta @@ -295,8 +398,14 @@ sk: title: ca_postcode: Výsledky z Geocoder.CA geonames: Výsledky z GeoNames + latlon: Výsledok z Internal osm_namefinder: Výsledky z OpenStreetMap Namefinder + osm_nominatim: Výsledok z OpenStreetMap Nominatim + uk_postcode: Výsledok z NPEMap / FreeThe Postcode us_postcode: Výsledky z Geocoder.us + search_osm_namefinder: + suffix_parent: "{{suffix}} ({{parentdistance}} {{parentdirection}} of {{parentname}})" + suffix_place: ", {{distance}} {{direction}} of {{placename}}" search_osm_nominatim: prefix: amenity: @@ -309,9 +418,11 @@ sk: bicycle_parking: Parkovisko bicyklov bicycle_rental: Požičovňa bicyklov brothel: Nevestinec + bureau_de_change: Zmenáreň bus_station: Autobusová stanica cafe: Kaviareň car_rental: Požičovňa áut + car_sharing: Autopožičovňa car_wash: Autoumývareň casino: Kasíno cinema: Kino @@ -342,11 +453,13 @@ sk: ice_cream: Zmrzlina kindergarten: Materská Å¡kola library: Knižnica + market: Obchod marketplace: Tržnica mountain_rescue: Horská služba nightclub: 'Nočný klub' nursery: Jasle nursing_home: Sanatórium + office: Úrad park: Park parking: Parkovisko pharmacy: lekáreň @@ -358,6 +471,7 @@ sk: prison: Väzenie pub: Krčma public_building: Verejná budova + recycling: Recyklačké miesto restaurant: ReÅ¡taurácia retirement_home: Domov dôchodcov sauna: Sauna @@ -372,6 +486,7 @@ sk: theatre: Divadlo toilets: WC townhall: Radnica + university: Univerzita vending_machine: Predajný automat veterinary: Veterinárna ordinácia waste_basket: Odpadkový kôš @@ -385,15 +500,21 @@ sk: chapel: Kaplnka church: Kostol,cirkev city_hall: Radnica,magistrát + commercial: Komerčné budovy dormitory: Å tudentský domov + faculty: Budovy fakulty farm: Hospodárska budova flats: Byty garage: Garáž hall: Sála + hospital: Nemocničné budovy hotel: Hotel house: Dom + industrial: Priemyselné budovy office: Administratívna budova public: Verejná budova + residential: Obytné budovy + retail: Maloobchodné budovy school: Å kola shop: Obchod stadium: Å tadión @@ -401,31 +522,43 @@ sk: terrace: Radová zástavba tower: Veža train_station: Železničná stanica + university: Univerzitné budovy "yes": Budova highway: bridleway: Cesta pre kone bus_guideway: Bus so sprievodcom bus_stop: Zastávka autobusu + byway: Byway (súkromná cesta) + construction: Cesta vo výstavbe cycleway: Cyklistický chodník + distance_marker: Distance Marker (kilometrovník) emergency_access_point: Stanica prvej pomoci footway: Chodník ford: Brod gate: Brána + living_street: Obytná zóna minor: VedľajÅ¡ia cesta motorway: Diaľnica + motorway_junction: Motorway Junction (Diaľničná križovatka) motorway_link: Diaľnica + path: Cesta pedestrian: Chodník pre chodcov + platform: NástupiÅ¡te primary: Cesta I. triedy primary_link: Cesta I. triedy + residential: Residential(Obytný) road: Cesta secondary: Cesta II. triedy secondary_link: Cesta II. triedy + service: Service Road (prístupová komunikácia) steps: Schody + stile: Schodíky cez ohradu tertiary: Cesta III. triedy track: Nespevnené cesty trunk: Cesta pre motorové vozidlá trunk_link: Cesta pre motorové vozidlá unclassified: Neklasifikovaná cesta + unsurfaced: Nespevnená cesta historic: archaeological_site: Archeologické nálezisko battlefield: Bojisko @@ -445,8 +578,11 @@ sk: wayside_shrine: Malá kaplnka pri ceste wreck: Zrúcanina landuse: + allotments: Záhradkárske osady + basin: Basin (Vodná nádrž) cemetery: Cintorín commercial: Obchodná Å¡tvrÅ¥ + construction: Stavba farm: Farma farmyard: Dvor forest: Les @@ -460,8 +596,11 @@ sk: nature_reserve: Prírodná rezervácia park: Park piste: Zjazdovka + plaza: Námestie quarry: Lom railway: Železnica + residential: Residential Area (Obytná oblasÅ¥) + retail: Retail (Obchodná zóna) village_green: Verejná zeleň vineyard: Vinica wetland: Mokrina @@ -494,6 +633,7 @@ sk: cliff: Útes, kamenná stena coastline: Pobrežie crater: Kráter + feature: VlastnosÅ¥ fell: Horská pastvina fjord: Fjord geyser: Gejzír @@ -540,13 +680,16 @@ sk: region: Región sea: More state: Å tát + subdivision: Pododdelenie suburb: Mestský obvod town: Mesto 10 tis.-100 tis. unincorporated_area: Nezaradená oblasÅ¥ village: Obec 200-10 tis. railway: abandoned: Opustená železnica + construction: Železnica vo výstavbe disused: Nepoužívaná železnica + disused_station: Nepoužívaná železničná stanica funicular: Lanová dráha halt: Zastávka vlaku historic_station: Zastávka historickej železnice @@ -555,14 +698,18 @@ sk: light_rail: Ľahká železnica monorail: Jednokoľajka narrow_gauge: Úzkokoľajná železnica + platform: Železničné nástupiÅ¡te + preserved: Historická železnica spur: Železničná vlečka station: Železničná stanica subway: Stanica metra subway_entrance: Vchod do metra + switch: Železničná výhybka tram: Električka tram_stop: Zastávka električky yard: Železničné depo shop: + alcohol: Mimo povolenia apparel: Odevy art: Obchod s umením bakery: Pekáreň @@ -571,9 +718,12 @@ sk: bicycle: Obchod s bicylkami books: Kníhkupectvo butcher: Mäsiarstvo + car_dealer: Obchod s autami car_parts: Mototechna car_repair: Autoservis + carpet: Obchod s kobercami charity: Charitatívny obchod + chemist: Lekáreň clothes: Obchod s konfekciou computer: Obchod s počítačmi confectionery: Cukráreň @@ -583,9 +733,11 @@ sk: dry_cleaning: Chemická čistiareň electronics: Elektro estate_agent: Realitná kancelária + farm: Poľnonákup fish: Obchod s rybami florist: Kvetinárstvo food: Obchod s potravinami + funeral_directors: Pohrebníctvo furniture: Nábytok gallery: Galéria garden_centre: Záhradnícke centrum @@ -595,20 +747,29 @@ sk: grocery: Potraviny hairdresser: Kaderníctvo,holičstvo hardware: Železiarstvo + hifi: Hi-Fi insurance: PoisÅ¥ovňa jewelry: Zlatníctvo + kiosk: Novinový stánok laundry: Práčovňa mall: PeÅ¡ia zóna + mobile_phone: Obchod s mobilnými telefónmi + motorcycle: Motocyklový obchod music: Hudobniny + optician: Očná optika organic: Obchod so zdravou výživou + outdoor: Turistický obchod pet: Chovprodukt + photo: Fotokino salon: Salón shoes: Obuva + shopping_centre: Nákupné stredisko sports: Å portový obchod stationery: Papierníctvo supermarket: Supermarket toys: Hračkárstvo travel_agency: Cestovná kancelária + wine: Mimo povolenia tourism: alpine_hut: Vysokohorská chata artwork: Umelecké dielo @@ -634,12 +795,16 @@ sk: boatyard: Lodenica canal: Kanál dam: Priehrada,hrádza + derelict_canal: Opustený kanál ditch: Priekopa dock: Dok drain: Odvodňovací kanál + lock: Plavebná komora + lock_gate: Brána plavebnej komory mineral_spring: Minerálny prameň mooring: Kotvisko river: Rieka + riverbank: Breh rieky stream: Potok wadi: Občasné riečisko(Vádí) water_point: Vodný bod @@ -649,44 +814,73 @@ sk: map: base: cycle_map: Cyklomapa + noname: Bez mena + site: + edit_disabled_tooltip: PriblížiÅ¥ na editovateľnú mapu + edit_tooltip: UpraviÅ¥ mapu + edit_zoom_alert: Musíte sa priblížiÅ¥ na úpravu mapy + history_disabled_tooltip: PriblížiÅ¥ na zobrazenie úprav pre túto oblasÅ¥ + history_tooltip: ZobraziÅ¥ úpravy pre túto oblasÅ¥ + history_zoom_alert: Musíte priblížiÅ¥ na zobrazenie úprav pre túto oblasÅ¥ layouts: + donate_link_text: darovanie edit: UpraviÅ¥ - edit_tooltip: UpravovaÅ¥ mapy export: Export export_tooltip: Export mapových dát + gps_traces: GPS Stopy + gps_traces_tooltip: Správa GPS stopy help_wiki: Pomocník & Wiki + help_wiki_tooltip: Help & Wiki stránka projektu history: História home: domov + home_tooltip: Choďte na domácu polohu inbox: správy ({{count}}) inbox_tooltip: few: V schránke máte {{count}} neprečítané správy one: V schránke máte 1 neprečítanú správu other: V schránke máte {{count}} neprečítaných správ zero: Nemáte žiadne neprečítané správy + intro_1: OpenStreetMap je volne editovateľná mapa celého sveta. Tvoria ju ľudia ako vy. + intro_2: OpenStreetMap vám dovolí prezeraÅ¥, upravovaÅ¥ a používaÅ¥ zemepisné dáta vďaka spolupráci kdekoľvek na Zemi. + intro_3_partners: wiki + license: + title: OpenStreetMap dáta sú licencované pod the Creative Commons Attribution-Share Alike 2.0 Generic License log_in: prihlásiÅ¥ sa + log_in_tooltip: Prihlásenie s existujúcim účtom logo: alt_text: Logo OpenStreetMap logout: odhlásiÅ¥ logout_tooltip: OdhlásiÅ¥ - news_blog: Novinkový blog + make_a_donation: + text: Darovanie + title: Podpora OpenStreetMap s finančnou podporou + news_blog: Novinky blog + news_blog_tooltip: Spravodajský blog o OpenStreetMap, voľné zemepisné dáta, etc. + osm_offline: OpenStreetMap databáza je teraz offline, zatiaľ čo potrebná údržba databázy naďalej prebieha. + osm_read_only: OpenStreetMap databáza je teraz len v móde čítania (bez možnosti zapisovania), zatiaľ čo potrebná údržba databázy naďalej prebieha. shop: Obchod + shop_tooltip: Obchod so značkovým OpenStreetMap tovarom sign_up: zaregistrovaÅ¥ sa sign_up_tooltip: Vytvorte si účet pre úpravy + tag_line: Voľná Wiki Mapa sveta + user_diaries: Denník užívateľa + user_diaries_tooltip: ZobraziÅ¥ denníky užívateľa view: ZobraziÅ¥ - view_tooltip: ZobraziÅ¥ mapy + view_tooltip: ZobraziÅ¥ mapu welcome_user: Vitajte, {{user_link}} welcome_user_link_tooltip: VaÅ¡a užívateľská stránka - map: - coordinates: "Koordináty:" - edit: UpraviÅ¥ - view: ZobraziÅ¥ message: delete: deleted: Správa vymazaná inbox: date: Dátum from: Od + my_inbox: Moja schránka doÅ¡lej poÅ¡ty + no_messages_yet: Nemáte žiadne správy. Prečo ste sa nespojili s niekým z {{people_mapping_nearby_link}}? + outbox: odoslaná poÅ¡ta + people_mapping_nearby: blízko mapujúci ľudia subject: Predmet + title: Prichádzajúca poÅ¡ta you_have: Máte {{new_count}} nových a {{old_count}} starých správ mark: as_read: Správa označená ako prečítaná @@ -698,54 +892,204 @@ sk: unread_button: OznačiÅ¥ ako neprečítané new: back_to_inbox: Späť do prijatých správ + body: Telo message_sent: Správa odoslaná send_button: OdoslaÅ¥ send_message_to: PoslaÅ¥ novú správu užívateľovi {{name}} subject: Predmet title: OdoslaÅ¥ správu + no_such_message: + body: Prepáčte, neexistuje správa s takým id. + heading: Zadaná správa neexistuje + title: Zadaná správa neexistuje + no_such_user: + body: Prepáčte, neexistuje žiaden užívateľ s týmto menom. + heading: Taký užívateľ nie je + title: Taký užívateľ nie je outbox: date: Dátum + inbox: prichádzajúca poÅ¡ta + my_inbox: Moja {{inbox_link}} + no_sent_messages: Nemáte odoslané správy. Prečo ste sa nespojili s niekým z {{people_mapping_nearby_link}}? + outbox: odoslaná poÅ¡ta + people_mapping_nearby: blízko mapujúci ľudia + subject: Predmet + title: Odoslaná poÅ¡ta to: Komu you_have_sent_messages: Máte {{count}} odoslaných správ read: + back_to_inbox: Späť do prijatých správ + back_to_outbox: Späť do schránky odoslanej poÅ¡ty date: Dátum from: Od + reading_your_messages: Načítavam vaÅ¡e správy + reading_your_sent_messages: Čítanie vaÅ¡ich odoslaných správ reply_button: OdpovedaÅ¥ subject: Predmet + title: ČítaÅ¥ správu to: Komu unread_button: OznačiÅ¥ ako neprečítané sent_message_summary: delete_button: ZmazaÅ¥ notifier: diary_comment_notification: + footer: Môžete si tiež prečítaÅ¥ komentár na {{readurl}} a môžete komentovaÅ¥ na {{commenturl}}, alebo odpoveď na {{replyurl}} + header: "{{from_user}} má poznámku na váš nedávny OpenStreetMap záznam v denníku s predmetom {{subject}}:" hi: Ahoj {{to_user}}, + subject: "[OpenStreetMap] {{user}} komentovaj vo vaÅ¡ej položke denníka" email_confirm: subject: "[OpenStreetMap] Potvrďte svoju e-mailovú adresu" + email_confirm_html: + click_the_link: Ak ste to vy, kliknite prosím na nižšie uvedený odkaz pre potvrdenie zmeny. + greeting: Ahoj, + hopefully_you: Niekto (dúfajme, že vy) chcel zmeniÅ¥ e-mailovú adresu na {{server_url}} do {{new_address}}. email_confirm_plain: + click_the_link: Ak je toto vaÅ¡e, kliknite prosím na nižšie uvedený odkaz pre potvrdenie zmeny. greeting: Ahoj, + hopefully_you_1: Niekto (dúfajme, že vy) chce zmeniÅ¥ svoju e-mailovú adresu, na viac ako + hopefully_you_2: "{{server_url}} do {{new_address}}." + friend_notification: + befriend_them: Môžete ich tiež pridaÅ¥ ako priateľov na {{befriendurl}}. + had_added_you: "{{user}} vás pridal ako priateľa na OpenStreetMap." + see_their_profile: Môžete vidieÅ¥ svoj profil na {{userurl}}. + subject: "[OpenStreetMap] {{user}} vás pridal ako priateľa" gpx_notification: + and_no_tags: a žiadne značky. + and_the_tags: "a nasledujúce značky:" + failure: + failed_to_import: "neúspeÅ¡ný import. Tu je chyba:" + more_info_1: Viac informácií o neúspeÅ¡ných importoch GPX a ako sa im vyhnúť + more_info_2: "nemožno nájsÅ¥ na adrese:" + subject: "[OpenStreetMap] GPX Import neúspeÅ¡ný" greeting: Ahoj, + success: + subject: "[OpenStreetMap] GPX Import uspeÅ¡ný" + with_description: s popisom + your_gpx_file: Vyzerá to ako váš GPX súbor + lost_password: + subject: "[OpenStreetMap] ŽiadosÅ¥ o reset hesla" lost_password_html: + click_the_link: Ak ste to vy, kliknite prosím na nižšie uvedený odkaz pre obnovenie vášho hesla. + greeting: Ahoj, + hopefully_you: Niekto (možno vy) požiadal, o reset hesla na tejto emailovej adrese openstreetmap.org účtu. + lost_password_plain: + click_the_link: Ak ste to vy, prosím kliknite na odkaz nižšie pre obnovenie svojho hesla. greeting: Ahoj, + hopefully_you_1: Niekto (dúfajme že vy) požiadal o obnovu hesla + hopefully_you_2: e-mailové adresy openstreetmap.org účtu. message_notification: + footer1: Môžete si tiež prečítaÅ¥ správy na {{readurl}} + footer2: a môžete odpovedaÅ¥ na {{replyurl}} + header: "{{from_user}} vám zaslal správu cez OpenStreetMap s predmetom {{subject}}:" hi: Ahoj {{to_user}}, + subject: "[OpenStreetMap] {{user}} poÅ¡leme vám novú správu" + signup_confirm: + subject: "[OpenStreetMap] Potvrďte svoju e-mailovú adresu" + signup_confirm_html: + click_the_link: Ak je to vám, vitajte! Prosím kliknite na odkaz nižšie pre potvrdenie vášho účtu a prečítajte si viac informácií o OpenStreetMap + current_user: Zoznam aktuálnych užívateľov v kategóriách, založený na tom, kde sa nachádzate, je dostupný na Category:Users_by_geographical_region. + get_reading: Poďte čítaÅ¥ o OpenStreetMap na wiki, dostanete posledné správy cez OpenStreetMap blog alebo Twitter, alebo prehliadaÅ¥ cez OpenStreetMap zakladateľa Steve Coast's OpenGeoData blog pre stručnú históriu projektu, ktorý má podcasts na počúvanie tiež! + greeting: Ahoj tam! + hopefully_you: Niekto (dúfame že vy) chcel vytvoriÅ¥ účet po dobu + introductory_video: Môžete sledovaÅ¥ {{introductory_video_link}}. + more_videos: Je tam {{more_videos_link}}. + more_videos_here: viac videí tu + user_wiki_page: Toto je doporučenie ak vytvárate užívateľskú stránku na wiki, ktorá obsahuje kategórie podľa toho kde sa nachádzate, také ako [[Category:Users_in_London]]. + video_to_openstreetmap: úvodné video do OpenStreetMap + wiki_signup: Môžete tiež potrebovaÅ¥ prihlásiÅ¥ sa do OpenStreetMap wiki. + signup_confirm_plain: + blog_and_twitter: "Dosiahnite na posledné novinky cez OpenStreetMap blog alebo Twitter:" + click_the_link_1: Ak je to vám, vitajte! Prosím kliknite na odkaz nižšie pre potvrdenie vášho + current_user_1: Zoznam aktuálnych užívateľov v kategóriách, založené na tom, kde sa vo svete nachádzajú + current_user_2: "sú k dispozícii na:" + greeting: Ahoj! + hopefully_you: Niekto (dúfame že vy) chce vytvoriÅ¥ účet po dobu + introductory_video: "Môžete sledovaÅ¥ úvodné video k OpenStreetMap tu:" + more_videos: "Existujú ďalÅ¡ie videá tu:" + the_wiki: "Poďte čítaÅ¥ o OpenStreetMap na wiki:" + user_wiki_1: Odporúča sa, aby ste vytvorili užívateľskú wiki stránku, ktorá obsahuje + user_wiki_2: obsahuje kategórie podľa toho kde sa nachádzate, také ako [[Category:Users_in_London]]. + wiki_signup: "Môžete tiež prihlásiÅ¥ do wiki OpenStreetMap na adrese:" + oauth: + oauthorize: + allow_read_gpx: čítaÅ¥ vaÅ¡e súkromné GPS stopy. + allow_read_prefs: čítaÅ¥ vaÅ¡e osobné nastavenia. + allow_to: "Klientskej aplikácie umožnia, aby:" + allow_write_api: upravovaÅ¥ mapu. + allow_write_diary: vytvoriÅ¥ položky denníka, poznámok a priateľov. + allow_write_gpx: nahraÅ¥ GPS stopy. + allow_write_prefs: upraviÅ¥ vaÅ¡e osobné nastavenia. + request_access: Aplikácia {{app_name}} požaduje prístup na váš účet. Prosím skontrolujte či aplikácia má nasledujúcu schopnosÅ¥. Môžete si vybraÅ¥ veľa alebo málo, ako sa vám páči. oauth_clients: + create: + flash: UspeÅ¡ne registrované informácie edit: submit: UpraviÅ¥ + title: Upravte vaÅ¡u žiadosÅ¥ + form: + allow_read_gpx: čítaÅ¥ svoje súkromné GPS stopy. + allow_read_prefs: čítaÅ¥ svoje užívateľské nastavenia. + allow_write_api: zmeniÅ¥ mapu. + allow_write_diary: vytvoriÅ¥ položky denníka, poznámky a vytvoriÅ¥ priateľov. + allow_write_gpx: nahraÅ¥ GPS stopy. + allow_write_prefs: upraviÅ¥ svoje užívateľské nastavenia. + callback_url: Spätná URL + name: Meno + requests: "ŽiadosÅ¥ o nasledujúce povolenia od užívateľa:" + required: Požadované + support_url: Podpora URL + url: URL Hlavnej aplikácie + index: + application: Meno žiadosti + issued_at: Vydané v + my_tokens: Moje povolené požiadavky + register_new: Zaregistrujte svoju požiadavku + revoke: ZruÅ¡iÅ¥! + new: + submit: RegistrovaÅ¥ + title: ZaregistrovaÅ¥ novú žiadosÅ¥ + not_found: + sorry: Je nám ľúto, že {{type}} nemožno nájsÅ¥. show: + allow_read_gpx: čítaÅ¥ svoje súkromné GPS stopy. + allow_read_prefs: čítaÅ¥ svoje užívateľské nastavenia. + allow_write_api: zmeniÅ¥ mapu. + allow_write_diary: vytvoriÅ¥ položky denníka, poznámky a vytvoriÅ¥ priateľov. + allow_write_gpx: nahraÅ¥ GPS stopy. + allow_write_prefs: upraviÅ¥ svoje užívateľské nastavenia. edit: UpraviÅ¥ detaily + requests: "Žiadam nasledujúce povolenia od užívateľa:" + support_notice: Podporujeme HMAC-SHA1 (odporúča sa) rovnako ako obyčajný text v ssl móde. + update: + flash: ÚspeÅ¡ne aktualizované informácie o klientovi site: + edit: + anon_edits_link_text: Zistite, prečo tomu tak je. + flash_player_required: Potrebujete Flash player pre Potlatch, the OpenStreetMap Flash editor. Môžete stiahnuÅ¥ Flash Player z Adobe.com. Niekoľko iných možností sú tiež dostupné pre úpravu OpenStreetMap. + not_public: Nemáte nastavené úpravy na verejné. + not_public_description: Nemôžete naďalej upravovaÅ¥ mapy, iba ak urobíte takto. Môžete si nastaviÅ¥ vaÅ¡e úpravy, ako verejné z vaÅ¡ej {{user_page}}. + potlatch_unsaved_changes: Nemáte uložené zmeny. (Pre uloženie v Potlatchu, mali by ste odznačiÅ¥ aktuálnu cestu, alebo bod, ak upravujete v režime naživo, alebo kliknite uložiÅ¥ ak máte tlačidlo uložiÅ¥.) + user_page_link: stránka užívateľa index: + js_1: Používate prehliadač, ktorý nepodporuje JavaScript, alebo máte vypnutý JavaScript. + js_2: OpenStreetMap využíva JavaScript pre slippy map. + js_3: Môžete skúsiÅ¥ Tiles@Home static tile browser ak sa vám nedarí povoliÅ¥ JavaScript. + license: + license_name: Creative Commons Attribution Share-Alike 2,0 + notice: Licencovaný pod {{license_name}} s {{project_name}} a jej prispievatelia. + project_name: OpenStreetMap projekt permalink: Trvalý odkaz shortlink: Krátky odkaz key: map_key: Legenda table: entry: + admin: Administratívne hranice apron: 1: terminál bridleway: Chodník pre kone building: Významná budova + byway: Súkromná cesta cable: - Lanovka - sedačková lanovka @@ -753,11 +1097,14 @@ sk: centre: Å portové centrum commercial: Komerčná oblasÅ¥ common: - 1: lúka + - Obecný + - lúka + construction: Cesta vo výstavbe cycleway: Cyklotrasa farm: Farma footway: Chodník pre peších forest: Les + golf: Golfové ihrisko heathland: Vresovisko industrial: Priemyselná oblasÅ¥ lake: @@ -766,12 +1113,16 @@ sk: military: Vojenský priestor motorway: Diaľnica park: Park + permissive: Voľný prístup pitch: Å portové ihrisko primary: Cesta prvej triedy + private: Súkromný prístup rail: Železnica reserve: Prírodná rezervácia resident: Obytná oblasÅ¥ retail: Nákupná oblasÅ¥ + runway: + 1: pojazdové dráhy school: - Å kola - univerzita @@ -780,16 +1131,29 @@ sk: subway: Metro summit: - Vrchol + - vrchol tourist: Turistická atrakcia track: Lesná, poľná cesta tram: - 1: električka + - Rýchloelektrička + - električka + trunk: Cesta pre motorové vozidlá + tunnel: Únikový kryt = tunel + unclassified: Neklasifikovaná cesta + unsurfaced: Nespevnená cesta heading: Legenda pre z{{zoom_level}} search: search: VyhľadaÅ¥ + search_help: "príklady: 'Alkmaar', 'Regent Street, Cambridge', 'CB2 5AQ', alebo 'poÅ¡ta blízko Lünen' more príklady..." + submit_text: VykonaÅ¥ where_am_i: Kde som? + where_am_i_title: Opis aktuálnej polohy pomocou vyhľadávača sidebar: close: ZavrieÅ¥ + search_results: Výsledky vyhľadávania + time: + formats: + friendly: "%e %B %Y at %H:%M" trace: create: trace_uploaded: Váš GPX súbor bol nahratý a je očakávané vloženie do databázy. To bude spravidla trvaÅ¥ polhodinu až hodinu, a budete vyrozumený mailom po uskutočnení. @@ -806,8 +1170,9 @@ sk: owner: "Vlastník:" points: "Body:" save_button: UložiÅ¥ zmeny - start_coord: "Súradnice začiatku:" + start_coord: "Začiatočná súradnica:" tags: "Tagy:" + tags_help: oddelené čiarkou title: Úprava stopy {{name}} uploaded_at: "NahraÅ¥ na:" visibility: "VidieľnosÅ¥:" @@ -815,15 +1180,19 @@ sk: list: public_traces: Verejné GPS stopy public_traces_from: Verejné GPS stopy od {{user}} - tagged_with: " označený s {{tags}}" + tagged_with: označený s {{tags}} your_traces: VaÅ¡e GPS stopy make_public: - made_public: Stopa urobená pre verejnosÅ¥ + made_public: Zverejnená stopa no_such_user: - body: Prepáčte, nie je tu užívateľ s menom {{user}}. Prosím skontrolujte váš pravopis, alebo možno odkaz na ktorý ste klikli je chybný. + body: Prepáčte, nie je tu užívateľ s menom {{user}}. Prosím skontrolujte váš text, alebo možno odkaz na ktorý ste klikli je chybný. heading: Užívateľ {{user}} neexistuje + title: Nie je taký užívateľ offline: + heading: GPX úschovňa je Offline message: Ukladací priestor GPX súborov a nahrávací systém je teraz neprístupný. + offline_warning: + message: Systém nahrávania GPX súborov je teraz neprístupný trace: ago: pred {{time_in_words_ago}} by: od @@ -855,6 +1224,10 @@ sk: traces_waiting: Máte {{count}} stopy čakajúce na nahratie. Prosím zvážte toto čakanie, dokedy neukončíte nahrávanie niečoho iného, pokiaľ nie je blok v rade pre iných užívateľov. trace_optionals: tags: Tagy + trace_paging_nav: + next: Dopredu » + previous: "« Naspäť" + showing_page: Strana {{page}} view: delete_track: VymazaÅ¥ túto stopu description: "Popis:" @@ -868,9 +1241,10 @@ sk: owner: "Vlastník:" pending: NEVYRIEÅ ENÉ points: "Body:" + start_coordinates: "Začiatočná súradnica:" tags: "Tagy:" title: Sledovanie stopy {{name}} - trace_not_found: Stopa nenajdené! + trace_not_found: Stopa nenájdená! uploaded: "Nahraté na:" visibility: "ViditeľnosÅ¥:" visibility: @@ -880,14 +1254,21 @@ sk: trackable: Zaznamenávané stopy (zdieľané iba ako anonymné, usporiadané body s časovými značkami) user: account: + current email address: "Aktuálna E-mailová Adresa:" + delete image: OdstrániÅ¥ aktuálny obrázok email never displayed publicly: (nezobrazovaný verejne) flash update success: Informácie používateľa boli obnovené. flash update success confirm needed: Užívateľské informácie boli úspeÅ¡ne aktualizované. Skontrolujte vaÅ¡u emailovú adresu pre správu na potvrdenie vaÅ¡ej novej emailovej adresy. home location: "Domovské miesto:" + image: "Obrázok:" + image size hint: (veľkosÅ¥ obrázkov aspoň 100x100 je najlepÅ¡ia) + keep image: PonechaÅ¥ aktuálny obrázok latitude: "Zem. šírka:" longitude: "Zem. dĺžka:" make edits public button: ZverejniÅ¥ vÅ¡etky moje úpravy my settings: Moje nastavenia + new email address: "Nová E-mailová Adresa:" + new image: "PridaÅ¥ obrázok:" no home location: Nezadali ste svoje domovské miesto. preferred languages: "Uprednostňované jazyky:" profile description: "Popis profilu:" @@ -900,6 +1281,7 @@ sk: public editing note: heading: Úprava pre verejnosÅ¥ text: Teraz upravujete ako anonymný a iný vám nemôžu poslaÅ¥ správy, alebo vidieÅ¥ vaÅ¡e miesto. Ukážte čo upravujete a dovoľte iným kontaktovaÅ¥ vás cez webovú stránku, kliknite na tlačítko dolu. Od zmeny verzie 0.6 API, iba užívateľ, ktorý povolil svoje úpravy verejnosti, môže upravovaÅ¥ mapové údaje. (zistiÅ¥ prečo).
  • VaÅ¡a emailová adresa nebude odhalená pre patričnú verejnosÅ¥.
  • Tento dej sa nedá vrátiÅ¥ späť a vÅ¡etci nový užívatelia sú nastavený Å¡tandardne ako verejný.
+ replace image: Nahradiť aktuálny obrázok return to profile: Návrat do profilu save changes button: Uložiť Zmeny title: Upraviť účet @@ -907,33 +1289,35 @@ sk: confirm: button: Potvrdiť failure: Užívateľský účet s týmito údajmi už bol založený. - heading: Potvrdiť používateľský účet + heading: Potvrdiť užívateľský účet press confirm button: Stlačte tlačítko na potvrdenie dole, pre aktiváciu vášho účtu. success: Váš účet je založený, ďakujeme, že ste sa zapísali! confirm_email: button: Potvrdiť - failure: Mailová adresa bola už potvrdená s týmto znakom. - heading: Potvrdiť zmenu emailovej adresy - press confirm button: Stlačte tlačítko potvrdiť dole na potvrdenie vašej novej emailovej adresy. - success: Potvrdením vašej emailovej adresy, ďakujeme za zapísanie sa! + failure: E-mailová adresa bola už potvrdená s týmto znakom. + heading: Potvrdiť zmenu e-mailovej adresy + press confirm button: Stlačte potvrdzovacie tlačidlo nižšie a potvrďte svoju novú e-mailovú adresu. + success: Potvrdená vaša e-mailová adresa, ďakujeme za registráciu! filter: not_an_administrator: Potrebujete byť administrátor na vykonanie tejto akcie. - friend_map: - nearby mapper: "Blízky mapovač: [[nearby_user]]" - your location: Vaša poloha go_public: flash success: Všetky vaše úpravy sú teraz verejné, a teraz máte povolenie na úpravu. login: account not active: Prepáčte, vaš účet nie je ešte aktívne.
Prosím kliknite na odkaz v maile potvrdzujúcom účet na aktivovanie vášho účtu. auth failure: Prepáčte, nemohol som vás prihlásiÅ¥ s týmito údajmi. create_account: vytvoriÅ¥ účet - email or username: "Emailová adresa alebo Meno používateľa:" + email or username: "E-mailová adresa alebo Meno užívateľa:" heading: Prihlásenie login_button: PrihlásiÅ¥ lost password link: Stratili ste heslo? password: "Heslo:" please login: Prosím prihláste sa, alebo {{create_user_link}}. + remember: "ZapamätaÅ¥:" title: PrihlásiÅ¥ sa + logout: + heading: Odhlásenie z OpenStreetMap + logout_button: Odhlásenie + title: Odhlásenie lost_password: email address: "E-mailová Adresa:" heading: Zabudli Ste Heslo? @@ -949,6 +1333,7 @@ sk: new: confirm email address: "PotvrdiÅ¥ emailovú adresu:" confirm password: "PotvrdiÅ¥ Heslo:" + contact_webmaster: Prosím kontaktovaÅ¥ webmaster kvôli žiadosti pre vytvorenie účtu – budeme sa snažiÅ¥ vaÅ¡u požiadavku vybaviÅ¥ tak rýchlo, ako je len možné. display name: "Zobrazované meno:" display name description: VaÅ¡e verejne zobrazené meno užívateľa. Môžete ho potom zmeniÅ¥ v nastaveniach. email address: "Emailová adresa:" @@ -957,6 +1342,7 @@ sk: heading: VytvoriÅ¥ užívateľský účet license_agreement: Vytvorením účtu súhlasíte, že vÅ¡etky údaje vami doplnené do Openstreetmap projektu budú (bez výhrady) licencované pod touto Creative Commons license (by-sa). no_auto_account_create: Bohužiaľ teraz nie sme schopný vytvoriÅ¥ pre vás účet automaticky. + not displayed publicly: NezobrazovaÅ¥ verejne (pozrite privacy policy)k password: "Heslo:" signup: ZaregistrovaÅ¥ sa title: VytvoriÅ¥ účet @@ -964,12 +1350,17 @@ sk: body: Prepáčte, užívateľ s týmto menom sa tu nenachádza {{user}}. Prosím skontrolujte váš text, alebo možno ste klikli na nesprávny odkaz. heading: Užívateľ {{user}} neexistuje title: Taký užívateľ nie je + popup: + friend: Priateľ + nearby mapper: Blízky mapovač + your location: VaÅ¡a poloha remove_friend: not_a_friend: "{{name}} nie je nikto z vaÅ¡ich priateľov." success: "{{name}} bol z vaÅ¡ich priateľov vymazaný." reset_password: confirm password: "PotvrdiÅ¥ Heslo:" flash changed: VaÅ¡e heslo bolo zmenené. + flash token bad: Nemôžem nájsÅ¥ také symboly, možno skontrolujte URL? heading: Resetnúť heslo pre {{user}} password: "Heslo:" reset: ZmazaÅ¥ Heslo @@ -979,16 +1370,14 @@ sk: view: activate_user: aktivovaÅ¥ tohto užívateľa add as friend: pridaÅ¥ ako priateľa - add image: PridaÅ¥ Obrázok ago: (pred {{time_in_words_ago}}) block_history: zobraziÅ¥ prijaté položky + blocks by me: blokovaÅ¥ pre mňa blocks on me: v mojom bloku - change your settings: zmeniÅ¥ vaÅ¡e nastavenia confirm: PotvrdiÅ¥ create_block: blokovaÅ¥ tohto užívateľa created from: "Vytvorené od:" deactivate_user: deaktivovaÅ¥ tohto užívateľa - delete image: ZmazaÅ¥ obrázok delete_user: vymazaÅ¥ tohto užívateľa description: Popis diary: denník @@ -1004,10 +1393,11 @@ sk: my edits: moje úpravy my settings: moje nastavenia my traces: moje stopy - nearby users: "Blízky užívatelia:" + nearby users: Iný blízky užívatelia new diary entry: nový údaj denníka no friends: EÅ¡te nemáte pridaných žiadnych priateľov. - no home location: Nebola nastavená domovská poloha. + no nearby users: Nie je tu iný užívateľ, ktorý priznáva mapovanie v okolí. + oauth settings: Oauth nastavenia remove as friend: odstrániÅ¥ ako priateľa role: administrator: Tento užívateľ je administrátor @@ -1022,18 +1412,93 @@ sk: settings_link_text: nastavenia traces: stopy unhide_user: odkryÅ¥ tohto užívateľa - upload an image: NahraÅ¥ obrázok - user image heading: Obrázok používateľa user location: Poloha užívateľa your friends: VaÅ¡i priatelia user_block: + blocks_by: + empty: "{{name}} nemá eÅ¡te žiadne bloky" + heading: Zoznam blokov pre {{name}} + title: Bloky {{name}} + blocks_on: + empty: "{{name}} doteraz eÅ¡te nebol blokovaný." + heading: Zoznam blokov na {{name}} + title: Bloky na {{name}} + create: + flash: ZablokovaÅ¥ užívateľa {{name}}. + try_contacting: Prosím skúste sa spojiÅ¥ s užívateľom, pred jeho zablokovaním a dajte mu primeraný čas na odpoveď. + try_waiting: Prosím skúste dávaÅ¥ užívateľovi primeraný čas na odpoveď, kým ho zablokujete. + edit: + back: ZobraziÅ¥ vÅ¡etky bloky + heading: Editácia bloku na {{name}} + needs_view: Užívateľ sa potrebuje prihlásiÅ¥ pred tým, než blok bude vymazaný? + period: Ako dlho, teraz začínajúc, bude užívateľ zablokovaný pre API. + reason: Dôvod prečo {{name}} je blokovaný. Prosím buďte kľudný a rozumný ako je možné, poskytujte mnoho detailov, koľko len môžete o situácii. Majte na pamäti, že nie vÅ¡etci užívatelia rozumejú jazyku komunity, tak prosím skúste použiÅ¥ pojmy pre laikov. + show: ZobraziÅ¥ tento blok + submit: Aktualizácia bloku + title: Editácia bloku na {{name}} + filter: + block_expired: Blok už vyprÅ¡al a nemôže byÅ¥ upravený. + block_period: Blokovacia doba musí byÅ¥ jedna z hodnôt voliteľná v roletovom menu. + not_a_moderator: Potrebujete byÅ¥ administrátor na vykonanie tejto akcie. + helper: + time_future: Ukončené v {{time}}. + time_past: Ukončené pred {{time}}. + until_login: Aktívny až do prihlásenia užívateľa. + index: + empty: Žiaden blok eÅ¡te nebol vytvorený. + heading: Zoznam užívateľských blokov + title: Užívateľské bloky + model: + non_moderator_revoke: Musíte byÅ¥ moderátorom na zruÅ¡enie bloku. + non_moderator_update: Musí byÅ¥ moderátorom na vytvorenie alebo aktualizáciu bloku. + new: + back: ZobraziÅ¥ vÅ¡etky bloky + heading: Vytvorenie bloku na {{name}} + needs_view: Užívateľ musí byÅ¥ prihlásený, aby mohol vymazaÅ¥ tento blok + period: Ako dlho, teraz začínajúc, bude užívateľ blokovaný pre API. + reason: Dôvod prečo {{name}} je blokovaný. Prosím buďte kľudný a rozumný ako je možné, poskytujte mnoho detailov, koľko len môžete o situácii. Majte na pamäti, že nie vÅ¡etci užívatelia rozumejú jazyku komunity, tak prosím skúste použiÅ¥ pojmy pre laikov. + submit: VytvoriÅ¥ blok + title: Vytváram blok na {{name}} + tried_contacting: Kontaktoval som užívateľa a požiadal ho, aby prestal. + tried_waiting: Prideľte primerané množstvo času pre odpoveď užívateľa na túto komunikáciu. + not_found: + back: Naspäť na zoznam + sorry: Prepáčte, blok užívateľa s ID {{id}} nemohol byÅ¥ nájdený. partial: confirm: Ste si istí? + display_name: Blokovaný užívateľ edit: UpraviÅ¥ + not_revoked: (nezruÅ¡ený) + reason: Dôvod pre blokovanie + revoke: ZruÅ¡iÅ¥! + revoker_name: ZruÅ¡il show: ZobraziÅ¥ status: Stav + revoke: + confirm: Ste si istí, že chcete zruÅ¡iÅ¥ tento blok? + flash: Tento blok bol zruÅ¡ený. + heading: ZruÅ¡ujem blok pre {{block_on}} podľa {{block_by}} + past: Tento blok skončil pred {{time}}a teraz nemože byÅ¥ zruÅ¡ený. + revoke: ZruÅ¡iÅ¥! + time_future: Tento blok bol ukončený v {{time}}. + title: ZruÅ¡ujem blok pre {{block_on}} show: + back: ZobraziÅ¥ vÅ¡etky blokovania + confirm: Ste si istý? edit: UpraviÅ¥ + heading: "{{block_on}} blokovaný {{block_by}}" + needs_view: Užívateľ sa potrebuje prihlásiÅ¥ predtým, ako bude toto blokovanie odstránené. + reason: "Dôvod blokovania:" + revoke: OdvolaÅ¥! + revoker: "Odvolaním:" + show: ZobraziÅ¥ + status: Postavenie + time_future: Skončené {{time}} + time_past: Ukončené pred {{time}} + title: "{{block_on}} blokovaný {{block_by}}" + update: + only_creator_can_edit: Iba moderátor, ktorý vytvoril tento blok, ho môže editovaÅ¥. + success: Blok je aktualizovaný. user_role: filter: already_has_role: Užívateľ už má úlohu {{role}}. diff --git a/config/locales/sl.yml b/config/locales/sl.yml index 4f3165f82..7a878ff43 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -1,6 +1,7 @@ # Messages for Slovenian (Slovenščina) # Exported from translatewiki.net # Export driver: syck +# Author: Dbc334 sl: activerecord: attributes: @@ -103,7 +104,7 @@ sl: node: Prikaz vozlišča na večjem zemljevidu relation: Prikaz relacije na večjem zemljevidu way: Prikaz poti na večjem zemljevidu - loading: Nalaganje... + loading: Nalaganje ... node: download: "{{download_xml_link}} ali {{view_history_link}}" download_xml: prenesi XML @@ -159,7 +160,7 @@ sl: history_for_feature: Zgodovina [[feature]] load_data: Naloži podatke loaded_an_area_with_num_features: "Naložili ste področje, ki vsebuje [[num_features]] elementov. Nekateri spletni brskalniki ne zmorejo prikaza takÅ¡ne količine podatkov. Na sploÅ¡no brskalniki najbolje prikazujejo 100 ali manj elementov hkrati: karkoli drugega lahko upočasni vaÅ¡ brskalnik ali ga naredi neodzivnega. Če ste prepričani, da želite prikazati vse te podatke, pritisnite na spodnji gumb." - loading: Nalaganje... + loading: Nalaganje ... manually_select: Ročno izberite drugo področje object_list: api: Pridobi področje iz programskega vmesnika (API) @@ -213,7 +214,7 @@ sl: still_editing: (Å¡e ureja) view_changeset_details: Ogled podrobnosti paketa sprememb changeset_paging_nav: - showing_page: Prikaz strani + showing_page: Prikazovanje strani {{page}} changesets: area: Področje comment: Komentar @@ -245,7 +246,7 @@ sl: reply_link: Odgovori na ta vnos edit: body: "Besedilo:" - language: "Jezki:" + language: "Jezik:" latitude: "Z. Å¡irina:" location: "Lokacija:" longitude: "Z. dolžina:" @@ -289,7 +290,7 @@ sl: login: Prijavite se login_to_leave_a_comment: "{{login_link}} za vpis komentarja" save_button: Shrani - title: Dnevnik uporabnika {{user}} + title: Dnevnik uporabnika {{user}} | {{title}} user_title: Dnevnik uporabnika {{user}} export: start: @@ -298,11 +299,11 @@ sl: embeddable_html: HTML za vključitev na spletno stran export_button: Izvozi export_details: OpenStreetMap podatki imajo licenco Creative Commons Priznanje avtorstva-Deljenje pod enakimi pogoji 2.0. - format: Oblika zapisa + format: Oblika format_to_export: Oblika izvoženih podatkov image_size: Velikost slike latitude: "Å ir:" - licence: Licenca + licence: Dovoljenje longitude: "Dol:" manually_select: Ročno izberite drugo področje mapnik_image: Mapnik slika zemljevida @@ -363,7 +364,6 @@ sl: donate: Podprite OpenStreetMap z {{link}} v fond za nadgradnjo strojne opreme. donate_link_text: donacijo edit: Uredi - edit_tooltip: Uredite zemljevid export: Izvoz export_tooltip: Izvozite podatke zemljevida gps_traces: GPS sledi @@ -372,7 +372,6 @@ sl: help_wiki_tooltip: Pomoč in Wiki strani projekta help_wiki_url: http://wiki.openstreetmap.org/wiki/Sl:Main_Page?uselang=sl history: Zgodovina - history_tooltip: Zgodovina sprememb home: domov home_tooltip: Prikaži domači kraj inbox_tooltip: @@ -408,10 +407,6 @@ sl: view_tooltip: Prikaz zemljevida welcome_user: DobrodoÅ¡li, {{user_link}} welcome_user_link_tooltip: VaÅ¡a uporabniÅ¡ka stran - map: - coordinates: "Koordinate:" - edit: Urejanje - view: Zemljevid message: delete: deleted: Sporočilo izbrisano @@ -442,9 +437,9 @@ sl: subject: Zadeva title: PoÅ¡iljanje sporočila no_such_user: - body: Oprostite, uporabnika s tem imenom ali sporočila s tem ID-jem ni - heading: Ni ustreznega uporabnika ali sporočila - title: Ni ustreznega uporabnika ali sporočila + body: Oprostite, uporabnika s tem imenom ni. + heading: Ni takega uporabnika + title: Ni takega uporabnika outbox: date: Datum inbox: prejeta @@ -745,9 +740,6 @@ sl: heading: Potrdite spremembo naslova e-poÅ¡te press confirm button: Za potrditev spremembe vaÅ¡ega naslova elektronske poÅ¡te pritisnite na gumb Potrdi spodaj. success: VaÅ¡ naslov elektronske poÅ¡te je potrjen. Hvala, da ste se vpisali! - friend_map: - nearby mapper: "Bližnji kartograf: [[nearby_user]]" - your location: VaÅ¡a lokacija go_public: flash success: Vsi vaÅ¡i prispevki so sedaj javni in sedaj imate pravico do urejanja. login: @@ -791,6 +783,9 @@ sl: body: Oprostite, uporabnika z imenom {{user}} ni. Prosimo, preverite črkovanje in povezavo, ki ste jo kliknili. heading: Uporabnik {{user}} ne obstaja title: Ni tega uporabnika + popup: + nearby mapper: Bližnji kartograf + your location: VaÅ¡a lokacija remove_friend: not_a_friend: Uporabnika {{name}} ni med vaÅ¡imi prijatelji. success: Uporabnika {{name}} ste odstranili izmed svojih prijateljev. @@ -801,10 +796,7 @@ sl: flash success: Domača lokacija uspeÅ¡no shranjena view: add as friend: dodaj med prijatelje - add image: Dodaj sliko ago: ({{time_in_words_ago}} nazaj) - change your settings: uredite vaÅ¡e nastavitve - delete image: IzbriÅ¡i sliko description: Opis diary: dnevnik edits: prispevki @@ -814,16 +806,13 @@ sl: my edits: moji prispevki my settings: moje nastavitve my traces: moje sledi - nearby users: "Bližnji uporabniki:" + nearby users: Drugi bližnji uporabniki new diary entry: nov vnos v dnevnik no friends: Niste Å¡e dodali nobenih prijateljev. - no home location: Domača lokacija uporabnika Å¡e ni bila nastavljena. - no nearby users: Ni uporabnikov, ki bi priznali, da kartirajo v vaÅ¡i bližini. + no nearby users: Ni Å¡e drugih uporabnikov, ki bi priznali, da kartirajo v vaÅ¡i bližini. remove as friend: odstrani izmed prijateljev send message: poÅ¡lji sporočilo settings_link_text: vaÅ¡ih nastavitvah traces: sledi - upload an image: Objavite sliko - user image heading: Slika uporabnika user location: Lokacija uporabnika your friends: VaÅ¡i prijatelji diff --git a/config/locales/sr-EC.yml b/config/locales/sr-EC.yml index 1b06b9f34..b172a9c31 100644 --- a/config/locales/sr-EC.yml +++ b/config/locales/sr-EC.yml @@ -36,6 +36,7 @@ sr-EC: user: active: Активан description: Опис + display_name: Приказано име email: Е-пошта languages: Језици pass_crypt: Лозинка @@ -120,7 +121,7 @@ sr-EC: map: deleted: Обрисано larger: - area: Погледај зону на већој мапи + area: Погледај област на већој мапи node: Погледај чвор на већој мапи relation: Погледај однос на већој мапи way: Погледај путању на већој мапи @@ -176,7 +177,7 @@ sr-EC: data_frame_title: Подаци data_layer_name: Подаци details: Детаљи - drag_a_box: Развуци правоугаоник на мапи да би обележио област + drag_a_box: Превуците правоугаоник преко мапе како бисте обележили област edited_by_user_at_timestamp: Изменио [[user]] на [[timestamp]] history_for_feature: Историја за [[feature]] load_data: Учитај податке @@ -205,6 +206,12 @@ sr-EC: zoom_or_select: Увећајте или изаберите место на мапи које желите да погледате tag_details: tags: "Ознаке:" + timeout: + type: + changeset: скуп измена + node: чвор + relation: однос + way: путања way: download: "{{download_xml_link}}, {{view_history_link}} или {{edit_link}}" download_xml: Преузми XML @@ -226,10 +233,15 @@ sr-EC: way_history_title: "Историја путање: {{way_name}}" changeset: changeset: + anonymous: Анонимно big_area: (велика) no_comment: (нема) no_edits: (нема измена) still_editing: (још увек уређује) + changeset_paging_nav: + next: Следећа » + previous: "« Претходна" + showing_page: Приказ стране {{page}} changesets: area: Област comment: Напомена @@ -237,6 +249,7 @@ sr-EC: saved_at: Сачувано у user: Корисник list: + description: Скорашње измене description_bbox: Скупови измена унутар {{bbox}} heading: Скупови измена heading_bbox: Скупови измена @@ -275,6 +288,10 @@ sr-EC: recent_entries: "Скорашњи дневнички уноси:" title: Кориснички дневници user_title: Дневник корисника {{user}} + location: + edit: Уреди + location: "Локација:" + view: Преглед new: title: Нови дневнички унос no_such_user: @@ -289,6 +306,7 @@ sr-EC: add_marker: Додајте маркер на мапу area_to_export: Област за извоз export_button: Извези + export_details: OpenStreetMap подаци су лиценцирани под Creative Commons Attribution-ShareAlike 2.0 лиценцом. format: Формат format_to_export: Формат за извоз image_size: Величина слике @@ -307,6 +325,7 @@ sr-EC: add_marker: Додајте маркер на мапу change_marker: Промените положај маркера click_add_marker: Кликните на мапу како бирте додали маркер + drag_a_box: Превуците правоугаоник преко мапе како бисте обележили област export: Извези manually_select: Ручно изаберите другу област view_larger_map: Погледајте већу мапу @@ -334,6 +353,9 @@ sr-EC: results: more_results: Још резултата no_results: Нема резултата претраге + search_osm_namefinder: + suffix_parent: "{{suffix}} ({{parentdistance}} {{parentdirection}} од {{parentname}})" + suffix_place: ", {{distance}} {{direction}} од {{placename}}" search_osm_nominatim: prefix: amenity: @@ -342,6 +364,7 @@ sr-EC: bank: Банка bar: Бар bench: Клупа + bicycle_parking: Паркинг за бицике brothel: Бордел bureau_de_change: Мењачница bus_station: Аутобуска станица @@ -355,17 +378,20 @@ sr-EC: courthouse: Зграда суда crematorium: Крематоријум dentist: Зубар + drinking_water: Пијаћа вода driving_school: Ауто-школа embassy: Амбасада fast_food: Брза храна fire_hydrant: Хидрант fire_station: Ватрогасна станица fountain: Фонтана + fuel: Гориво grave_yard: Гробље gym: Фитнес центар / Теретана health_centre: Дом здравља hospital: Болница hotel: Хотел + ice_cream: Сладолед kindergarten: Обданиште library: Библиотека marketplace: Пијаца @@ -384,6 +410,7 @@ sr-EC: retirement_home: Старачки дом sauna: Сауна school: Школа + shelter: Склониште shop: Продавница studio: Студио supermarket: Супермаркет @@ -392,6 +419,8 @@ sr-EC: theatre: Позориште toilets: Тоалети university: Универзитет + waste_basket: Корпа за отпатке + wifi: Wi-Fi приступ youth_centre: Дом омладине boundary: administrative: Административна граница @@ -418,9 +447,11 @@ sr-EC: footway: Стаза gate: Капија motorway: Аутопут + motorway_link: Мото-пут path: Стаза platform: Платформа primary_link: Главни пут + raceway: Тркачка стаза road: Пут steps: Степенице trail: Стаза @@ -437,16 +468,21 @@ sr-EC: ruins: Рушевине tower: Торањ landuse: + basin: Басен cemetery: Гробље construction: Градилиште farm: Фарма forest: Шума + grass: Трава industrial: Индустријска зона + meadow: Ливада military: Војна област mine: Рудник mountain: Планина park: Парк + piste: Скијашка стаза quarry: Каменолом + railway: Железничка пруга reservoir: Резервоар residential: Стамбена област vineyard: Виноград @@ -457,6 +493,7 @@ sr-EC: ice_rink: Клизалиште marina: Марина miniature_golf: Мини голф + nature_reserve: Резерват природе park: Парк pitch: Спортско игралиште playground: Игралиште @@ -471,6 +508,7 @@ sr-EC: cape: Рт cave_entrance: Улаз у пећину channel: Канал + cliff: Литица crater: Кратер fjord: Фјорд geyser: Гејзир @@ -479,6 +517,7 @@ sr-EC: island: Острво marsh: Мочвара mud: Блато + peak: Врх reef: Гребен ridge: Гребен river: Река @@ -489,6 +528,7 @@ sr-EC: valley: Долина volcano: Вулкан water: Вода + wood: Гај place: airport: Аеродром city: Град @@ -509,11 +549,14 @@ sr-EC: village: Село railway: narrow_gauge: Пруга уског колосека + tram_stop: Трамвајско стајалиште shop: art: Продавница слика bakery: Пекара + beauty: Салон лепоте books: Књижара butcher: Месара + car_parts: Продавница ауто-делова car_repair: Ауто-сервис clothes: Бутик copyshop: Копирница @@ -531,9 +574,12 @@ sr-EC: market: Маркет music: Музичка продавница optician: Оптичар + photo: Фотографска радња salon: Салон + shoes: Продавница ципела shopping_centre: Тржни центар supermarket: Супермаркет + toys: Продавница играчака travel_agency: Туристичка агенција tourism: artwork: Галерија @@ -557,22 +603,33 @@ sr-EC: river: Река waterfall: Водопад javascripts: + map: + base: + noname: Без назива site: - history_zoom_alert: Морате зумирати како бисте видели историју уређивања + edit_disabled_tooltip: Увећајте како бисте уредили мапу + edit_tooltip: Уреди мапу + history_zoom_alert: Морате увећати како бисте видели историју уређивања layouts: donate_link_text: донирање edit: Уреди - edit_tooltip: Уредите мапе export: Извези export_tooltip: Извоз мапа gps_traces: ГПС трагови help_wiki: Помоћ и вики history: Историја - history_tooltip: Историја скупа измена home: мој дом home_tooltip: Иди на почетну локацију - inbox: поруке + inbox: поруке ({{count}}) + inbox_tooltip: + few: Имате {{count}} непрочитане поруке + one: Имате једну непрочитану поруку + other: Имате {{count}} непрочитаних порука + zero: Немате непрочитаних порука + intro_1: OpenStreetMap је слободна мапа целог света. Сачињавају је корисници као што сте ви. + intro_2: OpenStreetMap вам омогућава да прегледате, уређујете и користите географске податке са било ког места на Земљи. intro_3: Одржавање OpenStreetMap је подржано од стране {{ucl}} и {{bytemark}}. + intro_3_partners: вики license: title: Подаци OpenStreetMap сајта су лиценцирани под Creative Commons Attribution-Share Alike 2.0 општом лиценцом log_in: пријавите се @@ -586,27 +643,28 @@ sr-EC: title: Подржите OpenStreetMap новчаним прилогом news_blog: Вест на блогу shop: Продавница + shop_tooltip: пазарите у регистрованој OpenStreetMap продавници sign_up: региструјте се sign_up_tooltip: Направите налог како бисте уређивали мапе user_diaries: Кориснички дневници user_diaries_tooltip: Погледајте дневнике корисника view: Преглед - view_tooltip: Погледајте мапе + view_tooltip: Погледајте мапу welcome_user: Добродошли, {{user_link}} welcome_user_link_tooltip: Ваша корисничка страна - map: - coordinates: "Координате:" - edit: Уреди - view: Види message: delete: deleted: Порука је обрисана inbox: date: Датум from: Од - my_inbox: Примљене + my_inbox: Моје примљене поруке no_messages_yet: Тренутно немате порука. Зашто не успоставите контакт са {{people_mapping_nearby_link}}? + outbox: послате + people_mapping_nearby: маперима у вашој околини subject: Тема + title: Моје примљене поруке + you_have: Имате {{new_count}} нових порука и {{old_count}} старих порука mark: as_read: Порука је означена као прочитана as_unread: Порука је означена као непрочитана @@ -616,33 +674,49 @@ sr-EC: reply_button: Одговори unread_button: Означи као непрочитано new: + back_to_inbox: Назад на примљене body: Тело message_sent: Порука је послата send_button: Пошаљи + send_message_to: Пошаљи нову поруку {{name}} subject: Тема title: Пошаљи поруку + no_such_user: + heading: Овде таквог нема + title: Овде таквог нема outbox: date: Датум - inbox: долазна пошта - my_inbox: Мој {{inbox_link}} - outbox: одлазна пошта - people_mapping_nearby: маперима у вашој близини + inbox: примљене поруке + my_inbox: Моје {{inbox_link}} + no_sent_messages: Тренутно немате послатих порука. Зашто не успоставите контакт са {{people_mapping_nearby_link}}? + outbox: послате + people_mapping_nearby: маперима у вашој околини subject: Тема title: Одлазна пошта to: За you_have_sent_messages: Имате {{count}} послатих порука read: + back_to_inbox: Назад на примљене + back_to_outbox: Назад на послате date: Датум from: Од reply_button: Одговори subject: Тема + title: Прочитај поруку to: За unread_button: Означи као непрочитано sent_message_summary: delete_button: Обриши notifier: + diary_comment_notification: + hi: Поздрав {{to_user}}, + subject: "[OpenStreetMap] {{user}} је коментарисао ваш дневнички унос" email_confirm: subject: "[OpenStreetMap] Потврдите вашу адресу е-поште" + email_confirm_html: + click_the_link: Ако сте то ви, молимо кликните на везу испод како бисте потврдили измене. + greeting: Поздрав, + hopefully_you: Неко (вероватно ви) би желео да промени адресу е-поште са {{server_url}} на {{new_address}}. email_confirm_plain: greeting: Поздрав, friend_notification: @@ -651,6 +725,7 @@ sr-EC: greeting: Поздрав, lost_password_html: click_the_link: Ако сте то ви, молимо кликните на линк испод како бисте ресетивали лозинку. + greeting: Поздрав, lost_password_plain: click_the_link: Ако сте то ви, молимо кликните на линк испод како бисте ресетивали лозинку. greeting: Поздрав, @@ -662,6 +737,8 @@ sr-EC: subject: "[OpenStreetMap] Потврдите вашу адресу е-поште" signup_confirm_html: greeting: Поздрав! + signup_confirm_plain: + greeting: Поздрав! oauth: oauthorize: allow_read_gpx: учитајте ваше GPS путање. @@ -674,6 +751,8 @@ sr-EC: form: name: Име site: + edit: + user_page_link: корисничка страна index: license: license_name: Creative Commons Attribution-Share Alike 2.0 @@ -691,7 +770,7 @@ sr-EC: centre: Спортски центар commercial: Пословна област common: - 1: Ливада + 1: ливада construction: Путеви у изградњи cycleway: Бициклистичка стаза farm: Фарма @@ -707,6 +786,7 @@ sr-EC: park: Парк pitch: Спортско игралиште primary: Главни пут + private: Приватни посед rail: Железничка пруга reserve: Парк природе resident: Стамбена област @@ -717,6 +797,9 @@ sr-EC: - универзитет station: Железничка станица subway: Подземна железница + summit: + - Узвишење + - врх tourist: Туристичка атракција track: Стаза tram: @@ -725,14 +808,20 @@ sr-EC: trunk: Магистрални пут tunnel: Испрекидан оквир = тунел unsurfaced: Подземни пут + wood: Гај heading: Легенда за увећање {{zoom_level}} search: search: Претрага + search_help: "примери: 'Берлин', 'Војводе Степе, Београд', 'CB2 5AQ' још примера..." submit_text: Иди where_am_i: Где сам? + where_am_i_title: Установите тренутну локацију помоћу претраживача sidebar: close: Затвори search_results: Резултати претраге + time: + formats: + friendly: "%e %B %Y у %H:%M" trace: create: trace_uploaded: Ваш GPX фајл је послат и чека на унос у базу. Он обично траје око пола сата, и добићете поруку е-поштом кад се заврши. @@ -749,16 +838,18 @@ sr-EC: save_button: Сними промене start_coord: "Почетне координате:" tags: "Ознаке:" + tags_help: раздвојене зарезима title: Мењање трага {{name}} uploaded_at: "Послато:" visibility: "Видљивост:" visibility_help: шта ово значи? list: public_traces: Јавни ГПС трагови + tagged_with: " означени са {{tags}}" your_traces: Ваши ГПС трагови no_such_user: heading: Корисник {{user}} не постоји - title: Овде таквих нема + title: Овде таквог нема trace: ago: пре {{time_in_words_ago}} by: од @@ -796,6 +887,7 @@ sr-EC: edit_track: Уреди ову стазу filename: "Име фајла:" map: мапа + none: Нема owner: "Власник:" pending: НА_ЧЕКАЊУ points: "Тачке:" @@ -804,16 +896,26 @@ sr-EC: trace_not_found: Траг није пронађен! uploaded: "Послато:" visibility: "Видљивост:" + visibility: + identifiable: Омогућавају препознавање (приказани у списку трагова и као јавне, поређане и датиране тачке) + private: Приватни (дељиви само као анонимне, непоређане тачке) + public: Јавни (приказани у списку трагова и као јавне, непоређане тачке) + trackable: Омогућавају праћење (дељиви само као анонимне, поређане и датиране тачке) user: account: current email address: "Тренутна адреса е-поште:" + delete image: Уклони тренутну слику email never displayed publicly: (не приказуј јавно) + flash update success: Подаци о кориснику успешно ажурирани. + flash update success confirm needed: Подаци о кориснику успешно ажурирани. Проверите вашу е-пошту како бисте потврдивли нову адресу е-поште. home location: "Моја локација:" + image: "Слика:" latitude: "Географска ширина:" longitude: "Географска дужина:" make edits public button: Нека све моје измене буду јавне my settings: Моја подешавања new email address: "Нова адреса е-поште:" + new image: Додајте вашу слику no home location: Нисте унели ваше место становања. preferred languages: "Подразумевани језици:" profile description: "Опис профила:" @@ -831,8 +933,8 @@ sr-EC: button: Потврди heading: Потврдите промену е-мејл адресе success: Потврдите вашу е-мејл адресу, хвала на регистрацији! - friend_map: - your location: Ваша локација + filter: + not_an_administrator: Морате бити администратор да бисте извели ову акцију. login: create_account: направите налог email or username: "Адреса е-поште или корисничко име:" @@ -841,7 +943,11 @@ sr-EC: lost password link: Изгубили сте лозинку? password: "Лозинка:" please login: Молимо пријавите се или {{create_user_link}}. + remember: "Запамти ме:" title: Пријављивање + logout: + logout_button: Одјави се + title: Одјави се lost_password: email address: "Адреса е-поште:" heading: Заборављена лозинка? @@ -851,40 +957,52 @@ sr-EC: make_friend: success: "{{name}} је постао ваш пријатељ." new: - confirm email address: "Потврдите е-мејл адресу:" - confirm password: "Потврди лозинку:" + confirm email address: "Потврдите адресу е-поште:" + confirm password: "Потврдите лозинку:" + display name: "Приказано име:" + display name description: Име вашег корисничког налога. Можете га касније променити у подешавањима. email address: "Адреса е-поште:" fill_form: Попуните упитник и убрзо ћемо вам послати мејл како бисте активирали налог. heading: Креирајте кориснички налог + license_agreement: Креирањем налога, прихватате услове да сви подаци које шаљете на Openstreetmap пројекат буду (неискључиво) лиценциран под овом Creative Commons лиценцом (by-sa). + not displayed publicly: Не приказује се јавно (погледајте политику приватности) password: "Лозинка:" signup: Пријава title: Направи налог no_such_user: heading: Корисник {{user}} не постоји title: Овде таквог нема + popup: + friend: Пријатељ + your location: Ваша локација reset_password: - confirm password: "Потврди лозинку:" + confirm password: "Потврдите лозинку:" flash changed: Ваша лозинка је промењена. + heading: Обнови лозинку за {{user}} password: Лозинка + reset: Обнови лозинку + title: Обнови лозинку + set_home: + flash success: Ваша локација је успешно сачувана view: add as friend: додај за пријатеља - add image: Додај слику confirm: Потврди create_block: блокирај овог корисника - delete image: Обриши слику delete_user: избриши овог корисника description: Опис diary: дневник edits: измене email address: "Е-мејл адреса:" - km away: удаљено {{count}}km + km away: "{{count}}km далеко" m away: "{{count}}m далеко" + mapper since: "Мапер од:" my diary: мој дневник my edits: моје измене my settings: моја подешавања my traces: моји трагови - nearby users: "Корисници у близини:" + nearby users: "Остали корисници у близини:" new diary entry: нови дневнички унос + no friends: Још нисте додали ни једног пријатеља. remove as friend: уклони као пријатеља role: administrator: Овај корисник је администратор @@ -895,21 +1013,30 @@ sr-EC: send message: пошаљи поруку settings_link_text: подешавања traces: трагови - user image heading: Слика корисника user location: Локација корисника your friends: Ваши пријатељи user_block: partial: confirm: Јесте ли сигурни? + display_name: Блокирани корисник edit: Уреди + reason: Разлози блокирања show: Прикажи status: Стање + period: + few: "{{count}} сата" + one: 1 сат + other: "{{count}} сати" show: back: Погледај сва блокирања confirm: Јесте ли сигурни? edit: Уреди + needs_view: Овај корисник мора да се пријави пре него што се блокада уклони. reason: "Разлози блокирања:" + show: Прикажи status: Статус + time_future: Завршава се у {{time}} + time_past: Завршена пре {{time}} user_role: filter: doesnt_have_role: Корисник нема улогу {{role}}. diff --git a/config/locales/sv.yml b/config/locales/sv.yml index 01f785258..76c6decee 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -1,6 +1,7 @@ # Messages for Swedish (Svenska) # Exported from translatewiki.net # Export driver: syck +# Author: Ainali # Author: Balp # Author: Cohan # Author: Grillo @@ -208,6 +209,11 @@ sv: zoom_or_select: Zooma in eller välj arean du vill se. tag_details: tags: "Taggar:" + timeout: + type: + node: nod + relation: relation + way: väg way: download: "{{download_xml_link}}, {{view_history_link}} eller {{edit_link}}" download_xml: Ladda hem XML @@ -319,6 +325,9 @@ sv: osmarender_image: Osmarender-bild output: Utdata scale: Skala + too_large: + body: Detta omrÃ¥de är för stort för att exporteras som OpenStreetMap XML-data. Vänligen zooma in eller välja ett mindre omrÃ¥de. + heading: For stort omrÃ¥de zoom: Zooma start_rjs: add_marker: Lägg till markör pÃ¥ kartan @@ -611,7 +620,6 @@ sv: donate: Donera till OpenStreetMap via {{link}} till hÃ¥rdvaruuppgraderingsfonden. donate_link_text: donera edit: Redigera - edit_tooltip: Ändra pÃ¥ kartan export: Exportera export_tooltip: Exportera kartdata som bild eller rÃ¥data gps_traces: GPS-spÃ¥r @@ -619,7 +627,6 @@ sv: help_wiki: Hjälp & wiki help_wiki_tooltip: Hjälp och wiki för projektet history: Historik - history_tooltip: Changeset-historik home: hem home_tooltip: GÃ¥ till hempositionen inbox: inkorg ({{count}}) @@ -657,10 +664,6 @@ sv: view_tooltip: Visa kartorna welcome_user: Välkommen {{user_link}} welcome_user_link_tooltip: Din användarsida - map: - coordinates: "Koordinater:" - edit: Redigera - view: Visa message: delete: deleted: Meddelande raderat @@ -895,6 +898,8 @@ sv: body: Det fanns ingen användare med namnet {{user}}. Kontrollera stavningen, och om länken du klickade pÃ¥ var korrekt. heading: Användaren {{user}} finns inte title: Ingen sÃ¥dan användare + offline: + message: GPX-uppladdningssystemet är för närvarande inte tillgängligt. offline_warning: message: GPX-uppladdningssystemet är för tillfället otillgängligt. trace: @@ -903,6 +908,7 @@ sv: count_points: "{{count}} punkter" edit: Redigera edit_map: Redigera karta + identifiable: IDENTIFIERBAR in: i map: karta more: mer @@ -910,6 +916,7 @@ sv: private: PRIVAT public: PUBLIK trace_details: Visa spÃ¥rdetaljer + trackable: SPÅRBAR view_map: Visa karta trace_form: description: Beskrivning @@ -927,6 +934,10 @@ sv: traces_waiting: Du har {{count}} GPS-spÃ¥r som laddas upp. Det är en bra idé att lÃ¥ta dessa bli klara innan du laddar upp fler, sÃ¥ att du inte blockerar uppladdningskön för andra användare. trace_optionals: tags: Taggar + trace_paging_nav: + next: Nästa » + previous: "« FöregÃ¥ende" + showing_page: Visar sida {{page}} view: delete_track: Radera detta spÃ¥r description: "Beskrivning:" @@ -953,14 +964,21 @@ sv: trackable: SpÃ¥rbar (delas bara som anonyma ordnade punker med tidsstämpel) user: account: + current email address: "Nuvarande E-postadress:" + delete image: Ta bort nuvarande bild email never displayed publicly: (Visas aldrig offentligt) flash update success: Användarinformation uppdaterades. flash update success confirm needed: Användarinformation uppdaterades. Kontrollera din e-post för att bekräfta din e-postadress. home location: "Hemposition:" + image: "Bild:" + image size hint: (kvadratiska bilder pÃ¥ minst 100x100 fungerar bäst) + keep image: BehÃ¥ll nuvarande bild latitude: "Breddgrad (latitud):" longitude: "Längdgrad (longitud):" make edits public button: Gör alla mina redigeringar publika my settings: Mina inställningar + new email address: "Ny e-postadress:" + new image: Lägg till en bild no home location: Du har inte angivit nÃ¥gon hemposition. preferred languages: "Föredraget sprÃ¥k:" profile description: "Profilbeskrivning:" @@ -974,6 +992,7 @@ sv: public editing note: heading: Offentlig redigering text: Dina redigeringar är för tillfället anonyma och andra användare kan inte skicka meddelanden till dig eller se din position. För att visa andra vad du redigerat och för att tillÃ¥ta andra att kontakta dig genom webbplatsen, klicka pÃ¥ knappen nedan. Sedan bytet till API av version 0.6 kan bara publika användare redigera kartdata. (ta reda pÃ¥ varför (engelska)).
  • Din e-postadress avslöjas inte om du blir publik användare.
  • Denna handling kan inte Ã¥ngras och alla nya användare är numera publika som standard.
+ replace image: Ersätt nuvarande bild return to profile: Återvänd till profil save changes button: Spara ändringar title: Redigera konto @@ -992,9 +1011,6 @@ sv: success: E-postadressen är bekräftad. Tack för att du registrerade dig! filter: not_an_administrator: Du mÃ¥ste vara administratör för att fÃ¥ göra det. - friend_map: - nearby mapper: "Användare i närheten: [[nearby_user]]" - your location: Din position go_public: flash success: Alla dina ändringar är nu publika, och du fÃ¥r lov att redigera. login: @@ -1007,10 +1023,16 @@ sv: lost password link: Glömt ditt lösenord? password: "Lösenord:" please login: Logga in eller {{create_user_link}} + remember: "Kom ihÃ¥g mig:" title: Logga in + logout: + heading: Logga ut frÃ¥n OpenStreetMap + logout_button: Logga ut + title: Logga ut lost_password: email address: "E-postadress:" heading: Glömt lösenord? + help_text: Ange e-postadressen du använde för att registrera dig sÃ¥ skickar vi en länk till den som du kan använda för att Ã¥terställa ditt lösenord. new password button: Återställ lösenord notice email cannot find: Kunde inte hitta den e-postadressen. notice email on way: Synd att du förlorade det, men ett nytt är pÃ¥ väg via e-post. @@ -1022,9 +1044,15 @@ sv: new: confirm email address: "Bekräfta e-postadress:" confirm password: "Bekräfta lösenord:" + contact_webmaster: Kontakta webmastern för att fÃ¥ ett konto skapat - vi kommer att behandla ansökan sÃ¥ snabbt som möjligt. + display name: "Namn som visas:" + display name description: Ditt offentligt visade användarnamn. Du kan ändra detta senare i inställningarna. email address: "E-postadress:" fill_form: Fyll i formuläret sÃ¥ skickar vi ett e-brev för att aktivera ditt konto. heading: Skapa ett användarkonto + license_agreement: Genom att skapa ett konto accepterar du att alla uppgifter du lämnar in till OpenStreetMap projektet skall (icke-exklusivt) vara licensierat under denna Creative Commons-licens (by-sa) . + no_auto_account_create: Tyvärr kan vi för närvarande inte kan skapa ett konto Ã¥t dig automatiskt. + not displayed publicly: Visas inte offentligt (se sekretesspolicyn) password: "Lösenord:" signup: Registrering title: Skapa konto @@ -1032,6 +1060,10 @@ sv: body: Det finns ingen användare med namnet {{user}}. Kontrollera stavningen eller kanske länken är trasig. heading: Användaren {{user}} finns inte title: Ingen sÃ¥dan användare + popup: + friend: Vän + nearby mapper: Användare i närheten + your location: Din position remove_friend: not_a_friend: "{{name}} är inte en av dina vänner." success: "{{name}} togs bort frÃ¥n dina vänner." @@ -1048,16 +1080,14 @@ sv: view: activate_user: aktivera denna användare add as friend: lägg till som vän - add image: Lägg till bild ago: ({{time_in_words_ago}} sedan) + block_history: visa tilldelade blockeringar blocks by me: blockeringar av mig blocks on me: mina blockeringar - change your settings: ändra dina inställningar confirm: Bekräfta create_block: blockera denna användare created from: "Skapad frÃ¥n:" deactivate_user: deaktivera denna användare - delete image: Radera bild delete_user: radera denna användare description: Beskrivning diary: dagbok @@ -1073,11 +1103,9 @@ sv: my edits: mina redigeringar my settings: Mina inställningar my traces: mina GPS-spÃ¥r - my_oauth_details: Visa mina OAuth-detaljer nearby users: "Användare nära dig:" new diary entry: nytt dagboksinlägg no friends: Du har inte lagt till nÃ¥gra vänner ännu. - no home location: Ingen hempostion är satt. no nearby users: Det finns inga som registrerat sin position i ditt omrÃ¥de ännu. remove as friend: ta bort vän role: @@ -1093,8 +1121,6 @@ sv: settings_link_text: inställningar traces: spÃ¥r unhide_user: sluta dölja användaren - upload an image: Ladda upp en bild - user image heading: Användarbild user location: Användarposition your friends: Dina vänner user_block: diff --git a/config/locales/te.yml b/config/locales/te.yml index d0a520071..f80b71501 100644 --- a/config/locales/te.yml +++ b/config/locales/te.yml @@ -178,9 +178,6 @@ te: user_diaries: వాడుకరి డైరీలు welcome_user: స్వాగతం, {{user_link}} welcome_user_link_tooltip: మీ వాడుకరి పేజీ - map: - edit: మార్చు - view: చూడండి message: inbox: date: తేదీ @@ -309,8 +306,6 @@ te: button: నిర్ధారించు confirm_email: button: నిర్ధారించు - friend_map: - your location: మీ ప్రాంతం login: create_account: ఖాతాని సృష్టించుకోండి email or username: "ఈమెయిల్ చిరునామా లేదా వాడుకరిపేరు:" @@ -339,15 +334,15 @@ te: title: ఖాతా సృష్టింపు no_such_user: heading: "{{user}} వాడుకరి లేనే లేరు" + popup: + your location: మీ ప్రాంతం reset_password: confirm password: "సంకేతపదాన్ని నిర్ధారించండి:" flash changed: మీ సంకేతపదాన్ని మార్చాం. password: "సంకేతపదం:" view: - add image: చిత్రాన్ని చేర్చు ago: ({{time_in_words_ago}} క్రితం) blocks on me: నా మీద నిరోధాలు - change your settings: మీ అమరికలను మార్చుకోండి confirm: నిర్ధారించు create_block: ఈ వాడుకరిని నిరోధించు delete_user: ఈ వాడుకరిని తొలగించు @@ -364,8 +359,6 @@ te: administrator: ఈ వాడుకరి ఒక నిర్వాహకులు send message: సందేశాన్ని పంపించు settings_link_text: అమరికలు - upload an image: ఓ చిత్రాన్ని ఎక్కించండి - user image heading: వాడుకరి చిత్రం user location: వాడుకరి ప్రాంతం your friends: మీ స్నేహితులు user_block: diff --git a/config/locales/tr.yml b/config/locales/tr.yml index d8ecf6635..678fe9a02 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -1,6 +1,7 @@ # Messages for Turkish (Türkçe) # Exported from translatewiki.net # Export driver: syck +# Author: Alerque # Author: Katpatuka tr: activerecord: @@ -34,7 +35,30 @@ tr: browse: common_details: changeset_comment: "Yorum:" - map: - coordinates: "Koordinatları:" - edit: Düzenle - view: Görünüm + relation: + download: "{{download_xml_link}} veya {{view_history_link}}" + download_xml: XML indir + view_history: Geçmişi görüntüle + start_rjs: + data_frame_title: Veri + details: Ayrıntılar + edited_by_user_at_timestamp: "[[user]] tarafından düzenlendi ([[timestamp]])" + show_history: Geçmişi görüntüle + wait: Bekleyin... + trace: + edit: + description: "Açıklama:" + map: harita + save_button: Değişiklikleri Kaydet + tags: "Etiketler:" + tags_help: virgülle ayrılmış + trace: + ago: "{{time_in_words_ago}} önce" + count_points: "{{count}} puan" + edit: değiştir + in: içinde + map: harita + more: daha fazla + private: ÖZEL + trace_paging_nav: + previous: "« Önceki" diff --git a/config/locales/uk.yml b/config/locales/uk.yml index 57ea9624a..4736b5df7 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -4,6 +4,7 @@ # Author: AS # Author: Andygol # Author: Prima klasy4na +# Author: Yurkoy uk: activerecord: attributes: @@ -322,6 +323,10 @@ uk: recent_entries: "Останні записи:" title: Щоденник user_title: Щоденник користувача {{user}} + location: + edit: Редагувати + location: "Місце:" + view: Переглянути new: title: Створити новий запис у щоденнику no_such_entry: @@ -361,6 +366,9 @@ uk: output: Результат paste_html: HTML-код для вбудовування до сайту scale: Масштаб + too_large: + body: Ця ділянка дуже велика для експорту у вигляді XML-даних OpenStreetMap. Будь ласка наблизьтесь або виберіть меншу ділянку. + heading: Завелика площа zoom: Збільшити start_rjs: add_marker: Додати маркер на мапу @@ -692,7 +700,9 @@ uk: moor: Мур municipality: Муніципалітет postcode: Індекс + region: Район sea: Море + state: Область/Штат subdivision: Підрозділ suburb: Передмістя town: Місто @@ -745,12 +755,14 @@ uk: copyshop: Послуги копіювання cosmetics: Магазин косметики department_store: Універмаг + discount: Уцінені товари doityourself: Зроби сам drugstore: Аптека dry_cleaning: Хімчистка electronics: Магазин електроніки estate_agent: Агентство нерухомості farm: Сільпо + fashion: Модний одяг fish: Риба florist: Квіти food: Продовольчі товари @@ -777,6 +789,7 @@ uk: newsagent: Газетний кіоск optician: Оптика organic: Продовольчий магазин + outdoor: Виносна торгівля pet: Зоомагазин photo: Фотомагазин salon: Салон @@ -836,22 +849,24 @@ uk: cycle_map: Мапа для велосипедистів noname: БезНазви site: + edit_disabled_tooltip: Збільшить масштаб для редагування мапи + edit_tooltip: Редагування мапи edit_zoom_alert: Потрібно збільшити масштаб мапи для її редагування + history_disabled_tooltip: Збільшить масштаб для перегляду правок на цій ділянці + history_tooltip: Перегляд правок для цієї ділянки history_zoom_alert: Потрібно збільшити масштаб мапи, щоб побачити історію правок layouts: donate: Підтримайте OpenStreetMap {{link}} у фонді оновлення обладнання. donate_link_text: пожертвування edit: Правка - edit_tooltip: Редагувати мапу export: Експорт export_tooltip: Експортувати картографічні дані gps_traces: GPS-треки - gps_traces_tooltip: Працювати з треками + gps_traces_tooltip: Управління GPS треками help_wiki: Довідка та Вікі help_wiki_tooltip: Довідка та Вікі проекту help_wiki_url: http://wiki.openstreetmap.org/wiki/Uk:Main_Page?uselang=uk history: Історія - history_tooltip: Історія наборів змін home: додому home_tooltip: Показати моє місце знаходження inbox: вхідні ({{count}}) @@ -864,6 +879,7 @@ uk: intro_2: OpenStreetMap дозволяє спільно переглядати, змінювати і використовувати географічні дані в будь-якій точці Землі. intro_3: Послуги хостингу для OpenStreetMap привітно надають {{ucl}} та {{bytemark}}. Список інших партнерів, що надають підтримку проекту розміщено в {{partners}}. intro_3_bytemark: bytemark + intro_3_partners: вікі intro_3_ucl: UCL VR Centre license: title: Дані OpenStreetMap ліцензовано за Загальною Ліцензією Creative Commons Attribution-Share Alike 2.0 @@ -892,10 +908,6 @@ uk: view_tooltip: Переглянути мапу welcome_user: Вітаємо, {{user_link}} welcome_user_link_tooltip: Ваша сторінка користувача - map: - coordinates: "Координати:" - edit: Правка - view: Мапа message: delete: deleted: Повідомлення вилучено @@ -926,10 +938,14 @@ uk: send_message_to: Відправити нове повідомлення для {{name}} subject: "Тема:" title: Відправити повідомлення + no_such_message: + body: Вибачте, але повідомлення з цим ідентифікатором не існує. + heading: Повідомлення відсутнє + title: Повідомлення відсутнє no_such_user: - body: На жаль, не вдалося знайти користувача або повідомлення з таким ім'ям або ідентифікатором - heading: Немає такого користувача/повідомлення - title: Немає такого користувача/повідомлення + body: На жаль, немає користувача з таким ім'ям. + heading: Немає такого користувача + title: Немає такого користувача outbox: date: Дата inbox: вхідні @@ -953,6 +969,9 @@ uk: title: Перегляд повідомлення to: "Кому:" unread_button: Позначити як непрочитане + wrong_user: Ви увійшли як `{{user}}', але повідомлення, яке ви хочете прочитати, не було відправлено цим користувачем, чи призначено для цього користувача. Будь ласка, увійдіть під правильним ім'ям користувача, щоб прочитати його. + reply: + wrong_user: Ви увійшли як `{{user}}', але повідомлення, на яке ви хочете відповісти, було відправлено не цьому користувачу. Будь ласка, увійдіть за правильним ім'ям користувача щоб відповісти. sent_message_summary: delete_button: Вилучити notifier: @@ -973,8 +992,9 @@ uk: hopefully_you_1: Хтось (сподіваємось, ви) хоче змінити адресу електронної пошти з hopefully_you_2: "{{server_url}} на адресу: {{new_address}}." friend_notification: + befriend_them: Ви також можете додати їх у якості друзів {{befriendurl}}. had_added_you: "{{user}} додав Вас як друга у OpenStreetMap." - see_their_profile: "Ви можете переглянути інформацію про нього (неї) за посиланням: {{userurl}} і теж додати його(її) як друга." + see_their_profile: Ви можете побачити їх профіль на {{userurl}}. subject: "[OpenStreetMap] {{user}} додав Вас як друга" gpx_notification: and_no_tags: та без теґів. @@ -1077,7 +1097,7 @@ uk: list_tokens: "Наступні маркери були випущені для застосунків на ваше ім’я:" my_apps: Мої клієнтські застосунки my_tokens: Мої автентифіковані застосунки - no_apps: Чи є у вас програми, які б ви хотіли зареєструватися для взаємодії з нами через стандарт {{oauth}}? Ви повинні зареєструвати ваше веб-застосунок перед тим, як він зможе зробити OAuth-запит до цієї служби. + no_apps: Чи є у вас програми, які б ви хотіли зареєструватися для взаємодії з нами через стандарт {{oauth}}? Ви повинні зареєструвати ваш веб-застосунок перед тим, як він зможе зробити OAuth-запит до цієї служби. register_new: Зареєструвати ваш застосунок registered_apps: "У вас зареєстровані наступні клієнтські застосунки:" revoke: Відкликати! @@ -1201,6 +1221,9 @@ uk: sidebar: close: Закрити search_results: Результати пошуку + time: + formats: + friendly: "%e %B %Y в %H:%M" trace: create: trace_uploaded: Ваш GPX-файл був надісланий та чекає додання у базу даних. Це зазвичай відбувається протягом півгодини, після чого вам буде надіслано листа. @@ -1241,11 +1264,12 @@ uk: offline_warning: message: Доступ до системи завантаження GPX-файлів на поточний момент відсутній trace: - ago: "{{time_in_words_ago}} назад" + ago: "{{time_in_words_ago}} тому" by: "Автор:" count_points: "{{count}} точок" edit: правити edit_map: Правити Мапу + identifiable: ІДЕНТИФІКОВУВАНИЙ in: у map: мапа more: більше @@ -1253,6 +1277,7 @@ uk: private: ПРИВАТНИЙ public: ЗАГАЛЬНИЙ trace_details: Показати дані треку + trackable: ВІДСТЕЖУВАННИЙ view_map: Перегляд Мапи trace_form: description: Опис @@ -1300,14 +1325,21 @@ uk: trackable: Відстежуванний (доступний тільки як анонімний, впорядковані точки з часовими позначками) user: account: - email never displayed publicly: /n(ніколи не показується загальнодоступно) + current email address: "Поточна адреса електронної пошти:" + delete image: Видалити поточне зображення + email never displayed publicly: "\n(ніколи не показується загальнодоступно)" flash update success: Інформацію про користувача успішно оновлено. flash update success confirm needed: Інформацію про користувача успішно оновлено. Перевірте свою електронну пошту, щоб підтвердити вашу нову адресу. home location: "Основне місце розташування:" + image: "Зображення:" + image size hint: (найкраще підходять квадратні зображення, принаймні 100х100) + keep image: Залишити поточне зображення latitude: "Широта:" longitude: "Довгота:" make edits public button: Зробити всі мої правки загальнодоступними my settings: Мої налаштування + new email address: "Нова адреса електронної пошти:" + new image: Додати зображення no home location: Ви не позначили своє основне місце розташування. preferred languages: "Бажані мови:" profile description: "Опис профілю:" @@ -1321,6 +1353,7 @@ uk: public editing note: heading: Загальнодоступна правка text: На даний момент ваші редагування анонімні й ніхто не може відправляти вам повідомлення або бачити ваше місце розташування. Щоб показати, що ви редагували і дозволити людям зв'язатися з вами через веб-сайт, натисніть на кнопку нижче. З переходом на API версії 0.6, тільки загальнодоступні користувачі можуть правити мапу. (З'ясувати, чому).
  • Ваша електронна адреса не буде розкрита іншим, але зв’язатись з вами стане можливо.
  • Ця дія не має зворотної сили, а всі нові користувачі зазвичай тепер доступні для зв'язку.
+ replace image: Замінити поточне зображення return to profile: Повернення до профілю save changes button: Зберегти зміни title: Правка облікового запису @@ -1339,9 +1372,6 @@ uk: success: Адресу вашої електронної пошти підтверджено, дякуємо за реєстрацію! filter: not_an_administrator: Тільки адміністратор може виконати цю дію. - friend_map: - nearby mapper: "Найближчий користувач: [[nearby_user]]" - your location: Ваше місце розташування go_public: flash success: Всі ваші правки тепер є загальнодоступними, і ви тепер можете правити. login: @@ -1354,6 +1384,7 @@ uk: lost password link: Забули пароль? password: "Пароль:" please login: Будь ласка, представтесь або {{create_user_link}}. + remember: "Запам'ятати мене:" title: Представтесь lost_password: email address: "Адреса ел. пошти:" @@ -1387,6 +1418,10 @@ uk: body: Вибачте, немає користувача з ім'ям {{user}}. Будь ласка, перевірте правильність його введення. Можливо, ви перейшли з помилкового посилання. heading: Користувача {{user}} не існує. title: Немає такого користувача + popup: + friend: Друг + nearby mapper: Найближчий користувач + your location: Ваше місце розташування remove_friend: not_a_friend: "{{name}} не є вашим другом." success: "{{name}} вилучений з вашого списку друзів." @@ -1403,17 +1438,14 @@ uk: view: activate_user: активувати цього користувача add as friend: додати до списку друзів - add image: Додати зображення - ago: ({{time_in_words_ago}} назад) + ago: ({{time_in_words_ago}} тому) block_history: отримані блокування blocks by me: заблоковано мною blocks on me: мої блокування - change your settings: змінити налаштування confirm: Підтвердити create_block: блокувати користувача created from: "Створено з:" deactivate_user: де-активувати цього користувача - delete image: Вилучити зображення delete_user: вилучити цього користувача description: Опис diary: щоденник @@ -1429,12 +1461,11 @@ uk: my edits: мої правки my settings: мої налаштування my traces: мої треки - my_oauth_details: Перегляд подробиць OAuth - nearby users: "Найближчі користувачі:" + nearby users: Інші найближчі користувачі new diary entry: новий запис no friends: Ви не додали ще жодного друга. - no home location: Місце знаходження не було вказано. no nearby users: Поблизу поки немає користувачів, які займаються складанням мапи. + oauth settings: налаштування OAuth remove as friend: вилучити із списку друзів role: administrator: Цей користувач є адміністратором @@ -1449,8 +1480,6 @@ uk: settings_link_text: налаштування traces: треки unhide_user: відобразити цього користувача - upload an image: Завантажити зображення на сервер - user image heading: Зображення користувача user location: Місце знаходження користувача your friends: Ваші друзі user_block: diff --git a/config/locales/vi.yml b/config/locales/vi.yml index 323a77f80..f777fdef7 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -212,6 +212,13 @@ vi: zoom_or_select: Phóng to hoặc chọn vùng bản đồ để xem tag_details: tags: "Thẻ:" + timeout: + sorry: Rất tiếc, đã chờ lấy dữ liệu của {{type}} có ID {{id}} quá lâu. + type: + changeset: bộ thay đổi + node: nốt + relation: quan hệ + way: lối way: download: "{{download_xml_link}}, {{view_history_link}}, hoặc {{edit_link}}" download_xml: Tải xuống XML @@ -309,6 +316,10 @@ vi: recent_entries: "Mục nhật ký gần đây:" title: Các Nhật ký Cá nhân user_title: Nhật ký của {{user}} + location: + edit: Sửa + location: "Vị trí:" + view: Xem new: title: Mục Nhật ký Mới no_such_entry: @@ -324,7 +335,7 @@ vi: login: Đăng nhập login_to_leave_a_comment: "{{login_link}} để bình luận" save_button: Lưu - title: Các Nhật ký Cá nhân | {{user}} + title: Nhật ký của {{user}} | {{title}} user_title: Nhật ký của {{user}} export: start: @@ -348,6 +359,9 @@ vi: output: Đầu ra paste_html: Dán HTML để nhúng vào trang Web scale: Tỷ lệ + too_large: + body: Khu vực này quá lớn để xuất dữ liệu OpenStreetMap XML được. Xin hãy phóng to hoặc lựa chọn khu vực nhỏ hơn. + heading: Khu vực Lớn quá zoom: Thu phóng start_rjs: add_marker: Đánh dấu vào bản đồ @@ -383,6 +397,7 @@ vi: other: khoảng {{count}} km zero: không tới 1 km results: + more_results: Thêm kết quả no_results: Không tìm thấy kết quả search: title: @@ -409,6 +424,7 @@ vi: bicycle_rental: Chỗ Mướn Xe đạp cafe: Quán Cà phê car_rental: Chỗ Mướn Xe + car_sharing: Chia sẻ Xe cộ car_wash: Tiệm Rửa Xe casino: Sòng bạc cinema: Rạp phim @@ -463,10 +479,14 @@ vi: university: Trường Đại học waste_basket: Thùng rác wifi: Điểm Truy cập Không dây + youth_centre: Trung tâm Thanh niên boundary: administrative: Biên giới Hành chính building: + bunker: Boong ke church: Nhà thờ + city_hall: Trụ sở Thành phố + commercial: Tòa nhà Thương mại dormitory: Ký túc xá entrance: Cửa vào garage: Ga ra @@ -478,6 +498,7 @@ vi: store: Tiệm tower: Tháp train_station: Nhà ga + university: Tòa nhà Đại học highway: bridleway: Đường Cưỡi ngựa bus_stop: Chỗ Đậu Xe buýt @@ -513,6 +534,7 @@ vi: house: Nhà ở icon: Thánh tượng manor: Trang viên + memorial: Đài Tưởng niệm mine: Mỏ monument: Đài Kỷ niệm museum: Bảo tàng @@ -573,7 +595,9 @@ vi: channel: Eo biển cliff: Vách đá coastline: Bờ biển + geyser: Mạch nước Phun glacier: Sông băng + heath: Bãi Hoang hill: Đồi island: Đảo land: Đất @@ -610,14 +634,20 @@ vi: village: Làng railway: construction: Đường sắt Đang Xây + disused_station: Nhà ga Đóng cửa funicular: Đường sắt Leo núi historic_station: Nhà ga Lịch sử + junction: Ga Đầu mối monorail: Đường Một Ray + station: Nhà ga subway: Trạm Xe điện Ngầm + subway_entrance: Cửa vào Nhà ga Xe điện ngầm + tram: Đường Xe điện shop: bakery: Tiệm Bánh bicycle: Tiệm Xe đạp books: Tiệm Sách + car: Tiệm Xe hơi car_dealer: Cửa hàng Xe hơi car_repair: Tiệm Sửa Xe carpet: Tiệm Thảm @@ -630,12 +660,15 @@ vi: fashion: Tiệm Thời trang fish: Tiệm Cá florist: Tiệm Hoa + food: Tiệm Thực phẩm grocery: Tiệm Tạp phẩm hairdresser: Tiệm Làm tóc insurance: Bảo hiểm + jewelry: Tiệm Kim hoàn laundry: Tiệm Giặt Quần áo mall: Trung tâm Mua sắm market: Chợ + mobile_phone: Tiệm Điện thoại Di động motorcycle: Cửa hàng Xe mô tô music: Tiệm Nhạc newsagent: Tiệm Báo @@ -644,6 +677,7 @@ vi: salon: Tiệm Làm tóc shoes: Tiệm Giày shopping_centre: Trung tâm Mua sắm + sports: Tiệm Thể thao supermarket: Siêu thị toys: Tiệm Đồ chơi travel_agency: Văn phòng Du lịch @@ -662,6 +696,7 @@ vi: waterway: canal: Kênh dam: Đập + rapids: Thác ghềnh river: Sông riverbank: Bờ sông stream: Dòng suối @@ -676,22 +711,24 @@ vi: overlays: maplint: Maplint site: + edit_disabled_tooltip: Phóng to để sửa đổi bản đồ + edit_tooltip: Sửa đổi bản đồ edit_zoom_alert: Hãy phóng to hơn để sửa đổi bản đồ + history_disabled_tooltip: Phóng to để xem danh sách sửa đổi trong khu vực này + history_tooltip: Xem danh sách sửa đổi trong khu vực này history_zoom_alert: Hãy phóng to hơn để xem lịch sử sửa đổi layouts: donate: Hỗ trợ OpenStreetMap bằng cách {{link}} cho Quỹ Nâng cấp Phần cứng. donate_link_text: quyên góp edit: Sửa đổi - edit_tooltip: Sửa đổi bản đồ export: Xuất export_tooltip: Xuất dữ liệu bản đồ gps_traces: Tuyến đường GPS - gps_traces_tooltip: Quản lý tuyến đường + gps_traces_tooltip: Quản lý tuyến đường GPS help_wiki: Trợ giúp & Wiki help_wiki_tooltip: Site trợ giúp & wiki của dự án help_wiki_url: http://wiki.openstreetmap.org/wiki/Vi:Main_Page?uselang=vi history: Lịch sử - history_tooltip: Lịch sử bộ thay đổi home: nhà home_tooltip: Về vị trí nhà inbox: hộp thư ({{count}}) @@ -701,7 +738,8 @@ vi: zero: Hộp thư của bạn không có thư chưa đọc intro_1: OpenStreetMap là bản đồ thế giới nguồn mở, do những người như bạn vẽ. intro_2: OpenStreetMap cho phép xem, sửa đổi, và sử dụng dữ liệu địa lý một cách cộng tác ở mọi nơi trên thế giới. - intro_3: OpenStreetMap hoạt động do sự hỗ trợ hosting của {{ucl}} và {{bytemark}}. + intro_3: OpenStreetMap hoạt động nhờ sự hỗ trợ hosting của {{ucl}} và {{bytemark}}. Các nhà bảo trợ khác được liệt kê tại {{partners}}. + intro_3_partners: wiki intro_3_ucl: Trung tâm VR tại UCL license: alt: CC BY-SA 2.0 @@ -732,10 +770,6 @@ vi: view_tooltip: Xem bản đồ welcome_user: Hoan nghênh, {{user_link}} welcome_user_link_tooltip: Trang cá nhân của bạn - map: - coordinates: "Tọa độ:" - edit: Sửa đổi - view: Hiển thị message: delete: deleted: Đã xóa thư @@ -766,10 +800,14 @@ vi: send_message_to: Gửi thư mới cho {{name}} subject: Tiêu đề title: Gửi thư + no_such_message: + body: Rất tiếc, không có thư nào với ID đó. + heading: Thư không tồn tại + title: Thư không tồn tại no_such_user: - body: Rất tiếc, không có người dùng hoặc thư với tên hoặc ID đó - heading: Người dùng hoặc thư không tồn tại - title: Người dùng hoặc thư không tồn tại + body: Rất tiếc, không có người dùng với tên đó. + heading: Người dùng không tồn tại + title: Người dùng không tồn tại outbox: date: Ngày inbox: thư đến @@ -813,8 +851,9 @@ vi: hopefully_you_1: Ai (chắc bạn) muốn đổi địa chỉ thư điện tử bên hopefully_you_2: "{{server_url}} thành {{new_address}}." friend_notification: + befriend_them: Cũng có thể thêm họ vào danh sách người bạn tại {{befriendurl}}. had_added_you: "{{user}} đã thêm bạn vào danh sách bạn tại OpenStreetMap." - see_their_profile: Có thể xem trang cá nhân của họ tại {{userurl}} và cũng thêm họ vào danh sách của bạn tùy ý. + see_their_profile: Có thể xem trang cá nhân của họ tại {{userurl}}. subject: "[OpenStreetMap] {{user}} đã thêm bạn là người bạn" gpx_notification: and_no_tags: và không có thẻ @@ -1043,6 +1082,9 @@ vi: sidebar: close: Đóng search_results: Kết quả Tìm kiếm + time: + formats: + friendly: "%e tháng %m năm %Y lúc %H:%M" trace: create: trace_uploaded: Tập tin GPX của bạn đã được tải lên và đang chờ được chèn vào cơ sở dữ liệu. Thường chỉ cần chờ đợi trong vòng nửa tiếng, và bạn sẽ nhận thư điện tử lúc khi nó xong. @@ -1115,6 +1157,10 @@ vi: traces_waiting: Bạn có {{count}} tuyến đường đang chờ được tải lên. Xin hãy chờ đợi việc xong trước khi tải lên thêm tuyến đường, để cho người khác vào hàng đợi kịp. trace_optionals: tags: Thẻ + trace_paging_nav: + next: Sau » + previous: « Trước + showing_page: Đang hiện trang {{page}} view: delete_track: Xóa tuyến đường này description: "Miêu tả:" @@ -1141,14 +1187,21 @@ vi: trackable: Theo dõi được (chỉ hiển thị một dãy điểm vô danh có thời điểm) user: account: + current email address: "Địa chỉ Thư điện tử Hiện tại:" + delete image: Xóa hình hiện dùng email never displayed publicly: (không lúc nào hiện công khai) flash update success: Đã cập nhật thông tin cá nhân thành công. flash update success confirm needed: Đã cập nhật thông tin cá nhân thành công. Kiểm tra thư điện tử xác nhận địa chỉ thư điện tử mới. home location: "Vị trí Nhà:" + image: "Hình:" + image size hint: (hình vuông ít nhất 100×100 điểm ảnh là tốt nhất) + keep image: Giữ hình hiện dùng latitude: "Vĩ độ:" longitude: "Kinh độ:" make edits public button: Phát hành công khai các sửa đổi của tôi my settings: Tùy chọn + new email address: "Địa chỉ Thư điện tử Mới:" + new image: Thêm hình no home location: Bạn chưa định vị trí nhà. preferred languages: "Ngôn ngữ Ưu tiên:" profile description: "Tự giới thiệu:" @@ -1162,6 +1215,7 @@ vi: public editing note: heading: Sửa đổi công khai text: "Các sửa đổi của bạn đang vô danh, và không ai có thể gửi thư cho bạn hay xem bạn ở đâu. Để cho phép mọi người biết bạn sửa đổi gì và gửi thư cho bạn dùng trang Web, bấm nút ở dưới. Từ lúc đổi qua phiên bản 0.6 của API, chỉ có những người dùng công khai có quyền sửa đổi dữ liệu bản đồ (tìm hiểu tại sao).\n
    \n
  • Địa chỉ thư điện tá»­ cá»§a bạn vẫn không được phát hành công khai sau khi bắt đầu sá»­a đổi công khai.
  • \n
  • Không thể lùi lại tác vụ này, và mọi người dùng mới hiện là người dùng công khai theo mặc định.
  • \n
" + replace image: Thay hình hiện dùng return to profile: Trở về trang cá nhân save changes button: Lưu các Thay đổi title: Chỉnh sửa tài khoản @@ -1180,9 +1234,6 @@ vi: success: Đã xác nhận địa chỉ thư điện tử mới. Cám ơn bạn đã đăng ký! filter: not_an_administrator: Chỉ các quản lý viên có quyền thực hiện tác vụ đó. - friend_map: - nearby mapper: "Người vẽ bản đồ ở gần: [[nearby_user]]" - your location: Vị trí của bạn go_public: flash success: Tất cả các sửa đổi của bạn được phát hành công khai, và bạn mới được phép sửa đổi. login: @@ -1195,7 +1246,12 @@ vi: lost password link: Quên mất Mật khẩu? password: "Mật khẩu:" please login: Xin hãy đăng nhập hoặc {{create_user_link}}. + remember: "Nhớ tôi:" title: Đăng nhập + logout: + heading: Đăng xuất OpenStreetMap + logout_button: Đăng xuất + title: Đăng xuất lost_password: email address: "Địa chỉ Thư điện tử:" heading: Quên mất Mật khẩu? @@ -1228,6 +1284,10 @@ vi: body: Rất tiếc, không có người dùng với tên {{user}}. Xin hãy kiểm tra chính tả, hoặc có lẽ bạn đã theo một liên kết sai. heading: Người dùng {{user}} không tồn tại title: Người dùng không tồn tại + popup: + friend: Người bạn + nearby mapper: Người vẽ bản đồ ở gần + your location: Vị trí của bạn remove_friend: not_a_friend: "{{name}} đã không phải người bạn." success: "{{name}} không còn là người bạn." @@ -1244,17 +1304,14 @@ vi: view: activate_user: kích hoạt tài khoản này add as friend: thêm là người bạn - add image: Thêm Hình ago: (cách đây {{time_in_words_ago}}) block_history: xem các tác vụ cấm người này blocks by me: tác vụ cấm bởi tôi blocks on me: tác vụ cấm tôi - change your settings: thay đổi tùy chọn của bạn confirm: Xác nhận create_block: cấm người dùng này created from: "Địa chỉ IP khi mở:" deactivate_user: vô hiệu hóa tài khoản này - delete image: Xóa Hình delete_user: xóa tài khoản này description: Miêu tả diary: nhật ký @@ -1270,12 +1327,11 @@ vi: my edits: đóng góp của tôi my settings: tùy chọn my traces: tuyến đường của tôi - my_oauth_details: Xem chi tiết OAuth của tôi - nearby users: "Người dùng ở gần:" + nearby users: Người dùng khác ở gần new diary entry: mục nhật ký mới no friends: Bạn chưa thêm người bạn. - no home location: Chưa đặt vị trí nhà. - no nearby users: Chưa có người dùng nào nhận là họ ở gần. + no nearby users: Không có người dùng nào nhận rằng họ ở gần. + oauth settings: Thiết lập OAuth remove as friend: dời người bạn role: administrator: Người dùng này là quản lý viên @@ -1290,8 +1346,6 @@ vi: settings_link_text: tùy chọn traces: tuyến đường unhide_user: hiện tài khoản này - upload an image: Tải lên hình - user image heading: Hình người dùng user location: Vị trí của người dùng your friends: Người bạn của bạn user_block: diff --git a/config/locales/yi.yml b/config/locales/yi.yml index 88a696a4f..37cd27e24 100644 --- a/config/locales/yi.yml +++ b/config/locales/yi.yml @@ -10,8 +10,24 @@ yi: user: באַניצער trace: user: באַניצער + user: + pass_crypt: פאַסווארט models: country: לאנד language: שפראך user: באניצער way: וועג + layouts: + history: היסטאריע + message: + message_summary: + delete_button: אויסמעקן + sent_message_summary: + delete_button: אויסמעקן + user: + login: + password: "פאַסווארט:" + new: + password: "פאַסווארט:" + reset_password: + password: "פאַסווארט:" diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index a62f76d65..b9cd9ae55 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -265,14 +265,12 @@ zh-CN: donate: 通过下面的{{link}}到Hardware Upgrade Fund来支持。 donate_link_text: 捐款 edit: 编辑 - edit_tooltip: 编辑地图 export: 输出 export_tooltip: 输出地图数据 gps_traces: GPS 追踪 gps_traces_tooltip: 管理追踪 help_wiki: 帮助 & Wiki history: 历史 - history_tooltip: Changeset历史 home: 主页 home_tooltip: 回到主页位置 inbox: 收件箱 ({{count}}) @@ -302,10 +300,6 @@ zh-CN: view_tooltip: 查看地图 welcome_user: 欢迎, {{user_link}} welcome_user_link_tooltip: 您的用户页面 - map: - coordinates: "坐标:" - edit: 编辑 - view: 查看 message: inbox: date: 日期 @@ -507,9 +501,6 @@ zh-CN: heading: 确认用户帐户 press confirm button: 按下面的确认键激活您的帐户。 success: 确认您的账号,感谢您的注册! - friend_map: - nearby mapper: "附近用户: [[nearby_user]]" - your location: 您的位置 go_public: flash success: 您的所有编辑现在均已公开,现在允许您开始编辑。 login: @@ -552,6 +543,9 @@ zh-CN: body: 对不起,没有此名{{user}}所对应的用户。请检查您的拼写,或者可能您点击了错误链接。 heading: 这个用户{{user}} 不存在 title: 没有此用户 + popup: + nearby mapper: 附近用户 + your location: 您的位置 remove_friend: not_a_friend: "{{name}}不是您的朋友。" success: "{{name}} 从您的朋友中删除。" @@ -562,10 +556,7 @@ zh-CN: flash success: 成功保存您所在位置 view: add as friend: 添加为好友 - add image: 添加图片 ago: ({{time_in_words_ago}} 以前) - change your settings: 更改您的设置 - delete image: 删除头像 description: 描述 diary: 日志 edits: 编辑 @@ -578,12 +569,9 @@ zh-CN: nearby users: "附近用户:" new diary entry: 新日志入口 no friends: 您还没有添加任何好友。 - no home location: 未设定所在位置。 no nearby users: 这里没有在您附近的用户。 remove as friend: 删除好友 send message: 发送信息 settings_link_text: 设定 - upload an image: 上传图片 - user image heading: 用户头像 user location: 用户位置 your friends: 您的朋友 diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 2885c3afd..7c558f404 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -375,7 +375,6 @@ zh-TW: donate: 以 {{link}} 給硬體升級基金來支援 OpenStreetMap。 donate_link_text: 捐獻 edit: 編輯 - edit_tooltip: 編輯地圖 export: 匯出 export_tooltip: 匯出地圖資料 gps_traces: GPS 軌跡 @@ -383,7 +382,6 @@ zh-TW: help_wiki: 求助 & Wiki help_wiki_tooltip: 本計畫的求助 & Wiki 網站 history: 歷史 - history_tooltip: 變更組合歷史 home: 家 home_tooltip: 移至家位置 inbox: 收件匣 ({{count}}) @@ -415,10 +413,6 @@ zh-TW: view_tooltip: 檢視地圖 welcome_user: 歡迎,{{user_link}} welcome_user_link_tooltip: 您的使用者頁面 - map: - coordinates: 坐標: - edit: 編輯 - view: 檢視 message: delete: deleted: 訊息已刪除 @@ -830,9 +824,6 @@ zh-TW: heading: 確認電子郵件位址的變更 press confirm button: 按下確認按鈕以確認您的新電子郵件位址。 success: 已確認您的電子郵件位址,感謝您的註冊! - friend_map: - nearby mapper: 附近的製圖者: - your location: 您的位置 go_public: flash success: 現在您所有的編輯都是公開的,因此您已有編輯的權利。 login: @@ -876,6 +867,9 @@ zh-TW: body: 抱歉,沒有名為 {{user}} 的使用者。請檢查您的拼字,或者可能是按到錯誤的連結。 heading: 使用者 {{user}} 不存在 title: 沒有這個使用者 + popup: + nearby mapper: 附近的製圖者 + your location: 您的位置 remove_friend: not_a_friend: "{{name}} 並不在您的朋友裡。" success: "{{name}} 已從您的朋友中移除。" @@ -891,10 +885,7 @@ zh-TW: flash success: 家的位置成功的儲存 view: add as friend: 加入朋友 - add image: 加入圖片 ago: ({{time_in_words_ago}} 之前) - change your settings: 改變您的設定值 - delete image: 刪除圖片 description: 描述 diary: 日記 edits: 個編輯 @@ -909,13 +900,10 @@ zh-TW: nearby users: 附近的使用者: new diary entry: 新增日記 no friends: 您尚未加入任何朋友。 - no home location: 尚未設定家的位置。 no nearby users: 附近沒有在進行製圖的使用者。 remove as friend: 移除朋友 send message: 傳送訊息 settings_link_text: 設定值 traces: 個軌跡 - upload an image: 上傳一張圖片 - user image heading: 使用者圖片 user location: 使用者位置 your friends: 您的朋友 diff --git a/config/mongrel_cluster.yml b/config/mongrel_cluster.yml index 954be24af..d6c477b9a 100644 --- a/config/mongrel_cluster.yml +++ b/config/mongrel_cluster.yml @@ -1,5 +1,5 @@ ---- -log_file: log/mongrel.log -port: 8000 -pid_file: tmp/mongrel.pid +--- +log_file: log/mongrel.log +port: 8000 +pid_file: tmp/mongrel.pid servers: 8 \ No newline at end of file diff --git a/config/openlayers.cfg b/config/openlayers.cfg index 7b71ca1a5..39c2cc58a 100644 --- a/config/openlayers.cfg +++ b/config/openlayers.cfg @@ -40,7 +40,7 @@ OpenLayers/Renderer/VML.js OpenLayers/Rule.js OpenLayers/Icon.js OpenLayers/Marker.js -OpenLayers/Popup/AnchoredBuddle.js +OpenLayers/Popup/FramedCloud.js OpenLayers/Projection.js OpenLayers/Console.js OpenLayers/Lang.js diff --git a/config/potlatch/locales/arz.yml b/config/potlatch/locales/arz.yml index edf050495..11b722e84 100644 --- a/config/potlatch/locales/arz.yml +++ b/config/potlatch/locales/arz.yml @@ -2,6 +2,7 @@ # Exported from translatewiki.net # Export driver: syck # Author: Dudi +# Author: Ghaly # Author: Meno25 arz: action_cancelchanges: اللَغى بيغيّر لـ @@ -36,8 +37,12 @@ arz: heading_tagging: بيعمل tag heading_troubleshooting: اقتل المشكله help: مساعده + hint_latlon: "خط الطول $1\nخط العرض $2" + hint_loading: تحميل بيانات hint_saving: بيسييڤ الداتا + hint_saving_loading: جارى تحميل/حفظ الداتا inspector: مفتش + inspector_latlon: "خط الطول $1\nخط العرض $2" inspector_locked: مقفول inspector_unsaved: مش متسييڤه inspector_uploading: (رفع/uploading) diff --git a/config/potlatch/locales/br.yml b/config/potlatch/locales/br.yml index cfbfc85ab..ca06092cc 100644 --- a/config/potlatch/locales/br.yml +++ b/config/potlatch/locales/br.yml @@ -34,6 +34,7 @@ br: advanced_tooltip: Oberoù aozañ araokaet advanced_undelete: Dizilemel advice_bendy: Re gromm evit bezañ eeunaet (Pennlizh. evit rediañ) + advice_conflict: Tabut gant ar servijer - marteze o po da glask enrollañ adarre advice_deletingpoi: O tilemel POI (Z evit dizober) advice_deletingway: O tilemel an hent (Z evit dizober) advice_microblogged: Hizivaet eo bet ho statud @@ -184,7 +185,7 @@ br: prompt_microblog: Postañ war $1 ($2 a chom) prompt_revertversion: "Distreiñ d'ur stumm enrollet koshoc'h :" prompt_savechanges: Enrollañ ar c'hemmoù - prompt_taggedpoints: Tikedennet eo poentoù zo eus an hent-mañ. Lemel kuit an tikedennoù ? + prompt_taggedpoints: Kevelet eo poentoù zo eus an hent-mañ gant gerioù-alc'hwez pe darempredoù. Ha c'hoant o peus da vat lemel anezho kuit ? prompt_track: Amdreiñ ur roud GPS d'un hent (prennet) da aozañ. prompt_unlock: Klikañ evit dibrennañ prompt_welcome: Degemer mat war OpenStreetMap ! @@ -195,6 +196,7 @@ br: tags_descriptions: Deskrivadurioù '$1' tags_findatag: Kavout un tikedenn tags_matching: Tikedennoù brudet hag a glot gant '$1' + tags_typesearchterm: "Lakait ar ger da glask :" tip_addrelation: Ouzhpennañ d'un darempred tip_addtag: Ouzhpennañ ur meneg nevez tip_alert: Ur fazi zo bet - Klikit da c'houzout hiroc'h diff --git a/config/potlatch/locales/ca.yml b/config/potlatch/locales/ca.yml index 5e5784dbd..eccc3e953 100644 --- a/config/potlatch/locales/ca.yml +++ b/config/potlatch/locales/ca.yml @@ -6,48 +6,141 @@ ca: a_poi: $1 un punt d'interès (POI) a_way: $1 una via + action_addpoint: afegir un node al final d'una via + action_cancelchanges: cancel·la canvis a + action_changeway: canvis a una via + action_createparallel: crea vies paralel·les + action_createpoi: Crea un punt d'interès (POI) + action_deletepoint: Esborra un punt + action_insertnode: afegir un node a una via + action_mergeways: fusió de dues vies + action_movepoi: moure un punt d'interès (POI) + action_movepoint: Moure un punt + action_moveway: moviment d'una via + action_pointtags: Posa etiquetes en un punt + action_poitags: Posa etiquetes en un punt d'interès (POI) + action_reverseway: inverteix el sentit de la via + action_revertway: reverteix una via + action_splitway: Divideix una via action_waytags: establir etiquetes d'una via advanced: Avançat advanced_close: Tancar conjunt de canvis + advanced_history: Historial de la via + advanced_inspector: Inspector + advanced_maximise: Maximitzar la finestra + advanced_minimise: Minimitzar finestra advanced_parallel: Via paral·lela + advanced_tooltip: Accions d'edició avançades advanced_undelete: Restaura + advice_bendy: Massa corbes per a redreçar (shift per a forçar) + advice_conflict: Conflicte en el servidor - pot ser que hagi de guardar de nou + advice_deletingpoi: Esborrant POI (Z per a desfer) + advice_deletingway: Esborra via (Z per desfer) + advice_microblogged: Actualitzat el seu estat de $1 + advice_nocommonpoint: Les vies no comparteixen un punt en comú + advice_revertingpoi: Tornant a l'últim punt d'inter'es que es va guardar. (Z per desfer) + advice_revertingway: Tornant a l'última via guardada (Z per desfer) + advice_tagconflict: Les etiquetes no coincideixen - si us plau revisi'ls (Z per desfer) + advice_toolong: Massa llarg per desbloquejar - si us plau, divideixi'l en vies més curtes + advice_uploadempty: No hi ha gens que pujar + advice_uploadfail: Pujada detinguda advice_uploadsuccess: Totes les dades han pujat correctament + advice_waydragged: Via desplaçada (Z per desfer) cancel: Cancel·la + closechangeset: Tanca conjunt de canvis + conflict_download: Descarrega la seva versió + conflict_overwrite: Sobreescriu la seva versió + conflict_poichanged: Des que va començar a editar algú ha canviat el punt $1$2. + conflict_relchanged: Des que va començar a editar algú ha canviat la relació $1$2. + conflict_visitpoi: Feu clic a 'D'acord' per mostrar el punt. conflict_visitway: Cliqueu "D'acord" per a mostrar la via. + conflict_waychanged: Des que va començar a editar, algú ha canviat la via $1$2. createrelation: Crea una relació nova + custom: "Personalitzat:" delete: Suprimeix + deleting: eliminar + drag_pois: Arrossegar i soltar punts d'interès editinglive: Edició en viu + editingoffline: Edició fora de línia + emailauthor: Si us plau, enviï un correu a richard@systemeD.net amb un informe d'error, dient que el que estava fent en aquell moment. + error_anonymous: No pot contactar a un mapeador anònim + error_connectionfailed: Ho sentim - la connexió amb el servidor de OpenStreetMap va fallar. Qualsevol canvi recent no s'ha guardat. \n\nVoleu provar una altra vegada? error_microblog_long: "Enviament a $1 ha fallat:\ncodi HTTP: $2\nmissatge d'error: $3 \n$1 error: $4" error_nopoi: El POI no es pot trobar (potser hagis mogut lluny?), així que no es pot desfer. error_nosharedpoint: Les vies $1 i $2 ja no comparteixen un punt comú, així que no es pot desfer la divisió. + error_noway: La via $1 no es pot trobar (igual vostè s'ha desplaçat a una altra zona?), per tant no es pot desfer. + error_readfailed: Ho sentim - el servidor de OpenStreetMap no ha respost a la sol·licitud de dades.\n\nVoleu tornar a intentar? + existingrelation: Afegir a una relació existent + findrelation: Troba una relació que conté + gpxpleasewait: Si us plau, esperi mentre la traça GPX es processa. + heading_drawing: Dibuixant heading_introduction: Introducció + heading_pois: Com començar + heading_quickref: Referència ràpida + heading_surveying: Recollida de dades heading_tagging: Etiquetat + heading_troubleshooting: Solució de problemes help: Ajuda + hint_drawmode: Feu clic per afegir un punt\ndoble clic/Intro\n per finalitzar la via hint_latlon: "lat $1\nlon $2" hint_loading: carregant dades + hint_overendpoint: sobre punt final ($1)\nfeu clic per unir\nshift-click per fusionar + hint_overpoint: sobre el punt ($1)\nFeu clic per unir + hint_pointselected: Punt seleccionat\n(fes shift-clic en el punt per\ncomençar una nova línia) + hint_saving: guardant les dades + hint_saving_loading: pujant/descarregant dades inspector: Inspector + inspector_duplicate: Duplicat de + inspector_in_ways: dins vies inspector_latlon: "Lat $1\nLon $2" inspector_locked: Bloquejat inspector_node_count: ($ 1 vegades) + inspector_not_in_any_ways: No està en cap via (POI) + inspector_unsaved: No s'ha desat inspector_uploading: (pujant) + inspector_way_connects_to: Connecta amb $1 vies + inspector_way_connects_to_principal: Es connecta a $1 $2 i $3 altres $4 inspector_way_nodes: $1 nodes inspector_way_nodes_closed: $1 nodes (tancats) loading: S'està carregant… login_pwd: "Contrasenya:" + login_retry: El nom d'usuari no va ser reconegut. Torneu-ho de nou. + login_title: No s'ha pogut iniciar sessió login_uid: "Nom d'usuari:" + mail: Correu more: Més + newchangeset: "Si us plau, provi de nou: Potlatch començarà un nou conjunt de canvis" "no": 'No' + nobackground: Sense fons + norelations: No hi ha relacions en l'àrea actual + offset_broadcanal: Camí de sirga ample + offset_choose: Trieu desplaçament + offset_dual: Carretera desdoblegada (D2) + offset_motorway: Autopista (D3) + offset_narrowcanal: Camí de sirga estret ok: D'acord openchangeset: Obrir conjunt de canvis + option_custompointers: Utilitza la ploma i la mà de punters + option_external: "Llançament extern:" + option_fadebackground: Atenuar el fons + option_layer_cycle_map: OSM - map ciclista option_layer_maplint: OSM - Maplint (errors) option_layer_nearmap: "Australia: NearMap" option_layer_ooc_25k: "UK historic: 1:25k" option_layer_ooc_7th: "Regne Unit històric: 7th" option_layer_ooc_npe: "Regne Unit històric: NPE" option_layer_ooc_scotland: "Regne Unit històric: Escòcia" + option_layer_os_streetview: "UK: OS StreetView" option_layer_streets_haiti: "Haití: noms de carrers" + option_layer_tip: Escollir el fons a mostrar + option_limitways: Avisar si hi ha molta càrrega de dades + option_microblog_id: "Nom microblog:" + option_microblog_pwd: "Contrasenya microblog:" + option_noname: Assenyala les carreteres sense nom option_photo: "Foto KML:" option_thinareas: Utilitza línies més fines per areas + option_thinlines: Utilitza línies fines en totes les escales + option_tiger: Ressaltar TIGER sense canvis option_warnings: Mostra advertències flotants point: Punt preset_icon_airport: Aeroport @@ -55,6 +148,7 @@ ca: preset_icon_bus_stop: Parada d'autobús preset_icon_cafe: Cafè preset_icon_cinema: Cinema + preset_icon_convenience: Adrogueria preset_icon_disaster: Edifici d'Haití preset_icon_fast_food: Menjar ràpid preset_icon_ferry_terminal: Ferri @@ -67,6 +161,8 @@ ca: preset_icon_place_of_worship: Lloc de culte preset_icon_police: Comissaria de policia preset_icon_post_box: Bústia de correus + preset_icon_pub: Pub + preset_icon_recycling: Reciclatge preset_icon_restaurant: Restaurant preset_icon_school: Escola preset_icon_station: Estació de ferrocarril @@ -74,16 +170,59 @@ ca: preset_icon_taxi: Parada de taxis preset_icon_telephone: Telèfon preset_icon_theatre: Teatre + preset_tip: Tria d'entre un menú d'etiquetes preprogramadws que descriguin $1 + prompt_addtorelation: Afegit $1 a la relació prompt_changesetcomment: "Introduïu una descripció dels canvis:" + prompt_closechangeset: Tanca conjunt de canvis $1 prompt_createparallel: Crea via paral.lela + prompt_editlive: Edició en viu + prompt_editsave: Edició amb guardar + prompt_helpavailable: Nou usuari? Miri a la part inferior esquerra per obtenir ajuda. + prompt_launch: Obrir URL externa + prompt_live: En el mode directe, cada canvi realitzat es guardarà instantàniament en la base de dades de OpenStreetMap - això no es recomana a principiants. Estàs segur? + prompt_manyways: Aquesta àrea conté molts detalls i trigarà molt en carregar-se. Prefereixes fer un zoom? + prompt_microblog: Enviat a $1 ($2 restants) + prompt_revertversion: Revertir a una versió prèviament guardada + prompt_savechanges: Guardar canvis + prompt_taggedpoints: Algun dels punts d'aquesta via tenen etiquetes o estan en una relació. Realment vol esborrar-los? + prompt_track: Converteix traces GPS a vies + prompt_unlock: Feu clic per desbloquejar prompt_welcome: Benvingut/da a l'OpenStreetMap! retry: Reintenta + revert: Reverteix save: Desa + tags_backtolist: Torna a la llista + tags_descriptions: Descripcions de '$1' tags_findatag: Troba una etiqueta + tags_findtag: Cerca una etiqueta + tags_matching: Etiquetes populars que coincideixen amb '$1' + tags_typesearchterm: "Introdueixi una paraula per a buscar:" + tip_addrelation: Afegir a una relació tip_addtag: Afegeix una nova etiqueta + tip_alert: Ha ocorregut un error - feu clic per a detalls + tip_anticlockwise: Via circular en el sentit contrari de les agulles del rellotge - clic per invertir + tip_clockwise: Via circular en el sentit de les agulles del rellotge - feu clic per a invertir l'adreça de la via tip_direction: Direcció de la via - feu clic per invertir-la + tip_gps: Mostra les traces de GPS (G) + tip_noundo: No hi ha res a desfer tip_options: Establir opcions (triar el mapa de fons) tip_photo: Carregar fotos + tip_presettype: Escollir quin tipus de etiquetes preestablertes s'ofereixen en el menú. + tip_repeattag: Repetir les etiquetes de la via seleccionada prèviament (R) + tip_revertversion: Trii la data a la qual tornar + tip_selectrelation: Afegir a la ruta escollida + tip_splitway: Divideix la via en el punt seleccionat (X) + tip_tidy: Simplifica punts en una via (T) + tip_undo: Desfer $1 (Z) + uploading: Carregant... + uploading_deleting_pois: Esborrant POIs + uploading_deleting_ways: Esborrant vies + uploading_poi: Pujant punt d'interés $1 + uploading_poi_name: Pujant POI $1, $2 + uploading_relation: Pujant relació $1 + uploading_relation_name: Pujant relació $1, $2 + uploading_way: Pujant via $1 + uploading_way_name: Pujant via $1, $2 warning: Atenció! way: Via "yes": Sí diff --git a/config/potlatch/locales/da.yml b/config/potlatch/locales/da.yml index 1b40f7b36..1fa4426b1 100644 --- a/config/potlatch/locales/da.yml +++ b/config/potlatch/locales/da.yml @@ -1,11 +1,14 @@ # Messages for Danish (Dansk) # Exported from translatewiki.net # Export driver: syck +# Author: Ebbe +# Author: Winbladh da: a_poi: $1 et POI a_way: $1 en vej action_addpoint: tilføjer et punkt til enden af en vej action_cancelchanges: afbryder ændringer af + action_createparallel: skaber parallelle veje action_createpoi: lave et POI (interessant punkt) action_deletepoint: sletter et punkt action_insertnode: tilføj et punkt på vejen @@ -16,36 +19,133 @@ da: action_pointtags: sætter tags på et punkt action_poitags: sætter tags på et POI (interessant punkt) action_reverseway: vend retningen på en vej + action_revertway: returnere en vej action_splitway: del en vej action_waytags: sætter tags på en vej + advanced: Avanceret + advanced_close: Luk Changeset + advanced_maximise: Maksimer vinduet + advanced_minimise: Minimer vindue + advanced_parallel: Parallel vej + advanced_undelete: Genopret + advice_deletingpoi: Sletning af POI (Z for at fortryde) + advice_deletingway: Sletter vej (Z for at fortryde) + advice_revertingway: Vender tilbage til sidst gemte vej (Z for at fortryde) + advice_toolong: For lang for låse op - venligst opdel i kortere veje + advice_uploadempty: Intet at uploade + advice_uploadsuccess: Alle data uploadet succesfuldt + advice_waydragged: Way flyttet (Z for at fortryde) cancel: Afbryd + closechangeset: Lukker Changeset + conflict_overwrite: Overskriv deres version + conflict_poichanged: Siden du begyndte at redigere, har en anden ændret punkt $ 1 $ 2. + conflict_relchanged: Siden du begyndte at redigere, har en anden ændret relation $1 $2. + conflict_visitway: Klik på 'Ok' for at vise vejen. + conflict_waychanged: Siden du begyndte at redigere, har en anden ændret vej $1 $2. createrelation: Lav en ny relation + custom: "Custom:" delete: Slet deleting: sletter + editinglive: Live redigering + editingoffline: Redigering offline emailauthor: \n\nVenligst send en e-mail (på engelsk) til richard\@systemeD.net med en fejlrapport, og forklar hvad du gjorde da det skete. - error_connectionfailed: "Beklager - forbindelsen til OpenStreetMap-serveren fejlede, eventuelle nye ændringer er ikke blevet gemt.\n\nVil du prøve igen?" + error_connectionfailed: Beklager - forbindelsen til OpenStreetMap-serveren fejlede, eventuelle nye ændringer er ikke blevet gemt. \n\nVil du prøve igen? error_nopoi: Fandt ikke POI-et, så det er ikke muligt at fortryde. (Måske er den ikke på skærmen længere?) error_nosharedpoint: Vejene $1 og $2 deler ikke noget punkt længere, så det er ikke muligt at fortryde delingen. error_noway: Fandt ikke vejen $1 så det er ikke muligt at fortryde. (Måske er den ikke på skærmen længere?) + error_readfailed: Beklager - OpenStreetMap-serveren reagere ikke.\n\nVil du prøve igen? existingrelation: Føj til en eksisterende relation findrelation: Find en relation som indeholder gpxpleasewait: Vent venligst mens GPX sporet behandles. + heading_introduction: Indledning + heading_surveying: Undersøge help: Hjælp hint_drawmode: klik for at tilføje punkt\ndobbeltklik eller enter\nfor at afslutte linie hint_loading: henter veje hint_overendpoint: over endepunkt\nklik for at forbinde\nshift+klik for at slå sammen til en hint_overpoint: over punkt\nklik for at forbinde hint_pointselected: punkt valgt\n(shift+klik punktet for at\nstarte en ny linie) + hint_saving: gemmer data + inspector: Inspektor + inspector_duplicate: Duplikat af + inspector_in_ways: I veje + inspector_locked: Låst + inspector_not_in_any_ways: Ikke på nogen veje (POI) + inspector_unsaved: Ikke gemt + inspector_uploading: (Uploading) + inspector_way_connects_to_principal: Forbinder til $1 $2 og $3 andre $4 + inspector_way_nodes_closed: $1 noder (lukkede) + login_pwd: "Password:" + login_retry: Dit login blev ikke genkendt. Prøv venligst igen. + login_title: Kunne ikke logge ind + login_uid: "Brugernavn:" + mail: Post + newchangeset: "Prøv venligst igen: Potlatch vil starte et nyt changeset.." + "no": Nej + nobackground: Ingen baggrund norelations: Ingen relationer i området på skærmen + offset_choose: Vælg offset (m) + offset_dual: Dobbelt vej (D2) + ok: Ok + openchangeset: Åbner Changeset option_custompointers: Brug pen- og håndvisere option_fadebackground: Fjern baggrund + option_layer_cycle_map: OSM - cykel kort + option_layer_maplint: OSM - Maplint (fejl) + option_layer_nearmap: "Australien: NearMap" + option_layer_ooc_25k: "UK historisk: 1:25 k" + option_layer_os_streetview: "UK: OS StreetView" + option_layer_streets_haiti: "Haiti: gadenavne" + option_layer_tip: Vælg baggrunden til visning + option_limitways: Advar ved loading af masser af data + option_microblog_id: "Microblog navn:" + option_microblog_pwd: "Microblog password:" + option_photo: "Foto KML:" + option_thinareas: Brug tyndere linjer for områder option_thinlines: Brug tynde linier uanset skalering + option_tiger: Fremhæv uændret TIGER + option_warnings: Vis flydende advarsler point: Punkt + preset_icon_airport: Lufthavn + preset_icon_bar: Bar + preset_icon_cafe: Café + preset_icon_cinema: Biograf + preset_icon_disaster: Haiti bygning + preset_icon_fast_food: Fast food + preset_icon_ferry_terminal: Færge + preset_icon_fire_station: Brandstation + preset_icon_hospital: Hospital + preset_icon_hotel: Hotel + preset_icon_museum: Museum + preset_icon_parking: Parkering + preset_icon_place_of_worship: Sted for tilbedelse + preset_icon_police: Politistation + preset_icon_post_box: Postkasse + preset_icon_recycling: Genbrug + preset_icon_school: Skole + preset_icon_station: Togstation + preset_icon_taxi: Taxaholdeplads + preset_icon_telephone: Telefon + preset_tip: Vælg fra menuen af preset tags, der beskriver $1 prompt_addtorelation: Tilføj $1 til en relation + prompt_changesetcomment: "Indtast en beskrivelse af dine ændringer:" + prompt_createparallel: Opret parallel vej + prompt_editlive: Edit live + prompt_helpavailable: Ny bruger? Kig nederst til venstre for at få hjælp. + prompt_launch: Start ekstern URL + prompt_manyways: Dette område er meget detaljerede, og vil tage lang tid at hente. Foretrækker du at zoome ind? prompt_revertversion: "Ret tilbage til tidligere lagret version:" - prompt_taggedpoints: Nogle af punktene på denne vej har tags. Vil du virkelig slette? + prompt_savechanges: Gem ændringer + prompt_taggedpoints: Nogle af punktene på denne vej har tags eller er i en relation. Vil du virkelig slette? prompt_track: Overfør dine GPS-spor til (låste) veje for redigering. prompt_welcome: Velkommen til OpenStreetMap! + retry: Prøv igen + revert: Fortryd + save: Gem + tags_backtolist: Tilbage til listen + tags_descriptions: Beskrivelser af '$ 1' + tags_findtag: Find tag + tags_matching: Populære tags matchende '$1' tip_addrelation: Føj til en relation tip_addtag: Tilføj et tag tip_alert: Der opstod en fejl, klik for detaljer @@ -55,10 +155,19 @@ da: tip_gps: Vis GPS spor (G) tip_noundo: Intet at fortryde tip_options: Sæt indstillinger (vælg kortbaggrund) + tip_photo: Load billeder tip_presettype: Vælg hvilke type forhåndsinstillinger som er tilgænglige i menuen tip_repeattag: Gentag tags fra senest valgte vej (R) tip_revertversion: Vælg versionen der skal rettes tilbage til tip_selectrelation: Føj til den valgte rute tip_splitway: Del vej i valgt punkt (X) + tip_tidy: Nydeliggøre vejpunkter (T) tip_undo: Fortryd $1 (Z) + uploading: Overfører ... + uploading_deleting_ways: Sletter veje + uploading_poi: Uploading POI $1 + uploading_relation_name: Uploading relation $1, $2 + uploading_way_name: Uploading vej$ 1, $ 2 + warning: Advarsel! way: Vej + "yes": Ja diff --git a/config/potlatch/locales/de.yml b/config/potlatch/locales/de.yml index d8dec3084..f4e491c02 100644 --- a/config/potlatch/locales/de.yml +++ b/config/potlatch/locales/de.yml @@ -6,7 +6,9 @@ # Author: CygnusOlor # Author: Fnolz # Author: Grille chompa +# Author: LWChris # Author: Markobr +# Author: Michi # Author: Pill # Author: Umherirrender de: @@ -19,7 +21,7 @@ de: action_createpoi: Einen Ort von Interesse (POI) erstellen action_deletepoint: Punkt löschen action_insertnode: Punkt auf Weg hinzufügen - action_mergeways: Zwei Wege verschmelzen + action_mergeways: Zwei Wege zusammenlegen action_movepoi: Ort von Interesse (POI) verschieben action_movepoint: Punkt verschieben action_moveway: einen Weg verschieben @@ -39,6 +41,7 @@ de: advanced_tooltip: Erweiterte Editierfunktionen advanced_undelete: Wiederherstellen advice_bendy: Zu kurvig zum Begradigen (SHIFT zum Erzwingen) + advice_conflict: Konflikt - Du musst evtl. versuchen, erneut zu speichern advice_deletingpoi: POI entfernen (Z zum Rückgängig machen) advice_deletingway: Weg löschen (Z um es rückgängig zu machen) advice_microblogged: $1 Status wurde aktualisiert @@ -86,6 +89,7 @@ de: heading_tagging: Tagging heading_troubleshooting: Fehlerbehandlung help: Hilfe + help_html: "Willkommen zu Potlatch\nPotlatch is der einfach zu bedienende Editor für OpenStreetMap. Zeichne Straßen, Wege, Landmarken und Geschäfte von deinen GPS Aufzeichnungen, Satellitenfotos oder alten Karten.\n\nDiese Hilfeseiten werden dich durch die Basisfunktionen von Potlatch führen und dir zeigen wo du mehr erfahren kannst. Klicke auf die Überschriften oben um zu beginnen.\n\nWenn du fertig bist klicke einfach irgendwo anders auf der Seite.\n\n\n\nHilfreiche Dinge die man wissen sollte\nKopiere nicht von anderen Karten!\n\nWenn du 'Live bearbeiten' wählst werden sämtliche Änderungen in die Datenbank gespeichert während du zeichnest - also sofort. Wenn du nicht so selbstsicher bist, wähle 'Bearbeiten und speichern' und sie werden nur dann übernommen wenn du auf 'Speichern' klickst.\n\nAlle Bearbeitungen werden normalerweise ein bis zwei Stunden nach dem Speichern auf der Karte sichtbar (ein paar Dinge brauchen eine Woche). Es gibt auch Dinge, welche nicht auf der Karte gezeigt werden - sie würde einfach zu unübersichtlich. Aber da die OpenStreetMap-Daten open source sind ist jeder dazu eingeladen Karten zu erstellen, welche andere Aspekte zeigen - wie zB OpenCycleMap oder Midnight Commander.\n\nMerke dir, dass es einerseits eine schöne Karte (also zeichne hübsche Kurven) und ein Diagramm (also vergewissere dich, dass deine Straßen an Kreuzungen verbunden sind).\n\nHaben wir schon erwähnt nicht von anderen Karten zu kopieren?\n\n\nFinde mehr heraus\nPotlatch Anleitung\nE-Mail-Verteiler\nOnline chat (Live Hilfe)\nWeb Forum\nCommunity Wiki\nPotlatch Sourcecode\n\n\n\nErste Schritte\nNachdem du nun Potlatch offen hast, klicke auf 'Bearbeiten mit speichern' um zu beginnen.\n\nDu bist nun bereit auf der Karte zu zeichnen. Am besten beginnst du damit ein paar 'Punkte von Interesse' auf die Karte zu ziehen (POIs - Points of Interest). Das können Pubs, Kirchen, Bahnhöfe oder alles was du magst sein.\n\nKlicken und ziehen\nUm es super einfach zu machen, gibt es eine Auswahl der meistgenutzten POIs direkt am unteren Ende der Karte für dich. Einen davon auf die Karte zu setzen geht ganz einfach - Anklicken und mit gedrückter Maustaste auf die richtige Stelle auf die Karte ziehen. Mach dir keine zu großen Gedanken darüber wenn du die Position nicht sofort richtig erwischst: du kannst es auf der Karte mittels Klicken und Ziehen nochmal verschieben bis die Position passt. Beobachte auch, dass der POI gelb hervorgehoben wird um zu zeigen, dass er selektiert wurde.\n\nSobald du das gemacht hast möchtest du natürlich deinem Pub (oder Kirche oder Bahnhof) einen Namen geben. Du wirst bemerken, dass eine kleine Tabelle am unteren Rand erschienen ist. Einer der Einträge wird 'name' sein gefolgt von '(type name here'). Mach das - klicke auf diesen Text und tippe den Namen ein.\n\nKlicke an eine andere Stelle in der Karte um die Selektion des POIs aufzuheben und die färbige Symbolleiste kommt zurück.\n\nEinfach, oder etwa nicht? Klicke auf 'Speichern' (unten rechts) wenn du fertig bist.\nHerumbewegen\nUm zu einem anderen Kartenausschnitt zu wechseln, ziehe einfach einen leeren Bereich der Karte. Potlatch wird automatisch neue Daten nachladen (Tip: Rechts oben steht Laden in diesem Fall).\n\nWir haben dir 'Bearbeiten mit speichern' vorgeschrieben, aber du kannst auch 'Live bearbeiten' wählen. In diesem Fall gehen alle Änderungen direkt in die Datenbank. Daher gibt es auch keinen 'Speichern'-Schalter. Das ist hilfreich für schnelle Änderungen und Mapping Parties.\n\nNächste Schritte\nGlücklich mit alle dem? Großartig. Klicke auf 'Vermessung' oben um herauszufinden wie du ein wirklicher Mapper wirst!\n\nVermessung via GPS\nDie Idee hinter OpenStreetMap ist es eine Karte ohne die einschränkenden Copyrights anderer Karten zu erstellen. Das bedeutet, dass es nicht erlaubt ist von anderen Karten abzuzeichnen: Du musst selber in die Straßen gehen und vermessen. Glücklicherweise macht das eine Menge Spaß.\nDer beste Weg dies zu machen ist mit einem GPS-Gerät. Suche einen Bereich der noch nicht erfasst ist und marschiere oder fahre die Straßen mit eingeschaltetem GPS entlang. Notiere dir die Straßennamen und alles andere von Interesse (Pubs? Kirchen?) wenn du daran vorbeikommst.\n\nWenn du nach Hause kommst hast du eine GPS-Aufzeichnung ('Tracklog') mit dem zurückgelegten Weg. Dieses kannst du zu OpenStreetMap aufladen.\n\nDas beste GPS-Gerät ist eines, dass Wegpunkte in hoher Frequenz erfasst (alle 1-2 Sekunden) und einen großen Speicher hat. Ein großer Anteil unserer Mapper benutzt Garmin-Geräte oder kleine Bluetooth-Einheiten. Im Wiki gibt es hierzu detailierte GPS Reviews.\n\nDeine Strecke Hochladen\nZuerst musst du deine Strecke vom GPS runterbekommen. Möglicherweise hat dein Gerät bereits Software hierfür mitgeliefert oder es lässt dich die Dateien mittels USB runterkopieren. Wenn nicht, versuche es mit GPSBabel. Egal auf welche Weise - Die Datei muss im Endeffekt im GPX-Format vorliegen.\n\nNun verwende das 'GPS-Tracks' Tab um deinen Track zu OpenStreetMap hochzuladen. Das ist aber erst der erste Schritt - er wird noch nicht auf der Karte erscheinen. Du musst die Straßen erst selber zeichnen und benennen auf Basis des Tracks.\nDen Track verwenden\nFinde den hochgeladenen Track in der 'GPS-Tracks' Liste und klicke auf 'bearbeiten' direkt daneben. Potlatch wird gestartet und der Track geladen inklusive aller Wegpunkte. Du bist jetzt bereit zum Zeichnen!\n\nDu kannst mit diesem Button auch GPS-Tracks anderer Mapper (allerdings ohne Wegpunkte) im aktuellen Bereich ansehen. Halte Shift um nur deine eigenen Tracks anzusehen.\nSattelitenfotos verwenden\nWenn du kein GPS besitzt nicht verdrübt sein. In einigen Städten haben wir Satellitenfotos zum Nachzeichnen welche freundlicherweise von Yahoo! bereitgestellt wurden (Danke!). Gehe raus und notiere dir die Straßennamen und wenn du zurückkommst zeichne die Linien.\n\nWenn du keine Satellitenfotos siehst, klicke den Optionen-Button und vergewissere dich, dass 'Yahoo!' ausgewählt ist. Wenn du immer noch keine siehst gibt es vermutlich keine Fotos deiner Stadt oder du musst eventuell etwas herauszoomen.\n\nBei den selben Optionen findest du auch ein paar Alternativoptionen wie zB eine Copyrightfreie Karte von UK oder die OpenTopoMap für das US-Gebiet. Diese sind alle speziell ausgewählt da es uns erlaubt wurde diese zu verwenden - kopiere nicht von anderen Karten oder Luftbildern (Copyright-Gesetze sind unser Feind).\n\nManchmal sind die Satellitenfotos nicht 100% auf der Position der tatsächlichen Straßen. Wenn du dies bemerkst halte die Leertaste und ziehe den Hintergrund bis er zusammenpasst. GPS-Tracks haben hierbei höhere Vertrauensrate als Satellitenfotos.\n\nWege zeichnen\nUm eine Straße (oder Weg) zu zeichnen, der in einem leeren Bereich der Karte beginnt, klicke einfach auf den Startpunkt; dann bei jedem einzelnen Punkt der Straße. Wenn du fertig bist mach entweder einen Doppelklick oder drücke Enter - dann klicke woandershin um die Selektion der Straße aufzuheben.\n\nUm einen Weg von einem anderen Weg weg zu zeichnen, klicke auf diesen um in zu selektieren; seine Punkte werden rot hervorgehoben. Halte Shift und klicke auf einen dieser Punkte um einen neuen Weg zu starten (Wenn noch kein Punkt an der neuen Kreuzung exisiert verwende ebenfalls Shift-Klick um einen zu erstellen!).\n\nKlicke 'Speichern' (unten rechts) wenn du fertig bist. Speichere oft, falls der Server Probleme hat.\n\nErwarte nicht deine Änderungen sofort in der Hauptkarte zu sehen. Das dauert normalerweise 1-2 Stunden, manchmal sogar bis zu einer Woche.\nKreuzungen erstellen\nEs ist sehr wichtig, dass bei Straßen, die sich kreuzung einen gemeinsamen Punkt (oder 'Node') besitzen. Routenplaner benötigen dies um zu wissen wo man abbiegen kann.\n\nPotlatch erledigt dies solange du vorsichtig bist und immer exakt auf den Weg klickst, an den angeschlossen werden soll. Halte Ausschau nach hilfreichen Zeichen: Die Punkte werden blau hervorgehoben, der Mauszeiger verändert sich und wenn du fertig bist hat die Kreuzung einen schwarzen Extra-Rand.\nVerändern und Löschen\nDas funktioniert so wie du es erwarten würdest. Um einen Punkt zu löschen selektiere ihn und drücke 'Entfernen'. Um einen ganzen Weg zu löschen drücke Shift-Entfernen.\n\nUm etwas zu verschieben ziehe es einfach. (Wenn du einen ganzen Weg verschieben willst musst du klicken und ein bischen warten bevor du ihn ziehst - Das ist um sicherzustellen, dass es nicht unabsichtlich passiert).\nErweitertes Zeichnen\nWenn 2 Teilbereiche eines Weges unterschiedliche Namen haben musst du ihn aufsplitten. Klicke auf den Weg; dann klicke den Punkt wo gesplittet werden soll und klicke abschließend auf die Schere. (Du kannst Wege vereinen indem du sie nacheinander mit gedrückter 'Strg'-Taste selektierst (bzw. am Mac mit gedrückter Apfel-Taste). Verbinde aber keine Wege, welche unterschiedliche Namen oder Typen haben!).\n\nKreisverkehre sind sehr schwer richtig zu zeichnen. Aber keine Panik - Potlatch hilft dabei. Zeichne den Kreis grob vor und stelle sicher, dass das Ende am eigenen Beginn anschließt, dann drücke auf dieses Icon um den Kreis 'aufzuräumen' (Du kannst dies ebenfalls verwenden um Straßen zu begradigen).\nPunkte von Interesse\nDas erste was du gelernt hast war klicken und ziehen von Punkten von Interesse. Du kannst einen solchen auch erzeugen indem du auf die Karte doppelklickst: ein gründer Kreis erscheint. Aber wie legst du nun fest ob es ein Pub, eine Kirche oder was auch immer ist? Klicke auf 'Tagging' um es herauszufinden!\n\nWelcher Straßentyp ist es?\nNachdem du einen Weg gezeichnet hast solltest du festlegen was es ist. Ist es eine Primärstraße, ein Fußweg oder gar ein Fluss? Was ist sein Name? Gibt es spezielle Regeln (zB \"keine Fahrräder\")?\n\nIn OpenStreetMap wird dies durch 'tags' erfasst. Ein tag hat 2 Teile und du kannst soviele erstellen wie du willst. Du könntest zum Beispiel highway | trunk hinzufügen um zu sagen, dass es eine Primärstraße ist; highway | residental für eine Straße im Ortsgebiet; oder highway | footway für einen Fußweg. Wenn Fahrräder verboten sind könntest du noch bicycle | no hinzufügen. Dann noch name | Market Street um der Straße einen Namen zu geben.\n\nDie Tags werden in Potlatch um unteren Bildschirmrand angezeigt - klicke auf eine bestehende Straße und du siehst welche Tags sie hat. Klicke auf '+' (unten rechts) um einen neuen Tag hinzuzufügen. Das 'x' neben jedem Tag löscht diesen.\n\nDu kannst ganze Wege taggen; Punkte innerhalb von Wegen (Gatter, Ampel,...); oder Punkte von Interesse.\nVorgefertigte Tags\nDamit du einfacher vorankommst, hat Potlatch einige Vorlagen welche die meistverwendeten Tags beinhalten.\n\nSelektiere einen Weg dann klicke die Symbole durch bis du ein passendens findest. Nun wähle die passenste option vom Menü.\n\nDamit werden die passenden Tags erstellt. Einige könnten teilweise leer sein so dass du sie ausfüllen kannst (zB Name einer Straße).\nEinbahnen\nDu kannst den tag oneway | yes hinzufügen - aber wie legst du die Richtung fest? Es gibt einen Pfeil unten links der die Wegrichtung anzeigt vom Start zum Ende. Klicke auf ihn um den Weg umzukehren.\nEigene Tags verwenden\nDu bist natürlich nicht auf die Vorlagen beschränkt. Mittels '+' kannst du jeden beliebigen Tag verwenden.\n\nDu kannst unter OSMdoc nachschauen, welche Tags von anderen Personen verwendet werden, bzw. gibt es eine lange liste polulärer Tags in unserem Wiki unter Map Features. Das sind aber nur Vorschläge, keine Regeln. Es steht dir frei eigene Tags zu erfinden oder welche von anderen Benutzern zu 'borgen'.\n\nDa die OpenStreetMap-Daten verwendet werden um viele unterschiedliche Karten zu erstellen wird jede Karte ihre eigene Auswahl an Tags zeigen ('rendern').\nRelationen\nManchmal sind Tags nicht genug und es ist erforderlich zwei oder mehrere Wege zu einer 'Gruppe' zusammenzufassen. Eventuell ist das Abbiegen von einer Straße in eine andere nicht erlaubt oder 20 Wege zusammen ergeben einen markierten Fahrradweg. Du kannst dis mit einem erweiterten Feature genannt 'Relationen' erledigen. Mehr dazu im wiki.\n\nFehler rückgängig machen\nDas ist der Undo-Button (du kannst auch Z drücken) - damit wird deine letzte Änderungen rückgängig gemacht.\n\nDu kannst auch einen Weg zu einer früheren Version 'zurücksetzen'. Wähle ihn dann klicke auf die ID (die Nummer unten links) - oder drücke H ('history'). Du bekommst eine Liste aller Änderungen inklusive Datum und Uhrzeit. Wähle einen Eintrag zu dem du zurückgehen willst und klicke 'Rückgängig machen'.\n\nWenn du unabsichtlich einen Weg gelöscht und gespeichert hast drücke U ('undelete'). Alle gelöschten Wege werden angezeigt. Wähle den Weg den du willst; entsperre ihn indem du den roten Balken bei den Tags auswählst; speichere wie üblich.\n\nBist du der Ansicht jemand anderes hat einen Fehler gemacht? Sende ihm eine freundliche Nachricht. Verwende die Verlaufsoption (H) und selektiere seinen namen. Dann klicke auf 'Nachricht'.\n\nVerwende den Inspector (im 'Erweiterten' Menü) um hilfreiche Informationen über die aktuell selektierten Wege oder Punkte zu erhalten.\nFAQs\nWie sehe ich meine Wegpunkte?\nWegpunkte werden nur angezeigt, wenn du auf 'bearbeiten' neben dem Track-Namen in 'GPS-Tracks' klickst. Die Datei muss Wegpunkte und Wege beinhalten - der Server verweigert alles was nur Wegpunkte beinhaltet.\n\nWeitere FAQs für Potlatch und OpenStreetMap.\n\n\nSchneller arbeiten\nJe weiter du herausgezoomt bist umso mehr Daten muss Potlatch laden. Zoome hinein bevor du auf 'Editieren' klickst.\n\nDeaktiviere 'Stift- und Hand-Mauszeiger verwenden' (im Optionsfenster) für maximale Geschwindigkeit.\n\nWenn der Server langsam ist versuche es später nochmal. Schau ins Wiki für bekannte Probleme. An manchen Zeiten, wie zum Beispiel Sonntag Abend, sind die Server oft stärker belastet.\n\nFordere Potlatch auf sich deine bevorzugten Tagzusammenstellungen zu merken. Selektiere einen Weg oder Punkt mit den gewünschten Tags, dann drücke Strg, Shift und eine Nummer von 1 bis 9. Um diese Tags anzuwenden drücke einfach Shift und die gewünschte Nummer (Potlatch merkt sich diese Vorlagen dann auf deinem Computer womit sie 'ewig' verfügbar bleiben).\n\nKonvertiere deinen GPS-Track in einen Weg indem du ihn in 'GPS-Tracks' auswählst, 'bearbeiten' klickst und dann die Checkbox zum konvertieren der Wege auswählst. Er wird als gesperrter (roter) weg übernommen und damit nicht gespeichert. Du musst ihn zuerst über den roten Balken bei den Tags entsperren.\n\nKlicken\nZiehe die Karte um herumzufahren.\nDoppelklick für einen neuen POI.\nEinfachklick um einen neuen Weg zu beginnen.\nKlicken und ziehen eines Weges oder POIs um ihn zu verschieben.\nBeim Weg-Zeichnen\nDoppelklick oder Enter zum Abschließen.\nKlicke auf einen anderen Weg für eine Kreuzung.\nShift-Klicke das Ende eines anderen Weges um zu vereinen.\nWenn ein Weg selektiert ist\nKlicke auf einen Punkt um ihn zu selektieren\nShift-Klicke in den Weg um einen neuen Punkt einzufügen.\nShift-Klicke auf einen Punkt um einen neuen Weg von dort zu starten.\nStrg-Klicke einen anderen Weg um zu vereinen.\n\nTastaturkürzel\nB Hintergrund-Quellen-Tag hinzufügen\nC Schließe Changeset\nG Zeige GPS Tracks\nH Zeige Verlauf\nI Zeige Inspektor\nJ Verbinde Punkte zu einer Kreuzung\nK Sperre/Entsperre aktuelle Selektion\nL Zeige aktuelle Koordinaten\nM Maximiere Editierfenster\nP Erzeuge parallelen Weg\nR Wiederhole Tags\nS Speichern (sofern nicht Live-Modus)\nT Kreis oder gerade Linie erzeugen\nU Undelete (Zeige gelöschte Wege)\nX Weg in 2 Wege aufspalten\nZ Undo\n- Enterne den Punkte nur von diesem Weg\n+ Füge neuen Tag hinzu\n/ Selektiere einen anderen Weg mit gemeinsamem Punkt\nEntfernen Punkt Löschen\n (+Shift) Lösche gesamten Weg\nEnter Wegzeichnen beenden\nLeertaste Hintergrund verschieben\nEsc Aktuelle Änderungen verwerfen\n; Vom Server neuladen\n0 Alle Tags entfernen\n1-9 Vorlagentags auswählen\n (+Shift) Benutzertags laden\n (+Shift+Strg) Benutzertrags speichern\n§ oder ` Taggruppen durchgehen\n\n" hint_drawmode: Klicken, um Punkt hinzuzufügen\nDoppelklicken oder Eingabetaste zum Beenden der Linie hint_latlon: "Breitengrad $1\nLängengrad $2" hint_loading: Wege werden geladen @@ -95,6 +99,7 @@ de: hint_saving: Daten speichern hint_saving_loading: Daten laden/speichern inspector: Inspektor + inspector_duplicate: Duplikat von inspector_in_ways: In den Wegen inspector_latlon: "Breitengrad $1\nLängengrad $2" inspector_locked: Gesperrt @@ -106,6 +111,7 @@ de: inspector_way_connects_to_principal: Verbunden mit $1 $2 und $3 weiteren $4 inspector_way_nodes: $1 Knoten inspector_way_nodes_closed: $1 Knoten (geschlossen) + loading: Lade... login_pwd: "Passwort:" login_retry: Deine Anmeldung wurde nicht akzeptiert. Bitte versuch es noch einmal. login_title: Anmeldung fehlgeschlagen @@ -132,6 +138,7 @@ de: option_layer_ooc_25k: Historische UK Karten 1:25k option_layer_ooc_7th: "UK historic: 7th" option_layer_ooc_npe: "UK historic: NPE" + option_layer_ooc_scotland: "UK-Historisch: Schottland" option_layer_streets_haiti: "Haiti: Straßenname" option_layer_tip: Hintergrund auswählen option_limitways: Warnung wenn große Datenmenge geladen wird @@ -185,13 +192,18 @@ de: prompt_microblog: Eintragen in $1 ($2 verbleibend) prompt_revertversion: "Frühere Version wiederherstellen:" prompt_savechanges: Änderungen speichern - prompt_taggedpoints: Einige Punkte auf diesem Weg tragen Attribute (Tags). Trotzdem löschen? + prompt_taggedpoints: Einige Punkte auf diesem Weg besitzen Attribute oder sind Bestandteil von Relationen. Wirklich löschen? prompt_track: Deine GPS-Aufzeichnungen (Tracks) in (gesperrte) Wege zum Editieren wandeln. prompt_unlock: Anklicken zum Entsperren prompt_welcome: Willkommen bei OpenStreetMap! retry: Erneut versuchen revert: Rückgängig machen save: Speichern + tags_backtolist: Zurück zur Auflistung + tags_descriptions: Beschreibungen von '$1' + tags_findatag: Einen Tag finden + tags_matching: Beliebte Tags zu '$1' + tags_typesearchterm: "Suchbegriff eingeben:" tip_addrelation: Zu einer Relation hinzufügen tip_addtag: Attribut (Tag) hinzufügen tip_alert: Ein Fehler ist aufgetreten - Klicken für Details diff --git a/config/potlatch/locales/dsb.yml b/config/potlatch/locales/dsb.yml index 56e1c8365..2d8073a03 100644 --- a/config/potlatch/locales/dsb.yml +++ b/config/potlatch/locales/dsb.yml @@ -176,7 +176,7 @@ dsb: prompt_microblog: Powěsć do 1 ($2 zbytne) prompt_revertversion: "K pjerwjejšnej skłaźonej wersiji se wrośiś:" prompt_savechanges: Změny składowaś - prompt_taggedpoints: Někotare dypki na toś tom puśu maju atributy. Coš jen napšawdu lašowaś? + prompt_taggedpoints: Někotare dypki na toś tom puśu maju atributy abo su w relacijach. Coš jen napšawdu lašowaś? prompt_track: GPS-ceru do puśow konwertěrowaś prompt_unlock: Klikni, aby se wótwóriło prompt_welcome: Witaj do OpenStreetMap! diff --git a/config/potlatch/locales/en.yml b/config/potlatch/locales/en.yml index 0591f9079..5ef926f6a 100644 --- a/config/potlatch/locales/en.yml +++ b/config/potlatch/locales/en.yml @@ -138,6 +138,7 @@ en: option_layer_ooc_7th: "UK historic: 7th" option_layer_ooc_npe: "UK historic: NPE" option_layer_ooc_scotland: "UK historic: Scotland" + option_layer_os_streetview: "UK: OS StreetView" option_layer_osmarender: OSM - Osmarender option_layer_tip: Choose the background to display option_layer_yahoo: Yahoo! @@ -192,13 +193,14 @@ en: prompt_microblog: Post to $1 ($2 left) prompt_revertversion: "Revert to an earlier saved version:" prompt_savechanges: Save changes - prompt_taggedpoints: Some of the points on this way are tagged. Really delete? + prompt_taggedpoints: Some of the points on this way are tagged or in relations. Really delete? prompt_track: Convert GPS track to ways prompt_unlock: Click to unlock prompt_welcome: Welcome to OpenStreetMap! retry: Retry revert: Revert save: Save + tags_findtag: Find tag tags_findatag: Find a tag tags_typesearchterm: "Type a word to look for:" tags_matching: Popular tags matching '$1' diff --git a/config/potlatch/locales/eo.yml b/config/potlatch/locales/eo.yml index c8396d246..f3b1c9884 100644 --- a/config/potlatch/locales/eo.yml +++ b/config/potlatch/locales/eo.yml @@ -1,11 +1,14 @@ # Messages for Esperanto (Esperanto) # Exported from translatewiki.net # Export driver: syck +# Author: Cfoucher # Author: Yekrats eo: a_way: $1 vojon action_movepoint: Movante punkton + advanced_close: Malfermi ŝanĝaron advanced_undelete: Malforigi + createrelation: Krei novan rilaton custom: "Memkreita:" delete: Forigi editinglive: Aktiva redakto @@ -14,11 +17,15 @@ eo: login_pwd: Pasvorto login_uid: "Salutnomo:" option_photo: "Foto KML:" + preset_icon_cinema: Kinejo + preset_icon_station: Stacidomo + prompt_changesetcomment: "Enmetu priskribon de viaj ŝanĝoj:" prompt_editsave: Redakti kun konservo prompt_savechanges: Konservi ŝanĝojn retry: Reprovi save: Konservi tip_alert: Eraro okazis - klaku atingi detalojn + tip_direction: Vojdirekto - klaku por inversigi tip_photo: Ŝarĝi fotojn tip_undo: Malfari $1 (Z) way: Vojo diff --git a/config/potlatch/locales/es.yml b/config/potlatch/locales/es.yml index 41cdf4f99..e3cc0324f 100644 --- a/config/potlatch/locales/es.yml +++ b/config/potlatch/locales/es.yml @@ -11,19 +11,19 @@ es: action_addpoint: Añadir un punto al final de una vía action_cancelchanges: Cancelar cambios action_changeway: cambios en la vía - action_createparallel: creando vías paralelas + action_createparallel: crea vías paralelas action_createpoi: Crear un punto de interés (POI) - action_deletepoint: Borrar un punto + action_deletepoint: Borra un punto action_insertnode: Añadir un punto a una vía action_mergeways: Combinar dos vías action_movepoi: Mover un punto de interés (POI) action_movepoint: Mover un punto - action_moveway: Moviendo una vía + action_moveway: mueve una vía action_pointtags: Parámetros (tags) un punto action_poitags: Parámetros (tags) en un punto de interés (POI) - action_reverseway: Invertir dirección de una vía + action_reverseway: Invierte la dirección de la vía action_revertway: revertir una vía - action_splitway: Dividir una vía + action_splitway: Divide una vía action_waytags: Parámetros (tags) en una vía advanced: Avanzado advanced_close: Cerrar conjunto de cambios @@ -35,14 +35,14 @@ es: advanced_tooltip: Acciones de edición avanzadas advanced_undelete: Restaurar advice_bendy: Muy curvo para enderezarse (presione MAYÚS para forzar) - advice_conflict: Conflicto en el servidor - puede que tenga que intentar guardar de nuevo + advice_conflict: Conflicto en el servidor - puede que tenga que guardar de nuevo advice_deletingpoi: Borrando POI (Z para deshacer) advice_deletingway: Borrando vía (Z para deshacer) advice_microblogged: Se ha actualizado tu estado $1 advice_nocommonpoint: Las vías no comparten un punto en común advice_revertingpoi: Volver al último POI guardado (Z para deshacer) advice_revertingway: Deshaciendo cambios para volver a la última versión guardada (Z para deshacer) - advice_tagconflict: Los parámetros no coinciden - Por favor revíselos (Z para deshacer) + advice_tagconflict: Las etiquetas no coinciden - Por favor revíselas (Z para deshacer) advice_toolong: Demasiado largo para desbloquear - Por favor divídalo en vías más cortas advice_uploadempty: Nada que subir advice_uploadfail: Subida detenida @@ -50,10 +50,10 @@ es: advice_waydragged: Vía desplazada (Z para deshacer) cancel: Cancelar closechangeset: Cerrando conjunto de cambios - conflict_download: Descargar su versión - conflict_overwrite: Sobreescribir su versión - conflict_poichanged: Desde que comenzó a editar alguien ha cambiado el punto $1 - conflict_relchanged: Desde que comenzó a editar alguien ha cambiado la relación $1 + conflict_download: Descarga su versión + conflict_overwrite: Sobreescribe su versión + conflict_poichanged: Desde que comenzó a editar alguien ha cambiado el punto $1$2. + conflict_relchanged: Desde que comenzó a editar alguien ha cambiado la relación $1$2. conflict_visitpoi: Pulse 'Ok' para mostrar el punto. conflict_visitway: Pulse 'Aceptar' para mostrar la vía conflict_waychanged: Desde que comenzó a editar alguien ha cambiado la vía $1$2. @@ -70,18 +70,18 @@ es: error_microblog_long: "El envío a $1 falló:\nCódigo HTTP: $2\nMensaje de error: $3\n$1 error: $4" error_nopoi: El punto de interés (POI) no se puede encontrar (igual usted se ha desplazado a otra zona?), por tanto no se puede deshacer. error_nosharedpoint: Las vías $1 y $2 ya no tienen ningún punto en común, por tanto no se pueden dividir. - error_noway: La vía $1 no se puede encontrar (igual usted se ha desplazado a otra zona?), por tanto no se puede deshacer.. + error_noway: La vía $1 no se puede encontrar (igual usted se ha desplazado a otra zona?), por tanto no se puede deshacer. error_readfailed: Lo sentimos mucho. El servidor de OpenStreetMap no ha respondido a la solicitud de información. \n\n¿Deseas intentarlo de nuevo? - existingrelation: Añadir a relación existente + existingrelation: Añadir a una relación existente findrelation: Buscar una relación que contenga - gpxpleasewait: Por favor espere un poco mientras el track GPX se procesa. + gpxpleasewait: Por favor, espere mientras la traza GPX se procesa. heading_drawing: Dibujando heading_introduction: Introducción heading_pois: Primeros pasos heading_quickref: Referencia rápida heading_surveying: Recogida de datos heading_tagging: Etiquetando - heading_troubleshooting: Problemas + heading_troubleshooting: Resolución de problemas help: Ayuda hint_drawmode: Clic para añadir un punto\ndoble-clic/Return\npara terminar la línea hint_latlon: "lat $1\nlon $2" @@ -132,12 +132,13 @@ es: option_layer_ooc_7th: "Histórico de UK: 7th" option_layer_ooc_npe: "Histórico de UK: NPE" option_layer_ooc_scotland: "UK histórico: Escocia" + option_layer_os_streetview: "UK: OS StreetView" option_layer_streets_haiti: "Haiti: nombres de calles" option_layer_tip: Elija el fondo a mostrar option_limitways: Lanza una advertencia al cargar gran cantidad de datos. option_microblog_id: "Nombre del microblog:" option_microblog_pwd: "Contraseña del microblog:" - option_noname: Resaltar carreteras sin nombres + option_noname: Resalta las carreteras sin nombres option_photo: "Foto KML:" option_thinareas: Usar líneas más finas para áreas option_thinlines: Usar líneas finas en todas las escalas @@ -178,14 +179,14 @@ es: prompt_createparallel: Crear vía paralela prompt_editlive: Edición en vivo prompt_editsave: Edición con guardar - prompt_helpavailable: Usuario nuevo? Busca ayuda abajo en la izquierda. + prompt_helpavailable: ¿Usuario nuevo? Mire la ayuda en la zona inferior izquierda. prompt_launch: Ir a URL externa prompt_live: Al estar en vivo, cada cambio realizado se guardará instantáneamente en la base de datos de OpenStreetMap y esto no se recomienda a principiantes. ¿Estás seguro? prompt_manyways: Esta área contiene muchos detalles y tardará mucho en cargarse. ¿Prefieres hacer un acercamiento? prompt_microblog: Enviado a $1 ($2 restantes) prompt_revertversion: "Volver a una versión previamente guardada:" prompt_savechanges: Guardar cambios - prompt_taggedpoints: Algunos puntos de esta vía tienen parámetros (tags). Seguro que quiere borrar? + prompt_taggedpoints: Alguno de los puntos de esta vía tienen etiquetas o están en una relación. ¿Realmente quiere borrarlos? prompt_track: Convierta su track de GPS a vías (bloqueadas) para editar. prompt_unlock: Pulse para desbloquear prompt_welcome: Bienvenido a OpenStreetMap! @@ -194,24 +195,25 @@ es: save: Guardar tags_backtolist: Volver a la lista tags_descriptions: Descripciones de '$1' - tags_findatag: Encontrar una etiqueta + tags_findatag: Busca una etiqueta + tags_findtag: Busca una etiqueta tags_matching: Etiquetas populares que coinciden con '$1' tags_typesearchterm: "Introduzca una palabra para buscar:" tip_addrelation: Añadir a una relación tip_addtag: Añadir un nuevo parámetro (tag) tip_alert: Ha ocurrido un error - clic para detalles tip_anticlockwise: Vía circular en el sentido contrario de las agujas del reloj - clic para invertir la dirección de la vía - tip_clockwise: Vía circular en el sentido de las agujas del reloj - clic para invertir la dirección de la vía + tip_clockwise: Vía circular en el sentido de las agujas del reloj - pulse para invertir la dirección de la vía tip_direction: Dirección de la vía - clic para invertir la dirección de la vía - tip_gps: Mostrar los tracks de GPS (G) + tip_gps: Muestra las trazas de GPS (G) tip_noundo: Nada que deshacer tip_options: Opciones (elegir el fondo del mapa) tip_photo: Cargar fotos - tip_presettype: Seleccionar que tipo de parámetros (tags) preestablecidos se ofrecen en el menú. - tip_repeattag: Repetir los parámetros (tags) de la vía seleccionada previamente (R) - tip_revertversion: Elige la versión a la que volver. + tip_presettype: Seleccionar que tipo de etiquetas preestablecidas se ofrecen en el menú. + tip_repeattag: Repetir las etiquetas de la vía seleccionada previamente (R) + tip_revertversion: Elija la fecha a la que volver. tip_selectrelation: Añadir a la ruta seleccionada - tip_splitway: Dividir la vía en el punto seleccionado (X) + tip_splitway: Divide la vía en el punto seleccionado (X) tip_tidy: Simplificar puntos en una vía (T) tip_undo: Deshacer $1 (Z) uploading: Subiendo... diff --git a/config/potlatch/locales/fr.yml b/config/potlatch/locales/fr.yml index 44915dc82..26a11cf24 100644 --- a/config/potlatch/locales/fr.yml +++ b/config/potlatch/locales/fr.yml @@ -136,6 +136,7 @@ fr: option_layer_ooc_7th: Historique UK 7e option_layer_ooc_npe: Historique UK NPE option_layer_ooc_scotland: "Royaume-Uni historique : Ecosse" + option_layer_os_streetview: "RU : OS StreetView" option_layer_streets_haiti: "Haïti: noms des rues" option_layer_tip: Choisir l'arrière-plan à afficher option_limitways: Avertir lors du chargement d'une grande quantité de données @@ -189,7 +190,7 @@ fr: prompt_microblog: Poster sur $1 ($2 restant) prompt_revertversion: "Revenir à une version sauvegardée antérieure :" prompt_savechanges: Sauvegarder les modifications - prompt_taggedpoints: Certains points de ce chemin sont balisés. Souhaitez-vous les supprimer? + prompt_taggedpoints: Certains points de ce chemin sont associés à des balises ou dans des relations. Voulez-vous vraiment les supprimer ? prompt_track: Conversion d'une trace GPS en chemin (verrouillé) pour l'édition prompt_unlock: Cliquer pour déverrouiller prompt_welcome: Bienvenue sur OpenStreetMap ! @@ -198,8 +199,9 @@ fr: save: Sauvegarder tags_backtolist: Retour à la liste tags_descriptions: Descriptions de « $1 » - tags_findatag: Rechercher un mot-clé - tags_matching: Mots-clés populaires correspondant à « $1 » + tags_findatag: Rechercher une balise + tags_findtag: Rechercher balise + tags_matching: Balises populaires correspondant à « $1 » tags_typesearchterm: "Tapez le mot à rechercher :" tip_addrelation: Ajouter à une relation tip_addtag: Ajouter une nouvelle balise diff --git a/config/potlatch/locales/gl.yml b/config/potlatch/locales/gl.yml index b3539eeb4..3f4d7e75e 100644 --- a/config/potlatch/locales/gl.yml +++ b/config/potlatch/locales/gl.yml @@ -32,6 +32,7 @@ gl: advanced_tooltip: Accións de edición avanzadas advanced_undelete: Restaurar advice_bendy: Demasiado curvado para podelo endereitar (Bloq. Maiús. para forzar) + advice_conflict: Conflito co servidor; poida que necesite intentar gardar de novo advice_deletingpoi: Borrando o punto de interese (Z para desfacer) advice_deletingway: Borrando o camiño (Z para desfacer) advice_microblogged: Actualizouse o teu estado en $1 @@ -88,6 +89,7 @@ gl: hint_saving: gardando os datos hint_saving_loading: cargando/gardando os datos inspector: Inspector + inspector_duplicate: Duplicado de inspector_in_ways: Nos camiños inspector_latlon: "Lat $1\nLon $2" inspector_locked: Pechado @@ -99,6 +101,7 @@ gl: inspector_way_connects_to_principal: Conecta con $1 $2 e $3 $4 inspector_way_nodes: $1 nodos inspector_way_nodes_closed: $1 nodos (pechado) + loading: Cargando... login_pwd: "Contrasinal:" login_retry: Non se recoñeceu o seu nome de usuario. Por favor, inténteo de novo. login_title: Non se puido rexistrar @@ -125,6 +128,8 @@ gl: option_layer_ooc_25k: "Historial UK: 1:25k" option_layer_ooc_7th: "Historial UK: 7º" option_layer_ooc_npe: "Historial UK: NPE" + option_layer_ooc_scotland: "RU histórico: Escocia" + option_layer_os_streetview: "RU: OS StreetView" option_layer_streets_haiti: "Haití: nomes de rúas" option_layer_tip: Escolla o fondo a mostrar option_limitways: Avisar ao cargar moitos datos @@ -170,7 +175,7 @@ gl: prompt_closechangeset: Pechar o conxunto de cambios $1 prompt_createparallel: Crear un camiño paralelo prompt_editlive: Editar en directo - prompt_editsave: Editar con garda + prompt_editsave: Editar con gardado prompt_helpavailable: É un usuario novo? Olle o canto inferior esquerdo para obter axuda. prompt_launch: Lanzar un URL externo prompt_live: No modo en directo, cada elemento que cambie gardarase instantaneamente na base de datos do OpenStreetMap; non se recomenda para os principiantes. Está seguro de querer usar este modo? @@ -178,13 +183,19 @@ gl: prompt_microblog: Publicar en $1 ($2 restantes) prompt_revertversion: "Voltar a unha versión anterior:" prompt_savechanges: Gardar os cambios - prompt_taggedpoints: Algúns dos puntos deste camiño están etiquetados. Realmente os quere borrar? + prompt_taggedpoints: Algúns dos puntos deste camiño están etiquetados ou en relacións. Realmente os quere borrar? prompt_track: Converter as pistas GPS en camiños prompt_unlock: Prema para desbloquear prompt_welcome: Benvido ao OpenStreetMap! retry: Reintentar revert: Reverter save: Gardar + tags_backtolist: Voltar á lista + tags_descriptions: Descricións de "$1" + tags_findatag: Atopar unha etiqueta + tags_findtag: Atopar unha etiqueta + tags_matching: Etiquetas populares que coinciden con "$1" + tags_typesearchterm: "Escriba unha palabra a procurar:" tip_addrelation: Engadir a unha relación tip_addtag: Engadir unha nova etiqueta tip_alert: Houbo un erro (prema para obter máis detalles) diff --git a/config/potlatch/locales/hr.yml b/config/potlatch/locales/hr.yml index da31a8a10..ae9de0ad2 100644 --- a/config/potlatch/locales/hr.yml +++ b/config/potlatch/locales/hr.yml @@ -79,7 +79,7 @@ hr: heading_tagging: Označavanje (Tagging) heading_troubleshooting: Rješavanje problema help: Pomoć - help_html: "Dobrodošli u Potlatch\nPotlatch je editor koji se lako koristi za uređivanje OpenStreetMap-a. Crtajte ceste, staze, orjentire i trgovine iz GPS istaživanja, satelitskih slika ili starih karti.\n\nOve stranice pomoći će vas provesti kroz osnove korištenja Potlatch-a, i pokazati kako saznati više. Klikni naslove za početak.\n\nKada ste gotovi, klikinte bilo gdje na stranicu.\n\n\n\nKorisno je znati\nNe kopirajte s drugih karti !\n\nAko izaberete 'Uređuj uživo\" sve promjene koje napravite trenutno idu u bazu čim ih nacrtate. Ako niste toliko sigurni, izaberite 'Uređuj sa spremanjem', i onda će ići tek kada pritisnete 'Spremi'.\n\nBilo koja promjena koju napravite bit će prikazane na karti kroz sat ili dva (neke stvari čak i do tjedan). Nije sve prikazano na karti - izgledalo bi previše neuredno. Kako je su podaci Openstreetmap-a otvorenog koda, ljudi mogu napraviti prikaz karte s drukčijim izgledom - kao OpenCycleMap or Midnight Commander.\n\nZapamtite, to je ujedno karta koja dobro izgleda (pa ctrajte lijepe liijepe zavoje) i diagram za navigaciju (pa budite sigurni da ste spojili ceste na križanjima).\n\nDa li smo spomenuli da ne kopirate s drugih karti?\n\n\nSaznaj više\nPotlatch upute\nMailing liste\nOnline chat (pomoć uživo)\nWeb forum\nWiki zajednice\nPotlatch source-code\n\n\n\nPočetak\nSada kada imate otvoren Potlatch, 'Uređuj sa spremanjem' za početak.\n\nSpremni ste za crtanje karte. Najlakše je početi s ucrtavnjem točaka interesa ili POI. Ovo mogu biti kafići, restorani, crkve, željazničke stanice....sve što želite.\n\nPovuci i ispusti\nDa bi bilo super jednostavno, ispod karte se nalazi izbor najčešće korištenih POI. Postavljanje na kartu radi se jednostavnim povlačenjem ikone na kartu. Ne brinite ako je niste odmah pozicionarali ispravno: možete pomaći POI, dok ga ne namjestite. Upamtite da POI mora biti osvjetljen žuto kada je izabran.\n\nKada ste to napravili, dajte ime vašem kafiću, stanici, crkvi... Vidjet će te da se pojavila mala tablica ispod. Jedno od polja će biti \"Ime\" popraćeno s \"unesite ime\". Kliknite taj telst i unesite ime.\n\nKliknite negdje drugdje na karti da bi odslektirali vaš POI, i raznobojni panel se vraća.\n\nLako, zar ne? Klikni 'Spremi' (dolje desno) kad ste gotovi.\nPomjeranje okolo\nDa se premjestite na drugi dio karte, povucite kartu. Potlatch će automatski učitati nove podatke (gledajte gornji desni kut).\n\nRekli smo vam da 'Uređujete sa spremanjem', ali možete kliknuti i na 'Uređivanje uživo'. Ako idete uživo, sve promjene u bazi podataka su trenutne, tako da nema gumba 'Spremi'. Ovo je dobro za brze izmjene i mapping party-e.\n\nSlijedeći koraci\nZadovoljni s ovim svime? Odlično. Klikni 'Istraživanje' iznad da bi saznali kako postati pravi maper!\n\nIstraživanje s GPS-om\nIdeja iza Openstreetmap-a je da se napravi karta bez ograničavajućih autorskih prava drugih karti. Ovo znači da ne smijete kopirati drugr karte: morate izaći i istražiti ulice osobno. Na sreću to je jako zabavno! \nNajbolji način za istraživanje je sa GPS uređajem. Nađite područje koje nije kartirano, pa prošećite, provozajte se (biciklom, motorom, autom...) s uključenim GPS uređajem (i uključenim snimanjem GPS traga). Zabilježite usput ulice i sve drugo interesantno (kafiće, crkve, itd.).\n\nKada dođete kući, GPS će sadržavati tzv. 'tracklog' ili zapis GPS traga gdje ste sve bili. Tada možete trag uploadirati na Openstreetmap.\n\nNajbolje je namjestiti GPS uređaj tako da često snima poziciju (svake sekunde ako je moguće) i da ima veliku memoriju. Puno mapera koristi ručne Garmin uređaje ili bluetooth uređaje. Detaljno su opisani GPS recenzije na našem wiki-u.\n\nUploadiranje GPS tragova\nSada, trebate skintui GPS trag s uređaja. Možda je vaš GPS došao s nekim softwareom, ili se kopira direktno s USB ili SD kartice. Ako ne, probajte GPSBabel. Štogod bilo, trebate datoteku u GPX formatu.\n\nTada koristite 'GPS tragovi' tab za upload vašeg traga na OpenstreetMap. Ali ovo je prva sitnica - neće se odma pokazati na karti.. Morate nacrtati i imenovati ceste osobno, koristeći trag kao vodilju.\nKorištenje vaših tragova\nNađite uploadani trag na listi 'GPS tragovi', i kliknite 'uredi' odmah pored. Potlatch će startati s ovim tragom učitanim i sa svim waypoint-ima. Spremni ste za crtanje!\n\n\nMožete također klinuti ovaj gumb za prikaz GPS tragova od svih članova (ali bez waypointa) za trenutno područje. Drži SHIFT za prikaz samo vašeg traga.\n\nKorištenje satelitskih snimki\nAko nemate GPS, ne brinite. U nekim gradovima, postoje satelitske snimke preko kojih možete precrtavati, ljubazno ustupio Yahoo! (hvala!). Izađite van i zabilježite nazive ulica, vratite se i imenujte precrtane ulice.\n\nAko ne vidite satelitsku snimku, klikite gumb postavke i izaberite 'Yahoo!'. Ako još uvijek ne vidite, vjerojatno odzumirajte (visoka rezolucija nije trenutno dostupna za sve gradove).\n\nNa ovom gumbu, postavke, naći ćete još nekoliko izbora kao karte s isteknutim autorskim pravom za Veliku Britaniju i OpenTopoMap za SAD. Ovo su specijalno izabrane, jer ih je dopušteno koristiti - ne kopirajte s ničije karte ili zračnih snimki. (Zakoni o autorskom pravu su njesra)\n\nPonekad su satelitske snikme malo pomaknute s točnog mjesta gdje su zapravo. ako naiđete na ovo, držite Space i povucite pozadinu dok se ne poravna. Uvijek vjerujte GPS tragovima više nego snimcima.\n\nCrtanje puteva\nDa nacrtate cestu (ili 'put') počnite na praznom mjestu na karti, samo kliknite i precrtajte preko traga. Kada ste gotovi dupli-klik ili pritisnite Enter - onda kliknite negdje da deselektirate cestu.\n\nZa crtanbje puta koji počinje od nekog drugog puta, njegove toče će biti crvene. Držite Dhift i kliknite jednu točku da započnete novi put na toj točki. (ako nema crvene točke na križanju, shift-click gdje hoćete novu!)\n\nKlikni 'Spremi' (dolje desno) kada ste gotovi. Spremajte često, u slučaju da server ima problema.\n\nNe očekujte vaše izmjene da budu odmah vidljive na karti. Obično traje oko sat - dva, ponekad i do tjedan dana.\nIzrada križanja\nStvarno je važno, da kada se 2 ceste spajaju, trebaju dijeliti točku. Planeri rute koriste ovo da bi znali gdje skrenuti.\n\nPotlatch birne o ovome sve dok pazite gdje kliknete točno na put koji spajate. Gledajte pomoćne znakove: točke zasvijetle plavo, pokazivač se promjeni, a kad ste gotovi križanje ima crni obrub.\nPremještanje i brisanje\nOvo radi kako i očekujete. Za brisanje točke, izaberite je i pritisnite Delete. Za brisanje cijelog puta, pritisnite Shift-Delete.\n\nZa premještanje, samo povucite. (Morati će te klinuti i držati za kratko kako ne bi bilo slučano)\nNapredno crtanje\n\nAko sva dijela puta imaju različita imena, morate ih razdvojiti. Kliknite put, onda kliknite točku na kojoj želite razdvojiti i klikinete škare. (Možete sjediniti puteve sa Shift+klik, ali ne možete sjediniti dvije sete različitog imena ili tipa.)\n\nKružni tokovi su dosta teški za nacrtati ispravno. Ne brinite - Potlatch može pomoći. Samo nacrtajte krug ugrubo, ali da se spaja sam sa sobom na kraju, i onda kliknite ikonu da se 'porede' točke. (Isto tako možete izravnati ceste)\nTočka interesa\nPrvo što ste naučili je kako povući i ispustiti POI. Možete ih napravaviti tako da duplo kliknete na kartu; zeleni kružić se pojavljuje. Ali kako reći da je to kafić, crkva ili štoveć? Kliknete 'Označavanje' gore da otkrijete!\n\nKoji je ovo tip ceste?\nKada ste završili s crtanjem puta, trebate ga označiti što je. Jeli to glavna cesta, pješačka staza ili rijeka? Koje je ime? Ima li nekih specijalnih pravila (npr. jednosmjerna ulica)?\n\nU Openstreetmap, ovo snimate korištenjema 'oznaka'. Oznaka ima dva dijela, a možete ih imati koliko hoćete. Npr. možete dodati highway | primary da kažete da je to glavna cesta; highway | residential za cestu u naselju; ili highway | footway za pješačku stazu. Ako su bicikli zabranjeni, dodate bicycle | no. Da snimite ime, dodajte name | Tržna ulica.\n\nOznake u Potlatchu se pojavljuju na dnu ekrana - kliknite na postojeću cestu i vidjet će te koje oznake imaju. Klik na '+' znak (dolje desno) da dodate novu oznaku. Sa 'x' pored oznake ju brišete.\n\nMožete označiti cijeli put; točke na putu (npr. semafor ili kapije); ili toče interesa.\nKorištenje unaprijed namještenih oznaka (tagova)\nDa počnete, Potlatch ima spremne presete koji sadrže najpopulanije tagove.\n\nIzaberite put, i kliknite kroz simbole dok ne nađete odgovarajući. Onda, izaberite odgovarajuću opciju u meniju.\n\nOvo će popuniti oznake. Neki će ostati djelomično prazni da ih možete ukucati npr. ime ceste i broj.\nJednosmjerne ceste\nMožete dodati oznaku kao oneway | yes (za jednosmjernu ulicu) - ali kako odretiti smjer? Postoji strelica na dnu lijevo koa pokazuje smjer puta, od početka do kraja. Klikni za obrnuti smjer.\nIzabiranje vlastitih oznaka\nDakako, niste ograničeni na presete. Koristeći gumb '+' , možete koristiti oznake koje hoćete.\n\nMožete vidjeti koje oznake koriste drugi ljudi na OSMdoc, a ima i dugačka lista popularnih oznaka na našem wiki-u koja se zove Značajke karte.\n\nKako se OSM podaci koriste za izradu raznih karti, svaka karta će prikazivati (ili renderirati) neki izbor oznaka.\nRelacije\nPonekad oznake nisu dovoljne, i morate 'grupirati' dva ili više puta. Možda je zabranjeno skretanje s jedne na drugu cestu, ili 20 puteva čini biciklističku rutu. To možete napraviti s naprednim funkcijama koje se zovu 'relacije'. Pogledajte za više na wikiju.\n\nIspravljanje grešaka\nOvo je gumb za UNDO poništavanje promjena (možete pritisnuti i Z) - poništiti će zandnje promjene.\n\nMožete 'vratiti' prijašnju snimljenu verziju puta ili točke. Izaberite ke i kliknite njen ID (broj na dnu lijevo) - ili pritisnite H (za 'povijest'). Vidjet će te listu svakoga tko je uređivao i kada. Izaberite jedan i kliknite 'Vrati'.\n\nAko ste slučajno izbrisali put i spremili ga, pritisnite U (vraćanje obrisanog). Svi obrisani putevi će biti prikazani. Izaberite koji želite; otključajte ga s klikom na lokot (po ID-u); i snimite uobičajeno.\n\nMislite da je netko napravio grešku? Pošaljite im prijateljsku poruku. Pritisnite H i izaberite ime, onda kliknite 'Mail'\n\nKoristite Inspector (u meniju 'Napredno') za pomoćne informacije o trenutnom putu ili točki.\nFAQ\nKako da vidim waypointe?\nWaypointi se pokazuju ako kliknete 'uređivanje' pored imena traga na 'GPS tragovi'. Datoteka mora imai i waypointe i zabilježen trag - server odbija sve što ima samo waypointe.\n\nViše FAQ za Potlatch i OpenStreetMap.\n\n\n\nRadite brže\nŠto ste više odzumirali, Potlatch mora učitati više podatka. Zoomirajte prije klikanja na 'Uređivanje'.\n\nIsključite 'koristi oklovku i pokazivač ruke' (u postavkama) za najveću brzinu.\n\nAko je server spor, dođite poslije. Provjerite wiki za poznate probleme. Ponekad, kao nedjeljom uvečer, uvijek su zauzeti.\n\nRecite Potlatchu da memorira vaše omiljene setove oznaka. Izaberite put ili točku s tim oznakama, pritisnite Ctrl, Shift i broj od 1 do 9. Da bi koristili te memorirane oznake pritisnite Shift i broj. (bit će upamćeni svaki puta kada koristite POtlatch na tom kompjuteru)\n\nPretvorite svoj GPS trag u put, tako da ga nađete na listi 'GPS tragovi', kliknite 'Uredi' i uključite 'pretvori'. Biti će zaključa (crven) i neće se snimiti. Prvo ga uredite, i onda kliknite lokot (dolje desno) da se otključa kada ste spremni za spremanje.\n\n\nŠto kliknuti\nPovuci kartu za kretanje okolo.\nDupli-click za novi POI.\nJedan-click za početak novog puta.\nDrži i povuci put ili POI za pomicanje.\nKada crtate put\nDupli-click ili\npritisnite Enter za završetak crtanja.\nKlikni drugi put da se napravi križanje.\nShift-click kraj drugog put za spajanje.\nKada je izabran put\nKlikni točku za izbor\nShift-click u put za umetanje nove točke.\nShift-click a point da započnete novi put odatle.\nShift-click drugi put za spajanje.\n\n\nTipkovničke kratie\nB Dodaj oznaku izvora pozadine\nC Zatvori changeset\nG Prikaži GPS tragovi\nH Pokaži povijest\nI Pokaži inspector\nJ Spoji točku putevima koji se križaju\nK Zaključaj/otključak trenutni izbor\nL Pokaži trenutnu geografsku širinu/dužinu (latitude/longitude)\nM Maximiziraj prozor za uređivanje\nP Napravi paralelni put\nR Ponovi oznake (tag)\nS Spremi (osim ako uređujete uživo)\nT Posloži točke u liniju/krug\nU Vrati obrisano (prikaži obrisane puteve)\nX podijeli put u dva\nZ Undo\n- Ukloni točku s ovog puta\n+ Dodaj novu oznaku (tag)\n/ Izaberi drugo put koji dijeli ovu točku\nDelete Obriši točku\n (+Shift) Obriši cijeli put\nReturn Završi liniju koja se crta\nSpace Drži i povuci pozadinu\nEsc Odustani od uređivanja, ponovno učitavanje sa servera.\n0 Ukloni sve oznake (tag)\n1-9 Izaberi unaprijed postavljene oznake (tagove)\n (+Shift) Izaberi memorirane oznake\n (+S/Ctrl) Memoriraj oznake\n§ ili ` Izmjenjuj grupa oznaka (tagova)\n\n" + help_html: "Dobrodošli u Potlatch\nPotlatch je editor koji se lako koristi za uređivanje OpenStreetMap-a. Crtajte ceste, staze, orjentire i trgovine iz GPS istaživanja, satelitskih slika ili starih karti.\n\nOve stranice pomoći će vas provesti kroz osnove korištenja Potlatch-a, i pokazati kako saznati više. Klikni naslove za početak.\n\nKada ste gotovi, klikinte bilo gdje na stranicu.\n\n\n\nKorisno je znati\nNe kopirajte s drugih karti !\n\nAko izaberete 'Uređuj uživo\" sve promjene koje napravite trenutno idu u bazu čim ih nacrtate. Ako niste toliko sigurni, izaberite 'Uređuj sa spremanjem', i onda će ići tek kada pritisnete 'Spremi'.\n\nBilo koja promjena koju napravite bit će prikazane na karti kroz sat ili dva (neke stvari čak i do tjedan). Nije sve prikazano na karti - izgledalo bi previše neuredno. Kako je su podaci Openstreetmap-a otvorenog koda, ljudi mogu napraviti prikaz karte s drukčijim izgledom - kao OpenCycleMap or Midnight Commander.\n\nZapamtite, to je ujedno karta koja dobro izgleda (pa ctrajte lijepe liijepe zavoje) i diagram za navigaciju (pa budite sigurni da ste spojili ceste na križanjima).\n\nDa li smo spomenuli da ne kopirate s drugih karti?\n\n\nSaznaj više\nPotlatch upute\nMailing liste\nOnline chat (pomoć uživo)\nWeb forum\nWiki zajednice\nPotlatch source-code\n\n\n\nPočetak\nSada kada imate otvoren Potlatch, 'Uređuj sa spremanjem' za početak.\n\nSpremni ste za crtanje karte. Najlakše je početi s ucrtavnjem točaka interesa ili POI. Ovo mogu biti kafići, restorani, crkve, željazničke stanice....sve što želite.\n\nPovuci i ispusti\nDa bi bilo super jednostavno, ispod karte se nalazi izbor najčešće korištenih POI. Postavljanje na kartu radi se jednostavnim povlačenjem ikone na kartu. Ne brinite ako je niste odmah pozicionarali ispravno: možete pomaći POI, dok ga ne namjestite. Upamtite da POI mora biti osvjetljen žuto kada je izabran.\n\nKada ste to napravili, dajte ime vašem kafiću, stanici, crkvi... Vidjet će te da se pojavila mala tablica ispod. Jedno od polja će biti \"Ime\" popraćeno s \"unesite ime\". Kliknite taj telst i unesite ime.\n\nKliknite negdje drugdje na karti da bi odslektirali vaš POI, i raznobojni panel se vraća.\n\nLako, zar ne? Klikni 'Spremi' (dolje desno) kad ste gotovi.\nPomjeranje okolo\nDa se premjestite na drugi dio karte, povucite kartu. Potlatch će automatski učitati nove podatke (gledajte gornji desni kut).\n\nRekli smo vam da 'Uređujete sa spremanjem', ali možete kliknuti i na 'Uređivanje uživo'. Ako idete uživo, sve promjene u bazi podataka su trenutne, tako da nema gumba 'Spremi'. Ovo je dobro za brze izmjene i mapping party-e.\n\nSlijedeći koraci\nZadovoljni s ovim svime? Odlično. Klikni 'Istraživanje' iznad da bi saznali kako postati pravi maper!\n\nIstraživanje s GPS-om\nIdeja iza Openstreetmap-a je da se napravi karta bez ograničavajućih autorskih prava drugih karti. Ovo znači da ne smijete kopirati drugr karte: morate izaći i istražiti ulice osobno. Na sreću to je jako zabavno! \nNajbolji način za istraživanje je sa GPS uređajem. Nađite područje koje nije kartirano, pa prošećite, provozajte se (biciklom, motorom, autom...) s uključenim GPS uređajem (i uključenim snimanjem GPS traga). Zabilježite usput ulice i sve drugo interesantno (kafiće, crkve, itd.).\n\nKada dođete kući, GPS će sadržavati tzv. 'tracklog' ili zapis GPS traga gdje ste sve bili. Tada možete trag uploadirati na Openstreetmap.\n\nNajbolje je namjestiti GPS uređaj tako da često snima poziciju (svake sekunde ako je moguće) i da ima veliku memoriju. Puno mapera koristi ručne Garmin uređaje ili bluetooth uređaje. Detaljno su opisani GPS recenzije na našem wiki-u.\n\nUploadiranje GPS tragova\nSada, trebate skintui GPS trag s uređaja. Možda je vaš GPS došao s nekim softwareom, ili se kopira direktno s USB ili SD kartice. Ako ne, probajte GPSBabel. Štogod bilo, trebate datoteku u GPX formatu.\n\nTada koristite 'GPS tragovi' tab za upload vašeg traga na OpenstreetMap. Ali ovo je prva sitnica - neće se odma pokazati na karti.. Morate nacrtati i imenovati ceste osobno, koristeći trag kao vodilju.\nKorištenje vaših tragova\nNađite uploadani trag na listi 'GPS tragovi', i kliknite 'uredi' odmah pored. Potlatch će startati s ovim tragom učitanim i sa svim waypoint-ima. Spremni ste za crtanje!\n\nMožete također kliknuti ovaj gumb za prikaz GPS tragova svih članova (ali bez waypointa) za trenutno područje. Drži Shift za prikaz samo vašeg traga.\nKorištenje satelitskih snimki\nAko nemate GPS, ne brinite. U nekim gradovima, postoje satelitske snimke preko kojih možete precrtavati, ljubazno ustupio Yahoo! (hvala!). Izađite van i zabilježite nazive ulica, vratite se i imenujte precrtane ulice.\n\nAko ne vidite satelitsku snimku, klikite gumb postavke i izaberite 'Yahoo!'. Ako još uvijek ne vidite, vjerojatno odzumirajte (visoka rezolucija nije trenutno dostupna za sve gradove).\n\nNa ovom gumbu, postavke, naći ćete još nekoliko izbora kao karte s isteknutim autorskim pravom za Veliku Britaniju i OpenTopoMap za SAD. Ovo su specijalno izabrane, jer ih je dopušteno koristiti - ne kopirajte s ničije karte ili zračnih snimki. (Zakoni o autorskom pravu su njesra)\n\nPonekad su satelitske snikme malo pomaknute s točnog mjesta gdje su zapravo. ako naiđete na ovo, držite Space i povucite pozadinu dok se ne poravna. Uvijek vjerujte GPS tragovima više nego snimcima.\n\nCrtanje puteva\nDa nacrtate cestu (ili 'put') počnite na praznom mjestu na karti, samo kliknite i precrtajte preko traga. Kada ste gotovi dupli-klik ili pritisnite Enter - onda kliknite negdje da deselektirate cestu.\n\nZa crtanbje puta koji počinje od nekog drugog puta, njegove toče će biti crvene. Držite Dhift i kliknite jednu točku da započnete novi put na toj točki. (ako nema crvene točke na križanju, shift-click gdje hoćete novu!)\n\nKlikni 'Spremi' (dolje desno) kada ste gotovi. Spremajte često, u slučaju da server ima problema.\n\nNe očekujte vaše izmjene da budu odmah vidljive na karti. Obično traje oko sat - dva, ponekad i do tjedan dana.\nIzrada križanja\nStvarno je važno, da kada se 2 ceste spajaju, trebaju dijeliti točku. Planeri rute koriste ovo da bi znali gdje skrenuti.\n\nPotlatch birne o ovome sve dok pazite gdje kliknete točno na put koji spajate. Gledajte pomoćne znakove: točke zasvijetle plavo, pokazivač se promjeni, a kad ste gotovi križanje ima crni obrub.\nPremještanje i brisanje\nOvo radi kako i očekujete. Za brisanje točke, izaberite je i pritisnite Delete. Za brisanje cijelog puta, pritisnite Shift-Delete.\n\nZa premještanje, samo povucite. (Morati će te klinuti i držati za kratko kako ne bi bilo slučano)\nNapredno crtanje\nAko sva dijela puta imaju različita imena, morate ih razdvojiti. Kliknite put, onda kliknite točku na kojoj želite razdvojiti i klikinete škare. (Možete sjediniti puteve sa Shift+klik, ili Apple tipkom na Mac-u, ali ne možete sjediniti dvije ceste različitog imena ili tipa.)\n\nKružni tokovi su dosta teški za nacrtati ispravno. Ne brinite - Potlatch može pomoći. Samo nacrtajte krug ugrubo, ali da se spaja sam sa sobom na kraju, i onda kliknite ikonu da se 'porede' točke. (Isto tako možete izravnati ceste)\nTočka interesa\nPrvo što ste naučili je kako povući i ispustiti POI. Možete ih napravaviti tako da duplo kliknete na kartu; zeleni kružić se pojavljuje. Ali kako reći da je to kafić, crkva ili štoveć? Kliknete 'Označavanje' gore da otkrijete!\n\nKoji je ovo tip ceste?\nKada ste završili s crtanjem puta, trebate ga označiti što je. Jeli to glavna cesta, pješačka staza ili rijeka? Koje je ime? Ima li nekih specijalnih pravila (npr. jednosmjerna ulica)?\n\nU Openstreetmap, ovo snimate korištenjema 'oznaka'. Oznaka ima dva dijela, a možete ih imati koliko hoćete. Npr. možete dodati highway | primary da kažete da je to glavna cesta; highway | residential za cestu u naselju; ili highway | footway za pješačku stazu. Ako su bicikli zabranjeni, dodate bicycle | no. Da snimite ime, dodajte name | Tržna ulica.\n\nOznake u Potlatchu se pojavljuju na dnu ekrana - kliknite na postojeću cestu i vidjet će te koje oznake imaju. Klik na '+' znak (dolje desno) da dodate novu oznaku. Sa 'x' pored oznake ju brišete.\n\nMožete označiti cijeli put; točke na putu (npr. semafor ili kapije); ili toče interesa.\nKorištenje unaprijed namještenih oznaka (tagova)\nDa počnete, Potlatch ima spremne presete koji sadrže najpopulanije tagove.\n\nIzaberite put, i kliknite kroz simbole dok ne nađete odgovarajući. Onda, izaberite odgovarajuću opciju u meniju.\n\nOvo će popuniti oznake. Neki će ostati djelomično prazni da ih možete ukucati npr. ime ceste i broj.\nJednosmjerne ceste\nMožete dodati oznaku kao oneway | yes (za jednosmjernu ulicu) - ali kako odretiti smjer? Postoji strelica na dnu lijevo koa pokazuje smjer puta, od početka do kraja. Klikni za obrnuti smjer.\nIzabiranje vlastitih oznaka\nDakako, niste ograničeni na presete. Koristeći gumb '+' , možete koristiti oznake koje hoćete.\n\nMožete vidjeti koje oznake koriste drugi ljudi na OSMdoc, a ima i dugačka lista popularnih oznaka na našem wiki-u koja se zove Značajke karte.\n\nKako se OSM podaci koriste za izradu raznih karti, svaka karta će prikazivati (ili renderirati) neki izbor oznaka.\nRelacije\nPonekad oznake nisu dovoljne, i morate 'grupirati' dva ili više puta. Možda je zabranjeno skretanje s jedne na drugu cestu, ili 20 puteva čini biciklističku rutu. To možete napraviti s naprednim funkcijama koje se zovu 'relacije'. Pogledajte za više na wikiju.\n\nIspravljanje grešaka\nOvo je gumb za UNDO poništavanje promjena (možete pritisnuti i Z) - poništiti će zandnje promjene.\n\nMožete 'vratiti' prijašnju snimljenu verziju puta ili točke. Izaberite ke i kliknite njen ID (broj na dnu lijevo) - ili pritisnite H (za 'povijest'). Vidjet će te listu svakoga tko je uređivao i kada. Izaberite jedan i kliknite 'Vrati'.\n\nAko ste slučajno izbrisali put i spremili ga, pritisnite U (vraćanje obrisanog). Svi obrisani putevi će biti prikazani. Izaberite koji želite; otključajte ga s klikom na crveni lokot i snimite uobičajeno.\n\nMislite da je netko napravio grešku? Pošaljite im prijateljsku poruku. Pritisnite H i izaberite ime, onda kliknite 'Mail'\n\nKoristite Inspector (u meniju 'Napredno') za pomoćne informacije o trenutnom putu ili točki.\nFAQ\nKako da vidim waypointe?\nWaypointi se pokazuju ako kliknete 'uređivanje' pored imena traga na 'GPS tragovi'. Datoteka mora imai i waypointe i zabilježen trag - server odbija sve što ima samo waypointe.\n\nViše FAQ za Potlatch i OpenStreetMap.\n\n\n\nRadite brže\nŠto ste više odzumirali, Potlatch mora učitati više podatka. Zoomirajte prije klikanja na 'Uređivanje'.\n\nIsključite 'koristi oklovku i pokazivač ruke' (u postavkama) za najveću brzinu.\n\nAko je server spor, dođite poslije. Provjerite wiki za poznate probleme. Ponekad, kao nedjeljom uvečer, uvijek su zauzeti.\n\nRecite Potlatchu da memorira vaše omiljene setove oznaka. Izaberite put ili točku s tim oznakama, pritisnite Ctrl, Shift i broj od 1 do 9. Da bi koristili te memorirane oznake pritisnite Shift i broj. (bit će upamćeni svaki puta kada koristite POtlatch na tom kompjuteru)\n\nPretvorite svoju GPS trasu u put, tako da ga nađete na listi 'GPS tragovi', kliknite 'Uredi' i uključite 'pretvori'. Biti će zaključan (crven) i neće se snimiti. Prvo ga uredite, i onda kliknite crveni lokot da se otključa kada ste spremni za spremanje.\n\nŠto kliknuti\nPovuci kartu za kretanje okolo.\nDupli-click za novi POI.\nJedan-click za početak novog puta.\nDrži i povuci put ili POI za pomicanje.\nKada crtate put\nDupli-click ili pritisnite Enter za završetak crtanja.\nKlikni drugi put da se napravi križanje.\nShift-click kraj drugog put za spajanje.\nKada je izabran put\nKlikni točku za izbor\nShift-click u put za umetanje nove točke.\nShift-click a point da započnete novi put odatle.\nCtrl-click na drugi put za spajanje.\n\nTipkovničke kratie\nB Dodaj oznaku izvora pozadine\nC Zatvori changeset\nG Prikaži GPS tragovi\nH Pokaži povijest\nI Pokaži inspector\nJ Spoji točku putevima koji se križaju\nK Zaključaj/otključak trenutni izbor\nL Pokaži trenutnu geografsku širinu/dužinu (latitude/longitude)\nM Maximiziraj prozor za uređivanje\nP Napravi paralelni put\nR Ponovi oznake (tag)\nS Spremi (osim ako uređujete uživo)\nT Posloži točke u liniju/krug\nU Vrati obrisano (prikaži obrisane puteve)\nX podijeli put u dva\nZ Undo\n- Ukloni točku s ovog puta\n+ Dodaj novu oznaku (tag)\n/ Izaberi drugo put koji dijeli ovu točku\nDelete Obriši točku\n (+Shift) Obriši cijeli put\nReturn Završi liniju koja se crta\nSpace Drži i povuci pozadinu\nEsc Odustani od uređivanja, ponovno učitavanje sa servera.\n0 Ukloni sve oznake (tag)\n1-9 Izaberi unaprijed postavljene oznake (tagove)\n (+Shift) Izaberi memorirane oznake\n (+S/Ctrl) Memoriraj oznake\n§ ili ` Izmjenjuj grupa oznaka (tagova)\n\n" hint_drawmode: klikni za dodavanje točke\ndupli-klik/Return\nza završetak linije hint_latlon: "lat $1\nlon $2" hint_loading: učitavanje podataka diff --git a/config/potlatch/locales/hsb.yml b/config/potlatch/locales/hsb.yml index 3a67ecacb..7b5abd14b 100644 --- a/config/potlatch/locales/hsb.yml +++ b/config/potlatch/locales/hsb.yml @@ -32,6 +32,7 @@ hsb: advanced_tooltip: Rozšěrjene wobdźěłanske akcije advanced_undelete: Wobnowić advice_bendy: Za zrunanje překřiwicaty (UMSCH za wunuzowanje) + advice_conflict: Serwerowy konflikt - dyrbiš snano znowa składować advice_deletingpoi: Wotstronja se dypk zajima (Z za anulowanje) advice_deletingway: Puc wotstronić (Z za anulowanje) advice_microblogged: Twój status $1 bu zaktualizowany @@ -79,7 +80,7 @@ hsb: heading_tagging: Atributowanje heading_troubleshooting: Rozrisowanje problemow help: Pomoc - help_html: "Witaj do Potlatch\nPotlatch je lochko wužiwajomny editor za OpenStreetMap. Narysuj dróhi, šćežki, mězniki a wobchody ze swojich GPS-měrjenjow, satelitowych wobrazow abo starych kartow.\n\nTute strony pomocy će wjedu přez zakłady wužiwanja editora Potlatch a informuja, hdźež móžeš wjace namakać. Klikń horjeka na nadpisma, zo by započał.\n\nHdyž sy hotowy, klikń prosće něhdźe na stronje.\n\n\n\nWužitny material, kotryž so měł znać\nNjekopěruj z druhich kartow!\n\nJeli wuběraš \"Live wobźěłać\", změny so w datowej bance tak składuja, kaž je rysuješ - takrjec hnydom. Jelic njejsy sej wěsty, wubjer \"Wobdžełać a składować\", a składuja so hakle, hdyž kliknješ na \"Skłasdować\".\n\nZměny, kotrež činiš, pokazuja so zwjetša na karće po jednej hodźinje abo dwěmaj hodźinomaj (někotre wěcy traja tydźeń). Nic wšitko pokazuje so na karće - to by přenjeporjadnje wupadało. Ale, dokelž daty OpenStreetMap su zjawny žórłowy kod, druzy ludźo su hotowi, karty zhotowić, kotrež wšelake aspekty pokazuja - kaž OpenCycleMap abo Midnight Commander.\n\nPomysl na to, zo je kaž rjana karta (rysuj potajkim rjane křiwki za křiwizny) tak tež diagram (zawěsć, zo dróhi so na křižowanišćach zwjazuja).\n\nSmy hižo naspomnili, zo njesměš z druhich kartow kopěrować?\n\n\nWjace zhonić\nPřiručnik Potlatch\nRozesyłanske lisćiny\nChat online (dynamiska pomoc)\nWebforum\nWiki zhromadźenstwa\nŽrědłowy kod Potlatch\n\n\n\nPrěnje kroki\nNětko je Potlatch startowany, klikń na \"Wobdźěłać a składować\", zo by započał.\n\nSy nětko na rysowanje karty přihotowany. Najlěpša akcija, zo by započało, je zarysowanje někotrych dypkow zajima (POI) na karće. To móhli hosćency, cyrkwje, dwórnišća... być, něšto, štož so ći spodoba.\n\nPřepołožić\nTo make it super-easy, you'll see a selection of the most common POIs, right at the bottom of the map for you. Putting one on the map is as easy as dragging it from there onto the right place on the map. And don't worry if you don't get the position right first time: you can drag it again until it's right. Note that the POI is highlighted in yellow to show that it's selected.\n\nTak chětře hač sy to činił, daš swojemu korčmje (abo cyrkwi abo dwórnišću) mjeno. Budźeš widźeć, zo so mała tabela deleka jewi. Jedyn ze zapiskow rěka \"name\", kotryž \"(zapisaj tu mjeno)\" slěduje. Čiń to - klikń na tekst a zapisaj mjeno.\n\nKlikń něhdźe druhdźe na karće, zo by swój dypk zajima wotzwolił a mały barbny meni so wróći.\n\nLochko, nic? Klikń na \"Składować\" (deleka naprawo), hdyž sy hotowy.\nWokoło sunyć\nZo by prózdny wurězk na druhi dźěl karty přesunył, ćehń jón prosće tam. Potlatch nowe daty awtomatisce začita (hladaj horjeka naprawo).\n\nSmy ći porućili, zo maš \"Wobdźěłać a składować\" wužiwać, ale móžeš tež na \"Live wobdźěłać\" kliknyć. Jeli to činiš, so twoje změny direktnje do datoweje banki přewozmu, tohodla tam tłóčatko \"Składować\" njeje. To je dobre za spěšne změny a kartěrowanske partyje.\n\nPřichodne kroki\nWo wšěm tym zahorjeny? Wulkotnje. Klikń horjeka na \"Měrjenje\", zo by zhonił, kak stanješ so z prawym kartěrowarjom!\n\nZ GPS měrić\nThe idea behind OpenStreetMap is to make a map without the restrictive copyright of other maps. This means you can't copy from elsewhere: you must go and survey the streets yourself. Fortunately, it's lots of fun!\nThe best way to do this is with a handheld GPS set. Find an area that isn't mapped yet, then walk or cycle up the streets with your GPS switched on. Note the street names, and anything else interesting (pubs? churches?) , as you go along.\n\nWhen you get home, your GPS will contain a 'tracklog' recording everywhere you've been. You can then upload this to OpenStreetMap.\n\nThe best type of GPS is one that records to the tracklog frequently (every second or two) and has a big memory. Lots of our mappers use handheld Garmins or little Bluetooth units. There are detailed GPS Reviews on our wiki.\n\nTwoju čaru nahrać\nNow, you need to get your track off the GPS set. Maybe your GPS came with some software, or maybe it lets you copy the files off via USB. If not, try GPSBabel. Whatever, you want the file to be in GPX format.\n\nThen use the 'GPS Traces' tab to upload your track to OpenStreetMap. But this is only the first bit - it won't appear on the map yet. You must draw and name the roads yourself, using the track as a guide.\nSwójsku čaru wužiwać\nPytaj swoju nahratu čaru w lisćinje \"GPS-ćěrje\" a klikń na \"wobdźěłać\" direktnje pódla jeje. Potlatch započnje z nahratej čaru plus někajkimi pućnymi dypkami. Nětko móžeš z rysowanjom započeć!\n\nMóžeš tež na tute tłóčatko klinyć, zo by kóždehožkuli GPS-čary (ale nic pućne dypki) za aktualny wurězk pokazał. Dźerž tastu Umsch stłóčenu, zo by jenož swoje čary pokazał.\nWužiwanje satelitowych fotow\nIf you don't have a GPS, don't worry. In some cities, we have satellite photos you can trace over, kindly supplied by Yahoo! (thanks!). Go out and note the street names, then come back and trace over the lines.\n\nIf you don't see the satellite imagery, click the options button and make sure 'Yahoo!' is selected. If you still don't see it, it's probably not available for your city, or you might need to zoom out a bit.\n\nOn this same options button you'll find a few other choices like an out-of-copyright map of the UK, and OpenTopoMap for the US. These are all specially selected because we're allowed to use them - don't copy from anyone else's maps or aerial photos. (Copyright law sucks.)\n\nSometimes satellite pics are a bit displaced from where the roads really are. If you find this, hold Space and drag the background until it lines up. Always trust GPS tracks over satellite pics.\n\nPuće rysować\nTo draw a road (or 'way') starting at a blank space on the map, just click there; then at each point on the road in turn. When you've finished, double-click or press Enter - then click somewhere else to deselect the road.\n\nTo draw a way starting from another way, click that road to select it; its points will appear red. Hold Shift and click one of them to start a new way at that point. (If there's no red point at the junction, shift-click where you want one!)\n\nKlikń na \"Składować\" (deleka naprawo), hdyž sy hotowy. Składuj husto, jeli serwer ma problemy.\n\nNjewočakaj, zo so twoje změny hnydom na hownej karće jewja. Traje zwjetša jednu hodźinu abo dwě hodźinje, druhdy hač k jednemu tydźenjej.\nZwiski wutworić\nJe woprawdźe wažnje, zo dwaj pućej matej zhromadny dypk (abo \"suk\"), hdźež so zetkawatej. Rutowe planowaki jón wužiwaja, zo bychu wědźeli, hdźež so směr změni.\n\nPotlatch takes care of this as long as you are careful to click exactly on the way you're joining. Look for the helpful signs: the points light up blue, the pointer changes, and when you're done, the junction point has a black outline.\nPřesunyć a zničić\nTo funguje runje tak, kaž by to wočakował. Zo by dypk wotstronił, wubjer jón a tłóč na tastu Entf. Zo by cyły puć wotstronił, tłóč Umsch-Entf.\n\nTo move something, just drag it. (You'll have to click and hold for a short while before dragging a way, so you don't do it by accident.)\nRozšěrjone rysowanje\nIf two parts of a way have different names, you'll need to split them. Click the way; then click the point where it should be split, and click the scissors. (You can merge ways by clicking with Control, or the Apple key on a Mac, but don't merge two roads of different names or types.)\n\nRoundabouts are really hard to draw right. Don't worry - Potlatch can help. Just draw the loop roughly, making sure it joins back on itself at the end, then click this icon to 'tidy' it. (You can also use this to straighten out roads.)\nDypki zajima\nThe first thing you learned was how to drag-and-drop a point of interest. You can also create one by double-clicking on the map: a green circle appears. But how to say whether it's a pub, a church or what? Click 'Tagging' above to find out!\n\nKotry typ dróhi to je?\nTak chětře kaž sy liniju rysował, ty měł podać, štož to je. Je wón hłowna dróha, pućik abo rěka? Kak wón rěka? Su wosebite prawidła (na př. \"žane kolesa\")?\n\nIn OpenStreetMap, you record this using 'tags'. A tag has two parts, and you can have as many as you like. For example, you could add highway | trunk to say it's a major road; highway | residential for a road on a housing estate; or highway | footway for a footpath. If bikes were banned, you could then add bicycle | no. Then to record its name, add name | Market Street.\n\nAtributy jewja so w Potlatch deleka na wobrazowce - klikń na eksistowacu dróhu a budźeš widźeć, kotre atributy ma. Klikń na znamješko \"+\" (naprawo deleka), zo by nowy atribut přidał. Pismik \"x\" pódla kóždeho atributa zniči jón.\n\nMóžeš cyłym pućam atribut připokazać, dypkam na pućach (na př. wrota abo amplu) a dypkam zajima.\nNastajen atributy wužiwać\nZo by započał, móžeš přihotowane sadźby z najpopularnišimi atributami wužiwać.\n\nWubjer puć, klikń potom po symbolach, doniž njenamakaš přihódny. Wubjer potom přihódnu opciju z menija.\n\nThis will fill the tags in. Some will be left partly blank so you can type in (for example) the road name and number.\nJednosměrne dróhi\nYou might want to add a tag like oneway | yes - but how do you say which direction? There's an arrow in the bottom left that shows the way's direction, from start to end. Click it to reverse.\nSwójske atributy wubrać\nWězo njetrjebaš so na standardne atributy wobmjezować. Klikń na tłóčatko \"+\" a móžeš kóždežkuli atributy wužiwać.\n\nYou can see what tags other people use at OSMdoc, and there is a long list of popular tags on our wiki called Map Features. But these are only suggestions, not rules. You are free to invent your own tags or borrow from others.\n\nDokelž daty OpenStreetMap so wužiwaja, zo by so wjele rozdźělnych kartow wutworiło, budźe kóžda karta swójske atributy pokazać (\"rysować\").\nRelacije\nSometimes tags aren't enough, and you need to 'group' two or more ways. Maybe a turn is banned from one road into another, or 20 ways together make up a signed cycle route. You can do this with an advanced feature called 'relations'. Find out more on the wiki.\n\nZmylki anulować\nTo je tłóčatko \"Anulować\" (móžeš tež Z tłóčić) - wono budźe akciju anulować, kotruž sy jako poslednja činił.\n\nYou can 'revert' to a previously saved version of a way or point. Select it, then click its ID (the number at the bottom left) - or press H (for 'history'). You'll see a list of everyone who's edited it, and when. Choose the one to go back to, and click Revert.\n\nJeli sy puć mylnje zničił a to składował, tłóč tastu U (za \"undelete/wobnowić\"). Wšě zničene puće budu so pokazować. Wubjer tón, kotryž chceš; wotewri jón přez kliknjenje na čerwjeny zamk, a składuj kaž přeco.\n\nMysliš, zo něchtó druhi je zmylk činił? Pósćel jemu přećelnu powěsć. Wužij opciju historije (H), zo by jeho mjeno wubrał a klikń potom na \"Póst\".\n\nWužij Inspektor (w meniju \"Rozšěrjeny\") za wužitne informacije wo aktualnym puću abo dypku.\nČaste prašenja\nKak widźu swoje pućne dypki?\nPućne dypki so jenož pokazuja, hdyž kliknješ na \"wobdźěłać\" pódla mjena čary w \"GPS-ćerjach\". Dataja dyrbi pućne dypki kaž tež protokol čary wobsahować - serwer wotpokazuje wšitko, štož ma jenož pućne dypki.\n\nDalše časte prašenja za Potlatch a OpenStreetMap.\n\n\n\nSpěšnišo dźěłać\nČim dale sy pomjeńšił, ćim wjace datow Potlatch dyrbi začitać. Powjetš, prjedy hač kliknješ na \"Wobdźěłać\".\n\nWupiń \"Pisakowe a ručne pokazowaki wužiwać\" (we woknje Opcije) za maksimalnu spěšnosć.\n\nJeli serwer pomału běži, wróć so pozdźišo. Přepytaj wiki za znatymi problemami. Druhdy, kaž na př. po njedźelnišich wječorach, serwery su jara přećežene.\n\nTell Potlatch to memorise your favourite sets of tags. Select a way or point with those tags, then press Ctrl, Shift and a number from 1 to 9. Then, to apply those tags again, just press Shift and that number. (They'll be remembered every time you use Potlatch on this computer.)\n\nTurn your GPS track into a way by finding it in the 'GPS Traces' list, clicking 'edit' by it, then tick the 'convert' box. It'll be locked (red) so won't save. Edit it first, then click the red padlock to unlock when ready to save.\n\nNa čo kliknyć\nKartu ćahnyć, zo by so wokoło sunyła\nDwójce kliknyć, zo by so nowy dypk zajima wutworił.\nJedyn raz kliknyć, zo by so nowy puć zachopił.\nDźeržeć a puć abo dypk zajima ćahnyć, zo by so přesunył.\nHdyž so puć rysuje\nDwójce kliknyć abo zapodawansku tastu tłóčić, zo by so rysowanje skónčiło.\nNa druhi puć kliknyć, zo by so zwisk wutworił.\nNa kónc druheho puća ze stłóčenej tastu Umsch kliknyć, zo by so zwisk wutworił.\nHdyž so puć wuběra\nKlikń na dypk, zo by jón wubrał.\nNa kónc ze stłóčenej tastu Umsch kliknyć, zo by so nowy dypk zasunył.\nNa dypk ze stłóčenej tastu Umsch kliknyć, zo by so nowy puć wot tam zachopił.\nNa druhi puć ze stłóčenej tastu Strg kliknyć, zo by so zwisk wutworił.\n\nTastowe skrótšenki\nB Atribut pozadka přidać\nC Sadźbu změnow začinić\nG GPS-čary pokazać\nH Historiju pokazać\nI Inspektor pokazać\nJ Dypk na puće přizamknyć, kotrež so křizuja\nK Aktualny wuběr blokować/dopušćić\nL Aktualny šěrokostnik/dołhostnik pokazać\nM Wobdźěłanske wokno maksiměrować\nP Paralelny puć wutworić\nR Atributy wospjetować\nS Składować (chibazo wobdźěłuješ live)\nT Do runeje linije/koła přetworić\nU Wobnowić (zničene puće pokazać)\nX Puć do dweju roztřihać\nZ Anulować\n- Dypk jenož z tutoho puća wotstronić\n+ Nowy atribut přidać\n/ Druhi puć wubrać, kotryž tutón dypk wužiwa\nEntf Dypk zničić\n (+Umsch) Cyły puć zničić(zapodawanska tasta)\nRysowanje linije skónčić(Mjezerowa tasta\nDźeržeć a pozadk přesunyć\nEsc Tute wobdźěłanje přetorhnyć; ze serwera znowa začitać\n0 Wšě atributy wotstronić\n1-9 Nastajene atributy wubrać\n (+Umsch) Składowane atributy wubrać\n (+S/Strg) Atributy składować\n§ abo ` Wobběh mjez skupinami atributow\n\n" + help_html: "Witaj do Potlatch\nPotlatch je lochko wužiwajomny editor za OpenStreetMap. Narysuj dróhi, šćežki, mězniki a wobchody ze swojich GPS-měrjenjow, satelitowych wobrazow abo starych kartow.\n\nTute strony pomocy će wjedu přez zakłady wužiwanja editora Potlatch a informuja, hdźež móžeš wjace namakać. Klikń horjeka na nadpisma, zo by započał.\n\nHdyž sy hotowy, klikń prosće něhdźe na stronje.\n\n\n\nWužitny material, kotryž so měł znać\nNjekopěruj z druhich kartow!\n\nJeli wuběraš \"Live wobźěłać\", změny so w datowej bance tak składuja, kaž je rysuješ - takrjec hnydom. Jelic njejsy sej wěsty, wubjer \"Wobdžełać a składować\", a składuja so hakle, hdyž kliknješ na \"Skłasdować\".\n\nZměny, kotrež činiš, pokazuja so zwjetša na karće po jednej hodźinje abo dwěmaj hodźinomaj (někotre wěcy traja tydźeń). Nic wšitko pokazuje so na karće - to by přenjeporjadnje wupadało. Ale, dokelž daty OpenStreetMap su zjawny žórłowy kod, druzy ludźo su hotowi, karty zhotowić, kotrež wšelake aspekty pokazuja - kaž OpenCycleMap abo Midnight Commander.\n\nPomysl na to, zo je kaž rjana karta (rysuj potajkim rjane křiwki za křiwizny) tak tež diagram (zawěsć, zo dróhi so na křižowanišćach zwjazuja).\n\nSmy hižo naspomnili, zo njesměš z druhich kartow kopěrować?\n\n\nWjace zhonić\nPřiručnik Potlatch\nRozesyłanske lisćiny\nChat online (dynamiska pomoc)\nWebforum\nWiki zhromadźenstwa\nŽrědłowy kod Potlatch\n\n\n\nPrěnje kroki\nNětko je Potlatch startowany, klikń na \"Wobdźěłać a składować\", zo by započał.\n\nSy nětko na rysowanje karty přihotowany. Najlěpša akcija, zo by započało, je zarysowanje někotrych dypkow zajima (POI) na karće. To móhli hosćency, cyrkwje, dwórnišća... być, něšto, štož so ći spodoba.\n\nPřepołožić\nTo make it super-easy, you'll see a selection of the most common POIs, right at the bottom of the map for you. Putting one on the map is as easy as dragging it from there onto the right place on the map. And don't worry if you don't get the position right first time: you can drag it again until it's right. Note that the POI is highlighted in yellow to show that it's selected.\n\nTak chětře hač sy to činił, daš swojemu korčmje (abo cyrkwi abo dwórnišću) mjeno. Budźeš widźeć, zo so mała tabela deleka jewi. Jedyn ze zapiskow rěka \"name\", kotryž \"(zapisaj tu mjeno)\" slěduje. Čiń to - klikń na tekst a zapisaj mjeno.\n\nKlikń něhdźe druhdźe na karće, zo by swój dypk zajima wotzwolił a mały barbny meni so wróći.\n\nLochko, nic? Klikń na \"Składować\" (deleka naprawo), hdyž sy hotowy.\nWokoło sunyć\nZo by prózdny wurězk na druhi dźěl karty přesunył, ćehń jón prosće tam. Potlatch nowe daty awtomatisce začita (hladaj horjeka naprawo).\n\nSmy ći porućili, zo maš \"Wobdźěłać a składować\" wužiwać, ale móžeš tež na \"Live wobdźěłać\" kliknyć. Jeli to činiš, so twoje změny direktnje do datoweje banki přewozmu, tohodla tam tłóčatko \"Składować\" njeje. To je dobre za spěšne změny a kartěrowanske partyje.\n\nPřichodne kroki\nWo wšěm tym zahorjeny? Wulkotnje. Klikń horjeka na \"Měrjenje\", zo by zhonił, kak stanješ so z prawym kartěrowarjom!\n\nZ GPS měrić\nThe idea behind OpenStreetMap is to make a map without the restrictive copyright of other maps. This means you can't copy from elsewhere: you must go and survey the streets yourself. Fortunately, it's lots of fun!\nThe best way to do this is with a handheld GPS set. Find an area that isn't mapped yet, then walk or cycle up the streets with your GPS switched on. Note the street names, and anything else interesting (pubs? churches?) , as you go along.\n\nWhen you get home, your GPS will contain a 'tracklog' recording everywhere you've been. You can then upload this to OpenStreetMap.\n\nThe best type of GPS is one that records to the tracklog frequently (every second or two) and has a big memory. Lots of our mappers use handheld Garmins or little Bluetooth units. There are detailed GPS Reviews on our wiki.\n\nTwoju čaru nahrać\nNow, you need to get your track off the GPS set. Maybe your GPS came with some software, or maybe it lets you copy the files off via USB. If not, try GPSBabel. Whatever, you want the file to be in GPX format.\n\nThen use the 'GPS Traces' tab to upload your track to OpenStreetMap. But this is only the first bit - it won't appear on the map yet. You must draw and name the roads yourself, using the track as a guide.\nSwójsku čaru wužiwać\nPytaj swoju nahratu čaru w lisćinje \"GPS-ćěrje\" a klikń na \"wobdźěłać\" direktnje pódla jeje. Potlatch započnje z nahratej čaru plus někajkimi pućnymi dypkami. Nětko móžeš z rysowanjom započeć!\n\nMóžeš tež na tute tłóčatko klinyć, zo by kóždehožkuli GPS-čary (ale nic pućne dypki) za aktualny wurězk pokazał. Dźerž tastu Umsch stłóčenu, zo by jenož swoje čary pokazał.\nWužiwanje satelitowych fotow\nIf you don't have a GPS, don't worry. In some cities, we have satellite photos you can trace over, kindly supplied by Yahoo! (thanks!). Go out and note the street names, then come back and trace over the lines.\n\nIf you don't see the satellite imagery, click the options button and make sure 'Yahoo!' is selected. If you still don't see it, it's probably not available for your city, or you might need to zoom out a bit.\n\nOn this same options button you'll find a few other choices like an out-of-copyright map of the UK, and OpenTopoMap for the US. These are all specially selected because we're allowed to use them - don't copy from anyone else's maps or aerial photos. (Copyright law sucks.)\n\nSometimes satellite pics are a bit displaced from where the roads really are. If you find this, hold Space and drag the background until it lines up. Always trust GPS tracks over satellite pics.\n\nPuće rysować\nTo draw a road (or 'way') starting at a blank space on the map, just click there; then at each point on the road in turn. When you've finished, double-click or press Enter - then click somewhere else to deselect the road.\n\nTo draw a way starting from another way, click that road to select it; its points will appear red. Hold Shift and click one of them to start a new way at that point. (If there's no red point at the junction, shift-click where you want one!)\n\nKlikń na \"Składować\" (deleka naprawo), hdyž sy hotowy. Składuj husto, jeli serwer ma problemy.\n\nNjewočakaj, zo so twoje změny hnydom na hownej karće jewja. Traje zwjetša jednu hodźinu abo dwě hodźinje, druhdy hač k jednemu tydźenjej.\nZwiski wutworić\nJe woprawdźe wažnje, zo dwaj pućej matej zhromadny dypk (abo \"suk\"), hdźež so zetkawatej. Rutowe planowaki jón wužiwaja, zo bychu wědźeli, hdźež so směr změni.\n\nPotlatch takes care of this as long as you are careful to click exactly on the way you're joining. Look for the helpful signs: the points light up blue, the pointer changes, and when you're done, the junction point has a black outline.\nPřesunyć a zničić\nTo funguje runje tak, kaž by to wočakował. Zo by dypk wotstronił, wubjer jón a tłóč na tastu Entf. Zo by cyły puć wotstronił, tłóč Umsch-Entf.\n\nTo move something, just drag it. (You'll have to click and hold for a short while before dragging a way, so you don't do it by accident.)\nRozšěrjone rysowanje\nIf two parts of a way have different names, you'll need to split them. Click the way; then click the point where it should be split, and click the scissors. (You can merge ways by clicking with Control, or the Apple key on a Mac, but don't merge two roads of different names or types.)\n\nRoundabouts are really hard to draw right. Don't worry - Potlatch can help. Just draw the loop roughly, making sure it joins back on itself at the end, then click this icon to 'tidy' it. (You can also use this to straighten out roads.)\nDypki zajima\nThe first thing you learned was how to drag-and-drop a point of interest. You can also create one by double-clicking on the map: a green circle appears. But how to say whether it's a pub, a church or what? Click 'Tagging' above to find out!\n\nKotry typ dróhi to je?\nTak chětře kaž sy liniju rysował, ty měł podać, štož to je. Je wón hłowna dróha, pućik abo rěka? Kak wón rěka? Su wosebite prawidła (na př. \"žane kolesa\")?\n\nIn OpenStreetMap, you record this using 'tags'. A tag has two parts, and you can have as many as you like. For example, you could add highway | trunk to say it's a major road; highway | residential for a road on a housing estate; or highway | footway for a footpath. If bikes were banned, you could then add bicycle | no. Then to record its name, add name | Market Street.\n\nAtributy jewja so w Potlatch deleka na wobrazowce - klikń na eksistowacu dróhu a budźeš widźeć, kotre atributy ma. Klikń na znamješko \"+\" (naprawo deleka), zo by nowy atribut přidał. Pismik \"x\" pódla kóždeho atributa zniči jón.\n\nMóžeš cyłym pućam atribut připokazać, dypkam na pućach (na př. wrota abo amplu) a dypkam zajima.\nNastajen atributy wužiwać\nZo by započał, móžeš přihotowane sadźby z najpopularnišimi atributami wužiwać.\n\nWubjer puć, klikń potom po symbolach, doniž njenamakaš přihódny. Wubjer potom přihódnu opciju z menija.\n\nThis will fill the tags in. Some will be left partly blank so you can type in (for example) the road name and number.\nJednosměrne dróhi\nYou might want to add a tag like oneway | yes - but how do you say which direction? There's an arrow in the bottom left that shows the way's direction, from start to end. Click it to reverse.\nSwójske atributy wubrać\nWězo njetrjebaš so na standardne atributy wobmjezować. Klikń na tłóčatko \"+\" a móžeš kóždežkuli atributy wužiwać.\n\nYou can see what tags other people use at OSMdoc, and there is a long list of popular tags on our wiki called Map Features. But these are only suggestions, not rules. You are free to invent your own tags or borrow from others.\n\nDokelž daty OpenStreetMap so wužiwaja, zo by so wjele rozdźělnych kartow wutworiło, budźe kóžda karta swójske atributy pokazać (\"rysować\").\nRelacije\nSometimes tags aren't enough, and you need to 'group' two or more ways. Maybe a turn is banned from one road into another, or 20 ways together make up a signed cycle route. You can do this with an advanced feature called 'relations'. Find out more on the wiki.\n\nZmylki anulować\nTo je tłóčatko \"Anulować\" (móžeš tež Z tłóčić) - wono budźe akciju anulować, kotruž sy jako poslednja činił.\n\nYou can 'revert' to a previously saved version of a way or point. Select it, then click its ID (the number at the bottom left) - or press H (for 'history'). You'll see a list of everyone who's edited it, and when. Choose the one to go back to, and click Revert.\n\nJeli sy puć mylnje zničił a to składował, tłóč tastu U (za \"undelete/wobnowić\"). Wšě zničene puće budu so pokazować. Wubjer tón, kotryž chceš; wotewri jón přez kliknjenje na čerwjeny zamk, a składuj kaž přeco.\n\nMysliš, zo něchtó druhi je zmylk činił? Pósćel jemu přećelnu powěsć. Wužij opciju historije (H), zo by jeho mjeno wubrał a klikń potom na \"Póst\".\n\nWužij Inspektor (w meniju \"Rozšěrjeny\") za wužitne informacije wo aktualnym puću abo dypku.\nČaste prašenja\nKak widźu swoje pućne dypki?\nPućne dypki so jenož pokazuja, hdyž kliknješ na \"wobdźěłać\" pódla mjena čary w \"GPS-ćerjach\". Dataja dyrbi pućne dypki kaž tež protokol čary wobsahować - serwer wotpokazuje wšitko, štož ma jenož pućne dypki.\n\nDalše časte prašenja za Potlatch a OpenStreetMap.\n\n\n\nSpěšnišo dźěłać\nČim dale sy pomjeńšił, ćim wjace datow Potlatch dyrbi začitać. Powjetš, prjedy hač kliknješ na \"Wobdźěłać\".\n\nWupiń \"Pisakowe a ručne pokazowaki wužiwać\" (we woknje Opcije) za maksimalnu spěšnosć.\n\nJeli serwer pomału běži, wróć so pozdźišo. Přepytaj wiki za znatymi problemami. Druhdy, kaž na př. po njedźelnišich wječorach, serwery su jara přećežene.\n\nTell Potlatch to memorise your favourite sets of tags. Select a way or point with those tags, then press Ctrl, Shift and a number from 1 to 9. Then, to apply those tags again, just press Shift and that number. (They'll be remembered every time you use Potlatch on this computer.)\n\nTurn your GPS track into a way by finding it in the 'GPS Traces' list, clicking 'edit' by it, then tick the 'convert' box. It'll be locked (red) so won't save. Edit it first, then click the red padlock to unlock when ready to save.\n\nNa čo kliknyć\nKartu ćahnyć, zo by so wokoło sunyła\nDwójce kliknyć, zo by so nowy dypk zajima wutworił.\nJedyn raz kliknyć, zo by so nowy puć zachopił.\nDźeržeć a puć abo dypk zajima ćahnyć, zo by so přesunył.\nHdyž so puć rysuje\nDwójce kliknyć abo zapodawansku tastu tłóčić, zo by so rysowanje skónčiło.\nNa druhi puć kliknyć, zo by so zwisk wutworił.\nNa kónc druheho puća ze stłóčenej tastu Umsch kliknyć, zo by so zwisk wutworił.\nHdyž so puć wuběra\nKlikń na dypk, zo by jón wubrał.Na kónc ze stłóčenej tastu Umsch kliknyć, zo by so nowy dypk zasunył.Na dypk ze stłóčenej tastu Umsch kliknyć, zo by so nowy puć wot tam zachopił.Na druhi puć ze stłóčenej tastu Strg kliknyć, zo by so zwisk wutworił.\n\nTastowe skrótšenki\nB Atribut pozadka přidać\nC Sadźbu změnow začinić\nG GPS-čary pokazać\nH Historiju pokazać\nI Inspektor pokazać\nJ Dypk na puće přizamknyć, kotrež so křizuja\nK Aktualny wuběr blokować/dopušćić\nL Aktualny šěrokostnik/dołhostnik pokazać\nM Wobdźěłanske wokno maksiměrować\nP Paralelny puć wutworić\nR Atributy wospjetować\nS Składować (chibazo wobdźěłuješ live)\nT Do runeje linije/koła přetworić\nU Wobnowić (zničene puće pokazać)\nX Puć do dweju roztřihać\nZ Anulować\n- Dypk jenož z tutoho puća wotstronić\n+ Nowy atribut přidać\n/ Druhi puć wubrać, kotryž tutón dypk wužiwa\nEntf Dypk zničić\n (+Umsch) Cyły puć zničić\n(zapodawanska tasta) Rysowanje linije skónčić\n(Mjezerowa tasta) Dźeržeć a pozadk přesunyć\nEsc Tute wobdźěłanje přetorhnyć\n; ze serwera znowa začitać\n0 Wšě atributy wotstronić\n1-9 Nastajene atributy wubrać\n (+Umsch) Składowane atributy wubrać\n (+S/Strg) Atributy składować\n§ abo ` Wobběh mjez skupinami atributow\n\n" hint_drawmode: Klikń, zo by dypk přidał\nklikń dwójce abo tłóč zapodawansku tastu, zo by liniju dokónčił hint_latlon: "šěrokostnik $1\ndołhostnik $2" hint_loading: daty začitać @@ -89,6 +90,7 @@ hsb: hint_saving: daty składować hint_saving_loading: daty začitać/składować inspector: Inspektor + inspector_duplicate: Duplikat wot inspector_in_ways: Na pućach inspector_latlon: "Šěrokostnik $1\nDołhostnik $2" inspector_locked: Zawrjeny @@ -100,6 +102,7 @@ hsb: inspector_way_connects_to_principal: Zwjazuje z {{PLURAL|one=objektom|two=$1 objektomaj|few=$1 objektami|other=$1 objektami}} $2 a {{PLURAL|one=hinašim objektom|two=$3 hinašimaj objektomaj|few=$3 hinašimi objektami|other=$3 hinašimi objektami}} $4 inspector_way_nodes: $1 sukow inspector_way_nodes_closed: $1 sukow (žačinjenych) + loading: Začituje so... login_pwd: "Hesło:" login_retry: Twoje wužiwarske mjeno njebu spoźnane. Prošu spytaj hišće raz. login_title: Přizjewjenje njemóžno @@ -126,6 +129,9 @@ hsb: option_layer_ooc_25k: "Wulka Britaniska historisce: 1:25k" option_layer_ooc_7th: "Wulka Britaniska historisce: 7th" option_layer_ooc_npe: "Wulka Britaniska historisce: NPE" + option_layer_ooc_scotland: "Zjednoćene kralestwo historisce: Šotiska" + option_layer_os_streetview: "Zjednoćene kralestwo: OS StreetView" + option_layer_streets_haiti: "Haiti: dróhowe mjena" option_layer_tip: Pozadk wubrać option_limitways: Warnować, hdyž so jara wjele datow začituja option_microblog_id: "Mjeno mikrobloga:" @@ -143,6 +149,7 @@ hsb: preset_icon_cafe: Kofejownja preset_icon_cinema: Kino preset_icon_convenience: Miniwiki + preset_icon_disaster: Haiti twarjenje preset_icon_fast_food: Přikuski preset_icon_ferry_terminal: Přewoz preset_icon_fire_station: Wohnjostraža @@ -177,13 +184,19 @@ hsb: prompt_microblog: Powěsć do $1 ($2 zbytne) prompt_revertversion: K staršej składowanej wersiji so wróćić prompt_savechanges: Změny składować - prompt_taggedpoints: Někotre dypki na tutym puću maja atributy. Woprawdźe zničić? + prompt_taggedpoints: Někotre dypki na tutym puću su markěrowane abo w relacijach. Woprawdźe zničić? prompt_track: GPS-čaru do pućow konwertować prompt_unlock: Klikń, zo by so wotewrěło prompt_welcome: Witaj do OpenStreetMap! retry: Znowa spytać revert: Wobroćić save: Składować + tags_backtolist: Wróćo k lisćinje + tags_descriptions: Wopisanja wot '$1' + tags_findatag: Atribut namakać + tags_findtag: Atribut namakać + tags_matching: Popularne atributy za '$1' + tags_typesearchterm: "Zapodaj pytanski wuraz:" tip_addrelation: Relaciji přidać tip_addtag: Nowy atribut přidać tip_alert: Zmylk je wustupił - klikń, zo by sej podrobnosće wobhladał diff --git a/config/potlatch/locales/hu.yml b/config/potlatch/locales/hu.yml index 6525fa908..0748666bd 100644 --- a/config/potlatch/locales/hu.yml +++ b/config/potlatch/locales/hu.yml @@ -26,7 +26,7 @@ hu: action_waytags: vonal címkéinek módosítása advanced: Haladó advanced_close: Módosításcsomag lezárása - advanced_history: Vonal története + advanced_history: Vonal előzményei advanced_inspector: Felügyelő advanced_maximise: Ablak maximalizálása advanced_minimise: Ablak minimalizálása @@ -82,7 +82,7 @@ hu: heading_tagging: Címkézés heading_troubleshooting: Hibaelhárítás help: Súgó - help_html: "Üdvözlünk a Potlatch-ben\nA Potlach egy könnyen használható szerkesztő az OpenStreetMap-hez. Rajzolj utakat, ösvényeket, híres helyeket és üzleteket a GPS felméréseid, műholdképek vagy öreg térképek alapján.\n\nEzek a súgóoldalak végigvezetnek a Potlatch használatának alapjain, és megmutatják, hol találhatsz további információkat. Kattints a fenti fejléc-címekre a kezdéshez.\n\nHa befejezted, csak kattints bárhova a lapon.\n\n\n\nHasznos tudnivalók\nNe másolj más térképekről!\n\nHa az „élő szerkesztés”-t választod, minden változtatásod azonnal adatbázisba kerül, amint megrajzolod őket. Ha nem vagy ilyen magabiztos, válaszd a „szerkesztés mentéssel”-t, így csak akkor lépnek életbe a változtatásaid, ha a „Mentés” gombra kattintasz.\n\nA szerkesztéseid általában egy-két órán belül jelennek meg a térképen (de van, ami egy hétig is eltarthat). Nem látszik minden a térképen – túl zsúfolt lenne. De mivel az OpenStreetMap adatai nyílt forrásúak, mások szabadon készíthetnek más térképeket más szempontok előtérbe helyezésével. Ilyenek az OpenCycleMap vagy a Midnight Commander.\n\nFigyelj rá, hogy egyaránt jól kinéző térkép (rajzolj szép görbéket a kanyaroknál) és diagram (az utak kapcsolódjanak a kereszteződéseknél) a cél.\n\nEmlítettük már, hogy ne másolj más térképekről?\n\n\nTudj meg többet\nPotlatch kézikönyv\nLevelezőlisták\nOnline chat (azonnali segítség)\nInternetes fórum\nKözösségi wiki\nPotlatch forráskód\n\n\n\nElső lépések\nMost, hogy megnyitottad a Potlatch-csot, kattints a „szerkesztés mentéssel”-re a kezdéshez.\n\nSzóval készen állsz a térképrajzolásra. A legkönnyebb kezdés az, ha elhelyezel néhány érdekes helyet (más néven POI-t) a térképen. Ezek lehetnek pubok, templomok, vasútállomások… bármi amit szeretnél.\n\nFogd és vidd\nTo make it super-easy, you'll see a selection of the most common POIs, right at the bottom of the map for you. Putting one on the map is as easy as dragging it from there onto the right place on the map. And don't worry if you don't get the position right first time: you can drag it again until it's right. Note that the POI is highlighted in yellow to show that it's selected.\n\nOnce you've done that, you'll want to give your pub (or church, or station) a name. You'll see that a little table has appeared at the bottom. One of the entries will say \"name\" followed by \"(type name here)\". Do that - click that text, and type the name.\n\nKattints valahova máshova a térképen a POI kijelölésének megszüntetéséhez, és a színes kis panel megjelenik.\n\nKönnyű, nem? Kattints a „Mentés”-re (jobbra lent) ha készen vagy.\nMozgás\nTo move to a different part of the map, just drag an empty area. Potlatch will automatically load the new data (look at the top right).\n\nWe told you to 'Edit with save', but you can also click 'Edit live'. If you do this, your changes will go into the database straightaway, so there's no 'Save' button. This is good for quick changes and mapping parties.\n\nKövetkező lépések\nHappy with all of that? Great. Click 'Surveying' above to find out how to become a real mapper!\n\nFelmérés GPS-szel\nThe idea behind OpenStreetMap is to make a map without the restrictive copyright of other maps. This means you can't copy from elsewhere: you must go and survey the streets yourself. Fortunately, it's lots of fun!\nThe best way to do this is with a handheld GPS set. Find an area that isn't mapped yet, then walk or cycle up the streets with your GPS switched on. Note the street names, and anything else interesting (pubs? churches?) , as you go along.\n\nWhen you get home, your GPS will contain a 'tracklog' recording everywhere you've been. You can then upload this to OpenStreetMap.\n\nThe best type of GPS is one that records to the tracklog frequently (every second or two) and has a big memory. Lots of our mappers use handheld Garmins or little Bluetooth units. There are detailed GPS Reviews on our wiki.\n\nNyomvonal feltöltése\nNow, you need to get your track off the GPS set. Maybe your GPS came with some software, or maybe it lets you copy the files off via USB. If not, try GPSBabel. Whatever, you want the file to be in GPX format.\n\nThen use the 'GPS Traces' tab to upload your track to OpenStreetMap. But this is only the first bit - it won't appear on the map yet. You must draw and name the roads yourself, using the track as a guide.\nNyomvonal használata\nFind your uploaded track in the 'GPS Traces' listing, and click 'edit' right next to it. Potlatch will start with this track loaded, plus any waypoints. You're ready to draw!\n\nYou can also click this button to show everyone's GPS tracks (but not waypoints) for the current area. Hold Shift to show just your tracks.\nMűholdképek használata\nIf you don't have a GPS, don't worry. In some cities, we have satellite photos you can trace over, kindly supplied by Yahoo! (thanks!). Go out and note the street names, then come back and trace over the lines.\n\nIf you don't see the satellite imagery, click the options button and make sure 'Yahoo!' is selected. If you still don't see it, it's probably not available for your city, or you might need to zoom out a bit.\n\nOn this same options button you'll find a few other choices like an out-of-copyright map of the UK, and OpenTopoMap for the US. These are all specially selected because we're allowed to use them - don't copy from anyone else's maps or aerial photos. (Copyright law sucks.)\n\nSometimes satellite pics are a bit displaced from where the roads really are. If you find this, hold Space and drag the background until it lines up. Always trust GPS tracks over satellite pics.\n\nUtak rajzolása\nTo draw a road (or 'way') starting at a blank space on the map, just click there; then at each point on the road in turn. When you've finished, double-click or press Enter - then click somewhere else to deselect the road.\n\nTo draw a way starting from another way, click that road to select it; its points will appear red. Hold Shift and click one of them to start a new way at that point. (If there's no red point at the junction, shift-click where you want one!)\n\nKattints a „Mentés”-re (jobb oldalt alul) ha készen vagy. Ments gyakran, hátha a szervernek problémái támadnak.\n\nNe várd, hogy a változtatásaid azonnal megjelennek a fő térképen. Ez általában egy-két órát vesz igénybe, néhány esetben egy hetet is.\nKereszteződések készítése\nNagyon fontos, hogy ahol két út csatlakozik, legyen egy közös pontjuk (vagy „node”). Az útvonaltervezők ezt használják, hogy tudják hol lehet kanyarodni.\n\nPotlatch takes care of this as long as you are careful to click exactly on the way you're joining. Look for the helpful signs: the points light up blue, the pointer changes, and when you're done, the junction point has a black outline.\nMozgatás és törlés\nÚgy működik, ahogy várható: pont törléséhez válaszd ki, majd nyomd meg a törlés gombot. Egész vonal törléséhez használd a Shift-Törlés kombinációt.\n\nHa át szeretnél helyezni valamit, csak vonszold. (Kattintás után húznod kell egy rövid ideig a vonalat áthelyezés előtt, így nem történhet meg véletlenül.)\nSokkal fejlettebb rajzolás\nIf two parts of a way have different names, you'll need to split them. Click the way; then click the point where it should be split, and click the scissors. (You can merge ways by clicking with Control, or the Apple key on a Mac, but don't merge two roads of different names or types.)\n\nRoundabouts are really hard to draw right. Don't worry - Potlatch can help. Just draw the loop roughly, making sure it joins back on itself at the end, then click this icon to 'tidy' it. (You can also use this to straighten out roads.)\nHasznos helyek\nThe first thing you learned was how to drag-and-drop a point of interest. You can also create one by double-clicking on the map: a green circle appears. But how to say whether it's a pub, a church or what? Click 'Tagging' above to find out!\n\nMilyen út?\nHa megrajzoltál egy vonalat, meg kell adnod mi az. Főút, gyalogút, vagy esetleg egy folyó? Mi a neve? Vannak külön szabályok (például „ketékpárral behajtani tilos”)?\n\nIn OpenStreetMap, you record this using 'tags'. A tag has two parts, and you can have as many as you like. For example, you could add highway | trunk to say it's a major road; highway | residential for a road on a housing estate; or highway | footway for a footpath. If bikes were banned, you could then add bicycle | no. Then to record its name, add name | Market Street.\n\nThe tags in Potlatch appear at the bottom of the screen - click an existing road, and you'll see what tags it has. Click the '+' sign (bottom right) to add a new tag. The 'x' by each tag deletes it.\n\nFelcímkézhetsz teljes vonalakat, azon elhelyezkedő pontokat (pl. kapu, jelzőlámpa), és érdekes helyeket (POI).\nElőre beállított címkék használata\nTo get you started, Potlatch has ready-made presets containing the most popular tags.\n\nVálassz egy vonalat, és nézd végig, hogy találsz-e hozzá megfelelő szimbólumot. Majd válaszd ki a legmegfelelőbb lehetőséget a menüből.\n\nThis will fill the tags in. Some will be left partly blank so you can type in (for example) the road name and number.\nEgyirányú utak\nYou might want to add a tag like oneway | yes - but how do you say which direction? There's an arrow in the bottom left that shows the way's direction, from start to end. Click it to reverse.\nA saját címkéid kiválasztása\nOf course, you're not restricted to just the presets. By using the '+' button, you can use any tags at all.\n\nYou can see what tags other people use at OSMdoc, and there is a long list of popular tags on our wiki called Map Features. But these are only suggestions, not rules. You are free to invent your own tags or borrow from others.\n\nBecause OpenStreetMap data is used to make many different maps, each map will show (or 'render') its own choice of tags.\nKapcsolatok\nSometimes tags aren't enough, and you need to 'group' two or more ways. Maybe a turn is banned from one road into another, or 20 ways together make up a signed cycle route. You can do this with an advanced feature called 'relations'. Find out more on the wiki.\n\nHibák visszavonása\nEz a visszavonás gomb – visszavonja amit utoljára változtattál (vagy használhatod a Z billentyűt)\n\nYou can 'revert' to a previously saved version of a way or point. Select it, then click its ID (the number at the bottom left) - or press H (for 'history'). You'll see a list of everyone who's edited it, and when. Choose the one to go back to, and click Revert.\n\nIf you've accidentally deleted a way and saved it, press U (for 'undelete'). All the deleted ways will be shown. Choose the one you want; unlock it by clicking the red padlock; and save as usual.\n\nÚgy gondolod, hogy valaki más hibát vétett? Küldj neki egy barátságos levelet. Használd a történet gombot (H) a neve kiválasztásához, majd kattints az „e-mail”-re.\n\nUse the Inspector (in the 'Advanced' menu) for helpful information about the current way or point.\nGYIK-ek\nHow do I see my waypoints?\nWaypoints only show up if you click 'edit' by the track name in 'GPS Traces'. The file has to have both waypoints and tracklog in it - the server rejects anything with waypoints alone.\n\nMore FAQs for Potlatch and OpenStreetMap.\n\n\n\nGyorsabb feldolgozás\nThe further out you're zoomed, the more data Potlatch has to load. Zoom in before clicking 'Edit'.\n\nKapcsold ki a „toll és kéz kurzorok használata”-t (a beállítások ablakban) a legjobb sebességhez.\n\nHa a szerver lassú, nézz vissza később. Wiki ellenőrzése ismert hibák után. Néha (például vasárnap esténként) a szerver folyamatosan foglalt.\n\nTell Potlatch to memorise your favourite sets of tags. Select a way or point with those tags, then press Ctrl, Shift and a number from 1 to 9. Then, to apply those tags again, just press Shift and that number. (They'll be remembered every time you use Potlatch on this computer.)\n\nTurn your GPS track into a way by finding it in the 'GPS Traces' list, clicking 'edit' by it, then tick the 'convert' box. It'll be locked (red) so won't save. Edit it first, then click the red padlock to unlock when ready to save.\n\nMire kattints\nVonszold a térképet a mozgatáshoz.\nKattints duplán új POI létrehozásához.\nEgy kattintás új út kezdéséhez.\nKattints és húzd a vonalat vagy POI-t áthelyezéshez.\nHa utat rajzolsz\nDupla kattintás vagy Enter a rajzolás befejezéséhez.\nKattintás egy másik útra kereszteződés készítéséhez.\nShift+kattintás egy másik út végén az összeolvasztáshoz.\nHa egy út ki van jelölve\nKattints egy pontra a kijelöléséhez.\nShift+kattintás az úton új pont beillesztéséhez.\nShift+kattintás egy ponton új út indításához innen.\nCtrl+kattintás másik úton az összeolvasztáshoz.\n\nBillentyűparancsok\nB háttér hozzáadása forrás tag\nC változtatások listájának bezárása\nG GPS nyomvonalak megjelenítése\nH történet megjelenítése\nI Show inspector\nJ kapcsolódási pont az utak kereszteződéséhez\nK aktuális kijelölés rögzítése/rögzítés feloldása\nL aktuális szélességi/hosszúsági fok megjelenítése\nM szerkesztőablakot teljes méretűre\nP párhuzamos út rajzolása\nR címkék ismétlése\nS mentés (hacsak nem szerkesztesz élőben)\nT egyszerűsítés szabályos vonallá/körré\nU visszaállítás (törölt utak megjelenítése)\nX út kettévágása\nZ visszavonás\n- pont eltávolítása csak ebből az útból\n+ új címke hozzáadása\n/ a ponton osztozó másik út kijelölése\nDelete pont törlése\n (+Shift) egész út törlése\nEnter rajzvonal befejezése\nSzóköz háttér megfogása és vonszolása\nEsc szerkesztés megszakítása, újratöltés a szerverről\n0 összes címke eltávolítása\n1-9 előre beállított címkék kiválasztása\n (+Shift) megjegyzett címkék kiválasztása\n (+S/Ctrl) címkék megjegyzése\n$ vagy ` váltás a címkecsoportok között\n\n" + help_html: "Üdvözlünk a Potlatch-ben\nA Potlach egy könnyen használható szerkesztő az OpenStreetMap-hez. Rajzolj utakat, ösvényeket, nevezetes helyeket és üzleteket a GPS felméréseid, műholdképek vagy régi térképek alapján.\n\nEzek a súgóoldalak végigvezetnek a Potlatch használatának alapjain, és megmutatják, hol találhatsz további információkat. Kattints a fenti fejléc-címekre a kezdéshez.\n\nHa befejezted, csak kattints bárhova a lapon.\n\n\n\nHasznos tudnivalók\nNe másolj más térképekről!\n\nHa az „Élő szerkesztés”-t választod, minden változtatásod azonnal az adatbázisba kerül, amint megrajzolod azokat. Ha nem vagy ilyen magabiztos, válaszd a „Szerkesztés mentéssel”-t, így csak akkor lépnek életbe a változtatásaid, ha a „Mentés” gombra kattintasz.\n\nA szerkesztéseid általában egy-két órán belül jelennek meg a térképen (de van, ami egy hétig is eltarthat). Nem látszik minden a térképen – túl zsúfolt lenne. De mivel az OpenStreetMap adatai nyílt forrásúak, mások szabadon készíthetnek más térképeket más szempontok előtérbe helyezésével. Ilyenek az OpenCycleMap vagy a Midnight Commander.\n\nFigyelj rá, hogy egyaránt jól kinéző térkép (rajzolj szép görbéket a kanyaroknál) és diagram (az utak kapcsolódjanak a kereszteződéseknél) a cél.\n\nEmlítettük már, hogy ne másolj más térképekről?\n\n\nTudj meg többet\nPotlatch kézikönyv\nLevelezőlisták\nOnline chat (azonnali segítség)\nInternetes fórum\nKözösségi wiki\nPotlatch forráskód\n\n\n\nElső lépések\nMost, hogy megnyitottad a Potlatch-ot, kattints a „Szerkesztés mentéssel”-re a kezdéshez.\n\nSzóval készen állsz a térképrajzolásra. A legkönnyebb kezdés az, ha elhelyezel néhány érdekes helyet (más néven POI-t) a térképen. Ezek lehetnek kocsmák, templomok, vasútállomások… bármi, amit szeretnél.\n\nFogd és vidd\nAnnak érdekében, hogy a lehető legegyszerűbb legyen, rendelkezésre áll egy válogatás a leggyakoribb POI-kból. Térképre helyezésük olyan egyszerű, hogy csak fogd meg az egyiket, és helyezd a térkép megfelelő helyére. És ne aggódj, ha nem találod el a helyes pozíciót elsőre: megfoghatod újra, amíg jó nem lesz. Ne feledd, hogy a POI sárgával ki van emelve, ami jelzi, ki van jelölve.\n\nMiután ezzel megvagy, szeretnél megadni a kocsmának (vagy templomnak, állomásnak) egy nevet. Látni fogod, hogy megjelenik egy kis táblázat alul. A bejegyzések egyikében „name” után „(type name here)” szerepel. Kattints erre a szövegre, és írd be a nevet.\n\nKattints valahova máshova a térképen a POI kijelölésének megszüntetéséhez, és visszajön a színes kis panel.\n\nKönnyű, nem? Kattints a „Mentés”-re (jobbra lent) ha készen vagy.\nMozgatás\nAhhoz, hogy mozogj a térkép egy eltérő részére, csak húzz egy üres területet. A Potlatch automatikusan be fogja tölteni az új adatokat (nézd a jobb felső sarkot).\n\nÍrtuk a „Szerkesztés mentéssel”-t, de szintén kattinthatsz az „Élő szerkesztés”-re. Ha ezt teszed, a változtatásaid azonnal az adatbázisba kerülnek, ezért nincs „Mentés” gomb. Ez gyors változtatásokhoz és mapping partikhoz jó.\n\nKövetkező lépések\nÖrülsz mindennek? Remek! Kattints a „Felmérés”-re fent, hogy megtudd, hogyan lehetsz igazi térképező!\n\nFelmérés GPS-szel\nAz OpenStreetMap alapötlete egy olyan térkép készítése, amely nem tartalmazza más térképek szerzői jogi megkötéseit. Ez azt jelenti, hogy nem másolhatsz máshonnan: neked kell menni és felmérni az utcákat saját magad. Szerencsére ez nagyon szórakoztató! Ennek a legjobb módja, ha kézi GPS készülékkel teszed ezt. Keress egy területet, amit még nem térképeztek fel, aztán járd be gyalog vagy biciklivel az utcákat bekapcsolt GPS-szel. Jegyezd fel az utcaneveket és minden más érdekeset (kocsmák? templomok?) az út mentén.\n\nAmikor hazaérsz, a GPS-ed tartalmazni fog egy nyomvonalnaplót, ami rögzített mindenütt, amerre voltál. Ezután feltöltheted ezt az OpenStreetMapra.\n\nA legjobb GPS típus az, amelyik gyakran (egy vagy két másodpercenként) rögzít a nyomvonalra, és nagy memóriája van. Sok térképezőnk kézi Garmint vagy kis Bluetooth egységet használ. Vannak részletes GPS értékelések a wikiben.\n\nNyomvonal feltöltése\nMost át kell töltened a nyomvonaladat a GPS készülékről. Lehet, hogy a GPS-edhez adtak szoftvert, vagy lehetővé teszi, hogy átmásold a fájlokat USB-n keresztül. Ha nem, próbáld a GPSBabelt. Mindenesetre azt szeretnéd, hogy a fájl GPX formátumú legyen.\n\nEzután használd a „Nyomvonalak” fület, hogy feltöltsd a nyomvonaladat az OpenStreetMapra. De ez csak az első lépés - nem jelenik még meg a térképen. Meg kell rajzolnod és el kell nevezned az utakat saját magad a nyomvonalat, mint vezetővonalat használva.\nNyomvonal használata\nKeresd meg a feltöltött nyomvonaladat a „Nyomvonalak” listában, és kattints a „szerkesztés”-re jobbra mellette. A Potlatch elindul ezzel a nyomvonallal és annak útpontjaival. Készen állsz a rajzoláshoz!\n\nKattinthatsz erre a gombra is, hogy megtekintsd mások GPS nyomvonalát (de nem útpontjait) az aktuális területen. Csak a saját nyomvonalaid megtekintéséhez tartsd lenyomva a Shiftet.\nMűholdképek használata\nHa nincs GPS-ed, ne aggódj. Néhány városban vannak műholdfotóink a Yahoo! által (köszönjük!), amiken nyomkövethetsz. Menj ki, és jegyezd fel az utcaneveket, aztán gyere vissza, és nyomkövesd a vonalakat.\n\nHa nem látsz műholdfelvételeket, kattints a beállítások gombra, és győződj meg róla, hogy a „Yahoo!” van kiválasztva. Ha még mindig nem látod, akkor valószínűleg nem érhető el a városodban, vagy távolítanod kell egy kicsit.\n\nUgyanezen a beállítások gombon találhatsz néhány egyéb választást, mint például közkincs térképet az Egyesült Királyságról és OpenTopoMap-ot az USA-hoz. Ezek mindegyike különlegesen választott, mert megengedjük a használatukat - ne másolj bármely más térképről vagy légifotókról. (Szerzői jogi szívás.)\n\nNéha a műholdképek egy kicsit elmozdultak onnan, ahol az utak valójában vannak. Ha ilyennel találkozol, tartsd lenyomva a szóközt, és vonszold a hátteret addig, amíg megfelelő helyre nem kerül. A GPS nyomvonalak mindig megbízhatóbbak a műholdképeknél.\n\nUtak rajzolása\nÚt (vagy vonal) rajzolása egy üres helytől kezdve a térképen: csak kattints oda, aztán minden egyes pontnál az út mentén. Amikor befejezted, kattints duplán, vagy nyomj Entert - majd az út kijelölésének megszüntetéséhez kattints valahova máshova.\n\nVonal rajzolása egy másik vonaltól kezdve: kattints erre az útra a kijelöléséhez; a pontjai pirossal jelennek meg. Tartsd lenyomva a Shift billentyűt, és kattints az egyik pontra új vonal kezdéséhez attól a ponttól. (Ha nincsenek piros pontok a kereszteződéseknél, akkor shift+kattintás, ahová szeretnél egyet!)\n\nKattints a „Mentés”-re (jobb oldalt alul), ha készen vagy. Ments gyakran, hátha a szervernek problémái támadnak.\n\nNe várd, hogy a változtatásaid azonnal megjelennek a fő térképen. Ez általában egy-két órát vesz igénybe, néhány esetben egy hetet is.\nKereszteződések készítése\nNagyon fontos, hogy ahol két út csatlakozik, legyen egy közös pontjuk. Az útvonaltervezők ezt használják, hogy tudják, hol lehet kanyarodni.\n\nA Potlatch mindaddig ügyel erre, amíg vigyázol arra, hogy pontosan arra a vonalra kattints, amelyiket csatlakoztatod. Figyeld a segítő jeleket: a pontok kék színűek lesznek, az egérmutató megváltozik, és amikor kész vagy, a kereszteződési pont egy fekete körvonalat kap.\nMozgatás és törlés\nÚgy működik, ahogy várható: pont törléséhez jelöld ki, majd nyomd meg a Delete billentyűt. Egész vonal törléséhez használd a Shift+Delete kombinációt.\n\nHa át szeretnél helyezni valamit, csak vonszold. (Kattintás után tartanod kell a vonalat egy rövid ideig az áthelyezés előtt, így nem történhet meg véletlenül.)\nHaladó rajzolás\nHa egy vonal két részének eltérő a neve, akkor ketté kell vágnod azt. Kattints a vonalra, majd kattints arra a pontra, ahol a vonalat ketté kell vágni, és kattints az ollóra. (Egyesíthetsz vonalakat Ctrl (Mac esetén Apple billentyű)+kattintással, de ne egyesíts két eltérő nevű vagy típusú utat.)\n\nKörforgalmakat igazán nehéz jól megrajzolni. Ne aggódj - a Potlatch tud segíteni. Csak rajzold meg durván a kört, győződj meg róla, hogy visszacsatlakozik önmagába a végén, majd a rendbetételéhez kattints erre az ikonra. (Ezt használhatod utak kiegyenesítéséhez is.)\nÉrdekes helyek\nAz első dolog, amit megtanultál az az, hogy hogyan fogj és vigyél egy érdekes helyet. Szintén készíthetsz egyet duplán kattintva a térképre: megjelenik egy zöld kör. De hogyan lehet megmondani, hogy ez egy kocsma, templom vagy mi? Kattints a „Címkézés”-re fent, hogy megtudd!\n\nMilyen típusú az út?\nHa megrajzoltál egy vonalat, meg kell adnod, mi az. Főút, gyalogút vagy esetleg egy folyó? Mi a neve? Vannak külön szabályok (pl. „kerékpárral behajtani tilos”)?\n\nAz OpenStreetMapban „címkék” használatával rögzítheted ezt. Egy címke két részből áll, és annyit használsz, amennyit csak szeretnél. Például megadhatod a highway | trunk címkét, hogy jelezd, ez egy fő út; a highway | residential címkét lakóövezeti utakhoz; vagy a highway | footway címkét gyalogutakhoz. Ha kerékpárral behajtani tilos, akkor megadhatod a bicycle | no címkét. Ezután rögzítheted a nevét a name | Market Street címke megadásával.\n\nA címkék a Potlatch-ban a képernyő alján jelennek meg - kattints egy létező útra, és látni fogod, milyen címkéi vannak. Új címke hozzáadásához kattints a „+” jelre (jobbra lent). Az „x” címkénként töröl.\n\nFelcímkézhetsz teljes vonalakat, azon elhelyezkedő pontokat (pl. kapu, jelzőlámpa), és érdekes helyeket (POI).\nElőre beállított címkék használata\nKezdéshez a Potlatch rendelkezik sablonokkal, amelyek tartalmazzák a legnépszerűbb címkéket.\n\nJelölj ki egy vonalat, majd kattintsd végig a szimbólumokat, amíg nem találsz egy megfelelőt. Aztán válaszd ki a legmegfelelőbb lehetőséget a menüből.\n\nEz kitölti a címkéket. Néhány részben üres marad, így beírhatod (például) az út nevét és számát.\nEgyirányú utak\nLehet, hogy meg szeretnél adni egy oneway | yes címkét - de hogy adod meg, hogy melyik irányba? Van egy nyíl a bal alsó sarokban, ami mutatja a vonal irányát a kezdetétől a végéig. Kattints rá a megfordításhoz.\nA saját címkéid kiválasztása\nTermészetesen nem vagy korlátozva a sablonokra. A „+” gomb használatával bármilyen címkét használhatsz.\n\nAz OSMdocon láthatod, hogy mások milyen címkéket használnak, és van egy hosszú lista a népszerű címkékről a wikiben, amit Térképelemeknek hívnak. De ezek csak javaslatok, nem szabályok. Szabadon kitalálhatsz saját címkéket, vagy kölcsönözhetsz másoktól.\n\nMivel az OpenStreetMap adatait sok különböző térkép használja, minden egyes térkép a címkék egy sajátos választékát jeleníti meg (vagy „rendereli”).\nKapcsolatok\nNéha a címkék nem elegendőek, és szükséded van partly „csoportosítani” kettő vagy több vonalat. Például tilos bekanyarodni egyik útról a másikra, vagy 20 vonal együttesen alkot egy jelzett kerékpárutat. Ezt egy haladó jellemzővel, úgynevezett „kapcsolat”-tal teheted meg. Tudj meg többet a wikiben.\n\nHibák visszavonása\nEz a visszavonás gomb (vagy használhatod a Z billentyűt is) – visszavonja azt, amit utoljára változtattál.\n\nVisszaállíthatsz egy vonalat vagy pontot egy előzőleg mentett változatra. Jelöld ki, aztán kattints az azonosítójára (a szám a bal alsó sarokban) - vagy nyomd meg a H billentyűt (az előzményekhez). Látni fogsz egy listát, amin mindenki szerepel, aki szerkesztette azt, és az is, hogy mikor. Válaszd ki az egyiket, amelyikre vissza szeretnél állni, és kattints a Visszaállításra.\n\nHa véletlenül töröltél egy vonalat és mentetted, nyomd meg az U billentyűt (a visszaállításhoz). Minden törölt vonal megjelenik. Válaszd ki azt, amelyiket vissza szeretnéd állítani; oldd fel a piros lakatra kattintva; és mentsd a szokásos módon.\n\nÚgy gondolod, hogy valaki más hibát vétett? Küldj neki egy barátságos levelet. Használd a történet gombot (H) a neve kiválasztásához, majd kattints az „e-mail”-re.\n\nHasználd a Felügyelőt (a „Haladó” menüben) hasznos információkért az aktuális vonalról vagy pontról.\nGYIK\nHogyan láthatom az útpontjaimat?\nAz útpontok csak akkor látszanak, ha a „szerkesztés”-re kattintasz a nyomvonal neve mellett a „Nyomvonalak” listájában. A fájlnak az útpontokat és a nyomvonalnaplót is tartalmaznia kell - a szerver elutasít mindent, amiben egyedül útpontok vannak.\n\nTovábbi GYIK a Potlatchhoz és az OpenStreetMaphoz.\n\n\n\nGyorsabb feldolgozás\nMinél inkább távolítasz, annál több adatot kell a Potlatch-nak betöltenie. Közelíts, mielőtt a „Szerkesztés”-re kattintasz.\n\nA legjobb sebességhez kapcsold ki a „toll és kéz kurzorok használata”-t (a beállítások ablakban).\n\nHa a szerver lassú, nézz vissza később. Ellenőrizd a wikit ismert problémák után. Néha (például vasárnap esténként) a szerver folyamatosan foglalt.\n\nAdd meg a Potlatch-nak, hogy megjegyezze kedvenc címkecsomagjaidat. Jelölj ki egy vonalat vagy pontot ezekkel a címkékkel, aztán nyomd meg a Ctrl, Shift billentyűt és egy számot 1-től 9-ig. Ezután, hogy alkalmazd ezeket a címkéket újra, csak nyomd meg a Shift billentyűt és ezt a számot. (Ezek megjegyzésre kerülnek minden alkalommal, amikor a Potlatch-ot használod ezen a számítógépen.)\n\nGPS nyomvonalad vonallá alakításához keresd meg a „Nyomvonalak” listájában, kattints a „szerkesztés”-ére, aztán jelöld be a konvertálás jelölőnégyzetet. Zárolt (piros) lesz, így nem kerül mentésre. Először szerkeszd, aztán kattints a piros lakatra a feloldáshoz, amikor készen áll a mentésre.\n\nMire kattints\nVonszold a térképet a mozgatáshoz.\nKattints duplán új POI létrehozásához.\nEgy kattintás új vonal kezdéséhez.\nKattints és húzd a vonalat vagy POI-t áthelyezéshez.\nHa vonalat rajzolsz\nDupla kattintás vagy Enter a rajzolás befejezéséhez.\nKattintás egy másik vonalra kereszteződés készítéséhez.\nShift+kattintás egy másik vonal végén az egyesítéshez.\nHa egy vonal ki van jelölve\nKattints egy pontra a kijelöléséhez.\nShift+kattintás a vonalon új pont beillesztéséhez.\nShift+kattintás egy ponton új vonal indításához innen.\nCtrl+kattintás másik vonalon az egyesítéshez.\n\nGyorsbillentyűk\nB háttérforrás címke hozzáadása\nC módosításcsomag lezárása\nG GPS nyomvonalak megjelenítése\nH előzmények megjelenítése\nI felügyelő megjelenítése\nJ kapcsolódási pont vonalak kereszteződéséhez\nK aktuális kijelölés zárolása/feloldása\nL aktuális szélességi/hosszúsági fok megjelenítése\nM szerkesztőablak teljes méretűvé változtatása\nP párhuzamos vonal rajzolása\nR címkék ismétlése\nS mentés (hacsak nem élőben szerkesztesz)\nT egyszerűsítés szabályos vonallá/körré\nU visszaállítás (törölt vonalak megjelenítése)\nX vonal kettévágása\nZ visszavonás\n- pont eltávolítása csak ebből a vonalból\n+ új címke hozzáadása\n/ a ponton osztozó másik vonal kijelölése\nDelete pont törlése\n (+Shift) egész vonal törlése\nEnter vonal rajzolásának befejezése\nSzóköz háttér megfogása és vonszolása\nEsc szerkesztés megszakítása, újratöltés a szerverről\n0 összes címke eltávolítása\n1-9 előre beállított címkék kiválasztása\n (+Shift) megjegyzett címkék kiválasztása\n (+S/Ctrl) címkék megjegyzése\n$ vagy ` váltás a címkecsoportok között\n\n" hint_drawmode: kattintás pont hozzáadásához\ndupla kattintás/Enter\na vonal befejezéséhez hint_latlon: "szélesség $1\nhosszúság $2" hint_loading: adatok betöltése @@ -132,6 +132,7 @@ hu: option_layer_ooc_7th: "UK történelmi: 7th" option_layer_ooc_npe: "UK történelmi: NPE" option_layer_ooc_scotland: "UK történelmi: Skócia" + option_layer_os_streetview: "UK: OS utcanézet" option_layer_streets_haiti: "Haiti: utcanevek" option_layer_tip: Válaszd ki a megjelenítendő hátteret option_limitways: Figyelmeztetés sok adat betöltése előtt @@ -176,7 +177,7 @@ hu: prompt_changesetcomment: "Adj leírást a módosításaidhoz:" prompt_closechangeset: $1 módosításcsomag lezárása prompt_createparallel: Párhuzamos vonal készítése - prompt_editlive: Szerk. élőben + prompt_editlive: Élő szerk. prompt_editsave: Szerk. mentéssel prompt_helpavailable: Új vagy? Segítségért nézd a jobb alsó sarkot. prompt_launch: Külső URL indítása @@ -185,7 +186,7 @@ hu: prompt_microblog: "Küldés ide: $1 ($2 van hátra)" prompt_revertversion: "Korábbi mentett változat visszaállítása:" prompt_savechanges: Módosítások mentése - prompt_taggedpoints: Ezen a vonalon van néhány címkézett pont. Biztosan törlöd? + prompt_taggedpoints: Ezen a vonalon van néhány pont, amely címkézett, vagy kapcsolat tagja. Biztosan törlöd? prompt_track: GPS nyomvonal átalakítása vonalakká prompt_unlock: Kattints a feloldáshoz prompt_welcome: Üdvözlünk az OpenStreetMapon! @@ -195,6 +196,7 @@ hu: tags_backtolist: Vissza a listához tags_descriptions: "'$1' leírása" tags_findatag: Címke keresése + tags_findtag: Címke keresése tags_matching: "Népszerű címkék, amelyek illeszkednek a következőre: '$1'" tags_typesearchterm: "Írj be egy szót a kereséshez:" tip_addrelation: Hozzáadás kapcsolathoz diff --git a/config/potlatch/locales/ia.yml b/config/potlatch/locales/ia.yml index b36f52c5d..b5383f1fc 100644 --- a/config/potlatch/locales/ia.yml +++ b/config/potlatch/locales/ia.yml @@ -130,6 +130,7 @@ ia: option_layer_ooc_7th: "RU historic: 7me" option_layer_ooc_npe: "RU historic: NPE" option_layer_ooc_scotland: "RU historic: Scotia" + option_layer_os_streetview: "Regno Unite: OS StreetView" option_layer_streets_haiti: "Haiti: nomines de stratas" option_layer_tip: Selige le fundo a monstrar option_limitways: Advertir si multe datos debe esser cargate @@ -183,7 +184,7 @@ ia: prompt_microblog: Publicar in $1 (il remane $2) prompt_revertversion: "Reverter a un version previemente salveguardate:" prompt_savechanges: Salveguardar modificationes - prompt_taggedpoints: Alcunes del punctos in iste via es etiquettate. Realmente deler? + prompt_taggedpoints: Alcunes del punctos in iste via ha etiquettas o relationes. Realmente deler? prompt_track: Converter tracia GPS in vias prompt_unlock: Clicca pro disblocar prompt_welcome: Benvenite a OpenStreetMap! @@ -193,6 +194,7 @@ ia: tags_backtolist: Retornar al lista tags_descriptions: Descriptiones de '$1' tags_findatag: Cercar un etiquetta + tags_findtag: Cercar etiquetta tags_matching: Etiquettas popular correspondente a '$1' tags_typesearchterm: "Entra un parola a cercar:" tip_addrelation: Adder a un relation diff --git a/config/potlatch/locales/it.yml b/config/potlatch/locales/it.yml index db521f4bb..36224e77b 100644 --- a/config/potlatch/locales/it.yml +++ b/config/potlatch/locales/it.yml @@ -82,7 +82,7 @@ it: heading_tagging: Etichettamento heading_troubleshooting: Diagnostica dei problemi help: Aiuto - help_html: "Benvenuto su Potlatch\nPotlatch è un programma facile da usare per apportare delle modifiche a OpenStreetMap. Disegna strade, percorsi, marcatori territoriali e negozi partendo dalle proprie rilevazioni GPS, da immagini satellitari oppure da vecchie mappe.\n\nQueste pagine di aiuto ti guideranno attraverso i concetti di base nell'utilizzo di Potlatch, e ti dirà dove trovare maggiori informazioni. Clicca sulle intestazioni che trovi qui sopra per iniziare.\n\nQuando hai finito basta cliccare in qualche altro punto della pagina.\n\n\n\nElementi utili da conoscere\nNon copiare dalle altre mappe!\n\nSe selezioni 'Modifica online' ogni tua modifica sarà inviata immediatamente al database non appena la disegni. Se non sei così sicuro, scegli 'Modifica offline', e le modifiche saranno inviate solamente quando premerai su 'Salva'.\n\nLe modifiche che fai alla mappa vengono visualizzate dopo una o due ore (per alcune cose serve una settimana). Non tutto viene visualizzato nella mappa, la renderebbe troppo complicata. Ma visto che i dati di OpenStreetMap sono open source, chiunque è libero di creare altre mappe che mostrano diverse caratteristiche. Come OpenCycleMap oppure Midnight Commander.\n\nRicorda che è sia una mappa dal bell'aspetto (quindi disegna bene le curve) che un diagramma (assicurati che le strade siano collegate agli incroci).\n\nAbbiamo accennato al fatto di non copiare da altre mappe?\n\n\nMaggiori informazioni\nManuale Potlatch\nListe di distribuzione\nChat in linea (aiuto dal vivo)\nForum web\nWiki della comunità\nSorgenti di Potlatch\n\n\n\nPer iniziare\nOra che hai aperto Potlatch, clicca su 'Modifica offline' per iniziare.\n\nOra sei pronto a disegnare la mappa. La cosa più facile è iniziare inserendo dei PDI (Punti Di Interesse) nella mappa. Potrebbero essere bar, chiese, stazioni ferroviarie... qualsiasi cosa ti piaccia.\n\nClicca e trascina\nTo make it super-easy, you'll see a selection of the most common POIs, right at the bottom of the map for you. Putting one on the map is as easy as dragging it from there onto the right place on the map. And don't worry if you don't get the position right first time: you can drag it again until it's right. Note that the POI is highlighted in yellow to show that it's selected.\n\nOnce you've done that, you'll want to give your pub (or church, or station) a name. You'll see that a little table has appeared at the bottom. One of the entries will say \"name\" followed by \"(type name here)\". Do that - click that text, and type the name.\n\nClick somewhere else on the map to deselect your POI, and the colourful little panel returns.\n\nFacile, non è vero? Clicca su 'Salva' (in basso a destra) quando hai finito.\nSpostarsi\nPer spostarsi su una parte differente della mappa, basta trascinarla in modo da visualizzare un'area vuota. Potlatch caricherà automaticamente i nuovi dati (guarda in alto a destra).\n\nWe told you to 'Edit with save', but you can also click 'Edit live'. If you do this, your changes will go into the database straightaway, so there's no 'Save' button. This is good for quick changes and mapping parties.\n\nPassi successivi\nHappy with all of that? Great. Click 'Surveying' above to find out how to become a real mapper!\n\nRilevamento con un GPS\nThe idea behind OpenStreetMap is to make a map without the restrictive copyright of other maps. This means you can't copy from elsewhere: you must go and survey the streets yourself. Fortunately, it's lots of fun!\nThe best way to do this is with a handheld GPS set. Find an area that isn't mapped yet, then walk or cycle up the streets with your GPS switched on. Note the street names, and anything else interesting (pubs? churches?) , as you go along.\n\nQuando ritorni a casa, il tuo GPS conterrà una registrazione dei punti geografici dove sei stato. Puoi quindi caricarli su OpenStreetMap.\n\nThe best type of GPS is one that records to the tracklog frequently (every second or two) and has a big memory. Lots of our mappers use handheld Garmins or little Bluetooth units. There are detailed GPS Reviews on our wiki.\n\nCaricamento dei tuoi tracciati\nNow, you need to get your track off the GPS set. Maybe your GPS came with some software, or maybe it lets you copy the files off via USB. If not, try GPSBabel. Whatever, you want the file to be in GPX format.\n\nThen use the 'GPS Traces' tab to upload your track to OpenStreetMap. But this is only the first bit - it won't appear on the map yet. You must draw and name the roads yourself, using the track as a guide.\nUtilizzo dei tuoi tracciati\nFind your uploaded track in the 'GPS Traces' listing, and click 'edit' right next to it. Potlatch will start with this track loaded, plus any waypoints. You're ready to draw!\n\nPuoi anche cliccare su questo pulsante per visualizzare i tracciati GPS di chiunque (ma non i punti dei percorsi) per l'area corrente. Tieni premuto Shift per visualizzare soltanto i tuoi tracciati.\nUtilizzo di immagini satellitari\nIf you don't have a GPS, don't worry. In some cities, we have satellite photos you can trace over, kindly supplied by Yahoo! (thanks!). Go out and note the street names, then come back and trace over the lines.\n\nIf you don't see the satellite imagery, click the options button and make sure 'Yahoo!' is selected. If you still don't see it, it's probably not available for your city, or you might need to zoom out a bit.\n\nOn this same options button you'll find a few other choices like an out-of-copyright map of the UK, and OpenTopoMap for the US. These are all specially selected because we're allowed to use them - don't copy from anyone else's maps or aerial photos. (Copyright law sucks.)\n\nSometimes satellite pics are a bit displaced from where the roads really are. If you find this, hold Space and drag the background until it lines up. Always trust GPS tracks over satellite pics.\n\nDisegno dei percorsi\nTo draw a road (or 'way') starting at a blank space on the map, just click there; then at each point on the road in turn. When you've finished, double-click or press Enter - then click somewhere else to deselect the road.\n\nTo draw a way starting from another way, click that road to select it; its points will appear red. Hold Shift and click one of them to start a new way at that point. (If there's no red point at the junction, shift-click where you want one!)\n\nClicca 'Salva' (in basso a destra) quando hai fatto. Salva frequentemente in caso di problemi col server.\n\nNon aspettarti di vedere apportate le tue modifiche istantaneamente sulla mappa principale. Di solito bisogna attendere una o due ore, altre volte fino ad una settimana.\nCreazione degli incroci\nE' molto importate che nel punto in cui due strade (o 'way')si incrociano ci sia un punto (o 'nodo') condiviso da entrambe. I navigatori utilizzano questo punto per sapere dove svoltare.\n\nPotlatch si occupa di questo, ma tu devi essere attendo a cliccare esattamente sulla 'way' che stai collegando. Attento alle indicazioni visive: i nodi sulla way diventano blu, il puntatore cambia e una volta fatto il nodo ha un quadrato nero attorno.\nSpostamento ed eliminazione\nFunziona proprio come ti aspetteresti. Per cancellate un nodo selezionalo e premi \"Canc\". Per cancellare l'intera way premi \"Shift-Canc\"\n\nPer spostare qualcosa, semplicemente trascinalo. (Per trascinare un'intera \"way\" devi mantenere cliccato per un pò per evitare che venga fatto accidentalmente).\nDisegno avanzato\nIf two parts of a way have different names, you'll need to split them. Click the way; then click the point where it should be split, and click the scissors. (You can merge ways by clicking with Control, or the Apple key on a Mac, but don't merge two roads of different names or types.)\n\nRoundabouts are really hard to draw right. Don't worry - Potlatch can help. Just draw the loop roughly, making sure it joins back on itself at the end, then click this icon to 'tidy' it. (You can also use this to straighten out roads.)\nPDI (Punti Di Interesse)\nThe first thing you learned was how to drag-and-drop a point of interest. You can also create one by double-clicking on the map: a green circle appears. But how to say whether it's a pub, a church or what? Click 'Tagging' above to find out!\n\nChe tipo di strada è?\nQuando hai disegnato una way, dovresti dire di cosa si tratta. E' una strada principale, un percorso pedonale o un fiume? Come si chiama? Ha regole particolari (esempio: \"no bicycles\")?\n\nIn OpenStreetMap, you record this using 'tags'. A tag has two parts, and you can have as many as you like. For example, you could add highway | trunk to say it's a major road; highway | residential for a road on a housing estate; or highway | footway for a footpath. If bikes were banned, you could then add bicycle | no. Then to record its name, add name | Market Street.\n\nThe tags in Potlatch appear at the bottom of the screen - click an existing road, and you'll see what tags it has. Click the '+' sign (bottom right) to add a new tag. The 'x' by each tag deletes it.\n\nPuoi applicare etichette all'intera 'way', a nodi sulla 'way' (una barriera o un semaforo) e a PDI (Punto Di Interesse).\nUtilizzo delle etichette preimpostate\nPer farti iniziare, Potlatch possiede dei gruppi preimpostati pronti all'uso contenenti le etichette più utilizzate.\n\nSelect a way, then click through the symbols until you find a suitable one. Then, choose the most appropriate option from the menu.\n\nThis will fill the tags in. Some will be left partly blank so you can type in (for example) the road name and number.\nStrade a senso unico\nYou might want to add a tag like oneway | yes - but how do you say which direction? There's an arrow in the bottom left that shows the way's direction, from start to end. Click it to reverse.\nScelta delle proprie etichette\nOvviamente non sei limitato alle preimpostate. Cliccando '+' puoi aggiungere qualunque etichetta.\n\nYou can see what tags other people use at OSMdoc, and there is a long list of popular tags on our wiki called Map Features. But these are only suggestions, not rules. You are free to invent your own tags or borrow from others.\n\nBecause OpenStreetMap data is used to make many different maps, each map will show (or 'render') its own choice of tags.\nRelazioni\nSometimes tags aren't enough, and you need to 'group' two or more ways. Maybe a turn is banned from one road into another, or 20 ways together make up a signed cycle route. You can do this with an advanced feature called 'relations'. Find out more on the wiki.\n\nAnnullamento degli sbagli\nQuesto è il pulsante di annullamento (puoi premere anche Z) - annullerà l'ultima cosa che hai fatto.\n\nYou can 'revert' to a previously saved version of a way or point. Select it, then click its ID (the number at the bottom left) - or press H (for 'history'). You'll see a list of everyone who's edited it, and when. Choose the one to go back to, and click Revert.\n\nIf you've accidentally deleted a way and saved it, press U (for 'undelete'). All the deleted ways will be shown. Choose the one you want; unlock it by clicking the red padlock; and save as usual.\n\nPensi che qualcun'altro abbia fatto un errore? Inviagli un messaggio amichevole. Usa la cronologia (H) per selezionarne il nome, poi clicca 'Posta'.\n\nUse the Inspector (in the 'Advanced' menu) for helpful information about the current way or point.\nDomande frequenti (FAQ)\nHow do I see my waypoints?\nWaypoints only show up if you click 'edit' by the track name in 'GPS Traces'. The file has to have both waypoints and tracklog in it - the server rejects anything with waypoints alone.\n\nMore FAQs for Potlatch and OpenStreetMap.\n\n\n\nLavoro più veloce\nThe further out you're zoomed, the more data Potlatch has to load. Zoom in before clicking 'Edit'.\n\nTurn off 'Use pen and hand pointers' (in the options window) for maximum speed.\n\nIf the server is running slowly, come back later. Check the wiki for known problems. Some times, like Sunday evenings, are always busy.\n\nTell Potlatch to memorise your favourite sets of tags. Select a way or point with those tags, then press Ctrl, Shift and a number from 1 to 9. Then, to apply those tags again, just press Shift and that number. (They'll be remembered every time you use Potlatch on this computer.)\n\nTurn your GPS track into a way by finding it in the 'GPS Traces' list, clicking 'edit' by it, then tick the 'convert' box. It'll be locked (red) so won't save. Edit it first, then click the red padlock to unlock when ready to save.\n\nCosa cliccare\n\nTrascina la mappa per spostarti.\nDoppio-click per creare un nuovo PDI (Punto Di Interesse).\nSingolo-click per iniziare un nuovo percorso.\nClicca e trascina un percorso o PDI per spostarlo.\nQuando si disegna un percorso\n\nDoppio-click oppure premi Enter per finire di disegnare.\nCliccare un altro percorso per creare un incrocio.\nShift-click sulla fine di un altro percorso per unire.\nQuando è selezionato un percorso\n\nClicca un punto per selezionarlo.\nShift-click sul percorso per inserire un nuovo punto.\nShift-click un punto per iniziare un nuovo percorso da lì.\nControl-click su un altro percorso per unire.\n\nScorciatoie da tastiera\nB Aggiunge l'etichetta della sorgente dello sfondo\nC Chiude il gruppo di modifiche\nG Mostra i tracciati GPS\nH Mostra lo storicoI Mostra l'ispettore\nJ Unisce il punto ai percorsi che si incrociano\nK Blocca/sblocca la selezione corrente\nL Mostra la latitudine/longitudine corrente\nM Massimizza la finestra di modifica\nP Crea un percorso parallelo\nR Ripeti le etichette\nS Salva (senza la modalità di modifica dal vivo)\nT Disponi su una linea/cerchio\nU Annulla eliminazione (mostra i percorsi eliminati)\nX Taglia il percorso in due parti\nZ Annulla\n- Rimuovi il punto solamente da questo percorso\n+ Aggiunge una nuova etichetta\n/ Seleziona un altro percorso che condivide questo punto\nCanc Elimina il punto\n (+Shift) Elimina l'intero percorso\nInvio Finisce il disegno della linea\nBarra spaziatrice Afferra e trascina lo sfondo\nEsc Annulla questa modifica; ricarica dal server\n0 Rimuove tutte le etichette\n1-9 Seleziona le etichette preimpostate\n (+Shift) Seleziona le etichette memorizzate\n (+S/Ctrl) Memorizza le etichette\n§ or ` Cicla sui gruppi di etichette\n\n" + help_html: "Benvenuto su Potlatch\nPotlatch è un programma facile da usare per apportare delle modifiche a OpenStreetMap. Disegna strade, percorsi, marcatori territoriali e negozi partendo dalle proprie rilevazioni GPS, da immagini satellitari oppure da vecchie mappe.\n\nQueste pagine di aiuto ti guideranno attraverso i concetti di base nell'utilizzo di Potlatch, e ti dirà dove trovare maggiori informazioni. Clicca sulle intestazioni che trovi qui sopra per iniziare.\n\nQuando hai finito basta cliccare in qualche altro punto della pagina.\n\n\n\nElementi utili da conoscere\nNon copiare dalle altre mappe!\n\nSe selezioni 'Modifica online' ogni tua modifica sarà inviata immediatamente al database non appena la disegni. Se non sei così sicuro, scegli 'Modifica offline', e le modifiche saranno inviate solamente quando premerai su 'Salva'.\n\nLe modifiche che fai alla mappa vengono visualizzate dopo una o due ore (per alcune cose serve una settimana). Non tutto viene visualizzato nella mappa, la renderebbe troppo complicata. Ma visto che i dati di OpenStreetMap sono open source, chiunque è libero di creare altre mappe che mostrano diverse caratteristiche. Come OpenCycleMap oppure Midnight Commander.\n\nRicorda che è sia una mappa dal bell'aspetto (quindi disegna bene le curve) che un diagramma (assicurati che le strade siano collegate agli incroci).\n\nAbbiamo accennato al fatto di non copiare da altre mappe?\n\n\nMaggiori informazioni\nManuale Potlatch\nListe di distribuzione\nChat in linea (aiuto dal vivo)\nForum web\nWiki della comunità\nSorgenti di Potlatch\n\n\n\nPer iniziare\nOra che hai aperto Potlatch, clicca su 'Modifica offline' per iniziare.\n\nOra sei pronto a disegnare la mappa. La cosa più facile è iniziare inserendo dei PDI (Punti Di Interesse) nella mappa. Potrebbero essere bar, chiese, stazioni ferroviarie... qualsiasi cosa ti piaccia.\n\nClicca e trascina\nPer renderti il lavoro più facile sotto alla mappa c'è una raccolta dei punti di interesse (POI) più comunemente utilizzati. Per inserirlo nella mappa è sufficiente trascinarne uno nella posizione voluta. Non preoccuparti se non riesci a posizionarlo bene al primo colpo: puoi trascinarlo nuovamente finché la posizione non è quella corretta. Nota che il punto di interesse (POI) è evidenziato in giallo quando è selezionato.\n\nNon appena hai finito vorrai probabilmente assegnare un nome al tuo pub (chiesa, stazione, o altro). vedrai che apparirà una piccola tabella in basso. Una delle caselle riporterà la dicitura \"nome\" seguita da \"(digitare il nome qui)\". Quindi basterà cliccare questo testo e digitare il nome.\n\nClicca in qualche altro punto della mappa per deselezionare il tuo punto di interesse (POI) e quindi ricomparirà il piccolo pannello colorato.\n\nFacile, non è vero? Clicca su 'Salva' (in basso a destra) quando hai finito.\nSpostarsi\nPer spostarsi su una parte differente della mappa, basta trascinarla in modo da visualizzare un'area vuota. Potlatch caricherà automaticamente i nuovi dati (guarda in alto a destra).\n\nTi avevamo parlato della 'Modalità offline', ma puoi anche usare la 'modalità online'. In questo caso, le tue modifiche andranno direttamente nel database, quindi non avrai bisogno di cliccare su 'Salva'. Questa modalità va bene per modifiche veloci o durante un mapping party.\n\nPassi successivi\nSei soddisfatto? Bene. Clicca su 'Raccolta dati' in alto per scoprire come diventare un vero mapper!\n\nRilevamento con un GPS\nL'idea che sta dietro a OpenStreetmap è di creare mappe che non violino il copyright di altre mappe. Ciò significa che non puoi copiare da altre parti: devi uscire e mappare le strade per conto tuo. Per fortuna, ciò è molto divertente!\nIl miglior modo per farlo è quello di usare un dispositivo GPS portatile. Trova una zona che non è ancora stata mappata, percorri a piedi o in bicicletta le strade con il GPS acceso. Prendi nota dei nomi delle strade, oltre a qualsiasi altro dato interessante (pub? Chiese?), man man che prosegui.\n\nQuando ritorni a casa, il tuo GPS conterrà una registrazione dei punti geografici dove sei stato. Puoi quindi caricarli su OpenStreetMap.\n\nIl migliore GPS è quello che registra le tracce con una certa frequenza (ogni secondo oppure ogni due) ed ha un sacco di memoria. Molti dei nostri mappatori usano dispositivi Garmin o piccole unità dotate di Bluetooth. Puoi trovare recensioni dettagliate di dispositivi GPS all'interno del nostro wiki.\n\nCaricamento dei tuoi tracciati\nA questo punto, devi estrarre le tracce dal dispositivo GPS. Forse il tuo GPS usa un suo software o permette il trasferminto dei file via USB. Altrimenti, prova con GPSBabel. In ogni caso, tu vuoi che il file sia in formato GPX.\n\nQuindi usa la scheda 'Tracciati GPS' per caricare la tua traccia su OpenStreetMap. Ma questa è solo la prima parte - ancora nulla apparirà sulla mappa. Devi ancora disegnare le strade e darle dei nomi, utilizzando la tua traccia come guida.\nUtilizzo dei tuoi tracciati\nTrova la tua traccia nella lista 'Tracciati GPS', e clicca su 'Modifica' subito alla sua destra. Potlatch partirà questa traccia caricata, insieme ad altri eventuali punti. Sei pronto per creare mappe!\n\nPuoi anche cliccare su questo pulsante per visualizzare i tracciati GPS di chiunque (ma non i punti dei percorsi) per l'area corrente. Tieni premuto Shift per visualizzare soltanto i tuoi tracciati.\nUtilizzo di immagini satellitari\nSe non hai un GPS, non ti preoccupare. In alcune città, abbiamo delle foto satellitari su cui puoi disegnare strade, concesse gentilmente da Yahoo! (grazie!). Esci e prendi nota dei nomi delle strade, poi torna a casa e traccia seguendo le linee delle foto.\n\nSe non vedi alcuna immagine satellitare, clicca sul bottone delle opzioni e controlla che 'Yahoo!' sia selezionato. Se continui a non vedere niente, è probabile che questo servizio non sia disponibile per la tua città, o che tu debba tornare un po' indietro con lo zoom.\n\nNelle opzioni troverai anche altre scelte come una mappa senza copyright del Regno Unito, e OpenTopoMap per gli Stati Uniti. Questi sono tutti selezionati perché siamo autorizzati ad utilizzarle - non copiare da altre mappe o foto aeree. (il copyright fa schifo)\n\nA volte le immagini satellitari sono leggermente spostate da dove sono realmente le strade. Se è il caso tieni premuta la barra spaziatrice e trascina lo sfondo fino ad allinearlo. Le tracce GPS sono più affidabili delle immagini satellitari.\n\nDisegno dei percorsi\nTo draw a road (or 'way') starting at a blank space on the map, just click there; then at each point on the road in turn. When you've finished, double-click or press Enter - then click somewhere else to deselect the road.\n\nTo draw a way starting from another way, click that road to select it; its points will appear red. Hold Shift and click one of them to start a new way at that point. (If there's no red point at the junction, shift-click where you want one!)\n\nClicca 'Salva' (in basso a destra) quando hai fatto. Salva frequentemente in caso di problemi col server.\n\nNon aspettarti di vedere apportate le tue modifiche istantaneamente sulla mappa principale. Di solito bisogna attendere una o due ore, altre volte fino ad una settimana.\nCreazione degli incroci\nE' molto importate che nel punto in cui due strade (o 'way')si incrociano ci sia un punto (o 'nodo') condiviso da entrambe. I navigatori utilizzano questo punto per sapere dove svoltare.\n\nPotlatch si occupa di questo, ma tu devi essere attendo a cliccare esattamente sulla 'way' che stai collegando. Attento alle indicazioni visive: i nodi sulla way diventano blu, il puntatore cambia e una volta fatto il nodo ha un quadrato nero attorno.\nSpostamento ed eliminazione\nFunziona proprio come ti aspetteresti. Per cancellate un nodo selezionalo e premi \"Canc\". Per cancellare l'intera way premi \"Shift-Canc\"\n\nPer spostare qualcosa, semplicemente trascinalo. (Per trascinare un'intera \"way\" devi mantenere cliccato per un pò per evitare che venga fatto accidentalmente).\nDisegno avanzato\nIf two parts of a way have different names, you'll need to split them. Click the way; then click the point where it should be split, and click the scissors. (You can merge ways by clicking with Control, or the Apple key on a Mac, but don't merge two roads of different names or types.)\n\nRoundabouts are really hard to draw right. Don't worry - Potlatch can help. Just draw the loop roughly, making sure it joins back on itself at the end, then click this icon to 'tidy' it. (You can also use this to straighten out roads.)\nPDI (Punti Di Interesse)\nThe first thing you learned was how to drag-and-drop a point of interest. You can also create one by double-clicking on the map: a green circle appears. But how to say whether it's a pub, a church or what? Click 'Tagging' above to find out!\n\nChe tipo di strada è?\nQuando hai disegnato una way, dovresti dire di cosa si tratta. E' una strada principale, un percorso pedonale o un fiume? Come si chiama? Ha regole particolari (esempio: \"no bicycles\")?\n\nIn OpenStreetMap, you record this using 'tags'. A tag has two parts, and you can have as many as you like. For example, you could add highway | trunk to say it's a major road; highway | residential for a road on a housing estate; or highway | footway for a footpath. If bikes were banned, you could then add bicycle | no. Then to record its name, add name | Market Street.\n\nThe tags in Potlatch appear at the bottom of the screen - click an existing road, and you'll see what tags it has. Click the '+' sign (bottom right) to add a new tag. The 'x' by each tag deletes it.\n\nPuoi applicare etichette all'intera 'way', a nodi sulla 'way' (una barriera o un semaforo) e a PDI (Punto Di Interesse).\nUtilizzo delle etichette preimpostate\nPer farti iniziare, Potlatch possiede dei gruppi preimpostati pronti all'uso contenenti le etichette più utilizzate.\n\nSeleziona la way, poi clicca sui simboli finchè non trovi quello adatto. Quindi scegli nel menù l'opzione più appropriata.\n\nThis will fill the tags in. Some will be left partly blank so you can type in (for example) the road name and number.\nStrade a senso unico\nYou might want to add a tag like oneway | yes - but how do you say which direction? There's an arrow in the bottom left that shows the way's direction, from start to end. Click it to reverse.\nScelta delle proprie etichette\nOvviamente non sei limitato alle preimpostate. Cliccando '+' puoi aggiungere qualunque etichetta.\n\nYou can see what tags other people use at OSMdoc, and there is a long list of popular tags on our wiki called Map Features. But these are only suggestions, not rules. You are free to invent your own tags or borrow from others.\n\nSiccome i dati di OpenStreetMap sono utilizzati per generare più mappe differenti, ognuna di queste visualizzerà solo un determinato insieme di etichette.\nRelazioni\nSometimes tags aren't enough, and you need to 'group' two or more ways. Maybe a turn is banned from one road into another, or 20 ways together make up a signed cycle route. You can do this with an advanced feature called 'relations'. Find out more on the wiki.\n\nAnnullamento degli sbagli\nQuesto è il pulsante di annullamento (puoi premere anche Z) - annullerà l'ultima cosa che hai fatto.\n\nYou can 'revert' to a previously saved version of a way or point. Select it, then click its ID (the number at the bottom left) - or press H (for 'history'). You'll see a list of everyone who's edited it, and when. Choose the one to go back to, and click Revert.\n\nIf you've accidentally deleted a way and saved it, press U (for 'undelete'). All the deleted ways will be shown. Choose the one you want; unlock it by clicking the red padlock; and save as usual.\n\nPensi che qualcun'altro abbia fatto un errore? Inviagli un messaggio amichevole. Usa la cronologia (H) per selezionarne il nome, poi clicca 'Posta'.\n\nUse the Inspector (in the 'Advanced' menu) for helpful information about the current way or point.\nDomande frequenti (FAQ)\nHow do I see my waypoints?\nWaypoints only show up if you click 'edit' by the track name in 'GPS Traces'. The file has to have both waypoints and tracklog in it - the server rejects anything with waypoints alone.\n\nMore FAQs for Potlatch and OpenStreetMap.\n\n\n\nLavoro più veloce\nThe further out you're zoomed, the more data Potlatch has to load. Zoom in before clicking 'Edit'.\n\nTurn off 'Use pen and hand pointers' (in the options window) for maximum speed.\n\nIf the server is running slowly, come back later. Check the wiki for known problems. Some times, like Sunday evenings, are always busy.\n\nTell Potlatch to memorise your favourite sets of tags. Select a way or point with those tags, then press Ctrl, Shift and a number from 1 to 9. Then, to apply those tags again, just press Shift and that number. (They'll be remembered every time you use Potlatch on this computer.)\n\nTurn your GPS track into a way by finding it in the 'GPS Traces' list, clicking 'edit' by it, then tick the 'convert' box. It'll be locked (red) so won't save. Edit it first, then click the red padlock to unlock when ready to save.\n\nCosa cliccare\nTrascina la mappa per spostarti.\nDoppio-click per creare un nuovo PDI (Punto Di Interesse).\nSingolo-click per iniziare un nuovo percorso.\nClicca e trascina un percorso o PDI per spostarlo.\nQuando si disegna un percorso\nDoppio-click oppure premi Enter per finire di disegnare.\nCliccare un altro percorso per creare un incrocio.\nShift-click sulla fine di un altro percorso per unire.\nQuando è selezionato un percorso\nClicca un punto per selezionarlo.\nShift-click sul percorso per inserire un nuovo punto.\nShift-click un punto per iniziare un nuovo percorso da lì.\nControl-click su un altro percorso per unire.\n\nScorciatoie da tastiera\nB Aggiunge l'etichetta della sorgente dello sfondo\nC Chiude il gruppo di modifiche\nG Mostra i tracciati GPS\nH Mostra lo storico\nI Mostra l'ispettore\nJ Unisce il punto ai percorsi che si incrociano\nK Blocca/sblocca la selezione corrente\nL Mostra la latitudine/longitudine corrente\nM Massimizza la finestra di modifica\nP Crea un percorso parallelo\nR Ripeti le etichette\nS Salva (senza la modalità di modifica dal vivo)\nT Disponi su una linea/cerchio\nU Annulla eliminazione (mostra i percorsi eliminati)\nX Taglia il percorso in due parti\nZ Annulla\n- Rimuovi il punto solamente da questo percorso\n+ Aggiunge una nuova etichetta\n/ Seleziona un altro percorso che condivide questo punto\nCanc Elimina il punto\n (+Shift) Elimina l'intero percorso\nInvio Finisce il disegno della linea\nBarra spaziatrice Afferra e trascina lo sfondo\nEsc Annulla questa modifica\n; ricarica dal server\n0 Rimuove tutte le etichette\n1-9 Seleziona le etichette preimpostate\n (+Shift) Seleziona le etichette memorizzate\n (+S/Ctrl) Memorizza le etichette\n§ or ` Cicla sui gruppi di etichette\n\n" hint_drawmode: clic per aggiungere un punto\ndoppio clic/Return\nper terminare la linea hint_latlon: "lat $1\nlon $2" hint_loading: caricamento dati @@ -104,10 +104,11 @@ it: inspector_way_connects_to_principal: È connesso a $1 $2 ed altri $3 $4 inspector_way_nodes: $1 nodi inspector_way_nodes_closed: $1 nodi (chiusi) + loading: Caricamento... login_pwd: "Password:" login_retry: Il tuo login non è stato riconosciuto. Riprova login_title: Impossibile fare il login - login_uid: Nome utente + login_uid: "Nome utente:" mail: Posta more: Ancora newchangeset: "Si prega di riprovare: Potlatch aprirà un nuovo gruppo di modifiche." @@ -128,6 +129,8 @@ it: option_layer_maplint: OSM - Maplint (errori) option_layer_nearmap: "Australia: NearMap" option_layer_ooc_25k: "Storico UK: 1:25k" + option_layer_ooc_npe: "Storico UK: NPE" + option_layer_ooc_scotland: "Storico UK: Scozia" option_layer_streets_haiti: "Haiti: nomi delle strade" option_layer_tip: Scegli lo sfondo da visualizzare option_limitways: Avverti quando carichi molti dati @@ -188,6 +191,7 @@ it: revert: Ripristina save: Salva tags_descriptions: Descrizioni di '$1' + tags_findatag: Trova un tag tags_typesearchterm: "Inserisci una parola da cercare:" tip_addrelation: Aggiungi ad una relazione tip_addtag: Aggiungi una nuova etichetta @@ -209,12 +213,12 @@ it: uploading: Caricamento... uploading_deleting_pois: Cancellazione PDI uploading_deleting_ways: Cancellazione percorsi - uploading_poi: Sto caricando il PDI $1 + uploading_poi: Caricamento PDI $1 uploading_poi_name: Caricamento PDI $1, $2 - uploading_relation: Carica la relation $1 + uploading_relation: Caricamento relazione $1 uploading_relation_name: Caricamento relazione $1, $2 uploading_way: Caricamento percorso $1 - uploading_way_name: Sto caricando il percorso $1, $2 + uploading_way_name: Caricamento percorso $1, $2 warning: Attenzione! way: Percorso - "yes": Si + "yes": Sì diff --git a/config/potlatch/locales/mk.yml b/config/potlatch/locales/mk.yml index 82efea14d..f13289af2 100644 --- a/config/potlatch/locales/mk.yml +++ b/config/potlatch/locales/mk.yml @@ -32,6 +32,7 @@ mk: advanced_tooltip: Напредни можности за уредување advanced_undelete: Врати бришено advice_bendy: Премногу искривено за да се исправи (SHIFT за насила) + advice_conflict: Конфликт во серверот - можеби ќе треба да зачувате повторно advice_deletingpoi: Бришење на точка од интерес (POI) (Z за враќање) advice_deletingway: Бришење пат (Z за враќање) advice_microblogged: Вашиот нов статус - $1 @@ -79,7 +80,7 @@ mk: heading_tagging: Означување heading_troubleshooting: Отстранување неисправности help: Помош - help_html: "Добредојдовте во Potlatch\nPotlatch е уредник на OpenStreetMap кој е лесен за употреба. Цртајте патишта, знаменитости, споменици и продавници од вашите GPS податоци, сателитски слики или стари карти.\n\nОвие страници за помош ќе ве запознаат со основите на користење на Potlatch, и ќе ви покажат каде можете да дознаете повеќе. Кликнете на насловите погоре за да почнете.\n\nЗа да излезете, кликнете било каде вон прозорецов.\n\n\n\nКорисно да се знае\nНе копирајте од други карти!\n\nАко изберете „Уредување во живо“, сите промени кои ќе ги направите одат на базата додека ги цртате - т.е. веднаш. Ако не сте толку сигурни во промените, одберете „Уредување со зачувување“, и така промените ќе се појават дури кога ќе стиснете на „Зачувај“.\n\nСите направени уредувања ќе се покажат по час-два (на неколку посложени работи им треба една недела). На картата не е прикажано сè - тоа би бил голем неред. Бидејќи податоците на OpenStreetMap се отворен извор, другите корисници слободно прават карти на кои се прикажани различни аспекти - како OpenCycleMap (Отворена велосипедска карта) или Midnight Commander.\n\nЗапомнете дека ова е и убава карта (затоа цртајте убави криви линии за кривините), но и дијаграм (затоа проверувајте дека патиштата се среќаваат на крстосници) .\n\nДали ви споменавме дека не смее да се копира од други карти?\n\n\nДознајте повеќе\nPotlatch прирачник\nПоштенски листи\nРазговори (помош во живо)\nВеб-форум\nВики на заедницата\nИзворен код на Potlatch\n\n\n\nКако да почнете\nСега Potlatch ви е отворен. Кликнете на „Уреди и зачувај“ за да почнете\n\nЗначи спремни сте да нацртате карта. Најлесно е да се почне со поставење на точки од интерес на картата (POI). Овие можат да бидат ресторани, цркви, железнички станици...сè што сакате.\n\nВлечење и пуштање\nЗа да ви олесниме, ги поставивме најчестите видови на точки од интерес (POI), на дното од картата. На картата се ставаат со нивно повлекување и пуштање на саканото место. И не грижете се ако не сте го погодиле местото од прв пат: можете точките да повлекувате повторно, сè додека не ја наместите секоја точка кадешто сакате.\n\nКога сте готови со тоа, ставете му име на ресторанот (или црквата, станицата итн.) На дното ќе се појави мала табела. Една од ставките ќе биде „име“, и до него „(тука внесете име)“. Кликнете на тој текст и впишете го името.\n\nКликнете другде на картата за да го одизберете вашата точка од интерес (POI), и така ќе се врати малиот шарен правоаголник.\n\nЛесно е, нели? Кликнете на „Зачувај“ (најдолу-десно) кога сте готови.\nДвижење по картата\nЗа да отидете на друг дел од картата, само повлечете празен простор. Potlatch автоматски ќе вчита нови податоци (гледајте најгоре-десно)\n\nВи рековме да „Уредите и зачувате“, но можете и да кликнете на „Уредување во живо“. Под овој режим промените одат право во базата, и затоа нема копче „Зачувај“. Ова е добро за брзи промени и картографски акции.\n\nСледни чекори\nЗадоволни сте од досегашното? Одлично. Кликнете на „Истражување“ погоре за да дознаете како да бидете вистински картограф!\n\nИстражување со GPS\nИдејата позади OpenStreetMap е создавање на карта без ограничувачките авторски права кои ги имаат други карти. Ова значи дека овдешните карти не можете да ги копирате од никаде: морате самите да ги истражите улиците. За среќа, ова е многу забавно!\nНајдобро е да се земе рачен GPS-уред. Пронајдете некој регион кој сè уште не е на картата. Прошетајте по улиците, или извозете ги на велосипед, држајќи го уредот вклучен. По пат запишувајте ги имињата на улиците, и сето она што ве интересира (ресторани? цркви?).\n\nКога ќе дојдетедома, вашиот GPS-уред ќе содржи т.н. „записник на траги“ (tracklog) кој има евиденција за секаде кадешто сте биле. Потоа ова можете да го подигнете на OpenStreetMap.\n\nНајдобриот вид на GPS-уред е оној што запишува често (на секоја секунда-две) и има голема меморија. Голем дел од нашите картографи користат рачни Garmin апарати, или Bluetooth-уреди. На нашето вики ќе најдете подробни анализа на GPS-уреди\n\nПодигање на патеката\nСега ќе треба да ја префрлите трагата од GPS-уредот. Можеби уредот има свој софтвер, или пак од него поже да се копираат податотеки предку USB. Ако не може, пробајте го GPSBabel. Како и да е, податотеката во секој случај треба да биде во GPX формат.\n\nПотоа одете на „GPS траги“ и подигнете ја трагата на OpenStreetMap. Но ова е само првиот чекор - трагата сè уште нема да се појави на картата. Морате самите да ги нацртате и именувате улиците, следејќи ја трагата.\nКористење на трагата\nПронајдете ја вашата подигната трага во листата на „GPS траги“ и кликнете на „уреди“ веднаш до неа. Potlatch ќе започне со оваа вчитана трага, плус ако има патни точки. Сега можете да цртате!\n\nМожете и да кликнете на ова копче за да ви се прикажат GPS трагите на сите корисници (но не патните точки) за тековниот реон. Држете Shift за да се прикажат само вашите траги.\nКористење на сателитски слики\nНе грижете се ако немате GPS-уред. Во некои градови имаме сателитски фотографии врз кои можете да цртате, добиени со поддршка од Yahoo! (благодариме!). Излезете и запишете ги имињата на улиците, па вратете се и исцртајте ги линиите врз нив.\n\nДоколку не гледате сателитски слики, кликнете на копчето за прилагодувања и проверете дали е одбрано „Yahoo!“ Ако сè уште не ги гледате, тогаш веројатно такви слики се недостапни за вашиот град, или пак треба малку да одзумирате.\n\nНа истово копче за прилагодувања има и други избори како карти на Британија со истечени права и OpenTopoMap. Сите тие се специјално избрани бидејќи ни е дозволено да ги користиме- не копирајте ничии карти и воздушни фотографии (Законите за авторски права се за никаде.)\n\nПонекогаш сателитските слики се малку разместени од фактичката локација на патиштата. Ако наидете на ова, држете го Space и влечете ја позадината додека не се порамнат. Секогаш имајте доверба во GPS трагите, а не сателитските слики.\n\nЦртање патишта\nЗа да нацртате пат почнувајќи од празен простор на картата, само кликнете таму; потоа на секоја точка на патот. Кога сте готови, кликнете два пати или притиснете Enter - потоа кликнете на некое друго место за да го одизберете патот.\n\nЗа да нацртате пат почнувајќи од друг пат, кликнете на патот за да го изберете; неговите точки ќе станат црвени. Држете Shift и кликнете на една од нив за да започнете нов пат од таа точка. (Ако нема црвена точка на крстосницата, направете Shift-клик за да се појави кадешто сакате!)\n\nКликнете на „Зачувај“ (најдолу-десно) кога сте готови. Зачувувајте често, во случај да се јават проблеми со серверот.\n\nНе очекувајте промените веднаш да се појават на главната карта. За ова треба да поминат час-два, а во некои случаи и до една недела.\nПравење крстосници\nМногу е важно патиштата да имаат заедничка точка („јазол“) кадешто се среќаваат. Ова им служи на корисниците кои планираат пат за да знаат каде да свртат.\n\nPotlatch се грижи за ова доколку внимателно кликнете точно на патот кој го сврзувате. Гледајте ги олеснителните знаци: точките светнуваат сино, курсорот се менува, и кога сте готови, точката на крстосницата има црна контура.\nПоместување и бришење\nОва работи баш како што се би се очекувало. За да избришете точка, одберете ја и притиснете на Delete. За да избришете цел еден пат, притиснете Shift-Delete.\n\nЗа да поместите нешто, само повлечете го. (Ќе треба да кликнете и да подржите малку пред да влечете. Со ова се избегнуваат ненамерни поместувања.)\nПонапредно цртање\nАко два дела од еден пат имаат различни имиња, ќе треба да ги раздвоите. Кликнете на патот; потоа кликнете во точката кадешто сакате да го раздвоите, и кликнете на ножиците. (Можете да спојувате патишта со Control, или копчето со јаболко на Мекинтош, но не спојувајте два пата со различни имиња или типови.)\n\nКружните текови се многу тешки за цртање. Но за тоа помага самиот Potlatch. Нацртајте го кругот грубо, само внимавајте да ги споите краевите (т.е. да биде круг), и кликнете на „подреди“. (Ова се користи и за исправање на патишта.)\nТочки од интерес (POI)\nПрвото нешто што го научивте е како да влечете и пуштате точка од интерес. Можете и самите да правите вакви точки со двојно кликнување на картата: ќе се појави зелено кругче. Но како ќе знаеме дали се работи за ресторан, црква или нешто друго? Кликнете на „Означување“ погоре за да дознаете!\n\nКој вид на пат е тоа?\nШтом ќе нацртате пат, треба да назначите што е. Дали е главна магистрала, пешачка патека или река? Како се вика? Има ли некои посебни правила (на пр. „забрането велосипеди“)?\n\nВо OpenStreetMap ова го запишувате со „ознаки“. Ознаката има два дела, и можете да користите колку што сакате ознаки. На пример, можете да додадете i>highway | trunk за да назначите дека ова е главен магистрален пат; highway | residential за пат во населба; or highway | footway за пешачка патека. If bikes were banned, you could then add bicycle | no. Потоа, за да го запишете името, додајте name | Партизански Одреди.\n\nОзнаките на Potlatch се појавуваат најдолу на екранот - кликнете на постоечка улица, и ќе видите каква ознака има. Кликете на знакот „+“ (најдолу-десно) за да додадете нова ознака. Секоја ознака има „x“ со што можете да ја избришете.\n\nМожете да означувате цели патишта; точки на патишта (можеби порта или семафори); и точки од интерес.\nКористење на зададени ознаки\nЗа да ви помогне да започнете, Potlatch ви нуди готови, најпопуларни ознаки.\n\nОдберете го патот, па кликајте низ симболите додека не најдете соодветен. Потоа изберете ја најсоодветната можност од менито.\n\nСо ова се пополнуваат ознаките. Некои ќе останат делумно празни за да можете да впишете (на пример) име на улицата и број\nЕднонасочни патишта\nВи препорачуваме да додадете ознака за еднонасочни улици како oneway | yes - но како да познаете во која насока? Најдолу-лево има стрелка која го означува правецот напатот, од почеток до крај. Кликнете на неа за да ја свртите обратно.\nИзбор на ваши сопствени ознаки\nСекако, не сте ограничени само на зададените ознаки. Користете го копчето „+“ за да користите какви што сакате ознаки.\n\nМожете да видите какви ознаки користат другите на OSMdoc, а имаме и долга листа на популарни ознаки на нашето вики нареченаЕлементи. Но тие се само предлози, а не правила. Најслободно измислувајте си свои ознаки или преземајте од други корисници.\n\nБидејќи податоците од OpenStreetMap се користат за изработување на различни карти, секоја карта прикажува свој избор од ознаки.\nРелации\nПонекогаш не се доволни само ознаки, па ќе треба да „групирате“ два или повеќе пата. Можеби вртењето од една улица во друга е забрането, или пак 20 патеки заедно сочиннуваат означена велосипедска патека. Ова се прави во напредното мени „релации“. Дознајте повеќе на викито.\n\nВраќање грешки\nОва е копчето за враќање (може и со стискање на Z) - ова ќе го врати последното нешто кое сте го направиле.\n\nМожете да „вратите“ претходно зачувана верзија на еден пат или точка. Одберете ја, па кликнете на нејзиниот ид. бр. (бројот најдолу-лево) - или притиснете на H (за „историја“). Ќе видите листа на која се наведува кој ја уредувал и кога. Одберете ја саканата верзија, и стиснете на „Врати“.\n\nДоколку сте избришале пат по грешка и сте зачувале, притиснете U (за да вратите). Ќе се појават сите избришани патишта. Одберете го саканиот пат; отклучете го со кликнување на катанчето; и зачувајте.\n\nМислите дека некој друг корисник направил грешка? Испратете му пријателска порака. Користете ја историјата (H) за да му го изберете името, па кликнете на „Пошта“\n\nКористете го Инспекторот (во менито „Напредно“) за корисни информации за моменталниот пат или точка.\nЧПП\nКако да ги видам моите патни точки?\nПатните точки се појавуваат само ако кликнете на „уреди“ до името на трагата во „GPS траги“. Податотеката мора да има и патни точки и запис на трагата - серверот не пропушта податотеки кои имаат само патни точки.\n\nПовеќе ЧПП за Potlatch и OpenStreetMap.\n\n\n\nПобрзо работење\nШто повеќе зумирате, тоа повеќе податоци мора да вчита Potlatch. Зумирајте пред да сиснете „Уреди“\n\nИсклучете го „Користи курсори „молив“ и „рака““ (во прозорецот за прилагодување) за да добиете максимална брзина.\n\nАко серверот работи бавно, вратете се подоцна. Проверете го викито за да проверите познати проблеми. Некои термини како недела навечер се секогаш оптоварени.\n\nКажете му на Potlatch да ги запамти вашите омилени комплети со ознаки. Одберете пат или точка со тие ознаки, па притиснете на Ctrl, Shift и на број од 1 до 9. Потоа за повторно да ги користите тие ознаки, само притиснете Shift и тој број. (Ќе се паметат секојпат кога го користите Potlatch на овој компјутер.)\n\nПретворете ја вашата GPS трага во пат со тоа што ќе ја пронајдете на листата „GPS траги“ и ќе кликнете на „уреди“ до неа, а потоа на кутивчето „претвори“. Трагата ќе се заклучи (црвено), затоа не зачувувајте. Најпрвин уредете ја, па кликнете на катанчето (најдолу-десно) за да ја отклучите кога сте спремни да ја зачувате.\n\nШто да кликате\nВлечете ја картата за да се движите наоколу.\nДвоен клик за да направите нова точка од интерес (POI).\nКликнете еднап за да започнете нов пат.\nДржете и влечете пат или точка од интерес (POI) за да ги поместите.\nКога цртате пат\nДвоен клик или Enter за да завршите со цртање.\nКликнете на друг пат за да направите крстосница.\nShift-клик на крајот на друг пат за да споите.\nКога ќе изберете пат\nКликнете на точката за да ја одберете.\nShift-клик на патот за да вметнете нова точка.\nShift-клик на точка за оттаму да започнете нов пат.\nCtrl-клик на друг пат за спојување.\n\nТастатурни кратенки\nB Додај позадинска изворна ознака\nC Затвори измени\nG Прикажи GPS траги\nH Прикажи историја\nI Прикажи инспектор\nJ сврзи точка за вкрстени патишта\nK Заклучи/отклучи го моментално избраното\nL Прикажи моментална географска должина\nM Зголеми уредувачки прозорец\nP Создај паралелен пат\nR Повтори ги ознаките\nS Зачувај (освен ако не е во живо)\nT Подреди во права линија/круг\nU Врати избришано (прикажи избришани патишра)\nX Пресечи пат на две\nZ Врати\n- Отстрани точка само од овој пат\n+ Додај нова ознака\n/ Избор на друг пат со истава точка\nDelete Избриши точка\n (+Shift) Избриши цел пат\nEnter Заврши со цртање на линијата\nSpace Држи и влечи позадина\nEsc Откажи го ова уредување; превчитај од серверот\n0 Отстрани ги сите ознаки\n1-9 Избор на зададени ознаки\n (+Shift) Избери запамтени ознаки\n (+S/Ctrl) Запамти ознаки\n§ или ` Кружи помеѓу групи ознаки\n\n" + help_html: "Добредојдовте во Potlatch\nPotlatch е уредник на OpenStreetMap кој е лесен за употреба. Цртајте патишта, знаменитости, споменици и продавници од вашите GPS податоци, сателитски слики или стари карти.\n\nОвие страници за помош ќе ве запознаат со основите на користење на Potlatch, и ќе ви покажат каде можете да дознаете повеќе. Кликнете на насловите погоре за да почнете.\n\nЗа да излезете, кликнете било каде вон прозорецов.\n\n\n\nКорисно да се знае\nНе копирајте од други карти!\n\nАко изберете „Уредување во живо“, сите промени кои ќе ги направите одат на базата додека ги цртате - т.е. веднаш. Ако не сте толку сигурни во промените, одберете „Уредување со зачувување“, и така промените ќе се појават дури кога ќе стиснете на „Зачувај“.\n\nСите направени уредувања ќе се покажат по час-два (на неколку посложени работи им треба една недела). На картата не е прикажано сè - тоа би бил голем неред. Бидејќи податоците на OpenStreetMap се отворен извор, другите корисници слободно прават карти на кои се прикажани различни аспекти - како OpenCycleMap (Отворена велосипедска карта) или Midnight Commander.\n\nЗапомнете дека ова е и убава карта (затоа цртајте убави криви линии за кривините), но и дијаграм (затоа проверувајте дека патиштата се среќаваат на крстосници) .\n\nДали ви споменавме дека не смее да се копира од други карти?\n\n\nДознајте повеќе\nPotlatch прирачник\nПоштенски листи\nРазговори (помош во живо)\nВеб-форум\nВики на заедницата\nИзворен код на Potlatch\n\n\n\nКако да почнете\nСега Potlatch ви е отворен. Кликнете на „Уреди и зачувај“ за да почнете\n\nЗначи спремни сте да нацртате карта. Најлесно е да се почне со поставење на точки од интерес на картата (POI). Овие можат да бидат ресторани, цркви, железнички станици...сè што сакате.\n\nВлечење и пуштање\nЗа да ви олесниме, ги поставивме најчестите видови на точки од интерес (POI), на дното од картата. На картата се ставаат со нивно повлекување и пуштање на саканото место. И не грижете се ако не сте го погодиле местото од прв пат: можете точките да повлекувате повторно, сè додека не ја наместите секоја точка кадешто сакате.\n\nКога сте готови со тоа, ставете му име на ресторанот (или црквата, станицата итн.) На дното ќе се појави мала табела. Една од ставките ќе биде „име“, и до него „(тука внесете име)“. Кликнете на тој текст и впишете го името.\n\nКликнете другде на картата за да го одизберете вашата точка од интерес (POI), и така ќе се врати малиот шарен правоаголник.\n\nЛесно е, нели? Кликнете на „Зачувај“ (најдолу-десно) кога сте готови.\nДвижење по картата\nЗа да отидете на друг дел од картата, само повлечете празен простор. Potlatch автоматски ќе вчита нови податоци (гледајте најгоре-десно)\n\nВи рековме да „Уредите и зачувате“, но можете и да кликнете на „Уредување во живо“. Под овој режим промените одат право во базата, и затоа нема копче „Зачувај“. Ова е добро за брзи промени и картографски акции.\n\nСледни чекори\nЗадоволни сте од досегашното? Одлично. Кликнете на „Истражување“ погоре за да дознаете како да бидете вистински картограф!\n\nИстражување со GPS\nИдејата позади OpenStreetMap е создавање на карта без ограничувачките авторски права кои ги имаат други карти. Ова значи дека овдешните карти не можете да ги копирате од никаде: морате самите да ги истражите улиците. За среќа, ова е многу забавно!\nНајдобро е да се земе рачен GPS-уред. Пронајдете некој регион кој сè уште не е на картата. Прошетајте по улиците, или извозете ги на велосипед, држајќи го уредот вклучен. По пат запишувајте ги имињата на улиците, и сето она што ве интересира (ресторани? цркви?).\n\nКога ќе дојдете дома, вашиот GPS-уред ќе содржи т.н. „записник на траги“ (tracklog) кој има евиденција за секаде кадешто сте биле. Потоа ова можете да го подигнете на OpenStreetMap.\n\nНајдобриот вид на GPS-уред е оној што запишува често (на секоја секунда-две) и има голема меморија. Голем дел од нашите картографи користат рачни Garmin апарати, или Bluetooth-уреди. На нашето вики ќе најдете подробни анализа на GPS-уреди\n\nПодигање на патеката\nСега ќе треба да ја префрлите трагата од GPS-уредот. Можеби уредот има свој софтвер, или пак од него поже да се копираат податотеки предку USB. Ако не може, пробајте го GPSBabel. Како и да е, податотеката во секој случај треба да биде во GPX формат.\n\nПотоа одете на „GPS траги“ и подигнете ја трагата на OpenStreetMap. Но ова е само првиот чекор - трагата сè уште нема да се појави на картата. Морате самите да ги нацртате и именувате улиците, следејќи ја трагата.\nКористење на трагата\nПронајдете ја вашата подигната трага во листата на „GPS траги“ и кликнете на „уреди“ веднаш до неа. Potlatch ќе започне со оваа вчитана трага, плус ако има патни точки. Сега можете да цртате!\n\nМожете и да кликнете на ова копче за да ви се прикажат GPS трагите на сите корисници (но не патните точки) за тековниот реон. Држете Shift за да се прикажат само вашите траги.\nКористење на сателитски слики\nНе грижете се ако немате GPS-уред. Во некои градови имаме сателитски фотографии врз кои можете да цртате, добиени со поддршка од Yahoo! (благодариме!). Излезете и запишете ги имињата на улиците, па вратете се и исцртајте ги линиите врз нив.\n\nДоколку не гледате сателитски слики, кликнете на копчето за прилагодувања и проверете дали е одбрано „Yahoo!“ Ако сè уште не ги гледате, тогаш веројатно такви слики се недостапни за вашиот град, или пак треба малку да одзумирате.\n\nНа истово копче за прилагодувања има и други избори како карти на Британија со истечени права и OpenTopoMap. Сите тие се специјално избрани бидејќи ни е дозволено да ги користиме- не копирајте ничии карти и воздушни фотографии (Законите за авторски права се за никаде.)\n\nПонекогаш сателитските слики се малку разместени од фактичката локација на патиштата. Ако наидете на ова, држете го Space и влечете ја позадината додека не се порамнат. Секогаш имајте доверба во GPS трагите, а не сателитските слики.\n\nЦртање патишта\nЗа да нацртате пат почнувајќи од празен простор на картата, само кликнете таму; потоа на секоја точка на патот. Кога сте готови, кликнете два пати или притиснете Enter - потоа кликнете на некое друго место за да го одизберете патот.\n\nЗа да нацртате пат почнувајќи од друг пат, кликнете на патот за да го изберете; неговите точки ќе станат црвени. Држете Shift и кликнете на една од нив за да започнете нов пат од таа точка. (Ако нема црвена точка на крстосницата, направете Shift-клик за да се појави кадешто сакате!)\n\nКликнете на „Зачувај“ (најдолу-десно) кога сте готови. Зачувувајте често, во случај да се јават проблеми со серверот.\n\nНе очекувајте промените веднаш да се појават на главната карта. За ова треба да поминат час-два, а во некои случаи и до една недела.\nПравење крстосници\nМногу е важно патиштата да имаат заедничка точка („јазол“) кадешто се среќаваат. Ова им служи на корисниците кои планираат пат за да знаат каде да свртат.\n\nPotlatch се грижи за ова доколку внимателно кликнете точно на патот кој го сврзувате. Гледајте ги олеснителните знаци: точките светнуваат сино, курсорот се менува, и кога сте готови, точката на крстосницата има црна контура.\nПоместување и бришење\nОва работи баш како што се би се очекувало. За да избришете точка, одберете ја и притиснете на Delete. За да избришете цел еден пат, притиснете Shift-Delete.\n\nЗа да поместите нешто, само повлечете го. (Ќе треба да кликнете и да подржите малку пред да влечете. Со ова се избегнуваат ненамерни поместувања.)\nПонапредно цртање\nАко два дела од еден пат имаат различни имиња, ќе треба да ги раздвоите. Кликнете на патот; потоа кликнете во точката кадешто сакате да го раздвоите, и кликнете на ножиците. (Можете да спојувате патишта со Control, или копчето со јаболко на Мекинтош, но не спојувајте два пата со различни имиња или типови.)\n\nКружните текови се многу тешки за цртање. Но за тоа помага самиот Potlatch. Нацртајте го кругот грубо, само внимавајте да ги споите краевите (т.е. да биде круг), и кликнете на „подреди“. (Ова се користи и за исправање на патишта.)\nТочки од интерес (POI)\nПрвото нешто што го научивте е како да влечете и пуштате точка од интерес. Можете и самите да правите вакви точки со двојно кликнување на картата: ќе се појави зелено кругче. Но како ќе знаеме дали се работи за ресторан, црква или нешто друго? Кликнете на „Означување“ погоре за да дознаете!\n\nКој вид на пат е тоа?\nШтом ќе нацртате пат, треба да назначите што е. Дали е главна магистрала, пешачка патека или река? Како се вика? Има ли некои посебни правила (на пр. „забрането велосипеди“)?\n\nВо OpenStreetMap ова го запишувате со „ознаки“. Ознаката има два дела, и можете да користите колку што сакате ознаки. На пример, можете да додадете i>highway | trunk за да назначите дека ова е главен магистрален пат; highway | residential за пат во населба; or highway | footway за пешачка патека. If bikes were banned, you could then add bicycle | no. Потоа, за да го запишете името, додајте name | Партизански Одреди.\n\nОзнаките на Potlatch се појавуваат најдолу на екранот - кликнете на постоечка улица, и ќе видите каква ознака има. Кликете на знакот „+“ (најдолу-десно) за да додадете нова ознака. Секоја ознака има „x“ со што можете да ја избришете.\n\nМожете да означувате цели патишта; точки на патишта (можеби порта или семафори); и точки од интерес.\nКористење на зададени ознаки\nЗа да ви помогне да започнете, Potlatch ви нуди готови, најпопуларни ознаки.\n\nОдберете го патот, па кликајте низ симболите додека не најдете соодветен. Потоа изберете ја најсоодветната можност од менито.\n\nСо ова се пополнуваат ознаките. Некои ќе останат делумно празни за да можете да впишете (на пример) име на улицата и број\nЕднонасочни патишта\nВи препорачуваме да додадете ознака за еднонасочни улици како oneway | yes - но како да познаете во која насока? Најдолу-лево има стрелка која го означува правецот напатот, од почеток до крај. Кликнете на неа за да ја свртите обратно.\nИзбор на ваши сопствени ознаки\nСекако, не сте ограничени само на зададените ознаки. Користете го копчето „+“ за да користите какви што сакате ознаки.\n\nМожете да видите какви ознаки користат другите на OSMdoc, а имаме и долга листа на популарни ознаки на нашето вики нареченаЕлементи. Но тие се само предлози, а не правила. Најслободно измислувајте си свои ознаки или преземајте од други корисници.\n\nБидејќи податоците од OpenStreetMap се користат за изработување на различни карти, секоја карта прикажува свој избор од ознаки.\nРелации\nПонекогаш не се доволни само ознаки, па ќе треба да „групирате“ два или повеќе пата. Можеби вртењето од една улица во друга е забрането, или пак 20 патеки заедно сочиннуваат означена велосипедска патека. Ова се прави во напредното мени „релации“. Дознајте повеќе на викито.\n\nВраќање грешки\nОва е копчето за враќање (може и со стискање на Z) - ова ќе го врати последното нешто кое сте го направиле.\n\nМожете да „вратите“ претходно зачувана верзија на еден пат или точка. Одберете ја, па кликнете на нејзиниот ид. бр. (бројот најдолу-лево) - или притиснете на H (за „историја“). Ќе видите листа на која се наведува кој ја уредувал и кога. Одберете ја саканата верзија, и стиснете на „Врати“.\n\nДоколку сте избришале пат по грешка и сте зачувале, притиснете U (за да вратите). Ќе се појават сите избришани патишта. Одберете го саканиот пат; отклучете го со кликнување на катанчето; и зачувајте.\n\nМислите дека некој друг корисник направил грешка? Испратете му пријателска порака. Користете ја историјата (H) за да му го изберете името, па кликнете на „Пошта“\n\nКористете го Инспекторот (во менито „Напредно“) за корисни информации за моменталниот пат или точка.\nЧПП\nКако да ги видам моите патни точки?\nПатните точки се појавуваат само ако кликнете на „уреди“ до името на трагата во „GPS траги“. Податотеката мора да има и патни точки и запис на трагата - серверот не пропушта податотеки кои имаат само патни точки.\n\nПовеќе ЧПП за Potlatch и OpenStreetMap.\n\n\n\nПобрзо работење\nШто повеќе зумирате, тоа повеќе податоци мора да вчита Potlatch. Зумирајте пред да сиснете „Уреди“\n\nИсклучете го „Користи курсори „молив“ и „рака““ (во прозорецот за прилагодување) за да добиете максимална брзина.\n\nАко серверот работи бавно, вратете се подоцна. Проверете го викито за да проверите познати проблеми. Некои термини како недела навечер се секогаш оптоварени.\n\nКажете му на Potlatch да ги запамти вашите омилени комплети со ознаки. Одберете пат или точка со тие ознаки, па притиснете на Ctrl, Shift и на број од 1 до 9. Потоа за повторно да ги користите тие ознаки, само притиснете Shift и тој број. (Ќе се паметат секојпат кога го користите Potlatch на овој компјутер.)\n\nПретворете ја вашата GPS трага во пат со тоа што ќе ја пронајдете на листата „GPS траги“ и ќе кликнете на „уреди“ до неа, а потоа на кутивчето „претвори“. Трагата ќе се заклучи (црвено), затоа не зачувувајте. Најпрвин уредете ја, па кликнете на катанчето (најдолу-десно) за да ја отклучите кога сте спремни да ја зачувате.\n\nШто да кликате\nВлечете ја картата за да се движите наоколу.\nДвоен клик за да направите нова точка од интерес (POI).\nКликнете еднап за да започнете нов пат.\nДржете и влечете пат или точка од интерес (POI) за да ги поместите.\nКога цртате пат\nДвоен клик или Enter за да завршите со цртање.\nКликнете на друг пат за да направите крстосница.\nShift-клик на крајот на друг пат за да споите.\nКога ќе изберете пат\nКликнете на точката за да ја одберете.\nShift-клик на патот за да вметнете нова точка.\nShift-клик на точка за оттаму да започнете нов пат.\nCtrl-клик на друг пат за спојување.\n\nТастатурни кратенки\nB Додај позадинска изворна ознака\nC Затвори измени\nG Прикажи GPS траги\nH Прикажи историја\nI Прикажи инспектор\nJ сврзи точка за вкрстени патишта\nK Заклучи/отклучи го моментално избраното\nL Прикажи моментална географска должина\nM Зголеми уредувачки прозорец\nP Создај паралелен пат\nR Повтори ги ознаките\nS Зачувај (освен ако не е во живо)\nT Подреди во права линија/круг\nU Врати избришано (прикажи избришани патишра)\nX Пресечи пат на две\nZ Врати\n- Отстрани точка само од овој пат\n+ Додај нова ознака\n/ Избор на друг пат со истава точка\nDelete Избриши точка\n (+Shift) Избриши цел пат\nEnter Заврши со цртање на линијата\nSpace Држи и влечи позадина\nEsc Откажи го ова уредување\n; превчитај од серверот\n0 Отстрани ги сите ознаки\n1-9 Избор на зададени ознаки\n (+Shift) Избери запамтени ознаки\n (+S/Ctrl) Запамти ознаки\n§ или ` Кружи помеѓу групи ознаки\n\n" hint_drawmode: кликнете за да додадете точка,\nдвоен клик/Ентер\nза да ја завршите линијата hint_latlon: "Г.Ш. $1\nГ.Д. $2" hint_loading: вчитувам податоци @@ -89,6 +90,7 @@ mk: hint_saving: ги зачувувам податоците hint_saving_loading: вчитување/зачувување податоци inspector: Инспектор + inspector_duplicate: Дупликат на inspector_in_ways: Со патишта inspector_latlon: "Г.Ш. $1\nГ.Д. $2" inspector_locked: Заклучено @@ -100,6 +102,7 @@ mk: inspector_way_connects_to_principal: Се поврзува со $1 $2 и $3 други $4 inspector_way_nodes: $1 јазли inspector_way_nodes_closed: $1 јазли (затворено) + loading: Вчитувам... login_pwd: "Лозинка:" login_retry: Најавата не беше распознаена. Обидете се повторно. login_title: Не можев да ве најавам @@ -126,6 +129,8 @@ mk: option_layer_ooc_25k: "Историски британски: 1:25k" option_layer_ooc_7th: "Историски британски: 7-ми" option_layer_ooc_npe: "Историски британски: NPE" + option_layer_ooc_scotland: "Историски британски: Шкотска" + option_layer_os_streetview: "Британија: OS StreetView" option_layer_streets_haiti: "Хаити: имиња на улици" option_layer_tip: Изберете позадина option_limitways: Предупреди ме кога се вчитува голем број на податоци @@ -179,13 +184,19 @@ mk: prompt_microblog: Испрати на $1 (преостанува $2) prompt_revertversion: "Врати претходна зачувана верзија:" prompt_savechanges: Зачувај промени - prompt_taggedpoints: Некои точки на обој пат се означени. Сепак да бришам? + prompt_taggedpoints: Некои точки на овој пат се означени. Навистина да ги избришам? prompt_track: Претворете GPS траги во патишта prompt_unlock: Кликнете за да отклучите prompt_welcome: Добредојдовте на OpenStreetMap! retry: Повторен обид revert: Врати save: Зачувај + tags_backtolist: Назад кон листата + tags_descriptions: Описи на „$1“ + tags_findatag: Најди ознака + tags_findtag: Најди ознака + tags_matching: Популарни ознаки соодветни на „$1“ + tags_typesearchterm: "Внесете збор за пребарување:" tip_addrelation: Додај во релација tip_addtag: Додај нова ознака tip_alert: Се појави грешка - кликнете за детали diff --git a/config/potlatch/locales/nl.yml b/config/potlatch/locales/nl.yml index e53d8ecf8..263c121b0 100644 --- a/config/potlatch/locales/nl.yml +++ b/config/potlatch/locales/nl.yml @@ -131,6 +131,7 @@ nl: option_layer_ooc_7th: "VK historisch: 7e" option_layer_ooc_npe: "VK historisch: NPE" option_layer_ooc_scotland: "VK historisch: Schotland" + option_layer_os_streetview: "VK: OS StreetView" option_layer_streets_haiti: "Haïti: straatnamen" option_layer_tip: De achtergrondweergave kiezen option_limitways: Waarschuwen als er veel gegevens geladen moeten worden @@ -184,7 +185,7 @@ nl: prompt_microblog: Op $1 plaatsen ($2 over) prompt_revertversion: "Teruggaan naar een oudere versie:" prompt_savechanges: Wijzigingen opslaan - prompt_taggedpoints: Sommige punten op deze weg hebben labels. Echt verwijderen? + prompt_taggedpoints: Sommige punten op deze weg hebben labels of relaties. Echt verwijderen? prompt_track: GPS-tracks naar wegen converteren prompt_unlock: Klik om vrij te geven prompt_welcome: Welkom bij OpenStreetMap! @@ -194,6 +195,7 @@ nl: tags_backtolist: Terug naar de lijst tags_descriptions: Beschrijvingen van "$1" tags_findatag: Label zoeken + tags_findtag: Label zoeken tags_matching: Populaire labels voor "$1" tags_typesearchterm: "Zoeken naar:" tip_addrelation: Voeg toe aan een relatie diff --git a/config/potlatch/locales/no.yml b/config/potlatch/locales/no.yml index 1184fcc1b..50afb5a68 100644 --- a/config/potlatch/locales/no.yml +++ b/config/potlatch/locales/no.yml @@ -1,7 +1,9 @@ # Messages for Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) # Exported from translatewiki.net # Export driver: syck +# Author: Hansfn # Author: Laaknor +# Author: Nghtwlkr "no": a_poi: $1 et POI a_way: $1 en linje @@ -19,18 +21,26 @@ action_pointtags: sette merker på et punkt action_poitags: sette merker på et POI (interessant punkt) action_reverseway: snur en linje bak fram + action_revertway: endrer retning på en vei action_splitway: dele en linje action_waytags: sette merker på en linje advanced: Avansert advanced_close: Lukk endringssett advanced_history: Linjens historie + advanced_inspector: Inspektør advanced_maximise: Maksimer vindu advanced_minimise: Minimer vindu + advanced_parallel: Parallell vei advanced_tooltip: Avanserte redigeringshandlinger advanced_undelete: Ikke slett + advice_bendy: For bøyd til å rette ut (SHIFT for å tvinge) + advice_conflict: Tjenerkonflikt - du må kanskje prøve å lagre igjen advice_deletingpoi: Sletter POI (Z for å angre) advice_deletingway: Sletter vei (Z for å angre) + advice_microblogged: Oppdaterte din $1 status advice_nocommonpoint: Linjene deler ikke et felles punkt + advice_revertingpoi: Tilbakestiller til sist lagrede POI (Z for å angre) \ + advice_revertingway: Tilbakestiller til sist lagrede vei (Z for å angre) \ advice_tagconflict: Ulike merker, vennligst sjekk (Z for å angre) advice_toolong: For lang til å låse opp, linjen må deles i flere biter advice_uploadempty: Ingenting å laste opp @@ -38,19 +48,25 @@ advice_uploadsuccess: Alle data ble lastet opp advice_waydragged: Linje flyttet (Z for å angre) cancel: Avbryt + closechangeset: Lukker endringssett conflict_download: Last ned deres versjon conflict_overwrite: Overskriv deres versjon + conflict_poichanged: Etter at du startet redigeringen har noen andre endret punkt $1$2. + conflict_relchanged: Etter at du startet redigeringen har noen andre endret relasjonen $1$2. conflict_visitpoi: Klikk 'OK' for å visepunkt. conflict_visitway: Klikk 'Ok' for å vise linjen. conflict_waychanged: Etter at du startet å redigere har noen andre endret $1$2. createrelation: Lag en ny relasjon + custom: "Egendefinert:" delete: Slett deleting: sletter + drag_pois: Dra og slipp interessepunkt editinglive: Redigerer live editingoffline: Redigering frakobla emailauthor: \n\nVennligst send en epost (på engelsk) til richard\@systemeD.net med en feilrapport, og forklar hva du gjorde når det skjedde. error_anonymous: Du kan ikke kontakte en anonym kartbruker. error_connectionfailed: "Beklager - forbindelsen til OpenStreetMap-tjeneren feilet, eventuelle nye endringer har ikke blitt lagret.\n\nVil du prøve på nytt?" + error_microblog_long: "Posting til $1 feilet:\nHTTP-kode: $2\nFeilmelding: $3\n$1-feil: $4" error_nopoi: Fant ikke POI-et, så det er ikke mulig å angre. (Kanskje den ikke er på skjermen lenger?) error_nosharedpoint: Linjene $1 og $2 deler ikke noe punkt lenger, så det er ikke mulig å angre. error_noway: Fant ikke linjen $1 så det er ikke mulig å angre. (Kanskje den ikke er på skjermen lenger?) @@ -62,6 +78,7 @@ heading_introduction: Introduksjon heading_pois: Komme igang heading_quickref: Rask referanse + heading_surveying: Kartlegging heading_tagging: Merking heading_troubleshooting: Feilsøking help: Hjelp @@ -73,13 +90,22 @@ hint_pointselected: punkt valgt\n(shift+trykk punktet for å\nstarte en ny linje) hint_saving: lagrer data hint_saving_loading: laster/lagrer data + inspector: Inspektør + inspector_duplicate: Duplikat av + inspector_in_ways: På måter inspector_latlon: "Bre $1\nLen $2\n\\" inspector_locked: Låst inspector_node_count: ($1 ganger) + inspector_not_in_any_ways: Ikke på noen måter (POI) inspector_unsaved: Ulagret inspector_uploading: (laster opp) + inspector_way_connects_to: Kobler til $1 veier + inspector_way_connects_to_principal: Kobler til $1 $2 og $3 andre $4 inspector_way_nodes: $1 noder + inspector_way_nodes_closed: $1 noder (lukket) + loading: Laster... login_pwd: "Passord:" + login_retry: Ditt logginn ble ikke gjenkjent. Vennligst prøv igjen. login_title: Kunne ikke logge inn login_uid: "Brukernavn:" mail: Post @@ -88,22 +114,32 @@ "no": Nei nobackground: Ingen bakgrunn norelations: Ingen relasjoner i området på skjermen + offset_broadcanal: Bred tauningssti langs kanal + offset_choose: Endre forskyving (m) offset_motorway: Motorvei (D3) + offset_narrowcanal: Smal tauningssti langs kanal ok: Ok openchangeset: Åpner endringssett option_custompointers: Bruk penn- og håndpekere + option_external: "Starte eksternt:" option_fadebackground: Fjern bakgrunn option_layer_cycle_map: OSM - sykkelkart option_layer_maplint: OSM - Maplint (feil) option_layer_nearmap: "Australia: NearMap" option_layer_ooc_25k: "Historiske UK kart: 1:25k" + option_layer_ooc_7th: "UK historisk: 7de" + option_layer_ooc_npe: "UK historisk: NPE" + option_layer_ooc_scotland: "UK historisk: Skottland" + option_layer_streets_haiti: "Haiti: gatenavn" option_layer_tip: Velg bakgrunnen som skal vises + option_limitways: Advar når mye data lastes option_microblog_id: "Mikroblogg brukernavn:" option_microblog_pwd: "Mikroblog passord:" option_noname: Uthev veier uten navn option_photo: "Bilde KML:" option_thinareas: Bruk tynnere linjer for områder option_thinlines: Bruk tynne linjer uansett forstørrelse + option_tiger: Marker uendret TIGER option_warnings: Vis flytende advarsler point: Punkt preset_icon_airport: Flyplass @@ -111,6 +147,8 @@ preset_icon_bus_stop: Busstopp preset_icon_cafe: Kafé preset_icon_cinema: Kino + preset_icon_convenience: Nærbutikk + preset_icon_disaster: Bygning i Haiti preset_icon_fast_food: Fastfood preset_icon_ferry_terminal: Ferge preset_icon_fire_station: Brannstasjon @@ -123,12 +161,15 @@ preset_icon_police: Politistasjon preset_icon_post_box: Postboks preset_icon_pub: Pub + preset_icon_recycling: Resirkulering preset_icon_restaurant: Restaurant preset_icon_school: Skole preset_icon_station: Jernbanestasjon preset_icon_supermarket: Supermarked + preset_icon_taxi: Drosjeholdeplass preset_icon_telephone: Telefon preset_icon_theatre: Teater + preset_tip: Velg fra en meny med forhåndsdefinerte merkelapper som beskriver $1 prompt_addtorelation: Legg $1 til en relasjon prompt_changesetcomment: "Legg inn en beskrivelse av dine endringer:" prompt_closechangeset: Lukk endringssett $1 @@ -138,13 +179,23 @@ prompt_helpavailable: Ny bruker? Se nederst til venstre for hjelp. prompt_launch: Kjør ekstern URL prompt_live: I direkte-modus kommer alle endringer du gjør til å bli lagret på OpenStreetMaps database med en gang - det er ikke anbefalt for nybegynnere. Er du sikker? + prompt_manyways: Dette området er svært detaljert og vil ta lang tid å laste. Vil du zoome inn? + prompt_microblog: Post til $1 ($2 igjen) prompt_revertversion: "Tilbakestill til tidligere lagret versjon:" prompt_savechanges: Lagre endringer - prompt_taggedpoints: Noen av punktene på denne linjen har merker. Vil du virkelig slette? + prompt_taggedpoints: Noen av punktene på denne veien har merker eller er med i relasjoner. Vil du virkelig slette? prompt_track: Overfør dine GPS-sporinger til (låste) linjer for redigering. + prompt_unlock: Klikk for å låse opp prompt_welcome: Velkommen til OpenStreetMap! retry: Prøv igjen + revert: Tilbakestill save: Lagre + tags_backtolist: Tilbake til liste + tags_descriptions: Beskrivelser av '$1' + tags_findatag: Finn et merke + tags_findtag: Finn merkelapp + tags_matching: Populære merker som passer '$1̈́' + tags_typesearchterm: "Skriv inn et ord å lete etter:" tip_addrelation: Legg til i en relasjon tip_addtag: Legg til merke tip_alert: Det oppstod en feil, trykk for detaljer @@ -160,10 +211,12 @@ tip_revertversion: Velg versjonen det skal tilbakestilles til tip_selectrelation: Legg til den valgte ruta tip_splitway: Del linje i valgt punkt (X) + tip_tidy: Rydd opp punkter i vei (T) tip_undo: Angre $1 (Z) uploading: Laster opp ... uploading_deleting_pois: Sletter POI-er uploading_deleting_ways: Sletter veier + uploading_poi: Laster opp POI $1 uploading_poi_name: Laster opp POI $1, $2 uploading_relation: Laster opp relasjon $1 uploading_relation_name: Laster opp relasjon $1, $2 @@ -171,3 +224,4 @@ uploading_way_name: Laster opp vei $1, $2 warning: Advarsel! way: Linje + "yes": Ja diff --git a/config/potlatch/locales/pms.yml b/config/potlatch/locales/pms.yml new file mode 100644 index 000000000..6c8431948 --- /dev/null +++ b/config/potlatch/locales/pms.yml @@ -0,0 +1,6 @@ +# Messages for Piedmontese (Piemontèis) +# Exported from translatewiki.net +# Export driver: syck +# Author: Borichèt +pms: + help_html: "\nBin ëvnù a Potlatch\nPotlatch a l'é l'editor ch'a l'é belfé dovresse për OpenStreetMap. A disegna stra, përcors, confin e a ampòrta da sò GPS arserche, imàgin da satélit o veje carte.\n\nSte pàgine d'agiut-sì a lo compagnëran për le fonsion ëd base ëd Potlatch, e a-j diran andoa trové pi d'anformassion. Ch'a sgnaca an sj'antestassion sì-sota për ancaminé.\n\nQuand ch'a l'ha finì, ch'a sgnaca mach an qualsëssìa àutr pòst an sla pàgina.\n\n\n\nElement ùtij da savèj\nCh'a còpia pa da dj'àutre carte!\n\nS'a sern 'Modifiché an direta', qualsëssìa cangiament ch'a farà a andrà ant la base ëd dàit man a man ch'a-j fa - visadì, dun-a. S'as sent pa sigur, ch'a serna 'Modifiché con salvatagi', e a andran andrinta mach quand ch'a sgnacrà 'Salvé'.\n\nQualsëssìa modìfica ch'a fa ëd sòlit a sarà mostrà an sla carta apress n'ora o doe (chèiche modìfiche a peulo pijé na sman-a). Pa tut a l'é mostrà an sla carta - a smijrìa tròp ancasinà. Ma dagià che ij dat d'OpenStreetMap a son a sorgiss lìbera, d'àutre përson-e a son lìbere ëd fé ëd carte ch'a mostro d'aspet diferent - com OpenCycleMap o Midnight Commander.\n\nCh'as visa che a l'é sia na bela carta (parèj ch'a disegna le curve për da bin) sia un diagrama (parèj ch'as sigura che le stra as ancontro a le crosiere).\n\nI l'oma parlà ëd copié nen da d'àutre carte?\n\n\nTreuva pi anformassion\nManual Potlatch\nLista ëd pòsta\nCiaciarada an linia (agiut dal viv)\npiassa ëd discussion an sla Ragnà\nComunità wiki\nCòdes sorgiss ëd Potlatch\n\n\n\nPër ancaminé\nAdess ch'a l'ha Potlatch duvert, ch'a sgnaca 'Modifiché con salvatagi' për ancaminé.\n\nParèj a l'é pront a disegné na carta. La manera pi bel fé për ancaminé a l'é ëd buté chèich pont d'anteresse an sla carta - o \"POI\". Costi-sì a peulo esse piòle, gesie, stassion feroviarie ... tut lòn ch'a veul.\n\nTiré e lassé andé\nPër fela motobin bel fé, a s-ciairërà na selession dij POI pi comun, pròpi sota soa carta. Për butene un an sla carta a basta tirelo da lì fin ant ël pòst giust an sla carta. E ch'as sagrin-a pa s'a lo buta nen ant ël pòst giust al prim colp: a peul tirelo fin ch'a l'é giust. Ch'a nòta che ël POI a l'é evidensià an giàun për fé vëdde ch'a l'é selessionà.\n\nNa vira ch'a l'ha fàit lòn, a vorërà deje un nòm a soa piòla (o gesia, o stassion). A vëdrà che na cita tabela a l'é comparìa sota. Un-a dj'intrade a dirà \"nòm\" seguì da \"(nòm ëd la sòrt ambelessì)\". Ch'a lo fasa - ch'a sgnaca col test, e ch'a anserissa ël nòm.\n\nCh'a sgnaca da n'àutra part an sla carta për desselessioné sò POI, e ël cit panel ëd tùit ij color a comparirà torna.\n\nBel fé, neh? Ch'a sgnaca 'Salva' (boton a drita) quand ch'a l'ha fàit.\nTramudesse\nPër tramudesse a n'àutra part ëd la carta, ch'a la tira mach an na zòna veuida. Potlatch a cariërà an automàtich ij dat neuv (ch'a varda an àut an sla drita).\n\nI l'avìo dije \"seurte sensa salvé', ma a peule ëdcò sgnaché 'Modifiché an linia'. S'a fa sòn, soe modìfiche a andran ant la base ëd dàit diretament, parèj a-i é pa ël boton 'Salvé'. Sòn a va bin për modìfiche leste e ciambree ëd cartografìa.\n\nPass apress\nContent ëd tut sòn? Bòn. Ch'a sgnaca 'Rilevament' sì-dzora për savèj com vnì un ver cartògraf!\n\nRilevament con un GPS\nL'ideja daré OpenStreetMap a l'é 'd fé na carta sensa ij drit ëd còpia restritiv ëd j'àutre carte. Sòn a veul dì ch'a peule pa copié da gnun-e part: a deuv andé e rilevé le stra chiel-midem. Për boneur, a l'é amusant! La manera pi belfé ëd fé sòn a l'é con un dispositiv GPS portàbil. Ch'a treuva na zòna ch'a l'é pa ancor cartografà, peui ch'a marcia o ch'a vada an biciclëtta për le stra con sò GPS anvisch. Ch'a pija nòta dij nòm ëd le stra, e ëd qualsëssìa àutra ròba anteressanta (piòle? gesie?), man man ch'a va.\n\nQuand ch'a va a ca, sò GPS a contnirà na registrassion ëd le marche ëd tùit ij pòst andoa a l'é stàit. A peul antlora carié sossì su OpenStreetMap.\n\nLa sòrt ëd GPS pi bon a l'é col ch'a registra la marca soens (minca second o doi) e ch'a l'ha na gran memòria. Un mucc dij nòsti cartògraf a deuvro Garmin portàtij o cite unità Bluetooth. A-i son dle recension detajà ëd GPS dzora nòsta wiki.\n\nCarié soa marcadura\nAdess, a deuv pijé soe marcadure da sò GPS. A peul esse che sò GPS a l'abia chèich programa, o a peul esse ch'a-j lassa copié j'archivi via USB. Dësnò, ch'a preuva GPSBabel. An tùit ij cas, l'archivi a deuv esse an formà GPX.\n\nPeui, ch'a deuvra l'etichëtta 'Marche GPS' për carié soa marcadura su OpenStreetMap. Ma sòn a l'é mach la prima part - a aparirà pa ancó an sla carta. A deuv disegné e deje un nòm a le stra chiel-midem, an dovrand la marcadura com guida.\nDovré toa trassadura\nCh'a treuva soa marcadura ant la lista dle 'Marche GPS', e ch'a sgnaca 'modifiché' pròpi lì da banda. Potlatch a partirà con sta marca carià, pi tùit j'àutri pont. A l'é pront për disegné!\n\nA peul ëdcò sgnaché sto boton-sì për vëdde le marcadure GPS ëd tuti (ma pa ij pont dël përcors) per la zòna corenta. Ch'agnaca Majùscole për vëdde mach soe marcadure.\nDovré fòto da satélit\nS'a l'ha pa un GPS, ch'as sagrin-a pa. An chèiche sità, i l'oma ëd fòto da satélit andoa a peul marché ansima, gentilment dàite da Yahoo! (mersì!). Ch'a seurta e ch'a pija nòta dij nòm ëd le stra, peui ch'a torna andré e ch'a-j dissegna.\n\nS'a s-ciàira nen la galarìa da satélit, ch'a sgnaca ël boton ëd j'opsion e ch'as sigura che 'Yahoo!' a sia selessionà. S'a-j vëd anco' pa, a podrìa esse nen disponìbil për soa sità, o ch'a deva torné andré un pòch con l'agrandiment.\n\nSu sto midem boton ëd j'opsion a trovrà chèich àutre sèrnie com na carta sensa drit ëd còpia dël Regn Unì, e OpenTopMap për jë Stat Unì. Coste a son tute selessionà përchè i podoma dovreje - ch'a còpia pa da gnun-e àutre carte o fòto aéree. (La lej dij drit d'autor a fa s-giaj.)\n\nDle vire le figure da satélit a son un pòch ëspostà da doa le stra a son. S'a treuva sòn, ch'a sgnaca lë Spassi e ch'a tira lë sfond fin ch'a l'é alineà. Le marcadure GPS a son sempe pi sicure che le fòto da satélit.\n\nDisegné dij përcors\nPër disegné na stra (o 'përcors') partend da në spassi bianch an sla carta, ch'a sgnaca mach ambelessì; peui su minca pont an sla stra. Quand ch'a l'ha finì, ch'a sgnaca doe vire o ch'a sgnaca su A cap - peui ch'a sgnaca da n'àutra part për desselessioné la stra.\n\nPër disegné na stra an partend da n'àutra stra, ch'a sgnaca an sla stra për selessionela; ij sò pontin a compariran an ross. Ch'a ten-a sgnacà Majùscole e ch'a sgnaca un dij pontin për fé parte na neuva stra da col pont. (S'a-i é gnun pontin ross a la crosiera, ch'a ten-a sgnacà Majùscule e cha selession-a andoa a na veul un!)\n\nSgnaché 'Salvé' (an bass a drita) quand ch'a l'ha finì. Ch'a salva soens, dle vire ël servent a l'èissa dij problema.\n\nCh'a së speta pa che soe modìfiche a sio mostrà dlongh an sla carta prinsipal. Normalment a-i va n'ora o doe, dle vire fin a na sman-a.\nFé dle crosiere\nA l'é pròpi amportant, quand che doe stra a s'ancrosio, che a condivido un pontin (o 'neu'). Ij pianificator d'itinerari a deuvro sòn për savèj andoa giré.\n\nPotlatch a soagna sòn, fin che a fa atension a sgnaché pròpe an sla stra ch'a l'é an camin ch'a ancrosia. Ch'a varda ij segn d'agiut: le crosiere a ven-o bleuve, ël pontador a cangia, e quand ch'a l'ha fàit, la crosiera a l'ha na sotliniadura nèira.\nTramudé e scancelé\nSòn a travaja pròpi com un a së speta. Për scancelé na crosiera, ch'a la selession-a e ch'a sgnaca Scancelé. Për scancelé na stra antrega, ch'a sgnaca Majùscole-Scancelé.\n\nPër sposté cheicòs, ch'a lo tira mach. (A dovrà gnaché e tnì sgnacà për un pòch antramentre che a tira na stra, parèj a lo farà pa për eror.)\nDisegn pi avansà\nSe doe part ëd na stra a l'han dij nòm diferent, a dovrà dividla. Ch'a sgnaca an sla stra; peui ch'a sgnaca a la mira andoa a dovrìa esse dividùa, e ch'a sgnaca le tisòire. (A peul fonde le stra an sgnacand con Contròl, o ël tast Apple dzora al Mac, ma ch'a fonda pa doe stra con nòm o sòrt diferent.)\n\nLe rotonde a son pròpi malfé disegné giuste. Ch'as sagrin-a pa - Potlatch a peul giutelo. Ch'a disegna mach ël riond, ch'as sicura che as sara su chiel midem a la fin, peui ch'a sgnaca sta plancia-sì për \"polidelo\". (A peul ëdcò dovré son për drissé le stra.)\nLeu d'anteresse\nLa prima còsa ch'a l'ha amparà a l'é com tiré-e-tramudé un leu d'anteresse. A peul ëdcò creene un sgnacand doe vire an sla carta: a-i ven në riond verd. Ma com a sa s'a l'é na piòla, na gesia o d'àutr? Ch'a sgnaca 'Etichëtté', sì-sota, për savèjlo!\n\nChe sòrt dë stra é-lo?\nNa vira ch'a l'has disegnà na stra, a dovrìa dì lòn ch'a l'é. A l'é na stra prinsipal, un senté o un rì? Col ch'a l'é sò nòm? J'é-lo dle régole speciaj (per esempi \"gnun-e bici\")?\n\nAn OpenStreetMap, a memorise sòn an dovrand 'etichëtte'. N'etichëtta a l'ha doe part, e a peule avèjne vàire ch'a veul. Për esempi, a peul gionté strà | camionàbil për dì ch'a l'é na stra prinsipal; stra | residensial për na stra an quartié residensial; o stra | senté për un senté. Se le bici a son vietà, a peul ëdcò gionté bici | nò. Peui për memorisé sò nòm, ch'a gionta name | Stra dël mërcà.\n\nJ'etichëtte an Potlatch as vëddo al fond ëd lë scren - ch'a sgnaca na stra esistenta, e a vëddrà che etichëtta ch'a l'ha. Ch'a sgnaca ël segn '+' (sota a drita) për gionté n'etichëtta neuva. Ël 'x' su minca etichëtta a la scancela.\n\nA peul etichëtté la strà antrega; pont an sla stra (a peulo esse na pòrta o un semàfor); e pont d'anteresse.\nDovré etichëtte preampostà\nPër ancaminé, Potlatch a l'ha dj'ampostassion già pronte contenente j'etichëtte pi popolar.\n\nCh'a selession-a na stra, peui ch'a sgnaca an sij sìmboj fin a che a na treuva un adat. Peui, ch'a serna l'opsion pi aproprià da la lista.\n\nSòn a ampinirà j'etichëtte. Cheidun-e a saran lassà bianche parsialment parèj a podrà anserì andrinta (për esempi) ël nòm ëd la stra e ël nùmer.\nStra a sens ùnich\nA peul vorèj gionté n'etichëtta com stra a sens ùnich | é! - ma com a dis la diression? A-i é na flecia an bass a snista ch'a mosta la diression ëd la stra, da l'inissi a la fin. Ch'a la sgnaca për virela.\nSerne le tichëtte pròprie\nËd sigura a l'é pa limità mach ai preampostà. An dovrand ël boton '+', a peul dovré tute j'etichëtte.\n\nA peul vardé che etichëtte j'àutre përson-e a deuvro su OSMdoc, e a-i é na longa lista d'etichëtte popolar su nòsta wiki ciamà Caraterìstiche dle carte. Ma costi a son mach ëd sugeriment, pa ëd régole. A l'é lìber d'anventé soe etichëtte o ëd pijeje da j'àutri.\n\nDagià che ij dat d'OpenStreetMap a son dovrà për fé tante carte diferente, minca carta a mostrërà (o 'rendrà') soa sèrnia d'etichëtte.\nRelassion\nChèiche vire j'etichëtte a son pa basta, e a deuv 'fonde' doe o pi stra. A peul esse ch'as peussa pa giré da na stra a n'àutra, o che 20 ëstra ansema a faso na stra marcà për le bici. A peul fé son con na possibilità avansà ciamà 'relassion'. Për savèjne ëd pi an sla wiki.\n\nScancelé j'eror\nCost-sì a l'é ël boton d'anulament (a peul ëdcò sgnaché Z) - a anulerà l'ùltima còsa ch'a l'ha fàit.\n\nA peul 'torné' a l'ùltima version salvà ëd na stra o d'un leu. Ch'a la selession-a, peui ch'a sgnaca sò ID (ël nùmer an bass a snista) - o ch'a sgnaca H (për stòria), a vëddrà na lista ëd tut lòn ch'a l'ha modificà, e quand. Ch'a serna cola andoa torné, e ch'a sgnaca buté andaré.\n\nS'a l'ha për asar scancelà na stra e salvà, ch'a sgnaca U (për 'disdëscancelé'). Tute le stra scancelà a saran mostrà. Ch'a serna cola ch'a veul; ch'a la dësblòca an sgnacand ël tast ross; e ch'a salva com al sòlit.\n\nPens-lo che cheidun d'àutri a l'abia fàit n'eror? Ch'a-j manda un mëssagi an pòsta eletrònica. Ch'a deuvra l'opsion dë stòria (H) për selessioné sò nòm, peui ch'a sgnaca 'Pòsta'.\n\nCh'a deuvra l'Ispetor (ant ël menu 'Avansà') për anformassion ùtij an sla stra o leu corent.\nFAQ\n Com i vëddo ij mé pont?\nIt pont as mostro mach s'a sgnaca 'modifiché' an sël nòm dla marcadura an 'Marcadure GPS'. L'archivi a deuv avèj sia pontin che registr dla marcadura andrinta - ël servent a arfuda tut lòn con mach ij pontin.\n\nPi FAQ për Potlatch e OpenStreetMap.\n\n\n\nTravajé pi an pressa\nPi a l'ha angrandì, pi dat Potlatch a deuv carié. Ch'a arduva prima dë sgnaché 'Modifiché'.\n\nCh'a gava 'Dovré piuma e pontador a man' (ant la fnestra dj'opsion) për n'andi pi àut.\n\nS'ël servent a gira pian, Ch'a torna andré. Ch'a contròla la wiki për problema conossù. Chèiche vire, com la Dumìnica 'd sèira, a son sempe carià.\n\nCh'a-j disa a Potlatch ëd memorisé ij sò ansema favorì d'etichëtte. Ch'a selession-a na stra o pont con cole etichëtte, peui ch'a sgnaca Ctrl, majùscole e un nùmer da 1 a 9. Peui, për apliché torna st'etichëtte-lì, ch'a sgnaca mach Majùscole e col nùmer. (A saran arcordà minca vira a deuvra Potlatch ansima a cost ordinator).\n\nCh'a converta soa marcadura GPS ant na stra trovandla ant la lista ëd 'Marcadure GPS', sgnacand 'Modìfiché' lì-da banda, peui selessionand la casela 'convertì'. A sarà blocà (ross) parèj a sarà pa salvà. Ch'a la modìfica prima, peui ch'a sgnaca ël tast ross për dësbloché quand a l'é pront a salvé.\n\nCò sgnaché\nTiré la carta për spostesse.\nSgnaché doe vire për creé un POI neuv.\nSgnaché na vira për ancaminé na stra neuva.\nSgnaché e tiré na stra o un POI për tramudelo.\nQuand as disegna na stra\nSgnaché doe vire o sgnaché Intra për finì ëd disegné.\nSgnaché n'àutra manera ëd fé na crosiera.\nMajùscole-sgnaché la fin ëd n'àutra stra për mës-cé.\nQuand na stra a l'é selessionà\nSgnaché un pontin për selessionelo.\nMajùscole-sgnaché an sla stra për anserì un pontin neuv.\nMajùscole-sgnaché un pontin për ancaminé na stra neuva da lì.\nContròl-sgnaché n'àutra stra për mës-cé.\n\nScurse da tastadura.\nB Gionté n'etichëtta sorgiss ëd lë sfond\nC Saré\nG Smon-e le marcadure GPS\nH Smon-e la stòria\nI Mostré l'ispetor\nJ Gionté dij pontin a dle stra ch'a s'ancrosio\nK Bloché/dësbloché la selession corenta\nL Mostré latitùdin/longitùdin corente\nM Massimisé la fnestra ëd modìfica\nP Creé na stra paralela\nR aRpete j'etichëtte\nS Salvé (sensa modifiché dal viv)\nT Rangé an na linia/un sercc\nU Torné andré (smon-e le stra scancelà)\nX Tajé na stra an doi\nZ Torné andré\n- Gavé ij pontin mach da sta stra-sì\n+ Gionté n'etichëtta neuva\n/ Selessioné n'àutra stra ch'a condivid sto pontin-sì\nScancelé Scancelé pontin\n (+Majùscole) Scancela na stra antrega\nA cap Finì ëd disegné na linia\nSpassi Pijé e tiré lë sfond\nEsc Fé pa sta modìfica-sì\n; carié torna dal servent\n0 Gavé tute j'etichëtte\n1-9 Selessioné j'etichëtte preampostà\n (+Majùscole) Selessioné j'etichëtte memorisà\n (+S/Ctrl) Memorisé j'etichëtte\n§ o ' Sicl tra le partìe dj'etichëtte\n\n" diff --git a/config/potlatch/locales/pt-BR.yml b/config/potlatch/locales/pt-BR.yml index 044b7fc11..974e0e2da 100644 --- a/config/potlatch/locales/pt-BR.yml +++ b/config/potlatch/locales/pt-BR.yml @@ -83,7 +83,7 @@ pt-BR: heading_tagging: Marcação heading_troubleshooting: Resolução de problemas help: Ajuda - help_html: "Bem-vindo ao Potlatch\nPotlatch é o editor simples de usar do OpenStreetMap. Desenhe ruas, caminhos, pontos turísticos e lojas através de seu conhecimento local, trilhas GPS, imagem de satélite ou mapas antigos.\n\nEssas páginas de ajuda iram lhe mostrar o básico da utilização do Potlatch, e vão lhe indicar onde conseguir mais. Clique nos títulos acima para começar.\n\nQuando você estiver satisfeito, simplesmente clique em qualquer outro lugar da página.\n\n\n\nÉ importante saber\nNão copie de outros mapas!\n\nSe você escolher 'Editar ao vivo', quaisquer mudanças que você fizer irão para o banco de dados assim que você as desenhar - quer dizer, imediatamente. Se você não estiver tão confiante, escolha 'Editar e Salvar', assim as mudanças só serão transferidas quando você pressionar 'Salvar'.\n\nQuaisquer edições que você fizer geralmente aparecem no mapa depois de uma ou duas horas (algumas coisas levam uma semana). Nem tudo é mostrado no mapa - se não ia ficar muito bagunçado. Devido aos dados do OpenStreetMap serem open source, outras pessoas estão livres para criar mapas mostrando diferentes aspectos - como OpenCycleMap ou Midnight Commander.\n\nLembre-se de que é um mapa bonito (então desenhe curvas bonitas) e um diagrama (então tenha certeza de que as ruas se cruzam nos cruzamentos).\n\nNós mencionamos alguma coisa sobre não copiar de outros mapas?\n\n\nDescubra mais\nManual do Potlatch\nListas de email\nChat online (ajuda ao vivo)\nFórum\nWiki\nCódigo fonte do Potlatch\n\n\n\nComeçando\nAgora que você abriu o Potlatch, clique em 'Editar e Salvar' para começar.\n\nEntão você estar pronto para desenhar o mapa. O jeito mais fácil de começar e botando alguns pontos de interesse no mapa - ou \"POIs\" (do inglês Points of Interest). Podem ser bares, igrejas, estações de trem... o que você quiser.\n\nArrastar\nPara ficar super fácil, você verá uma seleção dos pontos de interesse mais comuns, logo abaixo do mapa. Para adicionar um, basta arrastar para o lugar correto no mapa. Não se preocupe se você não acertar a posição de primeira: você pode arrastar o ponto no mapa até acertar. Note que o ponto é destacado em amarelo para você saber que ele está selecionado.\n\nAgora que você fez isso, você irá querer dar um nome para o seu bar (ou igreja, ou estação). Você verá que uma pequena tabela apareceu embaixo do mapa. Uma das entradas será \"name\" seguido de \"(type name here)\" (digite aqui). Faça isso - clique no texto, e digite o nome.\n\nClique em qualquer outro lugar do mapa para desselecionar seu ponto de interesse, e o painel colorido retorna.\n\nFácil, né? Clique em 'Salvar' (canto inferior direito) quando você tiver terminado.\nAndando por aí\nPara mover para uma parte do mapa diferente, é só arrastar uma área vazia. O Potlatch irá automaticamente carregar os novos dados (observe o canto superior direito).\n\nNós recomendamos você a usar o modo \"Editar e Salvar\", mas você também pode escolher o \"Editar ao vivo\". Se você o fizer, suas mudanças irão para o banco de dados direto, então não há botão de 'Salvar'. Isso é bom para mudanças rápidas e mapping parties.\n\nPróximos passos\nAchou legal? Ótimo. Clique em 'Explorando' (acima) para descobrir como se tornar um mapeador de verdade!\n\nExplorando com um GPS\nA ideia por trás do OpenStreetMap é criar um mapa sem o copyright restritivo de outros mapas. Isso quer dizer que você não pode copiar de qualquer outro lugar: você deve ir nas ruas e explorá-las você mesmo. E isso é bem divertido!\nA melhor maneira de fazer isso é com um GPS portátil. Encontre uma área que ainda não foi mapeada e ande ou pedale pelas ruas com o seu GPS ligado. Anote os nomes das ruas, e tudo que for interessante (bares? igrejas?) pelo caminho.\n\nQuando você chegar em casa, seu GPS terá uma trilha gravada, com as ruas em que você passou. Você pode subir este arquivo para o OpenStreetMap.\n\nO melhor tipo de GPS é um que grave o tracklog frequentemente (a cada um ou dois segundos) e tenha bastante memória. Muitos de nossos mapeadores usam GPS Garmin ou bluetooth. Eles estão detalhados no nosso wiki em GPS Reviews.\n\nSubindo sua trilha\nAgora, você precisa extrair a trilha do seu GPS. Talvez o seu GPS tenha vindo com algum programa, ou talvez ele permita copiar os arquivos via USB. Se não, você pode tentar usar o GPSBabel. De qualquer maneira, você quer um arquivo no formato GPX.\n\nEntão, use a aba 'Trilhas GPS' acima para carregar sua trilha para o OpenStreetMap. Mas este é só o primeiro passo - ele não irá aparecer no mapa ainda. Você deve desenhar e nomear as ruas, usando a trilha como guia.\nUsando sua trilha\nEncontre sua trilha carregada na lista de 'Trilhas GPS' e clique no botão 'editar' ao lado dela. O Potlatch irá abrir com essa trilha carregada e quaisquer pontos marcados. Você está pronto para desenhar!\n\n
\nVocê também pode clicar neste botão para mostrar as trilhas GPS de todos para a área atual. Segure SHIFT para mostrar só as suas trilhas.\n
\nUsando fotos de satélite\nSe você não tiver um GPS, não se preocupe. Em algumas cidades, nós temos fotos de satélite nas quais é possível traçar sobre, gentilmente fornecidas pelo Yahoo! (valeu!). Dê uma volta e anote o nome das ruas, então volte e trace as linhas.\n\nSe você não conseguir ver a imagem de satélite, clique no botão Opções e tenha certeza de que 'Yahoo!' está selecionado. Se você ainda não conseguir ver, provavelmente não está disponível para a sua cidade, ou talvez você precise diminuir um pouco o zoom.\n\nNesta mesma tela de opções você encontrará outras opções como mapas antigos do Reino Unido, e o OpenTopoMap para os Estados Unidos. Eles estão especialmente selecionados porque a sua utilização é permitida - não copie de nenhum outro mapa ou foto de satélite. (É, a lei do Copyright é uma droga.)\n\nÀs vezes as fotos de satélite estão um pouco desalinhadas de onde as ruas realmente são. Se for o caso, segure Espaço e arraste o fundo até que as linhas batam com as trilhas GPS. Sempre confie mais nas trilhas GPS do que nas fotos de satélite.\n\nDesenhando vias\nPara desenhar uma rua (ou 'via') começando num espaço em branco no mapa, simplesmente clique ali; então clique em cada ponto em que a rua faz curva ou cruza com outra. Quando você tiver terminado, dê um duplo-clique ou pressione Enter - então clique em algum lugar vazio para desselecionar a rua.\n\nPara desenhar uma via começando de outra via, clique na rua para selecioná-la; seus pontos irão aparecer em vermelho. Segure Shift e clique em um deles para começar uma nova via naquele ponto. (Se não há um ponto vermelho na junção, dê um shift-clique onde você quiser um!)\n\nClique em 'Salvar' (canto inferior direito) quando você tiver terminado. Salve com frequência, caso o servidor tenha problemas.\n\nNão espere que suas mudanças apareçam instantaneamente no mapa principal. Geralmente leva uma ou duas horas, às vezes leva uma semana.\nCriando junções\nÉ muito importante que, quando duas ruas se juntam, elas compartilhem um ponto (ou 'nó'). Planejadores de rotas usam isso para saber onde virar.\n\nO Potlatch toma conta disso desde que você clique exatamente na via que está juntando. Observe os sinais: os pontos aparecem em azul, o cursor do mouse muda, e quando você terminar, o ponto de junção terá um contorno preto.\nMovendo e apagando\nFunciona exatamente como você esperaria. Para apagar um ponto, selecione-o e pressione Delete. Para apagar toda uma via, pressione Shift-Delete.\n\nPara mover algo, simplesmente arraste. (Você terá que clicar e segurar um pouco antes de arrastar, de forma a evitar que você o faça por acidente.)\nDesenho avançado\n
\nSe duas partes de uma via tiverem nomes diferentes, você terá que separá-los. Clique na via; então clique no ponto onde a via deveria separar e clique no ícone da tesoura. (Você pode mesclar vias com Shift-clique, mas não combine duas ruas de diferentes nomes ou tipos, pois você terá de consertar manualmente.)\n
\n\nRotatórias são realmente difíceis de desenhar direito. Não se preocupe - o Potlatch pode ajudar. Simplesmente desenhe o círculo de forma bruta (um triângulo está OK), tendo certeza de que ele fecha no primeiro ponto, então clique neste ícone para 'arrumar'. (Você também pode usar isto para endireitar ruas.)
\nPontos de interesse\nA primeira coisa que você aprendeu foi como arrastar um ponto de interesse. Você também pode criar um dando um duplo-clique no mapa: um círculo verde aparece. Mas como dizer que ele é um bar, uma igreja ou o quê? Clique em 'Etiquetar' acima para descobrir!\n\nQue tipo de rua?\nQuando você tiver desenhado uma via, você deve dizer o que ela é. É uma auto-estrada, uma rua de pedestres ou um rio? Qual é o nome? Há alguma regra especial (por exemplo, \"proibido bicicleta\")?\n\nNo OpenStreetMap, você grava isso usando 'etiquetas' ('tags'). Uma etiqueta tem duas partes, e você pode ter quantas quiser. Por exemplo, você poderia adicionar highway | trunk para dizer que é uma auto-estrada; highway | residential para uma rua residencial; ou highway | footway para uma calçada. Se bicicletas forem proibidas, você pode adicionar bicycle | no. Para gravar o nome, adicione name | Rua do Mercado.\n\nAs etiquetas no Potlatch aparecem na parte de baixo da tela - clique numa rua que já exista, e você verá que tags ela tem. Clique no ícone '+' (canto inferior direito) para adicionar uma nova tag. O botão 'x' em cada tag a exclui.\n\nVocê pode etiquetar vias inteiras; pontos nas vias (talvez um portão ou sinal de trânsito); e pontos de interesse.\nEtiquetas pré-definidas\nPara começar, o Potlatch tem pré-definições prontas contendo as tags mais populares.\n\nSelecione uma via, então clique nos símbolos até que você encontre o mais apropriado. Então, clique na opção mais apropriada no menu.\n\nIsso irá preencher as tags. Algumas não são preenchidas para que você possa digitar (por exemplo) o nome da estrada e o seu número.\nRuas de mão-única\nVocê pode adicionar a tag oneway | yes - mas como dizer a direção? Há uma seta no canto inferior esquerdo que mostra a direção da via, do começo para o fim. Clique nela para inverter a direção.\nSuas próprias etiquetas\nÉ claro, você não está restrito às pré-definições. Usando o botão '+', você pode digitar uma tag qualquer.\n\nVocê pode ver as etiquetas que outras pessoas usam no OSMdoc, e há uma longa lista de etiquetas populares no wiki chamada Map Features. Mas elas são apenas sugestões, não regras. Você é livre para inventar suas etiquetas ou copiar de outras pessoas.\n\nComo os dados do OpenStreetMap são usados para fazer diferentes mapas, cada mapa irá mostrar (ou 'renderizar') seu próprio conjunto de etiquetas.\nRelacionamentos\nÀs vezes as etiquetas não são suficiente, e você precisa 'agrupar' duas ou mais vias. Seja uma conversão à direita que é proibida, ou 20 vias que juntas formam uma linha de ônibus. Você pode fazer isso com uma opção avançada chamada 'relacionamento'. Veja mais no wiki.\n\nDesfazendo erros\nEste é o botão de desfazer (você também pode pressionar Z) - ele irá desfazer a última coisa que você fez.\n\nVocê pode 'reverter' para uma versão previamente salva de uma via ou ponto. Selecione-a, clique no seu ID (o número no canto inferior esquerdo) - ou pressione H (de 'histórico'). Você verá uma lista de todos que a editaram, e quando. Escolha a que você deseja voltar, e clique em Reverter.\n\n
\nSe você acidentalmente apagou uma via e salvou, pressione U (de 'undelete', 'desapagar'). Todas as vias apagadas serão mostradas. Escolha a que você, destrave-a clicando no cadeado (pelo ID); e salve como usual.\n
\n\nThink someone else has made a mistake? Send them a friendly message. Use the history option (H) to select their name, then click 'Mail'.\n\nUse the Inspector (in the 'Advanced' menu) for helpful information about the current way or point.\n
FAQs\nHow do I see my waypoints?\nWaypoints only show up if you click 'edit' by the track name in 'GPS Traces'. The file has to have both waypoints and tracklog in it - the server rejects anything with waypoints alone.\n\nMore FAQs for Potlatch and OpenStreetMap.\n\n\n\nWorking faster\nThe further out you're zoomed, the more data Potlatch has to load. Zoom in before clicking 'Edit'.\n\nTurn off 'Use pen and hand pointers' (in the options window) for maximum speed.\n\nIf the server is running slowly, come back later. Check the wiki for known problems. Some times, like Sunday evenings, are always busy.\n\nTell Potlatch to memorise your favourite sets of tags. Select a way or point with those tags, then press Ctrl, Shift and a number from 1 to 9. Then, to apply those tags again, just press Shift and that number. (They'll be remembered every time you use Potlatch on this computer.)\n\nTurn your GPS track into a way by finding it in the 'GPS Traces' list, clicking 'edit' by it, then tick the 'convert' box. It'll be locked (red) so won't save. Edit it first, then click the red padlock to unlock when ready to save.\n\nWhat to click\nDrag the map to move around.\nDouble-click to create a new POI.\nSingle-click to start a new way.\nHold and drag a way or POI to move it.\nWhen drawing a way\nDouble-click or press Enter to finish drawing.\nClick another way to make a junction.\nShift-click the end of another way to merge.\nWhen a way is selected\nClick a point to select it.\nShift-click in the way to insert a new point.\nShift-click a point to start a new way from there.\nControl-click another way to merge.\n
\nKeyboard shortcuts\nB Add background source tag\nC Close changeset\nG Show GPS tracks\nH Show history\nI Show inspector\nJ Join point to crossing ways\nK Lock/unlock current selection\nL Show current latitude/longitude\nM Maximise editing window\nP Create parallel way\nR Repeat tags\nS Save (unless editing live)\nT Tidy into straight line/circle\nU Undelete (show deleted ways)\nX Cut way in two\nZ Undo\n- Remove point from this way only\n+ Add new tag\n/ Select another way sharing this point\nDelete Delete point\n (+Shift) Delete entire way\nReturn Finish drawing line\nSpace Hold and drag background\nEsc Abort this edit; reload from server\n0 Remove all tags\n1-9 Select preset tags\n (+Shift) Select memorised tags\n (+S/Ctrl) Memorise tags\n§ or ` Cycle between tag groups\n\n" + help_html: "Bem-vindo ao Potlatch\nPotlatch é o editor simples de usar do OpenStreetMap. Desenhe ruas, caminhos, pontos turísticos e lojas através de seu conhecimento local, trilhas GPS, imagem de satélite ou mapas antigos.\n\nEssas páginas de ajuda iram lhe mostrar o básico da utilização do Potlatch, e vão lhe indicar onde conseguir mais. Clique nos títulos acima para começar.\n\nQuando você estiver satisfeito, simplesmente clique em qualquer outro lugar da página.\n\n\n\nÉ importante saber\nNão copie de outros mapas!\n\nSe você escolher 'Editar ao vivo', quaisquer mudanças que você fizer irão para o banco de dados assim que você as desenhar - quer dizer, imediatamente. Se você não estiver tão confiante, escolha 'Editar e Salvar', assim as mudanças só serão transferidas quando você pressionar 'Salvar'.\n\nQuaisquer edições que você fizer geralmente aparecem no mapa depois de uma ou duas horas (algumas coisas levam uma semana). Nem tudo é mostrado no mapa - se não ia ficar muito bagunçado. Devido aos dados do OpenStreetMap serem open source, outras pessoas estão livres para criar mapas mostrando diferentes aspectos - como OpenCycleMap ou Midnight Commander.\n\nLembre-se de que é um mapa bonito (então desenhe curvas bonitas) e um diagrama (então tenha certeza de que as ruas se cruzam nos cruzamentos).\n\nNós mencionamos alguma coisa sobre não copiar de outros mapas?\n\n\nDescubra mais\nManual do Potlatch\nListas de email\nChat online (ajuda ao vivo)\nFórum\nWiki\nCódigo fonte do Potlatch\n\n\n\nComeçando\nAgora que você abriu o Potlatch, clique em 'Editar e Salvar' para começar.\n\nEntão você estar pronto para desenhar o mapa. O jeito mais fácil de começar e botando alguns pontos de interesse no mapa - ou \"POIs\" (do inglês Points of Interest). Podem ser bares, igrejas, estações de trem... o que você quiser.\n\nArrastar\nPara ficar super fácil, você verá uma seleção dos pontos de interesse mais comuns, logo abaixo do mapa. Para adicionar um, basta arrastar para o lugar correto no mapa. Não se preocupe se você não acertar a posição de primeira: você pode arrastar o ponto no mapa até acertar. Note que o ponto é destacado em amarelo para você saber que ele está selecionado.\n\nAgora que você fez isso, você irá querer dar um nome para o seu bar (ou igreja, ou estação). Você verá que uma pequena tabela apareceu embaixo do mapa. Uma das entradas será \"name\" seguido de \"(type name here)\" (digite aqui). Faça isso - clique no texto, e digite o nome.\n\nClique em qualquer outro lugar do mapa para desselecionar seu ponto de interesse, e o painel colorido retorna.\n\nFácil, né? Clique em 'Salvar' (canto inferior direito) quando você tiver terminado.\nAndando por aí\nPara mover para uma parte do mapa diferente, é só arrastar uma área vazia. O Potlatch irá automaticamente carregar os novos dados (observe o canto superior direito).\n\nNós recomendamos você a usar o modo \"Editar e Salvar\", mas você também pode escolher o \"Editar ao vivo\". Se você o fizer, suas mudanças irão para o banco de dados direto, então não há botão de 'Salvar'. Isso é bom para mudanças rápidas e mapping parties.\n\nPróximos passos\nAchou legal? Ótimo. Clique em 'Explorando' (acima) para descobrir como se tornar um mapeador de verdade!\n\nExplorando com um GPS\nA ideia por trás do OpenStreetMap é criar um mapa sem o copyright restritivo de outros mapas. Isso quer dizer que você não pode copiar de qualquer outro lugar: você deve ir nas ruas e explorá-las você mesmo. E isso é bem divertido!\nA melhor maneira de fazer isso é com um GPS portátil. Encontre uma área que ainda não foi mapeada e ande ou pedale pelas ruas com o seu GPS ligado. Anote os nomes das ruas, e tudo que for interessante (bares? igrejas?) pelo caminho.\n\nQuando você chegar em casa, seu GPS terá uma trilha gravada, com as ruas em que você passou. Você pode subir este arquivo para o OpenStreetMap.\n\nO melhor tipo de GPS é um que grave o tracklog frequentemente (a cada um ou dois segundos) e tenha bastante memória. Muitos de nossos mapeadores usam GPS Garmin ou bluetooth. Eles estão detalhados no nosso wiki em GPS Reviews.\n\nSubindo sua trilha\nAgora, você precisa extrair a trilha do seu GPS. Talvez o seu GPS tenha vindo com algum programa, ou talvez ele permita copiar os arquivos via USB. Se não, você pode tentar usar o GPSBabel. De qualquer maneira, você quer um arquivo no formato GPX.\n\nEntão, use a aba 'Trilhas GPS' acima para carregar sua trilha para o OpenStreetMap. Mas este é só o primeiro passo - ele não irá aparecer no mapa ainda. Você deve desenhar e nomear as ruas, usando a trilha como guia.\nUsando sua trilha\nEncontre sua trilha carregada na lista de 'Trilhas GPS' e clique no botão 'editar' ao lado dela. O Potlatch irá abrir com essa trilha carregada e quaisquer pontos marcados. Você está pronto para desenhar!\n\nVocê também pode clicar neste botão para mostrar as trilhas GPS de todos para a área atual. Segure Shift para mostrar só as suas trilhas.\nUsando fotos de satélite\nSe você não tiver um GPS, não se preocupe. Em algumas cidades, nós temos fotos de satélite nas quais é possível traçar sobre, gentilmente fornecidas pelo Yahoo! (valeu!). Dê uma volta e anote o nome das ruas, então volte e trace as linhas.\n\nSe você não conseguir ver a imagem de satélite, clique no botão Opções e tenha certeza de que 'Yahoo!' está selecionado. Se você ainda não conseguir ver, provavelmente não está disponível para a sua cidade, ou talvez você precise diminuir um pouco o zoom.\n\nNesta mesma tela de opções você encontrará outras opções como mapas antigos do Reino Unido, e o OpenTopoMap para os Estados Unidos. Eles estão especialmente selecionados porque a sua utilização é permitida - não copie de nenhum outro mapa ou foto de satélite. (É, a lei do Copyright é uma droga.)\n\nÀs vezes as fotos de satélite estão um pouco desalinhadas de onde as ruas realmente são. Se for o caso, segure Espaço e arraste o fundo até que as linhas batam com as trilhas GPS. Sempre confie mais nas trilhas GPS do que nas fotos de satélite.\n\nDesenhando vias\nPara desenhar uma rua (ou 'via') começando num espaço em branco no mapa, simplesmente clique ali; então clique em cada ponto em que a rua faz curva ou cruza com outra. Quando você tiver terminado, dê um duplo-clique ou pressione Enter - então clique em algum lugar vazio para desselecionar a rua.\n\nPara desenhar uma via começando de outra via, clique na rua para selecioná-la; seus pontos irão aparecer em vermelho. Segure Shift e clique em um deles para começar uma nova via naquele ponto. (Se não há um ponto vermelho na junção, dê um shift-clique onde você quiser um!)\n\nClique em 'Salvar' (canto inferior direito) quando você tiver terminado. Salve com frequência, caso o servidor tenha problemas.\n\nNão espere que suas mudanças apareçam instantaneamente no mapa principal. Geralmente leva uma ou duas horas, às vezes leva uma semana.\nCriando junções\nÉ muito importante que, quando duas ruas se juntam, elas compartilhem um ponto (ou 'nó'). Planejadores de rotas usam isso para saber onde virar.\n\nO Potlatch toma conta disso desde que você clique exatamente na via que está juntando. Observe os sinais: os pontos aparecem em azul, o cursor do mouse muda, e quando você terminar, o ponto de junção terá um contorno preto.\nMovendo e apagando\nFunciona exatamente como você esperaria. Para apagar um ponto, selecione-o e pressione Delete. Para apagar toda uma via, pressione Shift-Delete.\n\nPara mover algo, simplesmente arraste. (Você terá que clicar e segurar um pouco antes de arrastar, de forma a evitar que você o faça por acidente.)\nDesenho avançado\nSe duas partes de uma via tiverem nomes diferentes, você terá que separá-los. Clique na via; então clique no ponto onde a via deveria separar e clique no ícone da tesoura. (Você pode mesclar as vias com Ctrl, ou a tecla Apple em um Mac, mas não combine duas ruas de diferentes nomes ou tipos.)\n\nRotatórias são realmente difíceis de desenhar direito. Não se preocupe - o Potlatch pode ajudar. Simplesmente desenhe o círculo de forma bruta (um triângulo está OK), tendo certeza de que ele fecha no primeiro ponto, então clique neste ícone para 'arrumar'. (Você também pode usar isto para endireitar ruas.)\nPontos de interesse\nA primeira coisa que você aprendeu foi como arrastar um ponto de interesse. Você também pode criar um dando um duplo-clique no mapa: um círculo verde aparece. Mas como dizer que ele é um bar, uma igreja ou o quê? Clique em 'Etiquetar' acima para descobrir!\n\nQue tipo de rua?\nQuando você tiver desenhado uma via, você deve dizer o que ela é. É uma auto-estrada, uma rua de pedestres ou um rio? Qual é o nome? Há alguma regra especial (por exemplo, \"proibido bicicleta\")?\n\nNo OpenStreetMap, você grava isso usando 'etiquetas' ('tags'). Uma etiqueta tem duas partes, e você pode ter quantas quiser. Por exemplo, você poderia adicionar highway | trunk para dizer que é uma auto-estrada; highway | residential para uma rua residencial; ou highway | footway para uma calçada. Se bicicletas forem proibidas, você pode adicionar bicycle | no. Para gravar o nome, adicione name | Rua do Mercado.\n\nAs etiquetas no Potlatch aparecem na parte de baixo da tela - clique numa rua que já exista, e você verá que tags ela tem. Clique no ícone '+' (canto inferior direito) para adicionar uma nova tag. O botão 'x' em cada tag a exclui.\n\nVocê pode etiquetar vias inteiras; pontos nas vias (talvez um portão ou sinal de trânsito); e pontos de interesse.\nEtiquetas pré-definidas\nPara começar, o Potlatch tem pré-definições prontas contendo as tags mais populares.\n\nSelecione uma via, então clique nos símbolos até que você encontre o mais apropriado. Então, clique na opção mais apropriada no menu.\n\nIsso irá preencher as tags. Algumas não são preenchidas para que você possa digitar (por exemplo) o nome da estrada e o seu número.\nRuas de mão-única\nVocê pode adicionar a tag oneway | yes - mas como dizer a direção? Há uma seta no canto inferior esquerdo que mostra a direção da via, do começo para o fim. Clique nela para inverter a direção.\nSuas próprias etiquetas\nÉ claro, você não está restrito às pré-definições. Usando o botão '+', você pode digitar uma tag qualquer.\n\nVocê pode ver as etiquetas que outras pessoas usam no OSMdoc, e há uma longa lista de etiquetas populares no wiki chamada Map Features. Mas elas são apenas sugestões, não regras. Você é livre para inventar suas etiquetas ou copiar de outras pessoas.\n\nComo os dados do OpenStreetMap são usados para fazer diferentes mapas, cada mapa irá mostrar (ou 'renderizar') seu próprio conjunto de etiquetas.\nRelacionamentos\nÀs vezes as etiquetas não são suficiente, e você precisa 'agrupar' duas ou mais vias. Seja uma conversão à direita que é proibida, ou 20 vias que juntas formam uma linha de ônibus. Você pode fazer isso com uma opção avançada chamada 'relacionamento'. Veja mais no wiki.\n\nDesfazendo erros\nEste é o botão de desfazer (você também pode pressionar Z) - ele irá desfazer a última coisa que você fez.\n\nVocê pode 'reverter' para uma versão previamente salva de uma via ou ponto. Selecione-a, clique no seu ID (o número no canto inferior esquerdo) - ou pressione H (de 'histórico'). Você verá uma lista de todos que a editaram, e quando. Escolha a que você deseja voltar, e clique em Reverter.\n\n
\nSe você acidentalmente apagou uma via e salvou, pressione U (de 'undelete', 'desapagar'). Todas as vias apagadas serão mostradas. Escolha a que você, destrave-a clicando no cadeado (pelo ID); e salve como usual.\n
\n\nAcha que alguém cometeu um engano? Envie uma mensagem amigável para ele. Use a opção Histórico (H), selecione o nome, e clique em 'Correio'.\n\nUse the Inspector (in the 'Advanced' menu) for helpful information about the current way or point.\n
FAQ\nHow do I see my waypoints?\nWaypoints only show up if you click 'edit' by the track name in 'GPS Traces'. The file has to have both waypoints and tracklog in it - the server rejects anything with waypoints alone.\n\nMore FAQs for Potlatch and OpenStreetMap.\n\n\n\nTrabalhando mais rápido\nThe further out you're zoomed, the more data Potlatch has to load. Zoom in before clicking 'Edit'.\n\nTurn off 'Use pen and hand pointers' (in the options window) for maximum speed.\n\nIf the server is running slowly, come back later. Check the wiki for known problems. Some times, like Sunday evenings, are always busy.\n\nTell Potlatch to memorise your favourite sets of tags. Select a way or point with those tags, then press Ctrl, Shift and a number from 1 to 9. Then, to apply those tags again, just press Shift and that number. (They'll be remembered every time you use Potlatch on this computer.)\n\nTurn your GPS track into a way by finding it in the 'GPS Traces' list, clicking 'edit' by it, then tick the 'convert' box. It'll be locked (red) so won't save. Edit it first, then click the red padlock to unlock when ready to save.\n\nWhat to click\nDrag the map to move around.\nDouble-click to create a new POI.\nSingle-click to start a new way.\nHold and drag a way or POI to move it.\nWhen drawing a way\nDouble-click or press Enter to finish drawing.\nClick another way to make a junction.\nShift-click the end of another way to merge.\nWhen a way is selected\nClick a point to select it.\nShift-click in the way to insert a new point.\nShift-click a point to start a new way from there.\nControl-click another way to merge.\n
\nKeyboard shortcuts\nB Add background source tag\nC Close changeset\nG Show GPS tracks\nH Show history\nI Show inspector\nJ Join point to what's below ways\n (+Shift) Unjoin from other ways\nK Lock/unlock current selection\nL Show current latitude/longitude\nM Maximise editing window\nP Create parallel way\nR Repeat tags\nS Save (unless editing live)\nT Tidy into straight line/circle\nU Undelete (show deleted ways)\nX Cut way in two\nZ Undo\n- Remove point from this way only\n+ Add new tag\n/ Select another way sharing this point\nDelete Delete point\n (+Shift) Delete entire way\nReturn Finish drawing line\nSpace Hold and drag background\nEsc Abort this edit; reload from server\n0 Remove all tags\n1-9 Select preset tags\n (+Shift) Select memorised tags\n (+S/Ctrl) Memorise tags\n§ or ` Cycle between tag groups\n" hint_drawmode: Clique para adicionar um ponto\nDuplo clique/Enter\npara finalizar a linha hint_latlon: "lat $1\nlon $2" hint_loading: Carregando caminhos @@ -141,6 +141,7 @@ pt-BR: option_layer_ooc_7th: "UK histórico: 7th" option_layer_ooc_npe: "UK histórico: NPE" option_layer_ooc_scotland: "UK histórico: Escócia" + option_layer_os_streetview: "UK: OS StreetView" option_layer_osmarender: OSM - Osmarender option_layer_streets_haiti: "Haiti: nomes de ruas" option_layer_tip: Escolha o fundo a mostrar @@ -196,7 +197,7 @@ pt-BR: prompt_microblog: Enviando para $1 ($2 restantes) prompt_revertversion: "Reverter para versão anterior:" prompt_savechanges: Salvar mudanças - prompt_taggedpoints: Alguns dos pontos nesse caminho possuem tags (rótulos). Deseja realmente apagá-los? + prompt_taggedpoints: Alguns pontos tem etiquetas ou pertencem a uma relação. Quer realmente apagá-los? prompt_track: Converta a sua trilha GPS para caminhos (trancados) a serem editados. prompt_unlock: Clique para desbloquear prompt_welcome: Bem-vindo ao OpenStreetMap! @@ -206,6 +207,7 @@ pt-BR: tags_backtolist: Voltar à lista tags_descriptions: Descrições de '$1' tags_findatag: Encontrar uma etiqueta + tags_findtag: Etiquetas tags_matching: Etiquetas populares que coincidem com '$1' tags_typesearchterm: "Digite uma palavra para buscar:" tip_addrelation: Adicionar a uma relação diff --git a/config/potlatch/locales/ro.yml b/config/potlatch/locales/ro.yml index 0963958fc..971475342 100644 --- a/config/potlatch/locales/ro.yml +++ b/config/potlatch/locales/ro.yml @@ -1,6 +1,7 @@ # Messages for Romanian (Română) # Exported from translatewiki.net # Export driver: syck +# Author: McDutchie ro: action_createpoi: creare punct de interes (POI) action_movepoi: Miscă POI diff --git a/config/potlatch/locales/ru.yml b/config/potlatch/locales/ru.yml index 787f3162f..f041f125b 100644 --- a/config/potlatch/locales/ru.yml +++ b/config/potlatch/locales/ru.yml @@ -139,6 +139,7 @@ ru: option_layer_ooc_7th: "UK historic: 7th" option_layer_ooc_npe: "UK historic: NPE" option_layer_ooc_scotland: "UK historic: Scotland" + option_layer_os_streetview: "UK: OS StreetView" option_layer_osmarender: OSM - Osmarender option_layer_streets_haiti: "Гаити: названия улиц" option_layer_tip: Выберите фон @@ -194,7 +195,7 @@ ru: prompt_microblog: Отправить в $1 (осталось $2) prompt_revertversion: "Вернуться к ранее сохранённой версии:" prompt_savechanges: Сохранение изменений - prompt_taggedpoints: Некоторые точки данной линии содержат теги. Действительно удалить? + prompt_taggedpoints: Некоторые точки данной линии содержат теги или входят в отношения. Действительно удалить? prompt_track: Преобразовать GPS-трек в линии prompt_unlock: Нажмите, чтобы разблокировать prompt_welcome: Добро пожаловать в OpenStreetMap! @@ -204,6 +205,7 @@ ru: tags_backtolist: Вернуться к списку tags_descriptions: Описание «$1» tags_findatag: Найти тег + tags_findtag: Найти тег tags_matching: Популярные теги, соответствующие «$1» tags_typesearchterm: "Введите слово для поиска:" tip_addrelation: Добавить отношение diff --git a/config/potlatch/locales/sk.yml b/config/potlatch/locales/sk.yml index 61d5de4a8..5e14f24b9 100644 --- a/config/potlatch/locales/sk.yml +++ b/config/potlatch/locales/sk.yml @@ -33,6 +33,7 @@ sk: advanced_tooltip: Pokročilá úprava advanced_undelete: ObnoviÅ¥ advice_bendy: PríliÅ¡ krivá pre narovnanie (SHIFT pre vynútenie) + advice_conflict: Konflikt servera - možno budete musieÅ¥ skúsiÅ¥ uložiÅ¥ znovu advice_deletingpoi: Mazanie POI (Z pre obnovenie) advice_deletingway: Vymazávanie cesty (Z pre krok späť) advice_nocommonpoint: Cesty neobsahujú spoločný bod @@ -46,9 +47,11 @@ sk: advice_waydragged: Posunutá cesta (Z pre krok späť) cancel: ZruÅ¡iÅ¥ closechangeset: Zatvorenie zmenového súboru + conflict_download: Stiahnite si svoju verziu conflict_overwrite: PrepísaÅ¥ ich verziu conflict_poichanged: Počas vaÅ¡ej editácie, niekto iný zmenil bod $1$2. conflict_relchanged: Počas vaÅ¡ej editácie, niekto iný zmenil reláciu $1$2. + conflict_visitpoi: Kliknite na 'OK' pre zobrazenie bodu. conflict_visitway: Kliknutie 'Ok' ukáže cestu. conflict_waychanged: Počas vaÅ¡ej úpravy, niekto iný zmenil cestu $1$2. createrelation: VytvoriÅ¥ novú reláciu @@ -76,6 +79,7 @@ sk: heading_surveying: Mapovanie heading_troubleshooting: RieÅ¡enie problémov help: Pomoc + help_html: "Vitajte v Potlatchu\nPotlatch je ľahko použiteľný editor pre OpenStreetMap. Kreslí ulice, cesty, orientačné body a obchody z vaÅ¡ho GPS merania, satelitných snímok. alebo starých máp.\n\nTieto stránky nápovedy vás prevedú základmi použitia Potlachu, a prezradia vám kde možno zistiÅ¥ viac informácií. Pre začatie kliknite na titulky hore.\n\nKeď chcete skončiÅ¥, stačí kliknúť hocikde inde na strane.\n\n\n\nUžitočné známe veci\nNekopírujte z iných máp!\n\nAk vyberiete 'UpravovaÅ¥ naživo' , akékoľvek zmeny ktoré vytvoríte, budú zapísané do databázy hneď ako ich nakreslíte - ako okamžite. Ak ste si nie sebaistý, vyberte 'Úprava s uložením' , a zmeny budú uložené iba keď stlačíte 'UložiÅ¥'.\n\nNiektorá úpravy, ktoré ste urobili budú obvykle viditeľné na mape po jednej až dvoch hodinách (niektoré veci môžu trvaÅ¥ aj týždeň). Nie vÅ¡etko je zobrazené na mape - môže to vyzeraÅ¥ príliÅ¡ neuhladené. AvÅ¡ak pretože OpenStreetMap údaje majú otvorený kód (open source), iný ľudia majú voľnosÅ¥ pri tvorbe a zobrazení máp s rozdielnymi aspektami - ako OpenCycleMap alebo Midnight Commander.\n\nRemember it's both a good-looking map (so draw pretty curves for bends) and a diagram (so make sure roads join at junctions).\n\nZmienili sme sa o nekopírovaní z iných máp?\n\n\nZistiÅ¥ viac\nPríručka Potlatchu\nZoznam adries\nOnline chat (live help)\nWebové fórum\nKomunita wiki\nPotlatch zdrojový-kód\n\n\n\nZačíname\nTeraz, keď máte otvorený Potlach, kliknite 'Úprava s uložením' pre zahájenie upravovania.\n\nTeraz ste pripravený na kreslenie mapy. Najjednoduchším začiatkom je doplnenie nejakých bodov záujmu do mapy - alebo \"POIs\". To môžu byÅ¥ krčmy, kostoly, železničné stanice... vÅ¡etko čo sa vám páči.\n\nŤahaÅ¥ a pustiÅ¥\nUrobiÅ¥ to je veľmi ľahké, budete vidieÅ¥ výber najčastejších POIs, vpravo v dolnej časti vaÅ¡ej mapy. Umiestnenie jedného na mapu je preto ľahké, dotiahnite ho z tadeto na správne miesto na mape. A nemajte obavy, ak sa vám nepodarí docieliÅ¥ správnu polohu na prvý krát: môžete ho posúvaÅ¥ znovu, až do správnej polohy. VÅ¡imnite si že POI je zvýraznené žltou farbou ak je vybraté.\n\nHneď ako ste hotový, budete chcieÅ¥ daÅ¥ vaÅ¡ej krčme (alebo kostolu, alebo žel.stanici) názov. Budete vidieÅ¥ malú tabuľku, ktorá sa má objaviÅ¥ v dolnej časti. jeden zo záznamov bude hovoriÅ¥ \"názov\" nasledovaný s \"(typ názvu tu)\". Vyplňte ju – napíšte text a typ názvu.\n\nKliknite niekde inde na mapu na pre zruÅ¡enie výberu vášho POI, a obnovu malého panelu.\n\nBolo to ľahké? Kliknite 'UložiÅ¥' (na spodnej časti dole vpravo) ak ste hotový.\nPremiestňovanie\nAby posun do rôznej časti mapy, správne dotiahol nejakú prázdnu oblasÅ¥. Potlatch automaticky načíta nové údaje (pozrite vpravo hore).\n\nPovedali sme vám o 'UpraviÅ¥ s uložením', ale môžete tiež zapnúť 'UpraviÅ¥ naživo'. Ak zapnete túto možnosÅ¥, váš zmenový súbor sa bude zapisovaÅ¥ do databázy priebežne, preto nebude k dispozícii tlačítko 'UložiÅ¥'. Je to dobré pre okamžité zmeny a mapovacie párty.\n\nĎalÅ¡ie kroky\nPáčilo sa vám to? Výborne. Kliknite hore na 'Mapovanie' ak chcete zistiÅ¥, ako sa staÅ¥ skutočným mapovačom!\n\nMapovanie s GPS\nHlavná myÅ¡lienka za projektom OpenStreetMap je urobiÅ¥ mapu bez obmedzenia kopírovania, ktoré je teraz na iných mapách. Týmto myslíme, že nie je možné kopírovaÅ¥ z iných mapových podkladov: musíte ísÅ¥ a sám mapovaÅ¥ ulice. Našťastie je v tom množstvo zábavy! NajlepÅ¡ou cestou ako to spraviÅ¥ je ručný GPS prístroj. Nájdite oblasÅ¥, kde eÅ¡te žiaden mapovač nebol, potom sa prechádzajte po uliciach so zapnutým GPS prístrojom. Zapisujte si názvy ulíc, a niečo iné zaujímavé (krčmy? kostoly? lekárne?), keď ideÅ¡ okolo nich.\n\nKeď prídete domov, váš GPS bude obsahovaÅ¥ 'záznam stopy' zaznamenaný vÅ¡ade kde ste chodili. Môžete ho potom nahraÅ¥ na OpenStreetMap.\n\nNajlepší typ pre voľbu GPS je aby frekvencia záznamov bola každú sekundu (alebo dve sekundy) a mala veľa pamäti. Mnoho mapovačov používa ručný Garmin, alebo ručné bluetooth jednotky spojené s PDA, ale aj v spojení s telefónom s vhodným softvérom (napr. http://www.trekbuddy.net/forum/ ). Tu sú detaily GPS Recenzie na naÅ¡ej wiki.\n\nNahrávanie vaÅ¡ej stopy\nTeraz potrebujete nahraÅ¥ váš záznam stopy z vášho GPS prístroja. Možno váš GPS obsahuje aj nejaký software, alebo možno sa dá kopírovaÅ¥ súbor cez USB. Ak nie, skúste GPSBabel. Podľa dohody, požadovaný súbor musí byÅ¥ v GPX formáte.\n\nPotom použite tlačítko 'GPS Stopy' pre nahratie vaÅ¡ej stopy na OpenStreetMap. Ale toto je iba prvý krok – eÅ¡te sa to nemôžete zobraziÅ¥ na mape. Musíte vy sám nakresliÅ¥ a pomenovaÅ¥ cesty, použitím stopy ako vodítka.\nPoužívanie vaÅ¡ej stopy\nVyhľadajte vaÅ¡u nahratú stopu v 'GPS Stopy' v súpise, a kliknite 'upraviÅ¥' ďalÅ¡ie tlačítko vpravo. Potlatch sa spustí s touto nahratou stopou, plus s niektorými waypointami. Ste pripravený na kreslenie!\n\nMôžete tiež kliknutím na toto tlačítko zobraziÅ¥ vÅ¡etky GPS stopy (ale nie waypointy) pre aktuálnu oblasÅ¥. Podržaním Shift-u zobrazíte iba vaÅ¡e stopy.\nPoužívanie satelitných fotiek\nAk nemáte GPS prístroj, nebuďte smutný. V niektorých mestách, máme satelitné fotky, nad ktorými môžete kresliÅ¥, s láskavým dovolením Yahoo! (ďakujeme!). Choďte von a zaznamenajte si názvy ulíc, potom sa vráťte a nakreslite nad snímkou línie.\n\nAk nevidíte zbierku satelitných obrázkov, kliknite na tlačítko možnosti a presvedčte sa či máte vybraté 'Yahoo!'. Ak to stále nevidíte, tak pravdepodobne nie je dostupný pre vaÅ¡e mesto, alebo by ste mohli potrebovaÅ¥ trochu zmenÅ¡iÅ¥ oblasÅ¥.\n\nV tejto istej voľbe nastavenia tlačítka môžete nájsÅ¥ niekoľko iných volieb ako niektoré nechránené mapy autorskými právami z UK, a OpenTopoMap pre US. Tu sú vÅ¡etky Å¡peciálne vybraté, pretože máme povolenie používaÅ¥ ich – nekopírujte z nejakých iných máp, alebo leteckých fotiek. (Copyright law sucks.)\n\nNiekedy sú satelitné obrázky trochu posunuté z miesta, kde cesty v skutočnosti sú. Ak toto zistíte. podržte klávesu Medzera a dotiahnite pozadie až nad línie. Vždy dôverujte GPS stopám, než satelitným obrázkom.\n\nKreslenie ciest\nNa kresbu komunikácií (alebo 'ciest') začneme na prázdnom mieste na mape, len tam klikneme; potom na každý bod tam kde cesta zabočí. Keď cestu končíme, dvojitý klik, alebo stlačiÅ¥ Enter – potom klikneme niekde inde, aby sme zruÅ¡ili výber cesty.\n\nPre kreslenie cesty so začiatkom z inej cesty, kliknite na cestu na jej vybratie; jej body sa zobrazia červene. Držte Shift a kliknite na ten bod, kde začína nová cesta. (Ak nie je červený bod na mieste začiatku cesty, shift-klik na miesto v ceste kde potrebujete ten bod!)\n\nKliknite 'UložiÅ¥' (dole vpravo) ak ste hotový. Ukladajte často, pre prípad, ak by mal server problém.\n\nNečakajte, že sa vaÅ¡e zmeny objavia v hlavnej mape okamžite. Obvykle to trvá jednu až dve hodiny, niekedy aj viac ako týždeň.\nVytvorenie spojení\nJe to skutočne dôležité, kde sa dve cesty spájajú, oni zdieľajú bod (alebo 'uzol'). Program na plánovanie ciest podľa neho vie, kde má zabočiÅ¥.\n\nPotlatch sa stará o to pokiaľ ste opatrne klikli presne na cestu v mieste spojenia. Hľadajte nápomocné značky: body sa rozsvietia namodro, zmení sa ukazovateľ, a keď ste hotový, pripojený bod má čierny obrys.\nPresúvanie a mazanie\nNa vymazanie bodu, vyberte ho a stlačte Delete. Na vymazanie celej cesty, stlačte Shift-Delete.\n\nPre presunutie niečoho, stačí to Å¥ahaÅ¥. (Podržíte stlačené ľavé tlačítko myÅ¡i na presúvanej ceste po dobu Å¥ahania cesty myÅ¡ou, dávajte pozor, aby sa vám to nestalo náhodou.)\nViac pokročilého kreslenia\nAk dve časti cesty majú rozdielny názov, budete ju musieÅ¥ rozdeliÅ¥. Kliknite na cestu; potom kliknite na bod, kde má byÅ¥ rozdelená a kliknite na nožničky. (Môžete spojiÅ¥ cesty keď použijete klávesu Ctrl, alebo klávesu Apple na Mac-u. Ale nespájajte dve cesty s rozdielnymi názvami, alebo typmi.)\n\nKruhový objazd je naozaj Å¥ažko nakresliÅ¥. Nezúfajte – Potlatch môže pomôcÅ¥. Iba nakreslite zhruba kruh, určite ukončite kruh na začiatočnom bode, potom kliknite na ikonu 'usporiadaÅ¥'. (Toto môžete použiÅ¥ aj na vyrovnanie ciest.)\nBody záujmu POI\nPrvé čo ste sa naučili bolo, ako doplniÅ¥ bod záujmu. Môžete ho tiež vytvoriÅ¥ pomocou dvojkliku na mape: objaví sa zelený kruh. Ale čo to je, či je to krčma, kostol, alebo čo? Kliknite na 'Tagging' – Značkovanie nájdete ho hore!\n\nAký typ komunikácii poznáme?\nAko náhle nakreslíte cestu, budete musieÅ¥ povedaÅ¥ aká je. Je to vozovka, chodník, alebo rieka? Ako sa volá? Sú na nej nejaké Å¡peciálne obmedzenia (napr. „zákaz pre bicykle“)?\n\nV OpenStreetMap, zaznamenávate toto použitím 'tags' značiek. Tagy(značky) majú dve časti, a môžete ich maÅ¥ toľko, koľko sa vám bude páčiÅ¥. Napríklad, môžete pridaÅ¥ highway | trunkznamená to cesta pre motorové vozidlá; highway | residential pre označenie ulice v obci; alebo highway | footway pre chodník pre peších. Ak bicykle sú zakázané, môžete pridaÅ¥ bicycle | no. Potom zaznamenáme názov, pridáme name | Market Street.\n\nTagy(značky) v Potlatchu sa zobrazujú na spodnej časti obrazovky – Kliknite na existujúcu cestu a budete vidieÅ¥ aké tagy (značky) obsahuje. Kliknite na znak '+' (vpravo dole) a môžete pridaÅ¥ nový tag (značku). Pomocou klávesy 'x' každý tag (značku) vymažete.\n\nMôžete označiÅ¥ vÅ¡etky cesty; body v cestách (napríklad brána, alebo semafor); a body záujmu.\nPoužívanie prednastavených značiek\nDostali sme sa na začiatok, Potlatch má hotové predvoľby obsahujúce najpopulárnejÅ¡ie tags (značky).\n\nVyberte cestu, potom klikajte medzi symbolmi, až kým nenájdete vhodný. Potom si vyberte najvhodnejÅ¡iu možnosÅ¥ z menu.\n\nVýber doplní tagy(značky) z výberu. Niektoré okienka aj tak zostanú nevyplnené, aby ste mohli napísaÅ¥ (napríklad) názov cesty a číslo.\nJednosmerné cesty\nMohli by ste chcieÅ¥ pridaÅ¥ tagy, ako oneway | yes - ale, ako zapísaÅ¥ v akom smere? Je tam šípka v ľavo dole, ktorá ukazuje smer cesty, od začiatku po koniec. Kliknutím sem smer cesty otočíte.\nVoľba vaÅ¡ich vlastných tagov.\nSamozrejme, nie ste obmedzený iba na prednastavené tagy(značky). Použitím tlačítka '+', môžete pridaÅ¥ a používaÅ¥ akékoľvek tagy.\n\nMôžete sa pozrieÅ¥ aké tagy používajú ostatní ľudia OSMdoc, a tu je dlhý obsah obľúbených tagov(značiek) na naÅ¡ej wiki Map Features. Ale tu sú iba návrhy, nie podľa pravidiel. Máte voľnosÅ¥ pri vymýšľaní vaÅ¡ich vlastných tagov(značiek), alebo môžete prevziaÅ¥ tagy od iných.\n\nPretože OpenStreetMap dáta sú používané pri tvorbe veľmi rôznorodých máp, každá mapa sa bude zobrazovaÅ¥ (alebo 'interpretovaÅ¥') podľa vlastného výberu tagov.\nRelácie\nNiekedy tagy(značky) nepostačujú, a vy potrebujete 'zoskupiÅ¥' dve a viac ciest. Možno zabočenie je zakázané z jednej cesty na druhú, alebo 20 ciest má spoločný znak a popisujú napr. cyklo trasu. Môžete to vytvoriÅ¥ pokročilými vlastnosÅ¥ami, ktoré sa volajú 'relácie'. ZistiÅ¥ viac na wiki.\n\nOprava chýb\nNa to slúži tlačítko Krok späť(undo) (môžete tiež použiÅ¥ klávesu Z) – vrátite sa k stavu pred poslednou zmenou.\n\nMôžete vrátiÅ¥ predtým uloženú verziu cesty, alebo bodu. Vyberte ich, potom kliknite na ich ID (číslo v ľavo dolu) – alebo stlačte H (pre 'históriu'). Budete vidieÅ¥ obsah vÅ¡etkého čo a kedy ste upravovali. Vyberte ktorý chcete vrátiÅ¥ späť a kliknite Revert(NavrátiÅ¥).\n\nAk ste náhodou vymazali cestu a uložili to, stlačte U (na 'undelete' obnovenie). VÅ¡etky vymazané cesty budú zobrazené. Vyberte tú ktorú chcete; odomknite ju kliknutím na červený zámok; a normálne uložte.\n\nZbadali ste, že niekto iný urobil chyby? PoÅ¡lite mu priateľskú správu. Použite voľbu história (H) pre výber jeho mena, potom kliknite 'Mail'.\n\nPoužite Kontrolóra (v menu 'Advanced' pre pokročilé nastavenia) pre užitočné informácie o aktuálnej ceste, alebo bode.\nFAQs\nHow do I see my waypoints?\nWaypoints only show up if you click 'edit' by the track name in 'GPS Traces'. The file has to have both waypoints and tracklog in it - the server rejects anything with waypoints alone.\n\nMore FAQs for Potlatch and OpenStreetMap.\n\n\n\nUrýchlenie práce\nČím viac oddialite obraz, tým viac dát Potlatch načíta. Priblížte obraz späť a kliknite 'UpraviÅ¥' edit.\n\nVypnite 'Use pen and hand pointers' Ukazovateľ pero a ruka (v možnostiach okna) pre maximálnu rýchlosÅ¥.\n\nAk je server pomalý, skúste to pozdejÅ¡ie. Skontrolujte wikipre známe problémy. Niekedy, ako v nedeľné večery, je vždy zaneprázdnený.\n\nTell Potlatch to memorise your favourite sets of tags. Select a way or point with those tags, then press Ctrl, Shift and a number from 1 to 9. Then, to apply those tags again, just press Shift and that number. (They'll be remembered every time you use Potlatch on this computer.)\n\nTurn your GPS track into a way by finding it in the 'GPS Traces' list, clicking 'edit' by it, then tick the 'convert' box. It'll be locked (red) so won't save. Edit it first, then click the red padlock to unlock when ready to save.\n\nČo kliknúť\nŤahaÅ¥ mapu na pohybovanie sa.Dvojitý-klik pre vytvorenie nového POI.Jeden-klik pre začiatok novej cesty.DržaÅ¥ a Å¥ahaÅ¥ cestu alebo POI pre ich presun.\nKeď kreslíte cestu\nDvojitý-klik alebo stlačenie Enteru ukončí kreslenie.Klik na inú cestu vytvorí pripojenie.Shift-klik na koncový bod inej cesty pre zlúčenie.\nKeď je cesta vybratá\nKlik na bod pre zvolenie bodu.Shift-klik na cestu pre vloženie nového bodu.Shift-klik na bod pre začiatok novej cesty z tohto miesta.Control-klik na inú cestu pre zlúčenie.\n\nKlávesové skratky\nB Add background source tag\nC ZavrieÅ¥ changeset zmenový súbor\nG ZobraziÅ¥ GPS stopy\nH ZobraziÅ¥ históriu\nI ZobraziÅ¥ inspector kontrolu\nJ Join vložiÅ¥ bod do križujúcich ciest\nK Loc(zamknúť)k/unlock(odomknúť) aktuálny výber\nL ZobraziÅ¥ aktuálnu latitude(šírku)/longitude(dĺžku)\nM MaximalizovaÅ¥ editovacie okno\nP VytvoriÅ¥ parallel rovnobežnú cestu\nR Repeat opakovaÅ¥ tagy\nS Save UložiÅ¥ (ak neopravujete naživo)\nT Tidy into straight line/circle\nU Undelete obnoviÅ¥(ukázaÅ¥ vymazané cesty)\nX RozdeliÅ¥ cestu na dve\nZ Krok späť\n- Remove OdstrániÅ¥ bod iba z tejto cesty\n+ Add pridaÅ¥ nový tag\n/ Select VybraÅ¥ inú cestu, ktorá zdieľa tento bod\nDelete Delete point\n (+Shift) Delete entire way\nReturn Finish drawing line\nSpace Hold and drag background\nEsc Abort this edit\n; reload from server\n0 Remove all tags\n1-9 Select preset tags\n (+Shift) Select memorised tags\n (+S/Ctrl) Memorise tags\n§ or ` Cycle between tag groups\n\n" hint_drawmode: kliknutím pridáte bod\ndvojklik/Návrat\nukončí líniu hint_latlon: "šírka $1\ndĺžka $2" hint_loading: nahrávam údaje @@ -105,9 +109,11 @@ sk: "no": Nie nobackground: Žiadne pozadie norelations: V aktuálnej oblasti nie sú relácie + offset_broadcanal: Navigácia Å¡irokým prielivom offset_choose: ZvoliÅ¥ vyrovnanie (m) offset_dual: Dvojprúdová cesta (D2) offset_motorway: Dialnica (D3) + offset_narrowcanal: Navigácia úzkym prielivom ok: Ok openchangeset: Otvorenie súboru zmien option_custompointers: Použitie ukazovateľa pera a ruky @@ -117,6 +123,9 @@ sk: option_layer_maplint: OSM - Maplint (chyby) option_layer_nearmap: "Austrália: NearMap" option_layer_ooc_25k: "UK historický: 1:25k" + option_layer_ooc_7th: "UK historické: 7." + option_layer_ooc_npe: "UK historické: NPE" + option_layer_ooc_scotland: "UK historické: Å kótsko" option_layer_tip: Vyberte si pozadie pre zobrazenie option_limitways: UpozorniÅ¥ pri načítaní priveľa dát option_noname: ZvýrazniÅ¥ nepomenované komunikácie @@ -159,15 +168,19 @@ sk: prompt_editsave: UkladaÅ¥ naraz prompt_helpavailable: Nový užívateľ? Nápovedu nájdete vpravo dole. prompt_launch: OtvoriÅ¥ externú URL + prompt_live: V režime Live, každý prvok čo zmeníte bude uložený v databáze OpenStreetMap okamžite - nie je doporučené pre začiatočníkov. Ste si istí? prompt_revertversion: "VrátiÅ¥ sa k skorÅ¡ie uloženej verzii:" prompt_savechanges: UložiÅ¥ zmeny - prompt_taggedpoints: Niektoré body tejto cesty majú tagy. Naozaj vymazaÅ¥? + prompt_taggedpoints: Niektoré body tejto cesty majú tagy, alebo sú v reláciách. Naozaj vymazaÅ¥? prompt_track: ZmeniÅ¥ GPS stopy na cesty prompt_unlock: Klik pre odomknutie prompt_welcome: Vitajte na OpenStreetMap ! retry: OpakovaÅ¥ revert: VrátiÅ¥ sa save: UložiÅ¥ zmeny + tags_backtolist: Späť na zoznam + tags_findatag: Nájdite značku + tags_typesearchterm: "Zadajte slovo pre hľadanie:" tip_addrelation: PridaÅ¥ do relácie tip_addtag: PridaÅ¥ nový tag tip_alert: Nastala chyba - kliknite pre podrobnosti diff --git a/config/potlatch/locales/sr-EC.yml b/config/potlatch/locales/sr-EC.yml index cfab83162..ebefd5384 100644 --- a/config/potlatch/locales/sr-EC.yml +++ b/config/potlatch/locales/sr-EC.yml @@ -61,6 +61,7 @@ sr-EC: editinglive: Уређивање наживо editingoffline: Уређивање ван мреже error_anonymous: Не можете контактирати анонимног мапера. + error_microblog_long: "Слање на $1 није успело:\nХТТП код: $2\nПорука о грешки: $3\n$1 грешка: $4" error_nosharedpoint: Путање $1 и $2 више не деле заједничку тачку, тако да не могу да вратим раздвајање. existingrelation: Додај постојећем односу findrelation: Нађи однос који садржи @@ -98,6 +99,7 @@ sr-EC: mail: Пошта more: Још newchangeset: "Молим пробајте поново: Потлач ће почети са новим скупом измена." + "no": Не nobackground: Без позадине norelations: Нема односа̂ у тренутној области offset_broadcanal: Широки пут вучења лађа @@ -114,6 +116,7 @@ sr-EC: option_layer_ooc_7th: "УК историјски: 7." option_layer_ooc_npe: "УК историјски: NPE" option_layer_tip: Изаберите позадину која ће се приказивати + option_microblog_pwd: "Лозинка за микроблог:" option_noname: Истакни безимене путеве option_photo: "KML слике:" option_thinareas: Користи тање линије за области @@ -126,6 +129,7 @@ sr-EC: preset_icon_cafe: Кафе preset_icon_cinema: Биоскоп preset_icon_convenience: Потрепштине + preset_icon_disaster: Зграда на Хаитију preset_icon_fast_food: Брза храна preset_icon_ferry_terminal: Скела preset_icon_fire_station: Ватрогасна станица @@ -187,5 +191,6 @@ sr-EC: uploading_relation: Шаљем однос $1 uploading_relation_name: Шаљем однос $1, $2 uploading_way: Шаљем путању $1 - uploading_way_name: Шаље путању $1, $2 + uploading_way_name: Шаљем путању $1, $2 way: Путања + "yes": Да diff --git a/config/potlatch/locales/sv.yml b/config/potlatch/locales/sv.yml index bbfb824ba..0aeecd704 100644 --- a/config/potlatch/locales/sv.yml +++ b/config/potlatch/locales/sv.yml @@ -1,6 +1,7 @@ # Messages for Swedish (Svenska) # Exported from translatewiki.net # Export driver: syck +# Author: Ainali # Author: Cohan # Author: Grillo # Author: Jas @@ -82,7 +83,7 @@ sv: heading_tagging: Taggning heading_troubleshooting: Felsökning help: Hjälp - help_html: "Välkommen till Potlatch\nPotlatch är en enkel editor för OpenStreetMap. Lägg in vägar, stigar, affärer frÃ¥n dina GPS spÃ¥r, satellit bilder eller gamla kartor.\n\nDe här hjälpsidorna kommer att guida dig igenom de grundläggande funktionerna i Potlatch och var du kan hitta mer information. Klicka pÃ¥ rubrikerna ovan för att börja.\n\nNär du är klar klickar du bara nÃ¥gonstans pÃ¥ sidan.\n\n\n\nBra att veta\nKopiera inte frÃ¥n andra kartor!\n\nOm du väljer 'Ändra direkt' sÃ¥ kommer alla ändringar att skrivas direkt till databasen. Om du inte är sÃ¥ säker välj istället 'Ändra via spara' och ändringarna skrivs till databasen först när du trycker pÃ¥ 'Spara'.\n\nAlla ändringar du gör visas oftast pÃ¥ kartan inom en timma eller tvÃ¥. Ibland kan det ta upp till en vecka. Alla detaljer visas inte pÃ¥ kartan, dÃ¥ det skulle bli för plottrigt. Men eftersom OpenStreetMaps data är fri, kan andra personer utnyttja datan till att göra kartor som visar andra aspekter. Exempel pÃ¥ detta är OpenCycleMap och Midnight Commander.\n\nKom ihÃ¥g att det är bÃ¥de en snygg karta (sÃ¥ rita fina kurvor) och ett diagram (se till att vägar hänger ihop i korsningar).\n\nNämnde vi det där om att inte kopiera frÃ¥n andra kartor?\n\n\nLär dig mer\nPotlatchs manual\nE-Post listor\nChatta (direkt hjälp)\nWeb-forum\nGrupp wiki\nPotlatch källkod\n\n\n\nKom igÃ¥ng\nNu när du har startat Potlatch, klicka pÃ¥ 'Ändra via spara' för att komma igÃ¥ng.\n\nSÃ¥, nu är du redo att rita en karta. Det enklaste är att lägga till nÃ¥gra intressepunkter, sÃ¥ kallade POI. Det kan vara sÃ¥dant som restauranger, kyrkor, stationer... Vad som helst som du tycker är viktigt.\n\nDrag och släpp\nFör att göra det enkelt, sÃ¥ ser du en samling av de mest vanliga POI:n ('inressepunkterna') under kartan. Att lägga in en pÃ¥ kartan är enkelt, klicka pÃ¥ ikonen och drag den till rätt ställe pÃ¥ kartan. Var inte orolig, om du skulle placera den fel, sÃ¥ kan du bara klicka pÃ¥ den igen och dra den till rätt ställe. Ikonen kommer vara markerad med gul färg, för att visa dig att den är vald.\n\nNär du väl lagt ut din POI, sÃ¥ kan du ge den ett namn. Du kan se att en liten tabell har dykt upp under kartan. Ett av alternativen där heter \"name\" följt av \"(type name here)\". Gör just det, klicka pÃ¥ texten och skriv namnet.\n\nKlicka nÃ¥gon annanstans pÃ¥ kartan för att avmarkera din POI, nu kommer den färgglada panelen med ikoner tillbaks.\n\nEnkelt, eller hur? Klicka pÃ¥ 'Spara' (nedre högra hörnet) när du är klar.\nFlytta runt\nFör att se en annan del av kartan, sÃ¥ är det bara att klicka pÃ¥ ett tomt ställe i kartan och dra. Potlatch kommer automatiskt att hämta data för det nya omrÃ¥det (du kan se detta i övre högra hörnet).\n\nVi bad dig välja 'Ändra via spara', men du kan ocksÃ¥ välja 'Ändra direkt'. Om du gör det sÃ¥ kommer dina förändringar att skrivas till databasen direkt utan att du behöver trycka pÃ¥ 'Spara' knappen. Detta sätt är bra för snabba smÃ¥ ändringar och karterings partyn.\n\nNästa steg\nNöjd sÃ¥ lÃ¥ngt? Bra! Klicka pÃ¥ 'Kartläggning' ovan för att lära dig mer om hur du blir en riktig kartritare!\n\nKartläggning med en GPS\nTanken med OpenStreetMap är att skapa en karta utan de begränsningar andra som andra kartors copyright ger. Därför kan du inte kopiera data frÃ¥n andra källor. Du mÃ¥ste gÃ¥ ut och kartlägga gatorna pÃ¥ egen hand.\nLyckligtvis är det väldigt kul att göra!\nDet bästa sättet är att ha en handhÃ¥llen GPS. Hitta sedan ett omrÃ¥de som inte är kartlagt ännu, gÃ¥ eller cykla sedan längsmed gatorna med GPSen pÃ¥slagen. Notera namnet och andra viktiga saker (kyrkor, restauranger osv.) när du passerar dem.\n\nNär du kommer hem innehÃ¥ller din GPS ett 'spÃ¥r' över var du har varit. Detta spÃ¥r kan du ladda upp till OpenStreetMap.\n\nDen bästa typen av GPS är en som sparar sin position till loggfilen ofta (varje sekund) och har ett stort minne. MÃ¥nga kartläggare använder handhÃ¥llna Garmin GPSer eller smÃ¥ bluetooth enheter. Det finns detaljerade tester av GPSer pÃ¥ vÃ¥r wiki.\n\nLadda upp ditt spÃ¥r\nNu mÃ¥ste du fÃ¥ spÃ¥ret ifrÃ¥n GPSen till din dator. Kanske fick du med en mjukvara med din GPS eller kanske du kan använda USB. Om inte du hittar nÃ¥got sätt, prova GPSBabel. Hur som helst, sÃ¥ vill du fÃ¥ ditt spÃ¥r som en fil i GPX format.\n\nSedan kan du använda 'GPS spÃ¥r' tabben för att ladda upp ditt spÃ¥r till OpenStreetMap. Att ladda upp filen är bara första steget, det kommer inte att synas pÃ¥ kartan automatiskt. Du mÃ¥ste rita och namnge vägarna själv, med ditt spÃ¥r som underlag och guide.\nAnvända ditt spÃ¥r\nLeta rätt pÃ¥ ditt uppladdade spÃ¥r i 'GPS SpÃ¥r' listan och klicka pÃ¥ 'ändra' precis till höger om det. Potlatch kommer att starta med det spÃ¥ret inladdat samt eventuella vägpunkter. Nu är du redo att börja rita!\n\nDu kan ocksÃ¥ klicka pÃ¥ knappen för att se alla andras GPS spÃ¥r (men inte vägpunkter) i det aktuella omrÃ¥det. HÃ¥ll nere Shit för att bara se dina spÃ¥r.\nAnvända satellitfoton\nOm du inte har en GPS - inga problem. I vissa städer har vi satellitfoton som du kan använda som underlag. Satellitbilderna har Yahoo! varit vänliga nog att lÃ¥ta oss använda. GÃ¥ ut och notera gatunamnen och kom sedan tillbaka och lägg in informationen.\n\nOm du inte ser nÃ¥gra satellitbilder, klicka pÃ¥ options knappen och se till att 'Yahoo!' är markerad. Om du fortfarande inte ser nÃ¥gra bilder, är det troligen för att det inte finns nÃ¥gra tillgängliga för din plats eller sÃ¥ behöver du zooma ut lite.\n\nUnder samma optionsknapp, sÃ¥ ser du även nÃ¥gra andra val som en karta över UK som inte är skyddad av copyright och OpenTopoMap över USA. Dessa är speciellt utvalda eftersom vi har tillÃ¥telse att använda dem. Kopiera inte frÃ¥n nÃ¥gon annans kartor eller flygfoton. (Copyright lagar är skit)\n\nIbland är satellitbilderna lite missplacerade frÃ¥n de verkliga lägena pÃ¥ vägar. Om du noterar detta, hÃ¥ll nere 'mellanslag' och dra bakgrunden tills den matchar. Lita alltid pÃ¥ GPS spÃ¥ren framför satellitbilder.\n\nRita vägar\nFör att rita en ny väg, börja genom att klicka pÃ¥ en tom plats pÃ¥ kartan. Sedan fortsätter du genom att klicka där du vill lägga till nya punkter av vägen. När du är klar avslutar du genom att dubbel-klicka eller trycka 'Enter' och sedan klicka nÃ¥gonannanstans för att ta bort fokuset pÃ¥ vägen.\n\nFör att rita en väg som startar vid en redan existerande väg, börja med att klicka pÃ¥ den existerande vägen för att välja den. Punkterna längs den vägen kommer att bli röda. HÃ¥ll ner 'Shift' och klicka pÃ¥ den punkt där du vill börja den nya vägen (om det inte finns nÃ¥gon röd punkt, shift-klicka bara där du vill börja).\n\nKlicka pÃ¥ 'Spara' (nedre högra hörnet) när du är klar. Spara ofta, ifall det skulle bli problem med servern.\n\nFörvänta dig inte att dina ändringar syns omedelbart pÃ¥ huvudkartan. Vanligtvis tar det en timma eller tvÃ¥ och ibland upp till en vecka.\nSkapa korsningar\nDet är viktigt att där tvÃ¥ vägar möts, mÃ¥ste de dela en punkt (eller 'nod'). Ruttplanerare använder sig av den informationen för att veta var det gÃ¥r att svänga.\n\nPotlatch tar hand om det här, sÃ¥ länge du är noggrann med att klicka exakt pÃ¥ den väg du vill skapa en korsning med. Se efter tecken sÃ¥ som; när punkter blir blÃ¥, muspekaren ändras. Korsningspunkten har en svart ram.\nFlytta och radera\nDet här fungerar precis sÃ¥ som du förväntar dig. För att ta bort en punkt, markera den och tryck pÃ¥ 'Delete'. För att ta bort en hel väg, tryck 'Shift-Delete'.\n\nFör att flytta pÃ¥ nÃ¥got, är det bara att dra det med musen (du mÃ¥ste klicka och hÃ¥lla inne knappen en kort stund före du kan dra ett objekt, sÃ¥ att du inte rÃ¥kar flytta nÃ¥got av misstag).\nMer avancerad funktioner\nOm en väg har olika namn pÃ¥ olika sträckor, mÃ¥ste du dela vägen. Klicka pÃ¥ vägen; klicka sedan pÃ¥ punkten där vägen skall delas och klicka pÃ¥ ikonen med saxen (du kan slÃ¥ ihop vägar genom att klicka med Control, eller Apple knappen pÃ¥ en Mac, men gör inte det med vägar som har olika namn eller typ).\n\nRondeller är verkligt svÃ¥ra att rita korrekt. Men var inte orolig, Potlatch kan hjälpa till. Rita bara en grov cirkel, försäkra dig om att den sitter ihop med sig själv i ändarna. Klicka sedan pÃ¥ ikonen. (Ikonen kan ocksÃ¥ användas för att räta ut vägar som skall vara raka.)\nIntressepunkter\nDet första du lärde dig var hur man drar och släpper en intressepunkt. Du kan ocksÃ¥ skapa en genom att dubbel-klicka pÃ¥ kartan. En grön cirkel skapas. Men hur bestämmer man om det är en kyrka eller en bensinstation? Klicka pÃ¥ 'Taggning' ovan för att lära dig!\n\nVilken typ av väg är det?\nNär du har ritat en väg skall du tala om vad för slags väg det är. Är det en riksväg, stig eller älv? Vad heter den? Är det nÃ¥gra speciella regler (t.ex. cykling förbjuden)?\n\nI OpenStreetMap sparas den här informationen i 'taggar'. En tag har tvÃ¥ delar och du kan ha sÃ¥ mÃ¥nga taggar du vill. Till exempel kan du lägga till highway | trunk för att säga att det är en större väg; highway | residential för en väg i ett bostadsomrÃ¥de eller highway | footpath för en gÃ¥ngstig. Om cyklar inte är tillÃ¥tna, sÃ¥ kan du lägga till bicycle | no. Sedan lägger du till namnet genom name | Kungsgatan.\n\nI Potlatch ser du taggarna i nedre delen av skärmen. Klicka pÃ¥ en existerande väg och du ser vilka taggar den har. Klicka pÃ¥ '+' tecknet nere till höger för att lägga till nya taggar. 'x' vid varje tagg används för att ta bort taggen.\n\nDu kan tagga hela vägar, enskilda punkter längs vägen (t.ex. en grind eller trafikljus) och andra intressepunkter.\nAnvända fördefinierade taggar\nFör att underlätta för dig har Potlatch en del fördefinierade taggar för de vanligaste behoven.\n\nVälj en väg, klicka sedan din väg genom symbolerna tills du hittar en passande. Välj det alternativ som passar bäst i menyn.\n\nDetta kommer att leda till att taggar läggs till. NÃ¥gra kommer att bli delvis tomma, sÃ¥ att du kan skriva in t.ex. vägnamn och nummer.\nEnkelriktade vägar\nKanske du vill lägga till en tagg sÃ¥ som oneway | yes, men hur avgör du i vilken riktning? Det finns en pil i nedre vänstra hörnet, som talar om en vägs riktning, frÃ¥n start till slut. Klicka pÃ¥ denna pil för att ändra riktning.\nAtt välja dina egna taggar\nNaturligtvis är du inte begränsad till endast the fördefinierade. Genom att använda '+' knappen, kan du använda vilka taggar som helst.\n\nDu kan se vilka taggar andra har använt i OSMdoc och det finns en lÃ¥ng lista med populära taggar pÃ¥ vÃ¥r wiki kallad Map Features. Men dessa är endast förslag, inte regler. Du är fri att skapa egna taggar eller lÃ¥na frÃ¥n andra.\n\nEftersom OpenStreetMap data används till att framställa mÃ¥nga olika slags kartor och varje karta använder och visar de taggar som anses behövas.\nRelationer\nIbland är inte taggar tillräckligt utan du mÃ¥ste 'gruppera' tvÃ¥ eller fler vägar. Kanske en sväng är förbjuden frÃ¥n en väg in pÃ¥ en annan eller 20 vägar tillsammans bildar en uppmärkt cykelrutt. Du kan göra detta med en avancerad funktion kallad 'relationer'. Lär dig mer pÃ¥ wikin.\n\nÅngra misstag\nDet här är Ã¥ngerknappen (du kan ocksÃ¥ trycka Z) - för att Ã¥ngra den sista ändringen du gjorde.\n\nDu kan gÃ¥ tillbaka till en tidigare sparad version av en väg eller punkt. Välj den och klicka pÃ¥ dess ID (numret nere till vänster) eller tryck H (för historiken). Du kommer att se en lista av med alla som har editerat den och när. Välj den du vill gÃ¥ tillbaka till och klicka pÃ¥ Återställ.\n\nOm du utav misstag har tagit bort en väg och sparat ändringen, tryck U (för att Ã¥ngra raderingen). All borttagna vägar kommer at visas. Välj den du vill ha, lÃ¥s upp genom att klicka pÃ¥ det röda hänglÃ¥set och spara som vanligt.\n\nTror du att nÃ¥gon annan har begÃ¥tt ett misstag? Sänd dem ett vänligt meddelande. Använd historik funktionen (H) för att välja deras namn och tryck pÃ¥ 'Post'.\n\nAnvänd Inspector (i 'Avancerat' menyn) för information om den aktuella vägen eller punkten.\nVanliga frÃ¥gor\nHur ser jag mina vägpunkt?\nVägpunkter visas endast om du klickar 'ändra' bredvid spÃ¥rets titel i 'GPS spÃ¥r'. Filen mÃ¥ste innehÃ¥lla bÃ¥de vägpunkter och spÃ¥rlog, dÃ¥ servern inte kommer bry sig om nÃ¥gonting som endast innehÃ¥ller vägpunkter.\n\nFler vanliga frÃ¥gor (FAQ) om Potlatch och OpenStreetMap.\n\n\n\nArbeta snabbare\nDesto större omrÃ¥de du arbetar med, desto mer data mÃ¥ste Potlatch ladda. Zooma därför in sÃ¥ lÃ¥ngt som möjligt innan du klickar pÃ¥ 'Ändra'.\n\nStäng av 'Använd penna och handpekare' (i fönstret för inställningar) för maximal snabbhet.\n\nOm servern är lÃ¥ngsam, kom tillbaka senare. Kolla wikin för kända problem. Ibland som pÃ¥ söndagkvällar är det mÃ¥nga som jobbar och det kan gÃ¥ lÃ¥ngsamt.\n\nBe Potlatch att komma ihÃ¥g dina favorit taggar. Välj en väg eller punkt med de taggarna, tryck sedan Ctrl, Shift och ett numer mellan 1 och 9. För att sedan använda de taggarna igen, tryck bara Shift och det numret. (Potlatch kommer att komma ihÃ¥g dem pÃ¥ denna datorn)\n\nGör om ditt GPS spÃ¥r till en väg genom att hitta det i 'GPS SpÃ¥r' listan, klicka pÃ¥ 'ändra'. Markera sedan 'konvertera' rutan. Vägen kommer att vara lÃ¥st (röd) sÃ¥ att det inte gÃ¥r att spara. Ändra först och klicka sedan pÃ¥ röda hänglÃ¥set för att lÃ¥sa upp när du är redo att spara.\n\nAtt klicka pÃ¥\nDra i kartan för att flytta runt den.\nDubbel klicka för att skapa en ny inressepunkt (POI).\nEnkel klicka för att starta en ny väg.\nHÃ¥ll och dra i en väg eller POI för att flytta den.\nNär du ritar en väg\nDubbel klicka eller tryck Enter för att avlsuta en väg.\nKlicka pÃ¥ en annan väg för att skapa en korsning.\nShift klicka slutet pÃ¥ en annan väg för att slÃ¥ ihop dem.\nNär en väg är vald\nKlicka pÃ¥ en punkt för att välja den.\nShift-klicka i en väg för att lägga till en ny punkt.\nShift-klicka pÃ¥ en punkt för att starta en ny väg där.\nControl-klicka pÃ¥ en annan väg för att koppla ihop dem.\n\nTangentbords kommandon\nB Lägg till en källhänvisningstag\nC Stäng ett ändringsset\nG Visa GPS spÃ¥r\nH Visa historiken\nI Visa inspector\nJ SlÃ¥ ihop tvÃ¥ korsande vägar i en punkt.\nK LÃ¥s/lÃ¥s upp den aktuella punkten/vägen\nL Visa latitud/longitud\nM Maximera kartfönstret\nP Skapa en parallell väg\nR Upprepa taggar\nS Spara (om du valt 'Ändra via spara')\nT Omvandla till en rät linje eller cirkel\nU Återkalla (visa borttagna vägar)\nX Dela en väg i tvÃ¥ separata\nZ Ångra\n- Ta bort en punkt ifrÃ¥n aktuell väg\n+ Lägg till en ny tagg\n/ Välj annan väg som delar den aktuella punkten\nDelete Ta bort en punkt\n (+Shift) Ta bort en hel väg\nReturn Avsluta ritandet av en linje\nHÃ¥ll Mellanslag och dra bakgrunden\nEsc Avbryt ändringen; ladda om data frÃ¥n servern\n0 Ta bort alla taggar\n1-9 Välj fördefinierade taggar\n (+Shift) Välj användar definierade taggar\n (+S/Ctrl) Definiera användar taggar\n§ eller ` Växla mellan tagg grupper\n\n" + help_html: "Välkommen till Potlatch\nPotlatch är en enkel editor för OpenStreetMap. Lägg in vägar, stigar, affärer och sÃ¥ vidare frÃ¥n dina GPS-spÃ¥r, fria satellitbilder eller gamla kartor.\n\nDe här hjälpsidorna kommer att guida dig igenom de grundläggande funktionerna i Potlatch och var du kan hitta mer information. Klicka pÃ¥ rubrikerna ovan för att börja.\n\nNär du är klar klickar du bara nÃ¥gonstans pÃ¥ sidan.\n\n\n\nBra att veta\nKopiera inte frÃ¥n andra kartor!\n\nOm du väljer 'Ändra direkt' sÃ¥ kommer alla ändringar att skrivas direkt till databasen. Om du inte är sÃ¥ säker välj istället 'Ändra via spara' och ändringarna skrivs till databasen först när du trycker pÃ¥ 'Spara'.\n\nAlla ändringar du gör visas oftast pÃ¥ kartan inom en timma eller tvÃ¥. Ibland kan det ta upp till en vecka. Alla detaljer visas inte pÃ¥ kartan, dÃ¥ det skulle bli för plottrigt. Men eftersom OpenStreetMaps data är fri, kan andra personer utnyttja datan till att göra kartor som visar andra aspekter. Exempel pÃ¥ detta är OpenCycleMap och Midnight Commander.\n\nKom ihÃ¥g att det är bÃ¥de en snygg karta (sÃ¥ rita fina kurvor) och ett diagram (se till att vägar hänger ihop i korsningar).\n\nNämnde vi det där om att inte kopiera frÃ¥n andra kartor?\n\n\nLär dig mer\nPotlatchs manual\nE-postlistor\nChatta (direkthjälp)\nWeb-forum\nGruppwiki\nPotlatchs källkod\n\n\n\nKom igÃ¥ng\nNu när du har startat Potlatch, klicka pÃ¥ 'Ändra via spara' för att komma igÃ¥ng.\n\nSÃ¥, nu är du redo att rita en karta. Det enklaste är att lägga till nÃ¥gra intressepunkter, sÃ¥ kallade POI. Det kan vara sÃ¥dant som restauranger, kyrkor, stationer... Vad som helst som du tycker är viktigt.\n\nDrag och släpp\nFör att göra det enkelt, sÃ¥ ser du en samling av de mest vanliga POI:n ('inressepunkterna') under kartan. Att lägga in en pÃ¥ kartan är enkelt, klicka pÃ¥ ikonen och drag den till rätt ställe pÃ¥ kartan. Var inte orolig, om du skulle placera den fel, sÃ¥ kan du bara klicka pÃ¥ den igen och dra den till rätt ställe. Ikonen kommer vara markerad med gul färg, för att visa dig att den är vald.\n\nNär du väl lagt ut din POI, sÃ¥ kan du ge den ett namn. Du kan se att en liten tabell har dykt upp under kartan. Ett av alternativen där heter \"name\" följt av \"(type name here)\". Gör just det, klicka pÃ¥ texten och skriv namnet.\n\nKlicka nÃ¥gon annanstans pÃ¥ kartan för att avmarkera din POI, nu kommer den färgglada panelen med ikoner tillbaks.\n\nEnkelt, eller hur? Klicka pÃ¥ 'Spara' (nedre högra hörnet) när du är klar.\nFlytta runt\nFör att se en annan del av kartan, sÃ¥ är det bara att klicka pÃ¥ ett tomt ställe i kartan och dra. Potlatch kommer automatiskt att hämta data för det nya omrÃ¥det (du kan se detta i övre högra hörnet).\n\nVi bad dig välja 'Ändra via spara', men du kan ocksÃ¥ välja 'Ändra direkt'. Om du gör det sÃ¥ kommer dina förändringar att skrivas till databasen direkt utan att du behöver trycka pÃ¥ 'Spara' knappen. Detta sätt är bra för snabba smÃ¥ ändringar och karterings partyn.\n\nNästa steg\nNöjd sÃ¥ lÃ¥ngt? Bra! Klicka pÃ¥ 'Kartläggning' ovan för att lära dig mer om hur du blir en riktig kartritare!\n\nKartläggning med en GPS\nTanken med OpenStreetMap är att skapa en karta utan de begränsningar andra som andra kartors copyright ger. Därför kan du inte kopiera data frÃ¥n andra källor. Du mÃ¥ste gÃ¥ ut och kartlägga gatorna pÃ¥ egen hand.\nLyckligtvis är det väldigt kul att göra!\nDet bästa sättet är att ha en handhÃ¥llen GPS. Hitta sedan ett omrÃ¥de som inte är kartlagt ännu, gÃ¥ eller cykla sedan längsmed gatorna med GPSen pÃ¥slagen. Notera namnet och andra viktiga saker (kyrkor, restauranger osv.) när du passerar dem.\n\nNär du kommer hem innehÃ¥ller din GPS ett 'spÃ¥r' över var du har varit. Detta spÃ¥r kan du ladda upp till OpenStreetMap.\n\nDen bästa typen av GPS är en som sparar sin position till loggfilen ofta (varje sekund) och har ett stort minne. MÃ¥nga kartläggare använder handhÃ¥llna GPSer eller smÃ¥ bluetoothenheter. Det finns detaljerade tester av GPSer pÃ¥ vÃ¥r wiki.\n\nLadda upp ditt spÃ¥r\nNu mÃ¥ste du fÃ¥ spÃ¥ret ifrÃ¥n GPSen till din dator. Kanske fick du med en mjukvara med din GPS eller kanske du kan använda USB. Om inte du hittar nÃ¥got sätt, prova GPSBabel. Hur som helst, sÃ¥ vill du fÃ¥ ditt spÃ¥r som en fil i GPX-format.\n\nSedan kan du använda 'GPS-spÃ¥r'-fliken för att ladda upp ditt spÃ¥r till OpenStreetMap. Att ladda upp filen är bara första steget, det kommer inte att synas pÃ¥ kartan automatiskt. Du mÃ¥ste rita och namnge vägarna själv, med ditt spÃ¥r som underlag och guide.\nAnvända ditt spÃ¥r\nLeta rätt pÃ¥ ditt uppladdade spÃ¥r i 'GPS-spÃ¥r'-listan och klicka pÃ¥ 'ändra' precis till höger om det. Potlatch kommer att starta med det spÃ¥ret inladdat samt eventuella vägpunkter. Nu är du redo att börja rita!\n\nDu kan ocksÃ¥ klicka pÃ¥ knappen för att se alla andras GPS-spÃ¥r (men inte vägpunkter) i det aktuella omrÃ¥det. HÃ¥ll nere Shift för att bara se dina spÃ¥r.\nAnvända satellitfoton\nOm du inte har en GPS - inga problem. I vissa städer har vi satellitfoton som du kan använda som underlag. Satellitbilderna har Yahoo! varit vänliga nog att lÃ¥ta oss använda. GÃ¥ ut och notera gatunamnen och kom sedan tillbaka och lägg in informationen.\n\nOm du inte ser nÃ¥gra satellitbilder, klicka pÃ¥ alternativknappen och se till att 'Yahoo!' är markerad. Om du fortfarande inte ser nÃ¥gra bilder, är det troligen för att det inte finns nÃ¥gra tillgängliga för din plats eller sÃ¥ behöver du zooma ut lite.\n\nUnder samma alternativknapp, sÃ¥ ser du även nÃ¥gra andra val som en karta över Storbritannien som inte är skyddad av copyright och OpenTopoMap över USA. Dessa är speciellt utvalda eftersom vi har tillÃ¥telse att använda dem. Kopiera inte frÃ¥n nÃ¥gon annans kartor eller flygfoton.\n\nIbland är satellitbilderna lite missplacerade frÃ¥n de verkliga lägena pÃ¥ vägar. Om du noterar detta, hÃ¥ll nere 'mellanslag' och dra bakgrunden tills den matchar. Lita alltid pÃ¥ GPS-spÃ¥ren framför satellitbilder.\n\nRita vägar\nFör att rita en ny väg, börja genom att klicka pÃ¥ en tom plats pÃ¥ kartan. Sedan fortsätter du genom att klicka där du vill lägga till nya punkter av vägen. När du är klar avslutar du genom att dubbelklicka eller trycka 'Enter' och sedan klicka nÃ¥gon annanstans för att ta bort fokus pÃ¥ vägen.\n\nFör att rita en väg som startar vid en redan existerande väg, börja med att klicka pÃ¥ den existerande vägen för att välja den. Punkterna längs den vägen kommer att bli röda. HÃ¥ll ner 'Shift' och klicka pÃ¥ den punkt där du vill börja den nya vägen (om det inte finns nÃ¥gon röd punkt, shift-klicka bara där du vill börja).\n\nKlicka pÃ¥ 'Spara' (nedre högra hörnet) när du är klar. Spara ofta, ifall det skulle bli problem med servern.\n\nFörvänta dig inte att dina ändringar syns omedelbart pÃ¥ huvudkartan. Vanligtvis tar det en timma eller tvÃ¥ och ibland upp till en vecka.\nSkapa korsningar\nDet är viktigt att där tvÃ¥ vägar möts, mÃ¥ste de dela en punkt (eller 'nod'). Ruttplanerare använder sig av den informationen för att veta var det gÃ¥r att svänga.\n\nPotlatch tar hand om det här, sÃ¥ länge du är noggrann med att klicka exakt pÃ¥ den väg du vill skapa en korsning med. Se efter tecken sÃ¥ som; när punkter blir blÃ¥, muspekaren ändras. Korsningspunkten har en svart ram.\nFlytta och radera\nDet här fungerar precis sÃ¥ som du förväntar dig. För att ta bort en punkt, markera den och tryck pÃ¥ 'Delete'. För att ta bort en hel väg, tryck 'Shift-Delete'.\n\nFör att flytta pÃ¥ nÃ¥got, är det bara att dra det med musen (du mÃ¥ste klicka och hÃ¥lla inne knappen en kort stund före du kan dra ett objekt, sÃ¥ att du inte rÃ¥kar flytta nÃ¥got av misstag).\nMer avancerade funktioner\nOm en väg har olika namn pÃ¥ olika sträckor, mÃ¥ste du dela vägen. Klicka pÃ¥ vägen; klicka sedan pÃ¥ punkten där vägen skall delas och klicka pÃ¥ ikonen med saxen (du kan slÃ¥ ihop vägar genom att klicka med Control, eller Apple knappen pÃ¥ en Mac, men gör inte det med vägar som har olika namn eller typ).\n\nRondeller är verkligt svÃ¥ra att rita korrekt. Men var inte orolig, Potlatch kan hjälpa till. Rita bara en grov cirkel, försäkra dig om att den sitter ihop med sig själv i ändarna. Klicka sedan pÃ¥ ikonen. (Ikonen kan ocksÃ¥ användas för att räta ut vägar som skall vara raka.)\nIntressepunkter\nDet första du lärde dig var hur man drar och släpper en intressepunkt. Du kan ocksÃ¥ skapa en genom att dubbel-klicka pÃ¥ kartan. En grön cirkel skapas. Men hur bestämmer man om det är en kyrka eller en bensinstation? Klicka pÃ¥ 'Taggning' ovan för att lära dig!\n\nVilken typ av väg är det?\nNär du har ritat en väg skall du tala om vad för slags väg det är. Är det en riksväg, stig eller älv? Vad heter den? Är det nÃ¥gra speciella regler (t.ex. cykling förbjuden)?\n\nI OpenStreetMap sparas den här informationen i 'taggar'. En tag har tvÃ¥ delar och du kan ha sÃ¥ mÃ¥nga taggar du vill. Till exempel kan du lägga till highway | trunk för att säga att det är en större väg; highway | residential för en väg i ett bostadsomrÃ¥de eller highway | footpath för en gÃ¥ngstig. Om cyklar inte är tillÃ¥tna, sÃ¥ kan du lägga till bicycle | no. Sedan lägger du till namnet genom name | Kungsgatan.\n\nI Potlatch ser du taggarna i nedre delen av skärmen. Klicka pÃ¥ en existerande väg och du ser vilka taggar den har. Klicka pÃ¥ '+' tecknet nere till höger för att lägga till nya taggar. 'x' vid varje tagg används för att ta bort taggen.\n\nDu kan tagga hela vägar, enskilda punkter längs vägen (t.ex. en grind eller trafikljus) och andra intressepunkter.\nAnvända fördefinierade taggar\nFör att underlätta för dig har Potlatch en del fördefinierade taggar för de vanligaste behoven.\n\nVälj en väg, klicka sedan din väg genom symbolerna tills du hittar en passande. Välj det alternativ som passar bäst i menyn.\n\nDetta kommer att leda till att taggar läggs till. NÃ¥gra kommer att bli delvis tomma, sÃ¥ att du kan skriva in t.ex. vägnamn och nummer.\nEnkelriktade vägar\nKanske du vill lägga till en tagg sÃ¥ som oneway | yes, men hur avgör du i vilken riktning? Det finns en pil i nedre vänstra hörnet, som talar om en vägs riktning, frÃ¥n start till slut. Klicka pÃ¥ denna pil för att ändra riktning.\nAtt välja dina egna taggar\nNaturligtvis är du inte begränsad till endast de fördefinierade. Genom att använda '+'-knappen kan du använda vilka taggar som helst.\n\nDu kan se vilka taggar andra har använt i OSMdoc och det finns en lÃ¥ng lista med populära taggar pÃ¥ vÃ¥r wiki kallad Map Features. Men dessa är endast förslag, inte regler. Du är fri att skapa egna taggar eller lÃ¥na frÃ¥n andra.\n\nEftersom OpenStreetMap-data används till att framställa mÃ¥nga olika slags kartor, kommer varje karta att använda och visa egna utvalda taggar.\nRelationer\nIbland är inte taggar tillräckligt utan du mÃ¥ste 'gruppera' tvÃ¥ eller fler vägar. Kanske en sväng är förbjuden frÃ¥n en väg in pÃ¥ en annan eller 20 vägar tillsammans bildar en uppmärkt cykelrutt. Du kan göra detta med en avancerad funktion kallad 'relationer'. Lär dig mer pÃ¥ wikin.\n\nÅngra misstag\nDet här är Ã¥ngerknappen (du kan ocksÃ¥ trycka Z) - för att Ã¥ngra den sista ändringen du gjorde.\n\nDu kan gÃ¥ tillbaka till en tidigare sparad version av en väg eller punkt. Välj den och klicka pÃ¥ dess ID (numret nere till vänster) eller tryck H (för historiken). Du kommer att se en lista av med alla som har editerat den och när. Välj den du vill gÃ¥ tillbaka till och klicka pÃ¥ Återställ.\n\nOm du utav misstag har tagit bort en väg och sparat ändringen, tryck U (för att Ã¥ngra raderingen). All borttagna vägar kommer at visas. Välj den du vill ha, lÃ¥s upp genom att klicka pÃ¥ det röda hänglÃ¥set och spara som vanligt.\n\nTror du att nÃ¥gon annan har begÃ¥tt ett misstag? Sänd dem ett vänligt meddelande. Använd historik funktionen (H) för att välja deras namn och tryck pÃ¥ 'Post'.\n\nAnvänd Inspector (i 'Avancerat' menyn) för information om den aktuella vägen eller punkten.\nVanliga frÃ¥gor\nHur ser jag mina vägpunkt?\nVägpunkter visas endast om du klickar 'ändra' bredvid spÃ¥rets titel i 'GPS spÃ¥r'. Filen mÃ¥ste innehÃ¥lla bÃ¥de vägpunkter och spÃ¥rlog, dÃ¥ servern inte kommer bry sig om nÃ¥gonting som endast innehÃ¥ller vägpunkter.\n\nFler vanliga frÃ¥gor (FAQ) om Potlatch och OpenStreetMap.\n\n\n\nArbeta snabbare\nDesto större omrÃ¥de du arbetar med, desto mer data mÃ¥ste Potlatch ladda. Zooma därför in sÃ¥ lÃ¥ngt som möjligt innan du klickar pÃ¥ 'Ändra'.\n\nStäng av 'Använd penna och handpekare' (i fönstret för inställningar) för maximal snabbhet.\n\nOm servern är lÃ¥ngsam, kom tillbaka senare. Kolla wikin för kända problem. Ibland som pÃ¥ söndagkvällar är det mÃ¥nga som jobbar och det kan gÃ¥ lÃ¥ngsamt.\n\nBe Potlatch att komma ihÃ¥g dina favorittaggar. Välj en väg eller punkt med de taggarna, tryck sedan Ctrl, Shift och ett numer mellan 1 och 9. För att sedan använda de taggarna igen, tryck bara Shift och det numret. (Potlatch kommer att komma ihÃ¥g dem pÃ¥ denna datorn)\n\nGör om ditt GPS-spÃ¥r till en väg genom att hitta det i 'GPS-spÃ¥r' listan, klicka pÃ¥ 'ändra'. Markera sedan 'konvertera'-rutan. Vägen kommer att vara lÃ¥st (röd) sÃ¥ att det inte gÃ¥r att spara. Ändra först och klicka sedan pÃ¥ röda hänglÃ¥set för att lÃ¥sa upp när du är redo att spara.\n\nAtt klicka pÃ¥\nDra i kartan för att flytta runt den.\nDubbelklicka för att skapa en ny intressepunkt (POI).\nEnkelklicka för att starta en ny väg.\nHÃ¥ll och dra i en väg eller POI för att flytta den.\nNär du ritar en väg\nDubbelklicka eller tryck Enter för att avsluta en väg.\nKlicka pÃ¥ en annan väg för att skapa en korsning.\nShiftklicka slutet pÃ¥ en annan väg för att slÃ¥ ihop dem.\nNär en väg är vald\nKlicka pÃ¥ en punkt för att välja den.\nShift-klicka i en väg för att lägga till en ny punkt.\nShift-klicka pÃ¥ en punkt för att starta en ny väg där.\nControl-klicka pÃ¥ en annan väg för att koppla ihop dem.\n\nTangentbordskommandon\nB Lägg till en källhänvisningstag\nC Stäng ett ändringsset\nG Visa GPS-spÃ¥r\nH Visa historiken\nI Visa inspector\nJ SlÃ¥ ihop tvÃ¥ korsande vägar i en punkt.\nK LÃ¥s/lÃ¥s upp den aktuella punkten/vägen\nL Visa latitud/longitud\nM Maximera kartfönstret\nP Skapa en parallell väg\nR Upprepa taggar\nS Spara (om du valt 'Ändra via spara')\nT Omvandla till en rät linje eller cirkel\nU Återkalla (visa borttagna vägar)\nX Dela en väg i tvÃ¥ separata\nZ Ångra\n- Ta bort en punkt ifrÃ¥n aktuell väg\n+ Lägg till en ny tagg\n/ Välj annan väg som delar den aktuella punkten\nDelete Ta bort en punkt\n (+Shift) Ta bort en hel väg\nReturn Avsluta ritandet av en linje\nHÃ¥ll Mellanslag och dra bakgrunden\nEsc Avbryt ändringen\n; ladda om data frÃ¥n servern\n0 Ta bort alla taggar\n1-9 Välj fördefinierade taggar\n (+Shift) Välj användardefinierade taggar\n (+S/Ctrl) Definiera användartaggar\n§ eller ` Växla mellan taggrupper\n\n" hint_drawmode: Klicka för att lägga till en punkt\n Dubbelklicka för att avsluta vägen. hint_latlon: "lat $1\nlon $2" hint_loading: laddar vägar @@ -99,6 +100,7 @@ sv: inspector_uploading: (laddar upp) inspector_way_connects_to: Förbunden med $1 vägar inspector_way_nodes: $1 noder + loading: Laddar... login_pwd: "Lösenord:" login_retry: Okänt användarnamn. Vänligen försök igen. login_title: Kunde inte logga in @@ -180,6 +182,7 @@ sv: retry: Försök igen revert: Återställ save: Spara + tags_backtolist: Tillbaka till listan tip_addrelation: Lägg till i en relation tip_addtag: Lägg till en ny etikett (tag) tip_alert: Ett fel har inträffat - klicka för detaljer diff --git a/config/potlatch/locales/uk.yml b/config/potlatch/locales/uk.yml index 9fb9accc7..77351131f 100644 --- a/config/potlatch/locales/uk.yml +++ b/config/potlatch/locales/uk.yml @@ -1,6 +1,7 @@ # Messages for Ukrainian (Українська) # Exported from translatewiki.net # Export driver: syck +# Author: AS # Author: Andygol # Author: Prima klasy4na uk: @@ -33,6 +34,7 @@ uk: advanced_tooltip: Розширені дії з редагування advanced_undelete: Відновити advice_bendy: Дуже вигнуто (SHIFT — випрямити) + advice_conflict: Конфлікт на сервері — можливо, потрібно зберегти знов advice_deletingpoi: Вилучення об’єкта (POI) (Z — відміна) advice_deletingway: Вилучення лінії (Z — відміна) advice_microblogged: Оновлено ваш статус $1 @@ -80,7 +82,7 @@ uk: heading_tagging: Встановлення теґів heading_troubleshooting: Вирішення проблем help: Довідка - help_html: "Ласкаво просимо до Potlatch\nPotlatch — це простий у використанні редактор для OpenStreetMap. Малюйте дороги, стежки, визначні пам'ятки і магазини, обробляючи ваші GPS-дані, супутникові знімки і старі мапи.\n\nЦі довідкові сторінки ознайомлять вас з основами використання Potlatch і вкажуть де можна дізнатися додаткові відомості. Гортайте сторінки, натискаючи на назви розділів в шапці цього довідника.\n\nКоли ви захочете закрити довідник — клацніть будь-де поруч з вікном довідника.\n\n\n\nКорисні речі, які треба знати\nНе копіюйте інформацію з інших мап!\n\nЯкщо ви обираєте «Редагування вживу» — будь-які зміни, які ви здійснюєте, надсилаються на сервер до бази даний відразу, як тільки ви їх зробите. Якщо вам подобається багато правити та доопрацьовувати ваші правки на ходу — скористуйтесь «Правкою із збереженням», у цьому разі зміни будуть надіслані на сервер тільки після того, як ви натиснете «Зберегти».\n\nБудь-які правки з’являються на мапі через деякий час (годину або дві, чи навіть через тиждень). Не все буде показано на мапі — це зроблено для того щоб вона на виглядала заплутано. Так як OpenStreetMap — відкритий проект, інші мають змогу створювати власні (спеціальні) мапи на його основі, наприклад: OpenCycleMap (Відкриті велосипедні мапи) або Мапа в стилі Midnight Commander\n\nЗапам’ятайте їх, гарну мапу (з добре позначеними плавними лініями) та схему (яка дозволяє перевірити, що дороги з’єднуються на перехрестях).\n\nХіба ми не говорили про те, що не треба копіювати з інших мап?\n\n\nДізнайтеся більше:\nКерівництво по роботі з Potlatch.\nСписки розсилки\nОнлайн Чат (Жива допомога)\nФорум\nВікі\nСирці Potlatch\n\n\n\nЗ чого розпочати\nОтже ви маєте відкритий Potlatch, клацніть «Редагування із збереженням» щоб почати правити мапу.\n\nТепер ви маєте змогу почати креслити мапу. Найпростішим завданням для початку буде нанесення об’єктів (POI). Це можуть бути церкви, залізничні станції, стоянки… будь-що за вашим бажанням.\n\nПеретягуйте об’єкти на мапу\nЦе робити дуже просто. Ви можете бачити більш вживані об’єкти (POI) знизу, відразу під мапою. Перетягуйте їх на мапу у потрібне місце. Не переймайтесь тим, що ви не поставите їх у вірне місце відразу, ви можете потім перетягнути їх куди треба. Виділені об’єкти позначаються жовтим кольором.\n\nПісля того як ви зробили це, ви, можливо, забажаєте вказати назву для вашого об’єкта (зупинки, церкви, театру и т.і.). Ви побачите невеличку таблицю, як з’явиться знизу. Один з її рядків – «назва»(«name») буде мати значення – «введіть назву» («(type name here)»). Зробіть це — клацніть на клітинку та введіть назву.\n\nКлацніть в будь-якому іншому місці на мапі для зняття виділення з об’єкта, щоб показати знову панель зі значками.\n\nПросто, чи не так? Клацніть «Зберегти» («Save») в правому нижньому куті, коли закінчите.\nПересування мапою\nДля того щоб переміститись на іншу ділянку мапи — просто потягніть мапу у потрібному напрямку. Potlatch автоматично завантажить нові дані (гляньте у правий верхній кут).\n\nМи пропонували вам «Редагування із збереженням», але ви також можете обрати «Редагування вживу». Якщо ви оберете цей режим, ваші зміни будуть надсилатись на сервер відразу, як тільки ви їх зробите, отже вам не треба буде натискати на кнопку «Зберегти» («Save»). Це добре підходить для швидкої правки та заходів з картографування.\n\nНаступні кроки\nРозібрались? Чудово. Клацніть «Геодезія» («Surveying»), щоб дізнатись, як стати спарвжнім картографом.\n\nГеодезія з GPS\nІдея OpenStreetMap полягає в тому, щоб зробити мапу без обмежень, які містять мапи захищені авторським правом. В зв’язку з чим ви не можете копіювати з інших джерел, вам треба піти і обстежити вулиці самостійно. До того ж, це дуже цікаво! \nНайкращій спосіб зробити це — скористатись GPS-пристроєм. Знайдіть територію, яка ще відсутня на мапі (звісно на мапі OpenStreetMap), прогуляйтесь пішки або поїдьте на велосипеді із ввімкненим GPS. Занотуйте назви вулиць та будь-які цікаві подробиці (магазини, кафе, установи …) під час вашої прогулянки.\n\nКоли ви повернетесь до дому, ваш GPS буде мати записаний трек з усіх тих місць, де ви були. Після чого ви можете завантажити його на сервер OpenStreetMap.\n\nНайкращім типом пристроїв GPS є такі, які можуть записувати трек з певною періодичністю (кожну секунду або дві) та має достатньо місця для збереження. Більшість наших картографів використовують пристрої від Garmin або невеликі пристрої із Bluetooth. Докладніше про них можна прочитати у Вікі на сторінці Огляд GPS-приймачів\n\nЗавантаження на сервер ваших треків\nЗараз вам потрібно видобути ваш трек з GPS-пристрою. Можливо, для вашого GPS є програмне забезпечення для цього або він дозволяє вам скопіювати файли через USB. Якщо ні, спробуйте GPSBabel. У будь-якому випадку все що вам треба — щоб отриманий файл був у форматі GPX.\n\nДля завантаження вашого треку на сервер OpenStreetMap скористайтесь вкладкою «GPS-треки». Але це тільки перший крок — він не внесе змін до мапи. Вам треба накреслити ліній та дати їм назви самостійно, використовуючи трек, як орієнтир.\nВикористання треків\nВаші завантажені треки знаходяться в переліку на вкладці «GPS-треки». Клацніть «правити» справа біля нього і Potlatch запуститься завантаживши цей трек та інші точки. Тепер ви готові креслити!\n\nВи також можете натиснути на цю кнопку, щоб показати GPS-треки кожного для цієї ділянки.\nВикористання супутникових фотографій\nЯкщо у вас немає GPS, не переймайтесь. Для великих міст у нас є супутникові знімки (люб’язно надані Yahoo!) по яким ви можете креслити. Зберіть додаткову інформацію про місцевість та креслить та позначайте об’єкти та їх назви (додаткову інформацію) по знімках.\n\nЯкщо ви не бачите супутникові знімки на фоні, клацніть на кнопку налаштувань та переконайтесь, що вибрано «Yahoo!». Ви й досі не бачите їх — можливо для вашого місця розташування їх немає або вам треба зменшити масштаб.\n\nНатиснувши ту ж саму кнопку налаштувань ви можете побачити невеличкий перелік мап, на які не поширюються обмеження авторського права для Великобританії та OpenTopoMap — для США. Всі вони пройшли відбір на відповідність до нашої ліцензії, тому ви можете використовувати їх, але не копіюйте з інших мап чи аерофотознімків. (Пам’ятайте про законодавчі обмеження авторського права.)\n\nІнколи супутникові знімки трохи зсунуті вбік від того місця де насправді вони повинні бути. Якщо ви помітите таке, натисніть Пробіл та потягніть фон доки дорога на ньому не співпаде із треком. Завжди довіряйте GPS-трекам ніж супутниковим знімкам.\n\nКреслення ліній\nДля початку креслення дороги (або «лінії») просто клацніть по чистому місцю на мапі; далі — клацайте на кожному вигині лінії. Коли ви забажаєте закінчити натисніть Ввід або зробіть подвійне клацання; потім клацніть будь-де, щоб знати виділення з дороги.\n\nДля креслення лінії, що починається від іншої лінії, клацніть на цю лінію для виділення; її точки стають червоними. Тримайте SHIFT та клацніть на виділеній лінії щоб розпочати креслення нової лінії з цієї точки. (Якщо в цьому місці немає червоної точки поставте її за допомогою SHIFT-ЛК в потрібному місці!)\n\nКлацніть «Зберегти» («Save») справа знизу, коли закінчите. Зберігайте частіше, якщо зв’язок з сервером ненадійний.\n\nНе сподівайтесь на те, що ваші правки з’являться на мапі негайно. Звичайно, проходить година чи дві, або, навіть, тиждень.\nСтворення з’єднань\nЦе дуже важливо, щоб дві дороги з’єднувались та мали спільну точку (чи «вузол»). Програми-планувальники маршрутів повинні знати де треба повертати.\n\nPotlatch подбає про це до тих пір, доки ви будете ретельно клацати точно на лінію до якої треба приєднатись. Звертайте увагу на корисні ознаки: точка загориться синім, зміниться вказівник, і коли ви закінчите, з’єднання матиме чорний контур.\nПересування та вилучення\nВсе працює так як ви й очікуєте. Для вилучення точки виділіть її та натисніть Delete. Для вилучення всієї лінії — Shift-Delete.\n\nДля переміщення — просто перетягніть елемент. (Вам треба клацнути та трохи зачекати перед пересуванням лінії, це зроблено щоб уникнути випадкового пересування.)\nБільш докладно про креслення\nЯкщо дві частини лінії мають різні назви, вам треба розділити її. Клацніть на лінію; оберіть точку в якій треба розділити лінію та натисніть на значок з ножицями. (Ви також можете з’єднати лінії в одну, натиснувши CTRL та клацнувши мишею, для Mac — клавіша Apple, але не з’єднуйте дороги з різними назвами та типами.)\n\nRoundabouts are really hard to draw right. Don't worry - Potlatch can help. Just draw the loop roughly, making sure it joins back on itself at the end, then click this icon to 'tidy' it. (You can also use this to straighten out roads.)\nОб’єкти (POI)\nСамим першим, чого ви навчились було перетягування об’єктів (POI) на мапу. Ви також можете створювати їх зробивши подвійне клацання на мапі, після чого з’явиться зелене коло. Але, як сказати про те чим воно є (магазин, банкомат)? Дивіться «Позначення теґами», щоб про це дізнатись!\n\nЩо таке тип дороги?\nПісля того як ви накреслили шлях, вам треба зазначити який він. Чи це головна дорога, чи тротуар або ріка? Як він називається? Чи він має особливі правила (наприклад «не для велосипедів»)?\n\nУ OpenStreetMap, ви можете записати це, використовуючи «теґи». Теґ складається з двох частин, ви можете зазначити стільки теґів, скільки треба. Наприклад: ви можете додати highway | trunk для позначення важливої дорги; highway | residential — дороги у жилій зоні; highway | footway — для тротуару. Якщо рух велосипедів заборонений додайте теґ bicycle | no. Додайте назву скориставшись теґом name | Market Street.\n\nТеґ в Potlatch показуються у нижній частині екрану — клацніть на існуючу дорогу, і ви побачите теґи яким вона позначена. Клацніть на «+» спарва знизу для додання нового теґу. Значок «х» біля кожного теґу вилучає його.\n\nВи можете позначити всю лінію; точки на лінії (ворота чи світлофори); об’єкти (POI).\nUsing preset tags\nTo get you started, Potlatch has ready-made presets containing the most popular tags.\n\nSelect a way, then click through the symbols until you find a suitable one. Then, choose the most appropriate option from the menu.\n\nThis will fill the tags in. Some will be left partly blank so you can type in (for example) the road name and number.\nOne-way roads\nYou might want to add a tag like oneway | yes - but how do you say which direction? There's an arrow in the bottom left that shows the way's direction, from start to end. Click it to reverse.\nChoosing your own tags\nOf course, you're not restricted to just the presets. By using the '+' button, you can use any tags at all.\n\nYou can see what tags other people use at OSMdoc, and there is a long list of popular tags on our wiki called Map Features. But these are only suggestions, not rules. You are free to invent your own tags or borrow from others.\n\nBecause OpenStreetMap data is used to make many different maps, each map will show (or 'render') its own choice of tags.\nRelations\nSometimes tags aren't enough, and you need to 'group' two or more ways. Maybe a turn is banned from one road into another, or 20 ways together make up a signed cycle route. You can do this with an advanced feature called 'relations'. Find out more on the wiki.\n\nUndoing mistakes\nThis is the undo button (you can also press Z) - it will undo the last thing you did.\n\nYou can 'revert' to a previously saved version of a way or point. Select it, then click its ID (the number at the bottom left) - or press H (for 'history'). You'll see a list of everyone who's edited it, and when. Choose the one to go back to, and click Revert.\n\nIf you've accidentally deleted a way and saved it, press U (for 'undelete'). All the deleted ways will be shown. Choose the one you want; unlock it by clicking the red padlock; and save as usual.\n\nThink someone else has made a mistake? Send them a friendly message. Use the history option (H) to select their name, then click 'Mail'.\n\nUse the Inspector (in the 'Advanced' menu) for helpful information about the current way or point.\nFAQs\nHow do I see my waypoints?\nWaypoints only show up if you click 'edit' by the track name in 'GPS Traces'. The file has to have both waypoints and tracklog in it - the server rejects anything with waypoints alone.\n\nMore FAQs for Potlatch and OpenStreetMap.\n\n\n\nWorking faster\nThe further out you're zoomed, the more data Potlatch has to load. Zoom in before clicking 'Edit'.\n\nTurn off 'Use pen and hand pointers' (in the options window) for maximum speed.\n\nIf the server is running slowly, come back later. Check the wiki for known problems. Some times, like Sunday evenings, are always busy.\n\nTell Potlatch to memorise your favourite sets of tags. Select a way or point with those tags, then press Ctrl, Shift and a number from 1 to 9. Then, to apply those tags again, just press Shift and that number. (They'll be remembered every time you use Potlatch on this computer.)\n\nTurn your GPS track into a way by finding it in the 'GPS Traces' list, clicking 'edit' by it, then tick the 'convert' box. It'll be locked (red) so won't save. Edit it first, then click the red padlock to unlock when ready to save.\n\nWhat to click\nDrag the map to move around.\nDouble-click to create a new POI.\nSingle-click to start a new way.\nHold and drag a way or POI to move it.\nWhen drawing a way\nDouble-click or press Enter to finish drawing.\nClick another way to make a junction.\nShift-click the end of another way to merge.\nWhen a way is selected\nClick a point to select it.\nShift-click in the way to insert a new point.\nShift-click a point to start a new way from there.\nControl-click another way to merge.\n\nKeyboard shortcuts\nB Add background source tag\nC Close changeset\nG Show GPS tracks\nH Show history\nI Show inspector\nJ Join point to crossing ways\nK Lock/unlock current selection\nL Show current latitude/longitude\nM Maximise editing window\nP Create parallel way\nR Repeat tags\nS Save (unless editing live)\nT Tidy into straight line/circle\nU Undelete (show deleted ways)\nX Cut way in two\nZ Undo\n- Remove point from this way only\n+ Add new tag\n/ Select another way sharing this point\nDelete Delete point\n (+Shift) Delete entire way\nReturn Finish drawing line\nSpace Hold and drag background\nEsc Abort this edit; reload from server\n0 Remove all tags\n1-9 Select preset tags\n (+Shift) Select memorised tags\n (+S/Ctrl) Memorise tags\n§ or ` Cycle between tag groups\n\n" + help_html: "Ласкаво просимо до Potlatch\nPotlatch — це простий у використанні редактор для OpenStreetMap. Кресліть дороги, стежки, визначні пам'ятки і магазини, обробляючи ваші GPS-дані, супутникові знімки і старі мапи.\n\nЦі довідкові сторінки ознайомлять вас з основами використання Potlatch і вкажуть де можна дізнатися додаткові відомості. Гортайте сторінки, натискаючи на назви розділів в шапці цього довідника.\n\nКоли ви захочете закрити довідник — клацніть будь-де поруч з вікном довідника.\n\n\n\nКорисні речі, які треба знати\nНе копіюйте інформацію з інших мап!\n\nЯкщо ви обираєте «Редагування вживу» — будь-які зміни, які ви здійснюєте, надсилаються на сервер до бази даних відразу, як тільки ви їх зробите. Якщо вам подобається багато правити та доопрацьовувати ваші правки на ходу — скористуйтесь «Правкою із збереженням», у цьому разі зміни будуть надіслані на сервер тільки після того, як ви натиснете «Зберегти».\n\nБудь-які правки з’являються на мапі через деякий час (годину або дві, чи навіть через тиждень). Не все буде показано на мапі — це зроблено для того щоб вона на виглядала заплутано. Так як OpenStreetMap — відкритий проект, інші мають змогу створювати власні (спеціальні) мапи на його основі, наприклад: OpenCycleMap (Відкриті велосипедні мапи) або Мапа в стилі Midnight Commander\n\nЗапам’ятайте їх, гарну мапу (з добре позначеними плавними лініями) та схему (яка дозволяє перевірити, що дороги з’єднуються на перехрестях).\n\nХіба ми не говорили про те, що не треба копіювати з інших мап?\n\n\nДізнайтеся більше:\nКерівництво по роботі з Potlatch.\nСписки розсилки\nОнлайн Чат (Жива допомога)\nФорум\nВікі\nСирці Potlatch\n\n\n\nЗ чого розпочати\nОтже ви маєте відкритий Potlatch, клацніть «Редагування із збереженням» щоб почати правити мапу.\n\nТепер ви маєте змогу почати креслити мапу. Найпростішим завданням для початку буде нанесення об’єктів (POI). Це можуть бути церкви, залізничні станції, стоянки… будь-що за вашим бажанням.\n\nПеретягуйте об’єкти на мапу\nЦе робити дуже просто. Ви можете бачити більш вживані об’єкти (POI) знизу, відразу під мапою. Перетягуйте їх на мапу у потрібне місце. Не переймайтесь тим, що ви не поставите їх у вірне місце відразу, ви можете потім перетягнути їх куди треба. Виділені об’єкти позначаються жовтим кольором.\n\nПісля того як ви зробили це, ви, можливо, забажаєте вказати назву для вашого об’єкта (зупинки, церкви, театру и т.і.). Ви побачите невеличку таблицю, як з’явиться знизу. Один з її рядків – «назва»(«name») буде мати значення – «введіть назву» («(type name here)»). Зробіть це — клацніть на клітинку та введіть назву.\n\nКлацніть в будь-якому іншому місці на мапі для зняття виділення з об’єкта, щоб показати знову панель зі значками.\n\nПросто, чи не так? Клацніть «Зберегти» («Save») в правому нижньому куті, коли закінчите.\nПересування мапою\nДля того щоб переміститись на іншу ділянку мапи — просто потягніть мапу у потрібному напрямку. Potlatch автоматично завантажить нові дані (гляньте у правий верхній кут).\n\nМи пропонували вам «Редагування із збереженням», але ви також можете обрати «Редагування вживу». Якщо ви оберете цей режим, ваші зміни будуть надсилатись на сервер відразу, як тільки ви їх зробите, отже вам не треба буде натискати на кнопку «Зберегти» («Save»). Це добре підходить для швидкої правки та заходів з картографування.\n\nНаступні кроки\nРозібрались? Чудово. Клацніть «Геодезія» («Surveying»), щоб дізнатись, як стати спарвжнім картографом.\n\nГеодезія з GPS\nІдея OpenStreetMap полягає в тому, щоб зробити мапу без обмежень, які містять мапи захищені авторським правом. В зв’язку з чим ви не можете копіювати з інших джерел, вам треба піти і обстежити вулиці самостійно. До того ж, це дуже цікаво! \nНайкращій спосіб зробити це — скористатись GPS-пристроєм. Знайдіть територію, яка ще відсутня на мапі (звісно на мапі OpenStreetMap), прогуляйтесь пішки або поїдьте на велосипеді із ввімкненим GPS. Занотуйте назви вулиць та будь-які цікаві подробиці (магазини, кафе, установи …) під час вашої прогулянки.\n\nКоли ви повернетесь до дому, ваш GPS буде мати записаний трек з усіх тих місць, де ви були. Після чого ви можете завантажити його на сервер OpenStreetMap.\n\nНайкращім типом пристроїв GPS є такі, які можуть записувати трек з певною періодичністю (кожну секунду або дві) та має достатньо місця для збереження. Більшість наших картографів використовують пристрої від Garmin або невеликі пристрої із Bluetooth. Докладніше про них можна прочитати у Вікі на сторінці Огляд GPS-приймачів\n\nЗавантаження на сервер ваших треків\nЗараз вам потрібно видобути ваш трек з GPS-пристрою. Можливо, для вашого GPS є програмне забезпечення для цього або він дозволяє вам скопіювати файли через USB. Якщо ні, спробуйте GPSBabel. У будь-якому випадку все що вам треба — щоб отриманий файл був у форматі GPX.\n\nДля завантаження вашого треку на сервер OpenStreetMap скористайтесь вкладкою «GPS-треки». Але це тільки перший крок — він не внесе змін до мапи. Вам треба накреслити ліній та дати їм назви самостійно, використовуючи трек, як орієнтир.\nВикористання треків\nВаші завантажені треки знаходяться в переліку на вкладці «GPS-треки». Клацніть «правити» справа біля нього і Potlatch запуститься завантаживши цей трек та інші точки. Тепер ви готові креслити!\n\nВи також можете натиснути на цю кнопку, щоб показати GPS-треки кожного для цієї ділянки.\nВикористання супутникових фотографій\nЯкщо у вас немає GPS, не переймайтесь. Для великих міст у нас є супутникові знімки (люб’язно надані Yahoo!) по яким ви можете креслити. Зберіть додаткову інформацію про місцевість та креслить та позначайте об’єкти та їх назви (додаткову інформацію) по знімках.\n\nЯкщо ви не бачите супутникові знімки на фоні, клацніть на кнопку налаштувань та переконайтесь, що вибрано «Yahoo!». Ви й досі не бачите їх — можливо для вашого місця розташування їх немає або вам треба зменшити масштаб.\n\nНатиснувши ту ж саму кнопку налаштувань ви можете побачити невеличкий перелік мап, на які не поширюються обмеження авторського права для Великобританії та OpenTopoMap — для США. Всі вони пройшли відбір на відповідність до нашої ліцензії, тому ви можете використовувати їх, але не копіюйте з інших мап чи аерофотознімків. (Пам’ятайте про законодавчі обмеження авторського права.)\n\nІнколи супутникові знімки трохи зсунуті вбік від того місця де насправді вони повинні бути. Якщо ви помітите таке, натисніть Пробіл та потягніть фон доки дорога на ньому не співпаде із треком. Завжди довіряйте GPS-трекам ніж супутниковим знімкам.\n\nКреслення ліній\nДля початку креслення дороги (або «лінії») просто клацніть по чистому місцю на мапі; далі — клацайте на кожному вигині лінії. Коли ви забажаєте закінчити натисніть Ввід або зробіть подвійне клацання; потім клацніть будь-де, щоб знати виділення з дороги.\n\nДля креслення лінії, що починається від іншої лінії, клацніть на цю лінію для виділення; її точки стають червоними. Тримайте SHIFT та клацніть на виділеній лінії щоб розпочати креслення нової лінії з цієї точки. (Якщо в цьому місці немає червоної точки поставте її за допомогою SHIFT-ЛК в потрібному місці!)\n\nКлацніть «Зберегти» («Save») справа знизу, коли закінчите. Зберігайте частіше, якщо зв’язок з сервером ненадійний.\n\nНе сподівайтесь на те, що ваші правки з’являться на мапі негайно. Звичайно, проходить година чи дві, або, навіть, тиждень.\nСтворення з’єднань\nЦе дуже важливо, щоб дві дороги з’єднувались та мали спільну точку (чи «вузол»). Програми-планувальники маршрутів повинні знати де треба повертати.\n\nPotlatch подбає про це до тих пір, доки ви будете ретельно клацати точно на лінію до якої треба приєднатись. Звертайте увагу на корисні ознаки: точка загориться синім, зміниться вказівник, і коли ви закінчите, з’єднання матиме чорний контур.\nПересування та вилучення\nВсе працює так як ви й очікуєте. Для вилучення точки виділіть її та натисніть Delete. Для вилучення всієї лінії — Shift-Delete.\n\nДля переміщення — просто перетягніть елемент. (Вам треба клацнути та трохи зачекати перед пересуванням лінії, це зроблено щоб уникнути випадкового пересування.)\nБільш докладно про креслення\nЯкщо дві частини лінії мають різні назви, вам треба розділити її. Клацніть на лінію; оберіть точку в якій треба розділити лінію та натисніть на значок з ножицями. (Ви також можете з’єднати лінії в одну, натиснувши CTRL та клацнувши мишею, для Mac — клавіша Apple, але не з’єднуйте дороги з різними назвами та типами.)\n\nДоволі складно накреслити правильний круг руками. Не турбуйтесь — Potlatch допоможе. Просто накреслить петлю, так щоб її кінець приєднався до початку та клацніть на значок «вирівняти» («tidy»). (Ви можете також використовувати його для випрямлення доріг.)\nОб’єкти (POI)\nСамим першим, чого ви навчились було перетягування об’єктів (POI) на мапу. Ви також можете створювати їх зробивши подвійне клацання на мапі, після чого з’явиться зелене коло. Але, як сказати про те чим воно є (магазин, банкомат)? Дивіться «Позначення теґами», щоб про це дізнатись!\n\nЩо таке тип дороги?\nПісля того як ви накреслили шлях, вам треба зазначити який він. Чи це головна дорога, чи тротуар або ріка? Як він називається? Чи він має особливі правила (наприклад «не для велосипедів»)?\n\nУ OpenStreetMap, ви можете записати це, використовуючи «теґи». Теґ складається з двох частин, ви можете зазначити стільки теґів, скільки треба. Наприклад: ви можете додати highway | trunk для позначення важливої дорги; highway | residential — дороги у жилій зоні; highway | footway — для тротуару. Якщо рух велосипедів заборонений додайте теґ bicycle | no. Додайте назву скориставшись теґом name | Market Street.\n\nТеґ в Potlatch показуються у нижній частині екрану — клацніть на існуючу дорогу, і ви побачите теґи яким вона позначена. Клацніть на «+» справа знизу для додання нового теґу. Значок «х» біля кожного теґу вилучає його.\n\nВи можете позначити всю лінію; точки на лінії (ворота чи світлофори); об’єкти (POI).\nВикористання шаблонів теґів\nДля того, щоб ви відразу влились у процес створення мапи, Potlatch має готові шаблони, що містять набори найбільш популярних теґів.\n\nВиділіть лінію, потім, клацаючи на значки виберіть потрібний. після чого виберіть найбільш підходящий варіант із меню.\n\nЦе дозволить заповнити теґи. Деякі частково залишаться порожнім, щоб ви могли самостійно вказати, наприклад: назви та номери доріг.\nДороги з одностороннім рухом\nМожливо, ви захочете додати теґ oneway | yes, але як вказати напрямок дороги? Для цього в лівому нижньому куті є стрілка, яка показує напрямок лінії, від початку до кінця. Клацніть на неї для зміни напрямку на протилежний.\nДодавання інших теґів\nЗвісно, ви не обмежені тільки шаблонами теґів. Ви можете використовувати будь-які теґи, які вам потрібні. Клацніть на «+» для цього та зазначте теґ та його значення.\n\nOSMdoc покаже вам, які теґи використовують інші; доволі докладно про популярні теґи розказано у Вікі на сторінці Елементи мапи. Але це лише рекомендації, а не правила. Ви вільні винаходити власні теґи або запозичувати у інших.\n\nТак як дані з OpenStreetMap використовуються для створення інших мап, кожна мапа може показувати теґи за власним вибором.\nЗв’язки\nІноді теґів недостатньо, і вам потрібно об’єднати в «групу» дві чи більше лінії. Можливо, поворот з однієї дороги на іншу заборонений або 20 ліній разом утворюють велосипедний маршрут. Ви можете зробити це за допомогою вдосконаленої функції, яка називається «Зв’язки». Дивись докладніше у Вікі.\n\nВиправлення помилок\nЦе кнопка «відмінити» («undo»), ви також можете натискати Z — відміняє останні дії, що ви зробили.\n\nВи можете «повернути» попередньо збережені версії ліній або точок. Виділіть лінію чи точку та клацніть на їх ідентифікаторі (число зліва знизу) або натисніть «H» (скорочено від 'history' - 'історія'). Ви побачите перелік всіх змін, які відбувались. Виберіть потрібну — до якої треба повернутись і натисніть «Повернути» (Revert).\n\nЯкщо ви випадково вилучили лінію та зберегли зміни — натисніть U (скорочено від 'undelete'). Будуть показані усі вилучені лінії. Виберіть ту, яка вам потрібна; розблокуйте її клацнувши на червоний за́мок; збережіть її як звичайно.\n\nВважаєте, що хтось робить помилки? Наділіть йому дружне повідомлення. Скористайтесь Історією (H), щоб знайти його ім’я та клацніть «Надіслати повідомлення» ('Mail').\n\nСкористайтесь Інспектором (див. «Меню»), щоб отримати корисну інформацію про поточну лінію чи точку.\nЧаПи\nЯк побачити точки треку?\nТочки треку показуються тільки, якщо ви клацнете «правити» на вкладці «GPS-треки». Файли містять як точки так і треки по них — сервер відкидає файли які місять тільки точки.\n\nЧаПи по Potlatch та OpenStreetMap.\n\n\n\nПришвидшення роботи\nЧим більший масштаб ви обрали — тим більше Potlatch повинен завантажити даних. Наблизьте мапу перед тим як перейти на вкладку «Правка».\n\nЗніміть позначку в меню з «включити курсори пера і руки» для максимальної швидкості.\n\nЯкщо сервер уповільнений — завітайте пізніше. Перегляньте у Вікіi інформацію про відомі проблеми. Іноді, як, наприклад: в неділю ввечері, навантаження на сервер дуже велике.\n\nPotlatch може запам’ятовувати найулюбленіші набори ваших теґів. Виділіть лінію чи точку з такими теґами, натисніть Ctrl, Shift та цифру від 1 до 9. Після цього ви можете застосовувати збережені набори теґів просто натискаючи Shift та потрібну цифру. (Вони будуть збережені кожного разу, коли ви користуєтесь Potlatch на цьому комп’ютері).\n\nЩоб перетворити ваш GPS-трек на шлях, знайдіть його у переліку на вкладці «GPS-треки», клацніть «правити» біля нього, поставте позначку у полі «перетворити». Він буде позначений заблокованим (червоним), тому ви не зможете зберегти його як лінію. Спочатку відредагуйте його, після цього клацніть на значок замка́ для його розблокування та подальшого збереження.\n\nЩо натискати\nПотягніть мапу для пересування.Подвійне клацання для створення нового об’єкту (POI).Клацніть щоб розпочати нову лінію.Захватіть та потягніть лінію чи об’єкт (POI) для переміщення.\nКреслення ліній\nПодвійне клацання або натискання Enter для закінчення креслення.Клацніть на іншу лінію для перехрещення.Shift-ЛК на кінці іншої лінії для з’єднання.\nВиділена лінія\nКлацніть на точку для її виділення.Shift-ЛК на лінії для додання нової точки.Shift-ЛК на точці для початку креслення нової лінії з цієї точки.Control-ЛК на іншій лінії для з’єднання.\n\nКомбінації клавіш\nB Додавання теґу джерела фону\nC Закрити набір змін\nG ПоказатиGPS-треки\nH Показати історію\nI Показати інспектора\nJ об’єднати перетинаючися лінії у спільній точці\nK заблокувати/розблокувати поточне виділення\nL Показати поточні координати\nM розгорнути вікно редактора\nP Створити паралельну лініюR повторити теґи\nS Зберегти (не потрібно при «Редагування вживу»)\nT Спрямити/вирівняти лінію/коло\nU Відновити (показати вилучені лінії)\nX Розділити лінію на дві\nZ Відмінити\n- Вилучити точку тільки з цієї лінії\n+ Додати новий теґ\n/ Виділити іншу лінію, для якої ця точка є спільною\nDelete Вилучити точку\n (+Shift) Вилучити всю лінію\nReturn Закінчити креслення лінії\nSpace Натисніть та потягніть фон\nEsc Скасувати поточні зміни\n; перезавантажити дані з сервера\n0 Вилучити всі теґи\n1-9 Вибрати з шаблонів теґів\n (+Shift) Вибрати збережені теґи\n (+S/Ctrl) Запам’ятати теґи\n§ або ` Вибір між групами теґів\n\n" hint_drawmode: клацніть для додання лінії\nподвійне клацання/Ввод\nдля закінчення hint_latlon: "шир $1\nдов $2" hint_loading: завантаження даних @@ -90,6 +92,7 @@ uk: hint_saving: збереження даних hint_saving_loading: завантаження/збереження даних inspector: Перегляд мапи + inspector_duplicate: Дублікат inspector_in_ways: В лініях inspector_latlon: "Шир $1\nДов $2" inspector_locked: Заблоковано @@ -101,6 +104,7 @@ uk: inspector_way_connects_to_principal: З’єднується з $1 $2 і $3 іншими $4 inspector_way_nodes: точок ($1 шт.) inspector_way_nodes_closed: $1 точок (замкнено) + loading: Завантаження… login_pwd: "Пароль:" login_retry: Ваше ім’я користувача не розпізнано. Спробуйте ще раз. login_title: Не вдається увійти @@ -128,6 +132,7 @@ uk: option_layer_ooc_25k: "В.БРИТАНІЯ істор.: 1:25k" option_layer_ooc_7th: "В.БРИТАНІЯ істор.: 1:7000" option_layer_ooc_npe: "В.БРИТАНІЯ істор.: NPE" + option_layer_ooc_scotland: "Великобританія, історичний: Шотландія" option_layer_osmarender: OSM — Osmarender option_layer_streets_haiti: "Гаїті: назви вулиць" option_layer_tip: Оберіть фон @@ -182,13 +187,18 @@ uk: prompt_microblog: Надіслати до $1 (лишилось $2) prompt_revertversion: "Повернутися до попередньої збереженої версії:" prompt_savechanges: Збереження змін - prompt_taggedpoints: Деякі точки з цієї ліні мають теґи. Дійсно вилучити? + prompt_taggedpoints: Деякі точки з цієї ліні мають теґи чи входять до складу зв’язків. Дійсно вилучити? prompt_track: Перетворити GPS-трек в лінію prompt_unlock: Клацніть, щоб розблокувати prompt_welcome: Ласкаво просимо до OpenStreetMap! retry: Повтор revert: Повернути save: Зберегти + tags_backtolist: Повернутись до списку + tags_descriptions: Опис '$1' + tags_findatag: Шукати теґ + tags_matching: Популярні теґи, що підходять "$1" + tags_typesearchterm: "Введіть слово для пошуку:" tip_addrelation: Додати до зв’язку tip_addtag: Додати теґ tip_alert: Помилка — клацніть, щоб дізнатись подробиці diff --git a/config/potlatch/locales/vi.yml b/config/potlatch/locales/vi.yml index 783059eac..3d48cca13 100644 --- a/config/potlatch/locales/vi.yml +++ b/config/potlatch/locales/vi.yml @@ -33,6 +33,7 @@ vi: advanced_tooltip: Tác vụ sá»­a đổi nâng cao advanced_undelete: Phục hồi advice_bendy: Quá quanh co để thẳng ra (SHIFT để ép) + advice_conflict: "Xung đột với máy chá»§: có lẽ cần phải lưu lần nữa" advice_deletingpoi: Đang xóa địa điểm (Z để há»§y bỏ) advice_deletingway: Đang xóa lối (Z để há»§y bỏ) advice_microblogged: Đã cập nhật trạng thái $1 cá»§a bạn @@ -80,7 +81,7 @@ vi: heading_tagging: Gắn thẻ heading_troubleshooting: Trục trặc help: Trợ giúp - help_html: "Hoan nghênh bạn đã đến với Potlatch\nPotlatch là chương trình vẽ bản đồ dễ dàng cá»§a OpenStreetMap. Hãy vẽ đường sá, đường bộ, địa điểm quan tâm, tiệm, và đủ thứ khác dá»±a trên dữ liệu khảo sát GPS, hình ảnh vệ tinh, và bản đồ cÅ©.\n\nCác trang trợ giúp này sẽ dẫn bạn qua các căn bản sá»­ dụng Potlatch và chỉ đến những nÆ¡i tìm hiểu thêm. Nhấn chuột vào các tiêu đề ở trên để bắt đầu.\n\nKhi nào đọc xong, chỉ việc nhấn chuột vào trang này ở ngoài hộp trợ giúp.\n\n\n\nMẹo vặt\nĐừng chép từ bản đồ khác!\n\nNếu chọn “Áp dụng Ngay”, các điểm lối cá»§a bạn sẽ được lưu ngay khi bỏ chọn nó – ngay lập tức. Nếu chưa rành với OpenStreetMap, vui lòng chọn “Lưu Sau” để cho các điểm lối chỉ được lưu lúc khi bấm nút “Lưu”.\n\nCác sá»­a đổi cá»§a bạn sẽ được phản ánh trên bản đồ trong vòng một vài tiếng, nhưng một vài thay đổi lớn cần một tuần để cập nhật. Bản đồ không hiện tất cả mọi thứ, vậy nó sạch sẽ được. Bởi vì dữ liệu OpenStreetMap là mã nguồn mở, người khác có thể thoải mái sản xuất bản đồ kiểu khác, thí dụ như OpenCycleMap (đường xe đạp) hoặc Midnight Commander.\n\nXin nhớ rằng OpenStreetMap cùng lúc là bản đồ đẹp đẽ (bởi vậy hãy vẽ đường cong thật rõ) và biểu đồ (hãy nối lại các đường tại ngã tư, trừ khi có bắc qua).\n\nLần nữa, nhớ đừng chép từ bản đồ khác nhé!\n\n\nTìm hiểu thêm\nHướng dẫn Potlatch\nDanh sách thư\nChat trá»±c tuyến (trợ giúp từ người thật)\nDiễn đàn Web\nWiki cá»§a cộng đồng\nMã nguồn Potlatch\n\n\n\nBắt đầu\nBây giờ đã mở Potlatch thì hãy nhấn chuột vào “Lưu Sau” để bắt đầu.\n\nBạn đã sẵn sàng vẽ vào bản đồ. Cách bắt đầu dễ dàng nhất là thêm những địa điểm quan tâm vào bản đồ, thí dụ như tiệm ăn, nhà thờ, nhà trường, nhà ga…\n\nKéo thả\nCó sẵn một số loại địa điểm thường gặp ngay vào dưới bản đồ cho tiện. Kéo và thả nút địa điểm vào đúng chỗ trên bản đồ. Vả lại, đừng ngại nếu lần đầu tiên thả nó vào chỗ sai; chỉ việc kéo nó tới chỗ đúng. Địa điểm được tô đậm màu vàng vì nó đang được chọn.\n\nBây giờ thì nên đặt tên cho tiệm ăn (hay nhà thờ, nhà trường…). Để ý mới có bảng nhỏ ở dưới liệt kê một số tính năng cá»§a địa điểm. Một dòng đề “name” (tức là “tên”) ở bên trái, còn bên phải là “(type name here)”. Nhấn chuột vào bên phải và nhập tên trong ngôn ngữ địa phương.\n\nNhấn chuột trên bản đồ ngoài địa điểm đó thì địa điểm sẽ được bỏ chọn và hộp màu mè sẽ trở lại.\n\nDễ dàng nhỉ? Khi nào xong, bấm nút “Lưu” ở dưới bên phải.\nChuyển động\nĐể chuyển tới phần bản đồ khác, nhấn chuột vào một vùng trống và kéo. Sau khi thả chuột, Potlatch sẽ tá»± động tải dữ liệu mới. (Phía trên bên phải có hình quay quay cho biết đang hoạt động.)\n\nChúng tôi đã bảo bạn chọn “Lưu Sau” trước khi sá»­a đổi. Tuy nhiên, bạn cÅ©ng có thể chọn “Áp dụng Ngay” để tá»± động lưu các thay đổi vào CSDL sau khi bỏ chọn điểm hay lối, vậy không cần bấm nút “Lưu” nào. Chế độ này có ích khi chỉ cần thá»±c hiện một số thay đổi nhỏ, cÅ©ng như tại các tiệc vẽ bản đồ.\n\nCác bước sau\nBạn vẫn còn hiểu kịp không? OK! Nhấn “Khảo sát” ở trên để tìm hiểu cách vẽ bản đồ thật hay!\n\nKhảo sát dùng GPS\nMục đích cá»§a OpenStreetMap là xây dá»±ng một bản đồ rất đầy đủ không dính líu vào bản quyền hạn chế cá»§a các bản đồ kia. Bởi vậy bạn không được phép chép từ bản đồ khác: thay vì vậy, vui lòng bước ra nhà và khảo sát đường sá lấy. May là cách này vui vẻ lắm!\nMột công cụ rất hữu ích là máy GPS cầm tay. Tìm ra một vùng chưa được biểu diễn trên bản đồ, bật lên GPS, rồi đi bộ hay đạp xe tới lui. Để ý đến các tên đường và những gì khác đáng kể trên đường: quán cà phê, nhà trường, tiệm phở…\n\nSau khi về nhà, máy GPS sẽ chứa “tracklog” (nhật ký hành trình) có các nÆ¡i đã thăm để tải lên OpenStreetMap.\n\nMáy GPS tốt nhất là loại ghi vào tracklog thường xuyên (1–2 giây một lần) và có bộ nhớ lớn. Nhiều người đóng góp sá»­ dụng máy Garmin cầm tay hoặc máy Bluetooth nho nhỏ. Có sẵn nhiều bài xem xét GPS trên wiki.\n\nTải lên tuyến đường\nNow, you need to get your track off the GPS set. Maybe your GPS came with some software, or maybe it lets you copy the files off via USB. If not, try GPSBabel. Whatever, you want the file to be in GPX format.\n\nThen use the 'GPS Traces' tab to upload your track to OpenStreetMap. But this is only the first bit - it won't appear on the map yet. You must draw and name the roads yourself, using the track as a guide.\nSá»­ dụng tuyến đường\nFind your uploaded track in the 'GPS Traces' listing, and click 'edit' right next to it. Potlatch will start with this track loaded, plus any waypoints. You're ready to draw!\n\nYou can also click this button to show everyone's GPS tracks (but not waypoints) for the current area. Hold Shift to show just your tracks.\nSá»­ dụng hình ảnh vệ tinh\nIf you don't have a GPS, don't worry. In some cities, we have satellite photos you can trace over, kindly supplied by Yahoo! (thanks!). Go out and note the street names, then come back and trace over the lines.\n\nIf you don't see the satellite imagery, click the options button and make sure 'Yahoo!' is selected. If you still don't see it, it's probably not available for your city, or you might need to zoom out a bit.\n\nOn this same options button you'll find a few other choices like an out-of-copyright map of the UK, and OpenTopoMap for the US. These are all specially selected because we're allowed to use them - don't copy from anyone else's maps or aerial photos. (Copyright law sucks.)\n\nSometimes satellite pics are a bit displaced from where the roads really are. If you find this, hold Space and drag the background until it lines up. Always trust GPS tracks over satellite pics.\n\nVẽ lối\nTo draw a road (or 'way') starting at a blank space on the map, just click there; then at each point on the road in turn. When you've finished, double-click or press Enter - then click somewhere else to deselect the road.\n\nTo draw a way starting from another way, click that road to select it; its points will appear red. Hold Shift and click one of them to start a new way at that point. (If there's no red point at the junction, shift-click where you want one!)\n\nBấm nút “Lưu” ở phía dưới bên phải khi nào xong. Hãy lưu thường xuyên hễ trường hợp máy chá»§ bị trục trặc.\n\nĐừng mong chờ các thay đổi cá»§a bạn hiện ra ngay trên bản đồ chính. Tùy thay đổi, có thể cần chờ đợi một vài tiếng hay đôi khi tới một tuần lễ. Hãy thá»­ tải lại trang thường xuyên để loại ra các hình bản đồ lỗi thời.\nNối đường\nIt's really important that, where two roads join, they share a point (or 'node'). Route-planners use this to know where to turn.\n\nPotlatch takes care of this as long as you are careful to click exactly on the way you're joining. Look for the helpful signs: the points light up blue, the pointer changes, and when you're done, the junction point has a black outline.\nDi chuyển và xóa\nThis works just as you'd expect it to. To delete a point, select it and press Delete. To delete a whole way, press Shift-Delete.\n\nĐể di chuyển điểm hay lối, chỉ việc kéo nó. (Trước khi kéo lối, hãy nhấn giữ chuột vào nó; phải như vậy để khó kéo nó ngẫu nhiên.)\nVẽ nâng cao hÆ¡n\nIf two parts of a way have different names, you'll need to split them. Click the way; then click the point where it should be split, and click the scissors. (You can merge ways by clicking with Control, or the Apple key on a Mac, but don't merge two roads of different names or types.)\n\nRoundabouts are really hard to draw right. Don't worry - Potlatch can help. Just draw the loop roughly, making sure it joins back on itself at the end, then click this icon to 'tidy' it. (You can also use this to straighten out roads.)\nĐịa điểm quan tâm\nThe first thing you learned was how to drag-and-drop a point of interest. You can also create one by double-clicking on the map: a green circle appears. But how to say whether it's a pub, a church or what? Click 'Tagging' above to find out!\n\nĐường loại nào?\nOnce you've drawn a way, you should say what it is. Is it a major road, a footpath or a river? What's its name? Are there any special rules (e.g. \"no bicycles\")?\n\nIn OpenStreetMap, you record this using 'tags'. A tag has two parts, and you can have as many as you like. For example, you could add highway | trunk to say it's a major road; highway | residential for a road on a housing estate; or highway | footway for a footpath. If bikes were banned, you could then add bicycle | no. Then to record its name, add name | Market Street.\n\nThe tags in Potlatch appear at the bottom of the screen - click an existing road, and you'll see what tags it has. Click the '+' sign (bottom right) to add a new tag. The 'x' by each tag deletes it.\n\nCó thể gắn thẻ vào nguyên một lối, nốt trong lối (có thể cổng hay đèn xanh đỏ), và địa điểm quan tâm.\nSá»­ dụng thẻ có sẵn\nCác bộ thẻ có sẵn trong Potlach làm cho dễ gắn thẻ vào những nét thường gặp trên bản đồ.\n\nSelect a way, then click through the symbols until you find a suitable one. Then, choose the most appropriate option from the menu.\n\nThis will fill the tags in. Some will be left partly blank so you can type in (for example) the road name and number.\nĐường một chiều\nYou might want to add a tag like oneway | yes - but how do you say which direction? There's an arrow in the bottom left that shows the way's direction, from start to end. Click it to reverse.\nSáng chế thẻ\nDÄ© nhiên, vì đây là wiki, bạn không cần hạn chế mình chỉ sá»­ dụng các thẻ co sẵn. Bấm nút “+” để gắn bất cứ thẻ nào tùy ý.\n\nYou can see what tags other people use at OSMdoc, and there is a long list of popular tags on our wiki called Map Features. But these are only suggestions, not rules. You are free to invent your own tags or borrow from others.\n\nVì đủ mọi loại bản đồ dá»±a vào dữ liệu OpenStreetMap, mỗi bản đồ kết xuất (tức là vẽ) một số thẻ được lá»±a chọn.\nQuan hệ\nSometimes tags aren't enough, and you need to 'group' two or more ways. Maybe a turn is banned from one road into another, or 20 ways together make up a signed cycle route. You can do this with an advanced feature called 'relations'. Find out more on the wiki.\n\nLùi lại thay đổi sai\nĐây là nút “Lùi lại”, cÅ©ng được truy cập bằng phím Z, để lùi lại thay đổi cuối cùng cá»§a bạn trong phiên sá»­a đổi này.\n\nYou can 'revert' to a previously saved version of a way or point. Select it, then click its ID (the number at the bottom left) - or press H (for 'history'). You'll see a list of everyone who's edited it, and when. Choose the one to go back to, and click Revert.\n\nIf you've accidentally deleted a way and saved it, press U (for 'undelete'). All the deleted ways will be shown. Choose the one you want; unlock it by clicking the red padlock; and save as usual.\n\nHễ người khác vẽ sai, xin vui lòng gá»­i cho họ một thông điệp thân mật. Nhấn chuột vào ID cá»§a điểm hay lối hoặc bấm phím H để xem tên cá»§a họ, rồi bấm “Thư”.\n\nSá»­ dụng Bộ kiểm tra (trong trình đơn “Nâng cao”) để xem chi tiết có ích về điểm lối đang chọn.\nHỏi đáp\nHow do I see my waypoints?\nWaypoints only show up if you click 'edit' by the track name in 'GPS Traces'. The file has to have both waypoints and tracklog in it - the server rejects anything with waypoints alone.\n\nCó sẵn thêm bài hỏi đáp về Potlatch và OpenStreetMap.\n\n\n\nTăng tốc độ\nThe further out you're zoomed, the more data Potlatch has to load. Zoom in before clicking 'Edit'.\n\nTắt “Hiện con trỏ bút và tay” (trong cá»­a sổ tùy chọn) để cho trình vẽ nhanh nhẹn hÆ¡n.\n\nNếu máy chá»§ đang chạy chậm, hãy trở lại lát nữa. Kiểm tra wiki về các vấn đề đã biết. Những lúc như tối chá»§ nhật thì máy chá»§ chắc bận.\n\nPotlatch có thể nhớ các bộ thẻ ưu thích cá»§a bạn. Chọn lối hoặc điểm có những thẻ muốn nhớ, rồi giữ Ctrl và Shift và bấm số từ 1 đến 9. Từ lúc đó, có thể gắn các thẻ đó bằng cách giữ Shift và bấm số đó. (Các bộ thẻ sẽ được nhớ mỗi lần sá»­ dụng Potlatch trên máy tính này.)\n\nĐể đổi tuyến đường GPS thành lối, kiếm nó trong danh sách “Tuyến đường GPS”, bấm “sá»­a” bên cạnh nó, và chọn hộp “Chuyển đổi”. Lối này mới đầu bị khóa (vẽ màu đỏ) nên chưa được lưu. Trước tiên phải sá»­a đổi nó rồi bấm hình khóa móc màu đỏ để mở khóa trước khi lưu.\n\nCách dùng chuột\nKéo bản đồ để chuyển động.\nNhấn đúp để tạo địa điểm mới.\nNhấn một lần để bắt đầu lối mới.\nCầm kéo điểm hay lối để di chuyển nó.\nKhi vẽ lối\nNhấn đúp hoặc bấm Enter để vẽ xong.\nNhấn vào lối khác để nối liền.\nGiữ Shift và nhấn chuột vào cuối lối khác để nối liền và hợp nhất.\nKhi lối được chọn\nNhấn vào nốt trong lối để chọn nó.\nGiữ Shift và nhấn chuộc vào lối để chèn nốt mới.\nGiữ Shift và nhấn chuột vào nốt trong lối để bắt đầu lối mới từ nốt đó.\nGiữ Shift và nhấn chuột vào lối liền để hợp nhất.\n\nPhím tắt\nB Gắn thẻ nguồn là hình nền\nC Đóng bộ thay đổi\nG Hiện tuyến đường GPS\nH Xem lịch sá»­\nI Hiện bộ kiểm tra\nJ Nối liền các lối cắt qua nốt\nK Khóa/mở khóa điểm hay lối\nL Hiện tọa độ cá»§a con trỏ\nM Phóng to hộp sá»­a đổi\nP Chia thành hai lối song song\nR Lặp lại các thẻ lần trước\nS Lưu (chỉ chế độ “Lưu Sau”)\nT '''T'''hẳng/'''t'''ròn ra các nốt trong lối\nU Hiện lối đã xóa để phục hồi\nX Cắt đôi lối tại nốt\nZ Lùi lại\n- Gỡ điểm khỏi lối (không phải các lối nối liền)\n+ Gắn thẻ mới/ Chọn lối khác có nốt này\nDelete Xóa nốt hay địa điểm\n (+Shift) Xóa cả lối\nReturn Kết thúc lối đang vẽ\nSpace Giữ phím cách để kéo hình nền\nEsc Há»§y bỏ thay đổi và tải lại điểm hay lối này\n0 Gỡ các thẻ\n1-9 Gắn thẻ có sẵn từ trình đơn\n (+Shift) Gắn thẻ từ bộ nhớ\n (+S/Ctrl) Lưu thẻ vào bộ nhớ\n§ or ` Chu kỳ giữa các trình đơn thẻ\n\n" + help_html: "Hoan nghênh bạn đã đến với Potlatch\nPotlatch là chương trình vẽ bản đồ dễ dàng cá»§a OpenStreetMap. Hãy vẽ đường sá, đường bộ, địa điểm quan tâm, tiệm, và đủ thứ khác dá»±a trên dữ liệu khảo sát GPS, hình ảnh vệ tinh, và bản đồ cÅ©.\n\nCác trang trợ giúp này sẽ dẫn bạn qua các căn bản sá»­ dụng Potlatch và chỉ đến những nÆ¡i tìm hiểu thêm. Nhấn chuột vào các tiêu đề ở trên để bắt đầu.\n\nKhi nào đọc xong, chỉ việc nhấn chuột vào trang này ở ngoài hộp trợ giúp.\n\n\n\nMẹo vặt\nĐừng chép từ bản đồ khác!\n\nNếu chọn “Áp dụng Ngay”, các điểm lối cá»§a bạn sẽ được lưu ngay khi bỏ chọn nó – ngay lập tức. Nếu chưa rành với OpenStreetMap, vui lòng chọn “Lưu Sau” để cho các điểm lối chỉ được lưu lúc khi bấm nút “Lưu”.\n\nCác sá»­a đổi cá»§a bạn sẽ được phản ánh trên bản đồ trong vòng một vài tiếng, nhưng một vài thay đổi lớn cần một tuần để cập nhật. Bản đồ không hiện tất cả mọi thứ, vậy nó sạch sẽ được. Bởi vì dữ liệu OpenStreetMap là mã nguồn mở, người khác có thể thoải mái sản xuất bản đồ kiểu khác, thí dụ như OpenCycleMap (đường xe đạp) hoặc Midnight Commander.\n\nXin nhớ rằng OpenStreetMap cùng lúc là bản đồ đẹp đẽ (bởi vậy hãy vẽ đường cong thật rõ) và biểu đồ (hãy nối lại các đường tại ngã tư, trừ khi có bắc qua).\n\nLần nữa, nhớ đừng chép từ bản đồ khác nhé!\n\n\nTìm hiểu thêm\nHướng dẫn Potlatch\nDanh sách thư\nChat trá»±c tuyến (trợ giúp từ người thật)\nDiễn đàn Web\nWiki cá»§a cộng đồng\nMã nguồn Potlatch\n\n\n\nBắt đầu\nBây giờ đã mở Potlatch thì hãy nhấn chuột vào “Lưu Sau” để bắt đầu.\n\nBạn đã sẵn sàng vẽ vào bản đồ. Cách bắt đầu dễ dàng nhất là thêm những địa điểm quan tâm vào bản đồ, thí dụ như tiệm ăn, nhà thờ, nhà trường, nhà ga…\n\nKéo thả\nCó sẵn một số loại địa điểm thường gặp ngay vào dưới bản đồ cho tiện. Kéo và thả nút địa điểm vào đúng chỗ trên bản đồ. Vả lại, đừng ngại nếu lần đầu tiên thả nó vào chỗ sai; chỉ việc kéo nó tới chỗ đúng. Địa điểm được tô đậm màu vàng vì nó đang được chọn.\n\nBây giờ thì nên đặt tên cho tiệm ăn (hay nhà thờ, nhà trường…). Để ý mới có bảng nhỏ ở dưới liệt kê một số tính năng cá»§a địa điểm. Một dòng đề “name” (tức là “tên”) ở bên trái, còn bên phải là “(type name here)”. Nhấn chuột vào bên phải và nhập tên trong ngôn ngữ địa phương.\n\nNhấn chuột trên bản đồ ngoài địa điểm đó thì địa điểm sẽ được bỏ chọn và hộp màu mè sẽ trở lại.\n\nDễ dàng nhỉ? Khi nào xong, bấm nút “Lưu” ở dưới bên phải.\nChuyển động\nĐể chuyển tới phần bản đồ khác, nhấn chuột vào một vùng trống và kéo. Sau khi thả chuột, Potlatch sẽ tá»± động tải dữ liệu mới. (Phía trên bên phải có hình quay quay cho biết đang hoạt động.)\n\nChúng tôi đã bảo bạn chọn “Lưu Sau” trước khi sá»­a đổi. Tuy nhiên, bạn cÅ©ng có thể chọn “Áp dụng Ngay” để tá»± động lưu các thay đổi vào CSDL sau khi bỏ chọn điểm hay lối, vậy không cần bấm nút “Lưu” nào. Chế độ này có ích khi chỉ cần thá»±c hiện một số thay đổi nhỏ, cÅ©ng như tại các tiệc vẽ bản đồ.\n\nCác bước sau\nBạn vẫn còn hiểu kịp không? OK! Nhấn “Khảo sát” ở trên để tìm hiểu cách vẽ bản đồ thật hay!\n\nKhảo sát dùng GPS\nMục đích cá»§a OpenStreetMap là xây dá»±ng một bản đồ rất đầy đủ không dính líu vào bản quyền hạn chế cá»§a các bản đồ kia. Bởi vậy bạn không được phép chép từ bản đồ khác: thay vì vậy, vui lòng bước ra nhà và khảo sát đường sá lấy. May là cách này vui vẻ lắm!\nMột công cụ rất hữu ích là máy GPS cầm tay. Tìm ra một vùng chưa được biểu diễn trên bản đồ, bật lên GPS, rồi đi bộ hay đạp xe tới lui. Để ý đến các tên đường và những gì khác đáng kể trên đường: quán cà phê, nhà trường, tiệm phở…\n\nSau khi về nhà, máy GPS sẽ chứa “tracklog” (nhật ký hành trình) có các nÆ¡i đã thăm để tải lên OpenStreetMap.\n\nMáy GPS tốt nhất là loại ghi vào tracklog thường xuyên (1–2 giây một lần) và có bộ nhớ lớn. Nhiều người đóng góp sá»­ dụng máy Garmin cầm tay hoặc máy Bluetooth nho nhỏ. Có sẵn nhiều bài xem xét GPS trên wiki.\n\nTải lên tuyến đường\nNow, you need to get your track off the GPS set. Maybe your GPS came with some software, or maybe it lets you copy the files off via USB. If not, try GPSBabel. Whatever, you want the file to be in GPX format.\n\nThen use the 'GPS Traces' tab to upload your track to OpenStreetMap. But this is only the first bit - it won't appear on the map yet. You must draw and name the roads yourself, using the track as a guide.\nSá»­ dụng tuyến đường\nFind your uploaded track in the 'GPS Traces' listing, and click 'edit' right next to it. Potlatch will start with this track loaded, plus any waypoints. You're ready to draw!\n\nYou can also click this button to show everyone's GPS tracks (but not waypoints) for the current area. Hold Shift to show just your tracks.\nSá»­ dụng hình ảnh vệ tinh\nIf you don't have a GPS, don't worry. In some cities, we have satellite photos you can trace over, kindly supplied by Yahoo! (thanks!). Go out and note the street names, then come back and trace over the lines.\n\nIf you don't see the satellite imagery, click the options button and make sure 'Yahoo!' is selected. If you still don't see it, it's probably not available for your city, or you might need to zoom out a bit.\n\nOn this same options button you'll find a few other choices like an out-of-copyright map of the UK, and OpenTopoMap for the US. These are all specially selected because we're allowed to use them - don't copy from anyone else's maps or aerial photos. (Copyright law sucks.)\n\nSometimes satellite pics are a bit displaced from where the roads really are. If you find this, hold Space and drag the background until it lines up. Always trust GPS tracks over satellite pics.\n\nVẽ lối\nTo draw a road (or 'way') starting at a blank space on the map, just click there; then at each point on the road in turn. When you've finished, double-click or press Enter - then click somewhere else to deselect the road.\n\nTo draw a way starting from another way, click that road to select it; its points will appear red. Hold Shift and click one of them to start a new way at that point. (If there's no red point at the junction, shift-click where you want one!)\n\nBấm nút “Lưu” ở phía dưới bên phải khi nào xong. Hãy lưu thường xuyên hễ trường hợp máy chá»§ bị trục trặc.\n\nĐừng mong chờ các thay đổi cá»§a bạn hiện ra ngay trên bản đồ chính. Tùy thay đổi, có thể cần chờ đợi một vài tiếng hay đôi khi tới một tuần lễ. Hãy thá»­ tải lại trang thường xuyên để loại ra các hình bản đồ lỗi thời.\nNối đường\nIt's really important that, where two roads join, they share a point (or 'node'). Route-planners use this to know where to turn.\n\nPotlatch takes care of this as long as you are careful to click exactly on the way you're joining. Look for the helpful signs: the points light up blue, the pointer changes, and when you're done, the junction point has a black outline.\nDi chuyển và xóa\nThis works just as you'd expect it to. To delete a point, select it and press Delete. To delete a whole way, press Shift-Delete.\n\nĐể di chuyển điểm hay lối, chỉ việc kéo nó. (Trước khi kéo lối, hãy nhấn giữ chuột vào nó; phải như vậy để khó kéo nó ngẫu nhiên.)\nVẽ nâng cao hÆ¡n\nIf two parts of a way have different names, you'll need to split them. Click the way; then click the point where it should be split, and click the scissors. (You can merge ways by clicking with Control, or the Apple key on a Mac, but don't merge two roads of different names or types.)\n\nRoundabouts are really hard to draw right. Don't worry - Potlatch can help. Just draw the loop roughly, making sure it joins back on itself at the end, then click this icon to 'tidy' it. (You can also use this to straighten out roads.)\nĐịa điểm quan tâm\nThe first thing you learned was how to drag-and-drop a point of interest. You can also create one by double-clicking on the map: a green circle appears. But how to say whether it's a pub, a church or what? Click 'Tagging' above to find out!\n\nĐường loại nào?\nOnce you've drawn a way, you should say what it is. Is it a major road, a footpath or a river? What's its name? Are there any special rules (e.g. \"no bicycles\")?\n\nIn OpenStreetMap, you record this using 'tags'. A tag has two parts, and you can have as many as you like. For example, you could add highway | trunk to say it's a major road; highway | residential for a road on a housing estate; or highway | footway for a footpath. If bikes were banned, you could then add bicycle | no. Then to record its name, add name | Market Street.\n\nThe tags in Potlatch appear at the bottom of the screen - click an existing road, and you'll see what tags it has. Click the '+' sign (bottom right) to add a new tag. The 'x' by each tag deletes it.\n\nCó thể gắn thẻ vào nguyên một lối, nốt trong lối (có thể cổng hay đèn xanh đỏ), và địa điểm quan tâm.\nSá»­ dụng thẻ có sẵn\nCác bộ thẻ có sẵn trong Potlach làm cho dễ gắn thẻ vào những nét thường gặp trên bản đồ.\n\nSelect a way, then click through the symbols until you find a suitable one. Then, choose the most appropriate option from the menu.\n\nThis will fill the tags in. Some will be left partly blank so you can type in (for example) the road name and number.\nĐường một chiều\nYou might want to add a tag like oneway | yes - but how do you say which direction? There's an arrow in the bottom left that shows the way's direction, from start to end. Click it to reverse.\nSáng chế thẻ\nDÄ© nhiên, vì đây là wiki, bạn không cần hạn chế mình chỉ sá»­ dụng các thẻ co sẵn. Bấm nút “+” để gắn bất cứ thẻ nào tùy ý.\n\nYou can see what tags other people use at OSMdoc, and there is a long list of popular tags on our wiki called Map Features. But these are only suggestions, not rules. You are free to invent your own tags or borrow from others.\n\nVì đủ mọi loại bản đồ dá»±a vào dữ liệu OpenStreetMap, mỗi bản đồ kết xuất (tức là vẽ) một số thẻ được lá»±a chọn.\nQuan hệ\nSometimes tags aren't enough, and you need to 'group' two or more ways. Maybe a turn is banned from one road into another, or 20 ways together make up a signed cycle route. You can do this with an advanced feature called 'relations'. Find out more on the wiki.\n\nLùi lại thay đổi sai\nĐây là nút “Lùi lại”, cÅ©ng được truy cập bằng phím Z, để lùi lại thay đổi cuối cùng cá»§a bạn trong phiên sá»­a đổi này.\n\nYou can 'revert' to a previously saved version of a way or point. Select it, then click its ID (the number at the bottom left) - or press H (for 'history'). You'll see a list of everyone who's edited it, and when. Choose the one to go back to, and click Revert.\n\nIf you've accidentally deleted a way and saved it, press U (for 'undelete'). All the deleted ways will be shown. Choose the one you want; unlock it by clicking the red padlock; and save as usual.\n\nHễ người khác vẽ sai, xin vui lòng gá»­i cho họ một thông điệp thân mật. Nhấn chuột vào ID cá»§a điểm hay lối hoặc bấm phím H để xem tên cá»§a họ, rồi bấm “Thư”.\n\nSá»­ dụng Bộ kiểm tra (trong trình đơn “Nâng cao”) để xem chi tiết có ích về điểm lối đang chọn.\nHỏi đáp\nHow do I see my waypoints?\nWaypoints only show up if you click 'edit' by the track name in 'GPS Traces'. The file has to have both waypoints and tracklog in it - the server rejects anything with waypoints alone.\n\nCó sẵn thêm bài hỏi đáp về Potlatch và OpenStreetMap.\n\n\n\nTăng tốc độ\nCàng thu nhỏ càng bắt Potlatch phải tải thêm dữ liệu cùng lúc. Phóng to trước khi bấm “Sá»­a đổi”. \n\nTắt “Hiện con trỏ bút và tay” (trong cá»­a sổ tùy chọn) để cho trình vẽ nhanh nhẹn hÆ¡n.\n\nNếu máy chá»§ đang chạy chậm, hãy trở lại lát nữa. Kiểm tra wiki về các vấn đề đã biết. Những lúc như tối chá»§ nhật thì máy chá»§ chắc bận.\n\nPotlatch có thể nhớ các bộ thẻ ưu thích cá»§a bạn. Chọn lối hoặc điểm có những thẻ muốn nhớ, rồi giữ Ctrl và Shift và bấm số từ 1 đến 9. Từ lúc đó, có thể gắn các thẻ đó bằng cách giữ Shift và bấm số đó. (Các bộ thẻ sẽ được nhớ mỗi lần sá»­ dụng Potlatch trên máy tính này.)\n\nĐể đổi tuyến đường GPS thành lối, kiếm nó trong danh sách “Tuyến đường GPS”, bấm “sá»­a” bên cạnh nó, và chọn hộp “Chuyển đổi”. Lối này mới đầu bị khóa (vẽ màu đỏ) nên chưa được lưu. Trước tiên phải sá»­a đổi nó rồi bấm hình khóa móc màu đỏ để mở khóa trước khi lưu.\n\nCách dùng chuột\nKéo bản đồ để chuyển động.\nNhấn đúp để tạo địa điểm mới.\nNhấn một lần để bắt đầu lối mới.\nCầm kéo điểm hay lối để di chuyển nó.\nKhi vẽ lối\nNhấn đúp hoặc bấm Enter để vẽ xong.\nNhấn vào lối khác để nối liền.\nGiữ Shift và nhấn chuột vào cuối lối khác để nối liền và hợp nhất.\nKhi lối được chọn\nNhấn vào nốt trong lối để chọn nó.\nGiữ Shift và nhấn chuộc vào lối để chèn nốt mới.\nGiữ Shift và nhấn chuột vào nốt trong lối để bắt đầu lối mới từ nốt đó.\nGiữ Shift và nhấn chuột vào lối liền để hợp nhất.\n\nPhím tắt\nB Gắn thẻ nguồn là hình nền\nC Đóng bộ thay đổi\nG Hiện tuyến đường GPS\nH Xem lịch sá»­\nI Hiện bộ kiểm tra\nJ Nối liền các lối cắt qua nốt\nK Khóa/mở khóa điểm hay lối\nL Hiện tọa độ cá»§a con trỏ\nM Phóng to hộp sá»­a đổi\nP Chia thành hai lối song song\nR Lặp lại các thẻ lần trước\nS Lưu (chỉ chế độ “Lưu Sau”)\nT '''T'''hẳng/'''t'''ròn ra các nốt trong lối\nU Hiện lối đã xóa để phục hồi\nX Cắt đôi lối tại nốt\nZ Lùi lại\n- Gỡ điểm khỏi lối (không phải các lối nối liền)\n+ Gắn thẻ mới/ Chọn lối khác có nốt này\nDelete Xóa nốt hay địa điểm\n (+Shift) Xóa cả lối\nReturn Kết thúc lối đang vẽ\nSpace Giữ phím cách để kéo hình nền\nEsc Há»§y bỏ thay đổi và tải lại điểm hay lối này\n0 Gỡ các thẻ\n1-9 Gắn thẻ có sẵn từ trình đơn\n (+Shift) Gắn thẻ từ bộ nhớ\n (+S/Ctrl) Lưu thẻ vào bộ nhớ\n§ or ` Chu kỳ giữa các trình đơn thẻ\n\n" hint_drawmode: nhấn chuột để thêm điểm\nnhấn đúp/Enter\nđể kết thúc lối hint_latlon: "vđ $1\nkđ $2" hint_loading: đang tải các lối @@ -90,6 +91,7 @@ vi: hint_saving: đang lưu dữ liệu hint_saving_loading: đang tải/lưu dữ liệu inspector: Bộ Kiểm tra + inspector_duplicate: Bản sao cá»§a inspector_in_ways: Số lối inspector_latlon: "VÄ© độ $1\nKinh độ $2" inspector_locked: Đang khóa @@ -101,6 +103,7 @@ vi: inspector_way_connects_to_principal: Nối liền $1 $2 và $3 $4 khác inspector_way_nodes: $1 nốt inspector_way_nodes_closed: $1 nốt (đóng) + loading: Đang tải… login_pwd: "Mật khẩu:" login_retry: Không nhận ra tài khoản đăng ký cá»§a bạn. Vui lòng thá»­ lần nữa. login_title: Không thể đăng nhập @@ -128,7 +131,10 @@ vi: option_layer_ooc_25k: "Anh lịch sá»­: 1:25k" option_layer_ooc_7th: "Anh lịch sá»­: lần in 7" option_layer_ooc_npe: "Anh lịch sá»­: NPE" + option_layer_ooc_scotland: "Anh lịch sá»­: Scotland" + option_layer_os_streetview: "Anh: OS StreetView" option_layer_osmarender: OSM – Osmarender + option_layer_streets_haiti: "Haiti: tên đường sá" option_layer_tip: Chọn nền để hiển thị option_limitways: Báo trước khi tải nhiều dữ liệu option_microblog_id: "Tên tiểu blog:" @@ -146,6 +152,7 @@ vi: preset_icon_cafe: Quán cà phê preset_icon_cinema: Rạp phim preset_icon_convenience: Tiệm tạp hoá + preset_icon_disaster: Tòa nhà Haiti preset_icon_fast_food: Nhà hàng ăn nhanh preset_icon_ferry_terminal: Phà preset_icon_fire_station: Trạm cứu hỏa @@ -180,13 +187,19 @@ vi: prompt_microblog: Đăng lên $1 (còn $2 chữ) prompt_revertversion: "Lùi lại phiên bản cÅ© hÆ¡n:" prompt_savechanges: Lưu các thay đổi - prompt_taggedpoints: Một số điểm trên lối này đã được gắn thẻ. Bạn có chắc muốn xóa nó? + prompt_taggedpoints: Một số điểm trên lối này đã được gắn thẻ hoặc thuộc về quan hệ. Bạn có chắc muốn xóa nó? prompt_track: Chuyển đổi tuyến đường GPS thành các lối (khóa) để sá»­a đổi. prompt_unlock: Nhấn chuột để mở khóa prompt_welcome: Hoan nghênh bạn đã đến OpenStreetMap! retry: Thá»­ lại revert: Lùi lại save: Lưu + tags_backtolist: Quay lại danh sách + tags_descriptions: Miêu tả “$1” + tags_findatag: Tìm kiếm thẻ + tags_findtag: Tìm kiếm thẻ + tags_matching: Các thẻ phổ biến trùng hợp với “$1” + tags_typesearchterm: "Nhập từ để tìm kiếm:" tip_addrelation: Xếp vào quan hệ tip_addtag: Thêm thẻ mới tip_alert: Đã gặp lỗi - nhấn để xem chi tiết diff --git a/config/potlatch/relation_colours.txt b/config/potlatch/relation_colours.txt index e845ddf63..16406e3c6 100644 --- a/config/potlatch/relation_colours.txt +++ b/config/potlatch/relation_colours.txt @@ -13,6 +13,7 @@ uk_ldp 0x228022 50 10 nwn 0x228022 50 10 rwn 0x228022 50 10 lwn 0x228022 50 10 +administrative 0xAD61AA 30 10 boundary 0xAD61AA 30 10 restriction 0x000000 0 0 enforcement 0x000000 0 0 diff --git a/lib/quad_tile/.gitignore b/lib/quad_tile/.gitignore new file mode 100644 index 000000000..978f071e9 --- /dev/null +++ b/lib/quad_tile/.gitignore @@ -0,0 +1,3 @@ +Makefile +quad_tile.o +quad_tile_so.so diff --git a/public/.gitignore b/public/.gitignore new file mode 100644 index 000000000..6296b76d2 --- /dev/null +++ b/public/.gitignore @@ -0,0 +1,2 @@ +stats +user diff --git a/public/images/anon_large.png b/public/images/anon_large.png new file mode 100644 index 000000000..ae33d8a87 Binary files /dev/null and b/public/images/anon_large.png differ diff --git a/public/images/anon_small.png b/public/images/anon_small.png new file mode 100644 index 000000000..cfaeb24c0 Binary files /dev/null and b/public/images/anon_small.png differ diff --git a/public/javascripts/map.js b/public/javascripts/map.js index 2349c3230..fd45d9304 100644 --- a/public/javascripts/map.js +++ b/public/javascripts/map.js @@ -32,18 +32,21 @@ function createMap(divName, options) { }); var mapnik = new OpenLayers.Layer.OSM.Mapnik(i18n("javascripts.map.base.mapnik"), { + keyid: "mapnik", displayOutsideMaxExtent: true, wrapDateLine: true }); map.addLayer(mapnik); var osmarender = new OpenLayers.Layer.OSM.Osmarender(i18n("javascripts.map.base.osmarender"), { + keyid: "osmarender", displayOutsideMaxExtent: true, wrapDateLine: true }); map.addLayer(osmarender); var cyclemap = new OpenLayers.Layer.OSM.CycleMap(i18n("javascripts.map.base.cycle_map"), { + keyid: "cyclemap", displayOutsideMaxExtent: true, wrapDateLine: true }); @@ -96,7 +99,8 @@ function addMarkerToMap(position, icon, description) { markers.addMarker(marker); if (description) { - marker.events.register("click", marker, function() { openMapPopup(marker, description) }); + marker.events.register("mouseover", marker, function() { openMapPopup(marker, description) }); + marker.events.register("mouseout", marker, function() { closeMapPopup() }); } return marker; @@ -169,10 +173,9 @@ function addBoxToMap(boxbounds) { function openMapPopup(marker, description) { closeMapPopup(); - popup = new OpenLayers.Popup.AnchoredBubble("popup", marker.lonlat, null, - description, marker.icon, true); + popup = new OpenLayers.Popup.FramedCloud("popup", marker.lonlat, null, + description, marker.icon, true); popup.setBackgroundColor("#E3FFC5"); - popup.autoSize = true; map.addPopup(popup); return popup; diff --git a/public/javascripts/site.js b/public/javascripts/site.js index c17500f57..0a5aae4ad 100644 --- a/public/javascripts/site.js +++ b/public/javascripts/site.js @@ -10,7 +10,7 @@ function updatelinks(lon,lat,zoom,layers,minlon,minlat,maxlon,maxlat,objtype,obj lat = Math.round(lat * decimals) / decimals; lon = Math.round(lon * decimals) / decimals; - node = document.getElementById("permalinkanchor"); + node = $("permalinkanchor"); if (node) { var args = getArgs(node.href); args["lat"] = lat; @@ -25,7 +25,7 @@ function updatelinks(lon,lat,zoom,layers,minlon,minlat,maxlon,maxlat,objtype,obj node.href = setArgs(node.href, args); } - node = document.getElementById("viewanchor"); + node = $("viewanchor"); if (node) { var args = getArgs(node.href); args["lat"] = lat; @@ -37,7 +37,7 @@ function updatelinks(lon,lat,zoom,layers,minlon,minlat,maxlon,maxlat,objtype,obj node.href = setArgs(node.href, args); } - node = document.getElementById("exportanchor"); + node = $("exportanchor"); if (node) { var args = getArgs(node.href); args["lat"] = lat; @@ -49,7 +49,7 @@ function updatelinks(lon,lat,zoom,layers,minlon,minlat,maxlon,maxlat,objtype,obj node.href = setArgs(node.href, args); } - node = document.getElementById("editanchor"); + node = $("editanchor"); if (node) { if (zoom >= 13) { var args = new Object(); @@ -61,15 +61,15 @@ function updatelinks(lon,lat,zoom,layers,minlon,minlat,maxlon,maxlat,objtype,obj } node.href = setArgs("/edit", args); node.title = i18n("javascripts.site.edit_tooltip"); - node.style.fontStyle = 'normal'; + node.removeClassName("disabled"); } else { node.href = 'javascript:alert(i18n("javascripts.site.edit_zoom_alert"));'; node.title = i18n("javascripts.site.edit_disabled_tooltip"); - node.style.fontStyle = 'italic'; + node.addClassName("disabled"); } } - node = document.getElementById("historyanchor"); + node = $("historyanchor"); if (node) { if (zoom >= 11) { var args = new Object(); @@ -88,15 +88,15 @@ function updatelinks(lon,lat,zoom,layers,minlon,minlat,maxlon,maxlat,objtype,obj node.href = setArgs("/history", args); node.title = i18n("javascripts.site.history_tooltip"); - node.style.fontStyle = 'normal'; + node.removeClassName("disabled"); } else { node.href = 'javascript:alert(i18n("javascripts.site.history_zoom_alert"));'; node.title = i18n("javascripts.site.history_disabled_tooltip"); - node.style.fontStyle = 'italic'; + node.addClassName("disabled"); } } - node = document.getElementById("shortlinkanchor"); + node = $("shortlinkanchor"); if (node) { var args = getArgs(node.href); var code = makeShortCode(lat, lon, zoom); diff --git a/public/lib/OpenLayers.js b/public/lib/OpenLayers.js deleted file mode 100644 index 57afe8530..000000000 --- a/public/lib/OpenLayers.js +++ /dev/null @@ -1,104 +0,0 @@ -/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full - * text of the license. */ -//// -/// This blob sucks in all the files in uncompressed form for ease of use -/// - -OpenLayers = new Object(); - -OpenLayers._scriptName = ( - typeof(_OPENLAYERS_SFL_) == "undefined" ? "lib/OpenLayers.js" - : "OpenLayers.js" ); - -OpenLayers._getScriptLocation = function () { - var scriptLocation = ""; - var SCRIPT_NAME = OpenLayers._scriptName; - - var scripts = document.getElementsByTagName('script'); - for (var i = 0; i < scripts.length; i++) { - var src = scripts[i].getAttribute('src'); - if (src) { - var index = src.lastIndexOf(SCRIPT_NAME); - // is it found, at the end of the URL? - if ((index > -1) && (index + SCRIPT_NAME.length == src.length)) { - scriptLocation = src.slice(0, -SCRIPT_NAME.length); - break; - } - } - } - return scriptLocation; -} - -/* - `_OPENLAYERS_SFL_` is a flag indicating this file is being included - in a Single File Library build of the OpenLayers Library. - - When we are *not* part of a SFL build we dynamically include the - OpenLayers library code. - - When we *are* part of a SFL build we do not dynamically include the - OpenLayers library code as it will be appended at the end of this file. -*/ -if (typeof(_OPENLAYERS_SFL_) == "undefined") { - /* - The original code appeared to use a try/catch block - to avoid polluting the global namespace, - we now use a anonymous function to achieve the same result. - */ - (function() { - var jsfiles=new Array( - "Prototype.js", - "Rico/Corner.js", - "Rico/Color.js", - "OpenLayers/Util.js", - "OpenLayers/Ajax.js", - "OpenLayers/Events.js", - "OpenLayers/Map.js", - "OpenLayers/Layer.js", - "OpenLayers/Icon.js", - "OpenLayers/Marker.js", - "OpenLayers/Popup.js", - "OpenLayers/Tile.js", - "OpenLayers/Feature.js", - "OpenLayers/Feature/WFS.js", - "OpenLayers/Tile/Image.js", - "OpenLayers/Tile/WFS.js", -// "OpenLayers/Layer/Google.js", -// "OpenLayers/Layer/VirtualEarth.js", -// "OpenLayers/Layer/Yahoo.js", - "OpenLayers/Layer/Grid.js", - "OpenLayers/Layer/KaMap.js", - "OpenLayers/Layer/Markers.js", - "OpenLayers/Layer/Text.js", - "OpenLayers/Layer/WMS.js", - "OpenLayers/Layer/WFS.js", - "OpenLayers/Layer/WMS/Untiled.js", - "OpenLayers/Popup/Anchored.js", - "OpenLayers/Popup/AnchoredBubble.js", - "OpenLayers/Control.js", - "OpenLayers/Control/MouseDefaults.js", - "OpenLayers/Control/MouseToolbar.js", - "OpenLayers/Control/KeyboardDefaults.js", - "OpenLayers/Control/PanZoom.js", - "OpenLayers/Control/PanZoomBar.js", - "OpenLayers/Control/LayerSwitcher.js" - ); // etc. - - var allScriptTags = ""; - var host = OpenLayers._getScriptLocation() + "lib/"; - - // check to see if prototype.js was already loaded - // if so, skip the first dynamic include - // - var start=1; - try { x = Prototype; } - catch (e) { start=0; } - - for (var i = start; i < jsfiles.length; i++) { - var currentScriptTag = ""; - allScriptTags += currentScriptTag; - } - document.write(allScriptTags); - })(); -} diff --git a/public/lib/OpenLayers/Ajax.js b/public/lib/OpenLayers/Ajax.js deleted file mode 100644 index 5c92c1aa7..000000000 --- a/public/lib/OpenLayers/Ajax.js +++ /dev/null @@ -1,113 +0,0 @@ -/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full - * text of the license. */ - -OpenLayers.ProxyHost = "/proxy/?url="; -//OpenLayers.ProxyHost = "examples/proxy.cgi?url="; - -/** -* Ajax reader for OpenLayers -* -*@uri url to do remote XML http get -*@param 'get' format params (x=y&a=b...) -*@who object to handle callbacks for this request -*@complete the function to be called on success -*@failure the function to be called on failure -* -* example usage from a caller: -* -* caps: function(request) { -* -blah- -* }, -* -* OpenLayers.loadURL(url,params,this,caps); -* -* Notice the above example does not provide an error handler; a default empty -* handler is provided which merely logs the error if a failure handler is not -* supplied -* -*/ - - -/** -* @param {} request -*/ -OpenLayers.nullHandler = function(request) { - alert("Unhandled request return " + request.statusText); -}; - -/** Background load a document -* -* @param {String} uri URI of source doc -* @param {String} params Params on get (doesnt seem to work) -* @param {Object} caller object which gets callbacks -* @param {Function} onComplete callback for success -* @param {Function} onFailure callback for failure -* -* Both callbacks optional (though silly) -*/ -OpenLayers.loadURL = function(uri, params, caller, - onComplete, onFailure) { - - if (OpenLayers.ProxyHost && uri.startsWith("http")) { - uri = OpenLayers.ProxyHost + escape(uri); - - if (!params) { - params=""; - } - params += "&cachehack=" + new Date().getTime(); - } - - var success = (onComplete) ? onComplete.bind(caller) - : OpenLayers.nullHandler; - - var failure = (onFailure) ? onFailure.bind(caller) - : OpenLayers.nullHandler; - - // from prototype.js - new Ajax.Request(uri, - { method: 'get', - parameters: params, - onComplete: success, - onFailure: failure - } - ); -}; - -/** Parse XML into a doc structure -* @param {String} text -* -* @returns Parsed Ajax Response ?? -* @type ? -*/ -OpenLayers.parseXMLString = function(text) { - - //MS sucks, if the server is bad it dies - var index = text.indexOf('<'); - if (index > 0) { - text = text.substring(index); - } - - var ajaxResponse = Try.these( - function() { - var xmldom = new ActiveXObject('Microsoft.XMLDOM'); - xmldom.loadXML(text); - return xmldom; - }, - function() { - return new DOMParser().parseFromString(text, 'text/xml'); - }, - function() { - var req = new XMLHttpRequest(); - req.open("GET", "data:" + "text/xml" + - ";charset=utf-8," + encodeURIComponent(text), false); - if (req.overrideMimeType) { - req.overrideMimeType("text/xml"); - } - req.send(null); - return req.responseXML; - } - ); - - return ajaxResponse; -}; diff --git a/public/lib/OpenLayers/Control.js b/public/lib/OpenLayers/Control.js deleted file mode 100644 index 117fb26c4..000000000 --- a/public/lib/OpenLayers/Control.js +++ /dev/null @@ -1,63 +0,0 @@ -/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full - * text of the license. */ -/** -* @class -*/ -OpenLayers.Control = Class.create(); -OpenLayers.Control.prototype = { - - /** this gets set in the addControl() function in OpenLayers.Map - * @type OpenLayers.Map */ - map: null, - - /** @type DOMElement */ - div: null, - - /** @type OpenLayers.Pixel */ - position: null, - - /** - * @constructor - */ - initialize: function (options) { - Object.extend(this, options); - }, - - /** - * @param {OpenLayers.Pixel} px - * - * @returns A reference to the DIV DOMElement containing the control - * @type DOMElement - */ - draw: function (px) { - if (this.div == null) { - this.div = OpenLayers.Util.createDiv(); - } - if (px != null) { - this.position = px.copyOf(); - } - this.moveTo(this.position); - return this.div; - }, - - /** - * @param {OpenLayers.Pixel} px - */ - moveTo: function (px) { - if ((px != null) && (this.div != null)) { - this.div.style.left = px.x + "px"; - this.div.style.top = px.x + "px"; - } - }, - - /** - */ - destroy: function () { - // eliminate circular references - this.map = null; - }, - - /** @final @type String */ - CLASS_NAME: "OpenLayers.Control" -}; diff --git a/public/lib/OpenLayers/Control/KeyboardDefaults.js b/public/lib/OpenLayers/Control/KeyboardDefaults.js deleted file mode 100644 index e93ad969d..000000000 --- a/public/lib/OpenLayers/Control/KeyboardDefaults.js +++ /dev/null @@ -1,65 +0,0 @@ -/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full - * text of the license. */ -// @require: OpenLayers/Control.js - -/** - * @class - */ -OpenLayers.Control.KeyboardDefaults = Class.create(); -OpenLayers.Control.KeyboardDefaults.prototype = - Object.extend( new OpenLayers.Control(), { - - /** @type int */ - slideFactor: 50, - - /** - * @constructor - */ - initialize: function() { - OpenLayers.Control.prototype.initialize.apply(this, arguments); - }, - - /** - * - */ - draw: function() { - Event.observe(document, - 'keypress', - this.defaultKeyDown.bind(this)); - }, - - /** - * @param {Event} evt - */ - defaultKeyDown: function (evt) { - - var slide = this.map.getResolution() * this.slideFactor; - var center = this.map.getCenter(); - - var newCenter = center.copyOf(); - - switch(evt.keyCode) { - case Event.KEY_LEFT: - newCenter = newCenter.add( -slide, 0); - break; - case Event.KEY_RIGHT: - newCenter = newCenter.add( slide, 0); - break; - case Event.KEY_UP: - newCenter = newCenter.add( 0, slide); - break; - case Event.KEY_DOWN: - newCenter = newCenter.add( 0, -slide); - break; - } - - if (!newCenter.equals(center)) { - this.map.setCenter(newCenter); - Event.stop(evt); - } - }, - - /** @final @type String */ - CLASS_NAME: "OpenLayers.Control.KeyboardDefaults" -}); diff --git a/public/lib/OpenLayers/Control/LayerSwitcher.js b/public/lib/OpenLayers/Control/LayerSwitcher.js deleted file mode 100644 index 032763978..000000000 --- a/public/lib/OpenLayers/Control/LayerSwitcher.js +++ /dev/null @@ -1,224 +0,0 @@ -/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full - * text of the license. */ -// @require: OpenLayers/Control.js -/** -* @class -*/ -OpenLayers.Control.LayerSwitcher = Class.create(); - -/** color used in the UI to show a layer is active/displayed -* -* @final -* @type String -*/ -OpenLayers.Control.LayerSwitcher.ACTIVE_COLOR = "darkblue"; - -/** color used in the UI to show a layer is deactivated/hidden -* -* @final -* @type String -*/ -OpenLayers.Control.LayerSwitcher.NONACTIVE_COLOR = "lightblue"; - - -OpenLayers.Control.LayerSwitcher.prototype = - Object.extend( new OpenLayers.Control(), { - - /** @type String */ - activeColor: "", - - /** @type String */ - nonActiveColor: "", - - /** @type String */ - mode: "checkbox", - - /** - * @constructor - */ - initialize: function(options) { - this.activeColor = OpenLayers.Control.LayerSwitcher.ACTIVE_COLOR; - this.nonActiveColor = OpenLayers.Control.LayerSwitcher.NONACTIVE_COLOR; - this.backdrops = []; - OpenLayers.Control.prototype.initialize.apply(this, arguments); - }, - - /** - * @returns A reference to the DIV DOMElement containing the switcher tabs - * @type DOMElement - */ - draw: function() { - // initialize our internal div - OpenLayers.Control.prototype.draw.apply(this); - - this.div.style.position = "absolute"; - this.div.style.top = "10px"; - this.div.style.right = "0px"; - this.div.style.left = ""; - this.div.style.fontFamily = "sans-serif"; - this.div.style.color = "white"; - this.div.style.fontWeight = "bold"; - this.div.style.marginTop = "3px"; - this.div.style.marginLeft = "3px"; - this.div.style.marginBottom = "3px"; - this.div.style.fontSize="smaller"; - this.div.style.width = "10em"; - - this.map.events.register("addlayer", this, this.redraw); - this.map.events.register("removelayer", this, this.redraw); - return this.redraw(); - }, - - /** - * @returns A reference to the DIV DOMElement containing the switcher tabs - * @type DOMElement - */ - redraw: function() { - - //clear out previous incarnation of LayerSwitcher tabs - this.div.innerHTML = ""; - var visible = false; - for( var i = 0; i < this.map.layers.length; i++) { - if (visible && this.mode == "radio") { - this.map.layers[i].setVisibility(false); - } else { - visible = this.map.layers[i].getVisibility(); - } - this.addTab(this.map.layers[i]); - } - - return this.div; - }, - - /** - * @param {event} evt - */ - singleClick: function(evt) { - var div = Event.element(evt); - - // See comment about OL #57 fix below. - // If the click occurred on the corner spans we need - // to make sure we act on the actual label tab instead. - div = div.labelElement || div; - - var layer = div.layer; - if (this.mode == "radio") { - for(var i=0; i < this.backdrops.length; i++) { - this.setTabActivation(this.backdrops[i], false); - this.backdrops[i].layer.setVisibility(false); - } - this.setTabActivation(div, true); - layer.setVisibility(true); - } else { - var visible = layer.getVisibility(); - - this.setTabActivation(div, !visible); - layer.setVisibility(!visible); - } - Event.stop(evt); - }, - - /** - * @private - * - * @param {event} evt - */ - ignoreEvent: function(evt) { - Event.stop(evt); - return false; - }, - - /** - * @private - * - * @param {OpenLayers.Layer} layer - */ - addTab: function(layer) { - - // Outer DIV - for Rico Corners - // - var backdropLabelOuter = document.createElement('div'); - backdropLabelOuter.id = "LayerSwitcher_" + layer.name + "_Tab"; - backdropLabelOuter.style.marginTop = "4px"; - backdropLabelOuter.style.marginBottom = "4px"; - - this._setEventHandlers(backdropLabelOuter); - - // Inner Label - for Rico Corners - // - var backdropLabel = document.createElement('p'); - backdropLabel.innerHTML = layer.name; - backdropLabel.style.marginTop = "0px"; - backdropLabel.style.marginBottom = "0px"; - backdropLabel.style.paddingLeft = "10px"; - backdropLabel.style.paddingRight = "10px"; - - // add reference to layer onto the div for use in event handlers - backdropLabel.layer = layer; - - // set event handlers - this._setEventHandlers(backdropLabel); - - // add label to div - backdropLabelOuter.appendChild(backdropLabel); - - this.backdrops.append(backdropLabel); - - // add div to main LayerSwitcher Div - this.div.appendChild(backdropLabelOuter); - - Rico.Corner.round(backdropLabelOuter, {corners: "tl bl", - bgColor: "transparent", - color: "white", - blend: false}); - - // extend the event handlers to operate on the - // rounded corners as well. (Fixes OL #57.) - var spanElements=backdropLabel.parentNode.getElementsByTagName("span"); - - for (var currIdx = 0; currIdx < spanElements.length; currIdx++) { - this._setEventHandlers(spanElements[currIdx], backdropLabel); - } - - this.setTabActivation(backdropLabel, layer.getVisibility()); - }, - - /* - @private - - @param {DOMElement} div - @param {Boolean} activate - */ - _setEventHandlers : function(element, labelDiv) { - - // We only want to respond to a mousedown event. - element.onclick = this.singleClick.bindAsEventListener(this); - element.ondblclick = this.singleClick.bindAsEventListener(this); - element.onmouseup = this.ignoreEvent.bindAsEventListener(this); - element.onmousedown = this.ignoreEvent.bindAsEventListener(this); - - // If we are operating on a corner span we need to store a - // reference to the actual tab. (See comment about OL #57 fix above.) - if (labelDiv) { - element.labelElement = labelDiv; - } - }, - - /** - * @private - * - * @param {DOMElement} div - * @param {Boolean} activate - */ - setTabActivation:function(div, activate) { - var color = (activate) ? this.activeColor : this.nonActiveColor; - Rico.Corner.changeColor(div, color); - }, - - - - /** @final @type String */ - CLASS_NAME: "OpenLayers.Control.LayerSwitcher" -}); - diff --git a/public/lib/OpenLayers/Control/MouseDefaults.js b/public/lib/OpenLayers/Control/MouseDefaults.js deleted file mode 100644 index 3ae7edd5d..000000000 --- a/public/lib/OpenLayers/Control/MouseDefaults.js +++ /dev/null @@ -1,130 +0,0 @@ -/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full - * text of the license. */ -// @require: OpenLayers/Control.js -OpenLayers.Control.MouseDefaults = Class.create(); -OpenLayers.Control.MouseDefaults.prototype = - Object.extend( new OpenLayers.Control(), { - - performedDrag: false, - - initialize: function() { - OpenLayers.Control.prototype.initialize.apply(this, arguments); - }, - - draw: function() { - this.map.events.register( "click", this, this.defaultClick ); - this.map.events.register( "dblclick", this, this.defaultDblClick ); - this.map.events.register( "mousedown", this, this.defaultMouseDown ); - this.map.events.register( "mouseup", this, this.defaultMouseUp ); - this.map.events.register( "mousemove", this, this.defaultMouseMove ); - this.map.events.register( "mouseout", this, this.defaultMouseOut ); - }, - - defaultClick: function (evt) { - if (!Event.isLeftClick(evt)) return; - var notAfterDrag = !this.performedDrag; - this.performedDrag = false; - return notAfterDrag; - }, - - /** - * @param {Event} evt - */ - defaultDblClick: function (evt) { - var newCenter = this.map.getLonLatFromViewPortPx( evt.xy ); - this.map.setCenter(newCenter, this.map.zoom + 1); - }, - - /** - * @param {Event} evt - */ - defaultMouseDown: function (evt) { - if (!Event.isLeftClick(evt)) return; - this.mouseDragStart = evt.xy.copyOf(); - this.performedDrag = false; - if (evt.shiftKey) { - this.map.div.style.cursor = "crosshair"; - this.zoomBox = OpenLayers.Util.createDiv('zoomBox', - this.mouseDragStart, - null, - null, - "absolute", - "2px solid red"); - this.zoomBox.style.backgroundColor = "white"; - this.zoomBox.style.filter = "alpha(opacity=50)"; // IE - this.zoomBox.style.opacity = "0.50"; - this.zoomBox.style.zIndex = this.map.Z_INDEX_BASE["Popup"] - 1; - this.map.viewPortDiv.appendChild(this.zoomBox); - } - document.onselectstart=function() { return false; } - Event.stop(evt); - }, - - /** - * @param {Event} evt - */ - defaultMouseMove: function (evt) { - if (this.mouseDragStart != null) { - if (this.zoomBox) { - var deltaX = Math.abs(this.mouseDragStart.x - evt.xy.x); - var deltaY = Math.abs(this.mouseDragStart.y - evt.xy.y); - this.zoomBox.style.width = deltaX+"px"; - this.zoomBox.style.height = deltaY+"px"; - if (evt.xy.x < this.mouseDragStart.x) { - this.zoomBox.style.left = evt.xy.x+"px"; - } - if (evt.xy.y < this.mouseDragStart.y) { - this.zoomBox.style.top = evt.xy.y+"px"; - } - } else { - var deltaX = this.mouseDragStart.x - evt.xy.x; - var deltaY = this.mouseDragStart.y - evt.xy.y; - var size = this.map.getSize(); - var newXY = new OpenLayers.Pixel(size.w / 2 + deltaX, - size.h / 2 + deltaY); - var newCenter = this.map.getLonLatFromViewPortPx( newXY ); - this.map.setCenter(newCenter, null, true); - this.mouseDragStart = evt.xy.copyOf(); - this.map.div.style.cursor = "move"; - } - this.performedDrag = true; - } - }, - - /** - * @param {Event} evt - */ - defaultMouseUp: function (evt) { - if (!Event.isLeftClick(evt)) return; - if (this.zoomBox) { - var start = this.map.getLonLatFromViewPortPx( this.mouseDragStart ); - var end = this.map.getLonLatFromViewPortPx( evt.xy ); - var top = Math.max(start.lat, end.lat); - var bottom = Math.min(start.lat, end.lat); - var left = Math.min(start.lon, end.lon); - var right = Math.max(start.lon, end.lon); - var bounds = new OpenLayers.Bounds(left, bottom, right, top); - var zoom = this.map.getZoomForExtent(bounds); - this.map.setCenter(new OpenLayers.LonLat( - (start.lon + end.lon) / 2, - (start.lat + end.lat) / 2 - ), zoom); - this.map.viewPortDiv.removeChild(document.getElementById("zoomBox")); - this.zoomBox = null; - } else { - this.map.setCenter(this.map.center); - } - document.onselectstart=null; - this.mouseDragStart = null; - this.map.div.style.cursor = "default"; - }, - - defaultMouseOut: function (evt) { - if (this.mouseDragStart != null - && OpenLayers.Util.mouseLeft(evt, this.map.div)) { - this.defaultMouseUp(evt); - } - } -}); - diff --git a/public/lib/OpenLayers/Control/MouseToolbar.js b/public/lib/OpenLayers/Control/MouseToolbar.js deleted file mode 100644 index 28b78d606..000000000 --- a/public/lib/OpenLayers/Control/MouseToolbar.js +++ /dev/null @@ -1,262 +0,0 @@ -/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full - * text of the license. */ -// @require: OpenLayers/Control.js -OpenLayers.Control.MouseToolbar = Class.create(); -OpenLayers.Control.MouseToolbar.X = 6; -OpenLayers.Control.MouseToolbar.Y = 300; -OpenLayers.Control.MouseToolbar.prototype = - Object.extend( new OpenLayers.Control(), { - - mode: null, - - buttons: null, - - direction: "vertical", - - initialize: function(position, direction) { - OpenLayers.Control.prototype.initialize.apply(this, arguments); - this.position = new OpenLayers.Pixel(OpenLayers.Control.MouseToolbar.X, - OpenLayers.Control.MouseToolbar.Y); - if (position) { - this.position = position; - } - if (direction) { - this.direction = direction; - } - this.measureDivs = []; - }, - - draw: function() { - OpenLayers.Control.prototype.draw.apply(this, arguments); - this.buttons = new Object(); - this.map.events.register( "dblclick", this, this.defaultDblClick ); - this.map.events.register( "mousedown", this, this.defaultMouseDown ); - this.map.events.register( "mouseup", this, this.defaultMouseUp ); - this.map.events.register( "mousemove", this, this.defaultMouseMove ); - this.map.events.register( "mouseout", this, this.defaultMouseOut ); - var sz = new OpenLayers.Size(28,28); - var centered = this.position; - this._addButton("zoombox", "drag-rectangle-off.png", "drag-rectangle-on.png", centered, sz, "Shift->Drag to zoom to area"); - centered = centered.add((this.direction == "vertical" ? 0 : sz.w), (this.direction == "vertical" ? sz.h : 0)); - this._addButton("pan", "panning-hand-off.png", "panning-hand-on.png", centered, sz, "Drag the map to pan."); - centered = centered.add((this.direction == "vertical" ? 0 : sz.w), (this.direction == "vertical" ? sz.h : 0)); - this._addButton("measure", "measuring-stick-off.png", "measuring-stick-on.png", centered, sz, "Hold alt when clicking to show distance between selected points"); - this.switchModeTo("pan"); - this.map.events.register("zoomend", this, function() { this.switchModeTo("pan"); }); - return this.div; - - }, - - _addButton:function(id, img, activeImg, xy, sz, title) { - var imgLocation = OpenLayers.Util.getImagesLocation() + img; - var activeImgLocation = OpenLayers.Util.getImagesLocation() + activeImg; - // var btn = new ol.AlphaImage("_"+id, imgLocation, xy, sz); - var btn = OpenLayers.Util.createAlphaImageDiv( - "OpenLayers_Control_MouseToolbar_" + id, - xy, sz, imgLocation, "absolute"); - - //we want to add the outer div - this.div.appendChild(btn); - btn.imgLocation = imgLocation; - btn.activeImgLocation = activeImgLocation; - - btn.events = new OpenLayers.Events(this, btn); - btn.events.register("mousedown", this, this.buttonClick); - btn.events.register("mouseup", this, Event.stop); - btn.action = id; - btn.title = title; - btn.alt = title; - btn.map = this.map; - - //we want to remember/reference the outer div - this.buttons[id] = btn; - return btn; - }, - - buttonClick: function(evt) { - if (!Event.isLeftClick(evt)) return; - this.switchModeTo(evt.div.action); - Event.stop(evt); - }, - - /** - * @param {Event} evt - */ - defaultDblClick: function (evt) { - this.switchModeTo("pan"); - var newCenter = this.map.getLonLatFromViewPortPx( evt.xy ); - this.map.setCenter(newCenter, this.map.zoom + 2); - }, - - /** - * @param {Event} evt - */ - defaultMouseDown: function (evt) { - if (!Event.isLeftClick(evt)) return; - this.mouseDragStart = evt.xy.copyOf(); - if (evt.shiftKey && this.mode !="zoombox") { - this.switchModeTo("zoombox"); - } else if (evt.altKey && this.mode !="measure") { - this.switchModeTo("measure"); - } else if (!this.mode) { - this.switchModeTo("pan"); - } - - switch (this.mode) { - case "zoombox": - this.map.div.style.cursor = "crosshair"; - this.zoomBox = OpenLayers.Util.createDiv('zoomBox', - this.mouseDragStart, - null, - null, - "absolute", - "2px solid red"); - this.zoomBox.style.backgroundColor = "white"; - this.zoomBox.style.filter = "alpha(opacity=50)"; // IE - this.zoomBox.style.opacity = "0.50"; - this.zoomBox.style.zIndex = this.map.Z_INDEX_BASE["Popup"] - 1; - this.map.viewPortDiv.appendChild(this.zoomBox); - break; - case "measure": - var distance = ""; - if (this.measureStart) { - measureEnd = this.map.getLonLatFromViewPortPx(this.mouseDragStart); - distance = OpenLayers.Util.distVincenty(this.measureStart, measureEnd); - distance = Math.round(distance * 100) / 100; - distance = distance + "km"; - this.measureStartBox = this.measureBox; - } - this.measureStart = this.map.getLonLatFromViewPortPx(this.mouseDragStart);; - this.measureBox = OpenLayers.Util.createDiv(null, - this.mouseDragStart.add( - -2-parseInt(this.map.layerContainerDiv.style.left), - -2-parseInt(this.map.layerContainerDiv.style.top)), - null, - null, - "absolute"); - this.measureBox.style.width="4px"; - this.measureBox.style.height="4px"; - this.measureBox.style.backgroundColor="red"; - this.measureBox.style.zIndex = this.map.Z_INDEX_BASE["Popup"] - 1; - this.map.layerContainerDiv.appendChild(this.measureBox); - if (distance) { - this.measureBoxDistance = OpenLayers.Util.createDiv(null, - this.mouseDragStart.add( - -2-parseInt(this.map.layerContainerDiv.style.left), - 2-parseInt(this.map.layerContainerDiv.style.top)), - null, - null, - "absolute"); - - this.measureBoxDistance.innerHTML = distance; - this.measureBoxDistance.style.zIndex = this.map.Z_INDEX_BASE["Popup"] - 1; - this.map.layerContainerDiv.appendChild(this.measureBoxDistance); - this.measureDivs.append(this.measureBoxDistance); - } - this.measureBox.style.zIndex = this.map.Z_INDEX_BASE["Popup"] - 1; - this.map.layerContainerDiv.appendChild(this.measureBox); - this.measureDivs.append(this.measureBox); - break; - default: - this.map.div.style.cursor = "move"; - break; - } - document.onselectstart = function() { return false; } - Event.stop(evt); - }, - - switchModeTo: function(mode) { - if (mode != this.mode) { - if (this.mode) { - OpenLayers.Util.modifyAlphaImageDiv(this.buttons[this.mode], null, null, null, this.buttons[this.mode].imgLocation); - } - if (this.mode == "measure" && mode != "measure") { - for(var i = 0; i < this.measureDivs.length; i++) { - if (this.measureDivs[i]) { - this.map.layerContainerDiv.removeChild(this.measureDivs[i]); - } - } - this.measureDivs = []; - this.measureStart = null; - } - this.mode = mode; - OpenLayers.Util.modifyAlphaImageDiv(this.buttons[mode], null, null, null, this.buttons[mode].activeImgLocation); - } - }, - - leaveMode: function() { - this.switchModeTo("pan"); - }, - - /** - * @param {Event} evt - */ - defaultMouseMove: function (evt) { - if (this.mouseDragStart != null) { - switch (this.mode) { - case "zoombox": - var deltaX = Math.abs(this.mouseDragStart.x - evt.xy.x); - var deltaY = Math.abs(this.mouseDragStart.y - evt.xy.y); - this.zoomBox.style.width = deltaX+"px"; - this.zoomBox.style.height = deltaY+"px"; - if (evt.xy.x < this.mouseDragStart.x) { - this.zoomBox.style.left = evt.xy.x+"px"; - } - if (evt.xy.y < this.mouseDragStart.y) { - this.zoomBox.style.top = evt.xy.y+"px"; - } - break; - default: - var deltaX = this.mouseDragStart.x - evt.xy.x; - var deltaY = this.mouseDragStart.y - evt.xy.y; - var size = this.map.getSize(); - var newXY = new OpenLayers.Pixel(size.w / 2 + deltaX, - size.h / 2 + deltaY); - var newCenter = this.map.getLonLatFromViewPortPx( newXY ); - this.map.setCenter(newCenter, null, true); - this.mouseDragStart = evt.xy.copyOf(); - } - } - }, - - /** - * @param {Event} evt - */ - defaultMouseUp: function (evt) { - if (!Event.isLeftClick(evt)) return; - switch (this.mode) { - case "zoombox": - var start = this.map.getLonLatFromViewPortPx( this.mouseDragStart ); - var end = this.map.getLonLatFromViewPortPx( evt.xy ); - var top = Math.max(start.lat, end.lat); - var bottom = Math.min(start.lat, end.lat); - var left = Math.min(start.lon, end.lon); - var right = Math.max(start.lon, end.lon); - var bounds = new OpenLayers.Bounds(left, bottom, right, top); - var zoom = this.map.getZoomForExtent(bounds); - this.map.setCenter(new OpenLayers.LonLat( - (start.lon + end.lon) / 2, - (start.lat + end.lat) / 2 - ), zoom); - this.map.viewPortDiv.removeChild(document.getElementById("zoomBox")); - this.zoomBox = null; - this.leaveMode(); - break; - case "pan": - this.map.setCenter(this.map.center); - - } - document.onselectstart = null; - this.mouseDragStart = null; - this.map.div.style.cursor = "default"; - }, - - defaultMouseOut: function (evt) { - if (this.mouseDragStart != null - && OpenLayers.Util.mouseLeft(evt, this.map.div)) { - this.defaultMouseUp(evt); - } - } -}); - diff --git a/public/lib/OpenLayers/Control/PanZoom.js b/public/lib/OpenLayers/Control/PanZoom.js deleted file mode 100644 index 32eed2feb..000000000 --- a/public/lib/OpenLayers/Control/PanZoom.js +++ /dev/null @@ -1,164 +0,0 @@ -/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full - * text of the license. */ -// @require: OpenLayers/Control.js - -/** - * @class - * - * default zoom/pan controls - */ -OpenLayers.Control.PanZoom = Class.create(); -OpenLayers.Control.PanZoom.X = 4; -OpenLayers.Control.PanZoom.Y = 4; -OpenLayers.Control.PanZoom.prototype = - Object.extend( new OpenLayers.Control(), { - - /** @type int */ - slideFactor: 50, - - /** @type Array of Button Divs */ - buttons: null, - - /** @type OpenLayers.Pixel */ - position: null, - - /** - * @constructor - */ - initialize: function() { - OpenLayers.Control.prototype.initialize.apply(this, arguments); - this.position = new OpenLayers.Pixel(OpenLayers.Control.PanZoom.X, - OpenLayers.Control.PanZoom.Y); - }, - - /** - * @param {OpenLayers.Pixel} px - * - * @returns A reference to the container div for the PanZoom control - * @type DOMElement - */ - draw: function(px) { - // initialize our internal div - OpenLayers.Control.prototype.draw.apply(this, arguments); - px = this.position; - - // place the controls - this.buttons = new Array(); - - var sz = new OpenLayers.Size(18,18); - var centered = new OpenLayers.Pixel(px.x+sz.w/2, px.y); - - this._addButton("panup", "north-mini.png", centered, sz); - px.y = centered.y+sz.h; - this._addButton("panleft", "west-mini.png", px, sz); - this._addButton("panright", "east-mini.png", px.add(sz.w, 0), sz); - this._addButton("pandown", "south-mini.png", - centered.add(0, sz.h*2), sz); - this._addButton("zoomin", "zoom-plus-mini.png", - centered.add(0, sz.h*3+5), sz); - this._addButton("zoomworld", "zoom-world-mini.png", - centered.add(0, sz.h*4+5), sz); - this._addButton("zoomout", "zoom-minus-mini.png", - centered.add(0, sz.h*5+5), sz); - return this.div; - }, - - /** - * @param {String} id - * @param {String} img - * @param {OpenLayers.Pixel} xy - * @param {OpenLayers.Size} sz - * - * @returns A Div (an alphaImageDiv, to be precise) that contains the - * image of the button, and has all the proper event handlers - * set. - * @type DOMElement - */ - _addButton:function(id, img, xy, sz) { - var imgLocation = OpenLayers.Util.getImagesLocation() + img; - // var btn = new ol.AlphaImage("_"+id, imgLocation, xy, sz); - var btn = OpenLayers.Util.createAlphaImageDiv( - "OpenLayers_Control_PanZoom_" + id, - xy, sz, imgLocation, "absolute"); - - //we want to add the outer div - this.div.appendChild(btn); - - btn.onmousedown = this.buttonDown.bindAsEventListener(btn); - btn.ondblclick = this.doubleClick.bindAsEventListener(btn); - btn.onclick = this.doubleClick.bindAsEventListener(btn); - btn.action = id; - btn.map = this.map; - btn.slideFactor = this.slideFactor; - - //we want to remember/reference the outer div - this.buttons.push(btn); - return btn; - }, - - /** - * @param {event} evt - * - * @type Boolean - */ - doubleClick: function (evt) { - Event.stop(evt); - return false; - }, - - /** - * @param {event} evt - */ - buttonDown: function (evt) { - if (!Event.isLeftClick(evt)) return; - - var slide = this.map.getResolution() * this.slideFactor; - var center = this.map.getCenter(); - - var newCenter = center.copyOf(); - - switch (this.action) { - case "panup": - newCenter = newCenter.add( 0, slide); - break; - case "pandown": - newCenter = newCenter.add( 0, -slide); - break; - case "panleft": - newCenter = newCenter.add( -slide, 0); - break; - case "panright": - newCenter = newCenter.add( slide, 0); - break; - case "zoomin": - this.map.zoomIn(); - break; - case "zoomout": - this.map.zoomOut(); - break; - case "zoomworld": - this.map.zoomToFullExtent(); - break; - } - - if (!newCenter.equals(center)) { - this.map.setCenter(newCenter); - } - - Event.stop(evt); - }, - - /** - * - */ - destroy: function() { - OpenLayers.Control.prototype.destroy.apply(this, arguments); - for(i=0; i 0 && - (evt.clientY - offsets[1]) < parseInt(this.zoombarDiv.style.height) - 2) { - var newTop = parseInt(this.slider.style.top) - deltaY; - this.slider.style.top = newTop+"px"; - } - this.mouseDragStart = evt.xy.copyOf(); - } - Event.stop(evt); - }, - - /* - * @param evt - * Perform cleanup when a mouseup event is received -- discover new zoom level - * and switch to it. - */ - zoomBarUp:function(evt) { - if (!Event.isLeftClick(evt)) return; - if (this.zoomStart) { - this.div.style.cursor="default"; - this.map.events.remove("mousemove"); - this.map.events.remove("mouseup"); - var deltaY = this.zoomStart.y - evt.xy.y - this.map.zoomTo(this.map.zoom + Math.round(deltaY/this.zoomStopHeight)); - this.moveZoomBar(); - this.mouseDragStart = null; - Event.stop(evt); - } - }, - - /* - * Change the location of the slider to match the current zoom level. - */ - moveZoomBar:function() { - var newTop = - (this.map.getZoomLevels() - this.map.getZoom()) * this.zoomStopHeight - + this.startTop + 1; - this.slider.style.top = newTop + "px"; - }, - - CLASS_NAME: "OpenLayers.Control.PanZoomBar" -}); diff --git a/public/lib/OpenLayers/Events.js b/public/lib/OpenLayers/Events.js deleted file mode 100644 index 00e158b4f..000000000 --- a/public/lib/OpenLayers/Events.js +++ /dev/null @@ -1,124 +0,0 @@ -/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full - * text of the license. */ -OpenLayers.Events = Class.create(); - -OpenLayers.Events.prototype = { - // Array: supported events - BROWSER_EVENTS: [ - "mouseover", "mouseout", - "mousedown", "mouseup", "mousemove", - "click", "dblclick", - "resize", "focus", "blur" - ], - - // hash of Array(Function): events listener functions - listeners: null, - - // Object: the code object issuing application events - object: null, - - // DOMElement: the DOM element receiving browser events - div: null, - - // Array: list of support application events - eventTypes: null, - - /** - * @param {OpenLayers.Map} map - * @param {DOMElement} div - */ - initialize: function (object, div, eventTypes) { - this.listeners = {}; - this.object = object; - this.div = div; - this.eventTypes = eventTypes; - if (eventTypes) { - for (var i = 0; i < this.eventTypes.length; i++) { - // create a listener list for every custom application event - this.listeners[ this.eventTypes[i] ] = []; - } - } - for (var i = 0; i < this.BROWSER_EVENTS.length; i++) { - var eventType = this.BROWSER_EVENTS[i]; - - // every browser event has a corresponding application event - // (whether it's listened for or not). - this.listeners[ eventType ] = []; - - Event.observe(div, eventType, - this.handleBrowserEvent.bindAsEventListener(this)); - } - // disable dragstart in IE so that mousedown/move/up works normally - Event.observe(div, "dragstart", Event.stop); - }, - - /** - * @param {str} type - * @param {Object} obj - * @param {Function} func - */ - register: function (type, obj, func) { - if (func == null) { - obj = this.object; - func = obj; - } - var listeners = this.listeners[type]; - listeners.push( {obj: obj, func: func} ); - }, - - unregister: function (type, obj, func) { - var listeners = this.listeners[type]; - for (var i = 0; i < listeners.length; i++) { - if (listeners[i].obj == obj && listeners[i].type == type) { - listeners.splice(i, 1); - break; - } - } - }, - - remove: function(type) { - this.listeners[type].pop(); - }, - - /** - * @param {event} evt - */ - handleBrowserEvent: function (evt) { - evt.xy = this.getMousePosition(evt); - this.triggerEvent(evt.type, evt) - }, - - /** - * @param {event} evt - * - * @return {OpenLayers.Pixel} - */ - getMousePosition: function (evt) { - if (!this.div.offsets) { - this.div.offsets = Position.page(this.div); - } - return new OpenLayers.Pixel( - evt.clientX - this.div.offsets[0], - evt.clientY - this.div.offsets[1]); - }, - - /** - * @param {str} type - * @param {event} evt - */ - triggerEvent: function (type, evt) { - if (evt == null) { - evt = {}; - } - evt.object = this.object; - evt.div = this.div; - - var listeners = this.listeners[type]; - for (var i = 0; i < listeners.length; i++) { - var callback = listeners[i]; - var continueChain = callback.func.call(callback.obj, evt); - if (continueChain != null && !continueChain) break; - } - } -}; diff --git a/public/lib/OpenLayers/Feature.js b/public/lib/OpenLayers/Feature.js deleted file mode 100644 index a15318001..000000000 --- a/public/lib/OpenLayers/Feature.js +++ /dev/null @@ -1,110 +0,0 @@ -/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full - * text of the license. */ -/** - * @class - */ -OpenLayers.Feature = Class.create(); -OpenLayers.Feature.prototype= { - - /** @type OpenLayers.Events */ - events:null, - - /** @type OpenLayers.Layer */ - layer: null, - - /** @type String */ - id: null, - - /** @type OpenLayers.LonLat */ - lonlat:null, - - /** @type Object */ - data:null, - - /** @type OpenLayers.Marker */ - marker: null, - - /** @type OpenLayers.Popup */ - popup: null, - - /** - * @constructor - * - * @param {OpenLayers.Layer} layer - * @param {String} id - * @param {OpenLayers.LonLat} lonlat - * @param {Object} data - */ - initialize: function(layer, lonlat, data, id) { - this.layer = layer; - this.lonlat = lonlat; - this.data = (data != null) ? data : new Object(); - this.id = (id ? id : 'f' + Math.random()); - }, - - /** - * - */ - destroy: function() { - - //remove the popup from the map - if ((this.layer != null) && (this.layer.map != null)) { - if (this.popup != null) { - this.layer.map.removePopup(this.popup); - } - } - - this.events = null; - this.layer = null; - this.id = null; - this.lonlat = null; - this.data = null; - if (this.marker != null) { - this.marker.destroy(); - this.marker = null; - } - if (this.popup != null) { - this.popup.destroy(); - this.popup = null; - } - }, - - - /** - * @returns A Marker Object created from the 'lonlat' and 'icon' properties - * set in this.data. If no 'lonlat' is set, returns null. If no - * 'icon' is set, OpenLayers.Marker() will load the default image - * @type OpenLayers.Marker - */ - createMarker: function() { - - var marker = null; - - if (this.lonlat != null) { - this.marker = new OpenLayers.Marker(this.lonlat, this.data.icon); - } - return this.marker; - }, - - /** - * - */ - createPopup: function() { - - if (this.lonlat != null) { - - var id = this.id + "_popup"; - var anchor = (this.marker) ? this.marker.icon : null; - - this.popup = new OpenLayers.Popup.AnchoredBubble(id, - this.lonlat, - this.data.popupSize, - this.data.popupContentHTML, - anchor); - } - return this.popup; - }, - - CLASS_NAME: "OpenLayers.Feature" -}; diff --git a/public/lib/OpenLayers/Feature/WFS.js b/public/lib/OpenLayers/Feature/WFS.js deleted file mode 100644 index b2eb0f522..000000000 --- a/public/lib/OpenLayers/Feature/WFS.js +++ /dev/null @@ -1,64 +0,0 @@ -/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full - * text of the license. */ -/** - * @class - */ -OpenLayers.Feature.WFS = Class.create(); -OpenLayers.Feature.WFS.prototype = - Object.extend( new OpenLayers.Feature(), { - - /** - * @constructor - * - * @param {OpenLayers.Layer} layer - * @param {XMLNode} xmlNode - */ - initialize: function(layer, xmlNode) { - var newArguments = arguments; - if (arguments.length > 0) { - var data = this.processXMLNode(xmlNode); - newArguments = new Array(layer, data.lonlat, data, data.id) - } - OpenLayers.Feature.prototype.initialize.apply(this, newArguments); - - if (arguments.length > 0) { - this.createMarker(); - this.layer.addMarker(this.marker); - } - }, - - destroy: function() { - if (this.marker != null) { - this.layer.removeMarker(this.marker); - } - OpenLayers.Feature.prototype.destroy.apply(this, arguments); - }, - - /** - * @param {XMLNode} xmlNode - * - * @returns Data Object with 'id', 'lonlat', and private properties set - * @type Object - */ - processXMLNode: function(xmlNode) { - //this should be overridden by subclasses - // must return an Object with 'id' and 'lonlat' values set - var point = xmlNode.getElementsByTagName("Point"); - var text = point[0].textContent; - var floats = text.split(","); - - return {lonlat: new OpenLayers.LonLat(parseFloat(floats[0]), - parseFloat(floats[1])), - id: null}; - - }, - - /** @final @type String */ - CLASS_NAME: "OpenLayers.Feature.WFS" -}); - - - - - diff --git a/public/lib/OpenLayers/Icon.js b/public/lib/OpenLayers/Icon.js deleted file mode 100644 index 76a233899..000000000 --- a/public/lib/OpenLayers/Icon.js +++ /dev/null @@ -1,106 +0,0 @@ -/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full - * text of the license. */ -/** -* @class -*/ -OpenLayers.Icon = Class.create(); -OpenLayers.Icon.prototype = { - - /** image url - * @type String */ - url: null, - - /** @type OpenLayers.Size */ - size:null, - - /** distance in pixels to offset the image when being rendered - * @type OpenLayers.Pixel */ - offset: null, - - /** Function to calculate the offset (based on the size) - * @type OpenLayers.Pixel */ - calculateOffset: null, - - /** @type DOMElement */ - imageDiv: null, - - /** @type OpenLayers.Pixel */ - px: null, - - /** - * @constructor - * - * @param {String} url - * @param {OpenLayers.Size} size - * @param {Function} calculateOffset - */ - initialize: function(url, size, offset, calculateOffset) { - this.url = url; - this.size = (size) ? size : new OpenLayers.Size(20,20); - this.offset = (offset) ? offset : new OpenLayers.Pixel(0,0); - this.calculateOffset = calculateOffset; - - this.imageDiv = OpenLayers.Util.createAlphaImageDiv(); - }, - - destroy: function() { - this.imageDiv = null; - }, - - /** - * @returns A fresh copy of the icon. - * @type OpenLayers.Icon - */ - clone: function() { - return new OpenLayers.Icon(this.size, this.url, this.offset); - }, - - /** - * @param {OpenLayers.Size} size - */ - setSize: function(size) { - if (size != null) { - this.size = size; - } - this.draw(); - }, - - /** - * @param {OpenLayers.Pixel} px - * - * @return A new DOM Image of this icon set at the location passed-in - * @type DOMElement - */ - draw: function(px) { - OpenLayers.Util.modifyAlphaImageDiv(this.imageDiv, - null, - null, - this.size, - this.url, - "absolute"); - this.moveTo(px); - return this.imageDiv; - }, - - /** - * @param {OpenLayers.Pixel} px - */ - moveTo: function (px) { - //if no px passed in, use stored location - if (px != null) { - this.px = px; - } - - if ((this.px != null) && (this.imageDiv != null)) { - if (this.calculateOffset) { - this.offset = this.calculateOffset(this.size); - } - var offsetPx = this.px.offset(this.offset); - OpenLayers.Util.modifyAlphaImageDiv(this.imageDiv, null, offsetPx); - } - }, - - /** @final @type String */ - CLASS_NAME: "OpenLayers.Icon" -}; \ No newline at end of file diff --git a/public/lib/OpenLayers/Layer.js b/public/lib/OpenLayers/Layer.js deleted file mode 100644 index 23da82e7d..000000000 --- a/public/lib/OpenLayers/Layer.js +++ /dev/null @@ -1,92 +0,0 @@ -/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full - * text of the license. */ -/** - * @class - */ -OpenLayers.Layer = Class.create(); -OpenLayers.Layer.prototype = { - - /** @type String */ - name: null, - - /** @type DOMElement */ - div: null, - - /** This variable is set in map.addLayer, not within the layer itself - * @type OpenLayers.Map */ - map: null, - - /** - * @constructor - * - * @param {String} name - */ - initialize: function(name) { - if (arguments.length > 0) { - this.name = name; - if (this.div == null) { - this.div = OpenLayers.Util.createDiv(); - this.div.style.width = "100%"; - this.div.style.height = "100%"; - } - } - }, - - /** - * Destroy is a destructor: this is to alleviate cyclic references which - * the Javascript garbage cleaner can not take care of on its own. - */ - destroy: function() { - if (this.map != null) { - this.map.removeLayer(this); - } - this.map = null; - }, - - /** - * @params {OpenLayers.Bounds} bound - * @params {Boolean} zoomChanged tells when zoom has changed, as layers have to do some init work in that case. - */ - moveTo: function (bound, zoomChanged) { - // not implemented here - return; - }, - - /** - * @param {OpenLayers.Map} map - */ - setMap: function(map) { - this.map = map; - }, - - /** - * @returns Whether or not the layer is a base layer. This should be - * determined individually by all subclasses. - * @type Boolean - */ - isBaseLayer: function() { - //this function should be implemented by all subclasses. - }, - - /** - * @returns Whether or not the layer is visible - * @type Boolean - */ - getVisibility: function() { - return (this.div.style.display != "none"); - }, - - /** - * @param {bool} visible - */ - setVisibility: function(visible) { - this.div.style.display = (visible) ? "block" : "none"; - if ((visible) && (this.map != null)) { - this.moveTo(this.map.getExtent()); - } - }, - - /** @final @type String */ - CLASS_NAME: "OpenLayers.Layer" -}; diff --git a/public/lib/OpenLayers/Layer/Google.js b/public/lib/OpenLayers/Layer/Google.js deleted file mode 100644 index 6d9b9b6e4..000000000 --- a/public/lib/OpenLayers/Layer/Google.js +++ /dev/null @@ -1,152 +0,0 @@ -/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full - * text of the license. */ -// @require: OpenLayers/Layer.js - -// load Google map control script -// this key was generated for: http://openlayers.python-hosting.com/testing/euzuro/ -document.write(""); - -/** - * @class - */ -OpenLayers.Layer.Google = Class.create(); -OpenLayers.Layer.Google.prototype = Object.extend( new OpenLayers.Layer(), { - - /** @type Boolean */ - viewPortLayer: true, - - /** @type GMap2 gmap stores the Google Map element */ - gmap:null, - - /** @type Boolean */ - dragging:false, - - /** - * @constructor - * - * @param {String} name - */ - initialize: function(name) { - OpenLayers.Layer.prototype.initialize.apply(this, [name]); - }, - - /** - * @param {OpenLayers.Map} map - */ - setMap:function(map) { - OpenLayers.Layer.prototype.setMap.apply(this, arguments); - - // once our layer has been added to the map, we can create the vemap - this.map.events.register("addlayer", this, this.loadGMap); - }, - - /** Google layer is always a base class. - * @type Boolean - */ - isBaseLayer: function() { - return true; - }, - - /** - * @param {OpenLayers.Bounds} bounds - * @param {int} zoomChanged - */ - moveTo:function(bounds,zoomChanged) { - - if ((this.gmap != null) && (!this.dragging)) { - - var olCenter = this.map.getCenter(); - var gCenter = this.getGMapCenter(); - - var olZoom = this.map.getZoom(); - var gZoom = this.gmap.getZoom(); - - if ((!olCenter.equals(gCenter)) || ((olZoom +1) != gZoom)) { - this.gmap.setCenter(new GLatLng(olCenter.lat, olCenter.lon), - olZoom + 1); - } - } - }, - - /** - * - */ - loadGMap:function() { - // create div and set to same size as map - var gDiv = OpenLayers.Util.createDiv(this.name); - var sz = this.map.getSize(); - gDiv.style.width = sz.w; - gDiv.style.height = sz.h; - this.div.appendChild(gDiv); - - // create GMap, hide nav controls - this.gmap = new GMap2(this.div); - this.moveTo(); - - // catch pans and zooms from GMap - GEvent.addListener(this.gmap, - "moveend", - this.catchPanZoom.bindAsEventListener(this)); - - - // attach to the drag start and end and we´ll set a flag so that - // we dont get recursivity. this is because the events fall through - // the gmaps div and into the main layer div - GEvent.addListener(this.gmap, - "dragstart", - this.dragStart.bindAsEventListener(this)); - - GEvent.addListener(this.gmap, - "dragend", - this.dragEnd.bindAsEventListener(this)); - - }, - - /** - * @private - */ - dragStart: function() { - this.dragging = true; - }, - - /** - * @private - */ - dragEnd: function() { - this.dragging = false; - }, - - /** - * @private - * - * @param {event} e - */ - catchPanZoom: function(e) { - var olCenter = this.getGMapCenter(); - var gZoom = this.gmap.getZoom(); - - this.map.setCenter(olCenter, gZoom - 1); - - }, - - /** - * @private - * - * @returns An OpenLayers.LonLat with the center of the gmap, or null if - * the GMap has not been centered yet - * @type OpenLayers.LonLat - */ - getGMapCenter:function() { - var olCenter = null; - var gCenter = this.gmap.getCenter(); - if (gCenter != null) { - olCenter = new OpenLayers.LonLat(gCenter.lng(), gCenter.lat()); - } - return olCenter; - }, - - - /** @final @type String */ - CLASS_NAME: "OpenLayers.Layer.Google" -}); diff --git a/public/lib/OpenLayers/Layer/Grid.js b/public/lib/OpenLayers/Layer/Grid.js deleted file mode 100644 index 736972b30..000000000 --- a/public/lib/OpenLayers/Layer/Grid.js +++ /dev/null @@ -1,296 +0,0 @@ -/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full - * text of the license. */ -// @require: OpenLayers/Layer.js -// @require: OpenLayers/Util.js -OpenLayers.Layer.Grid = Class.create(); -OpenLayers.Layer.Grid.TILE_WIDTH = 256; -OpenLayers.Layer.Grid.TILE_HEIGHT = 256; -OpenLayers.Layer.Grid.prototype = Object.extend( new OpenLayers.Layer(), { - - // str: url - url: null, - - // hash: params - params: null, - - // tileSize: OpenLayers.Size - tileSize: null, - - // grid: Array(Array()) - // this is an array of rows, each row is an array of tiles - grid: null, - - /** - * @param {str} name - * @param {str} url - * @param {hash} params - */ - initialize: function(name, url, params) { - var newArguments = arguments; - if (arguments.length > 0) { - newArguments = [name]; - } - OpenLayers.Layer.prototype.initialize.apply(this, newArguments); - this.url = url; - this.params = params; - this.tileSize = new OpenLayers.Size(OpenLayers.Layer.Grid.TILE_WIDTH, - OpenLayers.Layer.Grid.TILE_HEIGHT); - }, - - /** - * - */ - destroy: function() { - this.params = null; - this.clearGrid(); - this.grid = null; - OpenLayers.Layer.prototype.destroy.apply(this, arguments); - }, - - setTileSize: function (size) { - this.tileSize = size.copyOf(); - }, - - /** - * moveTo - * moveTo is a function called whenever the map is moved. All the moving - * of actual 'tiles' is done by the map, but moveTo's role is to accept - * a bounds and make sure the data that that bounds requires is pre-loaded. - * @param {OpenLayers.Bounds} - */ - moveTo:function(bounds,zoomChanged) { - if (!this.getVisibility()) { - if (zoomChanged) { - this.grid = null; - } - return; - } - if (!this.grid || zoomChanged) { - this._initTiles(); - } else { - var i = 0; - while (this.getGridBounds().bottom > bounds.bottom) { - this.insertRow(false); - } - while (this.getGridBounds().left > bounds.left) { - this.insertColumn(true); - } - while (this.getGridBounds().top < bounds.top) { - this.insertRow(true); - } - while (this.getGridBounds().right < bounds.right) { - this.insertColumn(false); - } - } - }, - getGridBounds:function() { - var topLeftTile = this.grid[0][0]; - var bottomRightTile = this.grid[this.grid.length-1][this.grid[0].length-1]; - return new OpenLayers.Bounds(topLeftTile.bounds.left, - bottomRightTile.bounds.bottom, - bottomRightTile.bounds.right, - topLeftTile.bounds.top); - }, - - /** - */ - _initTiles:function() { - - //first of all, clear out the main div - this.div.innerHTML = ""; - - //now clear out the old grid and start a new one - this.clearGrid(); - this.grid = new Array(); - - var viewSize = this.map.getSize(); - var bounds = this.map.getExtent(); - var extent = this.map.getFullExtent(); - var resolution = this.map.getResolution(); - var tilelon = resolution*this.tileSize.w; - var tilelat = resolution*this.tileSize.h; - - var offsetlon = bounds.left - extent.left; - var tilecol = Math.floor(offsetlon/tilelon); - var tilecolremain = offsetlon/tilelon - tilecol; - var tileoffsetx = -tilecolremain * this.tileSize.w; - var tileoffsetlon = extent.left + tilecol * tilelon; - - var offsetlat = bounds.top - (extent.bottom + tilelat); - var tilerow = Math.ceil(offsetlat/tilelat); - var tilerowremain = tilerow - offsetlat/tilelat; - var tileoffsety = -tilerowremain * this.tileSize.h; - var tileoffsetlat = extent.bottom + tilerow * tilelat; - - tileoffsetx = Math.round(tileoffsetx); // heaven help us - tileoffsety = Math.round(tileoffsety); - - this.origin = new OpenLayers.Pixel(tileoffsetx,tileoffsety); - - var startX = tileoffsetx; - var startLon = tileoffsetlon; - - do { - var row = new Array(); - this.grid.append(row); - tileoffsetlon = startLon; - tileoffsetx = startX; - do { - var tileBounds = new OpenLayers.Bounds(tileoffsetlon, - tileoffsetlat, - tileoffsetlon+tilelon, - tileoffsetlat+tilelat); - - var tile = this.addTile(tileBounds, - new OpenLayers.Pixel(tileoffsetx - parseInt(this.map.layerContainerDiv.style.left), - tileoffsety - parseInt(this.map.layerContainerDiv.style.top)) - ); - tile.draw((this.params.TRANSPARENT == 'true')); - row.append(tile); - - tileoffsetlon += tilelon; - tileoffsetx += this.tileSize.w; - } while (tileoffsetlon < bounds.right) - - tileoffsetlat -= tilelat; - tileoffsety += this.tileSize.h; - } while(tileoffsetlat > bounds.bottom - tilelat) - - }, - - /** - * @param {bool} prepend - if true, prepend to beginning. - * if false, then append to end - */ - insertRow:function(prepend) { - var modelRowIndex = (prepend) ? 0 : (this.grid.length - 1); - var modelRow = this.grid[modelRowIndex]; - - var newRow = new Array(); - - var resolution = this.map.getResolution(); - var deltaY = (prepend) ? -this.tileSize.h : this.tileSize.h; - var deltaLat = resolution * -deltaY; - - for (var i=0; i < modelRow.length; i++) { - var modelTile = modelRow[i]; - var bounds = modelTile.bounds.copyOf(); - var position = modelTile.position.copyOf(); - bounds.bottom = bounds.bottom + deltaLat; - bounds.top = bounds.top + deltaLat; - position.y = position.y + deltaY; - var newTile = this.addTile(bounds, position); - newTile.draw((this.params.TRANSPARENT == 'true')); - newRow.append(newTile); - } - - if (newRow.length>0){ - if (prepend) { - this.grid.prepend(newRow); - } else { - this.grid.append(newRow); - } - } - }, - - /** - * @param {bool} prepend - if true, prepend to beginning. - * if false, then append to end - */ - insertColumn:function(prepend) { - var modelCellIndex; - var deltaX = (prepend) ? -this.tileSize.w : this.tileSize.w; - var resolution = this.map.getResolution(); - var deltaLon = resolution * deltaX; - - for (var i=0; i 0) { - var row = this.grid[0]; - while(row.length > 0) { - var tile = row[0]; - tile.destroy(); - row.remove(tile); - } - this.grid.remove(row); - } - } - }, - - /** - * addTile gives subclasses of Grid the opportunity to create an - * OpenLayer.Tile of their choosing. The implementer should initialize - * the new tile and take whatever steps necessary to display it. - * - * @param {OpenLayers.Bounds} bounds - * - * @returns The added OpenLayers.Tile - * @type OpenLayers.Tile - */ - addTile:function(bounds,position) { - // Should be implemented by subclasses - }, - - /** @final @type String */ - CLASS_NAME: "OpenLayers.Grid" -}); diff --git a/public/lib/OpenLayers/Layer/KaMap.js b/public/lib/OpenLayers/Layer/KaMap.js deleted file mode 100644 index e4f414541..000000000 --- a/public/lib/OpenLayers/Layer/KaMap.js +++ /dev/null @@ -1,53 +0,0 @@ -/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full - * text of the license. */ -// @require: OpenLayers/Layer/Grid.js -/** -* @class -*/ -OpenLayers.Layer.KaMap = Class.create(); -OpenLayers.Layer.KaMap.prototype = - Object.extend( new OpenLayers.Layer.Grid(), { - metaTileHeight: 6, - metaTileWidth: 6, - - DEFAULT_PARAMS: { - i: 'jpeg', - map: '' - }, - - // this.cellSize = newScale/(oMap.resolution * inchesPerUnit[oMap.units]); - // kaMap.prototype.geoToPix = function( gX, gY ) { var pX = gX / this.cellSize; var pY = -1 * gY / this.cellSize; } - initialize: function(name, url, params, origin) { - this.kaOrigin = origin; - var newArguments = new Array(); - newArguments.push(name, url, params); - OpenLayers.Layer.Grid.prototype.initialize.apply(this, newArguments); - this.params = (params ? params : {}); - if (arguments.length > 0 && params) { - OpenLayers.Util.applyDefaults( - this.params, - this.DEFAULT_PARAMS - ); - } - }, - addTile:function(bounds,position) { - var zoom = this.map.getZoom(); - var resolution = this.map.getResolution(); - var scale = 128000000 / Math.pow(2, zoom); - // 1280000 is an empirical value for a specific tile server, not yet figured out the right way to do this in general. - // This will probably be based on map.maxResolution. - var cellSize = new OpenLayers.Size(resolution*this.tileSize.w, resolution*this.tileSize.h); - var pX = Math.floor(((bounds.left + this.kaOrigin.lon) / cellSize.w) * this.tileSize.w); - var pY = -Math.floor(((bounds.top+this.kaOrigin.lat) / cellSize.h) * this.tileSize.h); - var url = this.getFullRequestString( - { t: pY, - l: pX, - s: scale - }); - return new OpenLayers.Tile.Image(this, position, bounds, - url, this.tileSize); - }, - /** @final @type String */ - CLASS_NAME: "OpenLayers.Layer.KaMap" -}); diff --git a/public/lib/OpenLayers/Layer/Markers.js b/public/lib/OpenLayers/Layer/Markers.js deleted file mode 100644 index 173b64d7a..000000000 --- a/public/lib/OpenLayers/Layer/Markers.js +++ /dev/null @@ -1,113 +0,0 @@ -/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full - * text of the license. */ -// @require: OpenLayers/Layer.js -/** -* @class -*/ -OpenLayers.Layer.Markers = Class.create(); -OpenLayers.Layer.Markers.prototype = - Object.extend( new OpenLayers.Layer(), { - - /** internal marker list - * @type Array(OpenLayers.Marker) */ - markers: null, - - /** - * @constructor - * - * @param {String} name - */ - initialize: function(name) { - OpenLayers.Layer.prototype.initialize.apply(this, arguments); - this.markers = new Array(); - }, - - /** - * - */ - destroy: function() { - this.clearMarkers(); - markers = null; - OpenLayers.Layer.prototype.destroy.apply(this, arguments); - }, - - - /** - * @param {OpenLayers.Bounds} bounds - * @param {Boolean} zoomChanged - */ - moveTo: function(bounds, zoomChanged) { - if (zoomChanged) { - this.redraw(); - } - }, - - /** WFS layer is never a base class. - * @type Boolean - */ - isBaseLayer: function() { - return false; - }, - - /** - * @param {OpenLayers.Marker} marker - */ - addMarker: function(marker) { - this.markers.append(marker); - if (this.map && this.map.getExtent()) { - marker.map = this.map; - this.drawMarker(marker); - } - }, - - /** - * @param {OpenLayers.Marker} marker - */ - removeMarker: function(marker) { - this.markers.remove(marker); - if ((marker.icon != null) && (marker.icon.imageDiv != null) && - (marker.icon.imageDiv.parentNode == this.div) ) { - this.div.removeChild(marker.icon.imageDiv); - } - }, - - /** - * - */ - clearMarkers: function() { - if (this.markers != null) { - while(this.markers.length > 0) { - this.removeMarker(this.markers[0]); - } - } - }, - - /** clear all the marker div's from the layer and then redraw all of them. - * Use the map to recalculate new placement of markers. - */ - redraw: function() { - for(i=0; i < this.markers.length; i++) { - this.drawMarker(this.markers[i]); - } - }, - - /** Calculate the pixel location for the marker, create it, and - * add it to the layer's div - * - * @private - * - * @param {OpenLayers.Marker} marker - */ - drawMarker: function(marker) { - var px = this.map.getLayerPxFromLonLat(marker.lonlat); - var markerImg = marker.draw(px); - if (!marker.drawn) { - this.div.appendChild(markerImg); - marker.drawn = true; - } - }, - - /** @final @type String */ - CLASS_NAME: "OpenLayers.Layer.Markers" -}); diff --git a/public/lib/OpenLayers/Layer/Text.js b/public/lib/OpenLayers/Layer/Text.js deleted file mode 100644 index 4c5df8323..000000000 --- a/public/lib/OpenLayers/Layer/Text.js +++ /dev/null @@ -1,172 +0,0 @@ -/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full - * text of the license. */ -// @require: OpenLayers/Layer/Markers.js - -/** -* @class -*/ -OpenLayers.Layer.Text = Class.create(); -OpenLayers.Layer.Text.prototype = - Object.extend( new OpenLayers.Layer.Markers(), { - - /** store url of text file - * @type str */ - location:null, - - /** @type Array(OpenLayers.Feature) */ - features: null, - - /** @type OpenLayers.Feature */ - selectedFeature: null, - - /** - * @constructor - * - * @param {String} name - * @param {String} location - */ - initialize: function(name, location) { - OpenLayers.Layer.Markers.prototype.initialize.apply(this, [name]); - this.location = location; - this.features = new Array(); - new Ajax.Request(location, - { method: 'get', onComplete:this.parseData.bind(this) } ); - }, - - /** - * - */ - destroy: function() { - this.clearFeatures(); - this.features = null; - OpenLayers.Layer.Markers.prototype.destroy.apply(this, arguments); - }, - - /** WFS layer is never a base class. - * @type Boolean - */ - isBaseLayer: function() { - return false; - }, - - - /** - * @param {?} ajaxRequest - */ - parseData: function(ajaxRequest) { - var text = ajaxRequest.responseText; - var lines = text.split('\n'); - var columns; - // length - 1 to allow for trailing new line - for (var lcv = 0; lcv < (lines.length - 1); lcv++) { - var currLine = lines[lcv].replace(/^\s*/,'').replace(/\s*$/,''); - - if (currLine.charAt(0) != '#') { /* not a comment */ - - if (!columns) { - //First line is columns - columns = currLine.split('\t'); - } else { - var vals = currLine.split('\t'); - var location = new OpenLayers.LonLat(0,0); - var title; var url; - var icon, iconSize, iconOffset; - var set = false; - for (var valIndex = 0; valIndex < vals.length; valIndex++) { - if (vals[valIndex]) { - if (columns[valIndex] == 'point') { - var coords = vals[valIndex].split(','); - location.lat = parseFloat(coords[0]); - location.lon = parseFloat(coords[1]); - set = true; - } else if (columns[valIndex] == 'lat') { - location.lat = parseFloat(vals[valIndex]); - set = true; - } else if (columns[valIndex] == 'lon') { - location.lon = parseFloat(vals[valIndex]); - set = true; - } else if (columns[valIndex] == 'title') - title = vals[valIndex]; - else if (columns[valIndex] == 'image' || - columns[valIndex] == 'icon') - url = vals[valIndex]; - else if (columns[valIndex] == 'iconSize') { - var size = vals[valIndex].split(','); - iconSize = new OpenLayers.Size(parseFloat(size[0]), - parseFloat(size[1])); - } else if (columns[valIndex] == 'iconOffset') { - var offset = vals[valIndex].split(','); - iconOffset = new OpenLayers.Pixel(parseFloat(offset[0]), - parseFloat(offset[1])); - } else if (columns[valIndex] == 'title') { - title = vals[valIndex]; - } else if (columns[valIndex] == 'description') { - description = vals[valIndex]; - } - } - } - if (set) { - var data = new Object(); - if (url != null) { - data.icon = new OpenLayers.Icon(url, - iconSize, - iconOffset); - } else { - data.icon = OpenLayers.Marker.defaultIcon(); - - //allows for the case where the image url is not - // specified but the size is. use a default icon - // but change the size - if (iconSize != null) { - data.icon.setSize(iconSize); - } - - } - if ((title != null) && (description != null)) { - data['popupContentHTML'] = '

'+title+'

'+description+'

'; - } - var feature = new OpenLayers.Feature(this, location, data); - this.features.append(feature); - var marker = feature.createMarker(); - marker.events.register('click', feature, this.markerClick); - this.addMarker(marker); - } - } - } - } - }, - - /** - * @param {Event} evt - */ - markerClick: function(evt) { - sameMarkerClicked = (this == this.layer.selectedFeature); - this.layer.selectedFeature = (!sameMarkerClicked) ? this : null; - for(var i=0; i < this.layer.map.popups.length; i++) { - this.layer.map.removePopup(this.layer.map.popups[i]); - } - if (!sameMarkerClicked) { - this.layer.map.addPopup(this.createPopup()); - } - Event.stop(evt); - }, - - /** - * - */ - clearFeatures: function() { - if (this.features != null) { - while(this.features.length > 0) { - var feature = this.features[0]; - this.features.remove(feature); - feature.destroy(); - } - } - }, - - /** @final @type String */ - CLASS_NAME: "OpenLayers.Text" -}); - - diff --git a/public/lib/OpenLayers/Layer/VirtualEarth.js b/public/lib/OpenLayers/Layer/VirtualEarth.js deleted file mode 100644 index 19db24817..000000000 --- a/public/lib/OpenLayers/Layer/VirtualEarth.js +++ /dev/null @@ -1,107 +0,0 @@ -/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full - * text of the license. */ -// @require: OpenLayers/Layer.js - -// load VE map control script -document.write(""); - - -/** - * @class - */ -OpenLayers.Layer.VirtualEarth = Class.create(); -OpenLayers.Layer.VirtualEarth.prototype = - Object.extend( new OpenLayers.Layer(), { - - /** @type Boolean */ - viewPortLayer: true, - - /** @type VEMap */ - vemap: null, - - /** - * @constructor - * - * @param {str} name - */ - initialize:function(name) { - OpenLayers.Layer.prototype.initialize.apply(this, arguments); - }, - - /** - * @param {OpenLayers.Map} map - */ - setMap:function(map) { - OpenLayers.Layer.prototype.setMap.apply(this, arguments); - - // once our layer has been added to the map, we can create the vemap - this.map.events.register("addlayer", this, this.loadVEMap); - }, - - /** Virtual Earth layer is always a base class. - * @type Boolean - */ - isBaseLayer: function() { - return true; - }, - - /** - * @param {OpenLayers.Bounds} bounds - * @param {int} zoomChanged - */ - moveTo:function(bounds,zoomChanged) { - - if (this.vemap != null) { - var olCenter = this.map.getCenter(); - var olZoom = this.map.getZoom(); - - this.vemap.SetCenterAndZoom(new VELatLong(olCenter.lat, olCenter.lon), - olZoom + 1); - } - }, - - - /** - * - */ - loadVEMap:function() { - // create div and set to same size as map - var veDiv = OpenLayers.Util.createDiv(this.name); - var sz = this.map.getSize(); - veDiv.style.width = sz.w; - veDiv.style.height = sz.h; - this.div.appendChild(veDiv); - - // create VEMap, hide nav controls - this.vemap = new VEMap(this.name); - this.vemap.LoadMap(); - this.vemap.HideDashboard(); - - // catch pans and zooms from VE Map - this.vemap.AttachEvent("onendcontinuouspan", - this.catchPanZoom.bindAsEventListener(this)); - this.vemap.AttachEvent("onendzoom", - this.catchPanZoom.bindAsEventListener(this)); - - - }, - - /** - * @param {event} e - */ - catchPanZoom: function(e) { - var veCenter = this.vemap.GetCenter(); - var veZoom = this.vemap.GetZoomLevel(); - - var olCenter = new OpenLayers.LonLat(veCenter.Longitude, - veCenter.Latitude); - - this.map.setCenter(olCenter, veZoom - 1); - - }, - - - /** @final @type String */ - CLASS_NAME: "OpenLayers.Layer.VirtualEarth" -}); \ No newline at end of file diff --git a/public/lib/OpenLayers/Layer/WFS.js b/public/lib/OpenLayers/Layer/WFS.js deleted file mode 100644 index 6885b3024..000000000 --- a/public/lib/OpenLayers/Layer/WFS.js +++ /dev/null @@ -1,116 +0,0 @@ -/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full - * text of the license. */ -// @require: OpenLayers/Layer/Grid.js -// @require: OpenLayers/Layer/Markers.js -/** -* @class -*/ -OpenLayers.Layer.WFS = Class.create(); -OpenLayers.Layer.WFS.prototype = - Object.extend(new OpenLayers.Layer.Grid(), - Object.extend(new OpenLayers.Layer.Markers(), { - - /** @type Object */ - featureClass: OpenLayers.Feature.WFS, - - /** @final @type hash */ - DEFAULT_PARAMS: { service: "WFS", - version: "1.0.0", - request: "GetFeature", - typename: "docpoint" - }, - - /** - * @constructor - * - * @param {str} name - * @param {str} url - * @param {hash} params - * @param {Object} featureClass - */ - initialize: function(name, url, params, featureClass) { - if (featureClass != null) this.featureClass = featureClass; - - var newArguments = new Array(); - if (arguments.length > 0) { - //uppercase params - params = OpenLayers.Util.upperCaseObject(params); - newArguments.push(name, url, params); - } - OpenLayers.Layer.Grid.prototype.initialize.apply(this, newArguments); - OpenLayers.Layer.Markers.prototype.initialize.apply(this, newArguments); - - if (arguments.length > 0) { - OpenLayers.Util.applyDefaults( - this.params, - OpenLayers.Util.upperCaseObject(this.DEFAULT_PARAMS) - ); - } - }, - - - /** - * - */ - destroy: function() { - OpenLayers.Layer.Grid.prototype.destroy.apply(this, arguments); - OpenLayers.Layer.Markers.prototype.destroy.apply(this, arguments); - }, - - /** - * @param {OpenLayers.Bounds} bounds - * @param {Boolean} zoomChanged - */ - moveTo: function(bounds, zoomChanged) { - OpenLayers.Layer.Grid.prototype.moveTo.apply(this, arguments); - OpenLayers.Layer.Markers.prototype.moveTo.apply(this, arguments); - }, - - /** WFS layer is never a base class. - * @type Boolean - */ - isBaseLayer: function() { - return false; - }, - - /** - * @param {String} name - * @param {hash} params - * - * @returns A clone of this OpenLayers.Layer.WMS, with the passed-in - * parameters merged in. - * @type OpenLayers.Layer.WMS - */ - clone: function (name, params) { - var mergedParams = {} - Object.extend(mergedParams, this.params); - Object.extend(mergedParams, params); - var obj = new OpenLayers.Layer.WFS(name, this.url, mergedParams); - obj.setTileSize(this.tileSize); - return obj; - }, - - /** - * addTile creates a tile, initializes it (via 'draw' in this case), and - * adds it to the layer div. - * - * @param {OpenLayers.Bounds} bounds - * - * @returns The added OpenLayers.Tile.WFS - * @type OpenLayers.Tile.WFS - */ - addTile:function(bounds, position) { - url = this.getFullRequestString( - { BBOX:bounds.toBBOX() }); - - return new OpenLayers.Tile.WFS(this, position, bounds, - url, this.tileSize); - }, - - - /** @final @type String */ - CLASS_NAME: "OpenLayers.Layer.WFS" -} -) -); diff --git a/public/lib/OpenLayers/Layer/WMS.js b/public/lib/OpenLayers/Layer/WMS.js deleted file mode 100644 index d0e21f7f5..000000000 --- a/public/lib/OpenLayers/Layer/WMS.js +++ /dev/null @@ -1,91 +0,0 @@ -/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full - * text of the license. */ -// @require: OpenLayers/Layer/Grid.js -/** -* @class -*/ -OpenLayers.Layer.WMS = Class.create(); -OpenLayers.Layer.WMS.prototype = - Object.extend( new OpenLayers.Layer.Grid(), { - - /** @final @type hash */ - DEFAULT_PARAMS: { service: "WMS", - version: "1.1.1", - request: "GetMap", - styles: "", - exceptions: "application/vnd.ogc.se_inimage", - format: "image/jpeg" - }, - - /** - * @constructor - * - * @param {str} name - * @param {str} url - * @param {hash} params - */ - initialize: function(name, url, params) { - var newArguments = new Array(); - if (arguments.length > 0) { - //uppercase params - params = OpenLayers.Util.upperCaseObject(params); - newArguments.push(name, url, params); - } - OpenLayers.Layer.Grid.prototype.initialize.apply(this, newArguments); - - if (arguments.length > 0) { - OpenLayers.Util.applyDefaults( - this.params, - OpenLayers.Util.upperCaseObject(this.DEFAULT_PARAMS) - ); - } - }, - - - /** WFS layer is never a base class. - * @type Boolean - */ - isBaseLayer: function() { - return (this.params.TRANSPARENT != 'true'); - }, - - /** - * @param {String} name - * @param {hash} params - * - * @returns A clone of this OpenLayers.Layer.WMS, with the passed-in - * parameters merged in. - * @type OpenLayers.Layer.WMS - */ - clone: function (name, params) { - var mergedParams = {}; - Object.extend(mergedParams, this.params); - Object.extend(mergedParams, params); - var obj = new OpenLayers.Layer.WMS(name, this.url, mergedParams); - obj.setTileSize(this.tileSize); - return obj; - }, - - /** - * addTile creates a tile, initializes it (via 'draw' in this case), and - * adds it to the layer div. - * - * @param {OpenLayers.Bounds} bounds - * - * @returns The added OpenLayers.Tile.Image - * @type OpenLayers.Tile.Image - */ - addTile:function(bounds,position) { - url = this.getFullRequestString( - {BBOX:bounds.toBBOX(), - WIDTH:this.tileSize.w, - HEIGHT:this.tileSize.h}); - - return new OpenLayers.Tile.Image(this, position, bounds, - url, this.tileSize); - }, - - /** @final @type String */ - CLASS_NAME: "OpenLayers.Layer.WMS" -}); diff --git a/public/lib/OpenLayers/Layer/WMS/Untiled.js b/public/lib/OpenLayers/Layer/WMS/Untiled.js deleted file mode 100644 index 4486c4f02..000000000 --- a/public/lib/OpenLayers/Layer/WMS/Untiled.js +++ /dev/null @@ -1,97 +0,0 @@ -/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full - * text of the license. */ -// @require: OpenLayers/Layer/Grid.js -/** -* @class -*/ -OpenLayers.Layer.WMS.Untiled = Class.create(); -OpenLayers.Layer.WMS.Untiled.prototype = - Object.extend( new OpenLayers.Layer.Grid(), { - - /** @final @type hash */ - DEFAULT_PARAMS: { service: "WMS", - version: "1.1.1", - request: "GetMap", - styles: "", - exceptions: "application/vnd.ogc.se_inimage", - format: "image/jpeg" - }, - - /** - * @constructor - * - * @param {str} name - * @param {str} url - * @param {hash} params - */ - initialize: function(name, url, params) { - var newArguments = new Array(); - if (arguments.length > 0) { - //uppercase params - params = OpenLayers.Util.upperCaseObject(params); - newArguments.push(name, url, params); - } - OpenLayers.Layer.Grid.prototype.initialize.apply(this, newArguments); - - if (arguments.length > 0) { - OpenLayers.Util.applyDefaults( - this.params, - OpenLayers.Util.upperCaseObject(this.DEFAULT_PARAMS) - ); - } - }, - - - /** WFS layer is never a base class. - * @type Boolean - */ - isBaseLayer: function() { - return (this.params.TRANSPARENT != true); - }, - - /** - * @param {String} name - * @param {hash} params - * - * @returns A clone of this OpenLayers.Layer.WMS, with the passed-in - * parameters merged in. - * @type OpenLayers.Layer.WMS - */ - clone: function (name, params) { - var mergedParams = {}; - Object.extend(mergedParams, this.params); - Object.extend(mergedParams, params); - var obj = new OpenLayers.Layer.WMS(name, this.url, mergedParams); - obj.setTileSize(this.tileSize); - return obj; - }, - - /** - * addTile creates a tile, initializes it (via 'draw' in this case), and - * adds it to the layer div. - * - * @param {OpenLayers.Bounds} bounds - * - * @returns The added OpenLayers.Tile.Image - * @type OpenLayers.Tile.Image - */ - addTile:function(bounds,position) { - url = this.getFullRequestString( - {BBOX:bounds.toBBOX(), - WIDTH:this.map.getSize().w, - HEIGHT:this.map.getSize().h}); - - return new OpenLayers.Tile.Image(this, position, bounds, - url, this.map.getSize()); - }, - moveTo:function(bounds,zoomChanged, minor) { - if (!minor) { - this.div.innerHTML = ""; - tile = this.addTile(bounds, new OpenLayers.Pixel(-parseInt(this.map.layerContainerDiv.style.left), -parseInt(this.map.layerContainerDiv.style.top))); - tile.draw(); - } - }, - /** @final @type String */ - CLASS_NAME: "OpenLayers.Layer.WMS.Untiled" -}); diff --git a/public/lib/OpenLayers/Layer/Yahoo.js b/public/lib/OpenLayers/Layer/Yahoo.js deleted file mode 100644 index eb9fab728..000000000 --- a/public/lib/OpenLayers/Layer/Yahoo.js +++ /dev/null @@ -1,149 +0,0 @@ -/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full - * text of the license. */ -// @require: OpenLayers/Layer.js - -// load Yahoo map control script -document.write(""); - -/** - * @class - */ -OpenLayers.Layer.Yahoo = Class.create(); -OpenLayers.Layer.Yahoo.prototype = Object.extend( new OpenLayers.Layer(), { - - /** @type Boolean */ - viewPortLayer: true, - - /** @type GMap2 gmap stores the Google Map element */ - ymap:null, - - /** @type Boolean */ - dragging:false, - - /** - * @constructor - * - * @param {String} name - */ - initialize: function(name) { - OpenLayers.Layer.prototype.initialize.apply(this, [name]); - }, - - /** - * @param {OpenLayers.Map} map - */ - setMap:function(map) { - OpenLayers.Layer.prototype.setMap.apply(this, arguments); - - // once our layer has been added to the map, we can create the vemap - this.map.events.register("addlayer", this, this.loadYMap); - }, - - /** Yahoo layer is always a base class. - * @type Boolean - */ - isBaseLayer: function() { - return true; - }, - - /** - * @param {OpenLayers.Bounds} bounds - * @param {int} zoomChanged - */ - moveTo:function(bounds,zoomChanged) { - - if ((this.ymap != null) && (!this.dragging)) { - - var olCenter = this.map.getCenter(); - var yCenter = this.getYMapCenter(); - - var olZoom = this.map.getZoom(); - var yZoom = this.ymap.getZoomLevel(); - - if ((!olCenter.equals(yCenter)) || (( 16 - olZoom) != yZoom)) { - this.ymap.drawZoomAndCenter(new YGeoPoint(olCenter.lat, olCenter.lon), - 16 - olZoom); - } - } - }, - - /** - * - */ - loadYMap:function() { - // create div and set to same size as map - var yDiv = OpenLayers.Util.createDiv(this.name); - var sz = this.map.getSize(); - yDiv.style.width = sz.w; - yDiv.style.height = sz.h; - this.div.appendChild(yDiv); - - // create GMap, hide nav controls - this.ymap = new YMap(this.div); - - // catch pans and zooms from GMap - YEvent.Capture(this.ymap, - EventsList.endPan, - this.catchPanZoom, - this); - - // catch pans and zooms from GMap - YEvent.Capture(this.ymap, - EventsList.endAutoPan, - this.catchPanZoom, - this); - - - // attach to the drag start and end and we´ll set a flag so that - // we dont get recursivity. this is because the events fall through - // the gmaps div and into the main layer div - YEvent.Capture(this.ymap, - EventsList.startPan, - this.dragStart, - this); - - }, - - /** - * @private - */ - dragStart: function() { - this.dragging = true; - }, - - /** - * @private - * - * @param {event} e - */ - catchPanZoom: function(e) { - this.dragging = false; - - var olCenter = this.getYMapCenter(); - var yZoom = this.ymap.getZoomLevel(); - - this.map.setCenter(olCenter, 16 - yZoom); - - }, - - /** - * @private - * - * @returns An OpenLayers.LonLat with the center of the ymap, or null if - * the YMap has not been centered yet - * @type OpenLayers.LonLat - */ - getYMapCenter:function() { - var olCenter = null; - var yCenter = this.ymap.getCenterLatLon(); - if (yCenter != null) { - olCenter = new OpenLayers.LonLat(yCenter.Lon, yCenter.Lat); - } - return olCenter; - }, - - - /** @final @type String */ - CLASS_NAME: "OpenLayers.Layer.Yahoo" -}); diff --git a/public/lib/OpenLayers/Map.js b/public/lib/OpenLayers/Map.js deleted file mode 100644 index 259175714..000000000 --- a/public/lib/OpenLayers/Map.js +++ /dev/null @@ -1,574 +0,0 @@ -/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full - * text of the license. */ -// @require: OpenLayers/Util.js -/** -* @class -* -* -*/ - -OpenLayers.Map = Class.create(); -OpenLayers.Map.prototype = { - // Hash: base z-indexes for different classes of thing - Z_INDEX_BASE: { Layer: 100, Popup: 200, Control: 1000 }, - - // Array: supported application event types - EVENT_TYPES: [ - "addlayer", "removelayer", "movestart", "move", "moveend", - "zoomend", "layerchanged", "popupopen", "popupclose", - "addmarker", "removemarker", "clearmarkers", "mouseover", - "mouseout", "mousemove", "dragstart", "drag", "dragend" ], - - // int: zoom levels, used to draw zoom dragging control and limit zooming - maxZoomLevel: 16, - - // OpenLayers.Bounds - maxExtent: new OpenLayers.Bounds(-180, -90, 180, 90), - - /* projection */ - projection: "EPSG:4326", - - /** @type OpenLayers.Size */ - size: null, - - // float - maxResolution: 1.40625, // degrees per pixel - // Default is whole world in 256 pixels, from GMaps - - // DOMElement: the div that our map lives in - div: null, - - // HTMLDivElement: the map's view port - viewPortDiv: null, - - // HTMLDivElement: the map's layer container - layerContainerDiv: null, - - // Array(OpenLayers.Layer): ordered list of layers in the map - layers: null, - - // Array(OpenLayers.Control) - controls: null, - - // Array(OpenLayers.Popup) - popups: null, - - // OpenLayers.LonLat - center: null, - - // int - zoom: null, - - // OpenLayers.Events - events: null, - - // OpenLayers.Pixel - mouseDragStart: null, - - /** @type OpenLayers.Layer */ - baseLayer: null, - - /** - * @param {DOMElement} div - */ - initialize: function (div, options) { - Object.extend(this, options); - - this.div = div = $(div); - - // the viewPortDiv is the outermost div we modify - var id = div.id + "_OpenLayers_ViewPort"; - this.viewPortDiv = OpenLayers.Util.createDiv(id, null, null, null, - "relative", null, - "hidden"); - this.viewPortDiv.style.width = "100%"; - this.viewPortDiv.style.height = "100%"; - this.div.appendChild(this.viewPortDiv); - - // the layerContainerDiv is the one that holds all the layers - id = div.id + "_OpenLayers_Container"; - this.layerContainerDiv = OpenLayers.Util.createDiv(id); - this.viewPortDiv.appendChild(this.layerContainerDiv); - - this.events = new OpenLayers.Events(this, div, this.EVENT_TYPES); - - this.updateSize(); - // make the entire maxExtent fix in zoom level 0 by default - if (this.maxResolution == null || this.maxResolution == "auto") { - this.maxResolution = Math.max( - this.maxExtent.getWidth() / this.size.w, - this.maxExtent.getHeight() / this.size.h ); - } - // update the internal size register whenever the div is resized - this.events.register("resize", this, this.updateSize); - - this.layers = []; - - if (!this.controls) { - this.controls = []; - this.addControl(new OpenLayers.Control.MouseDefaults()); - this.addControl(new OpenLayers.Control.PanZoom()); - } - - this.popups = new Array(); - - // always call map.destroy() - Event.observe(window, 'unload', - this.destroy.bindAsEventListener(this)); - }, - - /** - * @private - */ - destroy:function() { - if (this.layers != null) { - for(var i=0; i< this.layers.length; i++) { - this.layers[i].destroy(); - } - this.layers = null; - } - if (this.controls != null) { - for(var i=0; i< this.controls.length; i++) { - this.controls[i].destroy(); - } - this.controls = null; - } - }, - - /** - * @param {OpenLayers.Layer} layer - */ - addLayer: function (layer) { - layer.setMap(this); - layer.div.style.overflow = ""; - layer.div.style.zIndex = this.Z_INDEX_BASE['Layer'] + this.layers.length; - - if (layer.viewPortLayer) { - this.viewPortDiv.appendChild(layer.div); - } else { - this.layerContainerDiv.appendChild(layer.div); - } - this.layers.push(layer); - - // hack hack hack - until we add a more robust layer switcher, - // which is able to determine which layers are base layers and - // which are not (and put baselayers in a radiobutton group and - // other layers in checkboxes) this seems to be the most straight- - // forward way of dealing with this. - // - if (layer.isBaseLayer()) { - this.baseLayer = layer; - } - this.events.triggerEvent("addlayer"); - }, - - /** Removes a layer from the map by removing its visual element (the - * layer.div property), then removing it from the map's internal list - * of layers, setting the layer's map property to null. - * - * a "removelayer" event is triggered. - * - * very worthy of mention is that simply removing a layer from a map - * will not cause the removal of any popups which may have been created - * by the layer. this is due to the fact that it was decided at some - * point that popups would not belong to layers. thus there is no way - * for us to know here to which layer the popup belongs. - * - * A simple solution to this is simply to call destroy() on the layer. - * the default OpenLayers.Layer class's destroy() function - * automatically takes care to remove itself from whatever map it has - * been attached to. - * - * The correct solution is for the layer itself to register an - * event-handler on "removelayer" and when it is called, if it - * recognizes itself as the layer being removed, then it cycles through - * its own personal list of popups, removing them from the map. - * - * @param {OpenLayers.Layer} layer - */ - removeLayer: function(layer) { - this.layerContainerDiv.removeChild(layer.div); - this.layers.remove(layer); - layer.map = null; - this.events.triggerEvent("removelayer"); - }, - - /** - * @param {Array(OpenLayers.Layer)} layers - */ - addLayers: function (layers) { - for (var i = 0; i < layers.length; i++) { - this.addLayer(layers[i]); - } - }, - - /** - * @param {OpenLayers.Control} control - * @param {OpenLayers.Pixel} px - */ - addControl: function (control, px) { - control.map = this; - this.controls.push(control); - var div = control.draw(px); - if (div) { - div.style.zIndex = this.Z_INDEX_BASE['Control'] + - this.controls.length; - this.viewPortDiv.appendChild( div ); - } - }, - - /** - * @param {OpenLayers.Popup} popup - */ - addPopup: function(popup) { - popup.map = this; - this.popups.push(popup); - var popupDiv = popup.draw(); - if (popupDiv) { - popupDiv.style.zIndex = this.Z_INDEX_BASE['Popup'] + - this.popups.length; - this.layerContainerDiv.appendChild(popupDiv); - } - }, - - /** - * @param {OpenLayers.Popup} popup - */ - removePopup: function(popup) { - this.popups.remove(popup); - if (popup.div) { - this.layerContainerDiv.removeChild(popup.div); - } - popup.map = null; - }, - - /** - * @return {float} - */ - getResolution: function () { - // return degrees per pixel - return this.maxResolution / Math.pow(2, this.zoom); - }, - - /** - * @return {int} - */ - getZoom: function () { - return this.zoom; - }, - - /** - * @returns {OpenLayers.Size} - */ - getSize: function () { - return this.size; - }, - - /** - * @private - */ - updateSize: function() { - this.size = new OpenLayers.Size( - this.div.clientWidth, this.div.clientHeight); - this.events.div.offsets = null; - // Workaround for the fact that hidden elements return 0 for size. - if (this.size.w == 0 && this.size.h == 0) { - var dim = Element.getDimensions(this.div); - this.size.w = dim.width; - this.size.h = dim.height; - } - if (this.size.w == 0 && this.size.h == 0) { - this.size.w = parseInt(this.div.style.width); - this.size.h = parseInt(this.div.style.height); - } - }, - - /** - * @return {OpenLayers.LonLat} - */ - getCenter: function () { - return this.center; - }, - - /** - * @return {OpenLayers.Bounds} - */ - getExtent: function () { - if (this.center) { - var res = this.getResolution(); - var size = this.getSize(); - var w_deg = size.w * res; - var h_deg = size.h * res; - return new OpenLayers.Bounds( - this.center.lon - w_deg / 2, - this.center.lat - h_deg / 2, - this.center.lon + w_deg / 2, - this.center.lat + h_deg / 2); - } else { - return null; - } - }, - - /** - * @return {OpenLayers.Bounds} - */ - getFullExtent: function () { - return this.maxExtent; - }, - - getZoomLevels: function() { - return this.maxZoomLevel; - }, - - /** - * @param {OpenLayers.Bounds} bounds - * - * @return {int} - */ - getZoomForExtent: function (bounds) { - var size = this.getSize(); - var width = bounds.getWidth(); - var height = bounds.getHeight(); - var deg_per_pixel = (width > height ? width / size.w : height / size.h); - var zoom = Math.log(this.maxResolution / deg_per_pixel) / Math.log(2); - return Math.floor(Math.min(Math.max(zoom, 0), this.getZoomLevels())); - }, - - /** - * @param {OpenLayers.Pixel} layerPx - * - * @returns px translated into view port pixel coordinates - * @type OpenLayers.Pixel - * @private - */ - getViewPortPxFromLayerPx:function(layerPx) { - var viewPortPx = layerPx.copyOf(); - - viewPortPx.x += parseInt(this.layerContainerDiv.style.left); - viewPortPx.y += parseInt(this.layerContainerDiv.style.top); - - return viewPortPx; - }, - - /** - * @param {OpenLayers.Pixel} viewPortPx - * - * @returns px translated into view port pixel coordinates - * @type OpenLayers.Pixel - * @private - */ - getLayerPxFromViewPortPx:function(viewPortPx) { - var layerPx = viewPortPx.copyOf(); - - layerPx.x -= parseInt(this.layerContainerDiv.style.left); - layerPx.y -= parseInt(this.layerContainerDiv.style.top); - - return layerPx; - }, - - - /** - * @param {OpenLayers.Pixel} px - * - * @return {OpenLayers.LonLat} - */ - getLonLatFromLayerPx: function (px) { - //adjust for displacement of layerContainerDiv - px = this.getViewPortPxFromLayerPx(px); - return this.getLonLatFromViewPortPx(px); - }, - - /** - * @param {OpenLayers.Pixel} viewPortPx - * - * @returns An OpenLayers.LonLat which is the passed-in view port - * OpenLayers.Pixel, translated into lon/lat given the - * current extent and resolution - * @type OpenLayers.LonLat - * @private - */ - getLonLatFromViewPortPx: function (viewPortPx) { - var center = this.getCenter(); //map center lon/lat - var res = this.getResolution(); - var size = this.getSize(); - - var delta_x = viewPortPx.x - (size.w / 2); - var delta_y = viewPortPx.y - (size.h / 2); - - return new OpenLayers.LonLat(center.lon + delta_x * res , - center.lat - delta_y * res); - }, - - // getLonLatFromPixel is a convenience function for the API - /** - * @param {OpenLayers.Pixel} pixel - * - * @returns An OpenLayers.LonLat corresponding to the given - * OpenLayers.Pixel, translated into lon/lat using the - * current extent and resolution - * @type OpenLayers.LonLat - */ - getLonLatFromPixel: function (px) { - return this.getLonLatFromViewPortPx(px); - }, - - /** - * @param {OpenLayers.LonLat} lonlat - * - * @returns An OpenLayers.Pixel which is the passed-in OpenLayers.LonLat, - * translated into layer pixels given the current extent - * and resolution - * @type OpenLayers.Pixel - */ - getLayerPxFromLonLat: function (lonlat) { - //adjust for displacement of layerContainerDiv - var px = this.getViewPortPxFromLonLat(lonlat); - return this.getLayerPxFromViewPortPx(px); - }, - - /** - * @param {OpenLayers.LonLat} lonlat - * - * @returns An OpenLayers.Pixel which is the passed-in OpenLayers.LonLat, - * translated into view port pixels given the current extent - * and resolution - * @type OpenLayers.Pixel - * @private - */ - getViewPortPxFromLonLat: function (lonlat) { - var resolution = this.getResolution(); - var extent = this.getExtent(); - return new OpenLayers.Pixel( - Math.round(1/resolution * (lonlat.lon - extent.left)), - Math.round(1/resolution * (extent.top - lonlat.lat)) - ); - }, - - // getLonLatFromPixel is a convenience function for the API - /** - * @param {OpenLayers.LonLat} lonlat - * - * @returns An OpenLayers.Pixel corresponding to the OpenLayers.LonLat - * translated into view port pixels using the current extent - * and resolution - * @type OpenLayers.Pixel - */ - getPixelFromLonLat: function (lonlat) { - return this.getViewPortPxFromLonLat(lonlat); - }, - - /** - * @param {OpenLayers.LonLat} lonlat - * @param {int} zoom - */ - setCenter: function (lonlat, zoom, minor) { - if (this.center) { // otherwise there's nothing to move yet - this.moveLayerContainer(lonlat); - } - this.center = lonlat.copyOf(); - var zoomChanged = null; - if (zoom != null && zoom != this.zoom - && zoom >= 0 && zoom <= this.getZoomLevels()) { - zoomChanged = (this.zoom == null ? 0 : this.zoom); - this.zoom = zoom; - } - - if (!minor) this.events.triggerEvent("movestart"); - this.moveToNewExtent(zoomChanged, minor); - if (!minor) this.events.triggerEvent("moveend"); - }, - - /** - * ZOOM TO BOUNDS FUNCTION - * @private - */ - moveToNewExtent: function (zoomChanged, minor) { - if (zoomChanged != null) { // reset the layerContainerDiv's location - this.layerContainerDiv.style.left = "0px"; - this.layerContainerDiv.style.top = "0px"; - - //redraw popups - for (var i = 0; i < this.popups.length; i++) { - this.popups[i].updatePosition(); - } - - } - var bounds = this.getExtent(); - for (var i = 0; i < this.layers.length; i++) { - this.layers[i].moveTo(bounds, (zoomChanged != null), minor); - } - this.events.triggerEvent("move"); - if (zoomChanged != null) - this.events.triggerEvent("zoomend", - {oldZoom: zoomChanged, newZoom: this.zoom}); - }, - - /** - * zoomIn - * Increase zoom level by one. - * @param {int} zoom - */ - zoomIn: function() { - if (this.zoom != null && this.zoom <= this.getZoomLevels()) { - this.zoomTo( this.zoom += 1 ); - } - }, - - /** - * zoomTo - * Set Zoom To int - * @param {int} zoom - */ - zoomTo: function(zoom) { - if (zoom >= 0 && zoom <= this.getZoomLevels()) { - var oldZoom = this.zoom; - this.zoom = zoom; - this.moveToNewExtent(oldZoom); - } - }, - - /** - * zoomOut - * Decrease zoom level by one. - * @param {int} zoom - */ - zoomOut: function() { - if (this.zoom != null && this.zoom > 0) { - this.zoomTo( this.zoom - 1 ); - } - }, - - /** - * zoomToFullExtent - * Zoom to the full extent and recenter. - */ - zoomToFullExtent: function() { - var fullExtent = this.getFullExtent(); - this.setCenter( - new OpenLayers.LonLat((fullExtent.left+fullExtent.right)/2, - (fullExtent.bottom+fullExtent.top)/2), - this.getZoomForExtent(fullExtent) - ); - }, - - /** - * @param {OpenLayers.LonLat} lonlat - * @private - */ - moveLayerContainer: function (lonlat) { - var container = this.layerContainerDiv; - var resolution = this.getResolution(); - - var deltaX = Math.round((this.center.lon - lonlat.lon) / resolution); - var deltaY = Math.round((this.center.lat - lonlat.lat) / resolution); - - var offsetLeft = parseInt(container.style.left); - var offsetTop = parseInt(container.style.top); - - container.style.left = (offsetLeft + deltaX) + "px"; - container.style.top = (offsetTop - deltaY) + "px"; - }, - - CLASS_NAME: "OpenLayers.Map" -}; diff --git a/public/lib/OpenLayers/Marker.js b/public/lib/OpenLayers/Marker.js deleted file mode 100644 index 0640295d7..000000000 --- a/public/lib/OpenLayers/Marker.js +++ /dev/null @@ -1,109 +0,0 @@ -/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full - * text of the license. */ -/** -* @class -*/ -OpenLayers.Marker = Class.create(); -OpenLayers.Marker.prototype = { - - /** @type OpenLayers.Icon */ - icon: null, - - /** location of object - * @type OpenLayers.LonLat */ - lonlat: null, - - /** @type OpenLayers.Events*/ - events: null, - - /** @type OpenLayers.Map */ - map: null, - - /** - * @constructor - * - * @param {OpenLayers.Icon} icon - * @param {OpenLayers.LonLat lonlat - */ - initialize: function(lonlat, icon) { - this.lonlat = lonlat; - this.icon = (icon) ? icon : OpenLayers.Marker.defaultIcon(); - - this.events = new OpenLayers.Events(this, this.icon.imageDiv, null); - }, - - destroy: function() { - this.map = null; - - if (this.icon != null) { - this.icon.destroy(); - this.icon = null; - } - }, - - /** - * @param {OpenLayers.Pixel} px - * - * @return A new DOM Image with this marker´s icon set at the - * location passed-in - * @type DOMElement - */ - draw: function(px) { - return this.icon.draw(px); - }, - - /** - * @param {OpenLayers.Pixel} px - */ - moveTo: function (px) { - if ((px != null) && (this.icon != null)) { - this.icon.moveTo(px); - } - }, - - /** - * @returns Whether or not the marker is currently visible on screen. - * @type Boolean - */ - onScreen:function() { - - var onScreen = false; - if (this.map) { - var screenBounds = this.map.getExtent(); - onScreen = screenBounds.contains(this.lonlat.lon, this.lonlat.lat); - } - return onScreen; - }, - - /** - * @param {float} inflate - */ - inflate: function(inflate) { - if (this.icon) { - var newSize = new OpenLayers.Size(this.icon.size.w * inflate, - this.icon.size.h * inflate); - this.icon.setSize(newSize); - } - }, - - /** @final @type String */ - CLASS_NAME: "OpenLayers.Marker" -}; - - -/** - * @returns A default OpenLayers.Icon to use for a marker - * @type OpenLayers.Icon - */ -OpenLayers.Marker.defaultIcon = function() { - var url = OpenLayers.Util.getImagesLocation() + "marker.png"; - var size = new OpenLayers.Size(21, 25); - var calculateOffset = function(size) { - return new OpenLayers.Pixel(-(size.w/2), -size.h); - }; - - return new OpenLayers.Icon(url, size, null, calculateOffset); -}; - - diff --git a/public/lib/OpenLayers/Popup.js b/public/lib/OpenLayers/Popup.js deleted file mode 100644 index 1491109c5..000000000 --- a/public/lib/OpenLayers/Popup.js +++ /dev/null @@ -1,232 +0,0 @@ -/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full - * text of the license. */ -/** -* @class -*/ -OpenLayers.Popup = Class.create(); - -OpenLayers.Popup.count = 0; -OpenLayers.Popup.WIDTH = 200; -OpenLayers.Popup.HEIGHT = 200; -OpenLayers.Popup.COLOR = "white"; -OpenLayers.Popup.OPACITY = 1; -OpenLayers.Popup.BORDER = "0px"; - -OpenLayers.Popup.prototype = { - - /** @type OpenLayers.Events*/ - events: null, - - /** @type String */ - id: "", - - /** @type OpenLayers.LonLat */ - lonlat: null, - - /** @type DOMElement */ - div: null, - - /** @type OpenLayers.Size*/ - size: null, - - /** @type String */ - contentHTML: "", - - /** @type String */ - backgroundColor: "", - - /** @type float */ - opacity: "", - - /** @type String */ - border: "", - - /** this gets set in Map.js when the popup is added to the map - * @type OpenLayers.Map */ - map: null, - - /** - * @constructor - * - * @param {String} id - * @param {OpenLayers.LonLat} lonlat - * @param {OpenLayers.Size} size - * @param {String} contentHTML - */ - initialize:function(id, lonlat, size, contentHTML) { - OpenLayers.Popup.count += 1; - this.id = (id != null) ? id : "Popup" + OpenLayers.Popup.count; - this.lonlat = lonlat; - this.size = (size != null) ? size - : new OpenLayers.Size( - OpenLayers.Popup.WIDTH, - OpenLayers.Popup.HEIGHT); - if (contentHTML != null) { - this.contentHTML = contentHTML; - } - this.backgroundColor = OpenLayers.Popup.COLOR; - this.opacity = OpenLayers.Popup.OPACITY; - this.border = OpenLayers.Popup.BORDER; - - this.div = OpenLayers.Util.createDiv(this.id + "_div", null, null, - null, null, null, "hidden"); - - this.events = new OpenLayers.Events(this, this.div, null); - }, - - /** - */ - destroy: function() { - if (this.map != null) { - this.map.removePopup(this); - } - this.div = null; - this.map = null; - }, - - /** - * @param {OpenLayers.Pixel} px - * - * @returns Reference to a div that contains the drawn popup - * @type DOMElement - */ - draw: function(px) { - if (px == null) { - if ((this.lonlat != null) && (this.map != null)) { - px = this.map.getLayerPxFromLonLat(this.lonlat); - } - } - - this.setSize(); - this.setBackgroundColor(); - this.setOpacity(); - this.setBorder(); - this.setContentHTML(); - this.moveTo(px); - - return this.div; - }, - - /** - * if the popup has a lonlat and its map members set, - * then have it move itself to its proper position - */ - updatePosition: function() { - if ((this.lonlat) && (this.map)) { - var px = this.map.getLayerPxFromLonLat(this.lonlat); - this.moveTo(px); - } - }, - - /** - * @param {OpenLayers.Pixel} px - */ - moveTo: function(px) { - if ((px != null) && (this.div != null)) { - this.div.style.left = px.x + "px"; - this.div.style.top = px.y + "px"; - } - }, - - /** - * @returns Boolean indicating whether or not the popup is visible - * @type Boolean - */ - visible: function() { - return Element.visible(this.div); - }, - - /** - * - */ - toggle: function() { - Element.toggle(this.div); - }, - - /** - * - */ - show: function() { - Element.show(this.div); - }, - - /** - * - */ - hide: function() { - Element.hide(this.div); - }, - - /** - * @param {OpenLayers.Size} size - */ - setSize:function(size) { - if (size != undefined) { - this.size = size; - } - - if (this.div != null) { - this.div.style.width = this.size.w; - this.div.style.height = this.size.h; - } - }, - - /** - * @param {String} color - */ - setBackgroundColor:function(color) { - if (color != undefined) { - this.backgroundColor = color; - } - - if (this.div != null) { - this.div.style.backgroundColor = this.backgroundColor; - } - }, - - /** - * @param {float} opacity - */ - setOpacity:function(opacity) { - if (opacity != undefined) { - this.opacity = opacity; - } - - if (this.div != null) { - // for Mozilla and Safari - this.div.style.opacity = this.opacity; - - // for IE - this.div.style.filter = 'alpha(opacity=' + this.opacity*100 + ')'; - } - }, - - /** - * @param {int} border - */ - setBorder:function(border) { - if (border != undefined) { - this.border = border; - } - - if (this.div != null) { - this.div.style.border = this.border; - } - }, - - /** - * @param {String} contentHTML - */ - setContentHTML:function(contentHTML) { - if (contentHTML != null) { - this.contentHTML = contentHTML; - } - - if (this.div != null) { - this.div.innerHTML = this.contentHTML; - } - }, - - CLASS_NAME: "OpenLayers.Popup" -}; diff --git a/public/lib/OpenLayers/Popup/Anchored.js b/public/lib/OpenLayers/Popup/Anchored.js deleted file mode 100644 index 90db91279..000000000 --- a/public/lib/OpenLayers/Popup/Anchored.js +++ /dev/null @@ -1,125 +0,0 @@ -/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full - * text of the license. */ -// @require: OpenLayers/Popup.js - -/** -* @class -*/ -OpenLayers.Popup.Anchored = Class.create(); -OpenLayers.Popup.Anchored.prototype = - Object.extend( new OpenLayers.Popup(), { - - /** "lr", "ll", "tr", "tl" - relative position of the popup. - * @type String */ - relativePosition: null, - - /** Object which must have expose a 'size' (OpenLayers.Size) and - * 'offset' (OpenLayers.Pixel) - * @type Object */ - anchor: null, - - /** - * @constructor - * - * @param {String} id - * @param {OpenLayers.LonLat} lonlat - * @param {OpenLayers.Size} size - * @param {String} contentHTML - * @param {Object} anchor Object which must expose a - * - 'size' (OpenLayers.Size) and - * - 'offset' (OpenLayers.Pixel) - * (this is generally an OpenLayers.Icon) - */ - initialize:function(id, lonlat, size, contentHTML, anchor) { - var newArguments = new Array(id, lonlat, size, contentHTML); - OpenLayers.Popup.prototype.initialize.apply(this, newArguments); - - this.anchor = (anchor != null) ? anchor - : { size: new OpenLayers.Size(0,0), - offset: new OpenLayers.Pixel(0,0)}; - }, - - /** - * @param {OpenLayers.Pixel} px - * - * @returns Reference to a div that contains the drawn popup - * @type DOMElement - */ - draw: function(px) { - if (px == null) { - if ((this.lonlat != null) && (this.map != null)) { - px = this.map.getLayerPxFromLonLat(this.lonlat); - } - } - - //calculate relative position - this.relativePosition = this.calculateRelativePosition(px); - - return OpenLayers.Popup.prototype.draw.apply(this, arguments); - }, - - /** - * @private - * - * @param {OpenLayers.Pixel} px - * - * @returns The relative position ("br" "tr" "tl "bl") at which the popup - * should be placed - * @type String - */ - calculateRelativePosition:function(px) { - var lonlat = this.map.getLonLatFromLayerPx(px); - - var extent = this.map.getExtent(); - var quadrant = extent.determineQuadrant(lonlat); - - return OpenLayers.Bounds.oppositeQuadrant(quadrant); - }, - - /** - * @param {OpenLayers.Pixel} px - */ - moveTo: function(px) { - - var newPx = this.calculateNewPx(px); - - var newArguments = new Array(newPx); - OpenLayers.Popup.prototype.moveTo.apply(this, newArguments); - }, - - /** - * @param {OpenLayers.Size} size - */ - setSize:function(size) { - OpenLayers.Popup.prototype.setSize.apply(this, arguments); - - if ((this.lonlat) && (this.map)) { - var px = this.map.getLayerPxFromLonLat(this.lonlat); - this.moveTo(px); - } - }, - - /** - * @private - * - * @param {OpenLayers.Pixel} px - * - * @returns The the new px position of the popup on the screen - * relative to the passed-in px - * @type OpenLayers.Pixel - */ - calculateNewPx:function(px) { - var newPx = px.offset(this.anchor.offset); - - var top = (this.relativePosition.charAt(0) == 't'); - newPx.y += (top) ? -this.size.h : this.anchor.size.h; - - var left = (this.relativePosition.charAt(1) == 'l'); - newPx.x += (left) ? -this.size.w : this.anchor.size.w; - - return newPx; - }, - - CLASS_NAME: "OpenLayers.Popup.Anchored" -}); diff --git a/public/lib/OpenLayers/Popup/AnchoredBubble.js b/public/lib/OpenLayers/Popup/AnchoredBubble.js deleted file mode 100644 index 352086dbd..000000000 --- a/public/lib/OpenLayers/Popup/AnchoredBubble.js +++ /dev/null @@ -1,183 +0,0 @@ -/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full - * text of the license. */ -// @require: OpenLayers/Popup/Anchored.js - -/** -* @class -*/ -OpenLayers.Popup.AnchoredBubble = Class.create(); - -//Border space for the rico corners -OpenLayers.Popup.AnchoredBubble.CORNER_SIZE = 5; - -OpenLayers.Popup.AnchoredBubble.prototype = - Object.extend( new OpenLayers.Popup.Anchored(), { - - /** @type DOMElement */ - contentDiv:null, - - - /** - * @constructor - * - * @param {String} id - * @param {OpenLayers.LonLat} lonlat - * @param {OpenLayers.Size} size - * @param {String} contentHTML - * @param {Object} anchor Object which must expose a - * - 'size' (OpenLayers.Size) and - * - 'offset' (OpenLayers.Pixel) - * (this is generally an OpenLayers.Icon) - */ - initialize:function(id, lonlat, size, contentHTML, anchor) { - OpenLayers.Popup.Anchored.prototype.initialize.apply(this, arguments); - }, - - /** - * @param {OpenLayers.Pixel} px - * - * @returns Reference to a div that contains the drawn popup - * @type DOMElement - */ - draw: function(px) { - - OpenLayers.Popup.Anchored.prototype.draw.apply(this, arguments); - - // make the content Div - var contentSize = this.size.copyOf(); - contentSize.h -= (2 * OpenLayers.Popup.AnchoredBubble.CORNER_SIZE); - - var id = this.div.id + "-contentDiv"; - this.contentDiv = OpenLayers.Util.createDiv(id, null, contentSize, - null, "relative", null, - "hidden"); - this.div.appendChild(this.contentDiv); - this.setContentHTML(); - - this.setRicoCorners(true); - - //set the popup color and opacity - this.setBackgroundColor(); - this.setOpacity(); - - return this.div; - }, - - /** - * @param {OpenLayers.Size} size - */ - setSize:function(size) { - OpenLayers.Popup.Anchored.prototype.setSize.apply(this, arguments); - - if (this.contentDiv != null) { - - var contentSize = this.size.copyOf(); - contentSize.h -= (2 * OpenLayers.Popup.AnchoredBubble.CORNER_SIZE); - - this.contentDiv.style.height = contentSize.h + "px"; - - //size has changed - must redo corners - this.setRicoCorners(false); - } - }, - - /** - * @param {String} color - */ - setBackgroundColor:function(color) { - if (color != undefined) { - this.backgroundColor = color; - } - - if (this.div != null) { - if (this.contentDiv != null) { - this.div.style.background = "transparent"; - Rico.Corner.changeColor(this.contentDiv, this.backgroundColor); - } - } - }, - - /** - * @param {float} opacity - */ - setOpacity:function(opacity) { - if (opacity != undefined) { - this.opacity = opacity; - } - - if (this.div != null) { - if (this.contentDiv != null) { - Rico.Corner.changeOpacity(this.contentDiv, this.opacity); - } - } - }, - - /** Bubble Popups can not have a border - * - * @param {int} border - */ - setBorder:function(border) { - this.border = 0; - }, - - /** - * @param {String} contentHTML - */ - setContentHTML:function(contentHTML) { - if (contentHTML != null) { - this.contentHTML = contentHTML; - } - - if (this.contentDiv != null) { - this.contentDiv.innerHTML = this.contentHTML; - } - }, - - /** - * @private - * - * @param {Boolean} firstTime Is this the first time the corners are being - * rounded? - * - * update the rico corners according to the popup's - * current relative postion - */ - setRicoCorners:function(firstTime) { - - var corners = this.getCornersToRound(this.relativePosition); - var options = {corners: corners, - color: this.backgroundColor, - bgColor: "transparent", - blend: false}; - - if (firstTime) { - Rico.Corner.round(this.div, options); - } else { - Rico.Corner.reRound(this.contentDiv, options); - //set the popup color and opacity - this.setBackgroundColor(); - this.setOpacity(); - } - }, - - /** - * @private - * - * @returns The proper corners string ("tr tl bl br") for rico - * to round - * @type String - */ - getCornersToRound:function() { - - var corners = ['tl', 'tr', 'bl', 'br']; - - //we want to round all the corners _except_ the opposite one. - var corner = OpenLayers.Bounds.oppositeQuadrant(this.relativePosition); - corners.remove(corner); - - return corners.join(" "); - }, - - CLASS_NAME: "OpenLayers.Popup.AnchoredBubble" -}); diff --git a/public/lib/OpenLayers/SingleFile.js b/public/lib/OpenLayers/SingleFile.js deleted file mode 100644 index 857c48490..000000000 --- a/public/lib/OpenLayers/SingleFile.js +++ /dev/null @@ -1,5 +0,0 @@ -/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full - * text of the license. */ -_OPENLAYERS_SFL_=true - diff --git a/public/lib/OpenLayers/Tile.js b/public/lib/OpenLayers/Tile.js deleted file mode 100644 index eca7c0bca..000000000 --- a/public/lib/OpenLayers/Tile.js +++ /dev/null @@ -1,85 +0,0 @@ -/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full - * text of the license. */ -/* - * OpenLayers.Tile - * - * @class This is a class designed to designate a single tile, however - * it is explicitly designed to do relatively little. Tiles store information - * about themselves -- such as the URL that they are related to, and their - * size - but do not add themselves to the layer div automatically, for - * example. - */ -OpenLayers.Tile = Class.create(); -OpenLayers.Tile.prototype = { - - /** @type OpenLayers.Layer */ - layer: null, - - /** @type String url of the request */ - url:null, - - /** @type OpenLayers.Bounds */ - bounds:null, - - /** @type OpenLayers.Size */ - size:null, - - /** Top Left pixel of the tile - * @type OpenLayers.Pixel */ - position:null, - - /** - * @constructor - * - * @param {OpenLayers.Layer} layer - * @param {OpenLayers.Pixel} position - * @param {OpenLayers.Bounds} bounds - * @param {String} url - * @param {OpenLayers.Size} size - */ - initialize: function(layer, position, bounds, url, size) { - if (arguments.length > 0) { - this.layer = layer; - this.position = position; - this.bounds = bounds; - this.url = url; - this.size = size; - } - }, - - /** nullify references to prevent circular references and memory leaks - */ - destroy:function() { - this.layer = null; - this.bounds = null; - this.size = null; - }, - - /** - */ - draw:function() { - - // HACK HACK - should we make it a standard to put this sort of warning - // message in functions that are supposed to be overridden? - // - // Log.warn(this.CLASS_NAME + ": draw() not implemented"); - - }, - - /** remove this tile from the ds - */ - remove:function() { - }, - - /** - * @type OpenLayers.Pixel - */ - getPosition: function() { - return this.position; - }, - - /** @final @type String */ - CLASS_NAME: "OpenLayers.Tile" -}; - diff --git a/public/lib/OpenLayers/Tile/Image.js b/public/lib/OpenLayers/Tile/Image.js deleted file mode 100644 index 6a386f8c2..000000000 --- a/public/lib/OpenLayers/Tile/Image.js +++ /dev/null @@ -1,60 +0,0 @@ -/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full - * text of the license. */ -// @require: OpenLayers/Tile.js -/** -* @class -*/ -OpenLayers.Tile.Image = Class.create(); -OpenLayers.Tile.Image.prototype = - Object.extend( new OpenLayers.Tile(), { - - /** @type DOMElement img */ - imgDiv:null, - - /** - * @constructor - * - * @param {OpenLayers.Grid} layer - * @param {OpenLayers.Pixel} position - * @param {OpenLayers.Bounds} bounds - * @param {String} url - * @param {OpenLayers.Size} size - */ - initialize: function(layer, position, bounds, url, size) { - OpenLayers.Tile.prototype.initialize.apply(this, arguments); - }, - - destroy: function() { - if ((this.imgDiv != null) && (this.imgDiv.parentNode == this.layer.div)) { - this.layer.div.removeChild(this.imgDiv); - } - this.imgDiv = null; - OpenLayers.Tile.prototype.destroy.apply(this, arguments); - }, - - /** - */ - draw:function(transparent) { - if (false) { // don't actually use the alpha PNG hack right now - // it has a fiercely bad effect on IE6's performance - // if (transparent) { - this.imgDiv = OpenLayers.Util.createAlphaImageDiv(null, - this.position, - this.size, - this.url, - "absolute"); - } else { - this.imgDiv = OpenLayers.Util.createImage(null, - this.position, - this.size, - this.url, - "absolute"); - } - this.layer.div.appendChild(this.imgDiv); - }, - - /** @final @type String */ - CLASS_NAME: "OpenLayers.Tile.Image" - } -); diff --git a/public/lib/OpenLayers/Tile/WFS.js b/public/lib/OpenLayers/Tile/WFS.js deleted file mode 100644 index 486d1384c..000000000 --- a/public/lib/OpenLayers/Tile/WFS.js +++ /dev/null @@ -1,100 +0,0 @@ -/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full - * text of the license. */ -// @require: OpenLayers/Tile.js -/** -* @class -*/ -OpenLayers.Tile.WFS = Class.create(); -OpenLayers.Tile.WFS.prototype = - Object.extend( new OpenLayers.Tile(), { - - /** @type Array(OpenLayers.Feature)*/ - features: null, - - - /** - * @constructor - * - * @param {OpenLayers.Layer} layer - * @param {OpenLayers.Pixel} position - * @param {OpenLayers.Bounds} bounds - * @param {String} url - * @param {OpenLayers.Size} size - */ - initialize: function(layer, position, bounds, url, size) { - OpenLayers.Tile.prototype.initialize.apply(this, arguments); - - this.features = new Array(); - }, - - /** - * - */ - destroy: function() { - for(var i=0; i < this.features.length; i++) { - this.features[i].destroy(); - } - OpenLayers.Tile.prototype.destroy.apply(this, arguments); - }, - - /** - */ - draw:function() { - this.loadFeaturesForRegion(this.requestSuccess); - }, - - - /** get the full request string from the ds and the tile params - * and call the AJAX loadURL(). - * - * input are function pointers for what to do on success and failure. - * - * @param {function} success - * @param {function} failure - */ - loadFeaturesForRegion:function(success, failure) { - - if (!this.loaded) { - - if (this.url != "") { - - // TODO: Hmmm, this stops multiple loads of the data when a - // result isn't immediately retrieved, but it's hacky. - // Do it better. - this.loaded = true; - OpenLayers.loadURL(this.url, null, this, success, failure); - } - } - }, - - /** Return from AJAX request - * - * @param {} request - */ - requestSuccess:function(request) { - var doc = request.responseXML; - - if (!doc || request.fileType!="XML") { - doc = OpenLayers.parseXMLString(request.responseText); - } - - var resultFeatures = doc.getElementsByTagName("featureMember"); - - //clear old featureList - this.features = new Array(); - - for (var i=0; i < resultFeatures.length; i++) { - - var feature = new this.layer.featureClass(this.layer, - resultFeatures[i]); - this.features.append(feature); - } - - }, - - /** @final @type String */ - CLASS_NAME: "OpenLayers.Tile.WFS" - } -); - diff --git a/public/lib/OpenLayers/Util.js b/public/lib/OpenLayers/Util.js deleted file mode 100644 index 9270821e0..000000000 --- a/public/lib/OpenLayers/Util.js +++ /dev/null @@ -1,1010 +0,0 @@ -/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full - * text of the license. */ -/** -* @class -*/ -OpenLayers.Util = new Object(); - - - - -/** -* @class This class represents a screen coordinate, in x and y coordinates -*/ -OpenLayers.Pixel = Class.create(); -OpenLayers.Pixel.prototype = { - - /** @type float */ - x: 0.0, - - /** @type float */ - y: 0.0, - - /** - * @constructor - * - * @param {float} x - * @param {float} y - */ - initialize: function(x, y) { - this.x = x; - this.y = y; - }, - - /** - * @return string representation of Pixel. ex: "x=200.4,y=242.2" - * @type str - */ - toString:function() { - return ("x=" + this.x + ",y=" + this.y); - }, - - /** - * @type OpenLayers.Pixel - */ - copyOf:function() { - return new OpenLayers.Pixel(this.x, this.y); - }, - - /** - * @param {OpenLayers.Pixel} px - * - * @return whether or not the point passed in as parameter is equal to this - * note that if px passed in is null, returns false - * @type bool - */ - equals:function(px) { - var equals = false; - if (px != null) { - equals = ((this.x == px.x) && (this.y == px.y)); - } - return equals; - }, - - /** - * @param {int} x - * @param {int} y - * - * @return a new Pixel with this pixel's x&y augmented by the - * values passed in. - * @type OpenLayers.Pixel - */ - add:function(x, y) { - return new OpenLayers.Pixel(this.x + x, this.y + y); - }, - - /** - * @param {OpenLayers.Pixel} px - * - * @return a new Pixel with this pixel's x&y augmented by the - * x&y values of the pixel passed in. - * @type OpenLayers.Pixel - */ - offset:function(px) { - return this.add(px.x, px.y); - }, - - /** @final @type str */ - CLASS_NAME: "OpenLayers.Pixel" -}; - - -/** -* @class This class represents a width and height pair -*/ -OpenLayers.Size = Class.create(); -OpenLayers.Size.prototype = { - - /** @type float */ - w: 0.0, - - /** @type float */ - h: 0.0, - - - /** - * @constructor - * - * @param {float} w - * @param {float} h - */ - initialize: function(w, h) { - this.w = w; - this.h = h; - }, - - /** - * @return String representation of OpenLayers.Size object. - * (ex. "w=55,h=66") - * @type String - */ - toString:function() { - return ("w=" + this.w + ",h=" + this.h); - }, - - /** - * @return New OpenLayers.Size object with the same w and h values - * @type OpenLayers.Size - */ - copyOf:function() { - return new OpenLayers.Size(this.w, this.h); - }, - - /** - * @param {OpenLayers.Size} sz - * @returns Boolean value indicating whether the passed-in OpenLayers.Size - * object has the same w and h components as this - * note that if sz passed in is null, returns false - * - * @type bool - */ - equals:function(sz) { - var equals = false; - if (sz != null) { - equals = ((this.w == sz.w) && (this.h == sz.h)); - } - return equals; - }, - - /** @final @type String */ - CLASS_NAME: "OpenLayers.Size" -}; - -/** -* @class This class represents a longitude and latitude pair -*/ -OpenLayers.LonLat = Class.create(); -OpenLayers.LonLat.prototype = { - - /** @type float */ - lon: 0.0, - - /** @type float */ - lat: 0.0, - - /** - * @constructor - * - * @param {float} lon - * @param {float} lat - */ - initialize: function(lon, lat) { - this.lon = lon; - this.lat = lat; - }, - - /** - * @return String representation of OpenLayers.LonLat object. - * (ex. "lon=5,lat=42") - * @type String - */ - toString:function() { - return ("lon=" + this.lon + ",lat=" + this.lat); - }, - - /** - * @return Shortened String representation of OpenLayers.LonLat object. - * (ex. "5, 42") - * @type String - */ - toShortString:function() { - return (this.lon + ", " + this.lat); - }, - - /** - * @return New OpenLayers.LonLat object with the same lon and lat values - * @type OpenLayers.LonLat - */ - copyOf:function() { - return new OpenLayers.LonLat(this.lon, this.lat); - }, - - /** - * @param {float} lon - * @param {float} lat - * - * @return A new OpenLayers.LonLat object with the lon and lat passed-in - * added to this's. - * @type OpenLayers.LonLat - */ - add:function(lon, lat) { - return new OpenLayers.LonLat(this.lon + lon, this.lat + lat); - }, - - /** - * @param {OpenLayers.LonLat} ll - * @returns Boolean value indicating whether the passed-in OpenLayers.LonLat - * object has the same lon and lat components as this - * note that if ll passed in is null, returns false - * - * @type bool - */ - equals:function(ll) { - var equals = false; - if (ll != null) { - equals = ((this.lon == ll.lon) && (this.lat == ll.lat)); - } - return equals; - }, - - /** @final @type String */ - CLASS_NAME: "OpenLayers.LonLat" -}; - -/** Alternative constructor that builds a new OpenLayers.LonLat from a -* parameter string -* -* @constructor -* -* @param {String} str Comma-separated Lon,Lat coordinate string. -* (ex. "5,40") -* -* @returns New OpenLayers.LonLat object built from the passed-in String. -* @type OpenLayers.LonLat -*/ -OpenLayers.LonLat.fromString = function(str) { - var pair = str.split(","); - return new OpenLayers.LonLat(parseFloat(pair[0]), - parseFloat(pair[1])); -}; - - - - -/** -* @class This class represents a bounding box. -* Data stored as left, bottom, right, top floats -*/ -OpenLayers.Bounds = Class.create(); -OpenLayers.Bounds.prototype = { - - /** @type float */ - left: 0.0, - - /** @type float */ - bottom: 0.0, - - /** @type float */ - right: 0.0, - - /** @type float */ - top: 0.0, - - /** - * @constructor - * - * @param {float} left - * @param {float} bottom - * @param {float} right - * @param {float} top - * - */ - initialize: function(left, bottom, right, top) { - this.left = left; - this.bottom = bottom; - this.right = right; - this.top = top; - }, - - /** - * @returns A fresh copy of the bounds - * @type OpenLayers.Bounds - */ - copyOf:function() { - return new OpenLayers.Bounds(this.left, this.bottom, - this.right, this.top); - }, - - /** - * @param {OpenLayers.Bounds} bounds - * @returns Boolean value indicating whether the passed-in OpenLayers.Bounds - * object has the same left, right, top, bottom components as this - * note that if bounds passed in is null, returns false - * - * @type bool - */ - equals:function(bounds) { - var equals = false; - if (bounds != null) { - equals = ((this.left == bounds.left) && - (this.right == bounds.right) && - (this.top == bounds.top) && - (this.bottom == bounds.bottom)); - } - return equals; - }, - - /** - * @return String representation of OpenLayers.Bounds object. - * (ex."left-bottom=(5,42) right-top=(10,45)") - * @type String - */ - toString:function(){ - return ( "left-bottom=(" + this.left + "," + this.bottom + ")" - + " right-top=(" + this.right + "," + this.top + ")" ); - }, - - /** - * @return Simple String representation of OpenLayers.Bounds object. - * (ex. "5,42,10,45") - * @type String - */ - toBBOX:function() { - return (this.left + "," + this.bottom + "," - + this.right + "," + this.top); - }, - - /** - * @returns The width of the bounds - * @type float - */ - getWidth:function() { - return (this.right - this.left); - }, - - /** - * @returns The height of the bounds - * @type float - */ - getHeight:function() { - return (this.top - this.bottom); - }, - - /** - * @returns An OpenLayers.Size which represents the size of the box - * @type OpenLayers.Size - */ - getSize:function() { - return new OpenLayers.Size(this.getWidth(), this.getHeight()); - }, - - /** - * @returns An OpenLayers.Pixel which represents the center of the bounds - * @type OpenLayers.Pixel - */ - getCenterPixel:function() { - return new OpenLayers.Pixel( (this.left + this.right) / 2, - (this.bottom + this.top) / 2); - }, - - /** - * @returns An OpenLayers.LonLat which represents the center of the bounds - * @type OpenLayers.LonLat - */ - getCenterLonLat:function() { - return new OpenLayers.LonLat( (this.left + this.right) / 2, - (this.bottom + this.top) / 2); - }, - - /** - * @param {float} x - * @param {float} y - * - * @returns A new OpenLayers.Bounds whose coordinates are the same as this, - * but shifted by the passed-in x and y values - * @type OpenLayers.Bounds - */ - add:function(x, y){ - return new OpenLayers.Box(this.left + x, this.bottom + y, - this.right + x, this.top + y); - }, - - /** - * @param {float} x - * @param {float} y - * @param {Boolean} inclusive Whether or not to include the border. - * Default is true - * - * @return Whether or not the passed-in coordinates are within this bounds - * @type Boolean - */ - contains:function(x, y, inclusive) { - - //set default - if (inclusive == null) { - inclusive = true; - } - - var contains = false; - if (inclusive) { - contains = ((x >= this.left) && (x <= this.right) && - (y >= this.bottom) && (y <= this.top)); - } else { - contains = ((x > this.left) && (x < this.right) && - (y > this.bottom) && (y < this.top)); - } - return contains; - }, - - /** - * @param {OpenLayers.Bounds} bounds - * @param {Boolean} partial If true, only part of passed-in - * OpenLayers.Bounds needs be within this bounds. - * If false, the entire passed-in bounds must be - * within. Default is false - * @param {Boolean} inclusive Whether or not to include the border. - * Default is true - * - * @return Whether or not the passed-in OpenLayers.Bounds object is - * contained within this bounds. - * @type Boolean - */ - containsBounds:function(bounds, partial, inclusive) { - - //set defaults - if (partial == null) { - partial = false; - } - if (inclusive == null) { - inclusive = true; - } - - var inLeft; - var inTop; - var inRight; - var inBottom; - - if (inclusive) { - inLeft = (bounds.left >= this.left) && (bounds.left <= this.right); - inTop = (bounds.top >= this.bottom) && (bounds.top <= this.top); - inRight= (bounds.right >= this.left) && (bounds.right <= this.right); - inBottom = (bounds.bottom >= this.bottom) && (bounds.bottom <= this.top); - } else { - inLeft = (bounds.left > this.left) && (bounds.left < this.right); - inTop = (bounds.top > this.bottom) && (bounds.top < this.top); - inRight= (bounds.right > this.left) && (bounds.right < this.right); - inBottom = (bounds.bottom > this.bottom) && (bounds.bottom < this.top); - } - - return (partial) ? (inTop || inBottom) && (inLeft || inRight ) - : (inTop && inLeft && inBottom && inRight); - }, - - /** - * @param {OpenLayers.LonLat} lonlat - * - * @returns The quadrant ("br" "tr" "tl" "bl") of the bounds in which - * the coordinate lies. - * @type String - */ - determineQuadrant: function(lonlat) { - - var quadrant = ""; - var center = this.getCenterLonLat(); - - quadrant += (lonlat.lat < center.lat) ? "b" : "t"; - quadrant += (lonlat.lon < center.lon) ? "l" : "r"; - - return quadrant; - }, - - /** @final @type String */ - CLASS_NAME: "OpenLayers.Bounds" -}; - -/** Alternative constructor that builds a new OpenLayers.Bounds from a -* parameter string -* -* @constructor -* -* @param {String} str Comma-separated bounds string. (ex. "5,42,10,45") -* -* @returns New OpenLayers.Bounds object built from the passed-in String. -* @type OpenLayers.Bounds -*/ -OpenLayers.Bounds.fromString = function(str) { - var bounds = str.split(","); - return OpenLayers.Bounds.fromArray(bounds); -}; - -/** Alternative constructor that builds a new OpenLayers.Bounds -* from an array -* -* @constructor -* -* @param {Array} bbox Array of bounds values (ex. [5,42,10,45]) -* -* @returns New OpenLayers.Bounds object built from the passed-in Array. -* @type OpenLayers.Bounds -*/ -OpenLayers.Bounds.fromArray = function(bbox) { - return new OpenLayers.Bounds(parseFloat(bbox[0]), - parseFloat(bbox[1]), - parseFloat(bbox[2]), - parseFloat(bbox[3])); -}; - -/** Alternative constructor that builds a new OpenLayers.Bounds -* from an OpenLayers.Size -* -* @constructor -* -* @param {OpenLayers.Size} size -* -* @returns New OpenLayers.Bounds object built with top and left set to 0 and -* bottom right taken from the passed-in OpenLayers.Size. -* @type OpenLayers.Bounds -*/ -OpenLayers.Bounds.fromSize = function(size) { - return new OpenLayers.Bounds(0, - size.h, - size.w, - 0); -}; -/** - * @param {String} quadrant - * - * @returns The opposing quadrant ("br" "tr" "tl" "bl"). For Example, if - * you pass in "bl" it returns "tr", if you pass in "br" it - * returns "tl", etc. - * @type String - */ -OpenLayers.Bounds.oppositeQuadrant = function(quadrant) { - var opp = ""; - - opp += (quadrant.charAt(0) == 't') ? 'b' : 't'; - opp += (quadrant.charAt(1) == 'l') ? 'r' : 'l'; - - return opp; -}; - -// Some other helpful things - -/** -* @param {String} sStart -* -* @returns Whether or not this string starts with the string passed in. -* @type Boolean -*/ -String.prototype.startsWith = function(sStart){ - return (this.substr(0,sStart.length) == sStart); -}; - -/** -* @returns A trimmed version of the string - all leading and -* trailing spaces removed -* @type String -*/ -String.prototype.trim = function() { - - var b = 0; - while(this.substr(b,1) == " ") { - b++; - } - - var e = this.length - 1; - while(this.substr(e,1) == " ") { - e--; - } - - return this.substring(b, e+1); -}; - -/** Remove an object from an array. Iterates through the array -* to find the item, then removes it. -* -* @param {Object} item -* -* @returns A reference to the array -* @type Array -*/ -Array.prototype.remove = function(item) { - for(var i=0; i < this.length; i++) { - if(this[i] == item) { - this.splice(i,1); - //break;more than once?? - } - } - return this; -} - -/** -* @returns A fresh copy of the array -* @type Array -*/ -Array.prototype.copyOf = function() { - var copy = new Array(); - for (var i = 0; i < this.length; i++) { - copy[i] = this[i]; - } - return copy; -}; - -/** -* @param {Object} item -*/ -Array.prototype.prepend = function(item) { - this.splice(0, 0, item); -}; - -/** -* @param {Object} item -*/ -Array.prototype.append = function(item){ - this[this.length] = item; -}; - -/** -*/ -Array.prototype.clear = function() { - this.length = 0; -}; - -/** -* @param {Object} element -* -* @returns The first index of the element in the array if found. Else returns -1 -* @type int -*/ -Array.prototype.indexOf = function(element) { - var index = -1; - for(var i=0; i < this.length; i++) { - if (this[i] == element) { - index = i; - break; - } - } - return index; -} - -/** - * @param {String} id - * @param {OpenLayers.Pixel} px - * @param {OpenLayers.Size} sz - * @param {String} position - * @param {String} border - * @param {String} overflow - */ -OpenLayers.Util.modifyDOMElement = function(element, id, px, sz, position, - border, overflow) { - - if (id) { - element.id = id; - } - if (px) { - element.style.left = px.x + "px"; - element.style.top = px.y + "px"; - } - if (sz) { - element.style.width = sz.w + "px"; - element.style.height = sz.h + "px"; - } - if (position) { - element.style.position = position; - } - if (border) { - element.style.border = border; - } - if (overflow) { - element.style.overflow = overflow; - } -}; - -/** -* zIndex is NOT set -* -* @param {String} id -* @param {OpenLayers.Pixel} px -* @param {OpenLayers.Size} sz -* @param {String} imgURL -* @param {String} position -* @param {String} border -* @param {String} overflow -* -* @returns A DOM Div created with the specified attributes. -* @type DOMElement -*/ -OpenLayers.Util.createDiv = function(id, px, sz, imgURL, position, - border, overflow) { - - var dom = document.createElement('div'); - - //set specific properties - dom.style.padding = "0"; - dom.style.margin = "0"; - if (imgURL) { - dom.style.backgroundImage = 'url(' + imgURL + ')'; - } - - //set generic properties - if (!id) { - id = "OpenLayersDiv" + (Math.random() * 10000 % 10000); - } - if (!position) { - position = "absolute"; - } - OpenLayers.Util.modifyDOMElement(dom, id, px, sz, - position, border, overflow); - - return dom; -}; - -/** -* @param {String} id -* @param {OpenLayers.Pixel} px -* @param {OpenLayers.Size} sz -* @param {String} imgURL -* @param {String} position -* @param {String} border -* -* @returns A DOM Image created with the specified attributes. -* @type DOMElement -*/ -OpenLayers.Util.createImage = function(id, px, sz, imgURL, position, border) { - - image = document.createElement("img"); - - //set special properties - image.style.alt = id; - image.galleryImg = "no"; - if (imgURL) { - image.src = imgURL; - } - - //set generic properties - if (!id) { - id = "OpenLayersDiv" + (Math.random() * 10000 % 10000); - } - if (!position) { - position = "relative"; - } - OpenLayers.Util.modifyDOMElement(image, id, px, sz, position, border); - - return image; -}; - -OpenLayers.Util.alphaHack = function() { - var arVersion = navigator.appVersion.split("MSIE"); - var version = parseFloat(arVersion[1]); - - return ( (document.body.filters) && - (version >= 5.5) && (version < 7) ); -} - -/** -* @param {DOMElement} div Div containing Alpha-adjusted Image -* @param {String} id -* @param {OpenLayers.Pixel} px -* @param {OpenLayers.Size} sz -* @param {String} imgURL -* @param {String} position -* @param {String} border -* @param {String} sizing 'crop', 'scale', or 'image'. Default is "scale" -*/ -OpenLayers.Util.modifyAlphaImageDiv = function(div, id, px, sz, imgURL, - position, border, sizing) { - - OpenLayers.Util.modifyDOMElement(div, id, px, sz); - - var img = div.childNodes[0]; - - if (imgURL) { - img.src = imgURL; - } - OpenLayers.Util.modifyDOMElement(img, div.id + "_innerImage", null, sz, - "relative", border); - - if (OpenLayers.Util.alphaHack()) { - div.style.display = "inline-block"; - if (sizing == null) { - sizing = "scale"; - } - div.style.filter = "progid:DXImageTransform.Microsoft" + - ".AlphaImageLoader(src='" + img.src + "', " + - "sizingMethod='" + sizing + "')"; - img.style.filter = "progid:DXImageTransform.Microsoft" + - ".Alpha(opacity=0)"; - } -}; - -/** -* @param {String} id -* @param {OpenLayers.Pixel} px -* @param {OpenLayers.Size} sz -* @param {String} imgURL -* @param {String} position -* @param {String} border -* @param {String} sizing 'crop', 'scale', or 'image'. Default is "scale" -* -* @returns A DOM Div created with a DOM Image inside it. If the hack is -* needed for transparency in IE, it is added. -* @type DOMElement -*/ -OpenLayers.Util.createAlphaImageDiv = function(id, px, sz, imgURL, - position, border, sizing) { - - var div = OpenLayers.Util.createDiv(); - var img = OpenLayers.Util.createImage(); - div.appendChild(img); - - OpenLayers.Util.modifyAlphaImageDiv(div, id, px, sz, imgURL, - position, border, sizing); - - return div; -}; - - -/** Creates a new hash and copies over all the keys from the -* passed-in object, but storing them under an uppercased -* version of the key at which they were stored. -* -* @param {Object} object -* -* @returns A new Object with all the same keys but uppercased -* @type Object -*/ -OpenLayers.Util.upperCaseObject = function (object) { - var uObject = new Object(); - for (var key in object) { - uObject[key.toUpperCase()] = object[key]; - } - return uObject; -}; - -/** Takes a hash and copies any keys that don't exist from -* another hash, by analogy with Object.extend() from -* Prototype.js. -* -* @param {Object} to -* @param {Object} from -* -* @type Object -*/ -OpenLayers.Util.applyDefaults = function (to, from) { - for (var key in from) { - if (to[key] == null) { - to[key] = from[key]; - } - } - return to; -}; - -/** -* @param {Object} params -* -* @returns a concatenation of the properties of an object in -* http parameter notation. -* (ex. "key1=value1&key2=value2&key3=value3") -* @type String -*/ -OpenLayers.Util.getParameterString = function(params) { - paramsArray = new Array(); - - for (var key in params) { - var value = params[key]; - //skip functions - if (typeof value == 'function') continue; - - paramsArray.push(key + "=" + value); - } - - return paramsArray.join("&"); -}; - -/** -* @returns The fully formatted image location string -* @type String -*/ -OpenLayers.Util.getImagesLocation = function() { - return OpenLayers._getScriptLocation() + "img/"; -}; - - - -/** These could/should be made namespace aware? -* -* @param {} p -* @param {str} tagName -* -* @return {Array} -*/ -OpenLayers.Util.getNodes=function(p, tagName) { - var nodes = Try.these( - function () { - return OpenLayers.Util._getNodes(p.documentElement.childNodes, - tagName); - }, - function () { - return OpenLayers.Util._getNodes(p.childNodes, tagName); - } - ); - return nodes; -}; - -/** -* @param {Array} nodes -* @param {str} tagName -* -* @return {Array} -*/ -OpenLayers.Util._getNodes=function(nodes, tagName) { - var retArray = new Array(); - for (var i=0;i 0)) - { - if (!index) { - index=0; - } - if (result[index].childNodes.length > 1) { - return result.childNodes[1].nodeValue; - } - else if (result[index].childNodes.length == 1) { - return result[index].firstChild.nodeValue; - } - } else { - return ""; - } -}; - -/** -* @param {Event} evt -* @param {HTMLDivElement} div -* -* @return {boolean} -*/ -OpenLayers.Util.mouseLeft = function (evt, div) { - // start with the element to which the mouse has moved - var target = (evt.relatedTarget) ? evt.relatedTarget : evt.toElement; - // walk up the DOM tree. - while (target != div && target != null) { - target = target.parentNode; - } - // if the target we stop at isn't the div, then we've left the div. - return (target != div); -}; - -OpenLayers.Util.rad = function(x) {return x*Math.PI/180;}; -OpenLayers.Util.distVincenty=function(p1, p2) { - var a = 6378137, b = 6356752.3142, f = 1/298.257223563; - var L = OpenLayers.Util.rad(p2.lon - p1.lon); - var U1 = Math.atan((1-f) * Math.tan(OpenLayers.Util.rad(p1.lat))); - var U2 = Math.atan((1-f) * Math.tan(OpenLayers.Util.rad(p2.lat))); - var sinU1 = Math.sin(U1), cosU1 = Math.cos(U1); - var sinU2 = Math.sin(U2), cosU2 = Math.cos(U2); - var lambda = L, lambdaP = 2*Math.PI; - var iterLimit = 20; - while (Math.abs(lambda-lambdaP) > 1e-12 && --iterLimit>0) { - var sinLambda = Math.sin(lambda), cosLambda = Math.cos(lambda); - var sinSigma = Math.sqrt((cosU2*sinLambda) * (cosU2*sinLambda) + - (cosU1*sinU2-sinU1*cosU2*cosLambda) * (cosU1*sinU2-sinU1*cosU2*cosLambda)); - if (sinSigma==0) return 0; // co-incident points - var cosSigma = sinU1*sinU2 + cosU1*cosU2*cosLambda; - var sigma = Math.atan2(sinSigma, cosSigma); - var alpha = Math.asin(cosU1 * cosU2 * sinLambda / sinSigma); - var cosSqAlpha = Math.cos(alpha) * Math.cos(alpha); - var cos2SigmaM = cosSigma - 2*sinU1*sinU2/cosSqAlpha; - var C = f/16*cosSqAlpha*(4+f*(4-3*cosSqAlpha)); - lambdaP = lambda; - lambda = L + (1-C) * f * Math.sin(alpha) * - (sigma + C*sinSigma*(cos2SigmaM+C*cosSigma*(-1+2*cos2SigmaM*cos2SigmaM))); - } - if (iterLimit==0) return NaN // formula failed to converge - var uSq = cosSqAlpha * (a*a - b*b) / (b*b); - var A = 1 + uSq/16384*(4096+uSq*(-768+uSq*(320-175*uSq))); - var B = uSq/1024 * (256+uSq*(-128+uSq*(74-47*uSq))); - var deltaSigma = B*sinSigma*(cos2SigmaM+B/4*(cosSigma*(-1+2*cos2SigmaM*cos2SigmaM)- - B/6*cos2SigmaM*(-3+4*sinSigma*sinSigma)*(-3+4*cos2SigmaM*cos2SigmaM))); - var s = b*A*(sigma-deltaSigma); - var d = s.toFixed(3)/1000; // round to 1mm precision - return d; -}; diff --git a/public/lib/Prototype.js b/public/lib/Prototype.js deleted file mode 100644 index 07baf1030..000000000 --- a/public/lib/Prototype.js +++ /dev/null @@ -1,1781 +0,0 @@ -/* Prototype JavaScript framework, version 1.4.0 - * (c) 2005 Sam Stephenson - * - * Prototype is freely distributable under the terms of an MIT-style license. - * For details, see the Prototype web site: http://prototype.conio.net/ - * -/*--------------------------------------------------------------------------*/ - -var Prototype = { - Version: '1.4.0', - ScriptFragment: '(?:)((\n|\r|.)*?)(?:<\/script>)', - - emptyFunction: function() {}, - K: function(x) {return x} -} - -var Class = { - create: function() { - return function() { - this.initialize.apply(this, arguments); - } - } -} - -var Abstract = new Object(); - -Object.extend = function(destination, source) { - for (property in source) { - destination[property] = source[property]; - } - return destination; -} - -Object.inspect = function(object) { - try { - if (object == undefined) return 'undefined'; - if (object == null) return 'null'; - return object.inspect ? object.inspect() : object.toString(); - } catch (e) { - if (e instanceof RangeError) return '...'; - throw e; - } -} - -Function.prototype.bind = function() { - var __method = this, args = $A(arguments), object = args.shift(); - return function() { - return __method.apply(object, args.concat($A(arguments))); - } -} - -Function.prototype.bindAsEventListener = function(object) { - var __method = this; - return function(event) { - return __method.call(object, event || window.event); - } -} - -Object.extend(Number.prototype, { - toColorPart: function() { - var digits = this.toString(16); - if (this < 16) return '0' + digits; - return digits; - }, - - succ: function() { - return this + 1; - }, - - times: function(iterator) { - $R(0, this, true).each(iterator); - return this; - } -}); - -var Try = { - these: function() { - var returnValue; - - for (var i = 0; i < arguments.length; i++) { - var lambda = arguments[i]; - try { - returnValue = lambda(); - break; - } catch (e) {} - } - - return returnValue; - } -} - -/*--------------------------------------------------------------------------*/ - -var PeriodicalExecuter = Class.create(); -PeriodicalExecuter.prototype = { - initialize: function(callback, frequency) { - this.callback = callback; - this.frequency = frequency; - this.currentlyExecuting = false; - - this.registerCallback(); - }, - - registerCallback: function() { - setInterval(this.onTimerEvent.bind(this), this.frequency * 1000); - }, - - onTimerEvent: function() { - if (!this.currentlyExecuting) { - try { - this.currentlyExecuting = true; - this.callback(); - } finally { - this.currentlyExecuting = false; - } - } - } -} - -/*--------------------------------------------------------------------------*/ - -function $() { - var elements = new Array(); - - for (var i = 0; i < arguments.length; i++) { - var element = arguments[i]; - if (typeof element == 'string') - element = document.getElementById(element); - - if (arguments.length == 1) - return element; - - elements.push(element); - } - - return elements; -} -Object.extend(String.prototype, { - stripTags: function() { - return this.replace(/<\/?[^>]+>/gi, ''); - }, - - stripScripts: function() { - return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), ''); - }, - - extractScripts: function() { - var matchAll = new RegExp(Prototype.ScriptFragment, 'img'); - var matchOne = new RegExp(Prototype.ScriptFragment, 'im'); - return (this.match(matchAll) || []).map(function(scriptTag) { - return (scriptTag.match(matchOne) || ['', ''])[1]; - }); - }, - - evalScripts: function() { - return this.extractScripts().map(eval); - }, - - escapeHTML: function() { - var div = document.createElement('div'); - var text = document.createTextNode(this); - div.appendChild(text); - return div.innerHTML; - }, - - unescapeHTML: function() { - var div = document.createElement('div'); - div.innerHTML = this.stripTags(); - return div.childNodes[0] ? div.childNodes[0].nodeValue : ''; - }, - - toQueryParams: function() { - var pairs = this.match(/^\??(.*)$/)[1].split('&'); - return pairs.inject({}, function(params, pairString) { - var pair = pairString.split('='); - params[pair[0]] = pair[1]; - return params; - }); - }, - - toArray: function() { - return this.split(''); - }, - - camelize: function() { - var oStringList = this.split('-'); - if (oStringList.length == 1) return oStringList[0]; - - var camelizedString = this.indexOf('-') == 0 - ? oStringList[0].charAt(0).toUpperCase() + oStringList[0].substring(1) - : oStringList[0]; - - for (var i = 1, len = oStringList.length; i < len; i++) { - var s = oStringList[i]; - camelizedString += s.charAt(0).toUpperCase() + s.substring(1); - } - - return camelizedString; - }, - - inspect: function() { - return "'" + this.replace('\\', '\\\\').replace("'", '\\\'') + "'"; - } -}); - -String.prototype.parseQuery = String.prototype.toQueryParams; - -var $break = new Object(); -var $continue = new Object(); - -var Enumerable = { - each: function(iterator) { - var index = 0; - try { - this._each(function(value) { - try { - iterator(value, index++); - } catch (e) { - if (e != $continue) throw e; - } - }); - } catch (e) { - if (e != $break) throw e; - } - }, - - all: function(iterator) { - var result = true; - this.each(function(value, index) { - result = result && !!(iterator || Prototype.K)(value, index); - if (!result) throw $break; - }); - return result; - }, - - any: function(iterator) { - var result = true; - this.each(function(value, index) { - if (result = !!(iterator || Prototype.K)(value, index)) - throw $break; - }); - return result; - }, - - collect: function(iterator) { - var results = []; - this.each(function(value, index) { - results.push(iterator(value, index)); - }); - return results; - }, - - detect: function (iterator) { - var result; - this.each(function(value, index) { - if (iterator(value, index)) { - result = value; - throw $break; - } - }); - return result; - }, - - findAll: function(iterator) { - var results = []; - this.each(function(value, index) { - if (iterator(value, index)) - results.push(value); - }); - return results; - }, - - grep: function(pattern, iterator) { - var results = []; - this.each(function(value, index) { - var stringValue = value.toString(); - if (stringValue.match(pattern)) - results.push((iterator || Prototype.K)(value, index)); - }) - return results; - }, - - include: function(object) { - var found = false; - this.each(function(value) { - if (value == object) { - found = true; - throw $break; - } - }); - return found; - }, - - inject: function(memo, iterator) { - this.each(function(value, index) { - memo = iterator(memo, value, index); - }); - return memo; - }, - - invoke: function(method) { - var args = $A(arguments).slice(1); - return this.collect(function(value) { - return value[method].apply(value, args); - }); - }, - - max: function(iterator) { - var result; - this.each(function(value, index) { - value = (iterator || Prototype.K)(value, index); - if (value >= (result || value)) - result = value; - }); - return result; - }, - - min: function(iterator) { - var result; - this.each(function(value, index) { - value = (iterator || Prototype.K)(value, index); - if (value <= (result || value)) - result = value; - }); - return result; - }, - - partition: function(iterator) { - var trues = [], falses = []; - this.each(function(value, index) { - ((iterator || Prototype.K)(value, index) ? - trues : falses).push(value); - }); - return [trues, falses]; - }, - - pluck: function(property) { - var results = []; - this.each(function(value, index) { - results.push(value[property]); - }); - return results; - }, - - reject: function(iterator) { - var results = []; - this.each(function(value, index) { - if (!iterator(value, index)) - results.push(value); - }); - return results; - }, - - sortBy: function(iterator) { - return this.collect(function(value, index) { - return {value: value, criteria: iterator(value, index)}; - }).sort(function(left, right) { - var a = left.criteria, b = right.criteria; - return a < b ? -1 : a > b ? 1 : 0; - }).pluck('value'); - }, - - toArray: function() { - return this.collect(Prototype.K); - }, - - zip: function() { - var iterator = Prototype.K, args = $A(arguments); - if (typeof args.last() == 'function') - iterator = args.pop(); - - var collections = [this].concat(args).map($A); - return this.map(function(value, index) { - iterator(value = collections.pluck(index)); - return value; - }); - }, - - inspect: function() { - return '#'; - } -} - -Object.extend(Enumerable, { - map: Enumerable.collect, - find: Enumerable.detect, - select: Enumerable.findAll, - member: Enumerable.include, - entries: Enumerable.toArray -}); -var $A = Array.from = function(iterable) { - if (!iterable) return []; - if (iterable.toArray) { - return iterable.toArray(); - } else { - var results = []; - for (var i = 0; i < iterable.length; i++) - results.push(iterable[i]); - return results; - } -} - -Object.extend(Array.prototype, Enumerable); - -Array.prototype._reverse = Array.prototype.reverse; - -Object.extend(Array.prototype, { - _each: function(iterator) { - for (var i = 0; i < this.length; i++) - iterator(this[i]); - }, - - clear: function() { - this.length = 0; - return this; - }, - - first: function() { - return this[0]; - }, - - last: function() { - return this[this.length - 1]; - }, - - compact: function() { - return this.select(function(value) { - return value != undefined || value != null; - }); - }, - - flatten: function() { - return this.inject([], function(array, value) { - return array.concat(value.constructor == Array ? - value.flatten() : [value]); - }); - }, - - without: function() { - var values = $A(arguments); - return this.select(function(value) { - return !values.include(value); - }); - }, - - indexOf: function(object) { - for (var i = 0; i < this.length; i++) - if (this[i] == object) return i; - return -1; - }, - - reverse: function(inline) { - return (inline !== false ? this : this.toArray())._reverse(); - }, - - shift: function() { - var result = this[0]; - for (var i = 0; i < this.length - 1; i++) - this[i] = this[i + 1]; - this.length--; - return result; - }, - - inspect: function() { - return '[' + this.map(Object.inspect).join(', ') + ']'; - } -}); -var Hash = { - _each: function(iterator) { - for (key in this) { - var value = this[key]; - if (typeof value == 'function') continue; - - var pair = [key, value]; - pair.key = key; - pair.value = value; - iterator(pair); - } - }, - - keys: function() { - return this.pluck('key'); - }, - - values: function() { - return this.pluck('value'); - }, - - merge: function(hash) { - return $H(hash).inject($H(this), function(mergedHash, pair) { - mergedHash[pair.key] = pair.value; - return mergedHash; - }); - }, - - toQueryString: function() { - return this.map(function(pair) { - return pair.map(encodeURIComponent).join('='); - }).join('&'); - }, - - inspect: function() { - return '#'; - } -} - -function $H(object) { - var hash = Object.extend({}, object || {}); - Object.extend(hash, Enumerable); - Object.extend(hash, Hash); - return hash; -} -ObjectRange = Class.create(); -Object.extend(ObjectRange.prototype, Enumerable); -Object.extend(ObjectRange.prototype, { - initialize: function(start, end, exclusive) { - this.start = start; - this.end = end; - this.exclusive = exclusive; - }, - - _each: function(iterator) { - var value = this.start; - do { - iterator(value); - value = value.succ(); - } while (this.include(value)); - }, - - include: function(value) { - if (value < this.start) - return false; - if (this.exclusive) - return value < this.end; - return value <= this.end; - } -}); - -var $R = function(start, end, exclusive) { - return new ObjectRange(start, end, exclusive); -} - -var Ajax = { - getTransport: function() { - return Try.these( - function() {return new ActiveXObject('Msxml2.XMLHTTP')}, - function() {return new ActiveXObject('Microsoft.XMLHTTP')}, - function() {return new XMLHttpRequest()} - ) || false; - }, - - activeRequestCount: 0 -} - -Ajax.Responders = { - responders: [], - - _each: function(iterator) { - this.responders._each(iterator); - }, - - register: function(responderToAdd) { - if (!this.include(responderToAdd)) - this.responders.push(responderToAdd); - }, - - unregister: function(responderToRemove) { - this.responders = this.responders.without(responderToRemove); - }, - - dispatch: function(callback, request, transport, json) { - this.each(function(responder) { - if (responder[callback] && typeof responder[callback] == 'function') { - try { - responder[callback].apply(responder, [request, transport, json]); - } catch (e) {} - } - }); - } -}; - -Object.extend(Ajax.Responders, Enumerable); - -Ajax.Responders.register({ - onCreate: function() { - Ajax.activeRequestCount++; - }, - - onComplete: function() { - Ajax.activeRequestCount--; - } -}); - -Ajax.Base = function() {}; -Ajax.Base.prototype = { - setOptions: function(options) { - this.options = { - method: 'post', - asynchronous: true, - parameters: '' - } - Object.extend(this.options, options || {}); - }, - - responseIsSuccess: function() { - return this.transport.status == undefined - || this.transport.status == 0 - || (this.transport.status >= 200 && this.transport.status < 300); - }, - - responseIsFailure: function() { - return !this.responseIsSuccess(); - } -} - -Ajax.Request = Class.create(); -Ajax.Request.Events = - ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete']; - -Ajax.Request.prototype = Object.extend(new Ajax.Base(), { - initialize: function(url, options) { - this.transport = Ajax.getTransport(); - this.setOptions(options); - this.request(url); - }, - - request: function(url) { - var parameters = this.options.parameters || ''; - if (parameters.length > 0) parameters += '&_='; - - try { - this.url = url; - if (this.options.method == 'get' && parameters.length > 0) - this.url += (this.url.match(/\?/) ? '&' : '?') + parameters; - - Ajax.Responders.dispatch('onCreate', this, this.transport); - - this.transport.open(this.options.method, this.url, - this.options.asynchronous); - - if (this.options.asynchronous) { - this.transport.onreadystatechange = this.onStateChange.bind(this); - setTimeout((function() {this.respondToReadyState(1)}).bind(this), 10); - } - - this.setRequestHeaders(); - - var body = this.options.postBody ? this.options.postBody : parameters; - this.transport.send(this.options.method == 'post' ? body : null); - - } catch (e) { - this.dispatchException(e); - } - }, - - setRequestHeaders: function() { - var requestHeaders = - ['X-Requested-With', 'XMLHttpRequest', - 'X-Prototype-Version', Prototype.Version]; - - if (this.options.method == 'post') { - requestHeaders.push('Content-type', - 'application/x-www-form-urlencoded'); - - /* Force "Connection: close" for Mozilla browsers to work around - * a bug where XMLHttpReqeuest sends an incorrect Content-length - * header. See Mozilla Bugzilla #246651. - */ - if (this.transport.overrideMimeType) - requestHeaders.push('Connection', 'close'); - } - - if (this.options.requestHeaders) - requestHeaders.push.apply(requestHeaders, this.options.requestHeaders); - - for (var i = 0; i < requestHeaders.length; i += 2) - this.transport.setRequestHeader(requestHeaders[i], requestHeaders[i+1]); - }, - - onStateChange: function() { - var readyState = this.transport.readyState; - if (readyState != 1) - this.respondToReadyState(this.transport.readyState); - }, - - header: function(name) { - try { - return this.transport.getResponseHeader(name); - } catch (e) {} - }, - - evalJSON: function() { - try { - return eval(this.header('X-JSON')); - } catch (e) {} - }, - - evalResponse: function() { - try { - return eval(this.transport.responseText); - } catch (e) { - this.dispatchException(e); - } - }, - - respondToReadyState: function(readyState) { - var event = Ajax.Request.Events[readyState]; - var transport = this.transport, json = this.evalJSON(); - - if (event == 'Complete') { - try { - (this.options['on' + this.transport.status] - || this.options['on' + (this.responseIsSuccess() ? 'Success' : 'Failure')] - || Prototype.emptyFunction)(transport, json); - } catch (e) { - this.dispatchException(e); - } - - if ((this.header('Content-type') || '').match(/^text\/javascript/i)) - this.evalResponse(); - } - - try { - (this.options['on' + event] || Prototype.emptyFunction)(transport, json); - Ajax.Responders.dispatch('on' + event, this, transport, json); - } catch (e) { - this.dispatchException(e); - } - - /* Avoid memory leak in MSIE: clean up the oncomplete event handler */ - if (event == 'Complete') - this.transport.onreadystatechange = Prototype.emptyFunction; - }, - - dispatchException: function(exception) { - (this.options.onException || Prototype.emptyFunction)(this, exception); - Ajax.Responders.dispatch('onException', this, exception); - } -}); - -Ajax.Updater = Class.create(); - -Object.extend(Object.extend(Ajax.Updater.prototype, Ajax.Request.prototype), { - initialize: function(container, url, options) { - this.containers = { - success: container.success ? $(container.success) : $(container), - failure: container.failure ? $(container.failure) : - (container.success ? null : $(container)) - } - - this.transport = Ajax.getTransport(); - this.setOptions(options); - - var onComplete = this.options.onComplete || Prototype.emptyFunction; - this.options.onComplete = (function(transport, object) { - this.updateContent(); - onComplete(transport, object); - }).bind(this); - - this.request(url); - }, - - updateContent: function() { - var receiver = this.responseIsSuccess() ? - this.containers.success : this.containers.failure; - var response = this.transport.responseText; - - if (!this.options.evalScripts) - response = response.stripScripts(); - - if (receiver) { - if (this.options.insertion) { - new this.options.insertion(receiver, response); - } else { - Element.update(receiver, response); - } - } - - if (this.responseIsSuccess()) { - if (this.onComplete) - setTimeout(this.onComplete.bind(this), 10); - } - } -}); - -Ajax.PeriodicalUpdater = Class.create(); -Ajax.PeriodicalUpdater.prototype = Object.extend(new Ajax.Base(), { - initialize: function(container, url, options) { - this.setOptions(options); - this.onComplete = this.options.onComplete; - - this.frequency = (this.options.frequency || 2); - this.decay = (this.options.decay || 1); - - this.updater = {}; - this.container = container; - this.url = url; - - this.start(); - }, - - start: function() { - this.options.onComplete = this.updateComplete.bind(this); - this.onTimerEvent(); - }, - - stop: function() { - this.updater.onComplete = undefined; - clearTimeout(this.timer); - (this.onComplete || Prototype.emptyFunction).apply(this, arguments); - }, - - updateComplete: function(request) { - if (this.options.decay) { - this.decay = (request.responseText == this.lastText ? - this.decay * this.options.decay : 1); - - this.lastText = request.responseText; - } - this.timer = setTimeout(this.onTimerEvent.bind(this), - this.decay * this.frequency * 1000); - }, - - onTimerEvent: function() { - this.updater = new Ajax.Updater(this.container, this.url, this.options); - } -}); -document.getElementsByClassName = function(className, parentElement) { - var children = ($(parentElement) || document.body).getElementsByTagName('*'); - return $A(children).inject([], function(elements, child) { - if (child.className.match(new RegExp("(^|\\s)" + className + "(\\s|$)"))) - elements.push(child); - return elements; - }); -} - -/*--------------------------------------------------------------------------*/ - -if (!window.Element) { - var Element = new Object(); -} - -Object.extend(Element, { - visible: function(element) { - return $(element).style.display != 'none'; - }, - - toggle: function() { - for (var i = 0; i < arguments.length; i++) { - var element = $(arguments[i]); - Element[Element.visible(element) ? 'hide' : 'show'](element); - } - }, - - hide: function() { - for (var i = 0; i < arguments.length; i++) { - var element = $(arguments[i]); - element.style.display = 'none'; - } - }, - - show: function() { - for (var i = 0; i < arguments.length; i++) { - var element = $(arguments[i]); - element.style.display = ''; - } - }, - - remove: function(element) { - element = $(element); - element.parentNode.removeChild(element); - }, - - update: function(element, html) { - $(element).innerHTML = html.stripScripts(); - setTimeout(function() {html.evalScripts()}, 10); - }, - - getHeight: function(element) { - element = $(element); - return element.offsetHeight; - }, - - classNames: function(element) { - return new Element.ClassNames(element); - }, - - hasClassName: function(element, className) { - if (!(element = $(element))) return; - return Element.classNames(element).include(className); - }, - - addClassName: function(element, className) { - if (!(element = $(element))) return; - return Element.classNames(element).add(className); - }, - - removeClassName: function(element, className) { - if (!(element = $(element))) return; - return Element.classNames(element).remove(className); - }, - - // removes whitespace-only text node children - cleanWhitespace: function(element) { - element = $(element); - for (var i = 0; i < element.childNodes.length; i++) { - var node = element.childNodes[i]; - if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) - Element.remove(node); - } - }, - - empty: function(element) { - return $(element).innerHTML.match(/^\s*$/); - }, - - scrollTo: function(element) { - element = $(element); - var x = element.x ? element.x : element.offsetLeft, - y = element.y ? element.y : element.offsetTop; - window.scrollTo(x, y); - }, - - getStyle: function(element, style) { - element = $(element); - var value = element.style[style.camelize()]; - if (!value) { - if (document.defaultView && document.defaultView.getComputedStyle) { - var css = document.defaultView.getComputedStyle(element, null); - value = css ? css.getPropertyValue(style) : null; - } else if (element.currentStyle) { - value = element.currentStyle[style.camelize()]; - } - } - - if (window.opera && ['left', 'top', 'right', 'bottom'].include(style)) - if (Element.getStyle(element, 'position') == 'static') value = 'auto'; - - return value == 'auto' ? null : value; - }, - - setStyle: function(element, style) { - element = $(element); - for (name in style) - element.style[name.camelize()] = style[name]; - }, - - getDimensions: function(element) { - element = $(element); - if (Element.getStyle(element, 'display') != 'none') - return {width: element.offsetWidth, height: element.offsetHeight}; - - // All *Width and *Height properties give 0 on elements with display none, - // so enable the element temporarily - var els = element.style; - var originalVisibility = els.visibility; - var originalPosition = els.position; - els.visibility = 'hidden'; - els.position = 'absolute'; - els.display = ''; - var originalWidth = element.clientWidth; - var originalHeight = element.clientHeight; - els.display = 'none'; - els.position = originalPosition; - els.visibility = originalVisibility; - return {width: originalWidth, height: originalHeight}; - }, - - makePositioned: function(element) { - element = $(element); - var pos = Element.getStyle(element, 'position'); - if (pos == 'static' || !pos) { - element._madePositioned = true; - element.style.position = 'relative'; - // Opera returns the offset relative to the positioning context, when an - // element is position relative but top and left have not been defined - if (window.opera) { - element.style.top = 0; - element.style.left = 0; - } - } - }, - - undoPositioned: function(element) { - element = $(element); - if (element._madePositioned) { - element._madePositioned = undefined; - element.style.position = - element.style.top = - element.style.left = - element.style.bottom = - element.style.right = ''; - } - }, - - makeClipping: function(element) { - element = $(element); - if (element._overflow) return; - element._overflow = element.style.overflow; - if ((Element.getStyle(element, 'overflow') || 'visible') != 'hidden') - element.style.overflow = 'hidden'; - }, - - undoClipping: function(element) { - element = $(element); - if (element._overflow) return; - element.style.overflow = element._overflow; - element._overflow = undefined; - } -}); - -var Toggle = new Object(); -Toggle.display = Element.toggle; - -/*--------------------------------------------------------------------------*/ - -Abstract.Insertion = function(adjacency) { - this.adjacency = adjacency; -} - -Abstract.Insertion.prototype = { - initialize: function(element, content) { - this.element = $(element); - this.content = content.stripScripts(); - - if (this.adjacency && this.element.insertAdjacentHTML) { - try { - this.element.insertAdjacentHTML(this.adjacency, this.content); - } catch (e) { - if (this.element.tagName.toLowerCase() == 'tbody') { - this.insertContent(this.contentFromAnonymousTable()); - } else { - throw e; - } - } - } else { - this.range = this.element.ownerDocument.createRange(); - if (this.initializeRange) this.initializeRange(); - this.insertContent([this.range.createContextualFragment(this.content)]); - } - - setTimeout(function() {content.evalScripts()}, 10); - }, - - contentFromAnonymousTable: function() { - var div = document.createElement('div'); - div.innerHTML = '' + this.content + '
'; - return $A(div.childNodes[0].childNodes[0].childNodes); - } -} - -var Insertion = new Object(); - -Insertion.Before = Class.create(); -Insertion.Before.prototype = Object.extend(new Abstract.Insertion('beforeBegin'), { - initializeRange: function() { - this.range.setStartBefore(this.element); - }, - - insertContent: function(fragments) { - fragments.each((function(fragment) { - this.element.parentNode.insertBefore(fragment, this.element); - }).bind(this)); - } -}); - -Insertion.Top = Class.create(); -Insertion.Top.prototype = Object.extend(new Abstract.Insertion('afterBegin'), { - initializeRange: function() { - this.range.selectNodeContents(this.element); - this.range.collapse(true); - }, - - insertContent: function(fragments) { - fragments.reverse(false).each((function(fragment) { - this.element.insertBefore(fragment, this.element.firstChild); - }).bind(this)); - } -}); - -Insertion.Bottom = Class.create(); -Insertion.Bottom.prototype = Object.extend(new Abstract.Insertion('beforeEnd'), { - initializeRange: function() { - this.range.selectNodeContents(this.element); - this.range.collapse(this.element); - }, - - insertContent: function(fragments) { - fragments.each((function(fragment) { - this.element.appendChild(fragment); - }).bind(this)); - } -}); - -Insertion.After = Class.create(); -Insertion.After.prototype = Object.extend(new Abstract.Insertion('afterEnd'), { - initializeRange: function() { - this.range.setStartAfter(this.element); - }, - - insertContent: function(fragments) { - fragments.each((function(fragment) { - this.element.parentNode.insertBefore(fragment, - this.element.nextSibling); - }).bind(this)); - } -}); - -/*--------------------------------------------------------------------------*/ - -Element.ClassNames = Class.create(); -Element.ClassNames.prototype = { - initialize: function(element) { - this.element = $(element); - }, - - _each: function(iterator) { - this.element.className.split(/\s+/).select(function(name) { - return name.length > 0; - })._each(iterator); - }, - - set: function(className) { - this.element.className = className; - }, - - add: function(classNameToAdd) { - if (this.include(classNameToAdd)) return; - this.set(this.toArray().concat(classNameToAdd).join(' ')); - }, - - remove: function(classNameToRemove) { - if (!this.include(classNameToRemove)) return; - this.set(this.select(function(className) { - return className != classNameToRemove; - }).join(' ')); - }, - - toString: function() { - return this.toArray().join(' '); - } -} - -Object.extend(Element.ClassNames.prototype, Enumerable); -var Field = { - clear: function() { - for (var i = 0; i < arguments.length; i++) - $(arguments[i]).value = ''; - }, - - focus: function(element) { - $(element).focus(); - }, - - present: function() { - for (var i = 0; i < arguments.length; i++) - if ($(arguments[i]).value == '') return false; - return true; - }, - - select: function(element) { - $(element).select(); - }, - - activate: function(element) { - element = $(element); - element.focus(); - if (element.select) - element.select(); - } -} - -/*--------------------------------------------------------------------------*/ - -var Form = { - serialize: function(form) { - var elements = Form.getElements($(form)); - var queryComponents = new Array(); - - for (var i = 0; i < elements.length; i++) { - var queryComponent = Form.Element.serialize(elements[i]); - if (queryComponent) - queryComponents.push(queryComponent); - } - - return queryComponents.join('&'); - }, - - getElements: function(form) { - form = $(form); - var elements = new Array(); - - for (tagName in Form.Element.Serializers) { - var tagElements = form.getElementsByTagName(tagName); - for (var j = 0; j < tagElements.length; j++) - elements.push(tagElements[j]); - } - return elements; - }, - - getInputs: function(form, typeName, name) { - form = $(form); - var inputs = form.getElementsByTagName('input'); - - if (!typeName && !name) - return inputs; - - var matchingInputs = new Array(); - for (var i = 0; i < inputs.length; i++) { - var input = inputs[i]; - if ((typeName && input.type != typeName) || - (name && input.name != name)) - continue; - matchingInputs.push(input); - } - - return matchingInputs; - }, - - disable: function(form) { - var elements = Form.getElements(form); - for (var i = 0; i < elements.length; i++) { - var element = elements[i]; - element.blur(); - element.disabled = 'true'; - } - }, - - enable: function(form) { - var elements = Form.getElements(form); - for (var i = 0; i < elements.length; i++) { - var element = elements[i]; - element.disabled = ''; - } - }, - - findFirstElement: function(form) { - return Form.getElements(form).find(function(element) { - return element.type != 'hidden' && !element.disabled && - ['input', 'select', 'textarea'].include(element.tagName.toLowerCase()); - }); - }, - - focusFirstElement: function(form) { - Field.activate(Form.findFirstElement(form)); - }, - - reset: function(form) { - $(form).reset(); - } -} - -Form.Element = { - serialize: function(element) { - element = $(element); - var method = element.tagName.toLowerCase(); - var parameter = Form.Element.Serializers[method](element); - - if (parameter) { - var key = encodeURIComponent(parameter[0]); - if (key.length == 0) return; - - if (parameter[1].constructor != Array) - parameter[1] = [parameter[1]]; - - return parameter[1].map(function(value) { - return key + '=' + encodeURIComponent(value); - }).join('&'); - } - }, - - getValue: function(element) { - element = $(element); - var method = element.tagName.toLowerCase(); - var parameter = Form.Element.Serializers[method](element); - - if (parameter) - return parameter[1]; - } -} - -Form.Element.Serializers = { - input: function(element) { - switch (element.type.toLowerCase()) { - case 'submit': - case 'hidden': - case 'password': - case 'text': - return Form.Element.Serializers.textarea(element); - case 'checkbox': - case 'radio': - return Form.Element.Serializers.inputSelector(element); - } - return false; - }, - - inputSelector: function(element) { - if (element.checked) - return [element.name, element.value]; - }, - - textarea: function(element) { - return [element.name, element.value]; - }, - - select: function(element) { - return Form.Element.Serializers[element.type == 'select-one' ? - 'selectOne' : 'selectMany'](element); - }, - - selectOne: function(element) { - var value = '', opt, index = element.selectedIndex; - if (index >= 0) { - opt = element.options[index]; - value = opt.value; - if (!value && !('value' in opt)) - value = opt.text; - } - return [element.name, value]; - }, - - selectMany: function(element) { - var value = new Array(); - for (var i = 0; i < element.length; i++) { - var opt = element.options[i]; - if (opt.selected) { - var optValue = opt.value; - if (!optValue && !('value' in opt)) - optValue = opt.text; - value.push(optValue); - } - } - return [element.name, value]; - } -} - -/*--------------------------------------------------------------------------*/ - -var $F = Form.Element.getValue; - -/*--------------------------------------------------------------------------*/ - -Abstract.TimedObserver = function() {} -Abstract.TimedObserver.prototype = { - initialize: function(element, frequency, callback) { - this.frequency = frequency; - this.element = $(element); - this.callback = callback; - - this.lastValue = this.getValue(); - this.registerCallback(); - }, - - registerCallback: function() { - setInterval(this.onTimerEvent.bind(this), this.frequency * 1000); - }, - - onTimerEvent: function() { - var value = this.getValue(); - if (this.lastValue != value) { - this.callback(this.element, value); - this.lastValue = value; - } - } -} - -Form.Element.Observer = Class.create(); -Form.Element.Observer.prototype = Object.extend(new Abstract.TimedObserver(), { - getValue: function() { - return Form.Element.getValue(this.element); - } -}); - -Form.Observer = Class.create(); -Form.Observer.prototype = Object.extend(new Abstract.TimedObserver(), { - getValue: function() { - return Form.serialize(this.element); - } -}); - -/*--------------------------------------------------------------------------*/ - -Abstract.EventObserver = function() {} -Abstract.EventObserver.prototype = { - initialize: function(element, callback) { - this.element = $(element); - this.callback = callback; - - this.lastValue = this.getValue(); - if (this.element.tagName.toLowerCase() == 'form') - this.registerFormCallbacks(); - else - this.registerCallback(this.element); - }, - - onElementEvent: function() { - var value = this.getValue(); - if (this.lastValue != value) { - this.callback(this.element, value); - this.lastValue = value; - } - }, - - registerFormCallbacks: function() { - var elements = Form.getElements(this.element); - for (var i = 0; i < elements.length; i++) - this.registerCallback(elements[i]); - }, - - registerCallback: function(element) { - if (element.type) { - switch (element.type.toLowerCase()) { - case 'checkbox': - case 'radio': - Event.observe(element, 'click', this.onElementEvent.bind(this)); - break; - case 'password': - case 'text': - case 'textarea': - case 'select-one': - case 'select-multiple': - Event.observe(element, 'change', this.onElementEvent.bind(this)); - break; - } - } - } -} - -Form.Element.EventObserver = Class.create(); -Form.Element.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), { - getValue: function() { - return Form.Element.getValue(this.element); - } -}); - -Form.EventObserver = Class.create(); -Form.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), { - getValue: function() { - return Form.serialize(this.element); - } -}); -if (!window.Event) { - var Event = new Object(); -} - -Object.extend(Event, { - KEY_BACKSPACE: 8, - KEY_TAB: 9, - KEY_RETURN: 13, - KEY_ESC: 27, - KEY_LEFT: 37, - KEY_UP: 38, - KEY_RIGHT: 39, - KEY_DOWN: 40, - KEY_DELETE: 46, - - element: function(event) { - return event.target || event.srcElement; - }, - - isLeftClick: function(event) { - return (((event.which) && (event.which == 1)) || - ((event.button) && (event.button == 1))); - }, - - pointerX: function(event) { - return event.pageX || (event.clientX + - (document.documentElement.scrollLeft || document.body.scrollLeft)); - }, - - pointerY: function(event) { - return event.pageY || (event.clientY + - (document.documentElement.scrollTop || document.body.scrollTop)); - }, - - stop: function(event) { - if (event.preventDefault) { - event.preventDefault(); - event.stopPropagation(); - } else { - event.returnValue = false; - event.cancelBubble = true; - } - }, - - // find the first node with the given tagName, starting from the - // node the event was triggered on; traverses the DOM upwards - findElement: function(event, tagName) { - var element = Event.element(event); - while (element.parentNode && (!element.tagName || - (element.tagName.toUpperCase() != tagName.toUpperCase()))) - element = element.parentNode; - return element; - }, - - observers: false, - - _observeAndCache: function(element, name, observer, useCapture) { - if (!this.observers) this.observers = []; - if (element.addEventListener) { - this.observers.push([element, name, observer, useCapture]); - element.addEventListener(name, observer, useCapture); - } else if (element.attachEvent) { - this.observers.push([element, name, observer, useCapture]); - element.attachEvent('on' + name, observer); - } - }, - - unloadCache: function() { - if (!Event.observers) return; - for (var i = 0; i < Event.observers.length; i++) { - Event.stopObserving.apply(this, Event.observers[i]); - Event.observers[i][0] = null; - } - Event.observers = false; - }, - - observe: function(elementParam, name, observer, useCapture) { - var element = $(elementParam); - useCapture = useCapture || false; - - if (name == 'keypress' && - (navigator.appVersion.match(/Konqueror|Safari|KHTML/) - || element.attachEvent)) - name = 'keydown'; - - this._observeAndCache(element, name, observer, useCapture); - }, - - stopObserving: function(elementParam, name, observer, useCapture) { - var element = $(elementParam); - useCapture = useCapture || false; - - if (name == 'keypress' && - (navigator.appVersion.match(/Konqueror|Safari|KHTML/) - || element.detachEvent)) - name = 'keydown'; - - if (element.removeEventListener) { - element.removeEventListener(name, observer, useCapture); - } else if (element.detachEvent) { - element.detachEvent('on' + name, observer); - } - } -}); - -/* prevent memory leaks in IE */ -Event.observe(window, 'unload', Event.unloadCache, false); -var Position = { - // set to true if needed, warning: firefox performance problems - // NOT neeeded for page scrolling, only if draggable contained in - // scrollable elements - includeScrollOffsets: false, - - // must be called before calling withinIncludingScrolloffset, every time the - // page is scrolled - prepare: function() { - this.deltaX = window.pageXOffset - || document.documentElement.scrollLeft - || document.body.scrollLeft - || 0; - this.deltaY = window.pageYOffset - || document.documentElement.scrollTop - || document.body.scrollTop - || 0; - }, - - realOffset: function(element) { - var valueT = 0, valueL = 0; - do { - valueT += element.scrollTop || 0; - valueL += element.scrollLeft || 0; - element = element.parentNode; - } while (element); - return [valueL, valueT]; - }, - - cumulativeOffset: function(element) { - var valueT = 0, valueL = 0; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - element = element.offsetParent; - } while (element); - return [valueL, valueT]; - }, - - positionedOffset: function(element) { - var valueT = 0, valueL = 0; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - element = element.offsetParent; - if (element) { - p = Element.getStyle(element, 'position'); - if (p == 'relative' || p == 'absolute') break; - } - } while (element); - return [valueL, valueT]; - }, - - offsetParent: function(element) { - if (element.offsetParent) return element.offsetParent; - if (element == document.body) return element; - - while ((element = element.parentNode) && element != document.body) - if (Element.getStyle(element, 'position') != 'static') - return element; - - return document.body; - }, - - // caches x/y coordinate pair to use with overlap - within: function(element, x, y) { - if (this.includeScrollOffsets) - return this.withinIncludingScrolloffsets(element, x, y); - this.xcomp = x; - this.ycomp = y; - this.offset = this.cumulativeOffset(element); - - return (y >= this.offset[1] && - y < this.offset[1] + element.offsetHeight && - x >= this.offset[0] && - x < this.offset[0] + element.offsetWidth); - }, - - withinIncludingScrolloffsets: function(element, x, y) { - var offsetcache = this.realOffset(element); - - this.xcomp = x + offsetcache[0] - this.deltaX; - this.ycomp = y + offsetcache[1] - this.deltaY; - this.offset = this.cumulativeOffset(element); - - return (this.ycomp >= this.offset[1] && - this.ycomp < this.offset[1] + element.offsetHeight && - this.xcomp >= this.offset[0] && - this.xcomp < this.offset[0] + element.offsetWidth); - }, - - // within must be called directly before - overlap: function(mode, element) { - if (!mode) return 0; - if (mode == 'vertical') - return ((this.offset[1] + element.offsetHeight) - this.ycomp) / - element.offsetHeight; - if (mode == 'horizontal') - return ((this.offset[0] + element.offsetWidth) - this.xcomp) / - element.offsetWidth; - }, - - clone: function(source, target) { - source = $(source); - target = $(target); - target.style.position = 'absolute'; - var offsets = this.cumulativeOffset(source); - target.style.top = offsets[1] + 'px'; - target.style.left = offsets[0] + 'px'; - target.style.width = source.offsetWidth + 'px'; - target.style.height = source.offsetHeight + 'px'; - }, - - page: function(forElement) { - var valueT = 0, valueL = 0; - - var element = forElement; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - - // Safari fix - if (element.offsetParent==document.body) - if (Element.getStyle(element,'position')=='absolute') break; - - } while (element = element.offsetParent); - - element = forElement; - do { - valueT -= element.scrollTop || 0; - valueL -= element.scrollLeft || 0; - } while (element = element.parentNode); - - return [valueL, valueT]; - }, - - clone: function(source, target) { - var options = Object.extend({ - setLeft: true, - setTop: true, - setWidth: true, - setHeight: true, - offsetTop: 0, - offsetLeft: 0 - }, arguments[2] || {}) - - // find page position of source - source = $(source); - var p = Position.page(source); - - // find coordinate system to use - target = $(target); - var delta = [0, 0]; - var parent = null; - // delta [0,0] will do fine with position: fixed elements, - // position:absolute needs offsetParent deltas - if (Element.getStyle(target,'position') == 'absolute') { - parent = Position.offsetParent(target); - delta = Position.page(parent); - } - - // correct by body offsets (fixes Safari) - if (parent == document.body) { - delta[0] -= document.body.offsetLeft; - delta[1] -= document.body.offsetTop; - } - - // set position - if(options.setLeft) target.style.left = (p[0] - delta[0] + options.offsetLeft) + 'px'; - if(options.setTop) target.style.top = (p[1] - delta[1] + options.offsetTop) + 'px'; - if(options.setWidth) target.style.width = source.offsetWidth + 'px'; - if(options.setHeight) target.style.height = source.offsetHeight + 'px'; - }, - - absolutize: function(element) { - element = $(element); - if (element.style.position == 'absolute') return; - Position.prepare(); - - var offsets = Position.positionedOffset(element); - var top = offsets[1]; - var left = offsets[0]; - var width = element.clientWidth; - var height = element.clientHeight; - - element._originalLeft = left - parseFloat(element.style.left || 0); - element._originalTop = top - parseFloat(element.style.top || 0); - element._originalWidth = element.style.width; - element._originalHeight = element.style.height; - - element.style.position = 'absolute'; - element.style.top = top + 'px';; - element.style.left = left + 'px';; - element.style.width = width + 'px';; - element.style.height = height + 'px';; - }, - - relativize: function(element) { - element = $(element); - if (element.style.position == 'relative') return; - Position.prepare(); - - element.style.position = 'relative'; - var top = parseFloat(element.style.top || 0) - (element._originalTop || 0); - var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0); - - element.style.top = top + 'px'; - element.style.left = left + 'px'; - element.style.height = element._originalHeight; - element.style.width = element._originalWidth; - } -} - -// Safari returns margins on body which is incorrect if the child is absolutely -// positioned. For performance reasons, redefine Position.cumulativeOffset for -// KHTML/WebKit only. -if (/Konqueror|Safari|KHTML/.test(navigator.userAgent)) { - Position.cumulativeOffset = function(element) { - var valueT = 0, valueL = 0; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - if (element.offsetParent == document.body) - if (Element.getStyle(element, 'position') == 'absolute') break; - - element = element.offsetParent; - } while (element); - - return [valueL, valueT]; - } -} diff --git a/public/lib/Rico/Color.js b/public/lib/Rico/Color.js deleted file mode 100644 index e61ae2942..000000000 --- a/public/lib/Rico/Color.js +++ /dev/null @@ -1,232 +0,0 @@ -Rico.Color = Class.create(); - -Rico.Color.prototype = { - - initialize: function(red, green, blue) { - this.rgb = { r: red, g : green, b : blue }; - }, - - setRed: function(r) { - this.rgb.r = r; - }, - - setGreen: function(g) { - this.rgb.g = g; - }, - - setBlue: function(b) { - this.rgb.b = b; - }, - - setHue: function(h) { - - // get an HSB model, and set the new hue... - var hsb = this.asHSB(); - hsb.h = h; - - // convert back to RGB... - this.rgb = Rico.Color.HSBtoRGB(hsb.h, hsb.s, hsb.b); - }, - - setSaturation: function(s) { - // get an HSB model, and set the new hue... - var hsb = this.asHSB(); - hsb.s = s; - - // convert back to RGB and set values... - this.rgb = Rico.Color.HSBtoRGB(hsb.h, hsb.s, hsb.b); - }, - - setBrightness: function(b) { - // get an HSB model, and set the new hue... - var hsb = this.asHSB(); - hsb.b = b; - - // convert back to RGB and set values... - this.rgb = Rico.Color.HSBtoRGB( hsb.h, hsb.s, hsb.b ); - }, - - darken: function(percent) { - var hsb = this.asHSB(); - this.rgb = Rico.Color.HSBtoRGB(hsb.h, hsb.s, Math.max(hsb.b - percent,0)); - }, - - brighten: function(percent) { - var hsb = this.asHSB(); - this.rgb = Rico.Color.HSBtoRGB(hsb.h, hsb.s, Math.min(hsb.b + percent,1)); - }, - - blend: function(other) { - this.rgb.r = Math.floor((this.rgb.r + other.rgb.r)/2); - this.rgb.g = Math.floor((this.rgb.g + other.rgb.g)/2); - this.rgb.b = Math.floor((this.rgb.b + other.rgb.b)/2); - }, - - isBright: function() { - var hsb = this.asHSB(); - return this.asHSB().b > 0.5; - }, - - isDark: function() { - return ! this.isBright(); - }, - - asRGB: function() { - return "rgb(" + this.rgb.r + "," + this.rgb.g + "," + this.rgb.b + ")"; - }, - - asHex: function() { - return "#" + this.rgb.r.toColorPart() + this.rgb.g.toColorPart() + this.rgb.b.toColorPart(); - }, - - asHSB: function() { - return Rico.Color.RGBtoHSB(this.rgb.r, this.rgb.g, this.rgb.b); - }, - - toString: function() { - return this.asHex(); - } - -}; - -Rico.Color.createFromHex = function(hexCode) { - if(hexCode.length==4) { - var shortHexCode = hexCode; - var hexCode = '#'; - for(var i=1;i<4;i++) hexCode += (shortHexCode.charAt(i) + -shortHexCode.charAt(i)); - } - if ( hexCode.indexOf('#') == 0 ) - hexCode = hexCode.substring(1); - var red = hexCode.substring(0,2); - var green = hexCode.substring(2,4); - var blue = hexCode.substring(4,6); - return new Rico.Color( parseInt(red,16), parseInt(green,16), parseInt(blue,16) ); -} - -/** - * Factory method for creating a color from the background of - * an HTML element. - */ -Rico.Color.createColorFromBackground = function(elem) { - - var actualColor = RicoUtil.getElementsComputedStyle($(elem), "backgroundColor", "background-color"); - - if ( actualColor == "transparent" && elem.parentNode ) - return Rico.Color.createColorFromBackground(elem.parentNode); - - if ( actualColor == null ) - return new Rico.Color(255,255,255); - - if ( actualColor.indexOf("rgb(") == 0 ) { - var colors = actualColor.substring(4, actualColor.length - 1 ); - var colorArray = colors.split(","); - return new Rico.Color( parseInt( colorArray[0] ), - parseInt( colorArray[1] ), - parseInt( colorArray[2] ) ); - - } - else if ( actualColor.indexOf("#") == 0 ) { - return Rico.Color.createFromHex(actualColor); - } - else - return new Rico.Color(255,255,255); -} - -Rico.Color.HSBtoRGB = function(hue, saturation, brightness) { - - var red = 0; - var green = 0; - var blue = 0; - - if (saturation == 0) { - red = parseInt(brightness * 255.0 + 0.5); - green = red; - blue = red; - } - else { - var h = (hue - Math.floor(hue)) * 6.0; - var f = h - Math.floor(h); - var p = brightness * (1.0 - saturation); - var q = brightness * (1.0 - saturation * f); - var t = brightness * (1.0 - (saturation * (1.0 - f))); - - switch (parseInt(h)) { - case 0: - red = (brightness * 255.0 + 0.5); - green = (t * 255.0 + 0.5); - blue = (p * 255.0 + 0.5); - break; - case 1: - red = (q * 255.0 + 0.5); - green = (brightness * 255.0 + 0.5); - blue = (p * 255.0 + 0.5); - break; - case 2: - red = (p * 255.0 + 0.5); - green = (brightness * 255.0 + 0.5); - blue = (t * 255.0 + 0.5); - break; - case 3: - red = (p * 255.0 + 0.5); - green = (q * 255.0 + 0.5); - blue = (brightness * 255.0 + 0.5); - break; - case 4: - red = (t * 255.0 + 0.5); - green = (p * 255.0 + 0.5); - blue = (brightness * 255.0 + 0.5); - break; - case 5: - red = (brightness * 255.0 + 0.5); - green = (p * 255.0 + 0.5); - blue = (q * 255.0 + 0.5); - break; - } - } - - return { r : parseInt(red), g : parseInt(green) , b : parseInt(blue) }; -} - -Rico.Color.RGBtoHSB = function(r, g, b) { - - var hue; - var saturation; - var brightness; - - var cmax = (r > g) ? r : g; - if (b > cmax) - cmax = b; - - var cmin = (r < g) ? r : g; - if (b < cmin) - cmin = b; - - brightness = cmax / 255.0; - if (cmax != 0) - saturation = (cmax - cmin)/cmax; - else - saturation = 0; - - if (saturation == 0) - hue = 0; - else { - var redc = (cmax - r)/(cmax - cmin); - var greenc = (cmax - g)/(cmax - cmin); - var bluec = (cmax - b)/(cmax - cmin); - - if (r == cmax) - hue = bluec - greenc; - else if (g == cmax) - hue = 2.0 + redc - bluec; - else - hue = 4.0 + greenc - redc; - - hue = hue / 6.0; - if (hue < 0) - hue = hue + 1.0; - } - - return { h : hue, s : saturation, b : brightness }; -} - diff --git a/public/lib/Rico/Corner.js b/public/lib/Rico/Corner.js deleted file mode 100644 index b3a2970a1..000000000 --- a/public/lib/Rico/Corner.js +++ /dev/null @@ -1,314 +0,0 @@ -/** -* -* Copyright 2005 Sabre Airline Solutions -* -* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this -* file except in compliance with the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software distributed under the -* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, -* either express or implied. See the License for the specific language governing permissions -* and limitations under the License. -**/ - - -var Rico = new Object(); -Rico.Corner = { - - round: function(e, options) { - var e = $(e); - this._setOptions(options); - - var color = this.options.color; - if ( this.options.color == "fromElement" ) - color = this._background(e); - - var bgColor = this.options.bgColor; - if ( this.options.bgColor == "fromParent" ) - bgColor = this._background(e.offsetParent); - - this._roundCornersImpl(e, color, bgColor); - }, - - /** This is a helper function to change the background - * color of
that has had Rico rounded corners added. - * - * It seems we cannot just set the background color for the - * outer
so each element used to create the - * corners must have its background color set individually. - * - * @param {DOM} theDiv - A child of the outer
that was - * supplied to the `round` method. - * - * @param {str} newColor - The new background color to use. - */ - changeColor: function(theDiv, newColor) { - - theDiv.style.backgroundColor = newColor; - - var spanElements = theDiv.parentNode.getElementsByTagName("span"); - - for (var currIdx = 0; currIdx < spanElements.length; currIdx++) { - spanElements[currIdx].style.backgroundColor = newColor; - } - }, - - - /** This is a helper function to change the background - * opacity of
that has had Rico rounded corners added. - * - * See changeColor (above) for algorithm explanation - * - * @param {DOM} theDiv A child of the outer
that was - * supplied to the `round` method. - * - * @param {int} newOpacity The new opacity to use (0-1). - */ - changeOpacity: function(theDiv, newOpacity) { - - var mozillaOpacity = newOpacity; - var ieOpacity = 'alpha(opacity=' + newOpacity * 100 + ')'; - - theDiv.style.opacity = mozillaOpacity; - theDiv.style.filter = ieOpacity; - - var spanElements = theDiv.parentNode.getElementsByTagName("span"); - - for (var currIdx = 0; currIdx < spanElements.length; currIdx++) { - spanElements[currIdx].style.opacity = mozillaOpacity; - spanElements[currIdx].style.filter = ieOpacity; - } - - }, - - /** this function takes care of redoing the rico cornering - * - * you can't just call updateRicoCorners() again and pass it a - * new options string. you have to first remove the divs that - * rico puts on top and below the content div. - * - * @param {DOM} theDiv - A child of the outer
that was - * supplied to the `round` method. - * - * @param {Array} options - list of options - */ - reRound: function(theDiv, options) { - - var topRico = theDiv.parentNode.childNodes[0]; - //theDiv would be theDiv.parentNode.childNodes[1] - var bottomRico = theDiv.parentNode.childNodes[2]; - - theDiv.parentNode.removeChild(topRico); - theDiv.parentNode.removeChild(bottomRico); - - this.round(theDiv.parentNode, options); - }, - - _roundCornersImpl: function(e, color, bgColor) { - if(this.options.border) - this._renderBorder(e,bgColor); - if(this._isTopRounded()) - this._roundTopCorners(e,color,bgColor); - if(this._isBottomRounded()) - this._roundBottomCorners(e,color,bgColor); - }, - - _renderBorder: function(el,bgColor) { - var borderValue = "1px solid " + this._borderColor(bgColor); - var borderL = "border-left: " + borderValue; - var borderR = "border-right: " + borderValue; - var style = "style='" + borderL + ";" + borderR + "'"; - el.innerHTML = "
" + el.innerHTML + "
" - }, - - _roundTopCorners: function(el, color, bgColor) { - var corner = this._createCorner(bgColor); - for(var i=0 ; i < this.options.numSlices ; i++ ) - corner.appendChild(this._createCornerSlice(color,bgColor,i,"top")); - el.style.paddingTop = 0; - el.insertBefore(corner,el.firstChild); - }, - - _roundBottomCorners: function(el, color, bgColor) { - var corner = this._createCorner(bgColor); - for(var i=(this.options.numSlices-1) ; i >= 0 ; i-- ) - corner.appendChild(this._createCornerSlice(color,bgColor,i,"bottom")); - el.style.paddingBottom = 0; - el.appendChild(corner); - }, - - _createCorner: function(bgColor) { - var corner = document.createElement("div"); - corner.style.backgroundColor = (this._isTransparent() ? "transparent" : bgColor); - return corner; - }, - - _createCornerSlice: function(color,bgColor, n, position) { - var slice = document.createElement("span"); - - var inStyle = slice.style; - inStyle.backgroundColor = color; - inStyle.display = "block"; - inStyle.height = "1px"; - inStyle.overflow = "hidden"; - inStyle.fontSize = "1px"; - - var borderColor = this._borderColor(color,bgColor); - if ( this.options.border && n == 0 ) { - inStyle.borderTopStyle = "solid"; - inStyle.borderTopWidth = "1px"; - inStyle.borderLeftWidth = "0px"; - inStyle.borderRightWidth = "0px"; - inStyle.borderBottomWidth = "0px"; - inStyle.height = "0px"; // assumes css compliant box model - inStyle.borderColor = borderColor; - } - else if(borderColor) { - inStyle.borderColor = borderColor; - inStyle.borderStyle = "solid"; - inStyle.borderWidth = "0px 1px"; - } - - if ( !this.options.compact && (n == (this.options.numSlices-1)) ) - inStyle.height = "2px"; - - this._setMargin(slice, n, position); - this._setBorder(slice, n, position); - return slice; - }, - - _setOptions: function(options) { - this.options = { - corners : "all", - color : "fromElement", - bgColor : "fromParent", - blend : true, - border : false, - compact : false - } - Object.extend(this.options, options || {}); - - this.options.numSlices = this.options.compact ? 2 : 4; - if ( this._isTransparent() ) - this.options.blend = false; - }, - - _whichSideTop: function() { - if ( this._hasString(this.options.corners, "all", "top") ) - return ""; - - if ( this.options.corners.indexOf("tl") >= 0 && this.options.corners.indexOf("tr") >= 0 ) - return ""; - - if (this.options.corners.indexOf("tl") >= 0) - return "left"; - else if (this.options.corners.indexOf("tr") >= 0) - return "right"; - return ""; - }, - - _whichSideBottom: function() { - if ( this._hasString(this.options.corners, "all", "bottom") ) - return ""; - - if ( this.options.corners.indexOf("bl")>=0 && this.options.corners.indexOf("br")>=0 ) - return ""; - - if(this.options.corners.indexOf("bl") >=0) - return "left"; - else if(this.options.corners.indexOf("br")>=0) - return "right"; - return ""; - }, - - _borderColor : function(color,bgColor) { - if ( color == "transparent" ) - return bgColor; - else if ( this.options.border ) - return this.options.border; - else if ( this.options.blend ) - return this._blend( bgColor, color ); - else - return ""; - }, - - - _setMargin: function(el, n, corners) { - var marginSize = this._marginSize(n); - var whichSide = corners == "top" ? this._whichSideTop() : this._whichSideBottom(); - - if ( whichSide == "left" ) { - el.style.marginLeft = marginSize + "px"; el.style.marginRight = "0px"; - } - else if ( whichSide == "right" ) { - el.style.marginRight = marginSize + "px"; el.style.marginLeft = "0px"; - } - else { - el.style.marginLeft = marginSize + "px"; el.style.marginRight = marginSize + "px"; - } - }, - - _setBorder: function(el,n,corners) { - var borderSize = this._borderSize(n); - var whichSide = corners == "top" ? this._whichSideTop() : this._whichSideBottom(); - if ( whichSide == "left" ) { - el.style.borderLeftWidth = borderSize + "px"; el.style.borderRightWidth = "0px"; - } - else if ( whichSide == "right" ) { - el.style.borderRightWidth = borderSize + "px"; el.style.borderLeftWidth = "0px"; - } - else { - el.style.borderLeftWidth = borderSize + "px"; el.style.borderRightWidth = borderSize + "px"; - } - if (this.options.border != false) - el.style.borderLeftWidth = borderSize + "px"; el.style.borderRightWidth = borderSize + "px"; - }, - - _marginSize: function(n) { - if ( this._isTransparent() ) - return 0; - - var marginSizes = [ 5, 3, 2, 1 ]; - var blendedMarginSizes = [ 3, 2, 1, 0 ]; - var compactMarginSizes = [ 2, 1 ]; - var smBlendedMarginSizes = [ 1, 0 ]; - - if ( this.options.compact && this.options.blend ) - return smBlendedMarginSizes[n]; - else if ( this.options.compact ) - return compactMarginSizes[n]; - else if ( this.options.blend ) - return blendedMarginSizes[n]; - else - return marginSizes[n]; - }, - - _borderSize: function(n) { - var transparentBorderSizes = [ 5, 3, 2, 1 ]; - var blendedBorderSizes = [ 2, 1, 1, 1 ]; - var compactBorderSizes = [ 1, 0 ]; - var actualBorderSizes = [ 0, 2, 0, 0 ]; - - if ( this.options.compact && (this.options.blend || this._isTransparent()) ) - return 1; - else if ( this.options.compact ) - return compactBorderSizes[n]; - else if ( this.options.blend ) - return blendedBorderSizes[n]; - else if ( this.options.border ) - return actualBorderSizes[n]; - else if ( this._isTransparent() ) - return transparentBorderSizes[n]; - return 0; - }, - - _hasString: function(str) { for(var i=1 ; i= 0) return true; return false; }, - _blend: function(c1, c2) { var cc1 = Rico.Color.createFromHex(c1); cc1.blend(Rico.Color.createFromHex(c2)); return cc1; }, - _background: function(el) { try { return Rico.Color.createColorFromBackground(el).asHex(); } catch(err) { return "#ffffff"; } }, - _isTransparent: function() { return this.options.color == "transparent"; }, - _isTopRounded: function() { return this._hasString(this.options.corners, "all", "top", "tl", "tr"); }, - _isBottomRounded: function() { return this._hasString(this.options.corners, "all", "bottom", "bl", "br"); }, - _hasSingleTextChild: function(el) { return el.childNodes.length == 1 && el.childNodes[0].nodeType == 3; } -} diff --git a/public/openlayers/OpenLayers.js b/public/openlayers/OpenLayers.js index 252a25acc..ee2469999 100644 --- a/public/openlayers/OpenLayers.js +++ b/public/openlayers/OpenLayers.js @@ -441,7 +441,18 @@ if(!this.element.offsets){this.element.offsets=OpenLayers.Util.pagePosition(this return new OpenLayers.Pixel((evt.clientX+this.element.scrolls[0])-this.element.offsets[0] -this.element.lefttop[0],(evt.clientY+this.element.scrolls[1])-this.element.offsets[1] -this.element.lefttop[1]);},CLASS_NAME:"OpenLayers.Events"});OpenLayers.Format=OpenLayers.Class({options:null,externalProjection:null,internalProjection:null,data:null,keepData:false,initialize:function(options){OpenLayers.Util.extend(this,options);this.options=options;},destroy:function(){},read:function(data){OpenLayers.Console.userError(OpenLayers.i18n("readNotImplemented"));},write:function(object){OpenLayers.Console.userError(OpenLayers.i18n("writeNotImplemented"));},CLASS_NAME:"OpenLayers.Format"});OpenLayers.Lang.ca={'unhandledRequest':"Resposta a petició no gestionada ${statusText}",'permalink':"Enllaç permanent",'overlays':"Capes addicionals",'baseLayer':"Capa Base",'sameProjection':"El mapa de referència només funciona si té la mateixa projecció que el mapa principal",'readNotImplemented':"Lectura no implementada.",'writeNotImplemented':"Escriptura no implementada.",'noFID':"No es pot actualitzar un element per al que no existeix FID.",'errorLoadingGML':"Error caregant el fitxer GML ${url}",'browserNotSupported':"El seu navegador no suporta renderització vectorial. Els renderitzadors suportats actualmente són:\n${renderers}",'componentShouldBe':"addFeatures : el component ha de ser de tipus ${geomType}",'getFeatureError':"getFeatureFromEvent ha estat cridat a una capa sense renderizador. Això normalment vol dir que "+"s'ha eliminat una capa, però no el handler associat a ella.",'minZoomLevelError':"La propietat minZoomLevel s'ha d'utilitzar només "+"amb les capes que tenen FixedZoomLevels. El fet que "+"una capa wfs comprovi minZoomLevel és una reliquia del "+"passat. No podem, però, eliminar-la sense trencar "+"les aplicacions d'OpenLayers que en puguin dependre. "+"Així doncs estem fent-la obsoleta -- la comprovació "+"minZoomLevel s'eliminarà a la versió 3.0. Feu servir "+"els paràmetres min/max resolution en substitució, tal com es descriu aquí: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transacció WFS: CORRECTA ${response}",'commitFailed':"Transacció WFS: HA FALLAT ${response}",'googleWarning':"La capa Google no s'ha pogut carregar correctament.

"+"Per evitar aquest missatge, sel·leccioneu una nova Capa Base "+"al gestor de capes de la cantonada superior dreta.

"+"Probablement això és degut a que l'script de la biblioteca de "+"Google Maps no ha estat inclòs a la vostra pàgina, o no "+"conté la clau de l'API correcta per a la vostra adreça.

"+"Desenvolupadors: Per obtenir consells sobre com fer anar això, "+"féu clic aquí",'getLayerWarning':"Per evitar aquest missatge, sel·leccioneu una nova Capa Base "+"al gestor de capes de la cantonada superior dreta.

"+"Probablement això és degut a que l'script de la biblioteca "+"${layerLib} "+"no ha estat inclòs a la vostra pàgina.

"+"Desenvolupadors: Per obtenir consells sobre com fer anar això, "+"féu clic aquí",'scale':"Escala = 1 : ${scaleDenom}",'layerAlreadyAdded':"Heu intentat afegir la capa: ${layerName} al mapa, pero ja ha estat afegida anteriorment",'reprojectDeprecated':"Esteu fent servir l'opció 'reproject' a la capa "+"${layerName}. Aquesta opció és obsoleta: el seu ús fou concebut "+"per suportar la visualització de dades sobre mapes base comercials, "+"però aquesta funcionalitat s'hauria d'assolir ara mitjançant el suport "+"de la projecció Spherical Mercator. Més informació disponible a "+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Aquest mètode és obsolet i s'eliminará a la versió 3.0. "+"Si us plau feu servir em mètode alternatiu ${newMethod}.",'boundsAddError':"Ha de proporcionar els valors x i y a la funció add.",'lonlatAddError':"Ha de proporcionar els valors lon i lat a la funció add.",'pixelAddError':"Ha de proporcionar els valors x i y a la funció add.",'unsupportedGeometryType':"Tipus de geometria no suportada: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition ha fallat: l'element amb id ${elemId} pot estar fora de lloc.",'filterEvaluateNotImplemented':"evaluate no està implementat per aquest tipus de filtre.",'end':''};OpenLayers.Lang.en={'unhandledRequest':"Unhandled request return ${statusText}",'permalink':"Permalink",'overlays':"Overlays",'baseLayer':"Base Layer",'sameProjection':"The overview map only works when it is in the same projection as the main map",'readNotImplemented':"Read not implemented.",'writeNotImplemented':"Write not implemented.",'noFID':"Can't update a feature for which there is no FID.",'errorLoadingGML':"Error in loading GML file ${url}",'browserNotSupported':"Your browser does not support vector rendering. Currently supported renderers are:\n${renderers}",'componentShouldBe':"addFeatures : component should be an ${geomType}",'getFeatureError':"getFeatureFromEvent called on layer with no renderer. This usually means you "+"destroyed a layer, but not some handler which is associated with it.",'minZoomLevelError':"The minZoomLevel property is only intended for use "+"with the FixedZoomLevels-descendent layers. That this "+"wfs layer checks for minZoomLevel is a relic of the"+"past. We cannot, however, remove it without possibly "+"breaking OL based applications that may depend on it."+" Therefore we are deprecating it -- the minZoomLevel "+"check below will be removed at 3.0. Please instead "+"use min/max resolution setting as described here: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS Transaction: SUCCESS ${response}",'commitFailed':"WFS Transaction: FAILED ${response}",'googleWarning':"The Google Layer was unable to load correctly.

"+"To get rid of this message, select a new BaseLayer "+"in the layer switcher in the upper-right corner.

"+"Most likely, this is because the Google Maps library "+"script was either not included, or does not contain the "+"correct API key for your site.

"+"Developers: For help getting this working correctly, "+"click here",'getLayerWarning':"The ${layerType} Layer was unable to load correctly.

"+"To get rid of this message, select a new BaseLayer "+"in the layer switcher in the upper-right corner.

"+"Most likely, this is because the ${layerLib} library "+"script was not correctly included.

"+"Developers: For help getting this working correctly, "+"click here",'scale':"Scale = 1 : ${scaleDenom}",'layerAlreadyAdded':"You tried to add the layer: ${layerName} to the map, but it has already been added",'reprojectDeprecated':"You are using the 'reproject' option "+"on the ${layerName} layer. This option is deprecated: "+"its use was designed to support displaying data over commercial "+"basemaps, but that functionality should now be achieved by using "+"Spherical Mercator support. More information is available from "+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"This method has been deprecated and will be removed in 3.0. "+"Please use ${newMethod} instead.",'boundsAddError':"You must pass both x and y values to the add function.",'lonlatAddError':"You must pass both lon and lat values to the add function.",'pixelAddError':"You must pass both x and y values to the add function.",'unsupportedGeometryType':"Unsupported geometry type: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition failed: element with id ${elemId} may be misplaced.",'end':'','filterEvaluateNotImplemented':"evaluate is not implemented for this filter type."};OpenLayers.Lang.es={'unhandledRequest':"Respuesta a petición no gestionada ${statusText}",'permalink':"Enlace permanente",'overlays':"Capas superpuestas",'baseLayer':"Capa Base",'sameProjection':"El mini mapa sólo funciona si está en la misma proyección que el mapa principal",'readNotImplemented':"Lectura no implementada.",'writeNotImplemented':"Escritura no implementada.",'noFID':"No se puede actualizar un elemento para el que no existe FID.",'errorLoadingGML':"Error cargando el fichero GML ${url}",'browserNotSupported':"Su navegador no soporta renderización vectorial. Los renderizadores soportados actualmente son:\n${renderers}",'componentShouldBe':"addFeatures : el componente debe ser del tipo ${geomType}",'getFeatureError':"getFeatureFromEvent llamado en una capa sin renderizador. Esto normalmente quiere decir que "+"se ha destruido una capa, pero no el manejador asociado a ella.",'minZoomLevelError':"La propiedad minZoomLevel debe sólo utilizarse "+"con las capas que tienen FixedZoomLevels. El hecho de que "+"una capa wfs compruebe minZoomLevel is una reliquia del "+"pasado. Sin embargo, no podemos eliminarla sin discontinuar "+"probablemente las aplicaciones OL que puedan depender de ello. "+"Así pues estamos haciéndolo obsoleto --la comprobación "+"minZoomLevel se eliminará en la versión 3.0. Utilice el ajuste "+"de resolution min/max en su lugar, tal como se describe aquí: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transacción WFS: ÉXITO ${response}",'commitFailed':"Transacción WFS: FALLÓ ${response}",'googleWarning':"La capa Google no pudo ser cargada correctamente.

"+"Para evitar este mensaje, seleccione una nueva Capa Base "+"en el selector de capas en la esquina superior derecha.

"+"Probablemente, esto se debe a que el script de la biblioteca de "+"Google Maps no fue correctamente incluido en su página, o no "+"contiene la clave del API correcta para su sitio.

"+"Desarrolladores: Para ayudar a hacer funcionar esto correctamente, "+"haga clic aquí",'getLayerWarning':"La capa ${layerType} no pudo ser cargada correctamente.

"+"Para evitar este mensaje, seleccione una nueva Capa Base "+"en el selector de capas en la esquina superior derecha.

"+"Probablemente, esto se debe a que el script de "+"la biblioteca ${layerLib} "+"no fue correctamente incluido en su página.

"+"Desarrolladores: Para ayudar a hacer funcionar esto correctamente, "+"haga clic aquí",'scale':"Escala = 1 : ${scaleDenom}",'layerAlreadyAdded':"Intentó añadir la capa: ${layerName} al mapa, pero ya había sido añadida previamente",'reprojectDeprecated':"Está usando la opción 'reproject' en la capa "+"${layerName}. Esta opción está obsoleta: su uso fue diseñado "+"para soportar la visualización de datos sobre mapas base comerciales, "+"pero esa funcionalidad debería conseguirse ahora mediante el soporte "+"de la proyección Spherical Mercator. Más información disponible en "+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Este método está obsoleto y se eliminará en la versión 3.0. "+"Por favor utilice el método ${newMethod} en su lugar.",'boundsAddError':"Debe proporcionar los valores x e y a la función add.",'lonlatAddError':"Debe proporcionar los valores lon y lat a la función add.",'pixelAddError':"Debe proporcionar los valores x e y a la función add.",'unsupportedGeometryType':"Tipo de geometría no soportada: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition falló: el elemento con id ${elemId} puede haberse colocado de manera errónea.",'filterEvaluateNotImplemented':"evaluate no está implementado para este tipo de filtro.",'end':''};OpenLayers.Lang.fr={'unhandledRequest':"Requête non gérée, retournant ${statusText}",'permalink':"Permalien",'overlays':"Calques",'baseLayer':"Calque de base",'sameProjection':"La carte de situation ne fonctionne que lorsque sa projection est la même que celle de la carte principale",'readNotImplemented':"Lecture non implémentée.",'writeNotImplemented':"Ecriture non implémentée.",'noFID':"Impossible de mettre à jour un objet sans identifiant (fid).",'errorLoadingGML':"Erreur au chargement du fichier GML ${url}",'browserNotSupported':"Votre navigateur ne supporte pas le rendu vectoriel. Les renderers actuellement supportés sont : \n${renderers}",'componentShouldBe':"addFeatures : le composant devrait être de type ${geomType}",'getFeatureError':"getFeatureFromEvent a été appelé sur un calque sans renderer. Cela signifie généralement que vous "+"avez détruit cette couche, mais que vous avez conservé un handler qui lui était associé.",'minZoomLevelError':"La propriété minZoomLevel doit seulement être utilisée "+"pour des couches FixedZoomLevels-descendent. Le fait que "+"cette couche WFS vérifie la présence de minZoomLevel "+"est une relique du passé. Nous ne pouvons toutefois la "+"supprimer sans casser des applications qui pourraient en dépendre."+" C'est pourquoi nous la déprécions -- la vérification du minZoomLevel "+"sera supprimée en version 3.0. A la place, merci d'utiliser "+"les paramètres de résolutions min/max tel que décrit sur : "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transaction WFS : SUCCES ${response}",'commitFailed':"Transaction WFS : ECHEC ${response}",'googleWarning':"La couche Google n'a pas été en mesure de se charger correctement.

"+"Pour supprimer ce message, choisissez une nouvelle BaseLayer "+"dans le sélecteur de couche en haut à droite.

"+"Cela est possiblement causé par la non-inclusion de la "+"librairie Google Maps, ou alors parce que la clé de l'API "+"ne correspond pas à votre site.

"+"Développeurs : pour savoir comment corriger ceci, "+"cliquez ici",'getLayerWarning':"La couche ${layerType} n'est pas en mesure de se charger correctement.

"+"Pour supprimer ce message, choisissez une nouvelle BaseLayer "+"dans le sélecteur de couche en haut à droite.

"+"Cela est possiblement causé par la non-inclusion de la "+"librairie ${layerLib}.

"+"Développeurs : pour savoir comment corriger ceci, "+"cliquez ici",'scale':"Echelle ~ 1 : ${scaleDenom}",'layerAlreadyAdded':"Vous avez essayé d'ajouter à la carte le calque : ${layerName}, mais il est déjà présent",'reprojectDeprecated':"Vous utilisez l'option 'reproject' "+"sur la couche ${layerName}. Cette option est dépréciée : "+"Son usage permettait d'afficher des données au dessus de couches raster commerciales."+"Cette fonctionalité est maintenant supportée en utilisant le support de la projection "+"Mercator Sphérique. Plus d'information est disponible sur "+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Cette méthode est dépréciée, et sera supprimée à la version 3.0. "+"Merci d'utiliser ${newMethod} à la place.",'boundsAddError':"Vous devez passer les deux valeurs x et y à la fonction add.",'lonlatAddError':"Vous devez passer les deux valeurs lon et lat à la fonction add.",'pixelAddError':"Vous devez passer les deux valeurs x et y à la fonction add.",'unsupportedGeometryType':"Type de géométrie non supporté : ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition a échoué: l'élément d'id ${elemId} pourrait être mal positionné.",'end':''};OpenLayers.Lang.it={'unhandledRequest':"Codice di ritorno della richiesta ${statusText}",'permalink':"Permalink",'overlays':"Overlays",'baseLayer':"Livello base",'sameProjection':"La mini mappa funziona solamente se ha la stessa proiezione della mappa principale",'readNotImplemented':"Lettura non implementata.",'writeNotImplemented':"Scrittura non implementata.",'noFID':"Impossibile aggiornare un elemento grafico che non abbia il FID.",'errorLoadingGML':"Errore nel caricamento del file GML ${url}",'browserNotSupported':"Il tuo browser non supporta il rendering vettoriale. I renderizzatore attualemnte supportati sono:\n${renderers}",'componentShouldBe':"addFeatures : il componente dovrebbe essere di tipo ${geomType}",'getFeatureError':"getFeatureFromEvent chiamata su di un livello senza renderizzatore. Ciò significa che "+"il livello è stato cancellato, ma non i gestori associati ad esso.",'minZoomLevelError':"La proprietà minZoomLevel è da utilizzare solamente "+"con livelli che abbiano FixedZoomLevels. Il fatto che "+"questo livello wfs controlli la proprietà minZoomLevel è "+"un retaggio del passato. Non possiamo comunque rimuoverla "+"senza rompere le vecchie applicazioni che dipendono su di essa."+"Quindi siamo costretti a deprecarla -- minZoomLevel "+"e sarà rimossa dalla vesione 3.0. Si prega di utilizzare i "+"settaggi di risoluzione min/max come descritto qui: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transazione WFS: SUCCESS ${response}",'commitFailed':"Transazione WFS: FAILED ${response}",'googleWarning':"Il livello Google non è riuscito a caricare correttamente.

"+"Per evitare questo messaggio, seleziona un nuovo BaseLayer "+"nel selettore di livelli nell'angolo in alto a destra.

"+"Più precisamente, ciò accade perchè la libreria Google Maps "+"non è stata inclusa nella pagina, oppure non contiene la "+"corretta API key per il tuo sito.

"+"Sviluppatori: Per aiuto su come farlo funzionare correttamente, "+"clicca qui",'getLayerWarning':"Il livello ${layerType} non è riuscito a caricare correttamente.

"+"Per evitare questo messaggio, seleziona un nuovo BaseLayer "+"nel selettore di livelli nell'angolo in alto a destra.

"+"Più precisamente, ciò accade perchè la libreria ${layerLib} "+"non è stata inclusa nella pagina.

"+"Sviluppatori: Per aiuto su come farlo funzionare correttamente, "+"clicca qui",'scale':"Scala = 1 : ${scaleDenom}",'layerAlreadyAdded':"Stai cercando di aggiungere il livello: ${layerName} alla mappa, ma tale livello è già stato aggiunto.",'reprojectDeprecated':"Stai utilizzando l'opzione 'reproject' sul livello ${layerName}. "+"Questa opzione è deprecata: il suo utilizzo è stato introdotto per"+"supportare il disegno dei dati sopra mappe commerciali, ma tale "+"funzionalità dovrebbe essere ottenuta tramite l'utilizzo della proiezione "+"Spherical Mercator. Per maggiori informazioni consultare qui "+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Questo metodo è stato deprecato e sarà rimosso dalla versione 3.0. "+"Si prega di utilizzare il metodo ${newMethod} in alternativa.",'boundsAddError':"Devi specificare i valori di x e y alla funzione add.",'lonlatAddError':"Devi specificare i valori di lon e lat alla funzione add.",'pixelAddError':"Devi specificare i valori di x e y alla funzione add.",'unsupportedGeometryType':"Tipo di geometria non supportata: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition fallita: l'elemento con id ${elemId} è posizionato in modo errato.",'end':''};OpenLayers.Lang["pt-BR"]={'unhandledRequest':"A requisição retornou um erro não tratado: ${statusText}",'permalink':"Link para essa página",'overlays':"Camadas de Sobreposição",'baseLayer':"Camada Base",'sameProjection':"O mapa de referência só funciona quando ele está na mesma projeção do mapa principal",'readNotImplemented':"Leitura não implementada.",'writeNotImplemented':"Escrita não implementada.",'noFID':"Não é possível atualizar uma feição que não tenha um FID.",'errorLoadingGML':"Erro ao carregar o arquivo GML ${url}",'browserNotSupported':"Seu navegador não suporta renderização de vetores. Os renderizadores suportados atualmente são:\n${renderers}",'componentShouldBe':"addFeatures: o componente deve ser do tipo ${geomType}",'getFeatureError':"getFeatureFromEvent foi executado mas nenhum renderizador foi encontrado. "+"Isso pode indicar que você destruiu uma camana, mas não o handler associado a ela.",'minZoomLevelError':"A propriedade minZoomLevel é de uso restrito das camadas "+"descendentes de FixedZoomLevels. A verificação dessa propriedade "+"pelas camadas wfs é um resíduo do passado. Não podemos, entretanto "+"não é possível removê-la sem possívelmente quebrar o funcionamento "+"de aplicações OL que possuem depência com ela. Portanto estamos "+"tornando seu uso obsoleto -- a verificação desse atributo será "+"removida na versão 3.0. Ao invés, use as opções de resolução "+"min/max como descrito em: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transação WFS : SUCESSO ${response}",'commitFailed':"Transação WFS : ERRO ${response}",'googleWarning':"Não foi possível carregar a camada Google corretamente.

"+"Para se livrar dessa mensagem, selecione uma nova Camada Base, "+"na ferramenta de alternação de camadas localização do canto "+"superior direito.

"+"Muito provavelmente, isso foi causado porque o script da "+"biblioteca do Google Maps não foi incluído, ou porque ele não "+"contém a chave correta da API para o seu site.

"+"Desenvolvedores: Para obter ajuda em solucionar esse problema "+"cliquem aqui",'getLayerWarning':"Não foi possível carregar a camada ${layerType} corretamente.

"+"Para se livrar dessa mensagem, selecione uma nova Camada Base, "+"na ferramenta de alternação de camadas localização do canto "+"superior direito.

"+"Muito provavelmente, isso foi causado porque o script da "+"biblioteca ${layerLib} não foi incluído corretamente.

"+"Desenvolvedores: Para obter ajuda em solucionar esse problema "+"cliquem aqui",'scale':"Escala = 1 : ${scaleDenom}",'layerAlreadyAdded':"Você tentou adicionar a camada: ${layerName} ao mapa, mas ela já foi adicionada",'reprojectDeprecated':"Você está usando a opção 'reproject' na camada ${layerName}. "+"Essa opção está obsoleta: seu uso foi projetado para suportar "+"a visualização de dados sobre bases de mapas comerciais, "+"entretanto essa funcionalidade deve agora ser alcançada usando "+"o suporte à projeção Mercator. Mais informação está disponível em: "+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Esse método está obsoleto e será removido na versão 3.0. "+"Ao invés, por favor use ${newMethod}.",'boundsAddError':"Você deve informar ambos os valores x e y para a função add.",'lonlatAddError':"Você deve informar ambos os valores lon e lat para a função add.",'pixelAddError':"Você deve informar ambos os valores x e y para a função add.",'unsupportedGeometryType':"Tipo geométrico não suportado: ${geomType}.",'pagePositionFailed':"OpenLayers.Util.pagePosition falhou: o elemento de id ${elemId} deve estar fora do lugar.",'end':''};OpenLayers.Lang["zh-CN"]={'unhandledRequest':"未处理的请求,返回值为 ${statusText}",'permalink':"永久链接",'overlays':"叠加层",'baseLayer':"基础图层",'sameProjection':"鹰眼地图只有在和主地图使用相同的投影的时候才能正常共工作",'readNotImplemented':"读取功能没有实现。",'writeNotImplemented':"写入功能没有实现。",'noFID':"无法更新feature,缺少FID。",'errorLoadingGML':"加载GML文件 ${url} 出现错误。",'browserNotSupported':"你使用的浏览器不支持矢量渲染。当前支持的渲染方式包括:\n${renderers}",'componentShouldBe':"addFeatures : 组件类型应该是 ${geomType}",'getFeatureError':"getFeatureFromEvent方法在一个没有渲染器的图层上被调用。 这通常意味着您"+"销毁了一个图层,但并未销毁其关联的handler。",'minZoomLevelError':"minZoomLevel属性仅适合用于"+"使用了固定缩放级别的图层。这个 "+"wfs 图层检查 minZoomLevel 是过去遗留下来的。"+"然而,我们不能移除它,"+"而破坏依赖于它的基于OL的应用程序。"+"因此,我们废除了它 -- minZoomLevel "+"将会在3.0中被移除。请改用 "+"min/max resolution 设置,参考:"+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS Transaction: 成功。 ${response}",'commitFailed':"WFS Transaction: 失败。 ${response}",'googleWarning':"Google图层不能正确加载。

"+"要消除这个信息,请在右上角的"+"图层控制面板中选择其他的基础图层。

"+"这种情况很可能是没有正确的包含Google地图脚本库,"+"或者是没有包含在你的站点上"+"使用的正确的Google Maps API密匙。

"+"开发者:获取使其正确工作的帮助信息,"+"点击这里",'getLayerWarning':"${layerType} 图层不能正确加载。

"+"要消除这个信息,请在右上角的"+"图层控制面板中选择其他的基础图层。

"+"这种情况很可能是没有正确的包含"+"${layerLib} 脚本库。

"+"开发者:获取使其正确工作的帮助信息,"+"点击这里",'scale':"比例尺 = 1 : ${scaleDenom}",'layerAlreadyAdded':"你尝试添加图层: ${layerName} 到地图中,但是它之前就已经被添加。",'reprojectDeprecated':"你正在使用 ${layerName} 图层上的'reproject'选项。"+"这个选项已经不再使用:"+"它是被设计用来支持显示商业的地图数据,"+"不过现在该功能可以通过使用Spherical Mercator来实现。"+"更多信息可以参阅"+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"该方法已经不再被支持,并且将在3.0中被移除。"+"请使用 ${newMethod} 方法来替代。",'boundsAddError':"您必须传递 x 和 y 两个参数值到 add 方法。",'lonlatAddError':"您必须传递 lon 和 lat 两个参数值到 add 方法。",'pixelAddError':"您必须传递 x and y 两个参数值到 add 方法。",'unsupportedGeometryType':"不支持的几何体类型: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition 失败:id 为 ${elemId} 的元素可能被错置。",'end':''};OpenLayers.Lang["zh-TW"]={'unhandledRequest':"未處理的請求,傳回值為 ${statusText}。",'permalink':"永久連結",'overlays':"額外圖層",'baseLayer':"基礎圖層",'sameProjection':"地圖縮覽(OverviewMap)只能在跟主地圖相同投影時起作用。",'readNotImplemented':"沒有實作讀取的功能。",'writeNotImplemented':"沒有實作寫入的功能。",'noFID':"因為沒有 FID 所以無法更新 feature。",'errorLoadingGML':"讀取GML檔案 ${url} 錯誤。",'browserNotSupported':"您的瀏覽器未支援向量渲染. 目前支援的渲染方式是:\n${renderers}",'componentShouldBe':"addFeatures : 元件應該為 ${geomType}",'getFeatureError':"getFeatureFromEvent 在一個沒有被渲染的圖層裡被呼叫。這通常意味著您 "+"摧毀了一個圖層,但並未摧毀相關的handler。",'minZoomLevelError':"minZoomLevel 屬性僅適合用在 "+"FixedZoomLevels-descendent 類型的圖層. 這個"+"wfs layer 的 minZoomLevel 是過去所遺留下來的,"+"然而我們不能移除它而不讓它將"+"過去的程式相容性給破壞掉。"+"因此我們將會迴避使用它 -- minZoomLevel "+"會在3.0被移除,請改"+"用在這邊描述的 min/max resolution 設定: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS Transaction: 成功 ${response}",'commitFailed':"WFS Transaction: 失敗 ${response}",'googleWarning':"The Google Layer 圖層無法被正確的載入。

"+"要迴避這個訊息, 請在右上角的圖層改變器裡,"+"選一個新的基礎圖層。

"+"很有可能是因為 Google Maps 的函式庫"+"腳本沒有被正確的置入,或沒有包含 "+"您網站上正確的 API key

"+"開發者: 要幫助這個行為正確完成,"+"請按這裡",'getLayerWarning':"${layerType} 圖層無法被正確的載入。

"+"要迴避這個訊息, 請在右上角的圖層改變器裡,"+"選一個新的基礎圖層。

"+"很有可能是因為 ${layerLib} 的函式庫"+"腳本沒有被正確的置入。

"+"開發者: 要幫助這個行為正確完成,"+"請按這裡",'scale':"Scale = 1 : ${scaleDenom}",'layerAlreadyAdded':"你試著新增圖層: ${layerName} 到地圖上,但圖層之前就已經被新增了。",'reprojectDeprecated':"你正使用 'reproject' 這個選項 "+"在 ${layerName} 層。這個選項已經不再使用:"+"它的使用原本是設計用來支援在商業地圖上秀出資料,"+"但這個功能已經被"+"Spherical Mercator所取代。更多的資訊可以在 "+"http://trac.openlayers.org/wiki/SphericalMercator 找到。",'methodDeprecated':"這個方法已經不再使用且在3.0將會被移除,"+"請使用 ${newMethod} 來代替。",'boundsAddError':"您必須傳入 x 跟 y 兩者的值進 add 函數。",'lonlatAddError':"您必須傳入 lon 跟 lat 兩者的值進 add 函數。",'pixelAddError':"您必須傳入 x 跟 y 兩者的值進 add 函數。",'unsupportedGeometryType':"未支援的幾何型別: ${geomType}。",'pagePositionFailed':"OpenLayers.Util.pagePosition 失敗: id ${elemId} 的 element 可能被錯置。",'end':''};OpenLayers.Popup.AnchoredBubble=OpenLayers.Class(OpenLayers.Popup.Anchored,{rounded:false,initialize:function(id,lonlat,contentSize,contentHTML,anchor,closeBox,closeBoxCallback){this.padding=new OpenLayers.Bounds(0,OpenLayers.Popup.AnchoredBubble.CORNER_SIZE,0,OpenLayers.Popup.AnchoredBubble.CORNER_SIZE);OpenLayers.Popup.Anchored.prototype.initialize.apply(this,arguments);},draw:function(px){OpenLayers.Popup.Anchored.prototype.draw.apply(this,arguments);this.setContentHTML();this.setBackgroundColor();this.setOpacity();return this.div;},updateRelativePosition:function(){this.setRicoCorners();},setSize:function(contentSize){OpenLayers.Popup.Anchored.prototype.setSize.apply(this,arguments);this.setRicoCorners();},setBackgroundColor:function(color){if(color!=undefined){this.backgroundColor=color;} -if(this.div!=null){if(this.contentDiv!=null){this.div.style.background="transparent";OpenLayers.Rico.Corner.changeColor(this.groupDiv,this.backgroundColor);}}},setOpacity:function(opacity){OpenLayers.Popup.Anchored.prototype.setOpacity.call(this,opacity);if(this.div!=null){if(this.groupDiv!=null){OpenLayers.Rico.Corner.changeOpacity(this.groupDiv,this.opacity);}}},setBorder:function(border){this.border=0;},setRicoCorners:function(){var corners=this.getCornersToRound(this.relativePosition);var options={corners:corners,color:this.backgroundColor,bgColor:"transparent",blend:false};if(!this.rounded){OpenLayers.Rico.Corner.round(this.div,options);this.rounded=true;}else{OpenLayers.Rico.Corner.reRound(this.groupDiv,options);this.setBackgroundColor();this.setOpacity();}},getCornersToRound:function(){var corners=['tl','tr','bl','br'];var corner=OpenLayers.Bounds.oppositeQuadrant(this.relativePosition);OpenLayers.Util.removeItem(corners,corner);return corners.join(" ");},CLASS_NAME:"OpenLayers.Popup.AnchoredBubble"});OpenLayers.Popup.AnchoredBubble.CORNER_SIZE=5;OpenLayers.Projection=OpenLayers.Class({proj:null,projCode:null,initialize:function(projCode,options){OpenLayers.Util.extend(this,options);this.projCode=projCode;if(window.Proj4js){this.proj=new Proj4js.Proj(projCode);}},getCode:function(){return this.proj?this.proj.srsCode:this.projCode;},getUnits:function(){return this.proj?this.proj.units:null;},toString:function(){return this.getCode();},equals:function(projection){if(projection&&projection.getCode){return this.getCode()==projection.getCode();}else{return false;}},destroy:function(){delete this.proj;delete this.projCode;},CLASS_NAME:"OpenLayers.Projection"});OpenLayers.Projection.transforms={};OpenLayers.Projection.addTransform=function(from,to,method){if(!OpenLayers.Projection.transforms[from]){OpenLayers.Projection.transforms[from]={};} +if(this.div!=null){if(this.contentDiv!=null){this.div.style.background="transparent";OpenLayers.Rico.Corner.changeColor(this.groupDiv,this.backgroundColor);}}},setOpacity:function(opacity){OpenLayers.Popup.Anchored.prototype.setOpacity.call(this,opacity);if(this.div!=null){if(this.groupDiv!=null){OpenLayers.Rico.Corner.changeOpacity(this.groupDiv,this.opacity);}}},setBorder:function(border){this.border=0;},setRicoCorners:function(){var corners=this.getCornersToRound(this.relativePosition);var options={corners:corners,color:this.backgroundColor,bgColor:"transparent",blend:false};if(!this.rounded){OpenLayers.Rico.Corner.round(this.div,options);this.rounded=true;}else{OpenLayers.Rico.Corner.reRound(this.groupDiv,options);this.setBackgroundColor();this.setOpacity();}},getCornersToRound:function(){var corners=['tl','tr','bl','br'];var corner=OpenLayers.Bounds.oppositeQuadrant(this.relativePosition);OpenLayers.Util.removeItem(corners,corner);return corners.join(" ");},CLASS_NAME:"OpenLayers.Popup.AnchoredBubble"});OpenLayers.Popup.AnchoredBubble.CORNER_SIZE=5;OpenLayers.Popup.Framed=OpenLayers.Class(OpenLayers.Popup.Anchored,{imageSrc:null,imageSize:null,isAlphaImage:false,positionBlocks:null,blocks:null,fixedRelativePosition:false,initialize:function(id,lonlat,contentSize,contentHTML,anchor,closeBox,closeBoxCallback){OpenLayers.Popup.Anchored.prototype.initialize.apply(this,arguments);if(this.fixedRelativePosition){this.updateRelativePosition();this.calculateRelativePosition=function(px){return this.relativePosition;};} +this.contentDiv.style.position="absolute";this.contentDiv.style.zIndex=1;if(closeBox){this.closeDiv.style.zIndex=1;} +this.groupDiv.style.position="absolute";this.groupDiv.style.top="0px";this.groupDiv.style.left="0px";this.groupDiv.style.height="100%";this.groupDiv.style.width="100%";},destroy:function(){this.imageSrc=null;this.imageSize=null;this.isAlphaImage=null;this.fixedRelativePosition=false;this.positionBlocks=null;for(var i=0;i=-this.MAX_PIXEL&&left<=this.MAX_PIXEL&&top>=-this.MAX_PIXEL&&top<=this.MAX_PIXEL);},setExtent:function(extent,resolutionChanged){OpenLayers.Renderer.Elements.prototype.setExtent.apply(this,arguments);var resolution=this.getResolution();var left=-extent.left/resolution;var top=extent.top/resolution;if(resolutionChanged){this.left=left;this.top=top;var extentString="0 0 "+this.size.w+" "+this.size.h;this.rendererRoot.setAttributeNS(null,"viewBox",extentString);this.translate(0,0);return true;}else{var inRange=this.translate(left-this.left,top-this.top);if(!inRange){this.setExtent(extent,true);} @@ -675,7 +686,7 @@ return viewPortPx;},getLayerPxFromViewPortPx:function(viewPortPx){var layerPx=nu return layerPx;},getLonLatFromLayerPx:function(px){px=this.getViewPortPxFromLayerPx(px);return this.getLonLatFromViewPortPx(px);},getLayerPxFromLonLat:function(lonlat){var px=this.getPixelFromLonLat(lonlat);return this.getLayerPxFromViewPortPx(px);},CLASS_NAME:"OpenLayers.Map"});OpenLayers.Map.TILE_WIDTH=256;OpenLayers.Map.TILE_HEIGHT=256;OpenLayers.Marker=OpenLayers.Class({icon:null,lonlat:null,events:null,map:null,initialize:function(lonlat,icon){this.lonlat=lonlat;var newIcon=(icon)?icon:OpenLayers.Marker.defaultIcon();if(this.icon==null){this.icon=newIcon;}else{this.icon.url=newIcon.url;this.icon.size=newIcon.size;this.icon.offset=newIcon.offset;this.icon.calculateOffset=newIcon.calculateOffset;} this.events=new OpenLayers.Events(this,this.icon.imageDiv,null);},destroy:function(){this.erase();this.map=null;this.events.destroy();this.events=null;if(this.icon!=null){this.icon.destroy();this.icon=null;}},draw:function(px){return this.icon.draw(px);},erase:function(){if(this.icon!=null){this.icon.erase();}},moveTo:function(px){if((px!=null)&&(this.icon!=null)){this.icon.moveTo(px);} this.lonlat=this.map.getLonLatFromLayerPx(px);},isDrawn:function(){var isDrawn=(this.icon&&this.icon.isDrawn());return isDrawn;},onScreen:function(){var onScreen=false;if(this.map){var screenBounds=this.map.getExtent();onScreen=screenBounds.containsLonLat(this.lonlat);} -return onScreen;},inflate:function(inflate){if(this.icon){var newSize=new OpenLayers.Size(this.icon.size.w*inflate,this.icon.size.h*inflate);this.icon.setSize(newSize);}},setOpacity:function(opacity){this.icon.setOpacity(opacity);},setUrl:function(url){this.icon.setUrl(url);},display:function(display){this.icon.display(display);},CLASS_NAME:"OpenLayers.Marker"});OpenLayers.Marker.defaultIcon=function(){var url=OpenLayers.Util.getImagesLocation()+"marker.png";var size=new OpenLayers.Size(21,25);var calculateOffset=function(size){return new OpenLayers.Pixel(-(size.w/2),-size.h);};return new OpenLayers.Icon(url,size,null,calculateOffset);};OpenLayers.Request={DEFAULT_CONFIG:{method:"GET",url:window.location.href,async:true,user:undefined,password:undefined,params:null,proxy:OpenLayers.ProxyHost,headers:{},data:null,callback:function(){},success:null,failure:null,scope:null},events:new OpenLayers.Events(this,null,["complete","success","failure"]),issue:function(config){var defaultConfig=OpenLayers.Util.extend(this.DEFAULT_CONFIG,{proxy:OpenLayers.ProxyHost});config=OpenLayers.Util.applyDefaults(config,defaultConfig);var request=new OpenLayers.Request.XMLHttpRequest();var url=config.url;if(config.params){var paramString=OpenLayers.Util.getParameterString(config.params);if(paramString.length>0){var separator=(url.indexOf('?')>-1)?'&':'?';url+=separator+paramString;}} +return onScreen;},inflate:function(inflate){if(this.icon){var newSize=new OpenLayers.Size(this.icon.size.w*inflate,this.icon.size.h*inflate);this.icon.setSize(newSize);}},setOpacity:function(opacity){this.icon.setOpacity(opacity);},setUrl:function(url){this.icon.setUrl(url);},display:function(display){this.icon.display(display);},CLASS_NAME:"OpenLayers.Marker"});OpenLayers.Marker.defaultIcon=function(){var url=OpenLayers.Util.getImagesLocation()+"marker.png";var size=new OpenLayers.Size(21,25);var calculateOffset=function(size){return new OpenLayers.Pixel(-(size.w/2),-size.h);};return new OpenLayers.Icon(url,size,null,calculateOffset);};OpenLayers.Popup.FramedCloud=OpenLayers.Class(OpenLayers.Popup.Framed,{contentDisplayClass:"olFramedCloudPopupContent",autoSize:true,panMapIfOutOfView:true,imageSize:new OpenLayers.Size(676,736),isAlphaImage:false,fixedRelativePosition:false,positionBlocks:{"tl":{'offset':new OpenLayers.Pixel(44,0),'padding':new OpenLayers.Bounds(8,40,8,9),'blocks':[{size:new OpenLayers.Size('auto','auto'),anchor:new OpenLayers.Bounds(0,51,22,0),position:new OpenLayers.Pixel(0,0)},{size:new OpenLayers.Size(22,'auto'),anchor:new OpenLayers.Bounds(null,50,0,0),position:new OpenLayers.Pixel(-638,0)},{size:new OpenLayers.Size('auto',19),anchor:new OpenLayers.Bounds(0,32,22,null),position:new OpenLayers.Pixel(0,-631)},{size:new OpenLayers.Size(22,18),anchor:new OpenLayers.Bounds(null,32,0,null),position:new OpenLayers.Pixel(-638,-632)},{size:new OpenLayers.Size(81,35),anchor:new OpenLayers.Bounds(null,0,0,null),position:new OpenLayers.Pixel(0,-688)}]},"tr":{'offset':new OpenLayers.Pixel(-45,0),'padding':new OpenLayers.Bounds(8,40,8,9),'blocks':[{size:new OpenLayers.Size('auto','auto'),anchor:new OpenLayers.Bounds(0,51,22,0),position:new OpenLayers.Pixel(0,0)},{size:new OpenLayers.Size(22,'auto'),anchor:new OpenLayers.Bounds(null,50,0,0),position:new OpenLayers.Pixel(-638,0)},{size:new OpenLayers.Size('auto',19),anchor:new OpenLayers.Bounds(0,32,22,null),position:new OpenLayers.Pixel(0,-631)},{size:new OpenLayers.Size(22,19),anchor:new OpenLayers.Bounds(null,32,0,null),position:new OpenLayers.Pixel(-638,-631)},{size:new OpenLayers.Size(81,35),anchor:new OpenLayers.Bounds(0,0,null,null),position:new OpenLayers.Pixel(-215,-687)}]},"bl":{'offset':new OpenLayers.Pixel(45,0),'padding':new OpenLayers.Bounds(8,9,8,40),'blocks':[{size:new OpenLayers.Size('auto','auto'),anchor:new OpenLayers.Bounds(0,21,22,32),position:new OpenLayers.Pixel(0,0)},{size:new OpenLayers.Size(22,'auto'),anchor:new OpenLayers.Bounds(null,21,0,32),position:new OpenLayers.Pixel(-638,0)},{size:new OpenLayers.Size('auto',21),anchor:new OpenLayers.Bounds(0,0,22,null),position:new OpenLayers.Pixel(0,-629)},{size:new OpenLayers.Size(22,21),anchor:new OpenLayers.Bounds(null,0,0,null),position:new OpenLayers.Pixel(-638,-629)},{size:new OpenLayers.Size(81,33),anchor:new OpenLayers.Bounds(null,null,0,0),position:new OpenLayers.Pixel(-101,-674)}]},"br":{'offset':new OpenLayers.Pixel(-44,0),'padding':new OpenLayers.Bounds(8,9,8,40),'blocks':[{size:new OpenLayers.Size('auto','auto'),anchor:new OpenLayers.Bounds(0,21,22,32),position:new OpenLayers.Pixel(0,0)},{size:new OpenLayers.Size(22,'auto'),anchor:new OpenLayers.Bounds(null,21,0,32),position:new OpenLayers.Pixel(-638,0)},{size:new OpenLayers.Size('auto',21),anchor:new OpenLayers.Bounds(0,0,22,null),position:new OpenLayers.Pixel(0,-629)},{size:new OpenLayers.Size(22,21),anchor:new OpenLayers.Bounds(null,0,0,null),position:new OpenLayers.Pixel(-638,-629)},{size:new OpenLayers.Size(81,33),anchor:new OpenLayers.Bounds(0,null,null,0),position:new OpenLayers.Pixel(-311,-674)}]}},minSize:new OpenLayers.Size(105,10),maxSize:new OpenLayers.Size(600,660),initialize:function(id,lonlat,contentSize,contentHTML,anchor,closeBox,closeBoxCallback){this.imageSrc=OpenLayers.Util.getImagesLocation()+'cloud-popup-relative.png';OpenLayers.Popup.Framed.prototype.initialize.apply(this,arguments);this.contentDiv.className=this.contentDisplayClass;},destroy:function(){OpenLayers.Popup.Framed.prototype.destroy.apply(this,arguments);},CLASS_NAME:"OpenLayers.Popup.FramedCloud"});OpenLayers.Request={DEFAULT_CONFIG:{method:"GET",url:window.location.href,async:true,user:undefined,password:undefined,params:null,proxy:OpenLayers.ProxyHost,headers:{},data:null,callback:function(){},success:null,failure:null,scope:null},events:new OpenLayers.Events(this,null,["complete","success","failure"]),issue:function(config){var defaultConfig=OpenLayers.Util.extend(this.DEFAULT_CONFIG,{proxy:OpenLayers.ProxyHost});config=OpenLayers.Util.applyDefaults(config,defaultConfig);var request=new OpenLayers.Request.XMLHttpRequest();var url=config.url;if(config.params){var paramString=OpenLayers.Util.getParameterString(config.params);if(paramString.length>0){var separator=(url.indexOf('?')>-1)?'&':'?';url+=separator+paramString;}} if(config.proxy&&(url.indexOf("http")==0)){url=config.proxy+encodeURIComponent(url);} request.open(config.method,url,config.async,config.user,config.password);for(var header in config.headers){request.setRequestHeader(header,config.headers[header]);} var complete=(config.scope)?OpenLayers.Function.bind(config.callback,config.scope):config.callback;var success;if(config.success){success=(config.scope)?OpenLayers.Function.bind(config.success,config.scope):config.success;} diff --git a/public/opensearch/osm.xml b/public/opensearch/osm.xml index a060ce7ee..754d78e5d 100644 --- a/public/opensearch/osm.xml +++ b/public/opensearch/osm.xml @@ -1,17 +1,17 @@ - - - OpenStreetMap - OpenStreetMap Search - Search for a place in OpenStreetMap, the Wiki World Map - UTF-8 - UTF-8 - data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%10%00%00%00%10%08%06%00%00%00%1F%F3%FFa%00%00%00%19tEXtSoftware%00www.inkscape.org%9B%EE%3C%1A%00%00%01'IDATx%9C%9D%93%B1q%C30%0CE%1F%5Dd%80l%90I%C4*%A7%22%95%CF%85J%97%AE%B2%82%3DC%CE%03%A0%B3%9B%B8f%95%A3%17H%93%05%5C%A7%C8%0A%3F%05E%8A%92l%E7.%D0%E9N%02%81%07%E0Cr%FCaf%A6%FC%BC%5E%AF%DD%F4%3C%3Bt%C5%87%99)%84P%0E%DA%B6%BD%0AI%00%A1%A8%A8%1E%263S%D7u%C9'F%FE%9B%80%0C%C9%C9%22%BD'%B0%0A%AC%86%2CJ%DB%0E%22%11%8F%2F%D4%B3%22%8D%F34%CE%13u%06R%0C%40%D7u%AA%01%C5r%40%0Dq%88%C6%F9i%E8%7C%8CX%5D%A9M%95%D6%A3%A2Ti%C3Xx%CA%9C%F5mf3h%11%B6%07%B8%0APh%97%DD%1E%9E%5E%08!%D0%B6m%F1%87%108%1E%8EY5%007%03%5Cv%7B%00%3E%BF%3E%F8~x%1E%CD%B89l%00%F0I%0FWw%00%20%DB%AEJr%B6%E5%FB%09%80%C6y%CE%7D%91%1AP%B6p%2B%D9%BB%06%18V%3A%B5E%9F%AC%5B%95%AFY%3F%EE%20%A2mW%AA%93%DFN%3F%A0%E1%9B%F0u%E5%BC%BC%89%88%BC.%1F%D5'%DF%FD%C1%EE%F8%FFg%BFp%96%DF%E2%DCw%25%2B%00%00%00%00IEND%AEB%60%82 - - - - - Jonathan Bennett - false - Data &copy; OpenStreetMap contributors, Some Rights Reserved. CC by-sa 2.0. Geolocation provided by npemap.org.uk, geocoder.us, geocoder.ca and geonames.org. - + + + OpenStreetMap + OpenStreetMap Search + Search for a place in OpenStreetMap, the Wiki World Map + UTF-8 + UTF-8 + data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%10%00%00%00%10%08%06%00%00%00%1F%F3%FFa%00%00%00%19tEXtSoftware%00www.inkscape.org%9B%EE%3C%1A%00%00%01'IDATx%9C%9D%93%B1q%C30%0CE%1F%5Dd%80l%90I%C4*%A7%22%95%CF%85J%97%AE%B2%82%3DC%CE%03%A0%B3%9B%B8f%95%A3%17H%93%05%5C%A7%C8%0A%3F%05E%8A%92l%E7.%D0%E9N%02%81%07%E0Cr%FCaf%A6%FC%BC%5E%AF%DD%F4%3C%3Bt%C5%87%99)%84P%0E%DA%B6%BD%0AI%00%A1%A8%A8%1E%263S%D7u%C9'F%FE%9B%80%0C%C9%C9%22%BD'%B0%0A%AC%86%2CJ%DB%0E%22%11%8F%2F%D4%B3%22%8D%F34%CE%13u%06R%0C%40%D7u%AA%01%C5r%40%0Dq%88%C6%F9i%E8%7C%8CX%5D%A9M%95%D6%A3%A2Ti%C3Xx%CA%9C%F5mf3h%11%B6%07%B8%0APh%97%DD%1E%9E%5E%08!%D0%B6m%F1%87%108%1E%8EY5%007%03%5Cv%7B%00%3E%BF%3E%F8~x%1E%CD%B89l%00%F0I%0FWw%00%20%DB%AEJr%B6%E5%FB%09%80%C6y%CE%7D%91%1AP%B6p%2B%D9%BB%06%18V%3A%B5E%9F%AC%5B%95%AFY%3F%EE%20%A2mW%AA%93%DFN%3F%A0%E1%9B%F0u%E5%BC%BC%89%88%BC.%1F%D5'%DF%FD%C1%EE%F8%FFg%BFp%96%DF%E2%DCw%25%2B%00%00%00%00IEND%AEB%60%82 + + + + + Jonathan Bennett + false + Data &copy; OpenStreetMap contributors, Some Rights Reserved. CC by-sa 2.0. Geolocation provided by npemap.org.uk, geocoder.us, geocoder.ca and geonames.org. + diff --git a/public/potlatch/potlatch.swf b/public/potlatch/potlatch.swf index 221dbba7b..24f2012aa 100644 Binary files a/public/potlatch/potlatch.swf and b/public/potlatch/potlatch.swf differ diff --git a/public/robots.txt b/public/robots.txt index 8d2bea7ea..496aa201e 100644 --- a/public/robots.txt +++ b/public/robots.txt @@ -29,6 +29,9 @@ Disallow: /traces/tag/ Disallow: /traces/page/ Disallow: /api/ Disallow: /edit +Disallow: /browse/node/*/history +Disallow: /browse/way/*/history +Disallow: /browse/relation/*/history Allow: /browse/node/ Allow: /browse/way/ Allow: /browse/relation/ @@ -52,6 +55,9 @@ Disallow: /traces/tag/ Disallow: /traces/page/ Disallow: /api/ Disallow: /edit +Disallow: /browse/node/*/history +Disallow: /browse/way/*/history +Disallow: /browse/relation/*/history Allow: /browse/node/ Allow: /browse/way/ Allow: /browse/relation/ diff --git a/public/stylesheets/common.css b/public/stylesheets/common.css index aa40f689a..4efbd928f 100644 --- a/public/stylesheets/common.css +++ b/public/stylesheets/common.css @@ -1,4 +1,18 @@ -a, a:visited, a:active, a:link, a:hover { +/* Styles common to large and small screens */ + +/* Default rules for the body of every page */ + +body { + font-family: Arial,sans-serif; + color: #000; + background-color: #fff; + margin: 0px; + padding: 0px; +} + +/* Rules for links */ + +a { color: #00f; text-decoration: none; } @@ -7,25 +21,16 @@ a:hover { text-decoration: underline; } -#frontpage_main { - width: 100%; - text-align: center; - font-family: sans-serif; -} - +/* Rules for horizontal lines */ -#frontpage_MAIN h1 { - font-size: xx-large; - font-weight: normal; +hr { + border: none; + background-color: #ccc; + color: #ccc; + height: 1px; } -body { - font-family: Arial,sans-serif; - color: #000; - background-color: #fff; - margin: 0px; - padding: 0px; -} +/* Rules for the whole left sidebar, including the logo */ #left { position: absolute; @@ -33,6 +38,8 @@ body { min-width: 150px; } +/* Rules for the OpenStreetMap logo in the top left corner */ + #logo { width: 150px; min-width: 150px; @@ -42,54 +49,19 @@ body { background: #fff; border: 1px solid #ccd; } + #logo h1 { font-size: 14px; text-align: center; margin: 0px; } + #logo h2 { font-size: 10px; margin: 0px; } -/* The Map Key sidebar */ -#mapkey h3 { - font-size: 110%; - font-weight: normal; - text-align: center; -} - -#mapkey .mapkey-table { - padding-left: 5px; - padding-right: 5px; -} - -/*#mapkey .mapkey-table-key {}*/ - -#mapkey .mapkey-table-value { - font-size: 90%; -} - - -#greeting { - float: right; - height: 20px; - margin: 0px; - padding-right: 10px; - padding-top: 5px; - font-size: 13px; - line-height: 14px; - background: url('../images/tab_bottom.gif') repeat-x bottom; -} - -#small-greeting { - display: none; -} - -/* An unread message (e.g. "inbox(1)") */ -.greeting-bar-unread { - font-weight: bold; -} +/* Rules for the introductory text displayed in the left sidebar to new users */ #intro { width: 170px; @@ -100,6 +72,12 @@ body { #intro p { margin: 10px; } +/* + * Rules for alert boxes shown in the left sidebar when important + * information needs to be conveyed such as when the site is + * undergoing maintenance. + */ + #alert { width: 150px; margin: 10px; @@ -111,10 +89,11 @@ body { font-size: 14px; } -#sotm { - width: 170px; - padding: 0px; -} +/* + * Rules for notice boxes shown in the left sidebar when important, but + * non-critical information needs to be conveyed such as notices about + * donation drives. + */ .notice { width: 150px; @@ -127,16 +106,7 @@ body { font-size: 14px; } -.donate { - width: 150px; - margin: 10px; - padding: 10px; - border: 1px solid #ccc; - background: #cbeea7; - line-height: 1.2em; - text-align: center; - font-size: 14px; -} +/* Rules for the menu displayed in the left sidebar */ .left_menu { width: 150px; @@ -165,7 +135,6 @@ body { } .left_menu ul { - /*list-style: none;*/ padding-left: 10px; margin: 0px; } @@ -179,121 +148,99 @@ body { margin: 2px 8px 0px 0px; } -.left_menu a, .left_menu a:visited, .left_menu a:active, .left_menu a:link, .left_menu a:hover { +.left_menu a { color: #000; - text-decoration: none; } -.left_menu a:hover { - color: #000; - text-decoration: underline; -} +/* Rules for SOTM advert */ -#messages { - border: 1px solid #ccc; +#sotm { + width: 170px; + padding: 0px; } +/* + * Rules for "optional boxes" which appear in the left sidebar on + * certain pages. Current users are the seach box on the main page + * and the tag cloud on the traces pages. + */ -#content { - padding: 0px; - margin: 0px; - position: absolute; - left: 192px; - right: 10px; - top: 35px; - bottom: 10px; +.optionalbox { + width: 150px; + min-width: 150px; + margin: 10px; + padding: 10px; + border: 1px solid #ccc; + left: 0px; line-height: 1.2em; text-align: left; + font-size: 12px; + background: #eee; } -#bottom_bar { - position: absolute; - bottom: 0px; - width: 100%; - font-size: x-small; - text-align: center; +.optionalbox h1 { + font-size: 14px; + font-weight: bold; + line-height: 22px; + margin: 0px; + vertical-align: bottom; } -#mapImage { - position: absolute; - left: 0px; -} -#drag { - top: 0px; - left: 14px; -} +/* Rules for the search box */ -#mapEpilog { - font-size: x-small; +.whereami { + line-height: 22px; + vertical-align: bottom; + float: right; } -#changeset_list, #keyvalue { - font-size: small; - text-align: left; - border-collapse: collapse; - border-width: 0px; +.search_form { + height: 16px; + padding-bottom: 6px; } -#changeset_list { +#search_field form { width: 100%; + margin: 0px; + padding: 0px; } -#changeset_list .date { - white-space: nowrap; +#search_field input[type="text"] { + width: 116px; } -#changeset_list .user { - white-space: nowrap; +#search_field input[type="submit"] { + width: 26px; } -#changeset_list .area { - white-space: nowrap; +.search_help { + font-size: 10px; + line-height: 1em; + margin-top: 3px; + margin-bottom: 0px; } -#changeset_list.th { - font-weight: bold; -} +/* Rules for donation request box */ -.emphasized { - background-color: #82bcff; +.donate { + width: 150px; + margin: 10px; + padding: 10px; + border: 1px solid #ccc; + background: #cbeea7; + line-height: 1.2em; + text-align: center; + font-size: 14px; } +/* Rules for Creative Commons logo button */ -#header { - float: left; - width: 100%; - background: #DAE0D2; - font-size: 93%; - line-height: normal; -} -#header ul { - margin: 0px; - padding: 10px 10px 0px 215px; - list-style: none; -} -#header li { - float: left; - margin: 0px; - padding: 0px 0px 0px 9px; -} -#header li a { - float: left; - display: block; - padding: 5px 15px 4px 6px; - text-decoration: none; - font-weight: bold; - color: #765; +#cclogo { + margin-top: 10px; + margin-bottom: 10px; } -#header li a {float:none;} - -#header li a:hover { - color: #333; -} -#header #current a { - color: #333; - padding-bottom: 5px; -} +/* Rules for tabbed navigation bar */ #tabnav { @@ -303,6 +250,7 @@ body { padding-top: 5px; background: url('../images/tab_bottom.gif') repeat-x bottom; } + #tabnav li { margin: 0px; @@ -310,6 +258,7 @@ body { display: inline; list-style-type: none; } + #tabnav a, #tabnav a:link, #tabnav a:visited { float: left; @@ -323,135 +272,85 @@ body { text-decoration: none; color: #333; } + #tabnav a:link.active, #tabnav a:visited.active { border-bottom: 1px solid #fff; background: #fff; color: #000; } -#tabnav a:link:hover + +#tabnav a:link:hover, #tabnav a:visited:hover { background: #fff; } -#gads { - /* position: absolute; */ - left: 100px; - width: 700px; - text-align: center; - font-size: 10px; +#tabnav a:link.disabled, #tabnav a:visited.disabled, +#tabnav a:link:hover.disabled, #tabnav a:visited:hover.disabled +{ + background: #bbbbbb; + color: white } -hr { - border: none; - background-color: #ccc; - color: #ccc; - height: 1px; -} +/* Rules for greeting bar in the top right corner */ -.gpxsummary { - font-size: 12px; - color: gray; +#greeting { + float: right; + height: 20px; + margin: 0px; + padding-right: 10px; + padding-top: 5px; + font-size: 13px; + line-height: 14px; + background: url('../images/tab_bottom.gif') repeat-x bottom; } -.gpxdesc { - font-style: italic; +.greeting-bar-unread { + font-weight: bold; } -.table0 { - background: #f6f6f6; -} +/* Rules for the message shown in place of the map when javascript is disabled */ -.table1 { - background: #fff; +#noscript { + z-index: 20000000; + position: absolute; + top: 15px; + left: 15px } +/* Rules for OpenLayers maps */ -.optionalbox { - width: 150px; - min-width: 150px; - margin: 10px; - padding: 10px; - border: 1px solid #ccc; +#map { + position: absolute; + border: 1px solid black; + margin: 0px; + padding: 0px; left: 0px; - line-height: 1.2em; - text-align: left; - font-size: 12px; - background: #eee; + right: 2px; + top: 0px; + bottom: 0px; } -.oboxheader { - font-size: 14px; - font-weight: bold; - line-height: 22px; - vertical-align: bottom; +.olControlAttribution { + display: none !important; } -.whereami { - position: absolute; - right: 21px; - line-height: 22px; - vertical-align: bottom; +#map #permalink { + z-index:10000; + position:absolute; + bottom:15px; + right:15px; + font-size:smaller; + text-align: right; } -.optionalbox form { - margin: 0px; - padding: 0px; -} +/* Rules for attribution text under the main map shown on printouts */ -#search_field form { - width: 100%; +#attribution { + display: none; } -#search_field input[type="text"] { - width: 116px; -} - -#search_field input[type="submit"] { - width: 26px; -} - -.search_form { - height: 16px; - padding-bottom: 6px; -} - -.rsssmall { - position: relative; - top: 4px; -} - -.button { - margin-top: 10px; - margin-bottom: 10px; -} - -#controls img -{ - z-index: 9999; -} - -#controls -{ - position:absolute; - top: 0px; - left: 0px; - width: 64px; - height: 32px; - z-index: 9998; - cursor: pointer; -} - -#map { - position: absolute; - border: 1px solid black; - margin: 0px; - padding: 0px; - left: 0px; - right: 2px; - top: 0px; - bottom: 0px; -} +/* Rules for the popout map sidebar */ #sidebar { display: none; @@ -486,6 +385,53 @@ hr { background: #bbb; } +/* Rules for the map key which appears in the popout sidebar */ + +#mapkey h3 { + font-size: 110%; + font-weight: normal; + text-align: center; +} + +#mapkey .mapkey-table { + padding-left: 5px; + padding-right: 5px; +} + +#mapkey .mapkey-table-key { +} + +#mapkey .mapkey-table-value { + font-size: 90%; +} + +/* Rules for search results which appear in the popout sidebar */ + +.search_searching { + margin-top: 5px; + margin-bottom: 5px; +} + +.search_results_heading { + margin: 0px; + padding: 3px 6px; + border: 1px solid #ccc; + background: #ddd; +} + +.search_results_entry { + margin: 0px; + padding: 2px 6px; +} + +.search_results_error { + margin: 0px; + padding: 2px 6px 0px; + color: #f00; +} + +/* Rules for data browser information which appears in the popout sidebar */ + .browse_heading { margin: 0px; padding: 3px 6px; @@ -498,53 +444,157 @@ hr { padding: 0px 6px; } -.search_results_heading { +/* Rules for export information which appears in the popout sidebar */ + +.export_heading { margin: 0px; padding: 3px 6px; border: 1px solid #ccc; background: #ddd; } -.search_results_entry { - margin: 0px; +.export_bounds { + width: 100%; + text-align: center; +} + +.export_bound { + margin: 5px; +} + +.export_details { padding: 2px 6px; } -.search_results_error { +#export_osm { + display: none; +} + +#export_mapnik { + display: none; +} + +#export_osmarender { + display: none; +} + +.export_hint { + padding: 0px 12px; + font-style: italic; +} + +.export_buttons { + width: 100%; + text-align: center; +} + +/* Rules for the main content area */ + +#content { + padding: 0px; margin: 0px; - padding: 2px 6px 0px; - color: #f00; + position: absolute; + right: 10px; + bottom: 10px; + line-height: 1.2em; + text-align: left; } -.search_help { - font-size: 10px; - line-height: 1em; - margin-top: 3px; - margin-bottom: 0px; +/* Rules for the changeset list shown by the history tab etc */ + +#changeset_list, #keyvalue { + width: 100%; + font-size: small; + text-align: left; + border-collapse: collapse; + border-width: 0px; } -.search_searching { - margin-top: 5px; - margin-bottom: 5px; +#changeset_list .date { + white-space: nowrap; } -.olControlAttribution { - display: none !important; +#changeset_list .user { + white-space: nowrap; } -/* inbox and messaging stuff */ -.inbox-row-unread .inbox-subject { - font-weight: bold; +#changeset_list .area { + white-space: nowrap; } -/* rails error field stuff */ +#changeset_list.th { + font-weight: bold; +} -.fieldWithErrors { - padding: 2px; - background-color: red; - display: table; +/* Rules for the trace list shown by the traces tab etc */ + +#trace_list { + font-size: small; + text-align: left; + border-collapse: collapse; + border-width: 0px; +} + +#trace_list .trace_summary { + font-size: 12px; + color: gray; +} + +/* Rules for the account settings page */ + +#accountForm td { + padding-bottom: 10px; +} + +#accountImage td { + padding-bottom: 0px; +} + +.nohome .location { + display: none; +} + +#homerow .message { + display: none; +} + +.nohome .message { + display: inline !important; +} + +/* Rules for the user map */ + +.user_map .olControlPanZoomBar { + display: none; +} + +.user_map .olControlPanZoom { + display: block; +} + +/* Rules for user popups on maps */ + +.user_popup p { + padding-top: 3px; + padding-bottom: 3px; + margin-top: 0px; + margin-bottom: 0px; + margin-left: 55px; + margin-right: 2px; +} + +/* Rules for message in/out box page */ + +#messages { + border: 1px solid #ccc; +} + +.inbox-row-unread .inbox-subject { + font-weight: bold; } +/* Rules for "flash" notice boxes shown at the top of the content area */ + #error { border: 1px solid red; padding: 7px; @@ -566,6 +616,16 @@ hr { margin-bottom: 20px; } +/* Rules for highlighting fields with rails validation errors */ + +.fieldWithErrors { + padding: 2px; + background-color: red; + display: table; +} + +/* Rules for rails validation error boxes */ + #errorExplanation { width: 400px; border: 2px solid red; @@ -596,107 +656,64 @@ hr { list-style: square; } -input[type="text"], input[type="password"], textarea { - border: 1px solid black; -} - -input[type="submit"] { - border: 1px solid black; -} - -#accountForm td { - padding-bottom:10px; -} +/* Rules for forms */ .fieldName { - text-align:right; - font-weight:bold; -} - - -.nohome .location { - display: none; -} - -#homerow .message { - display: none; -} - -.nohome .message { - display: inline !important; + text-align: right; + font-weight: bold; } .minorNote { - font-size:0.8em; + font-size: 0.8em; } -.nowrap { - white-space: nowrap; +input[type="text"], input[type="password"], textarea { + border: 1px solid black; } -#map #popup p { - margin: 0px; - padding: 2px; +input[type="submit"] { + border: 1px solid black; } -#permalink { - z-index:10000; - position:absolute; - bottom:15px; - right:15px; - font-size:smaller; - text-align: right; -} +/* Rules for user images */ -#attribution { - display: none; +img.user_image { + max-width: 100px; + max-height: 100px; + border: 1px solid black; } -.export_heading { - margin: 0px; - padding: 3px 6px; - border: 1px solid #ccc; - background: #ddd; +img.user_thumbnail { + max-width: 50px; + max-height: 100px; + border: 1px solid black; } -.export_bounds { - width: 100%; - text-align: center; -} +/* Rule for "nowrap" class that can be applied to anything to stop wrapping */ -.export_bound { - margin: 5px; +.nowrap { + white-space: nowrap; } -.export_details { - padding: 2px 6px; -} +/* Rules for geo microformats */ -#export_osm { - display: none; +abbr.geo { + border-bottom: none; } -#export_mapnik { - display: none; -} +/* Rules for RSS buttons */ -#export_osmarender { - display: none; +.rsssmall { + position: relative; + top: 4px; } -.export_hint { - padding: 0px 12px; - font-style: italic; -} +/* Rules for doing distinct colour of alternate table rows */ -.export_buttons { - width: 100%; - text-align: center; +.table0 { + background: #f6f6f6; } -#noscript { - z-index: 20000000; - position: absolute; - top: 15px; - left: 15px +.table1 { + background: #fff; } diff --git a/public/stylesheets/large.css b/public/stylesheets/large.css new file mode 100644 index 000000000..a1efa8583 --- /dev/null +++ b/public/stylesheets/large.css @@ -0,0 +1,20 @@ +/* Styles specific to large screens */ + +/* Rules for greeting bar in the top right corner */ + +#small-greeting { + display: none; +} + +/* Rules for the main content area */ + +#content { + left: 192px; + top: 35px; +} + +/* Rules for OpenLayers maps */ + +.olControlPanZoom { + display: none; +} diff --git a/public/stylesheets/site-sml.css b/public/stylesheets/site-sml.css deleted file mode 100644 index 4f49100e9..000000000 --- a/public/stylesheets/site-sml.css +++ /dev/null @@ -1,148 +0,0 @@ -/* styles specific to a small-format screen, such as iPhone, Android, etc... */ - -body { - font-size: 12px; -} -h1 { - font-size: 14px; -} - -#logo { - width: 100px; - min-width: 100px; - padding: 10px; - margin: 10px; - margin-top: 10px; - height: 70px; - background: #fff; - border: 1px solid #ccd; -} -#logo h1 { - font-size: 11px; - text-align: center; - margin: 0px; -} -#logo h2 { - font-size: 8px; - margin: 0px; -} -#logo-img { - display: none; -} - -#tabnav -{ - height: 14px; - margin: 0px; - padding-left: 10px; - padding-top: 5px; - margin-top: 18px; - background: url('../images/tab_bottom.gif') repeat-x bottom; - font-size: 10px; - line-height: 10px; -} -#tabnav li -{ - margin: 0px; - padding: 0px; - display: inline; - list-style-type: none; -} -#tabnav a, #tabnav a:link, #tabnav a:visited -{ - float: left; - background: #f3f3f3; - font-size: 10px; - line-height: 10px; - font-weight: bold; - padding: 1px 5px; - margin-right: 1px; - border: 1px solid #ccc; - text-decoration: none; - color: #333; -} -#tabnav a:link.active, #tabnav a:visited.active -{ - border-bottom: 1px solid #fff; - background: #fff; - color: #000; -} -#tabnav a:link:hover -{ - background: #fff; -} - -#left { - display: none; - min-width: 100px; - top: 20px; -} -#intro { - display: none; -} -.left_menu { - width: 100px; - min-width: 100px; -} -.optionalbox { - width: 100px; - min-width: 100px; -} -.donate { - width: 100px; - min-width: 100px; -} -#content { - /* left: 142px; */ - left: 10px; - top: 47px; -} - -#greeting { - position: absolute; - top: 0px; - right: 0px; - height: 14px; - font-size: 12px; - line-height: 12px; - white-space: nowrap; - background: none; -} -#full-greeting { - display: none; -} -#small-greeting { - display: inline; -} - -#signupForm input[type="text"], #signupForm input[type="password"] { - width: 100%; -} -#signupForm input#user_email { - max-width: 30em; -} -#signupForm input#user_email_confirmation { - max-width: 30em; -} -#signupForm input#user_display_name { - max-width: 20em; -} -#signupForm input#user_pass_crypt { - max-width: 20em; -} -#signupForm input#user_pass_crypt_confirmation { - max-width: 20em; -} - -#loginForm input#user_email { - width: 100%; - max-width: 18em; -} -#loginForm input#user_password { - width: 100%; - max-width: 18em; -} - -.olControlPanZoomBar { - display: none; -} diff --git a/public/stylesheets/site.css b/public/stylesheets/site.css deleted file mode 100644 index b39c8a7b9..000000000 --- a/public/stylesheets/site.css +++ /dev/null @@ -1,9 +0,0 @@ -/* styles specific to a large-format screen */ - -#logo-img-sml { - display: none; -} - -.olControlPanZoom { - display: none; -} diff --git a/public/stylesheets/small.css b/public/stylesheets/small.css new file mode 100644 index 000000000..b11aebf69 --- /dev/null +++ b/public/stylesheets/small.css @@ -0,0 +1,111 @@ +/* Styles specific to a small screen, such as iPhone, Android, etc... */ + +/* Default rules for the body of every page */ + +body { + font-size: 12px; +} + +h1 { + font-size: 14px; +} + +/* Rules for the whole left sidebar, including the logo */ + +#left { + display: none; +} + +/* Rules for tabbed navigation bar */ + +#tabnav +{ + height: 14px; + margin: 0px; + padding-left: 10px; + padding-top: 5px; + margin-top: 18px; + background: url('../images/tab_bottom.gif') repeat-x bottom; + font-size: 10px; + line-height: 10px; +} + +#tabnav a, #tabnav a:link, #tabnav a:visited +{ + font-size: 10px; + line-height: 10px; + padding: 1px 5px; + margin-right: 1px; +} + +/* Rules for greeting bar in the top right corner */ + +#greeting { + position: absolute; + top: 0px; + right: 0px; + height: 14px; + font-size: 12px; + line-height: 12px; + white-space: nowrap; + background: none; +} + +#full-greeting { + display: none; +} + +#small-greeting { + display: inline; +} + +/* Rules for OpenLayers maps */ + +.olControlPanZoomBar { + display: none; +} + +/* Rules for the main content area */ + +#content { + left: 10px; + top: 47px; +} + +/* Rules for the signup form */ + +#signupForm input[type="text"], #signupForm input[type="password"] { + width: 100%; +} + +#signupForm input#user_email { + max-width: 30em; +} + +#signupForm input#user_email_confirmation { + max-width: 30em; +} + +#signupForm input#user_display_name { + max-width: 20em; +} + +#signupForm input#user_pass_crypt { + max-width: 20em; +} + +#signupForm input#user_pass_crypt_confirmation { + max-width: 20em; +} + +/* Rules for the login form */ + +#loginForm input#user_email { + width: 100%; + max-width: 18em; +} + +#loginForm input#user_password { + width: 100%; + max-width: 18em; +} diff --git a/test/functional/api_controller_test.rb b/test/functional/api_controller_test.rb index ce4020ca7..e1543726f 100644 --- a/test/functional/api_controller_test.rb +++ b/test/functional/api_controller_test.rb @@ -199,17 +199,18 @@ class ApiControllerTest < ActionController::TestCase # http://wiki.openstreetmap.org/wiki/Rails#Installing_the_quadtile_functions # or by looking at the readme in db/README def test_changes_simple + Timecop.freeze(Time.parse('2010-04-03 10:55:00')) get :changes assert_response :success #print @response.body # As we have loaded the fixtures, we can assume that there are no - # changes recently + # changes at the time we have frozen at now = Time.now.getutc hourago = now - 1.hour - # Note that this may fail on a very slow machine, so isn't a great test assert_select "osm[version='#{API_VERSION}'][generator='#{GENERATOR}']:root", :count => 1 do assert_select "changes[starttime='#{hourago.xmlschema}'][endtime='#{now.xmlschema}']", :count => 1 end + Timecop.return end def test_changes_zoom_invalid diff --git a/test/functional/diary_entry_controller_test.rb b/test/functional/diary_entry_controller_test.rb index 53d9716b3..bd65088e4 100644 --- a/test/functional/diary_entry_controller_test.rb +++ b/test/functional/diary_entry_controller_test.rb @@ -3,6 +3,8 @@ require File.dirname(__FILE__) + '/../test_helper' class DiaryEntryControllerTest < ActionController::TestCase fixtures :users, :diary_entries, :diary_comments + include ActionView::Helpers::NumberHelper + def test_showing_new_diary_entry get :new assert_response :redirect @@ -110,8 +112,7 @@ class DiaryEntryControllerTest < ActionController::TestCase # This next line won't work if the text has been run through the htmlize function # due to formatting that could be introduced assert_select "p", :text => /#{new_body}/, :count => 1 - assert_select "span.latitude", :text => new_latitude, :count => 1 - assert_select "span.longitude", :text => new_longitude, :count => 1 + assert_select "abbr[class=geo][title=#{number_with_precision(new_latitude, :precision => 4)}; #{number_with_precision(new_longitude, :precision => 4)}]", :count => 1 # As we're not logged in, check that you cannot edit #print @response.body assert_select "a[href='/user/#{users(:normal_user).display_name}/diary/#{diary_entries(:normal_user_entry_1).id}/edit']", :text => "Edit this entry", :count => 1 @@ -134,8 +135,7 @@ class DiaryEntryControllerTest < ActionController::TestCase # This next line won't work if the text has been run through the htmlize function # due to formatting that could be introduced assert_select "p", :text => /#{new_body}/, :count => 1 - assert_select "span.latitude", :text => new_latitude, :count => 1 - assert_select "span.longitude", :text => new_longitude, :count => 1 + assert_select "abbr[class=geo][title=#{number_with_precision(new_latitude, :precision => 4)}; #{number_with_precision(new_longitude, :precision => 4)}]", :count => 1 # As we're not logged in, check that you cannot edit assert_select "a[href='/user/#{users(:normal_user).display_name}/diary/#{diary_entries(:normal_user_entry_1).id}/edit']", :text => "Edit this entry", :count => 0 end diff --git a/test/functional/way_controller_test.rb b/test/functional/way_controller_test.rb index 6b58137ae..3452be6d0 100644 --- a/test/functional/way_controller_test.rb +++ b/test/functional/way_controller_test.rb @@ -210,7 +210,7 @@ class WayControllerTest < ActionController::TestCase assert_response :forbidden # Now try without having a changeset - content "" + content "" delete :delete, :id => current_ways(:visible_way).id assert_response :forbidden @@ -261,7 +261,7 @@ class WayControllerTest < ActionController::TestCase assert_response :bad_request # Now try without having a changeset - content "" + content "" delete :delete, :id => current_ways(:visible_way).id assert_response :bad_request diff --git a/vendor/gems/composite_primary_keys-2.2.2/README.txt b/vendor/gems/composite_primary_keys-2.2.2/README.txt index 11daeb922..b0d8c12d6 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/README.txt +++ b/vendor/gems/composite_primary_keys-2.2.2/README.txt @@ -1,41 +1,41 @@ -= Composite Primary Keys for ActiveRecords - -== Summary - -ActiveRecords/Rails famously doesn't support composite primary keys. -This RubyGem extends the activerecord gem to provide CPK support. - -== Installation - - gem install composite_primary_keys - -== Usage - - require 'composite_primary_keys' - class ProductVariation - set_primary_keys :product_id, :variation_seq - end - - pv = ProductVariation.find(345, 12) - -It even supports composite foreign keys for associations. - -See http://compositekeys.rubyforge.org for more. - -== Running Tests - -See test/README.tests.txt - -== Url - -http://compositekeys.rubyforge.org - -== Questions, Discussion and Contributions - -http://groups.google.com/compositekeys - -== Author - -Written by Dr Nic Williams, drnicwilliams@gmail -Contributions by many! - += Composite Primary Keys for ActiveRecords + +== Summary + +ActiveRecords/Rails famously doesn't support composite primary keys. +This RubyGem extends the activerecord gem to provide CPK support. + +== Installation + + gem install composite_primary_keys + +== Usage + + require 'composite_primary_keys' + class ProductVariation + set_primary_keys :product_id, :variation_seq + end + + pv = ProductVariation.find(345, 12) + +It even supports composite foreign keys for associations. + +See http://compositekeys.rubyforge.org for more. + +== Running Tests + +See test/README.tests.txt + +== Url + +http://compositekeys.rubyforge.org + +== Questions, Discussion and Contributions + +http://groups.google.com/compositekeys + +== Author + +Written by Dr Nic Williams, drnicwilliams@gmail +Contributions by many! + diff --git a/vendor/gems/composite_primary_keys-2.2.2/Rakefile b/vendor/gems/composite_primary_keys-2.2.2/Rakefile index fe0b8fd78..e5bebdb97 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/Rakefile +++ b/vendor/gems/composite_primary_keys-2.2.2/Rakefile @@ -1,65 +1,65 @@ -require 'rubygems' -require 'rake' -require 'rake/clean' -require 'rake/testtask' -require 'rake/rdoctask' -require 'rake/packagetask' -require 'rake/gempackagetask' -require 'rake/contrib/rubyforgepublisher' -require 'fileutils' -require 'hoe' -include FileUtils -require File.join(File.dirname(__FILE__), 'lib', 'composite_primary_keys', 'version') - -AUTHOR = "Dr Nic Williams" -EMAIL = "drnicwilliams@gmail.com" -DESCRIPTION = "Composite key support for ActiveRecords" -GEM_NAME = "composite_primary_keys" # what ppl will type to install your gem -if File.exists?("~/.rubyforge/user-config.yml") - # TODO this should prob go in a local/ file - config = YAML.load(File.read(File.expand_path("~/.rubyforge/user-config.yml"))) - RUBYFORGE_USERNAME = config["username"] -end -RUBYFORGE_PROJECT = "compositekeys" -HOMEPATH = "http://#{RUBYFORGE_PROJECT}.rubyforge.org" - -REV = nil #File.read(".svn/entries")[/committed-rev="(\d+)"/, 1] rescue nil -VERS = ENV['VERSION'] || (CompositePrimaryKeys::VERSION::STRING + (REV ? ".#{REV}" : "")) -CLEAN.include ['**/.*.sw?', '*.gem', '.config','debug.log','*.db','logfile','log/**/*','**/.DS_Store', '.project'] -RDOC_OPTS = ['--quiet', '--title', "newgem documentation", - "--opname", "index.html", - "--line-numbers", - "--main", "README", - "--inline-source"] - -class Hoe - def extra_deps - @extra_deps.reject { |x| Array(x).first == 'hoe' } - end -end - -# Generate all the Rake tasks -# Run 'rake -T' to see list of generated tasks (from gem root directory) -hoe = Hoe.new(GEM_NAME, VERS) do |p| - p.author = AUTHOR - p.description = DESCRIPTION - p.email = EMAIL - p.summary = DESCRIPTION - p.url = HOMEPATH - p.rubyforge_name = RUBYFORGE_PROJECT if RUBYFORGE_PROJECT - p.test_globs = ["test/**/test*.rb"] - p.clean_globs |= CLEAN #An array of file patterns to delete on clean. - - # == Optional - p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n") - p.extra_deps = [['activerecord', '>= 2.2.0']] #An array of rubygem dependencies. - #p.spec_extras - A hash of extra values to set in the gemspec. -end - -CHANGES = hoe.paragraphs_of('History.txt', 0..1).join("\n\n") -PATH = RUBYFORGE_PROJECT -hoe.remote_rdoc_dir = File.join(PATH.gsub(/^#{RUBYFORGE_PROJECT}\/?/,''), 'rdoc') - -PROJECT_ROOT = File.expand_path(".") - -require 'loader' +require 'rubygems' +require 'rake' +require 'rake/clean' +require 'rake/testtask' +require 'rake/rdoctask' +require 'rake/packagetask' +require 'rake/gempackagetask' +require 'rake/contrib/rubyforgepublisher' +require 'fileutils' +require 'hoe' +include FileUtils +require File.join(File.dirname(__FILE__), 'lib', 'composite_primary_keys', 'version') + +AUTHOR = "Dr Nic Williams" +EMAIL = "drnicwilliams@gmail.com" +DESCRIPTION = "Composite key support for ActiveRecords" +GEM_NAME = "composite_primary_keys" # what ppl will type to install your gem +if File.exists?("~/.rubyforge/user-config.yml") + # TODO this should prob go in a local/ file + config = YAML.load(File.read(File.expand_path("~/.rubyforge/user-config.yml"))) + RUBYFORGE_USERNAME = config["username"] +end +RUBYFORGE_PROJECT = "compositekeys" +HOMEPATH = "http://#{RUBYFORGE_PROJECT}.rubyforge.org" + +REV = nil #File.read(".svn/entries")[/committed-rev="(\d+)"/, 1] rescue nil +VERS = ENV['VERSION'] || (CompositePrimaryKeys::VERSION::STRING + (REV ? ".#{REV}" : "")) +CLEAN.include ['**/.*.sw?', '*.gem', '.config','debug.log','*.db','logfile','log/**/*','**/.DS_Store', '.project'] +RDOC_OPTS = ['--quiet', '--title', "newgem documentation", + "--opname", "index.html", + "--line-numbers", + "--main", "README", + "--inline-source"] + +class Hoe + def extra_deps + @extra_deps.reject { |x| Array(x).first == 'hoe' } + end +end + +# Generate all the Rake tasks +# Run 'rake -T' to see list of generated tasks (from gem root directory) +hoe = Hoe.new(GEM_NAME, VERS) do |p| + p.author = AUTHOR + p.description = DESCRIPTION + p.email = EMAIL + p.summary = DESCRIPTION + p.url = HOMEPATH + p.rubyforge_name = RUBYFORGE_PROJECT if RUBYFORGE_PROJECT + p.test_globs = ["test/**/test*.rb"] + p.clean_globs |= CLEAN #An array of file patterns to delete on clean. + + # == Optional + p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n") + p.extra_deps = [['activerecord', '>= 2.2.0']] #An array of rubygem dependencies. + #p.spec_extras - A hash of extra values to set in the gemspec. +end + +CHANGES = hoe.paragraphs_of('History.txt', 0..1).join("\n\n") +PATH = RUBYFORGE_PROJECT +hoe.remote_rdoc_dir = File.join(PATH.gsub(/^#{RUBYFORGE_PROJECT}\/?/,''), 'rdoc') + +PROJECT_ROOT = File.expand_path(".") + +require 'loader' diff --git a/vendor/gems/composite_primary_keys-2.2.2/install.rb b/vendor/gems/composite_primary_keys-2.2.2/install.rb index 5be89cf10..7d021ce1d 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/install.rb +++ b/vendor/gems/composite_primary_keys-2.2.2/install.rb @@ -1,30 +1,30 @@ -require 'rbconfig' -require 'find' -require 'ftools' - -include Config - -# this was adapted from rdoc's install.rb by ways of Log4r - -$sitedir = CONFIG["sitelibdir"] -unless $sitedir - version = CONFIG["MAJOR"] + "." + CONFIG["MINOR"] - $libdir = File.join(CONFIG["libdir"], "ruby", version) - $sitedir = $:.find {|x| x =~ /site_ruby/ } - if !$sitedir - $sitedir = File.join($libdir, "site_ruby") - elsif $sitedir !~ Regexp.quote(version) - $sitedir = File.join($sitedir, version) - end -end - -# the acual gruntwork -Dir.chdir("lib") - -Find.find("composite_primary_keys", "composite_primary_keys.rb") { |f| - if f[-3..-1] == ".rb" - File::install(f, File.join($sitedir, *f.split(/\//)), 0644, true) - else - File::makedirs(File.join($sitedir, *f.split(/\//))) - end -} +require 'rbconfig' +require 'find' +require 'ftools' + +include Config + +# this was adapted from rdoc's install.rb by ways of Log4r + +$sitedir = CONFIG["sitelibdir"] +unless $sitedir + version = CONFIG["MAJOR"] + "." + CONFIG["MINOR"] + $libdir = File.join(CONFIG["libdir"], "ruby", version) + $sitedir = $:.find {|x| x =~ /site_ruby/ } + if !$sitedir + $sitedir = File.join($libdir, "site_ruby") + elsif $sitedir !~ Regexp.quote(version) + $sitedir = File.join($sitedir, version) + end +end + +# the acual gruntwork +Dir.chdir("lib") + +Find.find("composite_primary_keys", "composite_primary_keys.rb") { |f| + if f[-3..-1] == ".rb" + File::install(f, File.join($sitedir, *f.split(/\//)), 0644, true) + else + File::makedirs(File.join($sitedir, *f.split(/\//))) + end +} diff --git a/vendor/gems/composite_primary_keys-2.2.2/lib/composite_primary_keys.rb b/vendor/gems/composite_primary_keys-2.2.2/lib/composite_primary_keys.rb index 99b61407e..64f7e14b3 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/lib/composite_primary_keys.rb +++ b/vendor/gems/composite_primary_keys-2.2.2/lib/composite_primary_keys.rb @@ -1,55 +1,55 @@ -#-- -# Copyright (c) 2006 Nic Williams -# -# Permission is hereby granted, free of charge, to any person obtaining -# a copy of this software and associated documentation files (the -# "Software"), to deal in the Software without restriction, including -# without limitation the rights to use, copy, modify, merge, publish, -# distribute, sublicense, and/or sell copies of the Software, and to -# permit persons to whom the Software is furnished to do so, subject to -# the following conditions: -# -# The above copyright notice and this permission notice shall be -# included in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -#++ - -$:.unshift(File.dirname(__FILE__)) unless - $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__))) - -unless defined?(ActiveRecord) - begin - require 'active_record' - rescue LoadError - require 'rubygems' - require_gem 'activerecord' - end -end - -require 'composite_primary_keys/fixtures' -require 'composite_primary_keys/composite_arrays' -require 'composite_primary_keys/associations' -require 'composite_primary_keys/association_preload' -require 'composite_primary_keys/reflection' -require 'composite_primary_keys/base' -require 'composite_primary_keys/calculations' -require 'composite_primary_keys/migration' -require 'composite_primary_keys/attribute_methods' - -ActiveRecord::Base.class_eval do - include CompositePrimaryKeys::ActiveRecord::Base -end - -Dir[File.dirname(__FILE__) + '/composite_primary_keys/connection_adapters/*.rb'].each do |adapter| - begin - require adapter.gsub('.rb','') - rescue MissingSourceFile - end -end +#-- +# Copyright (c) 2006 Nic Williams +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +#++ + +$:.unshift(File.dirname(__FILE__)) unless + $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__))) + +unless defined?(ActiveRecord) + begin + require 'active_record' + rescue LoadError + require 'rubygems' + require_gem 'activerecord' + end +end + +require 'composite_primary_keys/fixtures' +require 'composite_primary_keys/composite_arrays' +require 'composite_primary_keys/associations' +require 'composite_primary_keys/association_preload' +require 'composite_primary_keys/reflection' +require 'composite_primary_keys/base' +require 'composite_primary_keys/calculations' +require 'composite_primary_keys/migration' +require 'composite_primary_keys/attribute_methods' + +ActiveRecord::Base.class_eval do + include CompositePrimaryKeys::ActiveRecord::Base +end + +Dir[File.dirname(__FILE__) + '/composite_primary_keys/connection_adapters/*.rb'].each do |adapter| + begin + require adapter.gsub('.rb','') + rescue MissingSourceFile + end +end diff --git a/vendor/gems/composite_primary_keys-2.2.2/lib/composite_primary_keys/base.rb b/vendor/gems/composite_primary_keys-2.2.2/lib/composite_primary_keys/base.rb index a4c7ff93a..4558f97a3 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/lib/composite_primary_keys/base.rb +++ b/vendor/gems/composite_primary_keys-2.2.2/lib/composite_primary_keys/base.rb @@ -1,341 +1,341 @@ -module CompositePrimaryKeys - module ActiveRecord #:nodoc: - class CompositeKeyError < StandardError #:nodoc: - end - - module Base #:nodoc: - - INVALID_FOR_COMPOSITE_KEYS = 'Not appropriate for composite primary keys' - NOT_IMPLEMENTED_YET = 'Not implemented for composite primary keys yet' - - def self.append_features(base) - super - base.send(:include, InstanceMethods) - base.extend(ClassMethods) - end - - module ClassMethods - def set_primary_keys(*keys) - keys = keys.first if keys.first.is_a?(Array) - keys = keys.map { |k| k.to_sym } - cattr_accessor :primary_keys - self.primary_keys = keys.to_composite_keys - - class_eval <<-EOV - extend CompositeClassMethods - include CompositeInstanceMethods - - include CompositePrimaryKeys::ActiveRecord::Associations - include CompositePrimaryKeys::ActiveRecord::AssociationPreload - include CompositePrimaryKeys::ActiveRecord::Calculations - include CompositePrimaryKeys::ActiveRecord::AttributeMethods - EOV - end - - def composite? - false - end - end - - module InstanceMethods - def composite?; self.class.composite?; end - end - - module CompositeInstanceMethods - - # A model instance's primary keys is always available as model.ids - # whether you name it the default 'id' or set it to something else. - def id - attr_names = self.class.primary_keys - CompositeIds.new(attr_names.map { |attr_name| read_attribute(attr_name) }) - end - alias_method :ids, :id - - def to_param - id.to_s - end - - def id_before_type_cast #:nodoc: - raise CompositeKeyError, CompositePrimaryKeys::ActiveRecord::Base::NOT_IMPLEMENTED_YET - end - - def quoted_id #:nodoc: - [self.class.primary_keys, ids]. - transpose. - map {|attr_name,id| quote_value(id, column_for_attribute(attr_name))}. - to_composite_ids - end - - # Sets the primary ID. - def id=(ids) - ids = ids.split(ID_SEP) if ids.is_a?(String) - ids.flatten! - unless ids.is_a?(Array) and ids.length == self.class.primary_keys.length - raise "#{self.class}.id= requires #{self.class.primary_keys.length} ids" - end - [primary_keys, ids].transpose.each {|key, an_id| write_attribute(key , an_id)} - id - end - - # Returns a clone of the record that hasn't been assigned an id yet and - # is treated as a new record. Note that this is a "shallow" clone: - # it copies the object's attributes only, not its associations. - # The extent of a "deep" clone is application-specific and is therefore - # left to the application to implement according to its need. - def clone - attrs = self.attributes_before_type_cast - self.class.primary_keys.each {|key| attrs.delete(key.to_s)} - self.class.new do |record| - record.send :instance_variable_set, '@attributes', attrs - end - end - - - private - # The xx_without_callbacks methods are overwritten as that is the end of the alias chain - - # Creates a new record with values matching those of the instance attributes. - def create_without_callbacks - unless self.id - raise CompositeKeyError, "Composite keys do not generated ids from sequences, you must provide id values" - end - attributes_minus_pks = attributes_with_quotes(false) - quoted_pk_columns = self.class.primary_key.map { |col| connection.quote_column_name(col) } - cols = quoted_column_names(attributes_minus_pks) << quoted_pk_columns - vals = attributes_minus_pks.values << quoted_id - connection.insert( - "INSERT INTO #{self.class.quoted_table_name} " + - "(#{cols.join(', ')}) " + - "VALUES (#{vals.join(', ')})", - "#{self.class.name} Create", - self.class.primary_key, - self.id - ) - @new_record = false - return true - end - - # Updates the associated record with values matching those of the instance attributes. - def update_without_callbacks - where_clause_terms = [self.class.primary_key, quoted_id].transpose.map do |pair| - "(#{connection.quote_column_name(pair[0])} = #{pair[1]})" - end - where_clause = where_clause_terms.join(" AND ") - connection.update( - "UPDATE #{self.class.quoted_table_name} " + - "SET #{quoted_comma_pair_list(connection, attributes_with_quotes(false))} " + - "WHERE #{where_clause}", - "#{self.class.name} Update" - ) - return true - end - - # Deletes the record in the database and freezes this instance to reflect that no changes should - # be made (since they can't be persisted). - def destroy_without_callbacks - where_clause_terms = [self.class.primary_key, quoted_id].transpose.map do |pair| - "(#{connection.quote_column_name(pair[0])} = #{pair[1]})" - end - where_clause = where_clause_terms.join(" AND ") - unless new_record? - connection.delete( - "DELETE FROM #{self.class.quoted_table_name} " + - "WHERE #{where_clause}", - "#{self.class.name} Destroy" - ) - end - freeze - end - end - - module CompositeClassMethods - def primary_key; primary_keys; end - def primary_key=(keys); primary_keys = keys; end - - def composite? - true - end - - #ids_to_s([[1,2],[7,3]]) -> "(1,2),(7,3)" - #ids_to_s([[1,2],[7,3]], ',', ';') -> "1,2;7,3" - def ids_to_s(many_ids, id_sep = CompositePrimaryKeys::ID_SEP, list_sep = ',', left_bracket = '(', right_bracket = ')') - many_ids.map {|ids| "#{left_bracket}#{ids}#{right_bracket}"}.join(list_sep) - end - - # Creates WHERE condition from list of composited ids - # User.update_all({:role => 'admin'}, :conditions => composite_where_clause([[1, 2], [2, 2]])) #=> UPDATE admins SET admin.role='admin' WHERE (admin.type=1 AND admin.type2=2) OR (admin.type=2 AND admin.type2=2) - # User.find(:all, :conditions => composite_where_clause([[1, 2], [2, 2]])) #=> SELECT * FROM admins WHERE (admin.type=1 AND admin.type2=2) OR (admin.type=2 AND admin.type2=2) - def composite_where_clause(ids) - if ids.is_a?(String) - ids = [[ids]] - elsif not ids.first.is_a?(Array) # if single comp key passed, turn into an array of 1 - ids = [ids.to_composite_ids] - end - - ids.map do |id_set| - [primary_keys, id_set].transpose.map do |key, id| - "#{table_name}.#{key.to_s}=#{sanitize(id)}" - end.join(" AND ") - end.join(") OR (") - end - - # Returns true if the given +ids+ represents the primary keys of a record in the database, false otherwise. - # Example: - # Person.exists?(5,7) - def exists?(ids) - if ids.is_a?(Array) && ids.first.is_a?(String) - count(:conditions => ids) > 0 - else - obj = find(ids) rescue false - !obj.nil? and obj.is_a?(self) - end - end - - # Deletes the record with the given +ids+ without instantiating an object first, e.g. delete(1,2) - # If an array of ids is provided (e.g. delete([1,2], [3,4]), all of them - # are deleted. - def delete(*ids) - unless ids.is_a?(Array); raise "*ids must be an Array"; end - ids = [ids.to_composite_ids] if not ids.first.is_a?(Array) - where_clause = ids.map do |id_set| - [primary_keys, id_set].transpose.map do |key, id| - "#{quoted_table_name}.#{connection.quote_column_name(key.to_s)}=#{sanitize(id)}" - end.join(" AND ") - end.join(") OR (") - delete_all([ "(#{where_clause})" ]) - end - - # Destroys the record with the given +ids+ by instantiating the object and calling #destroy (all the callbacks are the triggered). - # If an array of ids is provided, all of them are destroyed. - def destroy(*ids) - unless ids.is_a?(Array); raise "*ids must be an Array"; end - if ids.first.is_a?(Array) - ids = ids.map{|compids| compids.to_composite_ids} - else - ids = ids.to_composite_ids - end - ids.first.is_a?(CompositeIds) ? ids.each { |id_set| find(id_set).destroy } : find(ids).destroy - end - - # Returns an array of column objects for the table associated with this class. - # Each column that matches to one of the primary keys has its - # primary attribute set to true - def columns - unless @columns - @columns = connection.columns(table_name, "#{name} Columns") - @columns.each {|column| column.primary = primary_keys.include?(column.name.to_sym)} - end - @columns - end - - ## DEACTIVATED METHODS ## - public - # Lazy-set the sequence name to the connection's default. This method - # is only ever called once since set_sequence_name overrides it. - def sequence_name #:nodoc: - raise CompositeKeyError, CompositePrimaryKeys::ActiveRecord::Base::INVALID_FOR_COMPOSITE_KEYS - end - - def reset_sequence_name #:nodoc: - raise CompositeKeyError, CompositePrimaryKeys::ActiveRecord::Base::INVALID_FOR_COMPOSITE_KEYS - end - - def set_primary_key(value = nil, &block) - raise CompositeKeyError, CompositePrimaryKeys::ActiveRecord::Base::INVALID_FOR_COMPOSITE_KEYS - end - - private - def find_one(id, options) - raise CompositeKeyError, CompositePrimaryKeys::ActiveRecord::Base::INVALID_FOR_COMPOSITE_KEYS - end - - def find_some(ids, options) - raise CompositeKeyError, CompositePrimaryKeys::ActiveRecord::Base::INVALID_FOR_COMPOSITE_KEYS - end - - def find_from_ids(ids, options) - ids = ids.first if ids.last == nil - conditions = " AND (#{sanitize_sql(options[:conditions])})" if options[:conditions] - # if ids is just a flat list, then its size must = primary_key.length (one id per primary key, in order) - # if ids is list of lists, then each inner list must follow rule above - if ids.first.is_a? String - # find '2,1' -> ids = ['2,1'] - # find '2,1;7,3' -> ids = ['2,1;7,3'] - ids = ids.first.split(ID_SET_SEP).map {|id_set| id_set.split(ID_SEP).to_composite_ids} - # find '2,1;7,3' -> ids = [['2','1'],['7','3']], inner [] are CompositeIds - end - ids = [ids.to_composite_ids] if not ids.first.kind_of?(Array) - ids.each do |id_set| - unless id_set.is_a?(Array) - raise "Ids must be in an Array, instead received: #{id_set.inspect}" - end - unless id_set.length == primary_keys.length - raise "#{id_set.inspect}: Incorrect number of primary keys for #{class_name}: #{primary_keys.inspect}" - end - end - - # Let keys = [:a, :b] - # If ids = [[10, 50], [11, 51]], then :conditions => - # "(#{quoted_table_name}.a, #{quoted_table_name}.b) IN ((10, 50), (11, 51))" - - conditions = ids.map do |id_set| - [primary_keys, id_set].transpose.map do |key, id| - col = columns_hash[key.to_s] - val = quote_value(id, col) - "#{quoted_table_name}.#{connection.quote_column_name(key.to_s)}=#{val}" - end.join(" AND ") - end.join(") OR (") - - options.update :conditions => "(#{conditions})" - - result = find_every(options) - - if result.size == ids.size - ids.size == 1 ? result[0] : result - else - raise ::ActiveRecord::RecordNotFound, "Couldn't find all #{name.pluralize} with IDs (#{ids.inspect})#{conditions}" - end - end - end - end - end -end - - -module ActiveRecord - ID_SEP = ',' - ID_SET_SEP = ';' - - class Base - # Allows +attr_name+ to be the list of primary_keys, and returns the id - # of the object - # e.g. @object[@object.class.primary_key] => [1,1] - def [](attr_name) - if attr_name.is_a?(String) and attr_name != attr_name.split(ID_SEP).first - attr_name = attr_name.split(ID_SEP) - end - attr_name.is_a?(Array) ? - attr_name.map {|name| read_attribute(name)} : - read_attribute(attr_name) - end - - # Updates the attribute identified by attr_name with the specified +value+. - # (Alias for the protected write_attribute method). - def []=(attr_name, value) - if attr_name.is_a?(String) and attr_name != attr_name.split(ID_SEP).first - attr_name = attr_name.split(ID_SEP) - end - - if attr_name.is_a? Array - value = value.split(ID_SEP) if value.is_a? String - unless value.length == attr_name.length - raise "Number of attr_names and values do not match" - end - #breakpoint - [attr_name, value].transpose.map {|name,val| write_attribute(name.to_s, val)} - else - write_attribute(attr_name, value) - end - end - end -end +module CompositePrimaryKeys + module ActiveRecord #:nodoc: + class CompositeKeyError < StandardError #:nodoc: + end + + module Base #:nodoc: + + INVALID_FOR_COMPOSITE_KEYS = 'Not appropriate for composite primary keys' + NOT_IMPLEMENTED_YET = 'Not implemented for composite primary keys yet' + + def self.append_features(base) + super + base.send(:include, InstanceMethods) + base.extend(ClassMethods) + end + + module ClassMethods + def set_primary_keys(*keys) + keys = keys.first if keys.first.is_a?(Array) + keys = keys.map { |k| k.to_sym } + cattr_accessor :primary_keys + self.primary_keys = keys.to_composite_keys + + class_eval <<-EOV + extend CompositeClassMethods + include CompositeInstanceMethods + + include CompositePrimaryKeys::ActiveRecord::Associations + include CompositePrimaryKeys::ActiveRecord::AssociationPreload + include CompositePrimaryKeys::ActiveRecord::Calculations + include CompositePrimaryKeys::ActiveRecord::AttributeMethods + EOV + end + + def composite? + false + end + end + + module InstanceMethods + def composite?; self.class.composite?; end + end + + module CompositeInstanceMethods + + # A model instance's primary keys is always available as model.ids + # whether you name it the default 'id' or set it to something else. + def id + attr_names = self.class.primary_keys + CompositeIds.new(attr_names.map { |attr_name| read_attribute(attr_name) }) + end + alias_method :ids, :id + + def to_param + id.to_s + end + + def id_before_type_cast #:nodoc: + raise CompositeKeyError, CompositePrimaryKeys::ActiveRecord::Base::NOT_IMPLEMENTED_YET + end + + def quoted_id #:nodoc: + [self.class.primary_keys, ids]. + transpose. + map {|attr_name,id| quote_value(id, column_for_attribute(attr_name))}. + to_composite_ids + end + + # Sets the primary ID. + def id=(ids) + ids = ids.split(ID_SEP) if ids.is_a?(String) + ids.flatten! + unless ids.is_a?(Array) and ids.length == self.class.primary_keys.length + raise "#{self.class}.id= requires #{self.class.primary_keys.length} ids" + end + [primary_keys, ids].transpose.each {|key, an_id| write_attribute(key , an_id)} + id + end + + # Returns a clone of the record that hasn't been assigned an id yet and + # is treated as a new record. Note that this is a "shallow" clone: + # it copies the object's attributes only, not its associations. + # The extent of a "deep" clone is application-specific and is therefore + # left to the application to implement according to its need. + def clone + attrs = self.attributes_before_type_cast + self.class.primary_keys.each {|key| attrs.delete(key.to_s)} + self.class.new do |record| + record.send :instance_variable_set, '@attributes', attrs + end + end + + + private + # The xx_without_callbacks methods are overwritten as that is the end of the alias chain + + # Creates a new record with values matching those of the instance attributes. + def create_without_callbacks + unless self.id + raise CompositeKeyError, "Composite keys do not generated ids from sequences, you must provide id values" + end + attributes_minus_pks = attributes_with_quotes(false) + quoted_pk_columns = self.class.primary_key.map { |col| connection.quote_column_name(col) } + cols = quoted_column_names(attributes_minus_pks) << quoted_pk_columns + vals = attributes_minus_pks.values << quoted_id + connection.insert( + "INSERT INTO #{self.class.quoted_table_name} " + + "(#{cols.join(', ')}) " + + "VALUES (#{vals.join(', ')})", + "#{self.class.name} Create", + self.class.primary_key, + self.id + ) + @new_record = false + return true + end + + # Updates the associated record with values matching those of the instance attributes. + def update_without_callbacks + where_clause_terms = [self.class.primary_key, quoted_id].transpose.map do |pair| + "(#{connection.quote_column_name(pair[0])} = #{pair[1]})" + end + where_clause = where_clause_terms.join(" AND ") + connection.update( + "UPDATE #{self.class.quoted_table_name} " + + "SET #{quoted_comma_pair_list(connection, attributes_with_quotes(false))} " + + "WHERE #{where_clause}", + "#{self.class.name} Update" + ) + return true + end + + # Deletes the record in the database and freezes this instance to reflect that no changes should + # be made (since they can't be persisted). + def destroy_without_callbacks + where_clause_terms = [self.class.primary_key, quoted_id].transpose.map do |pair| + "(#{connection.quote_column_name(pair[0])} = #{pair[1]})" + end + where_clause = where_clause_terms.join(" AND ") + unless new_record? + connection.delete( + "DELETE FROM #{self.class.quoted_table_name} " + + "WHERE #{where_clause}", + "#{self.class.name} Destroy" + ) + end + freeze + end + end + + module CompositeClassMethods + def primary_key; primary_keys; end + def primary_key=(keys); primary_keys = keys; end + + def composite? + true + end + + #ids_to_s([[1,2],[7,3]]) -> "(1,2),(7,3)" + #ids_to_s([[1,2],[7,3]], ',', ';') -> "1,2;7,3" + def ids_to_s(many_ids, id_sep = CompositePrimaryKeys::ID_SEP, list_sep = ',', left_bracket = '(', right_bracket = ')') + many_ids.map {|ids| "#{left_bracket}#{ids}#{right_bracket}"}.join(list_sep) + end + + # Creates WHERE condition from list of composited ids + # User.update_all({:role => 'admin'}, :conditions => composite_where_clause([[1, 2], [2, 2]])) #=> UPDATE admins SET admin.role='admin' WHERE (admin.type=1 AND admin.type2=2) OR (admin.type=2 AND admin.type2=2) + # User.find(:all, :conditions => composite_where_clause([[1, 2], [2, 2]])) #=> SELECT * FROM admins WHERE (admin.type=1 AND admin.type2=2) OR (admin.type=2 AND admin.type2=2) + def composite_where_clause(ids) + if ids.is_a?(String) + ids = [[ids]] + elsif not ids.first.is_a?(Array) # if single comp key passed, turn into an array of 1 + ids = [ids.to_composite_ids] + end + + ids.map do |id_set| + [primary_keys, id_set].transpose.map do |key, id| + "#{table_name}.#{key.to_s}=#{sanitize(id)}" + end.join(" AND ") + end.join(") OR (") + end + + # Returns true if the given +ids+ represents the primary keys of a record in the database, false otherwise. + # Example: + # Person.exists?(5,7) + def exists?(ids) + if ids.is_a?(Array) && ids.first.is_a?(String) + count(:conditions => ids) > 0 + else + obj = find(ids) rescue false + !obj.nil? and obj.is_a?(self) + end + end + + # Deletes the record with the given +ids+ without instantiating an object first, e.g. delete(1,2) + # If an array of ids is provided (e.g. delete([1,2], [3,4]), all of them + # are deleted. + def delete(*ids) + unless ids.is_a?(Array); raise "*ids must be an Array"; end + ids = [ids.to_composite_ids] if not ids.first.is_a?(Array) + where_clause = ids.map do |id_set| + [primary_keys, id_set].transpose.map do |key, id| + "#{quoted_table_name}.#{connection.quote_column_name(key.to_s)}=#{sanitize(id)}" + end.join(" AND ") + end.join(") OR (") + delete_all([ "(#{where_clause})" ]) + end + + # Destroys the record with the given +ids+ by instantiating the object and calling #destroy (all the callbacks are the triggered). + # If an array of ids is provided, all of them are destroyed. + def destroy(*ids) + unless ids.is_a?(Array); raise "*ids must be an Array"; end + if ids.first.is_a?(Array) + ids = ids.map{|compids| compids.to_composite_ids} + else + ids = ids.to_composite_ids + end + ids.first.is_a?(CompositeIds) ? ids.each { |id_set| find(id_set).destroy } : find(ids).destroy + end + + # Returns an array of column objects for the table associated with this class. + # Each column that matches to one of the primary keys has its + # primary attribute set to true + def columns + unless @columns + @columns = connection.columns(table_name, "#{name} Columns") + @columns.each {|column| column.primary = primary_keys.include?(column.name.to_sym)} + end + @columns + end + + ## DEACTIVATED METHODS ## + public + # Lazy-set the sequence name to the connection's default. This method + # is only ever called once since set_sequence_name overrides it. + def sequence_name #:nodoc: + raise CompositeKeyError, CompositePrimaryKeys::ActiveRecord::Base::INVALID_FOR_COMPOSITE_KEYS + end + + def reset_sequence_name #:nodoc: + raise CompositeKeyError, CompositePrimaryKeys::ActiveRecord::Base::INVALID_FOR_COMPOSITE_KEYS + end + + def set_primary_key(value = nil, &block) + raise CompositeKeyError, CompositePrimaryKeys::ActiveRecord::Base::INVALID_FOR_COMPOSITE_KEYS + end + + private + def find_one(id, options) + raise CompositeKeyError, CompositePrimaryKeys::ActiveRecord::Base::INVALID_FOR_COMPOSITE_KEYS + end + + def find_some(ids, options) + raise CompositeKeyError, CompositePrimaryKeys::ActiveRecord::Base::INVALID_FOR_COMPOSITE_KEYS + end + + def find_from_ids(ids, options) + ids = ids.first if ids.last == nil + conditions = " AND (#{sanitize_sql(options[:conditions])})" if options[:conditions] + # if ids is just a flat list, then its size must = primary_key.length (one id per primary key, in order) + # if ids is list of lists, then each inner list must follow rule above + if ids.first.is_a? String + # find '2,1' -> ids = ['2,1'] + # find '2,1;7,3' -> ids = ['2,1;7,3'] + ids = ids.first.split(ID_SET_SEP).map {|id_set| id_set.split(ID_SEP).to_composite_ids} + # find '2,1;7,3' -> ids = [['2','1'],['7','3']], inner [] are CompositeIds + end + ids = [ids.to_composite_ids] if not ids.first.kind_of?(Array) + ids.each do |id_set| + unless id_set.is_a?(Array) + raise "Ids must be in an Array, instead received: #{id_set.inspect}" + end + unless id_set.length == primary_keys.length + raise "#{id_set.inspect}: Incorrect number of primary keys for #{class_name}: #{primary_keys.inspect}" + end + end + + # Let keys = [:a, :b] + # If ids = [[10, 50], [11, 51]], then :conditions => + # "(#{quoted_table_name}.a, #{quoted_table_name}.b) IN ((10, 50), (11, 51))" + + conditions = ids.map do |id_set| + [primary_keys, id_set].transpose.map do |key, id| + col = columns_hash[key.to_s] + val = quote_value(id, col) + "#{quoted_table_name}.#{connection.quote_column_name(key.to_s)}=#{val}" + end.join(" AND ") + end.join(") OR (") + + options.update :conditions => "(#{conditions})" + + result = find_every(options) + + if result.size == ids.size + ids.size == 1 ? result[0] : result + else + raise ::ActiveRecord::RecordNotFound, "Couldn't find all #{name.pluralize} with IDs (#{ids.inspect})#{conditions}" + end + end + end + end + end +end + + +module ActiveRecord + ID_SEP = ',' + ID_SET_SEP = ';' + + class Base + # Allows +attr_name+ to be the list of primary_keys, and returns the id + # of the object + # e.g. @object[@object.class.primary_key] => [1,1] + def [](attr_name) + if attr_name.is_a?(String) and attr_name != attr_name.split(ID_SEP).first + attr_name = attr_name.split(ID_SEP) + end + attr_name.is_a?(Array) ? + attr_name.map {|name| read_attribute(name)} : + read_attribute(attr_name) + end + + # Updates the attribute identified by attr_name with the specified +value+. + # (Alias for the protected write_attribute method). + def []=(attr_name, value) + if attr_name.is_a?(String) and attr_name != attr_name.split(ID_SEP).first + attr_name = attr_name.split(ID_SEP) + end + + if attr_name.is_a? Array + value = value.split(ID_SEP) if value.is_a? String + unless value.length == attr_name.length + raise "Number of attr_names and values do not match" + end + #breakpoint + [attr_name, value].transpose.map {|name,val| write_attribute(name.to_s, val)} + else + write_attribute(attr_name, value) + end + end + end +end diff --git a/vendor/gems/composite_primary_keys-2.2.2/lib/composite_primary_keys/composite_arrays.rb b/vendor/gems/composite_primary_keys-2.2.2/lib/composite_primary_keys/composite_arrays.rb index 030c416f3..dab39142b 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/lib/composite_primary_keys/composite_arrays.rb +++ b/vendor/gems/composite_primary_keys-2.2.2/lib/composite_primary_keys/composite_arrays.rb @@ -1,30 +1,30 @@ -module CompositePrimaryKeys - ID_SEP = ',' - ID_SET_SEP = ';' - - module ArrayExtension - def to_composite_keys - CompositeKeys.new(self) - end - - def to_composite_ids - CompositeIds.new(self) - end - end - - class CompositeArray < Array - def to_s - join(ID_SEP) - end - end - - class CompositeKeys < CompositeArray - - end - - class CompositeIds < CompositeArray - - end -end - -Array.send(:include, CompositePrimaryKeys::ArrayExtension) +module CompositePrimaryKeys + ID_SEP = ',' + ID_SET_SEP = ';' + + module ArrayExtension + def to_composite_keys + CompositeKeys.new(self) + end + + def to_composite_ids + CompositeIds.new(self) + end + end + + class CompositeArray < Array + def to_s + join(ID_SEP) + end + end + + class CompositeKeys < CompositeArray + + end + + class CompositeIds < CompositeArray + + end +end + +Array.send(:include, CompositePrimaryKeys::ArrayExtension) diff --git a/vendor/gems/composite_primary_keys-2.2.2/lib/composite_primary_keys/reflection.rb b/vendor/gems/composite_primary_keys-2.2.2/lib/composite_primary_keys/reflection.rb index 309baf118..2d82d9c8a 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/lib/composite_primary_keys/reflection.rb +++ b/vendor/gems/composite_primary_keys-2.2.2/lib/composite_primary_keys/reflection.rb @@ -1,19 +1,19 @@ -module ActiveRecord - module Reflection - class AssociationReflection - def primary_key_name - return @primary_key_name if @primary_key_name - case - when macro == :belongs_to - @primary_key_name = options[:foreign_key] || class_name.foreign_key - when options[:as] - @primary_key_name = options[:foreign_key] || "#{options[:as]}_id" - else - @primary_key_name = options[:foreign_key] || active_record.name.foreign_key - end - @primary_key_name = @primary_key_name.to_composite_keys.to_s if @primary_key_name.is_a? Array - @primary_key_name - end - end - end +module ActiveRecord + module Reflection + class AssociationReflection + def primary_key_name + return @primary_key_name if @primary_key_name + case + when macro == :belongs_to + @primary_key_name = options[:foreign_key] || class_name.foreign_key + when options[:as] + @primary_key_name = options[:foreign_key] || "#{options[:as]}_id" + else + @primary_key_name = options[:foreign_key] || active_record.name.foreign_key + end + @primary_key_name = @primary_key_name.to_composite_keys.to_s if @primary_key_name.is_a? Array + @primary_key_name + end + end + end end \ No newline at end of file diff --git a/vendor/gems/composite_primary_keys-2.2.2/lib/composite_primary_keys/version.rb b/vendor/gems/composite_primary_keys-2.2.2/lib/composite_primary_keys/version.rb index 0b83ba692..49a11be2a 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/lib/composite_primary_keys/version.rb +++ b/vendor/gems/composite_primary_keys-2.2.2/lib/composite_primary_keys/version.rb @@ -1,8 +1,8 @@ -module CompositePrimaryKeys - module VERSION #:nodoc: - MAJOR = 2 - MINOR = 2 - TINY = 2 - STRING = [MAJOR, MINOR, TINY].join('.') - end -end +module CompositePrimaryKeys + module VERSION #:nodoc: + MAJOR = 2 + MINOR = 2 + TINY = 2 + STRING = [MAJOR, MINOR, TINY].join('.') + end +end diff --git a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/article.rb b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/article.rb index 7233f8126..7fae392bd 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/article.rb +++ b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/article.rb @@ -1,5 +1,5 @@ -class Article < ActiveRecord::Base - has_many :readings - has_many :users, :through => :readings -end - +class Article < ActiveRecord::Base + has_many :readings + has_many :users, :through => :readings +end + diff --git a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/articles.yml b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/articles.yml index e51060463..f4cb4778a 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/articles.yml +++ b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/articles.yml @@ -1,6 +1,6 @@ -first: - id: 1 - name: Article One -second: - id: 2 +first: + id: 1 + name: Article One +second: + id: 2 name: Article Two \ No newline at end of file diff --git a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/product.rb b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/product.rb index 5466dcabe..e780fd2f4 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/product.rb +++ b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/product.rb @@ -1,7 +1,7 @@ -class Product < ActiveRecord::Base - set_primary_keys :id # redundant - has_many :product_tariffs, :foreign_key => :product_id - has_one :product_tariff, :foreign_key => :product_id - - has_many :tariffs, :through => :product_tariffs, :foreign_key => [:tariff_id, :tariff_start_date] -end +class Product < ActiveRecord::Base + set_primary_keys :id # redundant + has_many :product_tariffs, :foreign_key => :product_id + has_one :product_tariff, :foreign_key => :product_id + + has_many :tariffs, :through => :product_tariffs, :foreign_key => [:tariff_id, :tariff_start_date] +end diff --git a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/product_tariff.rb b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/product_tariff.rb index cbabee7c5..d5c9befbb 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/product_tariff.rb +++ b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/product_tariff.rb @@ -1,5 +1,5 @@ -class ProductTariff < ActiveRecord::Base - set_primary_keys :product_id, :tariff_id, :tariff_start_date - belongs_to :product, :foreign_key => :product_id - belongs_to :tariff, :foreign_key => [:tariff_id, :tariff_start_date] -end +class ProductTariff < ActiveRecord::Base + set_primary_keys :product_id, :tariff_id, :tariff_start_date + belongs_to :product, :foreign_key => :product_id + belongs_to :tariff, :foreign_key => [:tariff_id, :tariff_start_date] +end diff --git a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/product_tariffs.yml b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/product_tariffs.yml index 27a464fb3..72be1e7ad 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/product_tariffs.yml +++ b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/product_tariffs.yml @@ -1,12 +1,12 @@ -first_flat: - product_id: 1 - tariff_id: 1 - tariff_start_date: <%= Date.today.to_s(:db) %> -first_free: - product_id: 1 - tariff_id: 2 - tariff_start_date: <%= Date.today.to_s(:db) %> -second_free: - product_id: 2 - tariff_id: 2 - tariff_start_date: <%= Date.today.to_s(:db) %> +first_flat: + product_id: 1 + tariff_id: 1 + tariff_start_date: <%= Date.today.to_s(:db) %> +first_free: + product_id: 1 + tariff_id: 2 + tariff_start_date: <%= Date.today.to_s(:db) %> +second_free: + product_id: 2 + tariff_id: 2 + tariff_start_date: <%= Date.today.to_s(:db) %> diff --git a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/products.yml b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/products.yml index 3c38a5ba0..c436c296b 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/products.yml +++ b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/products.yml @@ -1,6 +1,6 @@ -first_product: - id: 1 - name: Product One -second_product: - id: 2 +first_product: + id: 1 + name: Product One +second_product: + id: 2 name: Product Two \ No newline at end of file diff --git a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/reading.rb b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/reading.rb index 2e8197062..014d8b810 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/reading.rb +++ b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/reading.rb @@ -1,4 +1,4 @@ -class Reading < ActiveRecord::Base - belongs_to :article - belongs_to :user -end +class Reading < ActiveRecord::Base + belongs_to :article + belongs_to :user +end diff --git a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/readings.yml b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/readings.yml index e3afaa9cd..36e9ac300 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/readings.yml +++ b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/readings.yml @@ -1,10 +1,10 @@ -santiago_first: - id: 1 - user_id: 1 - article_id: 1 - rating: 4 -santiago_second: - id: 2 - user_id: 1 - article_id: 2 +santiago_first: + id: 1 + user_id: 1 + article_id: 1 + rating: 4 +santiago_second: + id: 2 + user_id: 1 + article_id: 2 rating: 5 \ No newline at end of file diff --git a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/reference_code.rb b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/reference_code.rb index 594d8d8be..e20fb0644 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/reference_code.rb +++ b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/reference_code.rb @@ -1,7 +1,7 @@ -class ReferenceCode < ActiveRecord::Base - set_primary_keys :reference_type_id, :reference_code - - belongs_to :reference_type, :foreign_key => "reference_type_id" - - validates_presence_of :reference_code, :code_label, :abbreviation -end +class ReferenceCode < ActiveRecord::Base + set_primary_keys :reference_type_id, :reference_code + + belongs_to :reference_type, :foreign_key => "reference_type_id" + + validates_presence_of :reference_code, :code_label, :abbreviation +end diff --git a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/reference_codes.yml b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/reference_codes.yml index 397938199..f4d88bc86 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/reference_codes.yml +++ b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/reference_codes.yml @@ -1,28 +1,28 @@ -name_prefix_mr: - reference_type_id: 1 - reference_code: 1 - code_label: MR - abbreviation: Mr -name_prefix_mrs: - reference_type_id: 1 - reference_code: 2 - code_label: MRS - abbreviation: Mrs -name_prefix_ms: - reference_type_id: 1 - reference_code: 3 - code_label: MS - abbreviation: Ms - -gender_male: - reference_type_id: 2 - reference_code: 1 - code_label: MALE - abbreviation: Male -gender_female: - reference_type_id: 2 - reference_code: 2 - code_label: FEMALE - abbreviation: Female - +name_prefix_mr: + reference_type_id: 1 + reference_code: 1 + code_label: MR + abbreviation: Mr +name_prefix_mrs: + reference_type_id: 1 + reference_code: 2 + code_label: MRS + abbreviation: Mrs +name_prefix_ms: + reference_type_id: 1 + reference_code: 3 + code_label: MS + abbreviation: Ms + +gender_male: + reference_type_id: 2 + reference_code: 1 + code_label: MALE + abbreviation: Male +gender_female: + reference_type_id: 2 + reference_code: 2 + code_label: FEMALE + abbreviation: Female + \ No newline at end of file diff --git a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/reference_type.rb b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/reference_type.rb index 5b2b12b4e..c09bd2f20 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/reference_type.rb +++ b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/reference_type.rb @@ -1,7 +1,7 @@ -class ReferenceType < ActiveRecord::Base - set_primary_key :reference_type_id - has_many :reference_codes, :foreign_key => "reference_type_id" - - validates_presence_of :type_label, :abbreviation - validates_uniqueness_of :type_label -end +class ReferenceType < ActiveRecord::Base + set_primary_key :reference_type_id + has_many :reference_codes, :foreign_key => "reference_type_id" + + validates_presence_of :type_label, :abbreviation + validates_uniqueness_of :type_label +end diff --git a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/reference_types.yml b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/reference_types.yml index 0520ba9f9..9c5e3d347 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/reference_types.yml +++ b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/reference_types.yml @@ -1,9 +1,9 @@ -name_prefix: - reference_type_id: 1 - type_label: NAME_PREFIX - abbreviation: Name Prefix - -gender: - reference_type_id: 2 - type_label: GENDER - abbreviation: Gender +name_prefix: + reference_type_id: 1 + type_label: NAME_PREFIX + abbreviation: Name Prefix + +gender: + reference_type_id: 2 + type_label: GENDER + abbreviation: Gender diff --git a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/suburb.rb b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/suburb.rb index 93045350e..f2eb181c3 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/suburb.rb +++ b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/suburb.rb @@ -1,6 +1,6 @@ -class Suburb < ActiveRecord::Base - set_primary_keys :city_id, :suburb_id - has_many :streets, :foreign_key => [:city_id, :suburb_id] - has_many :first_streets, :foreign_key => [:city_id, :suburb_id], - :class_name => 'Street', :conditions => "streets.name = 'First Street'" +class Suburb < ActiveRecord::Base + set_primary_keys :city_id, :suburb_id + has_many :streets, :foreign_key => [:city_id, :suburb_id] + has_many :first_streets, :foreign_key => [:city_id, :suburb_id], + :class_name => 'Street', :conditions => "streets.name = 'First Street'" end \ No newline at end of file diff --git a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/suburbs.yml b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/suburbs.yml index efae0c0a2..d230fbae4 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/suburbs.yml +++ b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/suburbs.yml @@ -1,9 +1,9 @@ -first: - city_id: 1 - suburb_id: 1 - name: First Suburb -second: - city_id: 2 - suburb_id: 1 - name: Second Suburb +first: + city_id: 1 + suburb_id: 1 + name: First Suburb +second: + city_id: 2 + suburb_id: 1 + name: Second Suburb \ No newline at end of file diff --git a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/tariff.rb b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/tariff.rb index d5cb07da1..3feba4434 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/tariff.rb +++ b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/tariff.rb @@ -1,6 +1,6 @@ -class Tariff < ActiveRecord::Base - set_primary_keys [:tariff_id, :start_date] - has_many :product_tariffs, :foreign_key => [:tariff_id, :tariff_start_date] - has_one :product_tariff, :foreign_key => [:tariff_id, :tariff_start_date] - has_many :products, :through => :product_tariffs, :foreign_key => [:tariff_id, :tariff_start_date] -end +class Tariff < ActiveRecord::Base + set_primary_keys [:tariff_id, :start_date] + has_many :product_tariffs, :foreign_key => [:tariff_id, :tariff_start_date] + has_one :product_tariff, :foreign_key => [:tariff_id, :tariff_start_date] + has_many :products, :through => :product_tariffs, :foreign_key => [:tariff_id, :tariff_start_date] +end diff --git a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/tariffs.yml b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/tariffs.yml index 7346fc510..997ebb8f1 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/tariffs.yml +++ b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/tariffs.yml @@ -1,13 +1,13 @@ -flat: - tariff_id: 1 - start_date: <%= Date.today.to_s(:db) %> - amount: 50 -free: - tariff_id: 2 - start_date: <%= Date.today.to_s(:db) %> - amount: 0 -flat_future: - tariff_id: 1 - start_date: <%= Date.today.next.to_s(:db) %> - amount: 100 +flat: + tariff_id: 1 + start_date: <%= Date.today.to_s(:db) %> + amount: 50 +free: + tariff_id: 2 + start_date: <%= Date.today.to_s(:db) %> + amount: 0 +flat_future: + tariff_id: 1 + start_date: <%= Date.today.next.to_s(:db) %> + amount: 100 \ No newline at end of file diff --git a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/user.rb b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/user.rb index a8487c49f..674481835 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/user.rb +++ b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/user.rb @@ -1,10 +1,10 @@ -class User < ActiveRecord::Base - has_many :readings - has_many :articles, :through => :readings - has_many :comments, :as => :person - has_many :hacks, :through => :comments, :source => :hack - - def find_custom_articles - articles.find(:all, :conditions => ["name = ?", "Article One"]) - end -end +class User < ActiveRecord::Base + has_many :readings + has_many :articles, :through => :readings + has_many :comments, :as => :person + has_many :hacks, :through => :comments, :source => :hack + + def find_custom_articles + articles.find(:all, :conditions => ["name = ?", "Article One"]) + end +end diff --git a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/users.yml b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/users.yml index d33a38a4a..858c47cab 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/users.yml +++ b/vendor/gems/composite_primary_keys-2.2.2/test/fixtures/users.yml @@ -1,6 +1,6 @@ -santiago: - id: 1 - name: Santiago -drnic: - id: 2 +santiago: + id: 1 + name: Santiago +drnic: + id: 2 name: Dr Nic \ No newline at end of file diff --git a/vendor/gems/composite_primary_keys-2.2.2/test/hash_tricks.rb b/vendor/gems/composite_primary_keys-2.2.2/test/hash_tricks.rb index b37bbbbf1..856fc5fea 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/test/hash_tricks.rb +++ b/vendor/gems/composite_primary_keys-2.2.2/test/hash_tricks.rb @@ -1,34 +1,34 @@ -# From: -# http://www.bigbold.com/snippets/posts/show/2178 -# http://blog.caboo.se/articles/2006/06/11/stupid-hash-tricks -# -# An example utilisation of these methods in a controller is: -# def some_action -# # some script kiddie also passed in :bee, which we don't want tampered with _here_. -# @model = Model.create(params.pass(:foo, :bar)) -# end -class Hash - - # lets through the keys in the argument - # >> {:one => 1, :two => 2, :three => 3}.pass(:one) - # => {:one=>1} - def pass(*keys) - keys = keys.first if keys.first.is_a?(Array) - tmp = self.clone - tmp.delete_if {|k,v| ! keys.include?(k.to_sym) } - tmp.delete_if {|k,v| ! keys.include?(k.to_s) } - tmp - end - - # blocks the keys in the arguments - # >> {:one => 1, :two => 2, :three => 3}.block(:one) - # => {:two=>2, :three=>3} - def block(*keys) - keys = keys.first if keys.first.is_a?(Array) - tmp = self.clone - tmp.delete_if {|k,v| keys.include?(k.to_sym) } - tmp.delete_if {|k,v| keys.include?(k.to_s) } - tmp - end - -end +# From: +# http://www.bigbold.com/snippets/posts/show/2178 +# http://blog.caboo.se/articles/2006/06/11/stupid-hash-tricks +# +# An example utilisation of these methods in a controller is: +# def some_action +# # some script kiddie also passed in :bee, which we don't want tampered with _here_. +# @model = Model.create(params.pass(:foo, :bar)) +# end +class Hash + + # lets through the keys in the argument + # >> {:one => 1, :two => 2, :three => 3}.pass(:one) + # => {:one=>1} + def pass(*keys) + keys = keys.first if keys.first.is_a?(Array) + tmp = self.clone + tmp.delete_if {|k,v| ! keys.include?(k.to_sym) } + tmp.delete_if {|k,v| ! keys.include?(k.to_s) } + tmp + end + + # blocks the keys in the arguments + # >> {:one => 1, :two => 2, :three => 3}.block(:one) + # => {:two=>2, :three=>3} + def block(*keys) + keys = keys.first if keys.first.is_a?(Array) + tmp = self.clone + tmp.delete_if {|k,v| keys.include?(k.to_sym) } + tmp.delete_if {|k,v| keys.include?(k.to_s) } + tmp + end + +end diff --git a/vendor/gems/composite_primary_keys-2.2.2/test/test_associations.rb b/vendor/gems/composite_primary_keys-2.2.2/test/test_associations.rb index 78302f86c..4c69ce57b 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/test/test_associations.rb +++ b/vendor/gems/composite_primary_keys-2.2.2/test/test_associations.rb @@ -1,160 +1,160 @@ -require 'abstract_unit' -require 'fixtures/article' -require 'fixtures/product' -require 'fixtures/tariff' -require 'fixtures/product_tariff' -require 'fixtures/suburb' -require 'fixtures/street' -require 'fixtures/restaurant' -require 'fixtures/dorm' -require 'fixtures/room' -require 'fixtures/room_attribute' -require 'fixtures/room_attribute_assignment' -require 'fixtures/student' -require 'fixtures/room_assignment' -require 'fixtures/user' -require 'fixtures/reading' - -class TestAssociations < Test::Unit::TestCase - fixtures :articles, :products, :tariffs, :product_tariffs, :suburbs, :streets, :restaurants, :restaurants_suburbs, - :dorms, :rooms, :room_attributes, :room_attribute_assignments, :students, :room_assignments, :users, :readings - - def test_has_many_through_with_conditions_when_through_association_is_not_composite - user = User.find(:first) - assert_equal 1, user.articles.find(:all, :conditions => ["articles.name = ?", "Article One"]).size - end - - def test_has_many_through_with_conditions_when_through_association_is_composite - room = Room.find(:first) - assert_equal 0, room.room_attributes.find(:all, :conditions => ["room_attributes.name != ?", "keg"]).size - end - - def test_has_many_through_on_custom_finder_when_through_association_is_composite_finder_when_through_association_is_not_composite - user = User.find(:first) - assert_equal 1, user.find_custom_articles.size - end - - def test_has_many_through_on_custom_finder_when_through_association_is_composite - room = Room.find(:first) - assert_equal 0, room.find_custom_room_attributes.size - end - - def test_count - assert_equal 2, Product.count(:include => :product_tariffs) - assert_equal 3, Tariff.count(:include => :product_tariffs) - assert_equal 2, Tariff.count(:group => :start_date).size - end - - def test_products - assert_not_nil products(:first_product).product_tariffs - assert_equal 2, products(:first_product).product_tariffs.length - assert_not_nil products(:first_product).tariffs - assert_equal 2, products(:first_product).tariffs.length - assert_not_nil products(:first_product).product_tariff - end - - def test_product_tariffs - assert_not_nil product_tariffs(:first_flat).product - assert_not_nil product_tariffs(:first_flat).tariff - assert_equal Product, product_tariffs(:first_flat).product.class - assert_equal Tariff, product_tariffs(:first_flat).tariff.class - end - - def test_tariffs - assert_not_nil tariffs(:flat).product_tariffs - assert_equal 1, tariffs(:flat).product_tariffs.length - assert_not_nil tariffs(:flat).products - assert_equal 1, tariffs(:flat).products.length - assert_not_nil tariffs(:flat).product_tariff - end - - # Its not generating the instances of associated classes from the rows - def test_find_includes_products - assert @products = Product.find(:all, :include => :product_tariffs) - assert_equal 2, @products.length - assert_not_nil @products.first.instance_variable_get('@product_tariffs'), '@product_tariffs not set; should be array' - assert_equal 3, @products.inject(0) {|sum, tariff| sum + tariff.instance_variable_get('@product_tariffs').length}, - "Incorrect number of product_tariffs returned" - end - - def test_find_includes_tariffs - assert @tariffs = Tariff.find(:all, :include => :product_tariffs) - assert_equal 3, @tariffs.length - assert_not_nil @tariffs.first.instance_variable_get('@product_tariffs'), '@product_tariffs not set; should be array' - assert_equal 3, @tariffs.inject(0) {|sum, tariff| sum + tariff.instance_variable_get('@product_tariffs').length}, - "Incorrect number of product_tariffs returnedturned" - end - - def test_find_includes_product - assert @product_tariffs = ProductTariff.find(:all, :include => :product) - assert_equal 3, @product_tariffs.length - assert_not_nil @product_tariffs.first.instance_variable_get('@product'), '@product not set' - end - - def test_find_includes_comp_belongs_to_tariff - assert @product_tariffs = ProductTariff.find(:all, :include => :tariff) - assert_equal 3, @product_tariffs.length - assert_not_nil @product_tariffs.first.instance_variable_get('@tariff'), '@tariff not set' - end - - def test_find_includes_extended - assert @products = Product.find(:all, :include => {:product_tariffs => :tariff}) - assert_equal 3, @products.inject(0) {|sum, product| sum + product.instance_variable_get('@product_tariffs').length}, - "Incorrect number of product_tariffs returned" - - assert @tariffs = Tariff.find(:all, :include => {:product_tariffs => :product}) - assert_equal 3, @tariffs.inject(0) {|sum, tariff| sum + tariff.instance_variable_get('@product_tariffs').length}, - "Incorrect number of product_tariffs returned" - end - - def test_join_where_clause - @product = Product.find(:first, :include => :product_tariffs) - where_clause = @product.product_tariffs.composite_where_clause( - ['foo','bar'], [1,2] - ) - assert_equal('(foo=1 AND bar=2)', where_clause) - end - - def test_has_many_through - @products = Product.find(:all, :include => :tariffs) - assert_equal 3, @products.inject(0) {|sum, product| sum + product.instance_variable_get('@tariffs').length}, - "Incorrect number of tariffs returned" - end - - def test_has_many_through_when_not_pre_loaded - student = Student.find(:first) - rooms = student.rooms - assert_equal 1, rooms.size - assert_equal 1, rooms.first.dorm_id - assert_equal 1, rooms.first.room_id - end - - def test_has_many_through_when_through_association_is_composite - dorm = Dorm.find(:first) - assert_equal 1, dorm.rooms.length - assert_equal 1, dorm.rooms.first.room_attributes.length - assert_equal 'keg', dorm.rooms.first.room_attributes.first.name - end - - def test_associations_with_conditions - @suburb = Suburb.find([2, 1]) - assert_equal 2, @suburb.streets.size - - @suburb = Suburb.find([2, 1]) - assert_equal 1, @suburb.first_streets.size - - @suburb = Suburb.find([2, 1], :include => :streets) - assert_equal 2, @suburb.streets.size - - @suburb = Suburb.find([2, 1], :include => :first_streets) - assert_equal 1, @suburb.first_streets.size - end - - def test_has_and_belongs_to_many - @restaurant = Restaurant.find([1,1]) - assert_equal 2, @restaurant.suburbs.size - - @restaurant = Restaurant.find([1,1], :include => :suburbs) - assert_equal 2, @restaurant.suburbs.size - end -end +require 'abstract_unit' +require 'fixtures/article' +require 'fixtures/product' +require 'fixtures/tariff' +require 'fixtures/product_tariff' +require 'fixtures/suburb' +require 'fixtures/street' +require 'fixtures/restaurant' +require 'fixtures/dorm' +require 'fixtures/room' +require 'fixtures/room_attribute' +require 'fixtures/room_attribute_assignment' +require 'fixtures/student' +require 'fixtures/room_assignment' +require 'fixtures/user' +require 'fixtures/reading' + +class TestAssociations < Test::Unit::TestCase + fixtures :articles, :products, :tariffs, :product_tariffs, :suburbs, :streets, :restaurants, :restaurants_suburbs, + :dorms, :rooms, :room_attributes, :room_attribute_assignments, :students, :room_assignments, :users, :readings + + def test_has_many_through_with_conditions_when_through_association_is_not_composite + user = User.find(:first) + assert_equal 1, user.articles.find(:all, :conditions => ["articles.name = ?", "Article One"]).size + end + + def test_has_many_through_with_conditions_when_through_association_is_composite + room = Room.find(:first) + assert_equal 0, room.room_attributes.find(:all, :conditions => ["room_attributes.name != ?", "keg"]).size + end + + def test_has_many_through_on_custom_finder_when_through_association_is_composite_finder_when_through_association_is_not_composite + user = User.find(:first) + assert_equal 1, user.find_custom_articles.size + end + + def test_has_many_through_on_custom_finder_when_through_association_is_composite + room = Room.find(:first) + assert_equal 0, room.find_custom_room_attributes.size + end + + def test_count + assert_equal 2, Product.count(:include => :product_tariffs) + assert_equal 3, Tariff.count(:include => :product_tariffs) + assert_equal 2, Tariff.count(:group => :start_date).size + end + + def test_products + assert_not_nil products(:first_product).product_tariffs + assert_equal 2, products(:first_product).product_tariffs.length + assert_not_nil products(:first_product).tariffs + assert_equal 2, products(:first_product).tariffs.length + assert_not_nil products(:first_product).product_tariff + end + + def test_product_tariffs + assert_not_nil product_tariffs(:first_flat).product + assert_not_nil product_tariffs(:first_flat).tariff + assert_equal Product, product_tariffs(:first_flat).product.class + assert_equal Tariff, product_tariffs(:first_flat).tariff.class + end + + def test_tariffs + assert_not_nil tariffs(:flat).product_tariffs + assert_equal 1, tariffs(:flat).product_tariffs.length + assert_not_nil tariffs(:flat).products + assert_equal 1, tariffs(:flat).products.length + assert_not_nil tariffs(:flat).product_tariff + end + + # Its not generating the instances of associated classes from the rows + def test_find_includes_products + assert @products = Product.find(:all, :include => :product_tariffs) + assert_equal 2, @products.length + assert_not_nil @products.first.instance_variable_get('@product_tariffs'), '@product_tariffs not set; should be array' + assert_equal 3, @products.inject(0) {|sum, tariff| sum + tariff.instance_variable_get('@product_tariffs').length}, + "Incorrect number of product_tariffs returned" + end + + def test_find_includes_tariffs + assert @tariffs = Tariff.find(:all, :include => :product_tariffs) + assert_equal 3, @tariffs.length + assert_not_nil @tariffs.first.instance_variable_get('@product_tariffs'), '@product_tariffs not set; should be array' + assert_equal 3, @tariffs.inject(0) {|sum, tariff| sum + tariff.instance_variable_get('@product_tariffs').length}, + "Incorrect number of product_tariffs returnedturned" + end + + def test_find_includes_product + assert @product_tariffs = ProductTariff.find(:all, :include => :product) + assert_equal 3, @product_tariffs.length + assert_not_nil @product_tariffs.first.instance_variable_get('@product'), '@product not set' + end + + def test_find_includes_comp_belongs_to_tariff + assert @product_tariffs = ProductTariff.find(:all, :include => :tariff) + assert_equal 3, @product_tariffs.length + assert_not_nil @product_tariffs.first.instance_variable_get('@tariff'), '@tariff not set' + end + + def test_find_includes_extended + assert @products = Product.find(:all, :include => {:product_tariffs => :tariff}) + assert_equal 3, @products.inject(0) {|sum, product| sum + product.instance_variable_get('@product_tariffs').length}, + "Incorrect number of product_tariffs returned" + + assert @tariffs = Tariff.find(:all, :include => {:product_tariffs => :product}) + assert_equal 3, @tariffs.inject(0) {|sum, tariff| sum + tariff.instance_variable_get('@product_tariffs').length}, + "Incorrect number of product_tariffs returned" + end + + def test_join_where_clause + @product = Product.find(:first, :include => :product_tariffs) + where_clause = @product.product_tariffs.composite_where_clause( + ['foo','bar'], [1,2] + ) + assert_equal('(foo=1 AND bar=2)', where_clause) + end + + def test_has_many_through + @products = Product.find(:all, :include => :tariffs) + assert_equal 3, @products.inject(0) {|sum, product| sum + product.instance_variable_get('@tariffs').length}, + "Incorrect number of tariffs returned" + end + + def test_has_many_through_when_not_pre_loaded + student = Student.find(:first) + rooms = student.rooms + assert_equal 1, rooms.size + assert_equal 1, rooms.first.dorm_id + assert_equal 1, rooms.first.room_id + end + + def test_has_many_through_when_through_association_is_composite + dorm = Dorm.find(:first) + assert_equal 1, dorm.rooms.length + assert_equal 1, dorm.rooms.first.room_attributes.length + assert_equal 'keg', dorm.rooms.first.room_attributes.first.name + end + + def test_associations_with_conditions + @suburb = Suburb.find([2, 1]) + assert_equal 2, @suburb.streets.size + + @suburb = Suburb.find([2, 1]) + assert_equal 1, @suburb.first_streets.size + + @suburb = Suburb.find([2, 1], :include => :streets) + assert_equal 2, @suburb.streets.size + + @suburb = Suburb.find([2, 1], :include => :first_streets) + assert_equal 1, @suburb.first_streets.size + end + + def test_has_and_belongs_to_many + @restaurant = Restaurant.find([1,1]) + assert_equal 2, @restaurant.suburbs.size + + @restaurant = Restaurant.find([1,1], :include => :suburbs) + assert_equal 2, @restaurant.suburbs.size + end +end diff --git a/vendor/gems/composite_primary_keys-2.2.2/test/test_clone.rb b/vendor/gems/composite_primary_keys-2.2.2/test/test_clone.rb index 822974430..26e7970d5 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/test/test_clone.rb +++ b/vendor/gems/composite_primary_keys-2.2.2/test/test_clone.rb @@ -1,34 +1,34 @@ -require 'abstract_unit' -require 'fixtures/reference_type' -require 'fixtures/reference_code' - -class TestClone < Test::Unit::TestCase - fixtures :reference_types, :reference_codes - - CLASSES = { - :single => { - :class => ReferenceType, - :primary_keys => :reference_type_id, - }, - :dual => { - :class => ReferenceCode, - :primary_keys => [:reference_type_id, :reference_code], - }, - } - - def setup - self.class.classes = CLASSES - end - - def test_truth - testing_with do - clone = @first.clone - assert_equal @first.attributes.block(@klass.primary_key), clone.attributes - if composite? - @klass.primary_key.each {|key| assert_nil clone[key], "Primary key '#{key}' should be nil"} - else - assert_nil clone[@klass.primary_key], "Sole primary key should be nil" - end - end - end +require 'abstract_unit' +require 'fixtures/reference_type' +require 'fixtures/reference_code' + +class TestClone < Test::Unit::TestCase + fixtures :reference_types, :reference_codes + + CLASSES = { + :single => { + :class => ReferenceType, + :primary_keys => :reference_type_id, + }, + :dual => { + :class => ReferenceCode, + :primary_keys => [:reference_type_id, :reference_code], + }, + } + + def setup + self.class.classes = CLASSES + end + + def test_truth + testing_with do + clone = @first.clone + assert_equal @first.attributes.block(@klass.primary_key), clone.attributes + if composite? + @klass.primary_key.each {|key| assert_nil clone[key], "Primary key '#{key}' should be nil"} + else + assert_nil clone[@klass.primary_key], "Sole primary key should be nil" + end + end + end end \ No newline at end of file diff --git a/vendor/gems/composite_primary_keys-2.2.2/test/test_delete.rb b/vendor/gems/composite_primary_keys-2.2.2/test/test_delete.rb index cd79bbd72..2bd0d2abe 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/test/test_delete.rb +++ b/vendor/gems/composite_primary_keys-2.2.2/test/test_delete.rb @@ -1,96 +1,96 @@ -require 'abstract_unit' -require 'fixtures/reference_type' -require 'fixtures/reference_code' -require 'fixtures/department' -require 'fixtures/employee' - -class TestDelete < Test::Unit::TestCase - fixtures :reference_types, :reference_codes, :departments, :employees - - CLASSES = { - :single => { - :class => ReferenceType, - :primary_keys => :reference_type_id, - }, - :dual => { - :class => ReferenceCode, - :primary_keys => [:reference_type_id, :reference_code], - }, - } - - def setup - self.class.classes = CLASSES - end - - def test_destroy_one - testing_with do - #assert @first.destroy - assert true - end - end - - def test_destroy_one_via_class - testing_with do - assert @klass.destroy(*@first.id) - end - end - - def test_destroy_one_alone_via_class - testing_with do - assert @klass.destroy(@first.id) - end - end - - def test_delete_one - testing_with do - assert @klass.delete(*@first.id) if composite? - end - end - - def test_delete_one_alone - testing_with do - assert @klass.delete(@first.id) - end - end - - def test_delete_many - testing_with do - to_delete = @klass.find(:all)[0..1] - assert_equal 2, to_delete.length - end - end - - def test_delete_all - testing_with do - @klass.delete_all - end - end - - def test_clear_association - department = Department.find(1,1) - assert_equal 2, department.employees.size, "Before clear employee count should be 2." - department.employees.clear - assert_equal 0, department.employees.size, "After clear employee count should be 0." - department.reload - assert_equal 0, department.employees.size, "After clear and a reload from DB employee count should be 0." - end - - def test_delete_association - department = Department.find(1,1) - assert_equal 2, department.employees.size , "Before delete employee count should be 2." - first_employee = department.employees[0] - department.employees.delete(first_employee) - assert_equal 1, department.employees.size, "After delete employee count should be 1." - department.reload - assert_equal 1, department.employees.size, "After delete and a reload from DB employee count should be 1." - end - - def test_delete_records_for_has_many_association_with_composite_primary_key - reference_type = ReferenceType.find(1) - codes_to_delete = reference_type.reference_codes[0..1] - assert_equal 3, reference_type.reference_codes.size, "Before deleting records reference_code count should be 3." - reference_type.reference_codes.delete_records(codes_to_delete) - reference_type.reload - assert_equal 1, reference_type.reference_codes.size, "After deleting 2 records and a reload from DB reference_code count should be 1." - end -end +require 'abstract_unit' +require 'fixtures/reference_type' +require 'fixtures/reference_code' +require 'fixtures/department' +require 'fixtures/employee' + +class TestDelete < Test::Unit::TestCase + fixtures :reference_types, :reference_codes, :departments, :employees + + CLASSES = { + :single => { + :class => ReferenceType, + :primary_keys => :reference_type_id, + }, + :dual => { + :class => ReferenceCode, + :primary_keys => [:reference_type_id, :reference_code], + }, + } + + def setup + self.class.classes = CLASSES + end + + def test_destroy_one + testing_with do + #assert @first.destroy + assert true + end + end + + def test_destroy_one_via_class + testing_with do + assert @klass.destroy(*@first.id) + end + end + + def test_destroy_one_alone_via_class + testing_with do + assert @klass.destroy(@first.id) + end + end + + def test_delete_one + testing_with do + assert @klass.delete(*@first.id) if composite? + end + end + + def test_delete_one_alone + testing_with do + assert @klass.delete(@first.id) + end + end + + def test_delete_many + testing_with do + to_delete = @klass.find(:all)[0..1] + assert_equal 2, to_delete.length + end + end + + def test_delete_all + testing_with do + @klass.delete_all + end + end + + def test_clear_association + department = Department.find(1,1) + assert_equal 2, department.employees.size, "Before clear employee count should be 2." + department.employees.clear + assert_equal 0, department.employees.size, "After clear employee count should be 0." + department.reload + assert_equal 0, department.employees.size, "After clear and a reload from DB employee count should be 0." + end + + def test_delete_association + department = Department.find(1,1) + assert_equal 2, department.employees.size , "Before delete employee count should be 2." + first_employee = department.employees[0] + department.employees.delete(first_employee) + assert_equal 1, department.employees.size, "After delete employee count should be 1." + department.reload + assert_equal 1, department.employees.size, "After delete and a reload from DB employee count should be 1." + end + + def test_delete_records_for_has_many_association_with_composite_primary_key + reference_type = ReferenceType.find(1) + codes_to_delete = reference_type.reference_codes[0..1] + assert_equal 3, reference_type.reference_codes.size, "Before deleting records reference_code count should be 3." + reference_type.reference_codes.delete_records(codes_to_delete) + reference_type.reload + assert_equal 1, reference_type.reference_codes.size, "After deleting 2 records and a reload from DB reference_code count should be 1." + end +end diff --git a/vendor/gems/composite_primary_keys-2.2.2/test/test_dummy.rb b/vendor/gems/composite_primary_keys-2.2.2/test/test_dummy.rb index 44386685b..da21c4716 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/test/test_dummy.rb +++ b/vendor/gems/composite_primary_keys-2.2.2/test/test_dummy.rb @@ -1,28 +1,28 @@ -require 'abstract_unit' -require 'fixtures/reference_type' -require 'fixtures/reference_code' - -class TestDummy < Test::Unit::TestCase - fixtures :reference_types, :reference_codes - - classes = { - :single => { - :class => ReferenceType, - :primary_keys => :reference_type_id, - }, - :dual => { - :class => ReferenceCode, - :primary_keys => [:reference_type_id, :reference_code], - }, - } - - def setup - self.class.classes = classes - end - - def test_truth - testing_with do - assert true - end - end +require 'abstract_unit' +require 'fixtures/reference_type' +require 'fixtures/reference_code' + +class TestDummy < Test::Unit::TestCase + fixtures :reference_types, :reference_codes + + classes = { + :single => { + :class => ReferenceType, + :primary_keys => :reference_type_id, + }, + :dual => { + :class => ReferenceCode, + :primary_keys => [:reference_type_id, :reference_code], + }, + } + + def setup + self.class.classes = classes + end + + def test_truth + testing_with do + assert true + end + end end \ No newline at end of file diff --git a/vendor/gems/composite_primary_keys-2.2.2/test/test_find.rb b/vendor/gems/composite_primary_keys-2.2.2/test/test_find.rb index a07d30a64..c8c1af7dc 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/test/test_find.rb +++ b/vendor/gems/composite_primary_keys-2.2.2/test/test_find.rb @@ -1,73 +1,73 @@ -require 'abstract_unit' -require 'fixtures/reference_type' -require 'fixtures/reference_code' - -# Testing the find action on composite ActiveRecords with two primary keys -class TestFind < Test::Unit::TestCase - fixtures :reference_types, :reference_codes - - CLASSES = { - :single => { - :class => ReferenceType, - :primary_keys => [:reference_type_id], - }, - :dual => { - :class => ReferenceCode, - :primary_keys => [:reference_type_id, :reference_code], - }, - :dual_strs => { - :class => ReferenceCode, - :primary_keys => ['reference_type_id', 'reference_code'], - }, - } - - def setup - self.class.classes = CLASSES - end - - def test_find_first - testing_with do - obj = @klass.find(:first) - assert obj - assert_equal @klass, obj.class - end - end - - def test_find - testing_with do - found = @klass.find(*first_id) # e.g. find(1,1) or find 1,1 - assert found - assert_equal @klass, found.class - assert_equal found, @klass.find(found.id) - assert_equal found, @klass.find(found.to_param) - end - end - - def test_find_composite_ids - testing_with do - found = @klass.find(first_id) # e.g. find([1,1].to_composite_ids) - assert found - assert_equal @klass, found.class - assert_equal found, @klass.find(found.id) - assert_equal found, @klass.find(found.to_param) - end - end - - def test_to_param - testing_with do - assert_equal first_id_str, @first.to_param.to_s - end - end - - def things_to_look_at - testing_with do - assert_equal found, @klass.find(found.id.to_s) # fails for 2+ keys - end - end - - def test_not_found - assert_raise(::ActiveRecord::RecordNotFound) do - ReferenceCode.send :find, '999,999' - end - end +require 'abstract_unit' +require 'fixtures/reference_type' +require 'fixtures/reference_code' + +# Testing the find action on composite ActiveRecords with two primary keys +class TestFind < Test::Unit::TestCase + fixtures :reference_types, :reference_codes + + CLASSES = { + :single => { + :class => ReferenceType, + :primary_keys => [:reference_type_id], + }, + :dual => { + :class => ReferenceCode, + :primary_keys => [:reference_type_id, :reference_code], + }, + :dual_strs => { + :class => ReferenceCode, + :primary_keys => ['reference_type_id', 'reference_code'], + }, + } + + def setup + self.class.classes = CLASSES + end + + def test_find_first + testing_with do + obj = @klass.find(:first) + assert obj + assert_equal @klass, obj.class + end + end + + def test_find + testing_with do + found = @klass.find(*first_id) # e.g. find(1,1) or find 1,1 + assert found + assert_equal @klass, found.class + assert_equal found, @klass.find(found.id) + assert_equal found, @klass.find(found.to_param) + end + end + + def test_find_composite_ids + testing_with do + found = @klass.find(first_id) # e.g. find([1,1].to_composite_ids) + assert found + assert_equal @klass, found.class + assert_equal found, @klass.find(found.id) + assert_equal found, @klass.find(found.to_param) + end + end + + def test_to_param + testing_with do + assert_equal first_id_str, @first.to_param.to_s + end + end + + def things_to_look_at + testing_with do + assert_equal found, @klass.find(found.id.to_s) # fails for 2+ keys + end + end + + def test_not_found + assert_raise(::ActiveRecord::RecordNotFound) do + ReferenceCode.send :find, '999,999' + end + end end \ No newline at end of file diff --git a/vendor/gems/composite_primary_keys-2.2.2/test/test_ids.rb b/vendor/gems/composite_primary_keys-2.2.2/test/test_ids.rb index 9ba2d92a7..3cd4f3c9e 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/test/test_ids.rb +++ b/vendor/gems/composite_primary_keys-2.2.2/test/test_ids.rb @@ -1,97 +1,97 @@ -require 'abstract_unit' -require 'fixtures/reference_type' -require 'fixtures/reference_code' - -class TestIds < Test::Unit::TestCase - fixtures :reference_types, :reference_codes - - CLASSES = { - :single => { - :class => ReferenceType, - :primary_keys => [:reference_type_id], - }, - :dual => { - :class => ReferenceCode, - :primary_keys => [:reference_type_id, :reference_code], - }, - :dual_strs => { - :class => ReferenceCode, - :primary_keys => ['reference_type_id', 'reference_code'], - }, - } - - def setup - self.class.classes = CLASSES - end - - def test_id - testing_with do - assert_equal @first.id, @first.ids if composite? - end - end - - def test_id_to_s - testing_with do - assert_equal first_id_str, @first.id.to_s - assert_equal first_id_str, "#{@first.id}" - end - end - - def test_ids_to_s - testing_with do - order = @klass.primary_key.is_a?(String) ? @klass.primary_key : @klass.primary_key.join(',') - to_test = @klass.find(:all, :order => order)[0..1].map(&:id) - assert_equal '(1,1),(1,2)', @klass.ids_to_s(to_test) if @key_test == :dual - assert_equal '1,1;1,2', @klass.ids_to_s(to_test, ',', ';', '', '') if @key_test == :dual - end - end - - def test_composite_where_clause - testing_with do - where = 'reference_codes.reference_type_id=1 AND reference_codes.reference_code=2) OR (reference_codes.reference_type_id=2 AND reference_codes.reference_code=2' - assert_equal(where, @klass.composite_where_clause([[1, 2], [2, 2]])) if @key_test == :dual - end - end - - def test_set_ids_string - testing_with do - array = @primary_keys.collect {|key| 5} - expected = composite? ? array.to_composite_keys : array.first - @first.id = expected.to_s - assert_equal expected, @first.id - end - end - - def test_set_ids_array - testing_with do - array = @primary_keys.collect {|key| 5} - expected = composite? ? array.to_composite_keys : array.first - @first.id = expected - assert_equal expected, @first.id - end - end - - def test_set_ids_comp - testing_with do - array = @primary_keys.collect {|key| 5} - expected = composite? ? array.to_composite_keys : array.first - @first.id = expected - assert_equal expected, @first.id - end - end - - def test_primary_keys - testing_with do - if composite? - assert_not_nil @klass.primary_keys - assert_equal @primary_keys.map {|key| key.to_sym}, @klass.primary_keys - assert_equal @klass.primary_keys, @klass.primary_key - else - assert_not_nil @klass.primary_key - assert_equal @primary_keys, [@klass.primary_key.to_sym] - end - assert_equal @primary_keys.join(','), @klass.primary_key.to_s - # Need a :primary_keys should be Array with to_s overridden - end - end +require 'abstract_unit' +require 'fixtures/reference_type' +require 'fixtures/reference_code' + +class TestIds < Test::Unit::TestCase + fixtures :reference_types, :reference_codes + + CLASSES = { + :single => { + :class => ReferenceType, + :primary_keys => [:reference_type_id], + }, + :dual => { + :class => ReferenceCode, + :primary_keys => [:reference_type_id, :reference_code], + }, + :dual_strs => { + :class => ReferenceCode, + :primary_keys => ['reference_type_id', 'reference_code'], + }, + } + + def setup + self.class.classes = CLASSES + end + + def test_id + testing_with do + assert_equal @first.id, @first.ids if composite? + end + end + + def test_id_to_s + testing_with do + assert_equal first_id_str, @first.id.to_s + assert_equal first_id_str, "#{@first.id}" + end + end + + def test_ids_to_s + testing_with do + order = @klass.primary_key.is_a?(String) ? @klass.primary_key : @klass.primary_key.join(',') + to_test = @klass.find(:all, :order => order)[0..1].map(&:id) + assert_equal '(1,1),(1,2)', @klass.ids_to_s(to_test) if @key_test == :dual + assert_equal '1,1;1,2', @klass.ids_to_s(to_test, ',', ';', '', '') if @key_test == :dual + end + end + + def test_composite_where_clause + testing_with do + where = 'reference_codes.reference_type_id=1 AND reference_codes.reference_code=2) OR (reference_codes.reference_type_id=2 AND reference_codes.reference_code=2' + assert_equal(where, @klass.composite_where_clause([[1, 2], [2, 2]])) if @key_test == :dual + end + end + + def test_set_ids_string + testing_with do + array = @primary_keys.collect {|key| 5} + expected = composite? ? array.to_composite_keys : array.first + @first.id = expected.to_s + assert_equal expected, @first.id + end + end + + def test_set_ids_array + testing_with do + array = @primary_keys.collect {|key| 5} + expected = composite? ? array.to_composite_keys : array.first + @first.id = expected + assert_equal expected, @first.id + end + end + + def test_set_ids_comp + testing_with do + array = @primary_keys.collect {|key| 5} + expected = composite? ? array.to_composite_keys : array.first + @first.id = expected + assert_equal expected, @first.id + end + end + + def test_primary_keys + testing_with do + if composite? + assert_not_nil @klass.primary_keys + assert_equal @primary_keys.map {|key| key.to_sym}, @klass.primary_keys + assert_equal @klass.primary_keys, @klass.primary_key + else + assert_not_nil @klass.primary_key + assert_equal @primary_keys, [@klass.primary_key.to_sym] + end + assert_equal @primary_keys.join(','), @klass.primary_key.to_s + # Need a :primary_keys should be Array with to_s overridden + end + end end \ No newline at end of file diff --git a/vendor/gems/composite_primary_keys-2.2.2/test/test_miscellaneous.rb b/vendor/gems/composite_primary_keys-2.2.2/test/test_miscellaneous.rb index 25f6096fe..e5de57021 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/test/test_miscellaneous.rb +++ b/vendor/gems/composite_primary_keys-2.2.2/test/test_miscellaneous.rb @@ -1,39 +1,39 @@ -require 'abstract_unit' -require 'fixtures/reference_type' -require 'fixtures/reference_code' - -class TestMiscellaneous < Test::Unit::TestCase - fixtures :reference_types, :reference_codes, :products - - CLASSES = { - :single => { - :class => ReferenceType, - :primary_keys => :reference_type_id, - }, - :dual => { - :class => ReferenceCode, - :primary_keys => [:reference_type_id, :reference_code], - }, - } - - def setup - self.class.classes = CLASSES - end - - def test_composite_class - testing_with do - assert_equal composite?, @klass.composite? - end - end - - def test_composite_instance - testing_with do - assert_equal composite?, @first.composite? - end - end - - def test_count - assert_equal 2, Product.count - end - +require 'abstract_unit' +require 'fixtures/reference_type' +require 'fixtures/reference_code' + +class TestMiscellaneous < Test::Unit::TestCase + fixtures :reference_types, :reference_codes, :products + + CLASSES = { + :single => { + :class => ReferenceType, + :primary_keys => :reference_type_id, + }, + :dual => { + :class => ReferenceCode, + :primary_keys => [:reference_type_id, :reference_code], + }, + } + + def setup + self.class.classes = CLASSES + end + + def test_composite_class + testing_with do + assert_equal composite?, @klass.composite? + end + end + + def test_composite_instance + testing_with do + assert_equal composite?, @first.composite? + end + end + + def test_count + assert_equal 2, Product.count + end + end \ No newline at end of file diff --git a/vendor/gems/composite_primary_keys-2.2.2/test/test_pagination.rb b/vendor/gems/composite_primary_keys-2.2.2/test/test_pagination.rb index fa19d95a6..4952ff207 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/test/test_pagination.rb +++ b/vendor/gems/composite_primary_keys-2.2.2/test/test_pagination.rb @@ -1,38 +1,38 @@ -require 'abstract_unit' -require 'fixtures/reference_type' -require 'fixtures/reference_code' -require 'plugins/pagination' - -class TestPagination < Test::Unit::TestCase - fixtures :reference_types, :reference_codes - - include ActionController::Pagination - DEFAULT_PAGE_SIZE = 2 - - attr_accessor :params - - CLASSES = { - :single => { - :class => ReferenceType, - :primary_keys => :reference_type_id, - :table => :reference_types, - }, - :dual => { - :class => ReferenceCode, - :primary_keys => [:reference_type_id, :reference_code], - :table => :reference_codes, - }, - } - - def setup - self.class.classes = CLASSES - @params = {} - end - - def test_paginate_all - testing_with do - @object_pages, @objects = paginate @klass_info[:table], :per_page => DEFAULT_PAGE_SIZE - assert_equal 2, @objects.length, "Each page should have #{DEFAULT_PAGE_SIZE} items" - end - end +require 'abstract_unit' +require 'fixtures/reference_type' +require 'fixtures/reference_code' +require 'plugins/pagination' + +class TestPagination < Test::Unit::TestCase + fixtures :reference_types, :reference_codes + + include ActionController::Pagination + DEFAULT_PAGE_SIZE = 2 + + attr_accessor :params + + CLASSES = { + :single => { + :class => ReferenceType, + :primary_keys => :reference_type_id, + :table => :reference_types, + }, + :dual => { + :class => ReferenceCode, + :primary_keys => [:reference_type_id, :reference_code], + :table => :reference_codes, + }, + } + + def setup + self.class.classes = CLASSES + @params = {} + end + + def test_paginate_all + testing_with do + @object_pages, @objects = paginate @klass_info[:table], :per_page => DEFAULT_PAGE_SIZE + assert_equal 2, @objects.length, "Each page should have #{DEFAULT_PAGE_SIZE} items" + end + end end \ No newline at end of file diff --git a/vendor/gems/composite_primary_keys-2.2.2/test/test_santiago.rb b/vendor/gems/composite_primary_keys-2.2.2/test/test_santiago.rb index 4b5f433e4..771c414a7 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/test/test_santiago.rb +++ b/vendor/gems/composite_primary_keys-2.2.2/test/test_santiago.rb @@ -1,27 +1,27 @@ -# Test cases devised by Santiago that broke the Composite Primary Keys -# code at one point in time. But no more!!! - -require 'abstract_unit' -require 'fixtures/user' -require 'fixtures/article' -require 'fixtures/reading' - -class TestSantiago < Test::Unit::TestCase - fixtures :suburbs, :streets, :users, :articles, :readings - - def test_normal_and_composite_associations - assert_not_nil @suburb = Suburb.find(1,1) - assert_equal 1, @suburb.streets.length - - assert_not_nil @street = Street.find(1) - assert_not_nil @street.suburb - end - - def test_single_keys - @santiago = User.find(1) - assert_not_nil @santiago.articles - assert_equal 2, @santiago.articles.length - assert_not_nil @santiago.readings - assert_equal 2, @santiago.readings.length - end -end +# Test cases devised by Santiago that broke the Composite Primary Keys +# code at one point in time. But no more!!! + +require 'abstract_unit' +require 'fixtures/user' +require 'fixtures/article' +require 'fixtures/reading' + +class TestSantiago < Test::Unit::TestCase + fixtures :suburbs, :streets, :users, :articles, :readings + + def test_normal_and_composite_associations + assert_not_nil @suburb = Suburb.find(1,1) + assert_equal 1, @suburb.streets.length + + assert_not_nil @street = Street.find(1) + assert_not_nil @street.suburb + end + + def test_single_keys + @santiago = User.find(1) + assert_not_nil @santiago.articles + assert_equal 2, @santiago.articles.length + assert_not_nil @santiago.readings + assert_equal 2, @santiago.readings.length + end +end diff --git a/vendor/gems/composite_primary_keys-2.2.2/test/test_update.rb b/vendor/gems/composite_primary_keys-2.2.2/test/test_update.rb index d612c92a8..87ca8f5f4 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/test/test_update.rb +++ b/vendor/gems/composite_primary_keys-2.2.2/test/test_update.rb @@ -1,40 +1,40 @@ -require 'abstract_unit' -require 'fixtures/reference_type' -require 'fixtures/reference_code' - -class TestUpdate < Test::Unit::TestCase - fixtures :reference_types, :reference_codes - - CLASSES = { - :single => { - :class => ReferenceType, - :primary_keys => :reference_type_id, - :update => { :description => 'RT Desc' }, - }, - :dual => { - :class => ReferenceCode, - :primary_keys => [:reference_type_id, :reference_code], - :update => { :description => 'RT Desc' }, - }, - } - - def setup - self.class.classes = CLASSES - end - - def test_setup - testing_with do - assert_not_nil @klass_info[:update] - end - end - - def test_update_attributes - testing_with do - assert @first.update_attributes(@klass_info[:update]) - assert @first.reload - @klass_info[:update].each_pair do |attr_name, new_value| - assert_equal new_value, @first[attr_name], "Attribute #{attr_name} is incorrect" - end - end - end +require 'abstract_unit' +require 'fixtures/reference_type' +require 'fixtures/reference_code' + +class TestUpdate < Test::Unit::TestCase + fixtures :reference_types, :reference_codes + + CLASSES = { + :single => { + :class => ReferenceType, + :primary_keys => :reference_type_id, + :update => { :description => 'RT Desc' }, + }, + :dual => { + :class => ReferenceCode, + :primary_keys => [:reference_type_id, :reference_code], + :update => { :description => 'RT Desc' }, + }, + } + + def setup + self.class.classes = CLASSES + end + + def test_setup + testing_with do + assert_not_nil @klass_info[:update] + end + end + + def test_update_attributes + testing_with do + assert @first.update_attributes(@klass_info[:update]) + assert @first.reload + @klass_info[:update].each_pair do |attr_name, new_value| + assert_equal new_value, @first[attr_name], "Attribute #{attr_name} is incorrect" + end + end + end end \ No newline at end of file diff --git a/vendor/gems/composite_primary_keys-2.2.2/website/stylesheets/screen.css b/vendor/gems/composite_primary_keys-2.2.2/website/stylesheets/screen.css index 3f2d8f951..cfa43425b 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/website/stylesheets/screen.css +++ b/vendor/gems/composite_primary_keys-2.2.2/website/stylesheets/screen.css @@ -1,126 +1,126 @@ -body { - background-color: #2F30EE; - font-family: "Georgia", sans-serif; - font-size: 16px; - line-height: 1.6em; - padding: 1.6em 0 0 0; - color: #eee; -} -h1, h2, h3, h4, h5, h6 { - color: #FFEDFA; -} -h1 { - font-family: sans-serif; - font-weight: normal; - font-size: 4em; - line-height: 0.8em; - letter-spacing: -0.1ex; - margin: 5px; -} -li { - padding: 0; - margin: 0; - list-style-type: square; -} -a { - color: #99f; - font-weight: normal; - text-decoration: underline; -} -blockquote { - font-size: 90%; - font-style: italic; - border-left: 1px solid #eee; - padding-left: 1em; -} -.caps { - font-size: 80%; -} - -#main { - width: 45em; - padding: 0; - margin: 0 auto; -} -.coda { - text-align: right; - color: #77f; - font-size: smaller; -} - -table { - font-size: 90%; - line-height: 1.4em; - color: #ff8; - background-color: #111; - padding: 2px 10px 2px 10px; - border-style: dashed; -} - -th { - color: #fff; -} - -td { - padding: 2px 10px 2px 10px; -} - -.success { - color: #0CC52B; -} - -.failed { - color: #E90A1B; -} - -.unknown { - color: #995000; -} -pre, code { - font-family: monospace; - font-size: 90%; - line-height: 1.4em; - color: #ff8; - background-color: #111; - padding: 2px 10px 2px 10px; -} -.comment { color: #aaa; font-style: italic; } -.keyword { color: #eff; font-weight: bold; } -.punct { color: #eee; font-weight: bold; } -.symbol { color: #0bb; } -.string { color: #6b4; } -.ident { color: #ff8; } -.constant { color: #66f; } -.regex { color: #ec6; } -.number { color: #F99; } -.expr { color: #227; } - -#version { - float: right; - text-align: right; - font-family: sans-serif; - font-weight: normal; - background-color: #ff8; - color: #66f; - padding: 15px 20px 10px 20px; - margin: 0 auto; - margin-top: 15px; - border: 3px solid #66f; -} - -#version .numbers { - display: block; - font-size: 4em; - line-height: 0.8em; - letter-spacing: -0.1ex; -} - -#version a { - text-decoration: none; -} - -.clickable { - cursor: pointer; - cursor: hand; -} - +body { + background-color: #2F30EE; + font-family: "Georgia", sans-serif; + font-size: 16px; + line-height: 1.6em; + padding: 1.6em 0 0 0; + color: #eee; +} +h1, h2, h3, h4, h5, h6 { + color: #FFEDFA; +} +h1 { + font-family: sans-serif; + font-weight: normal; + font-size: 4em; + line-height: 0.8em; + letter-spacing: -0.1ex; + margin: 5px; +} +li { + padding: 0; + margin: 0; + list-style-type: square; +} +a { + color: #99f; + font-weight: normal; + text-decoration: underline; +} +blockquote { + font-size: 90%; + font-style: italic; + border-left: 1px solid #eee; + padding-left: 1em; +} +.caps { + font-size: 80%; +} + +#main { + width: 45em; + padding: 0; + margin: 0 auto; +} +.coda { + text-align: right; + color: #77f; + font-size: smaller; +} + +table { + font-size: 90%; + line-height: 1.4em; + color: #ff8; + background-color: #111; + padding: 2px 10px 2px 10px; + border-style: dashed; +} + +th { + color: #fff; +} + +td { + padding: 2px 10px 2px 10px; +} + +.success { + color: #0CC52B; +} + +.failed { + color: #E90A1B; +} + +.unknown { + color: #995000; +} +pre, code { + font-family: monospace; + font-size: 90%; + line-height: 1.4em; + color: #ff8; + background-color: #111; + padding: 2px 10px 2px 10px; +} +.comment { color: #aaa; font-style: italic; } +.keyword { color: #eff; font-weight: bold; } +.punct { color: #eee; font-weight: bold; } +.symbol { color: #0bb; } +.string { color: #6b4; } +.ident { color: #ff8; } +.constant { color: #66f; } +.regex { color: #ec6; } +.number { color: #F99; } +.expr { color: #227; } + +#version { + float: right; + text-align: right; + font-family: sans-serif; + font-weight: normal; + background-color: #ff8; + color: #66f; + padding: 15px 20px 10px 20px; + margin: 0 auto; + margin-top: 15px; + border: 3px solid #66f; +} + +#version .numbers { + display: block; + font-size: 4em; + line-height: 0.8em; + letter-spacing: -0.1ex; +} + +#version a { + text-decoration: none; +} + +.clickable { + cursor: pointer; + cursor: hand; +} + diff --git a/vendor/gems/composite_primary_keys-2.2.2/website/version-raw.txt b/vendor/gems/composite_primary_keys-2.2.2/website/version-raw.txt index 74ca3ac67..9059e938d 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/website/version-raw.txt +++ b/vendor/gems/composite_primary_keys-2.2.2/website/version-raw.txt @@ -1,2 +1,2 @@ -h1. Announcement JS file +h1. Announcement JS file MagicAnnouncement.show('compositekeys', version); \ No newline at end of file diff --git a/vendor/gems/composite_primary_keys-2.2.2/website/version.js b/vendor/gems/composite_primary_keys-2.2.2/website/version.js index d0a9dab1d..3225547c9 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/website/version.js +++ b/vendor/gems/composite_primary_keys-2.2.2/website/version.js @@ -1,4 +1,4 @@ // Version JS file var version = "2.2.2"; - + document.write(" - " + version); diff --git a/vendor/gems/composite_primary_keys-2.2.2/website/version.txt b/vendor/gems/composite_primary_keys-2.2.2/website/version.txt index d0ac6a7ac..6054d2f4b 100644 --- a/vendor/gems/composite_primary_keys-2.2.2/website/version.txt +++ b/vendor/gems/composite_primary_keys-2.2.2/website/version.txt @@ -1,3 +1,3 @@ -h1. Version JS file - +h1. Version JS file + document.write(" - " + version); \ No newline at end of file diff --git a/vendor/plugins/rails-i18n/locale/bg.yml b/vendor/plugins/rails-i18n/locale/bg.yml index 5145f49c3..bee486671 100644 --- a/vendor/plugins/rails-i18n/locale/bg.yml +++ b/vendor/plugins/rails-i18n/locale/bg.yml @@ -1,5 +1,6 @@ # Bulgarian localization for Ruby on Rails 2.2+ # by Samson Behar +# Fixes by Yavor Ivanov, http://github.com/YavorIvanov # # Минимална локализация на приложения за поддръжка на български език. @@ -117,6 +118,11 @@ bg: few: "{{count}} месеца" many: "{{count}} месеци" other: "{{count}} месеца" + almost_x_years: + one: "почти {{count}} година" + few: "почти {{count}} години" + many: "почти {{count}} години" + other: "почти {{count}} години" about_x_years: one: "около {{count}} година" few: "около {{count}} години" diff --git a/vendor/plugins/rails-i18n/locale/dsb.yml b/vendor/plugins/rails-i18n/locale/dsb.yml index e3fdad824..6fd2c7a64 100644 --- a/vendor/plugins/rails-i18n/locale/dsb.yml +++ b/vendor/plugins/rails-i18n/locale/dsb.yml @@ -1,182 +1,182 @@ -# Lower Sorbian translations for Ruby on Rails -# by Michael Wolf (preklady@wolfmicha.de) - -dsb: - # ActiveSupport - support: - array: - words_connector: ", " - two_words_connector: " a " - last_word_connector: " a " - sentence_connector: "a" - skip_last_comma: true - - # Date - date: - formats: - default: "%d. %m. %Y" - short: "%d %b" - long: "%d. %B %Y" - day_names: [njeźela, pónjeźele, wałtora, srjoda, stwórtk, pětk, sobota] - abbr_day_names: [Nj, Pó, Wu, Sr, St, Pě, So] - month_names: [~, Januar, Februar, Měrc, Apryl, Maj, Junij, Julij, Awgust, September, Oktober, Nowember, December] - abbr_month_names: [~, jan, feb, měr, apr, maj, jun, jul, awg, sep, okt, now, dec] - order: [:day, :month, :year] - - # Time - time: - formats: - default: "%A, %d. %B %Y, %H:%M hodź" - short: "%d. %B, %H:%M hodź." - long: "%A, %d. %B %Y, %H:%M hodź." - am: "dopołdnja" - pm: "wótpołdnja" - - - # Numbers - number: - format: - precision: 3 - separator: "," - delimiter: "." - currency: - format: - unit: "€" - precision: 2 - format: "%n %u" - separator: "," - delimiter: " " - human: - format: - precision: 1 - delimiter: "" - storage_units: - format: "%n %u" - units: - byte: - one: "bajt" - two: "bajta" - few: "bajty" - other: "bajtow" - kb: "KB" - mb: "MB" - gb: "GB" - tb: "TB" - - percentage: - format: - delimiter: "" - - precision: - format: - delimiter: "" - - - # Distance of time ... helper - # 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: "poł minuty" - less_than_x_seconds: - one: "mjenjej ako 1 sekundu" - two: "mjenjej ako {{count}} sekundoma" - few: "mjenjej ako {{count}} sekundami" - other: "mjenjej ako {{count}} sekundami" - x_seconds: - one: "1 sekundu" - two: "{{count}} sekundoma" - few: "{{count}} sekundami" - other: "{{count}} sekundami" - less_than_x_minutes: - one: "mjenjej ako 1 minutu" - two: "mjenjej ako {{count}} minutoma" - few: "mjenjej ako {{count}} minutami" - other: "mjenjej ako {{count}} minutami" - x_minutes: - one: "1 minutu" - two: "{{count}} minutoma" - few: "{{count}} minutami" - other: "{{count}} minutami" - about_x_hours: - one: "něźi 1 góźinu" - two: "něźi {{count}} góźinoma" - few: "něźi {{count}} góźinami" - other: "něźi {{count}} góźinami" - x_days: - one: "1 dnjom" - two: "{{count}} dnjoma" - few: "{{count}} dnjami" - other: "{{count}} dnjami" - about_x_months: - one: "něźi 1 mjasecom" - two: "něźi {{count}} mjasecoma" - few: "něźi {{count}} mjasecami" - other: "něźi {{count}} mjasecami" - x_months: - one: "1 mjasecom" - two: "{{count}} mjasecoma" - few: "{{count}} mjasecami" - other: "{{count}} mjasecami" - about_x_years: - one: "něźi 1 lětom" - two: "něźi {{count}} lětoma" - few: "něźi {{count}} lětami" - other: "něźi {{count}} lětami" - over_x_years: - one: "wěcej ako 1 lětom" - two: "wěcej ako {{count}} lětoma" - few: "wěcej ako {{count}} lětami" - other: "wěcej ako {{count}} lětami" - prompts: - year: "Lěto" - month: "Mjasec" - day: "Źeń" - hour: "Góźina" - minute: "Minuta" - second: "Sekunda" - - # ActiveRecord validation messages - activerecord: - errors: - messages: - inclusion: "njejo płaśiwa gódnota" - exclusion: "njestoj k dispoziciji" - invalid: "njejo płaśiwy" - confirmation: "njejo se wobkšuśiło" - accepted: "musy se wobkšuśiś" - empty: "njesmějo prozny byś" - blank: "jo trěbny" - too_long: - one: "jo pśedłujki (maks. 1 znamješko)" - two: "jo pśedłujki (maks. {{count}} znamješce)" - few: "jo pśedłujki (maks. {{count}} znamješka)" - other: "jo pśedłujki (maks. {{count}} znamješkow)" - too_short: - one: "jo překrotki (min. 1 znamješko)" - two: "jo překrotki (min. {{count}} znamješće)" - few: "jo překrotki (min. {{count}} znamješka)" - other: "jo překrotki (min. {{count}} znamješkow)" - wrong_length: - one: "njama pšawu dłujkosć (1 znamješko wócakane)" - two: "njama pšawu dłujkosć ({{count}} znamješce wócakanej)" - few: "njama pšawu dłujkosć ({{count}} znamješka wócakane)" - other: "njama pšawu dłujkosć ({{count}} znamješkow wócakanych)" - taken: "jo južo w datowej bance" - not_a_number: "njejo licba" - greater_than: "musy wětšy ako {{count}} byś" - greater_than_or_equal_to: "musy wětšy abo jadnak {{count}} być" - equal_to: "musy jadnak {{count}} byś" - less_than: "musy mjeńšy ako {{count}} byś" - less_than_or_equal_to: "musy mjeńšy abo jadnak {{count}} byś" - odd: "musy njerowna licba byś" - even: "musy rowna licba byś" - - template: - header: - one: "Pśi składowanju objekta {{model}} jo k zmólce dojšło a njejo było móžno składowaś" - two: "Pśi składowanju objekta {{model}} jo k {{count}} zmólkam dojšło a njejo było móžno składowaś" - few: "Pśi składowanju objekta {{model}} jo k {{count}} zmólkam dojšło a njejo było móžno składowaś" - other: "Pśi składowanju objekta {{model}} jo k {{count}} zmólkam dojšło a njejo było móžno składowaś" - body: "Pšosym pśeglědaj slědujuce póla:" - - models: +# Lower Sorbian translations for Ruby on Rails +# by Michael Wolf (preklady@wolfmicha.de) + +dsb: + # ActiveSupport + support: + array: + words_connector: ", " + two_words_connector: " a " + last_word_connector: " a " + sentence_connector: "a" + skip_last_comma: true + + # Date + date: + formats: + default: "%d. %m. %Y" + short: "%d %b" + long: "%d. %B %Y" + day_names: [njeźela, pónjeźele, wałtora, srjoda, stwórtk, pětk, sobota] + abbr_day_names: [Nj, Pó, Wu, Sr, St, Pě, So] + month_names: [~, Januar, Februar, Měrc, Apryl, Maj, Junij, Julij, Awgust, September, Oktober, Nowember, December] + abbr_month_names: [~, jan, feb, měr, apr, maj, jun, jul, awg, sep, okt, now, dec] + order: [:day, :month, :year] + + # Time + time: + formats: + default: "%A, %d. %B %Y, %H:%M hodź" + short: "%d. %B, %H:%M hodź." + long: "%A, %d. %B %Y, %H:%M hodź." + am: "dopołdnja" + pm: "wótpołdnja" + + + # Numbers + number: + format: + precision: 3 + separator: "," + delimiter: "." + currency: + format: + unit: "€" + precision: 2 + format: "%n %u" + separator: "," + delimiter: " " + human: + format: + precision: 1 + delimiter: "" + storage_units: + format: "%n %u" + units: + byte: + one: "bajt" + two: "bajta" + few: "bajty" + other: "bajtow" + kb: "KB" + mb: "MB" + gb: "GB" + tb: "TB" + + percentage: + format: + delimiter: "" + + precision: + format: + delimiter: "" + + + # Distance of time ... helper + # 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: "poł minuty" + less_than_x_seconds: + one: "mjenjej ako 1 sekundu" + two: "mjenjej ako {{count}} sekundoma" + few: "mjenjej ako {{count}} sekundami" + other: "mjenjej ako {{count}} sekundami" + x_seconds: + one: "1 sekundu" + two: "{{count}} sekundoma" + few: "{{count}} sekundami" + other: "{{count}} sekundami" + less_than_x_minutes: + one: "mjenjej ako 1 minutu" + two: "mjenjej ako {{count}} minutoma" + few: "mjenjej ako {{count}} minutami" + other: "mjenjej ako {{count}} minutami" + x_minutes: + one: "1 minutu" + two: "{{count}} minutoma" + few: "{{count}} minutami" + other: "{{count}} minutami" + about_x_hours: + one: "něźi 1 góźinu" + two: "něźi {{count}} góźinoma" + few: "něźi {{count}} góźinami" + other: "něźi {{count}} góźinami" + x_days: + one: "1 dnjom" + two: "{{count}} dnjoma" + few: "{{count}} dnjami" + other: "{{count}} dnjami" + about_x_months: + one: "něźi 1 mjasecom" + two: "něźi {{count}} mjasecoma" + few: "něźi {{count}} mjasecami" + other: "něźi {{count}} mjasecami" + x_months: + one: "1 mjasecom" + two: "{{count}} mjasecoma" + few: "{{count}} mjasecami" + other: "{{count}} mjasecami" + about_x_years: + one: "něźi 1 lětom" + two: "něźi {{count}} lětoma" + few: "něźi {{count}} lětami" + other: "něźi {{count}} lětami" + over_x_years: + one: "wěcej ako 1 lětom" + two: "wěcej ako {{count}} lětoma" + few: "wěcej ako {{count}} lětami" + other: "wěcej ako {{count}} lětami" + prompts: + year: "Lěto" + month: "Mjasec" + day: "Źeń" + hour: "Góźina" + minute: "Minuta" + second: "Sekunda" + + # ActiveRecord validation messages + activerecord: + errors: + messages: + inclusion: "njejo płaśiwa gódnota" + exclusion: "njestoj k dispoziciji" + invalid: "njejo płaśiwy" + confirmation: "njejo se wobkšuśiło" + accepted: "musy se wobkšuśiś" + empty: "njesmějo prozny byś" + blank: "jo trěbny" + too_long: + one: "jo pśedłujki (maks. 1 znamješko)" + two: "jo pśedłujki (maks. {{count}} znamješce)" + few: "jo pśedłujki (maks. {{count}} znamješka)" + other: "jo pśedłujki (maks. {{count}} znamješkow)" + too_short: + one: "jo překrotki (min. 1 znamješko)" + two: "jo překrotki (min. {{count}} znamješće)" + few: "jo překrotki (min. {{count}} znamješka)" + other: "jo překrotki (min. {{count}} znamješkow)" + wrong_length: + one: "njama pšawu dłujkosć (1 znamješko wócakane)" + two: "njama pšawu dłujkosć ({{count}} znamješce wócakanej)" + few: "njama pšawu dłujkosć ({{count}} znamješka wócakane)" + other: "njama pšawu dłujkosć ({{count}} znamješkow wócakanych)" + taken: "jo južo w datowej bance" + not_a_number: "njejo licba" + greater_than: "musy wětšy ako {{count}} byś" + greater_than_or_equal_to: "musy wětšy abo jadnak {{count}} być" + equal_to: "musy jadnak {{count}} byś" + less_than: "musy mjeńšy ako {{count}} byś" + less_than_or_equal_to: "musy mjeńšy abo jadnak {{count}} byś" + odd: "musy njerowna licba byś" + even: "musy rowna licba byś" + + template: + header: + one: "Pśi składowanju objekta {{model}} jo k zmólce dojšło a njejo było móžno składowaś" + two: "Pśi składowanju objekta {{model}} jo k {{count}} zmólkam dojšło a njejo było móžno składowaś" + few: "Pśi składowanju objekta {{model}} jo k {{count}} zmólkam dojšło a njejo było móžno składowaś" + other: "Pśi składowanju objekta {{model}} jo k {{count}} zmólkam dojšło a njejo było móžno składowaś" + body: "Pšosym pśeglědaj slědujuce póla:" + + models: diff --git a/vendor/plugins/rails-i18n/locale/es-CO.yml b/vendor/plugins/rails-i18n/locale/es-CO.yml index 946e42282..1a111ca67 100644 --- a/vendor/plugins/rails-i18n/locale/es-CO.yml +++ b/vendor/plugins/rails-i18n/locale/es-CO.yml @@ -9,7 +9,10 @@ es-CO: currency: format: # Pesos Colombianos format: "%u%n" - unit: "Col $" + unit: "$" + precision: 2 + delimiter: "," + separator: "." format: delimiter: "," precision: 2 @@ -17,7 +20,20 @@ es-CO: human: format: delimiter: "," - storage_units: [Bytes, KB, MB, GB, TB] + precision: 2 + # Rails <= v2.2.2 + # storage_units: [Bytes, KB, MB, GB, TB] + # Rails >= v2.3 + storage_units: + format: "%n %u" + units: + byte: + one: "Byte" + other: "Bytes" + kb: "KB" + mb: "MB" + gb: "GB" + tb: "TB" precision: format: delimiter: "," @@ -73,10 +89,16 @@ es-CO: over_x_years: one: "más de 1 año" other: "más de {{count}} años" + almost_x_years: + one: "casi 1 año" + other: "casi {{count}} años" prompts: - hour: 'Hora' - minute: 'Minuto' - second: 'Segundo' + year: "Año" + month: "Mes" + day: "Día" + hour: "Hora" + minute: "Minutos" + second: "Segundos" # Active Record @@ -88,7 +110,7 @@ es-CO: other: "{{model}} no pudo guardarse debido a {{count}} errores" body: "Revise que los siguientes campos sean válidos:" messages: - record_invalid:"Falla de validación: {{errors}}" + record_invalid: "Falla de validación: {{errors}}" inclusion: "no está incluído en la lista" exclusion: "está reservado" invalid: "es inválido" @@ -103,15 +125,22 @@ es-CO: less_than_or_equal_to: "debe ser menor o igual que {{count}}" greater_than: "debe ser mayor que {{count}}" greater_than_or_equal_to: "debe ser mayor o igual que {{count}}" - too_short: - one: "es demasiado corto (mínimo 1 caracter)" - other: "es demasiado corto (mínimo {{count}} caracteres)" - too_long: - one: "es demasiado largo (máximo 1 caracter)" - other: "es demasiado largo (máximo {{count}} caracteres)" + too_short: "es demasiado corto (mínimo {{count}} caracteres)" + too_long: "es demasiado largo (máximo {{count}} caracteres)" equal_to: "debe ser igual a {{count}}" - wrong_length: - one: "longitud errónea (debe ser de 1 caracter)" - other: "longitud errónea (debe ser de {{count}} caracteres)" + wrong_length: "longitud errónea (debe ser de {{count}} caracteres)" even: "debe ser un número par" - odd: "debe ser un número non" \ No newline at end of file + odd: "debe ser un número non" + +# Used in array.to_sentence. + support: + select: + # default value for :prompt => true in FormOptionsHelper + prompt: "Por favor seleccione" + array: + # Rails <= v.2.2.2 + # sentence_connector: "y" + # Rails >= v.2.3 + words_connector: ", " + two_words_connector: " y " + last_word_connector: " y " diff --git a/vendor/plugins/rails-i18n/locale/es.yml b/vendor/plugins/rails-i18n/locale/es.yml index 532d2bc6b..779279c06 100644 --- a/vendor/plugins/rails-i18n/locale/es.yml +++ b/vendor/plugins/rails-i18n/locale/es.yml @@ -7,9 +7,9 @@ es: # 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: "," + separator: "," # Delimets thousands (e.g. 1,000,000 is a million) (always in groups of three) - delimiter: "." + delimiter: "." # Number of decimals, behind the separator (1 with a precision of 2 gives: 1.00) precision: 3 @@ -17,35 +17,35 @@ es: currency: format: # Where is the currency sign? %u is the currency unit, %n the number (default: $5.00) - format: "%n %u" - unit: "€" + format: "%n %u" + unit: "€" # These three are to override number.format and are optional - separator: "," - delimiter: "." + separator: "," + delimiter: "." precision: 2 # Used in number_to_percentage() percentage: format: # These three are to override number.format and are optional - # separator: - delimiter: "" - # precision: + # separator: + delimiter: "" + # precision: # Used in number_to_precision() precision: format: # These three are to override number.format and are optional # separator: - delimiter: "" + delimiter: "" # precision: # Used in number_to_human_size() human: format: # These three are to override number.format and are optional - # separator: - delimiter: "" + # separator: + delimiter: "" precision: 1 # Rails <= v2.2.2 # storage_units: [Bytes, KB, MB, GB, TB] @@ -64,37 +64,40 @@ es: # 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: "medio minuto" + half_a_minute: "medio minuto" less_than_x_seconds: - one: "menos de 1 segundo" + one: "menos de 1 segundo" other: "menos de {{count}} segundos" x_seconds: - one: "1 segundo" - other: "{{count}} segundos" + one: "1 segundo" + other: "{{count}} segundos" less_than_x_minutes: - one: "menos de 1 minuto" - other: "menos de {{count}} minutos" + one: "menos de 1 minuto" + other: "menos de {{count}} minutos" x_minutes: - one: "1 minuto" - other: "{{count}} minutos" + one: "1 minuto" + other: "{{count}} minutos" about_x_hours: - one: "alrededor de 1 hora" - other: "alrededor de {{count}} horas" + one: "alrededor de 1 hora" + other: "alrededor de {{count}} horas" x_days: - one: "1 día" - other: "{{count}} días" + one: "1 día" + other: "{{count}} días" about_x_months: - one: "alrededor de 1 mes" - other: "alrededor de {{count}} meses" + one: "alrededor de 1 mes" + other: "alrededor de {{count}} meses" x_months: - one: "1 mes" - other: "{{count}} meses" + one: "1 mes" + other: "{{count}} meses" about_x_years: - one: "alrededor de 1 año" - other: "alrededor de {{count}} años" + one: "alrededor de 1 año" + other: "alrededor de {{count}} años" over_x_years: - one: "más de 1 año" - other: "más de {{count}} años" + one: "más de 1 año" + other: "más de {{count}} años" + almost_x_years: + one: "casi 1 año" + other: "casi {{count}} años" prompts: year: "Año" month: "Mes" @@ -107,17 +110,17 @@ es: errors: template: header: - one: "no se pudo guardar este {{model}} porque se encontró 1 error" - other: "no se pudo guardar este {{model}} porque se encontraron {{count}} errores" + one: "No se pudo guardar este/a {{model}} porque se encontró 1 error" + other: "No se pudo guardar este/a {{model}} porque se encontraron {{count}} errores" # The variable :count is also available - body: "Se encontraron problemas con los siguientes campos:" + body: "Se encontraron problemas con los siguientes campos:" # The values :model, :attribute and :value are always available for interpolation # The value :count is available when applicable. Can be used for pluralization. messages: - inclusion: "no está incluido en la lista" - exclusion: "está reservado" - invalid: "no es válido" + inclusion: "no está incluido en la lista" + exclusion: "está reservado" + invalid: "no es válido" confirmation: "no coincide con la confirmación" accepted: "debe ser aceptado" empty: "no puede estar vacío" @@ -137,6 +140,9 @@ es: record_invalid: "La validación falló: {{errors}}" # Append your own errors here or at the model/attributes scope. + full_messages: + format: "{{attribute}} {{message}}" + models: # Overrides default messages @@ -149,8 +155,8 @@ es: # When no format has been given, it uses default. # You can provide other formats here if you like! default: "%e/%m/%Y" - short: "%e de %b" - long: "%e de %B de %Y" + short: "%e de %b" + long: "%e de %B de %Y" day_names: [Domingo, Lunes, Martes, Miércoles, Jueves, Viernes, Sábado] abbr_day_names: [Dom, Lun, Mar, Mie, Jue, Vie, Sab] @@ -164,10 +170,10 @@ es: time: formats: default: "%A, %e de %B de %Y %H:%M:%S %z" - short: "%e de %b %H:%M" - long: "%e de %B de %Y %H:%M" - am: "am" - pm: "pm" + short: "%e de %b %H:%M" + long: "%e de %B de %Y %H:%M" + am: "am" + pm: "pm" # Used in array.to_sentence. support: diff --git a/vendor/plugins/rails-i18n/locale/fa.yml b/vendor/plugins/rails-i18n/locale/fa.yml index e6102aaf9..288bab185 100644 --- a/vendor/plugins/rails-i18n/locale/fa.yml +++ b/vendor/plugins/rails-i18n/locale/fa.yml @@ -34,7 +34,7 @@ fa: only_day: "%e" day_names: [یکشنبه, دوشنبه, سه‌شنبه, چهارشنبه, پنج‌شنبه, جمعه, شنبه] - abbr_day_names: [ی, د, س, چ, پ, ج] + abbr_day_names: [ی, د, س, چ, پ, ج, ش] month_names: [~, ژانویه, فوریه, مارس, آوریل, مه, ژوئن, ژوئیه, اوت, سپتامبر, اکتبر, نوامبر, دسامبر] abbr_month_names: [~, ژانویه, فوریه, مارس, آوریل, مه, ژوئن, ژوئیه, اوت, سپتامبر, اکتبر, نوامبر, دسامبر] order: [ :day, :month, :year ] @@ -116,4 +116,4 @@ fa: odd: "باید فرد باشد" even: "باید زوج باشد" presence: "را فراموش کرده‌اید" - format: "فرمت مشکل دارد" \ No newline at end of file + format: "فرمت مشکل دارد" diff --git a/vendor/plugins/rails-i18n/locale/fi.yml b/vendor/plugins/rails-i18n/locale/fi.yml index f823eafa9..9bcd10952 100644 --- a/vendor/plugins/rails-i18n/locale/fi.yml +++ b/vendor/plugins/rails-i18n/locale/fi.yml @@ -30,6 +30,8 @@ fi: words_connector: ", " two_words_connector: " ja " last_word_connector: " ja " + select: + prompt: "Valitse" number: format: @@ -116,10 +118,6 @@ fi: minute: "Minuutti" second: "Sekunti" - support: - select: - prompt: "Valitse" - # which one should it be #activemodel: activerecord: diff --git a/vendor/plugins/rails-i18n/locale/hsb.yml b/vendor/plugins/rails-i18n/locale/hsb.yml index 2e4275d2f..dde340af0 100644 --- a/vendor/plugins/rails-i18n/locale/hsb.yml +++ b/vendor/plugins/rails-i18n/locale/hsb.yml @@ -1,190 +1,190 @@ -# Upper Sorbian translations for Ruby on Rails -# by Michael Wolf (preklady@wolfmicha.de) - -hsb: - - # ActiveSupport - support: - array: - words_connector: ", " - two_words_connector: " a " - last_word_connector: " a " - sentence_connector: "a" - skip_last_comma: true - - - - # Date - date: - formats: - default: "%d. %m. %Y" - short: "%d %b" - long: "%d. %B %Y" - - day_names: [njedźela, póndźela, wutora, srjeda, štwórtk, pjatk, sobota] - abbr_day_names: [Nj, Pó, Wu, Sr, Št, Pj, So] - month_names: [~, Januar, Februar, Měrc, Apryl, Meja, Junij, Julij, Awgust, September, Oktober, Nowember, December] - abbr_month_names: [~, jan, feb, měr, apr, mej, jun, jul, awg, sep, okt, now, dec] - order: [:day, :month, :year] - - # Time - time: - formats: - default: "%A, %d. %B %Y, %H:%M hodź" - short: "%d. %B, %H:%M hodź." - long: "%A, %d. %B %Y, %H:%M hodź." - - am: "dopołdnja" - pm: "popołdnju" - - - # Numbers - number: - format: - precision: 3 - separator: "," - delimiter: "." - - currency: - format: - unit: "€" - precision: 2 - format: "%n %u" - separator: "," - delimiter: " " - - human: - format: - precision: 1 - delimiter: "" - - storage_units: - format: "%n %u" - units: - byte: - one: "bajt" - two: "bajtaj" - few: "bajty" - other: "bajtow" - kb: "KB" - mb: "MB" - gb: "GB" - tb: "TB" - - percentage: - format: - delimiter: "" - - precision: - format: - delimiter: "" - - - # Distance of time ... helper - # 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: "poł mjeńšiny" - less_than_x_seconds: - one: "mjenje hač 1 sekundu" - two: "mjenje hač {{count}} sekundomaj" - few: "mjenje hač {{count}} sekundami" - other: "mjenje hač {{count}} sekundami" - x_seconds: - one: "1 sekundu" - two: "{{count}} sekundomaj" - few: "{{count}} sekundami" - other: "{{count}} sekundami" - less_than_x_minutes: - one: "mjenje hač 1 mjeńšinu" - two: "mjenje hač {{count}} mjeńšinomaj" - few: "mjenje hač {{count}} mjeńšinami" - other: "mjenje hač {{count}} mjeńšinami" - x_minutes: - one: "1 mjeńšinu" - two: "{{count}} mjeńšinomaj" - few: "{{count}} mjeńšinami" - other: "{{count}} mjeńšinami" - about_x_hours: - one: "něhdźe 1 hodźinu" - two: "něhdźe {{count}} hodźinomaj" - few: "něhdźe {{count}} hodźinami" - other: "něhdźe {{count}} hodźinami" - x_days: - one: "1 dnjom" - two: "{{count}} dnjomaj" - few: "{{count}} dnjemi" - other: "{{count}} dnjemi" - about_x_months: - one: "něhdźe 1 měsacom" - two: "něhdźe {{count}} měsacomaj" - few: "něhdźe {{count}} měsacami" - other: "něhdźe {{count}} měsacami" - x_months: - one: "1 měsacom" - two: "{{count}} měsacomaj" - few: "{{count}} měsacami" - other: "{{count}} měsacami" - about_x_years: - one: "něhdźe 1 lětom" - two: "něhdźe {{count}} lětomaj" - few: "něhdźe {{count}} lětami" - other: "něhdźe {{count}} lětami" - over_x_years: - one: "přez 1 lětom" - two: "přez {{count}} lětomaj" - few: "přez {{count}} lětami" - other: "přez {{count}} lětami" - prompts: - year: "Lěto" - month: "Měsac" - day: "Dźeń" - hour: "Hodźina" - minute: "Mjeńšina" - second: "Sekunda" - - # ActiveRecord validation messages - activerecord: - errors: - messages: - inclusion: "njeje płaćiwa hódnota" - exclusion: "njesteji k dispoziciji" - invalid: "njeje płaćiwy" - confirmation: "njebu wobkrućene" - accepted: "dyrbi so wobkrućić" - empty: "njesmě prózdny być" - blank: "je trěbny" - too_long: - one: "je předołhi (maks. 1 znamješko)" - two: "je předołhi (maks. {{count}} znamješce)" - few: "je předołhi (maks. {{count}} znamješka)" - other: "je předołhi (maks. {{count}} znamješkow)" - too_short: - one: "je překrótki (min. 1 znamješko)" - two: "je překrótki (min. {{count}} znamješće)" - few: "je překrótki (min. {{count}} znamješka)" - other: "je překrótki (min. {{count}} znamješkow)" - wrong_length: - one: "nima prawu dołhosć (1 znamješko wočakowane)" - two: "nima prawu dołhosć ({{count}} znamješce wočakowanej)" - few: "nima prawu dołhosć ({{count}} znamješka wočakowane)" - other: "nima prawu dołhosć ({{count}} znamješkow wočakowanych)" - taken: "je hižo w datowej bance" - not_a_number: "njeje ličba" - greater_than: "dyrbi wjetši hač {{count}} być" - greater_than_or_equal_to: "dyrbi wjetši abo runja {{count}} być" - equal_to: "dyrbi runja {{count}} być" - less_than: "dyrbi mjenje hač {{count}} być" - less_than_or_equal_to: "dyrbi mjenje abo runja {{count}} być" - odd: "dyrbi njeruna ličby być" - even: "dyrbi runa ličba być" - - template: - header: - one: "Při składowanju objekta {{model}} je k zmylkej dóšło a njebě móžno składować" - two: "Při składowanju objekta {{model}} je k {{count}} zmylkam dóšło a njebě móžno składować" - few: "Při składowanju objekta {{model}} je k {{count}} zmylkam dóšło a njebě móžno składować" - other: "Při składowanju objekta {{model}} je k {{count}} zmylkam dóšło a njebě móžno składować" - body: "Prošu přepruwuj slědowace pola:" - - models: +# Upper Sorbian translations for Ruby on Rails +# by Michael Wolf (preklady@wolfmicha.de) + +hsb: + + # ActiveSupport + support: + array: + words_connector: ", " + two_words_connector: " a " + last_word_connector: " a " + sentence_connector: "a" + skip_last_comma: true + + + + # Date + date: + formats: + default: "%d. %m. %Y" + short: "%d %b" + long: "%d. %B %Y" + + day_names: [njedźela, póndźela, wutora, srjeda, štwórtk, pjatk, sobota] + abbr_day_names: [Nj, Pó, Wu, Sr, Št, Pj, So] + month_names: [~, Januar, Februar, Měrc, Apryl, Meja, Junij, Julij, Awgust, September, Oktober, Nowember, December] + abbr_month_names: [~, jan, feb, měr, apr, mej, jun, jul, awg, sep, okt, now, dec] + order: [:day, :month, :year] + + # Time + time: + formats: + default: "%A, %d. %B %Y, %H:%M hodź" + short: "%d. %B, %H:%M hodź." + long: "%A, %d. %B %Y, %H:%M hodź." + + am: "dopołdnja" + pm: "popołdnju" + + + # Numbers + number: + format: + precision: 3 + separator: "," + delimiter: "." + + currency: + format: + unit: "€" + precision: 2 + format: "%n %u" + separator: "," + delimiter: " " + + human: + format: + precision: 1 + delimiter: "" + + storage_units: + format: "%n %u" + units: + byte: + one: "bajt" + two: "bajtaj" + few: "bajty" + other: "bajtow" + kb: "KB" + mb: "MB" + gb: "GB" + tb: "TB" + + percentage: + format: + delimiter: "" + + precision: + format: + delimiter: "" + + + # Distance of time ... helper + # 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: "poł mjeńšiny" + less_than_x_seconds: + one: "mjenje hač 1 sekundu" + two: "mjenje hač {{count}} sekundomaj" + few: "mjenje hač {{count}} sekundami" + other: "mjenje hač {{count}} sekundami" + x_seconds: + one: "1 sekundu" + two: "{{count}} sekundomaj" + few: "{{count}} sekundami" + other: "{{count}} sekundami" + less_than_x_minutes: + one: "mjenje hač 1 mjeńšinu" + two: "mjenje hač {{count}} mjeńšinomaj" + few: "mjenje hač {{count}} mjeńšinami" + other: "mjenje hač {{count}} mjeńšinami" + x_minutes: + one: "1 mjeńšinu" + two: "{{count}} mjeńšinomaj" + few: "{{count}} mjeńšinami" + other: "{{count}} mjeńšinami" + about_x_hours: + one: "něhdźe 1 hodźinu" + two: "něhdźe {{count}} hodźinomaj" + few: "něhdźe {{count}} hodźinami" + other: "něhdźe {{count}} hodźinami" + x_days: + one: "1 dnjom" + two: "{{count}} dnjomaj" + few: "{{count}} dnjemi" + other: "{{count}} dnjemi" + about_x_months: + one: "něhdźe 1 měsacom" + two: "něhdźe {{count}} měsacomaj" + few: "něhdźe {{count}} měsacami" + other: "něhdźe {{count}} měsacami" + x_months: + one: "1 měsacom" + two: "{{count}} měsacomaj" + few: "{{count}} měsacami" + other: "{{count}} měsacami" + about_x_years: + one: "něhdźe 1 lětom" + two: "něhdźe {{count}} lětomaj" + few: "něhdźe {{count}} lětami" + other: "něhdźe {{count}} lětami" + over_x_years: + one: "přez 1 lětom" + two: "přez {{count}} lětomaj" + few: "přez {{count}} lětami" + other: "přez {{count}} lětami" + prompts: + year: "Lěto" + month: "Měsac" + day: "Dźeń" + hour: "Hodźina" + minute: "Mjeńšina" + second: "Sekunda" + + # ActiveRecord validation messages + activerecord: + errors: + messages: + inclusion: "njeje płaćiwa hódnota" + exclusion: "njesteji k dispoziciji" + invalid: "njeje płaćiwy" + confirmation: "njebu wobkrućene" + accepted: "dyrbi so wobkrućić" + empty: "njesmě prózdny być" + blank: "je trěbny" + too_long: + one: "je předołhi (maks. 1 znamješko)" + two: "je předołhi (maks. {{count}} znamješce)" + few: "je předołhi (maks. {{count}} znamješka)" + other: "je předołhi (maks. {{count}} znamješkow)" + too_short: + one: "je překrótki (min. 1 znamješko)" + two: "je překrótki (min. {{count}} znamješće)" + few: "je překrótki (min. {{count}} znamješka)" + other: "je překrótki (min. {{count}} znamješkow)" + wrong_length: + one: "nima prawu dołhosć (1 znamješko wočakowane)" + two: "nima prawu dołhosć ({{count}} znamješce wočakowanej)" + few: "nima prawu dołhosć ({{count}} znamješka wočakowane)" + other: "nima prawu dołhosć ({{count}} znamješkow wočakowanych)" + taken: "je hižo w datowej bance" + not_a_number: "njeje ličba" + greater_than: "dyrbi wjetši hač {{count}} być" + greater_than_or_equal_to: "dyrbi wjetši abo runja {{count}} być" + equal_to: "dyrbi runja {{count}} być" + less_than: "dyrbi mjenje hač {{count}} być" + less_than_or_equal_to: "dyrbi mjenje abo runja {{count}} być" + odd: "dyrbi njeruna ličby być" + even: "dyrbi runa ličba być" + + template: + header: + one: "Při składowanju objekta {{model}} je k zmylkej dóšło a njebě móžno składować" + two: "Při składowanju objekta {{model}} je k {{count}} zmylkam dóšło a njebě móžno składować" + few: "Při składowanju objekta {{model}} je k {{count}} zmylkam dóšło a njebě móžno składować" + other: "Při składowanju objekta {{model}} je k {{count}} zmylkam dóšło a njebě móžno składować" + body: "Prošu přepruwuj slědowace pola:" + + models: diff --git a/vendor/plugins/rails-i18n/locale/no-NB.yml b/vendor/plugins/rails-i18n/locale/nb.yml similarity index 95% rename from vendor/plugins/rails-i18n/locale/no-NB.yml rename to vendor/plugins/rails-i18n/locale/nb.yml index ef2d937c5..ed4cee9c2 100644 --- a/vendor/plugins/rails-i18n/locale/no-NB.yml +++ b/vendor/plugins/rails-i18n/locale/nb.yml @@ -1,5 +1,5 @@ # Norwegian, norsk bokmål, by irb.no -"no-NB": +nb: support: array: sentence_connector: "og" @@ -54,6 +54,13 @@ over_x_years: one: "over 1 år" other: "over {{count}} år" + prompts: + year: "År" + month: "Måned" + day: "Dag" + hour: "Time" + minute: "Minutt" + second: "Sekund" number: format: precision: 2 diff --git a/vendor/plugins/rails-i18n/locale/nl.yml b/vendor/plugins/rails-i18n/locale/nl.yml index 0aa1f59af..00443ab68 100644 --- a/vendor/plugins/rails-i18n/locale/nl.yml +++ b/vendor/plugins/rails-i18n/locale/nl.yml @@ -27,7 +27,7 @@ nl: unit: !binary | 4oKs - separator: . + separator: "," precision: 2 delimiter: . activerecord: @@ -39,6 +39,7 @@ nl: blank: moet opgegeven zijn exclusion: is niet beschikbaar invalid: is ongeldig + record_invalid: is ongeldig odd: moet oneven zijn too_short: is te kort (niet minder dan {{count}} tekens) wrong_length: heeft niet de juiste lengte (moet {{count}} tekens lang zijn) diff --git a/vendor/plugins/rails-i18n/locale/no-NN.yml b/vendor/plugins/rails-i18n/locale/nn.yml similarity index 99% rename from vendor/plugins/rails-i18n/locale/no-NN.yml rename to vendor/plugins/rails-i18n/locale/nn.yml index 7cd989381..f45ae9f49 100644 --- a/vendor/plugins/rails-i18n/locale/no-NN.yml +++ b/vendor/plugins/rails-i18n/locale/nn.yml @@ -1,5 +1,5 @@ # Norwegian, nynorsk, by irb.no -"no-NN": +nn: support: array: sentence_connector: "og" @@ -93,4 +93,4 @@ odd: "må vera oddetal" even: "må vera partal" # models: - # attributes: \ No newline at end of file + # attributes: diff --git a/vendor/plugins/rails-i18n/locale/pt-BR.yml b/vendor/plugins/rails-i18n/locale/pt-BR.yml index e17940fe9..98af17940 100644 --- a/vendor/plugins/rails-i18n/locale/pt-BR.yml +++ b/vendor/plugins/rails-i18n/locale/pt-BR.yml @@ -63,6 +63,10 @@ pt-BR: over_x_years: one: 'mais de 1 ano' other: 'mais de {{count}} anos' + + almost_x_years: + one: 'quase 1 ano' + other: 'quase {{count}} anos' prompts: year: "Ano" diff --git a/vendor/plugins/rails-i18n/locale/sk.yml b/vendor/plugins/rails-i18n/locale/sk.yml index 14c6a282e..af659f50a 100644 --- a/vendor/plugins/rails-i18n/locale/sk.yml +++ b/vendor/plugins/rails-i18n/locale/sk.yml @@ -1,139 +1,139 @@ -# Sample localization file for English. Add more files in this directory for other locales. -# See http://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points. - -# Slovak translations for Ruby on Rails (inspired by the Czech localization - thanx to Karel Minařík) -# by Jozef Fulop (jofi-rails@silake.com) - -sk: - # ActiveSupport - support: - array: - words_connector: ', ' - two_words_connector: ' a ' - last_word_connector: ' a ' - - # Date - date: - formats: - default: "%d. %m. %Y" - short: "%d %b" - long: "%d. %B %Y" - day_names: [Nedeľa, Pondelok, Utorok, Streda, Štvrtok, Piatok, Sobota] - abbr_day_names: [Ne, Po, Ut, St, Št, Pi, So] - month_names: [~, Január, Február, Marec, Apríl, Máj, Jún, Júl, August, September, Október, November, December] - abbr_month_names: [~, Jan, Feb, Mar, Apr, Máj, Jún, Júl, Aug, Sep, Okt, Nov, Dec] - order: [:day, :month, :year] - - # Time - time: - formats: - default: "%a %d. %B %Y %H:%M %z" - short: "%d. %m. %H:%M" - long: "%A %d. %B %Y %H:%M" - am: 'dopoludnia' - pm: 'popoludní' - - # Numbers - number: - format: - precision: 3 - separator: '.' - delimiter: ',' - currency: - format: - unit: '€' - precision: 2 - format: '%n %u' - separator: "," - delimiter: " " - human: - format: - precision: 1 - delimiter: '' - storage_units: - format: "%n %u" - units: - byte: - other: "B" - one: "B" - kb: "KB" - mb: "MB" - gb: "GB" - tb: "TB" - percentage: - format: - delimiter: '' - precision: - format: - delimiter: '' - - # Distance of time ... helper - datetime: - prompts: - second: "Sekunda" - minute: "Minúta" - hour: "Hodina" - day: "Deň" - month: "Mesiac" - year: "Rok" - distance_in_words: - half_a_minute: 'pol minutou' - less_than_x_seconds: - one: 'asi pred sekundou' - other: 'asi pred {{count}} sekundami' - x_seconds: - one: 'sekundou' - other: '{{count}} sekundami' - less_than_x_minutes: - one: 'pred necelou minútou' - other: 'pred ani nie {{count}} minútami' - x_minutes: - one: 'minútou' - other: '{{count}} minútami' - about_x_hours: - one: 'asi hodinou' - other: 'asi {{count}} hodinami' - x_days: - one: '24 hodinami' - other: '{{count}} dňami' - about_x_months: - one: 'asi mesiacom' - other: 'asi {{count}} mesiacmi' - x_months: - one: 'mesiacom' - other: '{{count}} mesiacmi' - about_x_years: - one: 'asi rokom' - other: 'asi {{count}} rokmi' - over_x_years: - one: 'pred viac ako rokom' - other: 'viac ako {{count}} rokmi' - - # ActiveRecord validation messages - activerecord: - errors: - messages: - inclusion: "nie je v zozname povolených hodnôt" - exclusion: "je vyhradené pre iný účel" - invalid: "nie je platná hodnota" - confirmation: "nebolo potvrdené" - accepted: "musí byť potvrdené" - empty: "nesmie byť prázdný/é" - blank: "je povinná položka" - too_long: "je príliš dlhá/ý (max. {{count}} znakov)" - too_short: "je príliš krátký/á (min. {{count}} znakov)" - wrong_length: "nemá správnu dĺžku (očakáva sa {{count}} znakov)" - taken: "sa už nachádza v databáze" - not_a_number: "nie je číslo" - greater_than: "musí byť väčšíe ako {{count}}" - greater_than_or_equal_to: "musí byť väčšie alebo rovnaké ako {{count}}" - equal_to: "sa musí rovnať {{count}}" - less_than: "musí byť menšie ako {{count}}" - less_than_or_equal_to: "musí byť menšie ako {{count}}" - odd: "musí byť nepárne číslo" - even: "musí byť párne číslo" - template: - header: - one: "Pri ukladaní objektu {{model}} došlo k chybám a nebolo možné objekt uložiť" - other: "Pri ukladaní objektu {{model}} došlo ku {{count}} chybe/ám a nebolo možné objekt uložiť" - body: "Nasledujúce polia obsahujú chybne vyplnené údaje:" +# Sample localization file for English. Add more files in this directory for other locales. +# See http://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points. + +# Slovak translations for Ruby on Rails (inspired by the Czech localization - thanx to Karel Minařík) +# by Jozef Fulop (jofi-rails@silake.com) + +sk: + # ActiveSupport + support: + array: + words_connector: ', ' + two_words_connector: ' a ' + last_word_connector: ' a ' + + # Date + date: + formats: + default: "%d. %m. %Y" + short: "%d %b" + long: "%d. %B %Y" + day_names: [Nedeľa, Pondelok, Utorok, Streda, Štvrtok, Piatok, Sobota] + abbr_day_names: [Ne, Po, Ut, St, Št, Pi, So] + month_names: [~, Január, Február, Marec, Apríl, Máj, Jún, Júl, August, September, Október, November, December] + abbr_month_names: [~, Jan, Feb, Mar, Apr, Máj, Jún, Júl, Aug, Sep, Okt, Nov, Dec] + order: [:day, :month, :year] + + # Time + time: + formats: + default: "%a %d. %B %Y %H:%M %z" + short: "%d. %m. %H:%M" + long: "%A %d. %B %Y %H:%M" + am: 'dopoludnia' + pm: 'popoludní' + + # Numbers + number: + format: + precision: 3 + separator: '.' + delimiter: ',' + currency: + format: + unit: '€' + precision: 2 + format: '%n %u' + separator: "," + delimiter: " " + human: + format: + precision: 1 + delimiter: '' + storage_units: + format: "%n %u" + units: + byte: + other: "B" + one: "B" + kb: "KB" + mb: "MB" + gb: "GB" + tb: "TB" + percentage: + format: + delimiter: '' + precision: + format: + delimiter: '' + + # Distance of time ... helper + datetime: + prompts: + second: "Sekunda" + minute: "Minúta" + hour: "Hodina" + day: "Deň" + month: "Mesiac" + year: "Rok" + distance_in_words: + half_a_minute: 'pol minutou' + less_than_x_seconds: + one: 'asi pred sekundou' + other: 'asi pred {{count}} sekundami' + x_seconds: + one: 'sekundou' + other: '{{count}} sekundami' + less_than_x_minutes: + one: 'pred necelou minútou' + other: 'pred ani nie {{count}} minútami' + x_minutes: + one: 'minútou' + other: '{{count}} minútami' + about_x_hours: + one: 'asi hodinou' + other: 'asi {{count}} hodinami' + x_days: + one: '24 hodinami' + other: '{{count}} dňami' + about_x_months: + one: 'asi mesiacom' + other: 'asi {{count}} mesiacmi' + x_months: + one: 'mesiacom' + other: '{{count}} mesiacmi' + about_x_years: + one: 'asi rokom' + other: 'asi {{count}} rokmi' + over_x_years: + one: 'pred viac ako rokom' + other: 'viac ako {{count}} rokmi' + + # ActiveRecord validation messages + activerecord: + errors: + messages: + inclusion: "nie je v zozname povolených hodnôt" + exclusion: "je vyhradené pre iný účel" + invalid: "nie je platná hodnota" + confirmation: "nebolo potvrdené" + accepted: "musí byť potvrdené" + empty: "nesmie byť prázdný/é" + blank: "je povinná položka" + too_long: "je príliš dlhá/ý (max. {{count}} znakov)" + too_short: "je príliš krátký/á (min. {{count}} znakov)" + wrong_length: "nemá správnu dĺžku (očakáva sa {{count}} znakov)" + taken: "sa už nachádza v databáze" + not_a_number: "nie je číslo" + greater_than: "musí byť väčšíe ako {{count}}" + greater_than_or_equal_to: "musí byť väčšie alebo rovnaké ako {{count}}" + equal_to: "sa musí rovnať {{count}}" + less_than: "musí byť menšie ako {{count}}" + less_than_or_equal_to: "musí byť menšie ako {{count}}" + odd: "musí byť nepárne číslo" + even: "musí byť párne číslo" + template: + header: + one: "Pri ukladaní objektu {{model}} došlo k chybám a nebolo možné objekt uložiť" + other: "Pri ukladaní objektu {{model}} došlo ku {{count}} chybe/ám a nebolo možné objekt uložiť" + body: "Nasledujúce polia obsahujú chybne vyplnené údaje:" diff --git a/vendor/plugins/rails-i18n/locale/sl.rb b/vendor/plugins/rails-i18n/locale/sl.rb deleted file mode 100644 index 124e934a0..000000000 --- a/vendor/plugins/rails-i18n/locale/sl.rb +++ /dev/null @@ -1,208 +0,0 @@ -# Slovenian translations for Ruby on Rails -# by Štefan Baebler (stefan@baebler.net) - -{ :'sl' => { - - # ActiveSupport - :support => { - :array => { - :words_connector => ', ', - :two_words_connector => ' in ', - :last_word_connector => ' in ', - :sentence_connector => 'in', - :skip_last_comma => true } - }, - - # Date - :date => { - :formats => { - :default => "%d. %m. %Y", - :short => "%d %b", - :long => "%d. %B %Y", - }, - :day_names => %w{nedelja ponedeljek torek sreda četrtek petek sobota}, - :abbr_day_names => %w{ned pon tor sre čet pet sob}, - :month_names => %w{~ januar februar marec april maj junij julij avgust september oktober november december}, - :abbr_month_names => %w{~ jan feb mar apr maj jun jul avg sep okt nov dec}, - :order => [:day, :month, :year] - }, - - # Time - :time => { - :formats => { - :default => "%A, %d. %B %Y %H:%M %z", - :short => "%d. %m. %H:%M", - :long => "%A %d. %B %Y %H:%M", - :time => "%H:%M" - - }, - :am => 'dopoldne', - :pm => 'popoldne' - }, - - # Numbers - :number => { - :format => { - :precision => 3, - :separator => '.', - :delimiter => ',' - }, - :currency => { - :format => { - :unit => '€', - :precision => 2, - :format => '%n %u', - :separator => ",", - :delimiter => " ", - } - }, - :human => { - :format => { - :precision => 1, - :delimiter => '' - }, - :storage_units => { - :format => "%n %u", - :units => { - :byte => "B", - :kb => "kB", - :mb => "MB", - :gb => "GB", - :tb => "TB", - } - } - }, - :percentage => { - :format => { - :delimiter => '' - } - }, - :precision => { - :format => { - :delimiter => '' - } - } - }, - - # Distance of time ... helper - # TODO: Needs proper pluralization formula: (n%100==1 ? one : n%100==2 ? two : n%100==3 || n%100==4 ? few : other) - # NOTE: focused on "time ago" as in "2 minuti nazaj", "3 tedne nazaj" which can be used also in other time distances - # ("pred 2 minutama" isn't as universally usable.) - :datetime => { - :distance_in_words => { - :half_a_minute => 'pol minute', - :less_than_x_seconds => { - :one => 'manj kot {{count}} sekunda', - :two => 'manj kot {{count}} sekundi', - :few => 'manj kot {{count}} sekunde', - :other => 'manj kot {{count}} sekund' - }, - :x_seconds => { - :one => '{{count}} sekunda', - :two => '{{count}} sekundi', - :few => '{{count}} sekunde', - :other => '{{count}} sekund' - }, - :less_than_x_minutes => { - :one => 'manj kot {{count}} minuta', - :two => 'manj kot {{count}} minuti', - :few => 'manj kot {{count}} minute', - :other => 'manj kot {{count}} minut' - }, - :x_minutes => { - :one => '{{count}} minuta', - :two => '{{count}} minuti', - :few => '{{count}} minute', - :other => '{{count}} minut' - }, - :about_x_hours => { - :one => 'približno {{count}} ura', - :two => 'približno {{count}} uri', - :few => 'približno {{count}} ure', - :other => 'približno {{count}} ur' - }, - :x_days => { - :one => '{{count}} dan', - :two => '{{count}} dni', - :few => '{{count}} dni', - :other => '{{count}} dni' - }, - :about_x_months => { - :one => 'približno {{count}} mesec', - :two => 'približno {{count}} meseca', - :few => 'približno {{count}} mesece', - :other => 'približno {{count}} mesecev' - }, - :x_months => { - :one => '{{count}} mesec', - :two => '{{count}} meseca', - :few => '{{count}} mesece', - :other => '{{count}} mesecev' - }, - :about_x_years => { - :one => 'približno {{count}} leto', - :two => 'približno {{count}} leti', - :few => 'približno {{count}} leta', - :other => 'približno {{count}} let' - }, - :over_x_years => { - :one => 'več kot {{count}} leto', - :two => 'več kot {{count}} leti', - :few => 'več kot {{count}} leta', - :other => 'več kot {{count}} let' - } - } - }, - - # ActiveRecord validation messages - :activerecord => { - :errors => { - :messages => { - :inclusion => "ni v seznamu", - :exclusion => "ni dostopno", - :invalid => "ni veljavno", - :confirmation => "ni skladno s potrditvijo", - :accepted => "mora biti potrjeno", - :empty => "ne sme biti prazno", - :blank => "je obezno", # alternate formulation: "is required" - :too_long => { - :one => "je predolgo (največ {{count}} znak)", - :two => "je predolgo (največ {{count}} znaka)", - :few => "je predolgo (največ {{count}} znaki)", - :other => "je predolgo (največ {{count}} znakov)" - }, - :too_short => { - :one => "je prekratko (vsaj {{count}} znak)", - :two => "je prekratko (vsaj {{count}} znaka)", - :few => "je prekratko (vsaj {{count}} znaki)", - :other => "je prekratko (vsaj {{count}} znakov)" - }, - :wrong_length => { - :one => "ni pravilne dolžine (natanko {{count}} znak)", - :two => "ni pravilne dolžine (natanko {{count}} znaka)", - :few => "ni pravilne dolžine (natanko {{count}} znaki)", - :other => "ni pravilne dolžine (natanko {{count}} znakov)" - }, - :taken => "že obstaja v bazi", - :not_a_number => "ni številka", - :greater_than => "mora biti večje od {{count}}", - :greater_than_or_equal_to => "mora biti večje ali enako {{count}}", - :equal_to => "mora biti enako {{count}}", - :less_than => "mora biti manjše od {{count}}", - :less_than_or_equal_to => "mora biti manjše ali enako {{count}}", - :odd => "mora biti liho", - :even => "mora biti sodo" - }, - :template => { - :header => { - :one => "Pri shranjevanju predmeta {{model}} je prišlo do {{count}} napake", - :two => "Pri shranjevanju predmeta {{model}} je prišlo do {{count}} napak", - :few => "Pri shranjevanju predmeta {{model}} je prišlo do {{count}} napak", - :other => "Pri shranjevanju predmeta {{model}} je prišlo do {{count}} napak" - }, - :body => "Prosim, popravite naslednje napake posameznih polj:" - } - } - } - } -} diff --git a/vendor/plugins/rails-i18n/locale/sl.yml b/vendor/plugins/rails-i18n/locale/sl.yml new file mode 100644 index 000000000..cc80e4488 --- /dev/null +++ b/vendor/plugins/rails-i18n/locale/sl.yml @@ -0,0 +1,190 @@ +# Slovenian language localization (sl-sl) +# by Miha Rebernik +sl: + date: + formats: + default: "%d.%m.%Y" + short: "%d. %b" + long: "%d. %b %Y" + simple: "%d. %b %Y" + + day_names: [nedelja, ponedeljek, torek, sreda, četrtek, petek, sobota] + abbr_day_names: [ned, pon, tor, sre, čet, pet, sob] + + month_names: [~, januar, februar, marec, april, maj, junij, julij, avgust, september, oktober, november, december] + abbr_month_names: [~, jan, feb, mar, apr, maj, jun, jul, avg, sep, okt, nov, dec] + order: [ :day, :month, :year ] + + time: + formats: + default: "%A, %d %b %Y ob %H:%M:%S" + short: "%d. %b ob %H:%M" + long: "%d. %B, %Y ob %H:%M" + simple: "%d. %B %Y ob %H:%M" + + am: "dopoldan" + pm: "popoldan" + + # Used in array.to_sentence. + support: + array: + words_connector: ", " + two_words_connector: " in " + last_word_connector: " in " + + activerecord: + errors: + template: + header: + one: "Ena napaka preprečuje, da bi shranili {{model}}" + two: "Dve napaki preprečujeta, da bi shranili {{model}}" + few: "{{count}} napake preprečujejo, da bi shranili {{model}}" + other: "{{count}} napak preprečuje, da bi shranili {{model}}" + body: "Napačno izpolnjena polja:" + messages: + inclusion: "ni vključeno v seznam" + exclusion: "je rezervirano" + invalid: "je nepravilno" + confirmation: "se ne ujema s potrditvijo" + accepted: "mora biti sprejeto" + empty: "ne sme biti prazno" + blank: "ne sme biti prazno" + too_long: "je predolgo (dovoljeno je do {{count}} znakov)" + too_short: "je prekratko (zahtevano je najmanj {{count}} znakov)" + wrong_length: "je napačne dolžine (mora biti natančno {{count}} znakov)" + taken: "je že zasedeno" + not_a_number: "ni številka" + greater_than: "mora biti večje kot {{count}}" + greater_than_or_equal_to: "mora biti večje ali enako {{count}}" + equal_to: "mora biti enako {{count}}" + less_than: "mora biti manj kot {{count}}" + less_than_or_equal_to: "mora biti manj ali enako {{count}}" + odd: "mora biti liho" + even: "mora biti sodo" + record_invalid: "" + + + 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 (the number 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: "€" + # These three are to override number.format and are optional + separator: "," + delimiter: "." + precision: 2 + + # Used in number_to_percentage() + percentage: + format: + # These three are to override number.format and are optional + # separator: + delimiter: "" + # precision: + + # Used in number_to_precision() + precision: + format: + # These three are to override number.format and are optional + # separator: + delimiter: "" + # precision: + + # 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: "Byte" + other: "Bytes" + kb: "KB" + mb: "MB" + gb: "GB" + tb: "TB" + + # 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: "pol minute" + less_than_x_seconds: + one: "manj kot 1 sekunda" + two: "manj kot 2 sekundi" + few: "manj kot {{count}} sekunde" + other: "manj kot {{count}} sekund" + x_seconds: + one: "1 sekunda" + two: "2 sekundi" + few: "{{count}} sekunde" + other: "{{count}} sekund" + less_than_x_minutes: + one: "manj kot ena minuta" + two: "manj kot dve minuti" + few: "manj kot {{count}} minute" + other: "manj kot {{count}} minut" + x_minutes: + one: "1 minuta" + two: "2 minuti" + few: "{{count}} minute" + other: "{{count}} minut" + about_x_hours: + one: "okoli 1 ura" + two: "okoli 2 uri" + few: "okoli {{count}} ure" + other: "okoli {{count}} ur" + x_days: + one: "1 dan" + two: "2 dneva" + few: "{{count}} dnevi" + other: "{{count}} dni" + about_x_months: + one: "okoli 1 mesec" + two: "okoli 2 meseca" + few: "okoli {{count}} mesece" + other: "okoli {{count}} mesecev" + x_months: + one: "1 mesec" + two: "2 meseca" + few: "{{count}} mesece" + other: "{{count}} mesecev" + almost_x_years: + one: "skoraj 1 leto" + two: "skoraj 2 leti" + few: "skoraj {{count}} leta" + other: "skoraj {{count}} let" + about_x_years: + one: "okoli 1 leto" + two: "okoli 2 leti" + few: "okoli {{count}} leta" + other: "okoli {{count}} let" + over_x_years: + one: "več kot 1 leto" + two: "več kot 2 leti" + few: "več kot {{count}} leta" + other: "več kot {{count}} let" + prompts: + year: "Leto" + month: "Mesec" + day: "Dan" + hour: "Ura" + minute: "Minute" + second: "Sekunde" \ No newline at end of file diff --git a/vendor/plugins/rails-i18n/locale/sv-SE.yml b/vendor/plugins/rails-i18n/locale/sv-SE.yml index 9eb55ef3e..9cccbb31f 100644 --- a/vendor/plugins/rails-i18n/locale/sv-SE.yml +++ b/vendor/plugins/rails-i18n/locale/sv-SE.yml @@ -1,6 +1,8 @@ -# Swedish translation, by Johan Lundström (johanlunds@gmail.com), with parts taken -# from http://github.com/daniel/swe_rails -# updated by Sven Dahlstrand (sven.dahlstrand@gmail.com) +# Swedish translation. +# By Johan Lundström (johanlunds@gmail.com) with parts taken from http://github.com/daniel/swe_rails. +# With contributions by: +# * Sven Dahlstrand (sven.dahlstrand@gmail.com) +# * Henrik Nyh (henrik@nyh.se) "sv-SE": number: @@ -9,9 +11,9 @@ 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) + # Delimits thousands (e.g. 1,000,000 is a million) (always in groups of three) delimiter: " " - # Number of decimals, behind the separator (the number 1 with a precision of 2 gives: 1.00) + # Number of decimals after the separator (the number 1 with a precision of 2 gives: 1.00) precision: 2 # Used in number_to_currency() @@ -20,26 +22,6 @@ # Where is the currency sign? %u is the currency unit, %n the number (default: $5.00) format: "%n %u" unit: "kr" - # These three are to override number.format and are optional - # separator: "." - # delimiter: "," - # precision: 2 - - # Used in number_to_percentage() - percentage: - format: - # These three are to override number.format and are optional - # separator: - # delimiter: "" - # precision: - - # Used in number_to_precision() - precision: - format: - # These three are to override number.format and are optional - # separator: - # delimiter: "" - # precision: # Used in number_to_human_size() human: @@ -110,13 +92,16 @@ errors: template: header: - one: "Ett fel förhindrade denna {{model}} från att sparas" - other: "{{count}} fel förhindrade denna {{model}} från att sparas" + one: "Ett fel förhindrade denna {{model}} från att sparas" + other: "{{count}} fel förhindrade denna {{model}} från att sparas" # The variable :count is also available body: "Det var problem med följande fält:" activerecord: errors: + # model.errors.full_messages format. + format: "{{attribute}} {{message}}" + # The values :model, :attribute and :value are always available for interpolation # The value :count is available when applicable. Can be used for pluralization. messages: @@ -124,7 +109,7 @@ exclusion: "är reserverat" invalid: "är ogiltigt" confirmation: "stämmer inte överens" - accepted : "måste vara accepterad" + accepted: "måste vara accepterad" empty: "får ej vara tom" blank: "måste anges" too_long: "är för lång (maximum är {{count}} tecken)" @@ -176,7 +161,7 @@ # You can provide other formats here if you like! default: "%Y-%m-%d" short: "%e %b" - long: "%e %B, %Y" + long: "%e %B %Y" day_names: [söndag, måndag, tisdag, onsdag, torsdag, fredag, lördag] abbr_day_names: [sön, mån, tis, ons, tor, fre, lör] @@ -189,9 +174,9 @@ time: formats: - default: "%a, %d %b %Y %H:%M:%S %z" - short: "%d %b %H:%M" - long: "%d %B, %Y %H:%M" + default: "%a, %e %b %Y %H:%M:%S %z" + short: "%e %b %H:%M" + long: "%e %B %Y %H:%M" am: "" pm: "" @@ -203,4 +188,4 @@ last_word_connector: " och " select: # default value for :prompt => true in FormOptionsHelper - prompt: "Välj" \ No newline at end of file + prompt: "Välj" diff --git a/vendor/plugins/rails-i18n/locale/th.rb b/vendor/plugins/rails-i18n/locale/th.rb new file mode 100644 index 000000000..d92efeb89 --- /dev/null +++ b/vendor/plugins/rails-i18n/locale/th.rb @@ -0,0 +1,222 @@ +# Thai translation for Ruby on Rails +# original by Prem Sichanugrist (s@sikachu.com/sikandsak@gmail.com) +# activerecord keys fixed by Jittat Fakcharoenphol (jittat@gmail.com) +# +# Note: You must install i18n gem in order to use this language pack. +# If you're calling I18n.localize(Time.now), the year will be in Bhuddhist calendar + +{ + :'th' => { + :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 (the number 1 with a precision of 2 :gives => 1.00) + :precision => 3 + }, + + # Used in number_to_currency() + :currency => { + :format => { + # Where is the currency sign? %u is the currency unit, %n the number :(default => $5.00) + :format => "%n %u", + :unit => "บาท", + # These three are to override number.format and are optional + :separator => ".", + :delimiter => ",", + :precision => 2 + } + }, + + # Used in number_to_percentage() + :percentage => { + :format => { + # These three are to override number.format and are optional + # :separator => ".", + :delimiter => "", + # :precision => 3 + } + }, + + # Used in number_to_precision() + :precision => { + :format => { + # These three are to override number.format and are optional + # :separator => ".", + :delimiter => "", + # :precision => 3 + } + }, + + # 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 => "Byte", + :other => "Bytes" + }, + :kb => "KB", + :mb => "MB", + :gb => "GB", + :tb => "TB" + } + } + } + }, + + # 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 => "ครึ่งนาที", + :less_than_x_seconds => "น้อยกว่า {{count}} วินาที", + :x_seconds => "{{count}} วินาที", + :less_than_x_minutes => "น้อยกว่า {{count}} นาที", + :x_minutes => "{{count}} นาที", + :about_x_hours => "ประมาณ {{count}} ชั่วโมง", + :x_days => "{{count}} วัน", + :about_x_months => "ประมาณ {{count}} เดือน", + :x_months => "{{count}} เดือน", + :about_x_years => "ประมาณ {{count}} ปี", + :over_x_years => "มากกว่า {{count}} ปี", + :almost_x_years => "เกือบ {{count}} ปี", + }, + :prompts => { + :year => "ปี", + :month => "เดือน", + :day => "วัน", + :hour => "ชั่วโมง", + :minute => "นาที", + :second => "วินาที", + } + }, + + :activemodel => { + :errors => { + :template => { + :header => "พบข้อผิดพลาด {{count}} ประการ ทำให้ไม่สามารถบันทึก{{model}}ได้", + # The variable :count is also available + :body => "โปรดตรวจสอบข้อมูลต่อไปนี้:" + } + } + }, + + :activerecord => { + :errors => { + # The values :model, :attribute and :value are always available for interpolation + # The value :count is available when applicable. Can be used for pluralization. + :messages => { + :inclusion => "ไม่ได้อยู่ในรายการ", + :exclusion => "ไม่อนุญาตให้ใช้", + :invalid => "ไม่ถูกต้อง", + :confirmation => "ไม่ตรงกับการยืนยัน", + :accepted => "ต้องถูกยอมรับ", + :empty => "ต้องไม่เว้นว่างเอาไว้", + :blank => "ต้องไม่เว้นว่างเอาไว้", + :too_long => "ยาวเกินไป (ต้องไม่เกิน {{count}} ตัวอักษร)", + :too_short => "สั้นเกินไป (ต้องยาวกว่า {{count}} ตัวอักษร)", + :wrong_length => "มีความยาวไม่ถูกต้อง (ต้องมีความยาว {{count}} ตัวอักษร)", + :taken => "ถูกใช้ไปแล้ว", + :not_a_number => "ไม่ใช่ตัวเลข", + :greater_than => "ต้องมากกว่า {{count}}", + :greater_than_or_equal_to => "ต้องมากกว่าหรือเท่ากับ {{count}}", + :equal_to => "ต้องมีค่าเท่ากับ {{count}}", + :less_than => "ต้องมีค่าน้อยกว่า {{count}}", + :less_than_or_equal_to => "ต้องมีค่าน้อยกว่าหรือเท่ากับ {{count}}", + :odd => "ต้องเป็นจำนวนคี่", + :even => "ต้องเป็นจำนวนคู่", + :record_invalid => "ไม่ผ่านการตรวจสอบ: {{errors}}" + # Append your own errors here or at the model/attributes scope. + }, + + # You can define own errors for models or model attributes. + # The values :model, :attribute and :value are always available for interpolation. + # + # For example, + # :models => + # :user => + # :blank => "This is a custom blank message for :{{model}} => {{attribute}}" + # :attributes => + # :login => + # :blank => "This is a custom blank message for User login" + # Will define custom blank validation message for User model and + # custom blank validation message for login attribute of User model. + # models => { + # + # }, + }, + + # Translate model names. Used in Model.human_name(). + # :models => { + # For example, + # :user => "Dude" + # will translate User model name to "Dude" + # }, + + # Translate model attribute names. Used in Model.human_attribute_name(attribute). + # :attributes => { + # For example, + # :user => + # :login => "Handle" + # will translate User attribute "login" as "Handle" + # }, + }, + + :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 => lambda { |date, opts| "%d-%m-#{date.year + 543}" }, + :short => "%e %b", + :long => lambda { |date, opts| "%e %B #{date.year + 543}" }, + }, + + :day_names => ["อาทิตย์", "จันทร์", "อังคาร", "พุธ", "พฤหัสบดี", "ศุกร์", "เสาร์"], + :abbr_day_names => ["อา", "จ", "อ", "พ", "พฤ", "ศ", "ส"], + + # Don't forget the nil at the beginning; there's no such thing as a 0th month + :month_names => [nil, "มกราคม", "กุมภาพันธ์", "มีนาคม", "เมษายน", "พฤษภาคม", "มิถุนายน", "กรกฎาคม", "สิงหาคม", "กันยายน", "ตุลาคม", "พฤศจิกายน", "ธันวาคม"], + :abbr_month_names => [nil, "ม.ค.", "ก.พ.", "มี.ค.", "เม.ย.", "พ.ค.", "มิ.ย.", "ก.ค.", "ส.ค.", "ก.ย.", "ต.ค.", "พ.ย.", "ธ.ค."], + # Used in date_select and datime_select. + :order => [ :day, :month, :year ] + }, + + :time => { + :formats => { + :default => lambda { |date, opts| "%a %d %b #{date.year + 543} %H:%M:%S %z" }, + :short => "%e %b %H:%M น.", + :long => lambda { |date, opts| "%e %B #{date.year + 543} %H:%M น." }, + }, + :am => "", + :pm => "", + }, + + # Used in array.to_sentence. + :support => { + :array => { + :words_connector => ", ", + :two_words_connector => " และ ", + :last_word_connector => ", และ ", + }, + :select => { + # default value for :prompt => true in FormOptionsHelper + :prompt => "โปรดเลือก" + } + } + } +} diff --git a/vendor/plugins/rails-i18n/locale/th.yml b/vendor/plugins/rails-i18n/locale/th.yml deleted file mode 100644 index a3c5337e7..000000000 --- a/vendor/plugins/rails-i18n/locale/th.yml +++ /dev/null @@ -1,201 +0,0 @@ -# Thai translation for Ruby on Rails -# original by Prem Sichanugrist (s@sikachu.com/sikandsak@gmail.com) -# activerecord keys fixed by Jittat Fakcharoenphol (jittat@gmail.com) - -th: - 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 (the number 1 with a precision of 2 gives: 1.00) - precision: 3 - - # Used in number_to_currency() - currency: - format: - # Where is the currency sign? %u is the currency unit, %n the number (default: $5.00) - format: "%n %u" - unit: "Baht" - # These three are to override number.format and are optional - separator: "." - delimiter: "," - precision: 2 - - # Used in number_to_percentage() - percentage: - format: - # These three are to override number.format and are optional - # separator: - delimiter: "" - # precision: - - # Used in number_to_precision() - precision: - format: - # These three are to override number.format and are optional - # separator: - delimiter: "" - # precision: - - # 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: "Byte" - other: "Bytes" - kb: "KB" - mb: "MB" - gb: "GB" - tb: "TB" - - # 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: "ครึ่งนาที" - less_than_x_seconds: - one: "น้อยกว่า 1 วินาที" - other: "น้อยกว่า {{count}} วินาที" - x_seconds: - one: "1 วินาที" - other: "{{count}} วินาที" - less_than_x_minutes: - one: "น้อยกว่า 1 นาที" - other: "น้อยกว่า {{count}} นาที" - x_minutes: - one: "1 นาที" - other: "{{count}} นาที" - about_x_hours: - one: "ประมาณ 1 ชั่วโมง" - other: "ประมาณ {{count}} ชั่วโมง" - x_days: - one: "1 วัน" - other: "{{count}} วัน" - about_x_months: - one: "ประมาณ 1 เดือน" - other: "ประมาณ {{count}} เดือน" - x_months: - one: "1 เดือน" - other: "{{count}} เดือน" - about_x_years: - one: "ประมาณ 1 ปี" - other: "ประมาณ {{count}} ปี" - over_x_years: - one: "มากกว่า 1 ปี" - other: "มากกว่า {{count}} ปี" - prompts: - year: "ปี" - month: "เดือน" - day: "วัน" - hour: "ชั่วโมง" - minute: "นาที" - second: "วินาที" - - activerecord: - errors: - template: - header: - one: "ไม่สามารถบันทึก {{model}} ได้เนื่องจากเกิดข้อผิดพลาด" - other: "ไม่สามารถบันทึก {{model}} ได้เนื่องจากเกิด {{count}} ข้อผิดพลาด" - # The variable :count is also available - body: "โปรดตรวจสอบข้อมูลในช่องต่อไปนี้:" - - # The values :model, :attribute and :value are always available for interpolation - # The value :count is available when applicable. Can be used for pluralization. - messages: - inclusion: "ไม่ได้อยู่ในลิสต์" - exclusion: "ถูกจองเอาไว้แล้ว" - invalid: "ไม่ถูกต้อง" - confirmation: "ไม่ตรงกับการยืนยัน" - accepted: "ต้องถูกยอมรับ" - empty: "ต้องไม่เว้นว่างเอาไว้" - blank: "ต้องไม่เว้นว่างเอาไว้" - too_long: "ยาวเกินไป (ต้องไม่เกิน {{count}} ตัวอักษร)" - too_short: "สั้นเกินไป (ต้องยาวกว่า {{count}} ตัวอักษร)" - wrong_length: "มีความยาวไม่ถูกต้อง (ต้องมีความยาว {{count}} ตัวอักษร)" - taken: "ถูกใช้ไปแล้ว" - not_a_number: "ไม่ใช่ตัวเลข" - greater_than: "ต้องมากกว่า {{count}}" - greater_than_or_equal_to: "ต้องมากกว่าหรือเท่ากับ {{count}}" - equal_to: "ต้องมีค่าเท่ากับ {{count}}" - less_than: "ต้องมีค่าน้อยกว่า {{count}}" - less_than_or_equal_to: "ต้องมีค่าน้อยกว่าหรือเท่ากับ {{count}}" - odd: "ต้องเป็นจำนวนคี่" - even: "ต้องเป็นจำนวนคู่" - record_invalid: "ไม่ผ่านการตรวจสอบ: {{errors}}" - # Append your own errors here or at the model/attributes scope. - - # You can define own errors for models or model attributes. - # The values :model, :attribute and :value are always available for interpolation. - # - # For example, - # models: - # user: - # blank: "This is a custom blank message for {{model}}: {{attribute}}" - # attributes: - # login: - # blank: "This is a custom blank message for User login" - # Will define custom blank validation message for User model and - # custom blank validation message for login attribute of User model. - #models: - - # Translate model names. Used in Model.human_name(). - #models: - # For example, - # user: "Dude" - # will translate User model name to "Dude" - - # Translate model attribute names. Used in Model.human_attribute_name(attribute). - #attributes: - # For example, - # user: - # login: "Handle" - # will translate User attribute "login" as "Handle" - - 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: ["อาทิตย์", "จันทร์", "อังคาร", "พุธ", "พฤหัสบดี", "ศุกร์", "เสาร์"] - abbr_day_names: ["อา", "จ", "อ", "พ", "พฤ", "ศ", "ส"] - - # Don't forget the nil at the beginning; there's no such thing as a 0th month - month_names: [~, "มกราคม", "กุมภาพันธ์", "มีนาคม", "เมษายน", "พฤษภาคม", "มิถุนายน", "กรกฎาคม", "สิงหาคม", "กันยายน", "ตุลาคม", "พฤศจิกายน", "ธันวาคม"] - abbr_month_names: [~, "ม.ค.", "ก.พ.", "มี.ค.", "เม.ย.", "พ.ค.", "มิ.ย.", "ก.ค.", "ส.ค.", "ก.ย.", "ต.ค.", "พ.ย.", "ธ.ค."] - # Used in date_select and datime_select. - order: [ :day, :month, :year ] - - time: - formats: - default: "%a %d %b %Y %H:%M:%S %z" - short: "%d %b %H:%M น." - long: "%d %B %Y %H:%M น." - am: "" - pm: "" - -# Used in array.to_sentence. - support: - array: - words_connector: ", " - two_words_connector: " และ " - last_word_connector: ", และ " - select: - # default value for :prompt => true in FormOptionsHelper - prompt: "โปรดเลือก" diff --git a/vendor/plugins/rails-i18n/locale/tr.yml b/vendor/plugins/rails-i18n/locale/tr.yml index ccb21e4d9..7b87763dd 100644 --- a/vendor/plugins/rails-i18n/locale/tr.yml +++ b/vendor/plugins/rails-i18n/locale/tr.yml @@ -65,6 +65,9 @@ tr: over_x_years: one: '1 yıldan fazla' other: '{{count}} yıldan fazla' + almost_x_years: + one: "neredeyse 1 yıl" + other: "neredeyse {{count}} yıl" number: format: @@ -94,9 +97,15 @@ tr: precision: 2 support: + select: + # default value for :prompt => true in FormOptionsHelper + prompt: "Lütfen seçiniz" array: sentence_connector: "ve" skip_last_comma: true + words_connector: ", " + two_words_connector: " ve " + last_word_connector: " ve " activerecord: errors: @@ -110,7 +119,7 @@ tr: inclusion: "kabul edilen bir kelime değil" exclusion: "kullanılamaz" invalid: "geçersiz" - confirmation: "teyidi uyuşmamakta" + confirmation: "teyidiyle uyuşmamakta" accepted: "kabul edilmeli" empty: "doldurulmalı" blank: "doldurulmalı" @@ -126,4 +135,5 @@ tr: less_than_or_equal_to: "{{count}} sayısına eşit veya küçük olmalı" odd: "tek olmalı" even: "çift olmalı" + record_invalid: "Doğrulama başarısız oldu: {{errors}}" models: diff --git a/vendor/plugins/rails-i18n/locale/zh-CN.yml b/vendor/plugins/rails-i18n/locale/zh-CN.yml index da70c088b..020bda735 100644 --- a/vendor/plugins/rails-i18n/locale/zh-CN.yml +++ b/vendor/plugins/rails-i18n/locale/zh-CN.yml @@ -109,7 +109,7 @@ other: "有 {{count}} 个错误发生导致「{{model}}」无法被保存。" body: "如下字段出现错误:" messages: - record_invalid: "交验失败: {{errors}}" + record_invalid: "校验失败: {{errors}}" inclusion: "不包含于列表中" exclusion: "是保留关键字" invalid: "是无效的" diff --git a/vendor/plugins/validates_email_format_of/MIT-LICENSE b/vendor/plugins/validates_email_format_of/MIT-LICENSE index 1bae24d25..c94752595 100644 --- a/vendor/plugins/validates_email_format_of/MIT-LICENSE +++ b/vendor/plugins/validates_email_format_of/MIT-LICENSE @@ -1,20 +1,20 @@ -Copyright (c) 2006 Alex Dunae - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +Copyright (c) 2006 Alex Dunae + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/plugins/validates_email_format_of/rails/init.rb b/vendor/plugins/validates_email_format_of/rails/init.rb index a30177232..bdc8b5794 100644 --- a/vendor/plugins/validates_email_format_of/rails/init.rb +++ b/vendor/plugins/validates_email_format_of/rails/init.rb @@ -1 +1 @@ -require 'validates_email_format_of' +require 'validates_email_format_of' diff --git a/vendor/plugins/validates_email_format_of/rakefile b/vendor/plugins/validates_email_format_of/rakefile deleted file mode 100644 index 0b617435e..000000000 --- a/vendor/plugins/validates_email_format_of/rakefile +++ /dev/null @@ -1,12 +0,0 @@ -require 'rake' -require 'rake/testtask' - -test_files_pattern = 'test/*_test.rb' -Rake::TestTask.new do |t| - t.libs << 'lib' - t.pattern = test_files_pattern - t.verbose = false -end - -desc "Run the test suite" -task :default => :test