From: Tom Hughes Date: Sat, 2 Feb 2013 11:00:46 +0000 (+0000) Subject: Merge branch 'master' into notes X-Git-Tag: live~5187^2~48 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/56db9ca2b7e2475cd8025630049fb4a4b824f2d9?hp=76559d3de23b3af28b6d2014d12ed48d0cfc74cd Merge branch 'master' into notes --- diff --git a/Vendorfile b/Vendorfile index d7779f8f7..d11ca37fc 100644 --- a/Vendorfile +++ b/Vendorfile @@ -1,27 +1,27 @@ folder 'vendor/assets' do folder 'leaflet' do - from 'https://github.com/CloudMade/Leaflet.git' do + from 'git://github.com/Leaflet/Leaflet.git', :tag => 'v0.5' do file 'leaflet.css', 'dist/leaflet.css' file 'leaflet.ie.css', 'dist/leaflet.ie.css' file 'leaflet.js', 'dist/leaflet-src.js' folder 'images', 'dist/images' end - from 'https://github.com/tripbirds/leaflet-locationfilter.git' do + from 'git://github.com/kajic/leaflet-locationfilter.git' do file 'leaflet.locationfilter.css', 'src/locationfilter.css' file 'leaflet.locationfilter.js', 'src/locationfilter.js' folder 'img', 'src/img' end - from 'https://github.com/kartena/Leaflet.Pancontrol.git' do + from 'git://github.com/kartena/Leaflet.Pancontrol.git' do file 'leaflet.pan.js', 'src/L.Control.Pan.js' end - from 'https://github.com/kartena/Leaflet.zoomslider.git' do + from 'git://github.com/kartena/Leaflet.zoomslider.git' do file 'leaflet.zoom.js', 'src/L.Control.Zoomslider.js' end - from 'https://github.com/jfirebaugh/leaflet-osm.git' do + from 'git://github.com/jfirebaugh/leaflet-osm.git' do file 'leaflet.osm.js', 'leaflet-osm.js' end end diff --git a/app/assets/images/browse/aerodrome.p.16.png b/app/assets/images/browse/aerodrome.p.16.png new file mode 100644 index 000000000..8f13cd76f Binary files /dev/null and b/app/assets/images/browse/aerodrome.p.16.png differ diff --git a/app/assets/images/browse/tourist_ruin.p.16.png b/app/assets/images/browse/tourist_ruins.p.16.png similarity index 100% rename from app/assets/images/browse/tourist_ruin.p.16.png rename to app/assets/images/browse/tourist_ruins.p.16.png diff --git a/app/assets/javascripts/edit.js b/app/assets/javascripts/edit.js index 30823d49e..f13e2d481 100644 --- a/app/assets/javascripts/edit.js +++ b/app/assets/javascripts/edit.js @@ -1,27 +1,11 @@ function maximiseMap() { - $("#left").hide(); - $("#top-bar").hide(); - - $("#content").css("top", "0px"); - if ($("html").attr("dir") == "ltr") { - $("#content").css("margin-left", "0px"); - } else { - $("#content").css("margin-right", "0px"); - } + $("#content").addClass("maximised"); handleResize(); } function minimiseMap() { - $("#left").show(); - $("#top-bar").show(); - - $("#content").css("top", "30px"); - if ($("html").attr("dir") == "ltr") { - $("#content").css("margin-left", "185px"); - } else { - $("#content").css("margin-right", "185px"); - } + $("#content").removeClass("maximised"); handleResize(); } diff --git a/app/assets/javascripts/index.js b/app/assets/javascripts/index.js index dc5c40bf2..7c80b0108 100644 --- a/app/assets/javascripts/index.js +++ b/app/assets/javascripts/index.js @@ -5,7 +5,7 @@ //= require index/notes $(document).ready(function () { - var permalinks = $("#permalink").html(); + var permalinks = $("#permalink").detach().html(); var marker; var params = OSM.mapParams(); var map = createMap("map"); @@ -66,10 +66,10 @@ $(document).ready(function () { }); function updateLocation() { - var center = map.getCenter(); + var center = map.getCenter().wrap(); var zoom = map.getZoom(); var layers = getMapLayers(); - var extents = map.getBounds(); + var extents = map.getBounds().wrap(); updatelinks(center.lng, center.lat, diff --git a/app/assets/javascripts/map.js.erb b/app/assets/javascripts/map.js.erb index 291633f53..928575eb5 100644 --- a/app/assets/javascripts/map.js.erb +++ b/app/assets/javascripts/map.js.erb @@ -1,5 +1,5 @@ // Leaflet extensions -L.LatLngBounds.include({ +L.extend(L.LatLngBounds.prototype, { getSouthLat: function () { return this._southWest.lat; }, @@ -29,10 +29,14 @@ L.LatLngBounds.include({ getSize: function () { return (this._northEast.lat - this._southWest.lat) * (this._northEast.lng - this._southWest.lng); + }, + + wrap: function () { + return new L.LatLngBounds(this._southWest.wrap(), this._northEast.wrap()); } }); -L.Bounds.include({ +L.extend(L.Bounds.prototype, { getWidth: function () { return this.max.x - this.min.x; }, diff --git a/app/assets/javascripts/richtext.js b/app/assets/javascripts/richtext.js index 78a9d452f..38cc2a77b 100644 --- a/app/assets/javascripts/richtext.js +++ b/app/assets/javascripts/richtext.js @@ -41,8 +41,8 @@ $(document).ready(function () { $(".richtext_dopreview").click(function (event) { var editor = $(this).parents(".richtext_container").find("textarea"); var preview = $(this).parents(".richtext_container").find(".richtext_preview"); - var width = editor.outerWidth() - preview.outerWidth() + preview.innerWidth(); - var minHeight = editor.outerHeight() - preview.outerHeight() + preview.innerHeight(); + var width = editor.outerWidth() - preview.outerWidth() + preview.width(); + var minHeight = editor.outerHeight() - preview.outerHeight() + preview.height(); if (preview.contents().length == 0) { preview.oneTime(500, "loading", function () { diff --git a/app/assets/stylesheets/common.css.scss b/app/assets/stylesheets/common.css.scss index dd9b3bbcb..5fe4ec97b 100644 --- a/app/assets/stylesheets/common.css.scss +++ b/app/assets/stylesheets/common.css.scss @@ -469,7 +469,7 @@ table { .site-index #tabnav a#viewanchor, .site-edit #tabnav a#editanchor, -.changeset_list #tabnav a#historyanchor, +.changeset-list #tabnav a#historyanchor, .site-export #tabnav a#exportanchor { border-bottom: 1px solid #aaa; background: #9ed485; @@ -789,6 +789,15 @@ ul.results-list li { border-bottom: 1px solid #ccc; } top: 30px; } +#content.maximised { + top: 0; + left: 0; + right: 0; + bottom: 0; + border: 0; + z-index: 1000; +} + #slim_container { width: 100%; } @@ -805,12 +814,16 @@ ul.results-list li { border-bottom: 1px solid #ccc; } #slim_content { margin: 10px; - margin-top: 90px; + margin-top: 95px; max-width: 50em; + + .content-heading { + margin-bottom: 15px; + } } #slim_header { - margin: 10px; + margin: 30px 10px; position: absolute; top: 0px; margin-right: 5px; @@ -891,7 +904,7 @@ ul.results-list li { border-bottom: 1px solid #ccc; } } } .selected { - background-color: rgb(255, 255, 160); + background: #FFFFC0; } .date, .user { @@ -1021,6 +1034,7 @@ ul.results-list li { border-bottom: 1px solid #ccc; } } .activity-block { + clear: left; border-bottom: 1px solid #ccc; padding-bottom: 20px; float: left; @@ -1139,15 +1153,7 @@ ul.results-list li { border-bottom: 1px solid #ccc; } } ul, ol { - margin-bottom: 20px; font-style: italic; - margin-left: 20px; - } - ul li { - list-style: disc; - } - ol li { - list-style: decimal; } ul.secondary-actions { display: inline-block;} } @@ -1436,8 +1442,8 @@ textarea { /* Rules for user images */ img.user_image { - width: 100px; - height: 100px; + max-width: 100px; + max-height: 100px; border: 1px solid #ccc; margin-bottom: 20px; float: left; @@ -1445,8 +1451,8 @@ img.user_image { } img.user_thumbnail { - width: 50px; - height: 50px; + max-width: 50px; + max-height: 50px; border: 1px solid #ccc; margin-right: 20px; } @@ -1499,18 +1505,6 @@ ul.secondary-actions { padding-left: 0; } } - .hidden li, - .hide_unless_logged_in li, - .hide_unless_administrator li { - border-left: 1px solid #ccc; - padding-left: 5px; - } - .hidden:first-child li, - .hide_unless_logged_in:first-child li, - .hide_unless_administrator:first-child li { - border-left: 0; - padding-left: 0; - } } /* Utility for managing inner content areas */ @@ -1548,6 +1542,7 @@ a.button.submit { background-color: #9ed485; } } + /* Rules for doing distinct colour of alternate table rows */ .table0, @@ -1567,55 +1562,79 @@ a.button.submit { border: 0; } +/* Rules for rich text */ + +.richtext { + ul, + ol { + margin-bottom: 20px; + margin-left: 20px; + } + ul li { + list-style: disc; + } + + ol li { + list-style: decimal; + } +} + /* Rules for rich text editors */ .richtext_container { white-space: nowrap; + .richtext_content { display: inline-block; vertical-align: top; + .richtext_preview { display: inline-block; padding: 20px; background-color: #f4f4ff; white-space: normal; + &.loading { background-image: image-url("loading.gif"); background-repeat: no-repeat; background-position: center; } + > :first-child { margin-top: 0px; } } } + .richtext_help { display: inline-block; vertical-align: top; margin-left: 15px; background-color: #f8f8ff; padding: 20px; + p { margin: 0px; } + th { vertical-align: top; text-align: left; padding: 0px 15px 0px 0px !important; } - table > thead th { - font-weight: bold; - } + td { font-family: fixed; line-height: 16px; text-align: left; padding: 0px !important; } + input.richtext_doedit { margin-top: 5px !important; margin-right: 10px !important; } + input.richtext_dopreview { margin-top: 5px !important; margin-left: 10px !important; diff --git a/app/assets/stylesheets/embed.css.scss b/app/assets/stylesheets/embed.css.scss index 024f73d36..6ad3ff38a 100644 --- a/app/assets/stylesheets/embed.css.scss +++ b/app/assets/stylesheets/embed.css.scss @@ -17,11 +17,3 @@ body { width: 100%; height: 100%; } - -.leaflet-control-zoom-in { - background-image: image-url("images/zoom-in.png"); -} - -.leaflet-control-zoom-out { - background-image: image-url("images/zoom-out.png"); -} diff --git a/app/assets/stylesheets/leaflet-all.css.scss b/app/assets/stylesheets/leaflet-all.css.scss index 3d9c381c0..f983149da 100644 --- a/app/assets/stylesheets/leaflet-all.css.scss +++ b/app/assets/stylesheets/leaflet-all.css.scss @@ -6,14 +6,6 @@ */ /* Override to serve images through the asset pipeline. */ -.leaflet-control-zoom-in { - background-image: image-url("images/zoom-in.png"); -} - -.leaflet-control-zoom-out { - background-image: image-url("images/zoom-out.png"); -} - .leaflet-control-layers-toggle { background-image: image-url("images/layers.png"); } diff --git a/app/assets/stylesheets/small.css.scss b/app/assets/stylesheets/small.css.scss index 7ce0484b7..2bec6d249 100644 --- a/app/assets/stylesheets/small.css.scss +++ b/app/assets/stylesheets/small.css.scss @@ -3,15 +3,15 @@ /* Default rules for the body of every page */ body { - font-size: 12px; + font-size: 10px; } h1 { - font-size: 16px; + font-size: 12px; } h2, h3, h4 { - font-size: 14px; + font-size: 12px; } .wrapper { @@ -30,6 +30,10 @@ h2, h3, h4 { position: relative; } +.site-edit #content, .site-index #content, .site-export #content { + position: absolute; +} + .column-1 { width: 100%; } @@ -89,7 +93,7 @@ h2, h3, h4 { #small-title h1 { position: absolute; - font-size: 12px; + font-size: 10px; line-height: 18px; margin: 0; left: 22px; @@ -106,6 +110,7 @@ h2, h3, h4 { #browse_map ul.secondary-actions { float: right; + font-size: 10px; } #map { @@ -132,7 +137,7 @@ h2, h3, h4 { .site-index .leaflet-top, .site-export .leaflet-top { - top: 47px !important; + top: 10px !important; } /* Rules for the main content area */ @@ -155,14 +160,10 @@ h2, h3, h4 { #sidebar { border: 0px; margin: 0px; - width: 50%; + width: 50% !important; border-right: 1px solid #ccccdd; } -.sidebar_title, #sidebar_content { - font-size: 10px !important; -} - p.search_results_entry { padding: 2px 0px; } diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 7aae6b777..9676e6ee1 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -20,12 +20,12 @@ module ApplicationHelper def style_rules css = "" - css << ".hidden { display: none }"; - css << ".hide_unless_logged_in { display: none }" unless @user; - css << ".hide_if_logged_in { display: none }" if @user; - css << ".hide_if_user_#{@user.id} { display: none }" if @user; - css << ".show_if_user_#{@user.id} { display: inline }" if @user; - css << ".hide_unless_administrator { display: none }" unless @user and @user.administrator?; + css << ".hidden { display: none !important }"; + css << ".hide_unless_logged_in { display: none !important }" unless @user; + css << ".hide_if_logged_in { display: none !important }" if @user; + css << ".hide_if_user_#{@user.id} { display: none !important }" if @user; + css << ".show_if_user_#{@user.id} { display: inline !important }" if @user; + css << ".hide_unless_administrator { display: none !important }" unless @user and @user.administrator?; return content_tag(:style, css, :type => "text/css") end @@ -77,7 +77,7 @@ module ApplicationHelper content_tag(:div, :id => "#{id}_container", :class => "richtext_container") do output_buffer << content_tag(:div, :id => "#{id}_content", :class => "richtext_content") do output_buffer << text_area(object_name, method, options.merge("data-preview-url" => preview_url(:format => format))) - output_buffer << content_tag(:div, "", :id => "#{id}_preview", :class => "richtext_preview") + output_buffer << content_tag(:div, "", :id => "#{id}_preview", :class => "richtext_preview richtext") end output_buffer << content_tag(:div, :id => "#{id}_help", :class => "richtext_help") do diff --git a/app/views/browse/_map.html.erb b/app/views/browse/_map.html.erb index cf59a4679..e0428b4ac 100644 --- a/app/views/browse/_map.html.erb +++ b/app/views/browse/_map.html.erb @@ -52,7 +52,7 @@ <% end -%>
  • - <%= link_to h(t("browse.map.edit.area")) + content_tag(:span, "▾", :class => "menuicon"), + <%= link_to h(t("browse.map.edit.area")) + content_tag(:span, "▼", :class => "menuicon"), edit_path, :id => "area_edit", :data => { :editor => preferred_editor }, @@ -69,7 +69,7 @@ :class => "geolink object" %>
  • - <%= link_to h(t("browse.map.edit." + map.class.to_s.downcase)) + content_tag(:span, "▾", :class => "menuicon"), + <%= link_to h(t("browse.map.edit." + map.class.to_s.downcase)) + content_tag(:span, "▼", :class => "menuicon"), edit_path, :id => "object_edit", :data => { :editor => preferred_editor }, diff --git a/app/views/browse/_node_details.html.erb b/app/views/browse/_node_details.html.erb index 308ccd9bf..8dec338d6 100644 --- a/app/views/browse/_node_details.html.erb +++ b/app/views/browse/_node_details.html.erb @@ -1,8 +1,9 @@ +
    <% if node_details.redacted? %> -

    <%= t 'browse.redacted.message_html', :type => t('browse.redacted.type.node'), :redaction_link => link_to(t('browse.redacted.redaction', :id => node_details.redaction.id), node_details.redaction), :version => node_details.version %>

    +
    + <%= t 'browse.redacted.message_html', :type => t('browse.redacted.type.node'), :redaction_link => link_to(t('browse.redacted.redaction', :id => node_details.redaction.id), node_details.redaction), :version => node_details.version %> +
    <% else %> -
    - <%= render :partial => "common_details", :object => node_details %> <% if node_details.visible -%> @@ -23,6 +24,5 @@
    <% end %> - -
    <% end %> + diff --git a/app/views/browse/_relation_details.html.erb b/app/views/browse/_relation_details.html.erb index bfa5edefc..1c0f4c93c 100644 --- a/app/views/browse/_relation_details.html.erb +++ b/app/views/browse/_relation_details.html.erb @@ -1,8 +1,9 @@ +
    <% if relation_details.redacted? %> -

    <%= t 'browse.redacted.message_html', :type => t('browse.redacted.type.relation'), :redaction_link => link_to(t('browse.redacted.redaction', :id => relation_details.redaction.id), relation_details.redaction), :version => relation_details.version %>

    +
    + <%= t 'browse.redacted.message_html', :type => t('browse.redacted.type.relation'), :redaction_link => link_to(t('browse.redacted.redaction', :id => relation_details.redaction.id), relation_details.redaction), :version => relation_details.version %>< +
    <% else %> -
    - <%= render :partial => "common_details", :object => relation_details %> <% unless relation_details.relation_members.empty? %> @@ -18,6 +19,5 @@
      <%= render :partial => "containing_relation", :collection => relation_details.containing_relation_members %>
    <% end %> - -
    <% end %> + diff --git a/app/views/browse/_way_details.html.erb b/app/views/browse/_way_details.html.erb index d21365b45..6bff887b3 100644 --- a/app/views/browse/_way_details.html.erb +++ b/app/views/browse/_way_details.html.erb @@ -1,9 +1,9 @@ +
    <% if way_details.redacted? %> -

    <%= t 'browse.redacted.message_html', :type => t('browse.redacted.type.way'), :redaction_link => link_to(t('browse.redacted.redaction', :id => way_details.redaction.id), way_details.redaction), :version => way_details.version %>

    +
    + <%= t 'browse.redacted.message_html', :type => t('browse.redacted.type.way'), :redaction_link => link_to(t('browse.redacted.redaction', :id => way_details.redaction.id), way_details.redaction), :version => way_details.version %> +
    <% else %> - -
    - <%= render :partial => "common_details", :object => way_details %> <% unless way_details.way_nodes.empty? %> @@ -30,6 +30,5 @@ <%= render :partial => "containing_relation", :collection => way_details.containing_relation_members %> <% end %> - -
    <% end %> +
    diff --git a/app/views/diary_entry/_diary_comment.html.erb b/app/views/diary_entry/_diary_comment.html.erb index ccc1c744f..c7700b361 100644 --- a/app/views/diary_entry/_diary_comment.html.erb +++ b/app/views/diary_entry/_diary_comment.html.erb @@ -1,8 +1,8 @@ -
    +
    <%= user_thumbnail diary_comment.user %> -

    <%= raw(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))) %>

    - <%= diary_comment.body.to_html %> +

    <%= raw(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))) %>

    +
    <%= diary_comment.body.to_html %>
    <%= if_administrator(:span) do %> <%= link_to t('diary_entry.diary_comment.hide_link'), hide_diary_comment_path(:display_name => diary_comment.diary_entry.user.display_name, :id => diary_comment.diary_entry.id, :comment => diary_comment.id), :method => :post, :data=> { :confirm => t('diary_entry.diary_comment.confirm') } %> <% end %> -
    \ No newline at end of file +
    diff --git a/app/views/diary_entry/_diary_entry.html.erb b/app/views/diary_entry/_diary_entry.html.erb index a88e8adbc..a7d40c792 100644 --- a/app/views/diary_entry/_diary_entry.html.erb +++ b/app/views/diary_entry/_diary_entry.html.erb @@ -6,7 +6,8 @@

    <%= link_to h(diary_entry.title), :action => 'view', :display_name => diary_entry.user.display_name, :id => diary_entry.id %>

    -
    + +
    <%= diary_entry.body.to_html %>
    @@ -25,12 +26,12 @@
  • <%= link_to t('diary_entry.diary_entry.comment_count', :count => diary_entry.visible_comments.count), :action => 'view', :display_name => diary_entry.user.display_name, :id => diary_entry.id, :anchor => 'comments' %>
  • <% end %> - <%= if_user(diary_entry.user, :span) do %> -
  • <%= link_to t('diary_entry.diary_entry.edit_link'), :action => 'edit', :display_name => diary_entry.user.display_name, :id => diary_entry.id %>
  • + <%= if_user(diary_entry.user, :li) do %> + <%= link_to t('diary_entry.diary_entry.edit_link'), :action => 'edit', :display_name => diary_entry.user.display_name, :id => diary_entry.id %> <% end %> - <%= if_administrator(:span) do %> -
  • <%= link_to t('diary_entry.diary_entry.hide_link'), hide_diary_entry_path(:display_name => diary_entry.user.display_name, :id => diary_entry.id), :method => :post, :data => { :confirm => t('diary_entry.diary_entry.confirm') } %>
  • + <%= if_administrator(:li) do %> + <%= link_to t('diary_entry.diary_entry.hide_link'), hide_diary_entry_path(:display_name => diary_entry.user.display_name, :id => diary_entry.id), :method => :post, :data => { :confirm => t('diary_entry.diary_entry.confirm') } %> <% end %> diff --git a/app/views/diary_entry/comments.html.erb b/app/views/diary_entry/comments.html.erb index e486308ea..b55eecf76 100644 --- a/app/views/diary_entry/comments.html.erb +++ b/app/views/diary_entry/comments.html.erb @@ -13,7 +13,7 @@ <%= link_to comment.diary_entry.title, :action => :view, :display_name => comment.diary_entry.user.display_name, :id => comment.diary_entry.id %> <%= t 'diary_entry.comments.ago', :ago => time_ago_in_words(comment.created_at) %> - <%= comment.body.to_html %> + <%= comment.body.to_html %> <% end -%> @@ -21,4 +21,4 @@ \ No newline at end of file + diff --git a/app/views/geocoder/results.html.erb b/app/views/geocoder/results.html.erb index 4b2d6e83d..7fd21775e 100644 --- a/app/views/geocoder/results.html.erb +++ b/app/views/geocoder/results.html.erb @@ -3,7 +3,7 @@ <% else %> <% if @more_params %> diff --git a/app/views/layouts/site.html.erb b/app/views/layouts/site.html.erb index d36681d97..1d23aba0d 100644 --- a/app/views/layouts/site.html.erb +++ b/app/views/layouts/site.html.erb @@ -100,7 +100,7 @@ :title => t('layouts.view_tooltip'), :class => 'geolink llz layers' } %> -
  • <%= link_to h(t('layouts.edit')) + content_tag(:span, "▾", :class => "menuicon"), edit_path, { +
  • <%= link_to h(t('layouts.edit')) + content_tag(:span, "▼", :class => "menuicon"), edit_path, { :id => 'editanchor', :title => t('javascripts.site.edit_tooltip'), :data => { :minzoom => 13, :editor => preferred_editor }, diff --git a/app/views/layouts/slim.html.erb b/app/views/layouts/slim.html.erb index ba02104f4..72cfcec31 100644 --- a/app/views/layouts/slim.html.erb +++ b/app/views/layouts/slim.html.erb @@ -1,17 +1,23 @@ - + <%= render :partial => "layouts/head" %>
    +
    +

    <%= image_tag("osm_logo.png", :size => "60x60", :border => 0, :alt => t('layouts.logo.alt_text')) %><%= t 'layouts.project_name.h1' %>

    +
    +
    <%= render :partial => "layouts/flash", :locals => { :flash => flash } %> - <%= yield %> -
    + <% if content_for? :heading %> +
    + <%= yield :heading %> +
    + <% end %> -
    -

    <%= image_tag("osm_logo.png", :size => "60x60", :border => 0, :alt => t('layouts.logo.alt_text')) %><%= t 'layouts.project_name.h1' %>

    + <%= yield %>
    diff --git a/app/views/message/read.html.erb b/app/views/message/read.html.erb index e62873ad4..f3d6ef139 100644 --- a/app/views/message/read.html.erb +++ b/app/views/message/read.html.erb @@ -13,7 +13,7 @@ - <%= @message.body.to_html %> +
    <%= @message.body.to_html %>
    <%= link_to t('message.read.back_to_inbox'), :controller => 'message', :action => 'inbox', :display_name => @user.display_name %> @@ -29,8 +29,8 @@ - <%= @message.body.to_html %> +
    <%= @message.body.to_html %>
    <%= link_to t('message.read.back_to_outbox'), :controller => 'message', :action => 'outbox', :display_name => @user.display_name %> -<% end %> \ No newline at end of file +<% end %> diff --git a/app/views/redactions/show.html.erb b/app/views/redactions/show.html.erb index 798ed962a..2404df734 100644 --- a/app/views/redactions/show.html.erb +++ b/app/views/redactions/show.html.erb @@ -7,7 +7,7 @@ <%= t 'redaction.show.user' %> <%= link_to(@redaction.user.display_name, {:controller => 'user', :action => 'view', :display_name => @redaction.user.display_name}) %>

    -

    +

    <%= t 'redaction.show.description' %> <%= @redaction.description.to_html %>

    diff --git a/app/views/trace/_trace.html.erb b/app/views/trace/_trace.html.erb index ac5233669..c05e00c4a 100644 --- a/app/views/trace/_trace.html.erb +++ b/app/views/trace/_trace.html.erb @@ -20,7 +20,7 @@ <%= link_to t('trace.trace.edit'), {:controller => 'site', :action => 'edit', :gpx => trace.id }, {:title => t('trace.trace.edit_map')} %> <%= t('trace.trace.' + trace.visibility) %>
    - <%= t('trace.list.description') %> + <%= trace.description %>
    <%= t'trace.trace.by' %> <%=link_to h(trace.user.display_name), {:controller => 'user', :action => 'view', :display_name => trace.user.display_name} %> <% if !trace.tags.empty? %> diff --git a/app/views/trace/list.html.erb b/app/views/trace/list.html.erb index c600df110..dae4c89f6 100644 --- a/app/views/trace/list.html.erb +++ b/app/views/trace/list.html.erb @@ -26,11 +26,15 @@ <%= render :partial => 'trace_paging_nav' %> - - - - - <%= render :partial => 'trace', :collection => @traces unless @traces.nil? %> + + + + + + + + <%= render :partial => 'trace', :collection => @traces unless @traces.nil? %> +
    <%= render :partial => 'trace_paging_nav' %> diff --git a/app/views/user/_contact.html.erb b/app/views/user/_contact.html.erb index e723af9e7..9d719b52f 100644 --- a/app/views/user/_contact.html.erb +++ b/app/views/user/_contact.html.erb @@ -1,15 +1,13 @@ -
    - <% - user_data = { - :lon => contact.home_lon, - :lat => contact.home_lat, - :icon => image_path(type == "friend" ? "marker-blue.png" : "marker-green.png"), - :description => render(:partial => "popup", :object => contact, :locals => {:type => type}) - } - %> - <%= content_tag "td", :rowspan => 3, :data => {:user => user_data} do %> - <%= user_thumbnail contact %> - <% end %> +<% + user_data = { + :lon => contact.home_lon, + :lat => contact.home_lat, + :icon => image_path(type == "friend" ? "marker-blue.png" : "marker-green.png"), + :description => render(:partial => "popup", :object => contact, :locals => {:type => type}) + } +%> +<%= content_tag :div, :class => "contact-activity clearfix", :data => {:user => user_data} do %> + <%= user_thumbnail contact %>

    <%= link_to h(contact.display_name), :controller => 'user', :action => 'view', :display_name => contact.display_name %> @@ -47,4 +45,4 @@

  • - +<% end %> diff --git a/app/views/user/_user.html.erb b/app/views/user/_user.html.erb index 4f2f59c92..b1ea3f299 100644 --- a/app/views/user/_user.html.erb +++ b/app/views/user/_user.html.erb @@ -19,7 +19,7 @@ %> <% end %>

    - <%= user.description.to_html %> +
    <%= user.description.to_html %>
    <%= check_box_tag "user_#{user.id}", "", false, :name => "user[#{user.id}]" %> diff --git a/app/views/user/login.html.erb b/app/views/user/login.html.erb index c2deada5c..05e9f96c1 100644 --- a/app/views/user/login.html.erb +++ b/app/views/user/login.html.erb @@ -10,8 +10,8 @@

    <%= t 'user.login.no account' %> <%= link_to t('user.login.register now'), :action => :new, :referer => params[:referer] %>

    - - + + diff --git a/app/views/user/view.html.erb b/app/views/user/view.html.erb index 699ff3caf..cf74fc0e0 100644 --- a/app/views/user/view.html.erb +++ b/app/views/user/view.html.erb @@ -152,7 +152,7 @@

    -
    <%= @this_user.description.to_html %>
    +
    <%= @this_user.description.to_html %>
    diff --git a/app/views/user_blocks/show.html.erb b/app/views/user_blocks/show.html.erb index 73b26b930..e882e6e3b 100644 --- a/app/views/user_blocks/show.html.erb +++ b/app/views/user_blocks/show.html.erb @@ -33,4 +33,4 @@

    <%= t'user_block.show.status' %>: <%= block_status(@user_block) %>

    <%= t'user_block.show.reason' %>

    -<%= @user_block.reason.to_html %> \ No newline at end of file +
    <%= @user_block.reason.to_html %>
    diff --git a/config/locales/af.yml b/config/locales/af.yml index f508f3fec..bce2fcc7f 100644 --- a/config/locales/af.yml +++ b/config/locales/af.yml @@ -728,7 +728,6 @@ af: user_diaries_tooltip: Wys gebruikersdagboeke view: Wys view_tooltip: Wys die kaart - welcome_user: Welkom, %{user_link} welcome_user_link_tooltip: U gebruikersblad license_page: foreign: diff --git a/config/locales/aln.yml b/config/locales/aln.yml index 448984ba3..657eb9cfa 100644 --- a/config/locales/aln.yml +++ b/config/locales/aln.yml @@ -849,7 +849,6 @@ aln: user_diaries_tooltip: përdorues ditaret Shiko view: Kshyr view_tooltip: Kshyre hartën - welcome_user: Mirë se erdhe, %{user_link} welcome_user_link_tooltip: përdorues juaj faqe license_page: foreign: diff --git a/config/locales/ar.yml b/config/locales/ar.yml index 83640c973..a987962fc 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -982,7 +982,6 @@ ar: user_diaries_tooltip: اعرض يوميات المستخدمين view: اعرض view_tooltip: اعرض الخريطة - welcome_user: مرحبًا بك، %{user_link} welcome_user_link_tooltip: صفحة المستخدم الخاصة بك wiki: الويكي wiki_title: موقع الويكي للمشروع diff --git a/config/locales/arz.yml b/config/locales/arz.yml index ae9d59923..e49be7635 100644 --- a/config/locales/arz.yml +++ b/config/locales/arz.yml @@ -788,7 +788,6 @@ arz: user_diaries_tooltip: اعرض يوميات المستخدمين view: اعرض view_tooltip: اعرض الخرائط - welcome_user: مرحبًا بك، %{user_link} welcome_user_link_tooltip: صفحه المستخدم الخاصه بك message: delete: diff --git a/config/locales/ast.yml b/config/locales/ast.yml index a8f8b8057..dd99a48a6 100644 --- a/config/locales/ast.yml +++ b/config/locales/ast.yml @@ -166,7 +166,7 @@ ast: way: vía paging_nav: of: de - showing_page: Amosando páxina + showing_page: páxina redacted: message_html: La versión %{version} de %{type} nun se pue amosar porque ta redactada. Por favor consulta %{redaction_link} pa más detalles. redaction: Redaición de %{id} @@ -206,7 +206,7 @@ ast: manually_select: Seleiciona manualmente un área distinta object_list: api: Recuperar esti área de l'API - back: Amosar llista d'oxetos + back: Volver a la llista d'oxetos details: Detalles heading: Llista d'oxetos history: @@ -248,8 +248,8 @@ ast: way_title: "Vía: %{way_name}" way_details: also_part_of: - one: tamién ye parte de la vía %{related_ways} - other: tamién ye parte de les víes %{related_ways} + one: parte de la vía %{related_ways} + other: parte de les víes %{related_ways} nodes: "Nodos:" part_of: "Parte de:" way_history: @@ -269,7 +269,7 @@ ast: changeset_paging_nav: next: Siguiente » previous: « Anterior - showing_page: Tas na páxina %{page} + showing_page: Páxina %{page} changesets: area: Área comment: Comentariu @@ -277,13 +277,13 @@ ast: saved_at: Guardao el user: Usuariu list: - description: Cambios recientes + description: Ver les collaboraciones más nueves del mapa description_bbox: Conxuntos de cambeos en %{bbox} description_friend: Conxuntos de cambios de los tos collacios description_nearby: Conxuntos de cambios d'usuarios cercanos description_user: Conxuntos de cambeos de %{user} description_user_bbox: Conxuntos de cambeos de %{user} en %{bbox} - empty_anon_html: Entá nun se ficieron ediciones + empty_anon_html: Entá nun se ficieron ediciones. empty_user_html: Paez qu'entá nun ficisti denguna edición. Pa comenzar, consulta la Guía pa principiantes. heading: Conxuntos de cambios heading_bbox: Conxuntos de cambios @@ -351,7 +351,7 @@ ast: newer_entries: Entraes más nueves no_entries: Nun hai entraes nel diariu older_entries: Entraes anteriores - recent_entries: "Entraes recientes del diariu:" + recent_entries: Entraes más nueves del diariu title: Diarios d'usuarios title_friends: Diarios de collacios title_nearby: Diarios d'usuarios cercanos @@ -983,7 +983,6 @@ ast: user_diaries_tooltip: Ver los diarios d'usuariu view: Ver view_tooltip: Ver el mapa - welcome_user: Bienveníu, %{user_link} welcome_user_link_tooltip: La to páxina d'usuariu wiki: Wiki wiki_title: Sitiu wiki del proyeutu @@ -1415,6 +1414,7 @@ ast: visibility: "Visibilidá:" visibility_help: ¿qué ye esto? list: + description: Ver les xubes más nueves de traces GPS empty_html: Entá nun hai nada equí. Carga una nueva traza o deprendi más tocante a cómo trazar col GPS na página de la wiki. public_traces: Traces GPS públiques public_traces_from: Traces GPS públiques de %{user} @@ -1462,7 +1462,7 @@ ast: trace_paging_nav: newer: Traces más nueves older: Traces más antigües - showing_page: Tas na páxina %{page} + showing_page: Páxina %{page} view: delete_track: Desaniciar esta traza description: "Descripción:" @@ -1566,8 +1566,8 @@ ast: heading: Usuarios hide: Anubrir los usuarios esbillaos showing: - one: Amosando la páxina %{page} (%{first_item} de %{items}) - other: Amosando la páxina %{page} (%{first_item}-%{last_item} de %{items}) + one: Páxina %{page} (%{first_item} de %{items}) + other: Páxina %{page} (%{first_item}-%{last_item} de %{items}) summary: "%{name} creáu dende %{ip_address} el %{date}" summary_no_ip: "%{name} creáu el %{date}" title: Usuarios @@ -1629,7 +1629,7 @@ ast: button: Amestar como amigu failed: Lo sentimos, hebo un fallu al amestar a %{name} como collaciu. heading: ¿Amestar a %{user} a los amigos? - success: "%{name} agora ye amigu tuyu." + success: ¡%{name} agora ye'l to amigu! new: confirm email address: "Confirmar direición de corréu:" confirm password: "Confirma la contraseña:" @@ -1663,7 +1663,7 @@ ast: your location: El to allugamientu remove_friend: button: Desaniciar como amigu - heading: ¿Desaniciar a %{user} de los amigos? + heading: ¿Desaniciar como amigu a %{user}? not_a_friend: "%{name} nun ye un de los tos amigos." success: "%{name} se desanició de los tos amigos." reset_password: @@ -1698,7 +1698,7 @@ ast: you need to accept or decline: Por favor, llei y aceuta o refuga les nueves Condiciones de Collaboración pa siguir. view: activate_user: activar esti usuariu - add as friend: amestar como amigu + add as friend: amestar amigu ago: (hai %{time_in_words_ago}) block_history: bloqueos recibíos blocks by me: bloqueos puestos @@ -1718,10 +1718,10 @@ ast: diary: diariu edits: ediciones email address: "Direición de corréu electrónicu:" - friends_changesets: Esplorar tolos conxuntos de cambios de los collacios - friends_diaries: Ver toles entraes de diariu de los collacios + friends_changesets: conxuntos de cambios de los amigos + friends_diaries: entraes de diariu de los amigos hide_user: anubrir esti usuariu - if set location: Si defines el to allugamientu, equí apaecerá un guapu mapa. Pues conseñar un llugar d'orixe na to páxina de %{settings_link}. + if set location: Configura'l to allugamientu na páxina de %{settings_link} pa ver los usuarios cercanos. km away: a %{count}km de distancia latest edit: "Cabera edición %{ago}:" m away: a %{count}m de distancia @@ -1733,8 +1733,8 @@ ast: my settings: les mios preferencies my traces: les mios traces nearby users: Otros usuarios próximos - nearby_changesets: Ver tolos conxuntos de cambios d'usuarios cercanos - nearby_diaries: Ver toles entraes de diariu d'usuarios cercanos + nearby_changesets: conxuntos de cambios d'usuarios cercanos + nearby_diaries: entraes de diariu d'usuarios cercanos new diary entry: nueva entrada del diariu no friends: Entá nun amestasti dengún amigu. no nearby users: Entá nun hai otros usuarios que tean mapeando cerca de ti. @@ -1818,7 +1818,7 @@ ast: revoke: ¡Desaniciar! revoker_name: Desaniciáu por show: Amosar - showing_page: Tas na páxina %{page} + showing_page: Páxina %{page} status: Estáu period: one: 1 hora diff --git a/config/locales/az.yml b/config/locales/az.yml index c320c815e..835f7c151 100644 --- a/config/locales/az.yml +++ b/config/locales/az.yml @@ -9,6 +9,8 @@ az: activerecord: attributes: + diary_comment: + body: Mətn diary_entry: language: Dil latitude: En dairəsi @@ -19,6 +21,7 @@ az: friend: Dost user: Ä°stifadəçi message: + body: Mətn recipient: Qəbul edən sender: Göndərən title: Başlıq @@ -27,27 +30,51 @@ az: latitude: En dairəsi longitude: Uzunluq dairəsi name: Ad - public: Ä°ctimai istifadə + public: Ä°ctimai size: Ölçüsü user: Ä°stifadəçi - visible: Görünən + visible: Görünüş user: - active: Aktiv + active: Aktivdir description: Ä°zah display_name: "Gorüntülənən ad:" email: E-poçt languages: Dillər pass_crypt: Parol models: - changeset: Dəyişikliklər dəsti + acl: Giriş Məhdudiyyətləri siyahısı + changeset: Dəyişikliklər Dəsti + changeset_tag: Dəyişikliklər Dəstinin Teqi country: Ölkə + diary_comment: Gündəliyə şərh + diary_entry: Gündəlikdə Yazı friend: Dost language: Dil message: Mesaj + node: Nöqtə + node_tag: Nöqtənin Teqi notifier: Bildiriş + old_node: Köhnə Nöqtə + old_node_tag: Köhnə Nöqtənin Teqi + old_relation: Köhnə Əlaqə + old_relation_member: Köhnə Əlaqənin İştirakçısı + old_relation_tag: Köhnə Əlaqənin Teqi + old_way: Köhnə Xətt + old_way_node: Köhnə Xəttin Nöqtəsi + old_way_tag: Köhnə Xəttin Teqi + relation: Əlaqə + relation_member: Əlaqənin İştirakçısı + relation_tag: Əlaqənin Teqi + session: Sessiya + trace: Trek + tracepoint: Trek Nöqtəsi + tracetag: Trek Teqi user: Ä°stifadəçi - way: Yol - way_node: Yol kəsişməsi + user_preference: Ä°stifadəçi Qurmaları + user_token: Ä°stifadəçi Əlaməti + way: Xətt + way_node: Xəttin Nöqtələri + way_tag: Xəttin Teqi browse: changeset: changeset: "Dəyişikliklər dəsti: %{id}" @@ -60,113 +87,190 @@ az: changeset_details: belongs_to: "Məxsusdur:" bounding_box: "Məhdudlaşdırıcı çərçivə:" - box: qutu + box: çərçivə closed_at: "Bağlanılıb:" created_at: "Yaradılıb:" + no_bounding_box: Bu dəyişikliklər dəsti üçün məhdudlaşdırıcı çərçivə təyin edilməmişdir. show_area_box: Ərazi çərçivəsini göstər common_details: changeset_comment: "Şərh:" - deleted_at: "Silinib:" - deleted_by: "Tərəfindən silinib:" + deleted_at: "Nə zaman silinib:" + deleted_by: "Kim tərəfindən silinib:" edited_at: "Redaktə edilib:" - edited_by: "Tərəfindən redaktə edilib:" + edited_by: "Ä°stifadəçi:" in_changeset: "Dəyişikliklər dəstində:" version: "Versiya:" + containing_relation: + entry: Əlaqəsi %{relation_name} + entry_role: Əlaqəsi %{relation_name} (%{relation_role} kimi) map: deleted: Silinib + edit: + area: Ərazini redaktə etmək + node: Nöqtəni redaktə etmək + relation: Əlaqani redaktə etmək + way: Xətti redaktə etmək + larger: + area: Əraziyə daha böyük xəritədə baxış + node: Nöqtəyə daha böyük xəritədə baxış + relation: Əlaqəalərə daha böyük xəritədə baxış + way: Xəttə daha böyük xəritədə baxış loading: Yüklənir… navigation: all: - next_changeset_tooltip: Sonrak dəyişikliklər dəsti - next_node_tooltip: Sonrakı kəsişmə - next_relation_tooltip: Sonrakı əlaqə - next_way_tooltip: Növbəti yol + next_changeset_tooltip: Növbəti dəyişikliklər dəsti + next_node_tooltip: Növbəti nöqtə + next_relation_tooltip: Növbəti əlaqə + next_way_tooltip: Növbəti xətt prev_changeset_tooltip: Əvvəlki dəyişikliklər dəsti - prev_node_tooltip: Əvvəlki kəsişmə + prev_node_tooltip: Əvvəlki nöqtə prev_relation_tooltip: Əvvəlki əlaqə - prev_way_tooltip: Əvvəlki yol + prev_way_tooltip: Əvvəlki xətt user: name_changeset_tooltip: "%{user} tərəfindən edilmiş redaktələrə bax" next_changeset_tooltip: "%{user} tərəfindən edilmiş sonrakı redaktələr" prev_changeset_tooltip: "%{user} tərəfindən edilmiş əvvəlki redaktələr" node: download_xml: XML kimi yüklə - edit: redaktə + edit: Nöqtəni redaktə etmək + node: Nöqtə + node_title: "Nöqtə: %{node_name}" view_history: Tarixçəyə bax node_details: coordinates: "Koordinatlar:" + part_of: "Tərkibindədir:" node_history: download_xml: XML kimi yüklə - view_details: Detalları göstər + node_history: Nöqtənin tarixcəsi + node_history_title: "Nöqtənin Tarixçəsi: %{node_name}" + view_details: Ətraflı göstər not_found: + sorry: Təəsüf ki, %{id} identifikatorlu %{type} tapılmadı. type: changeset: dəyişikliklər dəsti + node: nöqtə + relation: əlaqə + way: xətt + paging_nav: + of: dən + showing_page: səhifə redacted: - redaction: Redaktə %{id} + message_html: "%{type} üçün %{version} versiya redaktə olunduğu üçün göstərilə bilməz. Zəhmət olmasa əlavə məlumat üçün %{redaction_link} baxınız." + redaction: Redaksiya %{id} type: - node: kəsişmə - way: yol + node: nöqtə + relation: əlaqə + way: xətt relation: download_xml: XML kimi yüklə + relation: Əlaqə + relation_title: "Əlaqə: %{relation_name}" view_history: Tarixçəyə bax relation_details: - members: "Üzvlər:" + members: "İştirakçılar:" + part_of: "Tərkibindədir:" relation_history: download_xml: XML kimi yüklə - view_details: Detalları göstər + relation_history: Əlaqə tarixçəsi + relation_history_title: "Əlaqə tarixçəsi: %{relation_name}" + view_details: Ətraflı göstər relation_member: + entry_role: "%{role} kimi %{type} %{name}" type: - node: Kəsişmə - way: Yol + node: Nöqtə + relation: Əlaqə + way: Xətt start_rjs: - data_frame_title: Tarix - data_layer_name: Xəritəs Məlumatlarını Gözdən keçir + data_frame_title: Məlumatlar + data_layer_name: Xəritə məlumatlarına bax + details: Ətraflı + edited_by_user_at_timestamp: "%{user} tərəfindən %{timestamp} redaktə edilib" hide_areas: Ərazini gizlət + history_for_feature: "%{feature} üçün tarixçə" + load_data: Məlumatları yüklənməsi loading: Yüklənir… + manually_select: Digər ərazini seçmək object_list: - details: Detallar + api: Bu ərazini API-dən almaq + back: Obyektlərin siyahısına qayıtmaq + details: Ətraflı + heading: Obyektlərin siyahısı history: type: - node: Kəsişmə %{id} - way: Yol %{id} + node: Nöqtə %{id} + way: Xətt %{id} selected: type: - node: Kəsişmə %{id} + node: Nöqtə %{id} + way: Xətt %{id} type: - way: Yol - private_user: məxfi istifadəçi + node: Nöqtə + way: Xətt + private_user: fərdi istifadəçi show_areas: Ərazini göstər show_history: Tarixçəni göstər - wait: Gözlə... + unable_to_load_size: Yükləmə mümkün deyil. Kvadratın ölçüsü %{bbox_size} çox böyükdür (%{max_bbox_size} kiçik olmalıdır) + view_data: Xəritənin hazırki görüntüsü üçün məlumatlara baxış + wait: Gözləyin... + zoom_or_select: Baxmaq üşün ərazini seçin və ya böyüdün. + tag_details: + tags: "Teqlər:" + wiki_link: + key: "%{key} teqini təsvir edən viki səhifəsi" + tag: "%{key}=%{value} teqini təsvir edən viki səhifəsi" + wikipedia_link: Vikipediyada %{page} məqaləsi timeout: + sorry: Bağışlayın, %{id} identifikatorlu %{type} üçün məlumatlar çıxarılmaq üçün cox uzundurlar. type: changeset: dəyişikliklər dəsti - way: yol + node: nöqtə + relation: əlaqə + way: xətt way: download_xml: XML kimi yüklə - edit: redaktə + edit: Xətti redaktə etmək view_history: Tarixçəyə bax - way: Yol + way: Xətt + way_title: "Xətt: %{way_name}" + way_details: + also_part_of: + one: "%{related_ways} xəttin tərkibindədir" + other: "%{related_ways} xəttin tərkibindədir" + nodes: "Nöqtələr:" + part_of: "Tərkibindədir:" way_history: download_xml: XML kimi yüklə - view_details: Detalları göstər + view_details: Ətraflı göstər + way_history: Xəttin dəyişiklik tarixçəsi + way_history_title: "Xəttin dəyişiklik tarixçəsi: %{way_name}" changeset: changeset: anonymous: Anonim big_area: (böyük) - no_comment: (heç biri) + no_comment: (yoxdur) + no_edits: (redaktə yoxdur) + show_area_box: ərazi çərçivəsini göstər + still_editing: (hal-hazırda redaktə olunur) + view_changeset_details: Dəyişikliklər dəstinin ətraflı gorüntüsü changeset_paging_nav: next: Növbəti » previous: « Əvvəlki + showing_page: Səhifə %{page} changesets: area: Ərazi comment: Şərh id: ID + saved_at: Başa çatdı user: Ä°stifadəçi list: + description: Xəritədəki son dəyişikliklər + description_bbox: "%{bbox} koordinatlarını çərçivəsində dəyişikliklər dəsti" description_friend: Dostlarınız tərəfindən edilmiş dəyişikliklər dəsti description_nearby: Yaxınlıqdakı istifadəçilər tərəfindən edilmiş dəyişikliklər dəsti description_user: "%{user} tərəfindən edilmiş dəyişikliklər dəsti" + description_user_bbox: "%{bbox} koordinatlarını çərçivəsində %{user} tərəfindən edilmiş dəyişikliklər dəsti" + empty_anon_html: Hal-hazırda redaktələr hələdə yoxdur. + empty_user_html: Görünür, siz hələ heç nə redaktə etməmisiniz. İşləməyə başlamazdan əvvəl Yeni başlayanlar üçün təlimatlar səhifəsinə baxın. heading: Dəyişikliklər dəsti heading_bbox: Dəyişikliklər dəsti heading_friend: Dəyişikliklər dəsti @@ -174,58 +278,88 @@ az: heading_user: Dəyişikliklər dəsti heading_user_bbox: Dəyişikliklər dəsti title: Dəyişikliklər dəsti + title_bbox: "%{bbox} koordinatlarını çərçivəsində dəyişikliklər dəsti" + title_friend: Dostlarınız tərəfindən edilmiş dəyişikliklər dəsti + title_nearby: Yaxınlıqdakı istifadəçilər tərəfindən edilmiş dəyişikliklər dəsti + title_user: "%{user} tərəfindən edilmiş dəyişikliklər dəsti" + title_user_bbox: "%{bbox} koordinatlarını çərçivəsində %{user} tərəfindən edilmiş dəyişikliklər dəsti" + timeout: + sorry: Bağışlayın, tələb etdiyiniz dəyişikliklər dəstinin siyahısı, çıxarıla bilmək üçün cox böyükdür. diary_entry: comments: ago: "%{ago} əvvəl" comment: Şərh + has_commented_on: "%{display_name} indicə gündəliyin növbəti yazılarını şərh etdi" newer_comments: Yeni şərhlər older_comments: Köhnə Şərhlər - when: Harada + post: Post + when: Nə vaxt diary_comment: - confirm: Təsdiq et + comment_from: Şərh %{link_user} tərəfindən %{comment_created_at} + confirm: Təsdiq etmək hide_link: Bu şərhi gizlət diary_entry: + comment_count: + one: "%{count} şərh var" + other: "%{count} şərh var" + zero: Şərh yoxdur comment_link: Bu yazıyı şərh et - confirm: Təsdiq et + confirm: Təsdiq etmək edit_link: Bu yazıyı redaktə et hide_link: Bu yazını gizlət + posted_by: "%{link_user} tərəfindən %{created} yazılıb, %{language_link} dilində." + reply_link: Bu yazıya cavab ver edit: + body: "Mətn:" language: "Dil:" latitude: "En dairəsi:" + location: "Yerləşdiyi yer:" longitude: "Uzunluq dairəsi:" - marker_text: Gundəlik yazısının yeri + marker_text: Gundəlik yazısının yazıldığı yer save_button: Qeyd et subject: "Mövzu:" - title: Gündəlik yazısıni redaktə et - use_map_link: xəritədən istifadə + title: Gündəlik yazısıni redaktə etmək + use_map_link: xəritə üzərində göstər feed: all: + description: OpenStreetMap istifadəçilərinin axırıncı gündəlik yazıları title: OpenStreetMap gündəlik yazısı language: - title: "%{language_name} dilində OpenStreetMap gündəlik yazısı" + description: "%{language_name} dilində OpenStreetMap istifadəçilərinin axırıncı gündəlik yazıları" + title: "%{language_name} dilində OpenStreetMap gündəlik yazıları" user: - title: "%{user} üçün OpenStreetMap gündəlik yazısı" + description: "%{user} üçün axırıncı OpenStreetMap gündəlik yazıları" + title: "%{user} üçün OpenStreetMap gündəlik yazıları" list: in_language_title: "%{language} dilində Gundəlik Yazıları" new: Yeni Gündəlik Yazısı + new_title: Ä°stifadəçi gündəliyinizə yeni yazı əlavə etmək newer_entries: Yeni yazılar - no_entries: Gundəlik yazıları yoxdur + no_entries: Gundəlikdə yazı yoxdur older_entries: Köhnə yazılar + recent_entries: Yaxın müddətdəki gündəlik yazıları title: Ä°stifadəçi gündəlikləri title_friends: Dostların gündəlikləri title_nearby: Yaxınlıqdakı Ä°stifadəçilərin Gündəlikləri user_title: "%{user}'nin gündəliyi" location: edit: Redaktə + location: "Yerləşdiyi yer:" view: Görünüş new: title: Yeni Gündəlik Yazısı + no_such_entry: + heading: "Yazı mövcud deyil id: %{id}" + title: Belə bir gündəlik yazısı mövcud deyil view: - login: Daxil ol - save_button: Saxla - title: "%{user}'nin gündəliyi | %{title}" - user_title: "%{user}'nin gündəliyi" + leave_a_comment: Şərh yaz + login: Özünüzü təqdim edin + login_to_leave_a_comment: Şərh yazmaq üçün %{login_link} + save_button: Qeyd et + title: Ä°stifadəçi %{user} gündəliyi | %{title} + user_title: Ä°stifadəçi %{user} gündəliyi editor: + default: Susmaya görə (hal-hazırda %{name}) potlatch: description: Potlatch 1 (brauzer üzərindən redaktə) name: Potlatch 1 @@ -237,53 +371,107 @@ az: name: Uzaqdan idarəetmə export: start: + add_marker: Xəritəyə marker əlavə etmək + area_to_export: Ä°xrac üçün Ərazi + embeddable_html: Quraşdırılan HTML + export_button: Ä°xrac etmək format: Format + format_to_export: Ä°xracın forması image_size: Şəkil ölçüsü latitude: "En:" licence: Lisenziya longitude: "Uz:" + manually_select: Digər ərazini seçmək + map_image: Xəritənin Şəkili (standart qatı göstərir) + max: maks + options: Nizamlamalar + osm_xml_data: OpenStreetMap XML formasında məlumatlar + output: Nəticə + paste_html: Veb sayta quraşdırmaq üçün HTML kod scale: Miqyas too_large: heading: Sahə Çox Böyükdür zoom: Yaxınlaşdır start_rjs: + add_marker: Xəritəyə marker əlavə etmək + change_marker: Markerin yerini dəyişin + click_add_marker: Marker əlavə etmək üçün xəritəyə basın + drag_a_box: Ərazini seçmək üçün çərçivəni xəritə üzərində dartın + export: Ä°xrac + manually_select: Digər ərazini seçmək view_larger_map: Böyüdülmüş xəritəyə bax geocoder: description: + title: + geonames: GeoNames -dən yerləşməsi + osm_nominatim: OpenStreetMap Nominatim -dan yerləşməsi types: cities: Şəhərlər + places: Yerlər + towns: Şəhər qəsəbələri direction: - east: şərq - north: şimal - north_east: şimal-şərq - north_west: şimal-qərb - south: cənub - south_east: cənub-şərq - south_west: cənub-qərb - west: qərb + east: şərqə + north: şimala + north_east: şimal-şərqə + north_west: şimal-qərbə + south: cənuba + south_east: cənub-şərqə + south_west: cənub-qərbə + west: qərbə + distance: + one: təqribən 1km + other: təqribən %{count}km + zero: 1km-dən az results: more_results: Daha çox nəticə no_results: Nəticələr tapılmadı + search: + title: + ca_postcode: Geocoder.CA nəticələri + geonames: GeoNames nəticələri + latlon: Daxili nəticələr + osm_nominatim: OpenStreetMap Nominatim nəticələri + uk_postcode: NPEMap / FreeThe Postcode nəticələri + us_postcode: Geocoder.us nəticələri search_osm_nominatim: prefix: aeroway: aerodrome: Aerodrom + apron: Perron + gate: Enmə zonasına çıxış helipad: Vertalyot meydançası + runway: Uçuş-enmə zolağı + taxiway: Sürmə yolu terminal: Terminal amenity: + WLAN: WiFi ərazi airport: Aeroport - atm: ATM + arts_centre: Ä°ncəsənət mərkəzi + artwork: Ä°ncəsənət əsəri + atm: Bankomat + auditorium: Auditoriya bank: Bank bar: Bar - bus_station: Avtovağzal + bbq: Manqal + bench: Skameyka + bicycle_parking: Relosiped dayanacağı + bicycle_rental: Relosiped icarəsi + biergarten: Açıq havada Pivəxana + brothel: Bardel + bureau_de_change: Valyuta mübadiləsi + bus_station: Avtobus Stansiyası cafe: Kafe car_rental: Avtomobil icarəsi + car_sharing: Karşarinq car_wash: Avto yuyucu casino: Kazino + charging_station: Şarj Stansiyası cinema: Kinoteatr clinic: Klinika club: Klub college: Kollec + community_centre: Ä°ctimai mərkəz + courthouse: Məhkəmə yeri crematorium: Krematoriya dentist: Diş həkimi doctors: Həkimlər @@ -291,8 +479,14 @@ az: drinking_water: İçməli su driving_school: Sürücülük məktəbi embassy: Səfirlik + emergency_phone: Fövqəladə hallar üçün telefon + fast_food: Fəst Fud + ferry_terminal: Parom Terminalı + fire_hydrant: Yanğın Hidrantı + fire_station: Yanğın söndürmə Stansiyası + food_court: Açıq havada Yeməkxana fountain: Fontan - fuel: Yanacaq + fuel: Yanacaq doldurma grave_yard: Qəbirsanlıq gym: Fitnes mərkəzi hall: Zal @@ -304,55 +498,106 @@ az: kindergarten: Uşaq bağçası library: Kitabxana market: Market + marketplace: Bazar meydanı + mountain_rescue: Dağ Xilasetmə Xidməti nightclub: Gecə klubu + nursery: Pansionat nursing_home: Qocalar evi office: Ofis park: Park + parking: Dayanacaq pharmacy: Aptek place_of_worship: Sitayişgah police: Polis post_box: Poçt qutusu post_office: Poçt + preschool: Məktəbəqədər hazırlıq prison: Həbsxana pub: Pivəxana - public_building: Ä°ctimai binalar + public_building: Ä°ctimai Binalar + public_market: Ä°ctimai Bazar reception_area: Qəbul sahəsi + recycling: Utilizasiya yeri restaurant: Restoran + retirement_home: Qocalar Evi sauna: Sauna school: Məktəb shelter: Sığınacaq + shop: Mağaza + shopping: Alış-veriş + shower: Duş + social_centre: Ä°ctimai Mərkəz + social_club: Ä°ctimai Club + studio: Studiya supermarket: Supermarket swimming_pool: Üzgüçülük hovuzu taxi: Taksi + telephone: Ä°ctimai Telefon theatre: Teatr toilets: Tualet + townhall: Şəhər Administrasiyası university: Universitet vending_machine: Ticarət avtomatı + veterinary: Veterenar Klinikası + village_hall: Villa + waste_basket: Zibillik + wifi: WiFi ərazi + youth_centre: Gənclər Mərkəzi boundary: administrative: Administrativ sərhəd + census: Siyahıya alma sərhədi national_park: Milli Park protected_area: Qorunan ərazi bridge: + aqueduct: Akveduk + suspension: Asma Körpü + swing: Açılan Körpü + viaduct: Viaduk "yes": Körpü building: "yes": Tikili highway: + bridleway: Atlı yolu + bus_guideway: Gəzinti Avtobus xətti bus_stop: Avtobus dayanacağı + byway: Dalan + construction: Yol təmirdədir + cycleway: Velocığır emergency_access_point: Təcili yardım məntəqəsi - footway: Cığır + footway: Tratuar (Piyada yolu) + ford: Çay keçidi + living_street: Yaşayış küçəsi + milestone: Məsafə dirəyi + minor: Kiçik yol + motorway: Avtomagistral + motorway_junction: Avtomagistral Kəsişməsi + motorway_link: Avtomagistral yolu + path: Cığır + pedestrian: Piyadalar üçün yol + platform: Platforma primary: Birinci dərəcəli yol primary_link: Birinci dərəcəli yol + raceway: Otüş yolu + residential: Küçə + rest_area: Dincəlmə güşəsi road: Yol secondary: Ä°kici dərəcəli yol secondary_link: Ä°kici dərəcəli yol - service: Servis yolu + service: Keçid yolu + services: Yolətrafı Servislər speed_camera: Sürət kamerası + steps: Pilləkənlər + stile: Turniket tertiary: Üçüncü dərəcəli yol tertiary_link: Üçüncü dərəcəli yol + track: Torpaq yol + trail: Cığır trunk: Baş yol trunk_link: Baş yol unclassified: Təsnifatsız yol + unsurfaced: Örtüksüz yol historic: + archaeological_site: Arxeoloji qazıntılar battlefield: Döyüş meydanı boundary_stone: Sərhəd daşı building: Tikili @@ -360,58 +605,110 @@ az: church: Kilsə fort: Qala house: Ev + icon: Ikona manor: Malikanə memorial: Memorial mine: Mədən + monument: Abidə museum: Muzey ruins: Xarabalıqlar tower: Qüllə wayside_cross: Yolkənarı xaç + wayside_shrine: Yolkənarı Ziyarətgah + wreck: Gəmi qalıqları landuse: + allotments: Bağ-bostanlar + basin: Hovuz + brownfield: Tərk edilmiş ərazi cemetery: Məzarlıq commercial: Ticarət sahəsi + conservation: Konservasiya ərazisi construction: Tikinti farm: Ferma farmland: Kənd təsərrüfatı farmyard: Ferma həyəti - forest: Meşə + forest: Meşə təsərrüfatı garages: Qarajlar grass: Ot + greenfield: Mənimsənməmiş Ərazi industrial: Sənaye sahəsi + landfill: Zibillik meadow: Çəmənlik military: Hərbi ərazi mine: Mədən nature_reserve: Təbiət Qoruğu orchard: Meyvə bağı park: Park + piste: Xizəkçilik + quarry: Karxana railway: Dəmir yolu - wood: Ağac + recreation_ground: Istirahət guşəsi + reservoir: Su anbarı + reservoir_watershed: Suayrıcı su anbarı + residential: Yaşayış sahəsi + retail: Ticarət ərazisi + road: Yol şəbəkəsi ərazisi + village_green: Yaşıllıq kənd + vineyard: Üzümlük + wetland: Bataqlıq + wood: Meşə leisure: - fishing: Balıq tutmaq üçün ərazi + beach_resort: Əkilili çimərlik + bird_hide: Quşlara gizli müşahidə məntəqəsi + common: Almenda (ümumistifadə ərazi) + fishing: Balıq tutmaq üçün yer + fitness_station: Fitnes zalı garden: Bağ + golf_course: Qolf meydançası + ice_rink: Katok (sürüşmək üçün buz bağlamış yündürlük) marina: Liman + miniature_golf: Miniqolf + nature_reserve: Təbiət Qoruğu park: Park + pitch: Ä°dman qazonu + playground: Uşaq oyun meydançası + recreation_ground: Istirahət guşəsi sauna: Sauna + slipway: Ellinq (gəmi və havadan yüngül uçan aparatların təmiri üçün anqar) sports_centre: Ä°dman mərkəzi stadium: Stadion swimming_pool: Üzgüçülük hovuzu - water_park: Su parkı + track: Qaçış zolagı + water_park: Aquapark military: airfield: Hərbi Aerodrom + barracks: Kazarma bunker: Bunker natural: + bay: Körfəz beach: Çimərlik + cape: Burun + cave_entrance: Mağara girişi + channel: Kanal + cliff: Uçurum crater: Krater + dune: Qum təpəsi + feature: Təbii obyekt + fell: Təpə + fjord: Fiord forest: Meşə geyser: Qeyzer glacier: Buzlaq + heath: Boş yer + hill: Təpə island: Ada + land: Yer marsh: Bataqlıq + moor: Torfluq mud: Palçıqlıq peak: Pik + point: Burun + reef: Rif ridge: Dağ silsiləsi river: Çay rock: Qaya + scree: Çınqıllıq + scrub: Kolluq shoal: Dayazlıq spring: Bulaq stone: Qaya @@ -419,90 +716,183 @@ az: tree: Ağac valley: Vadi volcano: Vulkan - water: Su + water: Çarhovuz wetland: Bataqlıq - wetlands: Bataqlıqlar + wetlands: Bataqlıq ərazi + wood: Meşə office: accountant: Mühasib + architect: Arxitektor company: Şirkət + employment_agency: Məşğulluq agentliyi estate_agent: Əmlak agenti + government: Dövlət idarəçiliyi insurance: Sığorta şirkəti lawyer: Hüquqşünas + ngo: GHT ofisi + telecommunication: Telekommunikasi şirkətinin ofisi travel_agent: Səyahət Agentliyi + "yes": Ofislər place: airport: Aeroport city: Şəhər country: Ölkə county: Ölkə farm: Ferma + hamlet: Qəsəbə house: Ev houses: Evlər island: Ada islet: Adacıq + isolated_dwelling: Ayrıca ev-ferma + locality: Təkr edilmiş ərazi + moor: Torfluq municipality: Bələdiyyə + postcode: Poçt indeksi region: Bölgə sea: Dəniz + state: Ştat + subdivision: Bölmə + suburb: Şəhərətrafı + town: Şəhərcik + unincorporated_area: Şəhərkənarı zona village: Kənd railway: + abandoned: Sökülmüş dəmiryol xətti + construction: Dəmiryol xətti təmirdədir + disused: Ä°stifadə olunmayan (atılmış) dəmiryol xətti + disused_station: Ä°stifadə olunmayan (atılmış) dəmiryol stansiyası + funicular: Funikulyor + halt: Qatar dayanacağı + historic_station: Tarixi dəmiryol stansiyası + junction: Dəmiryol oxu + level_crossing: Dəmiryol keçidi + light_rail: Yüngül resli dəmiryol xətti + miniature: Mini dəmiryol xətti + monorail: Monorels + narrow_gauge: Dar-ölçülü dəmir yolu + platform: Dəmiryol platforması + preserved: Tarixi dəmiryol + spur: Dəmir yolunun budaqlanması station: Dəmiryol stansiyası + subway: Metro stansiyası + subway_entrance: Metro girişi + switch: Dəmiryol oxu tram: Tramvay + tram_stop: Tramvay dayanacağı + yard: Depo shop: + alcohol: Alkoqol dükanı antiques: Əntiq əşyalar + art: Bədii salon bakery: Un məmulatları dükanı + beauty: Gözəllik salonu + beverages: İçkilər dükanı bicycle: Velosiped dükanı books: Kitab dükanı butcher: Qəssab car: Avtomobil Dükanı car_parts: Avtomobil ehtiyat hissələri car_repair: Avtomobil təmiri + carpet: Xalça-palaz dükanı + charity: Xeyriyyə malları dükanı + chemist: Məişət kimyası dükanı clothes: Geyim Dükanı computer: Kompyuter Dükanı + confectionery: Şirniyyat dükanı + convenience: Ərzaq dükanı + copyshop: Kserokopiya dükanı cosmetics: Kosmetika Dükanı + department_store: Universam discount: Endirimli mallar dükanı + doityourself: Özün düzəlt dry_cleaning: Quru təmizləmə + electronics: Elektronika dükanı estate_agent: Əmlak agenti + farm: Kənd təsərrüfatı malları dükanı fashion: Dəb dükanı fish: Balıq Dükanı + florist: Gül Dükanı food: Ərzaq Dükanı + funeral_directors: Dəfn mərasimi bürosu furniture: Mebel - gift: Hədiyyələr dükanı - hardware: Alətlər Dükanı - hifi: Hi-Fi - insurance: Sığorta + gallery: Qalereya + garden_centre: Bağçılıq mərkəzi + general: Baş Dükan + gift: Hədiyyələr Dükanı + greengrocer: Meyvə-tərəvəz dükanı + grocery: Baqqal Dükanı + hairdresser: Saç ustası + hardware: Məişət Alətləri Dükanı + hifi: Audio və Video avadanlıqları dükanı + insurance: Sığorta şirkəti jewelry: Zərgərlik dükanı kiosk: Kiosk laundry: Camaşırxana - market: Market + mall: Mall + market: Bazar mobile_phone: Mobil telefon dükanı motorcycle: Motosiklet Dükanı music: Musiqi dükanı - optician: Optik + newsagent: Qəzet kiosku + optician: Optika + organic: Orqanik Ərzaq Dükanı + outdoor: Küçə satışı pet: Zoomaqazin + photo: Fotomaqazin salon: Salon shoes: Ayaqqabı dükanı shopping_centre: Ticarət Mərkəzi sports: Ä°dman malları dükanı + stationery: Dəftərxana Ləvazimatı supermarket: Supermarket - toys: Otuncaq dükanı + toys: Oyuncaq dükanı travel_agency: Səyahət Agentliyi + video: Videoyazılar satışı dükanı + wine: Şərab dükanı tourism: - artwork: Ä°ncəsənə əsərləri dükanı + alpine_hut: Alp Evciyi + artwork: Ä°ncəsənət əsərləri dükanı attraction: Attraksion - caravan_site: Karvansaray + bed_and_breakfast: Gecələmə və səhər yeməyi yeri + cabin: Daxma + camp_site: Düşərgə + caravan_site: Təkərli evlər üçün dayanacaq + chalet: Kənd evi guest_house: Qonaq evi + hostel: Xostel hotel: Hotel information: Məlumat + lean_to: Meyl motel: Motel museum: Muzey + picnic_site: Piknik üçün yer + theme_park: Attraksion valley: Vadi + viewpoint: Baxış meydançası + zoo: Zoopark tunnel: "yes": Tunel waterway: + artificial: Süni su axını + boatyard: Tərsanə canal: Kanal + connector: Çayların birləşməsi + dam: Damba derelict_canal: Ä°stifadəsiz Kanal - ditch: Yarğan - mooring: Sahilə yan alma + ditch: Xəndək + dock: Dok + drain: Axıntı xəndəyi + lock: Şlyuz + lock_gate: Şlyuz qapısı + mineral_spring: Mineral bulaq + mooring: Gəmilərin sahilə bağlama yeri + rapids: Çay kəndarı river: Çay + riverbank: Çayın sahili + stream: Çay + wadi: Qurumuş cay + water_point: Su təminatı məntəqəsi waterfall: Şəlalə weir: Su bəndi javascripts: @@ -513,34 +903,65 @@ az: site: edit_tooltip: Xəritəni redaktə et layouts: + community: Ä°cma + community_blogs: Ä°cma bloqları + community_blogs_title: OpenStreetMap icmasının iştirakçılarının bloqları copyright: Müəllif hüquqları və Lisenziyalar documentation: Sənədləşdirmə + documentation_title: Layihə üzrə sənədləşmə donate_link_text: maddi yardım edit: Redaktə + edit_with: "%{editor} köməyi ilə dəyişdir" + export: Ä°xrac + export_tooltip: Xəritə məlumatlarının ixracı + foundation: OpenStreetMap Fondu + foundation_title: OpenStreetMap Fondu + gps_traces: GPS cizgilər + gps_traces_tooltip: GPS cizgilər ilə işləmək help: Kömək help_centre: Kömək mərkəzi history: Tarix + home: evə + home_tooltip: Mənim ev yerimi göstər + inbox_html: gələn %{count} intro_2_create_account: Ä°stifadəçi hesabı yarat intro_2_download: yüklə intro_2_license: açıq lisenziya intro_2_use: istifadə log_in: daxil ol + log_in_tooltip: Mövcud hesab ilə daxil ol logo: alt_text: OpenStreetMap loqosu + logout: çıxış + logout_tooltip: Çıxış make_a_donation: text: Maddi yardım et + title: OpenStreetMap-i dəstəkləmək üçün maddi yardım et + partners_bytemark: Bytemark Hosting + partners_ic: London Ä°mperial Kolleci tərəfindən partners_partners: partnyorlar + sign_up: qeydiyyatdan keç + sign_up_tooltip: Redaktə etmək üçün qeydiyyatdan keç tag_line: Azad Viki Dünya Xəritəsi user_diaries: Ä°stifadəçi Gündəlikləri - view: Görünüş - view_tooltip: Xəritəni göstər - welcome_user: Xoş gəlmisiz, %{user_link} - welcome_user_link_tooltip: Sizin istifadəçi səhifəniz + user_diaries_tooltip: Ä°stifadəçilərin gündəliklərinə baxmaq + view: Xəritə + view_tooltip: Xəritəyə bax + welcome_user_link_tooltip: Sizin şəxsi istifadəçi səhifəniz wiki: Viki license_page: + foreign: + title: Bu tərcümə haqqında legal_babble: + contributors_ca_html: Kanada GeoBase ®, GeoGratis (© Kanadanın Təbii Ehtiyatlar Departamenti), CanVec (© Kanadanın Təbii Ehtiyatlar Departamenti) və StatCan (Kanadanın Statistika şöbəsinin, Coğrafiya bölməsi) tərəfindən məlumatlar. + contributors_fr_html: "Fransa: Baş Vergi Ä°darəsi tərəfindən məlumatlar." + contributors_gb_html: Böyük Britaniya Krallığı Ordnance Survey © Crown copyright tərəfindən məlumatlar. Verilənlər bazasına icazə 2010-12. + contributors_nz_html: Yeni Zelandiya Yeni Zelandiyanın torpaq resursları haqqında məlumatlardan. Crown Copyright reserved. + contributors_title_html: Kimlər bizim layihəyə töhfə verir + more_title_html: Daha çox öyrən title_html: Müəllif hüquqları və Lisenziyalar native: + mapping_link: kartoqrafiyalaşdırmağa başla title: Bu səhifə haqqında message: delete: @@ -548,8 +969,17 @@ az: inbox: date: Tarix from: Kimdən + messages: "Sizin varınızdır: %{new_messages} və %{old_messages}." my_inbox: Mənim gələnlər + new_messages: + one: "%{count} yeni mesaj" + other: "%{count} yeni mesaj" + no_messages_yet: Sizin hələdə mesajınız yoxdur. Niyə də ki, %{people_mapping_nearby_link} danışmırsınız? + old_messages: + one: "%{count} köhnə mesaj" + other: "%{count} köhnə mesaj" outbox: göndərilənlər + people_mapping_nearby: yaxınlıqdakı istifadəçilərlə subject: Mövzu title: Gələnlər mark: @@ -562,12 +992,15 @@ az: unread_button: Oxunulmamış kimi işarələ new: back_to_inbox: Gələnlərə geri qayıt + body: "Mətn:" + limit_exceeded: Siz yaxın vaxtlarda çoxlu mesaj göndərmisiniz. Göndərməzdən əvvəl bir az gözləyin. message_sent: Mesaj göndərildi send_button: Göndər send_message_to: "%{name} yeni mesaj göndər" subject: Mövzu title: Mesaj göndər no_such_message: + body: Bağışlayın, amma belə ID ilə mesaj yoxdur. heading: Belə bir mesaj yoxdur title: Belə bir mesaj yoxdur outbox: @@ -595,7 +1028,9 @@ az: notifier: diary_comment_notification: hi: Salam %{to_user}, + subject: "[OpenStreetMap] %{user} adlı istifadəçi sənin gündəliy yazına şərh yazıb" email_confirm_html: + click_the_link: Əgər bu sizsinizsə, zəhmət olmasa, dəyişiklikləri təsdiqləmək üçün aşağı göstərilmiş istinaddakı ünvana keçin. greeting: Salam, email_confirm_plain: greeting: Salam, @@ -604,9 +1039,12 @@ az: lost_password: subject: "[OpenStreetMap] Parolu yeniləmək tələbi" lost_password_html: + click_the_link: Əgər bu sizsinizsə, zəhmət olmasa, parolunuzu əvəzləmək üçün aşağı göstərilmiş istinaddakı ünvana keçin. greeting: Salam, lost_password_plain: + click_the_link: Əgər bu sizsinizsə, zəhmət olmasa, parolunuzu əvəzləmək üçün aşağı göstərilmiş istinaddakı ünvana keçin. greeting: Salam, + hopefully_you_2: openstreetmap.org-da qeyddiyyatda olan elektron poçt ünvanları. message_notification: hi: Salam %{to_user}, signup_confirm: diff --git a/config/locales/be-Tarask.yml b/config/locales/be-Tarask.yml index d88c4fe14..299596be3 100644 --- a/config/locales/be-Tarask.yml +++ b/config/locales/be-Tarask.yml @@ -933,7 +933,6 @@ be-Tarask: user_diaries_tooltip: Паказаць дзёньнікі карыстальнікаў view: Прагляд view_tooltip: Паказаць мапу - welcome_user: Вітаем, %{user_link} welcome_user_link_tooltip: Ваша старонка ўдзельніка wiki: Вікі wiki_title: Вікі-сайт праекту diff --git a/config/locales/br.yml b/config/locales/br.yml index 370cadde5..4adb2ab57 100644 --- a/config/locales/br.yml +++ b/config/locales/br.yml @@ -987,7 +987,6 @@ br: user_diaries_tooltip: Gwelet deizlevrioù an implijerien view: Gwelet view_tooltip: Gwelet ar gartenn - welcome_user: Degemer mat, %{user_link} welcome_user_link_tooltip: Ho pajenn implijer wiki: Wiki wiki_title: Lec'hienn wiki evit ar raktres diff --git a/config/locales/bs.yml b/config/locales/bs.yml index 895394319..43dd6c5f2 100644 --- a/config/locales/bs.yml +++ b/config/locales/bs.yml @@ -988,7 +988,6 @@ bs: user_diaries_tooltip: Prikazati dnevnike korisnika view: Karta view_tooltip: Pogledati kartu - welcome_user: DobrodoÅ¡li, %{user_link} welcome_user_link_tooltip: VaÅ¡a korisnička stranica wiki: Wiki wiki_title: Wiki stranice projekta diff --git a/config/locales/ca.yml b/config/locales/ca.yml index f4908af27..d8340add7 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -181,7 +181,7 @@ ca: way: via paging_nav: of: de - showing_page: S'està mostrant pàgina + showing_page: pàgina redacted: message_html: La versió %{version} d'aquest %{type} no pot ser mostrada com ha estat redactada. Si us plau, vegeu %{redaction_link} per més detalls. redaction: Redacció %{id} @@ -221,7 +221,7 @@ ca: manually_select: Selecciona manualment una àrea diferent object_list: api: Obté aquesta àrea mitjançant l'API - back: Mostra llista d'objectes + back: Torna a la llista d'objectes details: Detalls heading: Llista d'objectes history: @@ -263,8 +263,8 @@ ca: way_title: "Via: %{way_name}" way_details: also_part_of: - one: també part de la via %{related_ways} - other: també part de les vies %{related_ways} + one: part de la via %{related_ways} + other: part de les vies %{related_ways} nodes: "Nodes:" part_of: "Part de:" way_history: @@ -284,7 +284,7 @@ ca: changeset_paging_nav: next: Endavant » previous: « Enrere - showing_page: Mostrant pàgina %{page} + showing_page: Pàgina %{page} changesets: area: Àrea comment: Comentari @@ -292,13 +292,13 @@ ca: saved_at: Desat a user: Usuari list: - description: Canvis recents + description: Navega pels canvis recents al mapa description_bbox: Conjunt de canvis dins de %{bbox} description_friend: Conjunts de canvis dels vostres amics description_nearby: Conjunts de canvis d'usuaris propers description_user: Conjunt de canvis fets per %{user} description_user_bbox: Conjunt de canvis de %{user} dins de %{bbox} - empty_anon_html: Encara no ha estat feta cap modificació + empty_anon_html: Encara no ha estat feta cap modificació. empty_user_html: Sembla que encara no heu fet cap modificació. Per començar feu un cop d'ull a la Guia d'iniciació . heading: Conjunt de canvis heading_bbox: Conjunt de canvis @@ -366,7 +366,7 @@ ca: newer_entries: Entrades més Recents no_entries: No hi ha entrades al diari older_entries: Entrades més Antigues - recent_entries: "Entrades Recents al diari:" + recent_entries: "Entrades recents al diari:" title: Diaris d'usuari/a title_friends: Diaris dels amics title_nearby: Diaris d'amics propers @@ -998,7 +998,6 @@ ca: user_diaries_tooltip: Mostra els diaris d'usuari view: Mostra view_tooltip: Mostra el mapa - welcome_user: Benvingut/da, %{user_link} welcome_user_link_tooltip: La teva pàgina d'usuari wiki: Wikia wiki_title: Lloc web de wiki per al projecte @@ -1430,6 +1429,7 @@ ca: visibility: "Visibilitat:" visibility_help: Què vol dir això? list: + description: Navega pels tracks pujats recentment empty_html: Aquí encara no hi ha res. Pujeu un nou track o apreneu més sobre els tracks GPS a la pàgina wiki. public_traces: Traces GPS públiques public_traces_from: Tracks GPS públics de %{user} @@ -1477,7 +1477,7 @@ ca: trace_paging_nav: newer: Tracks més recents older: Tracks més antics - showing_page: S'està mostrant pàgina %{page} + showing_page: Pàgina %{page} view: delete_track: Elimina aquesta traça description: "Descripció:" @@ -1581,8 +1581,8 @@ ca: heading: Usuaris hide: Amaga els usuaris seleccionats showing: - one: "mostrant pàgina %{page} (%{first_item} de %{items}) " - other: Mostrant pàgina %{page} (%{first_item}-%{last_item} de %{items}) + one: Pàgina %{page} (%{first_item} de %{items}) + other: Pàgina %{page} (%{first_item}-%{last_item} de %{items}) summary: "%{name} creat a partir de %{ip_address} el %{date}" summary_no_ip: "%{name} creat el %{date}" title: Usuaris @@ -1644,7 +1644,7 @@ ca: button: Afegeix als amics failed: Ho sentim, no afegir %{name} com un amic. heading: Voleu afegir % {user} com un amic? - success: "%{name} ara és el vostre amic." + success: "%{name} és ara el vostre amic!" new: confirm email address: "Confirmeu l'adreça de correu electrònic:" confirm password: "Confirmeu la contrasenya:" @@ -1678,7 +1678,7 @@ ca: your location: La vostra ubicació remove_friend: button: Suprimeix dels amics - heading: Voleu suprimir % {user} dels amics? + heading: Voleu suprimir %{user} dels amics? not_a_friend: "%{name} no és un dels seus amics." success: "%{name} s'ha suprimit dels teus amics." reset_password: @@ -1733,10 +1733,10 @@ ca: diary: diari edits: modificacions email address: "Adreça de correu:" - friends_changesets: Navega per tots els conjunts de canvis dels vostres amics - friends_diaries: Navega totes les entrades de diari dels amics + friends_changesets: conjunts de canvis dels vostres amics + friends_diaries: entrades de diari dels amics hide_user: amagar aquest usuari - if set location: Si establiu la vostra ubicació, aquí es mostrarà un mapa i altre coses interessants. Podeu configurar la vostra ubicació a la pàgina %{settings_link}. + if set location: Podeu configurar la vostra ubicació a la pàgina %{settings_link} per veure els usuaris propers a vostè. km away: "%{count}km de distància" latest edit: "Última edició %{ago}:" m away: "%{count}m de distància" @@ -1748,8 +1748,8 @@ ca: my settings: les meves preferències my traces: les meves traces nearby users: Altres usuaris propers - nearby_changesets: Navega tots els conjunts de canvis dels usuaris propers - nearby_diaries: Navega totes les entrades de diari dels usuaris propers + nearby_changesets: conjunts de canvis dels usuaris propers + nearby_diaries: entrades de diari dels usuaris propers new diary entry: Nova entrada del diari no friends: No has afegit cap amics encara. no nearby users: Hi ha altres usuaris que admetre a Cartografia prop encara. @@ -1833,7 +1833,7 @@ ca: revoke: Revoca! revoker_name: Revocat per show: Mostra - showing_page: Mostrant pàgina %{page} + showing_page: Pàgina %{page} status: Estat period: one: 1 hora diff --git a/config/locales/cs.yml b/config/locales/cs.yml index 5106a72c3..7cc59153f 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -3,6 +3,7 @@ # Export driver: syck-pecl # Author: Bilbo # Author: Chmee2 +# Author: JAn Dudík # Author: Jezevec # Author: Jkjk # Author: Kuvaly @@ -181,7 +182,7 @@ cs: way: cesta paging_nav: of: z - showing_page: Zobrazuji stranu + showing_page: stránka redacted: message_html: Verzi %{version} tohoto objektu %{type} nelze zobrazit, protože byla skryta. Více informací uvádí stránka %{redaction_link}. redaction: Redakce %{id} @@ -221,7 +222,7 @@ cs: manually_select: Ručně vybrat jinou oblast object_list: api: Získat tuto oblast pomocí API - back: Zobrazit seznam objektů + back: Zpět na seznam objektů details: Detaily heading: Seznam objektů history: @@ -263,8 +264,8 @@ cs: way_title: "Cesta: %{way_name}" way_details: also_part_of: - one: patří také do cesty %{related_ways} - other: patří také do cest %{related_ways} + one: patří do cesty %{related_ways} + other: patří do cest %{related_ways} nodes: "Uzly:" part_of: "Součást:" way_history: @@ -284,7 +285,7 @@ cs: changeset_paging_nav: next: Následující » previous: « Předchozí - showing_page: Zobrazuji stranu %{page} + showing_page: Stránka %{page} changesets: area: Oblast comment: Komentář @@ -292,13 +293,13 @@ cs: saved_at: Uloženo v user: Uživatel list: - description: Poslední změny + description: Procházení nedávných příspěvků do mapy description_bbox: Sady změn v %{bbox} description_friend: Sady změn vaÅ¡ich přátel description_nearby: Sady změn uživatelů poblíž description_user: Sady změn uživatele %{user} description_user_bbox: Sady změn uživatele %{user} v %{bbox} - empty_anon_html: Zatím žádné editace + empty_anon_html: Zatím žádné editace. empty_user_html: Vypadá to, že jste zatím neprovedli žádné editace. Pokud chcete začít, podívejte se do Příručky pro začátečníka. heading: Sady změn heading_bbox: Sady změn @@ -367,7 +368,7 @@ cs: newer_entries: Novější záznamy no_entries: Žádné záznamy v deníčku older_entries: Starší záznamy - recent_entries: "Aktuální deníčkové záznamy:" + recent_entries: Aktuální deníčkové záznamy title: Deníčky uživatelů title_friends: Deníčky přátel title_nearby: Deníčky uživatelů poblíž @@ -1000,7 +1001,6 @@ cs: user_diaries_tooltip: Zobrazit deníčky uživatelů view: Zobrazit view_tooltip: Zobrazit mapu - welcome_user: Vítejte, %{user_link} welcome_user_link_tooltip: VaÅ¡e uživatelská stránka wiki: wiki wiki_title: Wiki k tomuto projektu @@ -1438,6 +1438,7 @@ cs: visibility: "Viditelnost:" visibility_help: co tohle znamená? list: + description: Procházení nedávno nahraných GPS stop empty_html: Nic tu jeÅ¡tě není. Nahrajte novou stopu nebo si něco o GPS stopách přečtěte na wiki. public_traces: Veřejné GPS stopy public_traces_from: Veřejné GPS stopy uživatele %{user} @@ -1485,7 +1486,7 @@ cs: trace_paging_nav: newer: Novější stopy older: Starší stopy - showing_page: Zobrazuji stranu %{page} + showing_page: Stránka %{page} view: delete_track: Smazat tuto stopu description: "Popis:" @@ -1590,8 +1591,8 @@ cs: heading: Uživatelé hide: Skrýt vybrané uživatele showing: - one: Zobrazuje se stránka %{page} (%{first_item} z %{items}) - other: Zobrazuje se stránka %{page} (%{first_item}–%{last_item} z %{items}) + one: Stránka %{page} (%{first_item} z %{items}) + other: Stránka %{page} (%{first_item}–%{last_item} z %{items}) summary: "%{name} vytvořeno %{date} z %{ip_address}" summary_no_ip: "%{name} vytvořen %{date}" title: Uživatelé @@ -1653,7 +1654,7 @@ cs: button: Přidat jako přítele failed: Je mi líto, nepodařilo se přidat %{name} jako přítele. heading: Přidat uživatele %{user} jako přítele? - success: "%{name} je nyní váš přítel." + success: "%{name} je nyní váš přítel!" new: confirm email address: "Potvrdit e-mailovou adresu:" confirm password: "Potvrdit heslo:" @@ -1724,7 +1725,7 @@ cs: you need to accept or decline: Pro pokračování si prosím přečtěte a přijměte nebo odmítněte nové Podmínky pro přispěvatele. view: activate_user: aktivovat tohoto uživatele - add as friend: přidat jako přítele + add as friend: přidat do přátel ago: (před %{time_in_words_ago}) block_history: zablokování blocks by me: zablokování mnou @@ -1744,10 +1745,10 @@ cs: diary: deníček edits: editace email address: "E-mailová adresa:" - friends_changesets: Procházet vÅ¡echny sady změn mých přátel - friends_diaries: Procházet vÅ¡echny záznamy v deníčcích přátel + friends_changesets: sady změn přátel + friends_diaries: záznamy v deníčcích přátel hide_user: skrýt tohoto uživatele - if set location: Když si nastavíte svou polohu, objeví se níže hezká mapka atp. Polohu domova si můžete nastavit na stránce %{settings_link}. + if set location: Nastavte si domácí souřadnice na stránce %{settings_link} abyste viděli blízké uživatele. km away: "%{count} km" latest edit: "Poslední editace %{ago}:" m away: "%{count} m" @@ -1759,13 +1760,13 @@ cs: my settings: moje nastavení my traces: moje stopy nearby users: Další uživatelé poblíž - nearby_changesets: Procházet vÅ¡echny sady změn uživatelů poblíž - nearby_diaries: Procházet vÅ¡echny záznamy v deníčcích uživatelů poblíž + nearby_changesets: sady změn uživatelů poblíž + nearby_diaries: záznamy v deníčcích uživatelů poblíž new diary entry: nový záznam do deníčku no friends: Zatím jste nepřidali žádné přátele. 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 + remove as friend: odebrat z přátel role: administrator: Tento uživatel je správce grant: @@ -1844,7 +1845,7 @@ cs: revoke: ZruÅ¡it ! revoker_name: ZruÅ¡no show: Zobrazit - showing_page: Zobrazuji stranu %{page} + showing_page: Stránka %{page} status: Stav period: one: 1 hodina diff --git a/config/locales/da.yml b/config/locales/da.yml index 21512b208..5b838e97b 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -176,7 +176,7 @@ da: way: vej paging_nav: of: af - showing_page: Viser side + showing_page: side redacted: message_html: Version %{version} af denne %{type} kan ikke vises, da den er omarbejdet. Se venligst %{redaction_link} for detaljer. redaction: Omarbejdelse %{id} @@ -216,7 +216,7 @@ da: manually_select: Vælg et andet omrÃ¥de manuelt object_list: api: Hent dette omrÃ¥de fra API'et - back: Vis objektliste + back: Tilbage til objektliste details: Detaljer heading: Objektliste history: @@ -258,8 +258,8 @@ da: way_title: "Vej: %{way_name}" way_details: also_part_of: - one: ogsÃ¥ del af vejen %{related_ways} - other: ogsÃ¥ del af vejene %{related_ways} + one: del af vejen %{related_ways} + other: del af vejene %{related_ways} nodes: "Punkter:" part_of: "Del af:" way_history: @@ -279,7 +279,7 @@ da: changeset_paging_nav: next: Næste » previous: « Forrige - showing_page: Viser side %{page} + showing_page: Side %{page} changesets: area: OmrÃ¥de comment: Kommentar @@ -287,13 +287,13 @@ da: saved_at: Gemt user: Bruger list: - description: Seneste ændringer + description: Seneste ændringer af kortet description_bbox: Ændringer inden for %{bbox} description_friend: Ændringssæt af dine venner description_nearby: Ændringssæt af nærliggende brugere description_user: Ændringssæt af %{user} description_user_bbox: Ændringssæt af %{user} inden for %{bbox} - empty_anon_html: Ingen redigeringer foretaget endnu + empty_anon_html: Ingen redigeringer foretaget endnu. empty_user_html: Det ser ud til du endnu ikke har lavet nogen redigeringer. Tjek begynderens' guide for at komme i gang. heading: Ændringssæt heading_bbox: Ændringssæt @@ -361,7 +361,7 @@ da: newer_entries: Nyere indlæg no_entries: Ingen blogindlæg older_entries: Ældre indlæg - recent_entries: "Seneste blogindlæg:" + recent_entries: Seneste blogindlæg title: Brugerblogs title_friends: Venners blogs title_nearby: Blogs fra brugere i nærheden @@ -992,7 +992,6 @@ da: user_diaries_tooltip: Vis brugerblogs view: Vis view_tooltip: Vis kortet - welcome_user: Velkommen, %{user_link} welcome_user_link_tooltip: Din brugerside wiki: Wiki wiki_title: Wikisite for projektet @@ -1424,6 +1423,7 @@ da: visibility: "Synlighed:" visibility_help: hvad betyder det her? list: + description: Gennemse de seneste GPS track uploads empty_html: Der er ingenting her endnu. Upload et nyt spor eller lær mere om GPS sporing pÃ¥ wiki siden. public_traces: Offentlige GPS-spor public_traces_from: Offentlige GPS-spor fra %{user} @@ -1471,7 +1471,7 @@ da: trace_paging_nav: newer: Nyere spor older: Ældre spor - showing_page: Viser side %{page} + showing_page: Side %{page} view: delete_track: Slet dette spor description: "Beskrivelse:" @@ -1575,8 +1575,8 @@ da: heading: Brugere hide: Skjul valgte brugere showing: - one: Viser side %{page} (%{first_item} af %{items}) - other: Viser side %{page} (%{first_item}-%{last_item} af %{items}) + one: Side %{page} (%{first_item} af %{items}) + other: Side %{page} (%{first_item}-%{last_item} af %{items}) summary: "%{name} oprettet fra %{ip_address} pÃ¥ %{date}" summary_no_ip: "%{name} oprettet pÃ¥ %{date}" title: Brugere @@ -1638,7 +1638,7 @@ da: button: Tilføj som en ven failed: Desværre, kunne ikke tilføje %{name} som din ven. heading: Tilføj %{user} som en ven? - success: "%{name} er nu din ven." + success: "%{name} er nu din ven!" new: confirm email address: "Bekræft e-mail-adresse:" confirm password: "Bekræft adgangskode:" @@ -1671,8 +1671,8 @@ da: nearby mapper: Bruger i nærheden your location: Din position remove_friend: - button: Fjern som en ven - heading: Fjern %{user} som en ven? + button: Fjern som ven + heading: Fjern %{user} som ven? not_a_friend: "%{name} er ikke en af dine venner." success: "%{name} blev fjernet fra din liste af venner." reset_password: @@ -1727,10 +1727,10 @@ da: diary: blog edits: ændringer email address: "E-mail-adresse:" - friends_changesets: Gennemse alle ændringssæt af venner - friends_diaries: Gennemse alle blogindlæg af venner + friends_changesets: venners ændringssæt + friends_diaries: venners blogindlæg hide_user: skjul denne bruger - if set location: Hvis du indstiller din position, viser der sig et pænt kort her. Du kan indstille din hjemmeposition pÃ¥ din %{settings_link}-side. + if set location: Indstil din hjemmeposition pÃ¥ siden %{settings_link} for at se andre brugere i nærheden. km away: "%{count}km væk" latest edit: "Seneste ændring %{ago}:" m away: "%{count}m væk" @@ -1742,8 +1742,8 @@ da: my settings: mine indstillinger my traces: mine GPS-spor nearby users: "Andre brugere i nærheden:" - nearby_changesets: Gennemse alle ændringssæt af brugere i nærheden - nearby_diaries: Gennemse alle blogindlæg af brugere i nærheden + nearby_changesets: ændringssæt af brugere i nærheden + nearby_diaries: blogindlæg af brugere i nærheden new diary entry: nyt blogindlæg no friends: Du har ikke tilføjet nogle venner endnu. no nearby users: Der er ingen andre brugere der har angivet at de kortlægger i nærheden. @@ -1827,7 +1827,7 @@ da: revoke: Tilbagekald! revoker_name: Tilbagekaldt af show: Vis - showing_page: Viser side %{page} + showing_page: Side %{page} status: Status period: one: 1 time diff --git a/config/locales/de.yml b/config/locales/de.yml index 74f3cc499..1aa59411e 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -191,7 +191,7 @@ de: way: Der Weg paging_nav: of: von - showing_page: Zeige Seite + showing_page: Seite redacted: message_html: "Version %{version} dieses %{type}s kann nicht angezeigt werden. Weitere Informationen sind hier angegeben: %{redaction_link}." redaction: Ausgabe %{id} @@ -231,7 +231,7 @@ de: manually_select: Einen anderen Kartenausschnitt manuell auswählen object_list: api: Diesen Bereich von der API abfragen - back: Objektliste anzeigen + back: Zurück zur Objektliste details: Details heading: Objektliste history: @@ -273,8 +273,8 @@ de: way_title: "Weg: %{way_name}" way_details: also_part_of: - one: Auch Teil des Wegs %{related_ways} - other: Auch Teil der Wege %{related_ways} + one: Teil des Wegs %{related_ways} + other: Teil der Wege %{related_ways} nodes: "Knoten:" part_of: "Teil von:" way_history: @@ -302,7 +302,7 @@ de: saved_at: Gespeichert am user: Benutzer list: - description: Letzte Änderungen + description: Die letzten Beiträge an der Karte durchstöbern description_bbox: Letzte Änderungen in %{bbox} description_friend: Änderungssätze deiner Freunde description_nearby: Änderungssätze von Benutzern in der Nähe @@ -376,7 +376,7 @@ de: newer_entries: Neuere no_entries: Dieser Benutzer hat noch kein Blog older_entries: Ältere - recent_entries: "Neuste Einträge:" + recent_entries: Neueste Einträge title: Blogs title_friends: Tagebücher meiner Freunde title_nearby: Tagebücher von Nutzern in der Nähe @@ -1026,7 +1026,6 @@ de: user_diaries_tooltip: Benutzer-Blogs lesen view: Karte view_tooltip: Karte anzeigen - welcome_user: Willkommen, %{user_link} welcome_user_link_tooltip: Eigene Benutzerseite wiki: Wiki wiki_title: Wiki des Projekts @@ -1040,7 +1039,7 @@ de: attribution_example: alt: Beispiel, wie man auf OpenStreetMap auf einer Webseite hinweist title: Hinweisbeispiel - contributors_at_html: "Österreich: Enthält Daten der Stadt Wien (lizenziert gemäß CC BY AT), des Landes Vorarlberg und des Landes Tirol (beides lizenziert gemäß CC BY AT mit Anpassungen zur Lizenz)." + contributors_at_html: "Österreich: Enthält Daten der Stadt Wien (lizenziert gemäß CC BY AT), des Landes Vorarlberg und des Landes Tirol (lizenziert gemäß CC BY AT samt Erweiterungen zur Lizenz)." contributors_ca_html: "Kanada: Enthält Daten von GeoBase®, GeoGratis (© Department of Natural Resources Canada), CanVec (© Department of Natural Resources Canada) und StatCan (Geography Division, Statistics Canada)." contributors_footer_1_html: Für weitere diesbezügliche Einzelheiten sowie anderer Datenquellen, die zur Verbesserung von OpenStreetMap genutzt wurden, besuche bitte die Seite über die Mitwirkenden im Wiki von OpenStreetMap. contributors_footer_2_html: Die Einbeziehung von Daten bei OpenStreetMap impliziert nicht, dass der ursprüngliche Datenlieferant OpenStreetMap unterstützt, Gewährleistung gibt, noch Haftung übernimmt. @@ -1461,6 +1460,7 @@ de: visibility: "Sichtbarkeit:" visibility_help: Was heißt das? list: + description: Letzte GPS-Track-Uploads durchsuchen empty_html: Bislang ist hier noch nichts vorhanden. Lade eine neue Spur hoch oder informiere dich auf folgender Wikiseite über das Aufzeichnen von GPS-Spuren. public_traces: Öffentliche GPS-Tracks public_traces_from: Öffentliche GPS-Tracks von %{user} @@ -1613,8 +1613,8 @@ de: heading: Benutzer hide: Ausgewählte Benutzer ausblenden showing: - one: Anzeige von Seite %{page} (%{first_item} von %{items}) - other: Anzeige von Seite %{page} (%{first_item}-%{last_item} von %{items}) + one: Seite %{page} (%{first_item} von %{items}) + other: Seite %{page} (%{first_item}–%{last_item} von %{items}) summary: "%{name} erstellt von %{ip_address} am %{date}" summary_no_ip: "%{name} erstellt am %{date}" title: Benutzer @@ -1676,7 +1676,7 @@ de: button: Als Freund hinzufügen failed: Sorry, %{name} konnte nicht als dein Freund hinzugefügt werden. heading: "%{user} als Freund hinzufügen?" - success: "%{name} ist nun dein Freund." + success: "%{name} ist nun dein Freund!" new: confirm email address: "Bestätige deine E-Mail-Adresse:" confirm password: "Passwort bestätigen:" @@ -1709,8 +1709,8 @@ de: nearby mapper: Mapper in der Nähe your location: Eigener Standort remove_friend: - button: Als Freund entfernen - heading: "%{user} als Freund entfernen?" + button: Freund entfernen + heading: Freund %{user} entfernen? not_a_friend: "%{name} ist nicht dein Freund." success: "%{name} wurde als Freund entfernt." reset_password: @@ -1745,7 +1745,7 @@ de: you need to accept or decline: Bitte lese die neuen Bedingungen für Mitwirkende und nehme sie an oder lehne sie ab, bevor du weitermachst. view: activate_user: Benutzer aktivieren - add as friend: Als Freund hinzufügen + add as friend: Freund hinzufügen ago: (%{time_in_words_ago} her) block_history: Erhaltene Sperren blocks by me: Selbst vergebene Sperren @@ -1765,10 +1765,10 @@ de: diary: Blog edits: Bearbeitungen email address: "E-Mail-Adresse:" - friends_changesets: Alle Änderungssätze deiner Freunde durchsuchen - friends_diaries: Alle Tagebucheinträge von Freunden durchsuchen + friends_changesets: Änderungssätze deiner Freunde + friends_diaries: Tagebucheinträge von Freunden hide_user: Benutzer verstecken - if set location: Wenn du deinen Standort angegeben hast, erscheint eine Karte am Seitenende. Du kannst deinen Standort in deinen %{settings_link} ändern. + if set location: Lege in den %{settings_link} deinen Heimatort fest, um Benutzer in der Nähe anzuzeigen. km away: "%{count} km entfernt" latest edit: "Letzte Änderung %{ago}:" m away: "%{count} m entfernt" @@ -1780,13 +1780,13 @@ de: my settings: Eigene Einstellungen my traces: Eigene Tracks nearby users: Anwender in der Nähe - nearby_changesets: Alle Änderungssätze von Benutzern in der Nähe durchsuchen - nearby_diaries: Alle Tagebucheinträge von Benutzern in der Nähe durchsuchen + nearby_changesets: Änderungssätze von Benutzern in der Nähe + nearby_diaries: Tagebucheinträge von Benutzern in der Nähe new diary entry: Neuer Blogeintrag no friends: Du hast bis jetzt keine Freunde hinzugefügt. 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 + remove as friend: Freund entfernen role: administrator: Dieser Benutzer ist ein Administrator grant: diff --git a/config/locales/diq.yml b/config/locales/diq.yml index ff80a5f5c..a5cba5aae 100644 --- a/config/locales/diq.yml +++ b/config/locales/diq.yml @@ -591,7 +591,7 @@ diq: subject: Mersel title: Ameyan message_summary: - delete_button: Besterne + delete_button: Bestere reply_button: Cewab bıde new: body: Vêrey mesaci @@ -610,7 +610,7 @@ diq: subject: Mersel to: Kêrê sent_message_summary: - delete_button: Besterne + delete_button: Bestere notifier: diary_comment_notification: hi: Merheba %{to_user}, diff --git a/config/locales/dsb.yml b/config/locales/dsb.yml index 0b3c69fb2..65b1a53ad 100644 --- a/config/locales/dsb.yml +++ b/config/locales/dsb.yml @@ -995,7 +995,6 @@ dsb: user_diaries_tooltip: Wužywarske dnjowniki cytaś view: Kórta view_tooltip: Kórtu se woglědaś - welcome_user: Witaj, %{user_link} welcome_user_link_tooltip: Twój wužywarski bok wiki: Wiki wiki_title: Wikisedło za projekt diff --git a/config/locales/el.yml b/config/locales/el.yml index 0fe11f905..f4fd12724 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -894,7 +894,6 @@ el: user_diaries_tooltip: Προβολή ημερολογίων χρηστών view: Προβολή view_tooltip: Προβολή του χάρτη - welcome_user: Καλώς ορίσατε, %{user_link} welcome_user_link_tooltip: Η προσωπική σας σελίδα wiki: Wiki wiki_title: Ιστοσελίδα wiki για το έργο diff --git a/config/locales/en.yml b/config/locales/en.yml index 09d3ceae0..cfe0703e9 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -269,8 +269,8 @@ en: nodes: "Nodes:" part_of: "Part of:" also_part_of: - one: "also part of way %{related_ways}" - other: "also part of ways %{related_ways}" + one: "part of way %{related_ways}" + other: "part of ways %{related_ways}" way_history: way_history: "Way History" way_history_title: "Way History: %{way_name}" diff --git a/config/locales/eo.yml b/config/locales/eo.yml index fa1190a70..4e81358a9 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -401,7 +401,6 @@ eo: user_diaries_tooltip: Vidi uzantĵurnalojn view: Vidi view_tooltip: Vidi la mapon - welcome_user: Bonvenon, %{user_link} welcome_user_link_tooltip: Via uzantpaĝo license_page: foreign: diff --git a/config/locales/es.yml b/config/locales/es.yml index 5059df92e..98a3496d1 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -1000,7 +1000,6 @@ es: user_diaries_tooltip: Ver diarios de usuario view: Ver view_tooltip: Ver el mapa - welcome_user: Bienvenido, %{user_link} welcome_user_link_tooltip: Tu página de usuario wiki: Wiki wiki_title: Sitio Wiki del proyecto @@ -1412,7 +1411,7 @@ es: 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. + trace_uploaded: Tu archivo GPX ha sido subido y está pendiente de inserción en la base de datos. Esto normalmente ocurre en la próxima media hora, y se te enviará un correo electrónico al terminar. upload_trace: Subir Traza GPS delete: scheduled_for_deletion: Traza programada para eliminación diff --git a/config/locales/et.yml b/config/locales/et.yml index 3ad1a0866..f82e99592 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -159,9 +159,11 @@ et: hide_areas: Peida alad history_for_feature: Omaduse %{feature} ajalugu load_data: Laadi andmed + loaded_an_area_with_num_features: Oled laadinud ala, mis sisaldab %{num_features} objekti. Mõned brauserid ei saa hästi hakkama sellise hulga andmete kuvamisega. Üldiselt suudavad brauserid kuvada korraga kuni %{max_features} objekti. Suurema arvu laadimine võib muuta brauseri aeglaseks või see lakkab üldse toimimast. Kui soovid siiski neid andmeid kuvada, võid seda teha, klõpsates nupul allpool. loading: Laadin andmeid... manually_select: Vali uus ala object_list: + api: Laadi antud ala APIst back: Näita objektide nimekirja details: Detailid heading: Objektide nimekiri @@ -179,6 +181,7 @@ et: show_areas: Näita alasid show_history: Näita ajalugu unable_to_load_size: "Laadimine ebaõnnestus: valitud ala küjepikkus %{bbox_size} on liiga suur (see peab olema väiksem kui %{max_bbox_size})" + view_data: Näita andmeid praeguse kaardivaate kohta wait: Oota... zoom_or_select: Suurenda või vali soovitud ala kaardil tag_details: @@ -193,7 +196,7 @@ et: relation: relatsiooni way: joone way: - download_xml: Lae XML + download_xml: Laadi alla XML edit: redigeeri view_history: vaata ajalugu way: Joon @@ -205,7 +208,7 @@ et: nodes: "Sõlmed:" part_of: "Osa:" way_history: - download_xml: Lae alla XML-fail. + download_xml: Laadi alla XML view_details: vaata detaile way_history: Joone muudatuste ajalugu way_history_title: "Joone: %{way_name} ajalugu" @@ -251,6 +254,7 @@ et: confirm: Kinnita edit_link: Muuda seda sissekannet hide_link: Peida see sissekanne + posted_by: Postitas %{link_user} %{created} %{language_link} reply_link: Vasta sellele sissekandele edit: body: "Tekst:" @@ -258,6 +262,7 @@ et: latitude: "Laiuskraad:" location: "Asukoht:" longitude: "Pikkuskraad:" + marker_text: Päeviku sissekande tegemise asukoht save_button: Salvesta subject: "Teema:" title: Muuda päeviku sissekannet @@ -336,6 +341,7 @@ et: add_marker: Lisa kaardile marker change_marker: Muuda märgi asukohta export: Ekspordi + manually_select: Vali käsitsi teine ala view_larger_map: Näita suuremat kaarti geocoder: description: @@ -372,6 +378,7 @@ et: gate: Värav terminal: Terminal amenity: + WLAN: WiFi-ühendus airport: Lennujaam artwork: Kunstiteos atm: Pangaautomaat @@ -388,6 +395,7 @@ et: car_rental: Autorent car_wash: Autopesu casino: Kasiino + charging_station: Laadimisjaam cinema: Kino clinic: Kliinik club: Klubi @@ -400,10 +408,12 @@ et: emergency_phone: Hädaabi telefon fast_food: Kiirtoit ferry_terminal: Praamiterminal + fire_hydrant: Tuletõrjehüdrant fire_station: Tuletõrjedepoo fountain: Purskkaev fuel: Kütus grave_yard: Surnuaed + health_centre: Tervisekeskus hospital: Haigla hotel: Hotell ice_cream: Jäätis @@ -412,6 +422,7 @@ et: market: Turg marketplace: Turg nightclub: Ööklubi + office: Kontor park: Park parking: Parkimisplats pharmacy: Apteek @@ -434,7 +445,7 @@ et: toilets: WC university: Ülikool waste_basket: Prügikast - wifi: WiFi + wifi: WiFi-ühendus youth_centre: Noortekeskus boundary: administrative: Halduspiir @@ -583,12 +594,14 @@ et: miniature: Miniatuurraudtee narrow_gauge: Kitsarööpmeline raudtee platform: Raudteeperroon + spur: Raudtee harutee station: Raudteejaam subway: Metroojaam switch: Pöörangud tram: Trammitee tram_stop: Trammipeatus shop: + antiques: Antikvariaat bicycle: Rattapood books: Raamatupood butcher: Lihunik @@ -598,6 +611,7 @@ et: computer: Arvutikauplus cosmetics: Kosmeetikapood dry_cleaning: Keemiline puhastus + electronics: Elektroonikapood fish: Kalapood florist: Lillepood food: Toidupood @@ -631,6 +645,8 @@ et: picnic_site: piknikuplats theme_park: Teemapark zoo: Loomaaed + tunnel: + "yes": Tunnel waterway: canal: Kanal dam: Tamm @@ -668,17 +684,19 @@ et: gps_traces: GPS rajad gps_traces_tooltip: Halda GPS radasid help: Juhend + help_centre: Abikeskus help_title: Projekti abiinfo history: Ajalugu home: kodu home_tooltip: Mine kodupaika + inbox_html: sisendkaust %{count} inbox_tooltip: one: Sul on üks lugemata sõnum other: Sul on %{count} lugemata sõnumit zero: Sul ei ole lugemata sõnumeid intro_1: OpenStreetMap on vaba, kogu maailma hõlmav kaart, mille on loonud inimesed, nagu sina. intro_2_create_account: loo oma konto - intro_2_download: allalaadida + intro_2_download: alla laadida intro_2_html: Andmeid võib olemasoleva %{license} alusel tasuta %{download} ja %{use}. Kaardi täiendamiseks %{create_account}. intro_2_license: avatud litsentsi intro_2_use: kasutada @@ -691,6 +709,13 @@ et: make_a_donation: text: Anneta title: Toeta OpenStreetMapi rahaliselt + osm_offline: OpenStreetMapi andmebaas ei ole hetkel juurdepääsetav sest teostatakse vajalikke hooldustöid. + osm_read_only: OpenStreetMapi andmebaas on hetkel oluliste hooldustööde tõttu ligipääsetav ainult lugemiseks. + partners_bytemark: Bytemark Hosting + partners_html: Majutust toetavad %{ucl}, %{ic} ja %{bytemark} ning teised %{partners}. + partners_ic: Imperial College London + partners_partners: partnerid + partners_ucl: UCL VR Centre sign_up: registreeru sign_up_tooltip: Redigeerimiseks loo omale konto tag_line: Vaba viki-maailmakaart @@ -698,17 +723,22 @@ et: user_diaries_tooltip: Vaata kasutajate päevikuid view: Vaata view_tooltip: Vaata kaarti - welcome_user: Tere tulemast, %{user_link} welcome_user_link_tooltip: Sinu kasutajaleht wiki: Viki + wiki_title: Projekti wiki leht license_page: foreign: - english_link: ingliskeelne originaal + english_link: ingliskeelse originaali + text: Juhul kui tekib vastuolu käesoleva tõlgitud lehe ja %{english_original_link} vahel, on ingliskeelne leht ülimuslik. title: Info selle tõlke kohta + legal_babble: + intro_1_html: "OpenStreetMap on avatud andmed, mis on litsenseeritud Open Data\nCommons Open Database License (ODbL) tingimustel." + title_html: Autoriõigused ja litsents native: mapping_link: alustada kaardistamist native_link: eestikeelse versiooni text: Sa vaatad ingliskeelset versiooni autoriõiguste leheküljest. Sa võid minna tagasi selle lehe %{native_link} juurde või lõpetada autoriõiguste lugemise ja %{mapping_link}. + title: Sellest leheküljest message: delete: deleted: Sõnum kustutatud @@ -787,6 +817,7 @@ et: email_confirm_plain: greeting: Tere, friend_notification: + had_added_you: "% {user} lisas sind OpenStreetMap'is sõbraks." subject: "[OpenStreetMap] %{user} lisas sind oma sõbraks" gpx_notification: greeting: Tere, @@ -795,10 +826,30 @@ et: lost_password_plain: greeting: Tere, message_notification: + footer1: "Sa saad lugeda sõnumit ka lehel: %{readurl}" header: "%{from_user} on saatnud sulle OpenStreetMapi kaudu sõnumi teemaga %{subject}:" hi: Tere, %{to_user}, signup_confirm: + confirm: "Enne kasutajakonto loomist peame saama kinnituse, et see taotlus tuli sinult ja selleks klõpsa alloleval lingil:" + created: Keegi (loodetavasti sina) lõi äsja %{site_url} kasutajakonto. + greeting: Tere! subject: "[OpenStreetMap] E-posti aadressi kinnitamine" + welcome: Teretulemast OpenStreetMap kaardirakendusse! Soovime pakkuda sulle lisainfot, et saaksid selle kasutamist hõlpsalt alustada. + signup_confirm_html: + introductory_video: Võid vaadata %{introductory_video_link}. + more_videos: Vaata %{more_videos_link}. + more_videos_here: rohkem videosid siit + video_to_openstreetmap: OpenStreetMapi esitlusvideot + signup_confirm_plain: + ask_questions: "Võid esitada huvipakkuvaid küsimusi OpenStreetMapi kohta meie küsimuste ja vastuste veebisaidil:" + blog_and_twitter: "Loe viimaseid uudiseid OpenStreetMapi blogist või Twitterist:" + current_user: "Nimekiri kasutajatest kategooriates, sõltuvalt nende asukohast, on nähtav siin:" + introductory_video: "Sa võid vaadata OpenStreetMapi tutvustavat videot siit:" + more_videos: "Rohkem videosid võib näha siit:" + opengeodata: "OpenGeoData.org on OpenStreetMapi asutaja Steve Coasti blogi. Ka taskuhääling on saadaval:" + the_wiki: "Loe lisaks OpenStreetMapi kohta vikist:" + user_wiki_page: Soovitatav on luua kasutaja viki-leht, mis sisaldab sinu asukohta näitavaid kategooria-silte, näiteks [[Category:Users_in_Estonia]]. + wiki_signup: "Soovi korral võid samuti registreeruda OpenStreetMapi viki kasutajaks:" oauth: oauthorize: allow_write_api: muuda kaarti. @@ -822,9 +873,11 @@ et: issued_at: Väljastatud list_tokens: "Järgmised turvamärgid on rakendustele väljastatud sinu nime all:" my_apps: Minu kliendirakendused + my_tokens: Minu autoriseeritud rakendused no_apps: Kas omad rakendust, mida soovid siin kasutamiseks registreerida, kasutades %(oauth) standardit? Selleks tuleb kõigepealt registreerida oma veebirakendus enne kui see saab teostada OAuth päringuid antud teenusele. register_new: Registreeri oma rakendus revoke: Tühista! + title: Minu OAuth seaded new: submit: Registreeri title: Registreeri uus rakendus @@ -949,7 +1002,9 @@ et: visibility: "Nähtavus:" visibility_help: Mida see tähendab? list: + description: Sirvi viimati üles laaditud GPS-radasid public_traces: Avalikud GPS rajad + tagged_with: ", millel on silt %{tags}" your_traces: Sinu GPS rajad trace: ago: "%{time_in_words_ago} tagasi" @@ -965,12 +1020,12 @@ et: trace_details: Vaata Jälje Detaile view_map: Vaata kaarti trace_form: - description: Kirjeldus + description: "Kirjeldus:" help: Abi tags: "Sildid:" upload_button: Laadi üles upload_gpx: "Laadi üles GPX-fail:" - visibility: Nähtavus + visibility: "Nähtavus:" visibility_help: mida see tähendab? trace_header: see_all_traces: Vaata kõiki GPS-radasid @@ -1001,13 +1056,18 @@ et: account: contributor terms: agreed: Oled nõustunud uute Kaastöö tingimustega. + agreed_with_pd: Samuti oled deklareerinud oma kaastöö autoriõigustest vabaks (Public Domain). heading: "Kaastöö tingimused:" link text: Mis see on? not yet agreed: Sa ei ole veel nõustunud uute Kaastöö tingimustega. + review link text: Loe ja nõustu uute Kaastöö tingimustega klõpsates endale sobival ajal antud lingil. current email address: "Praegune e-posti aadress:" delete image: Eemalda praegune pilt email never displayed publicly: (ei näidata mitte kunagi avalikult) flash update success: Kasutaja informatsioon uuendatud edukalt. + gravatar: + gravatar: Kasuta Gravatari + link text: mis see on? home location: "Kodu asukoht:" image: "Pilt:" image size hint: (ruudukujuline pilt mõõtudega vähemalt 100x100 on sobiv) @@ -1039,6 +1099,7 @@ et: update home location on click: Kas uuendan kodu asukohta kui ma klõpsan kaardil? confirm: already active: See konto on juba kinnitatud. + before you start: Kindlasti soovid juba kiiresti alustada kaardistamist, kuid enne seda võiksid lisada allpool olevasse vormi rohkem teavet enda kohta. button: Kinnita heading: Kinnita kasutajakonto press confirm button: Vajuta allolevale kinnitamise nupule, et oma kasutajakonto aktiveerida. @@ -1122,7 +1183,7 @@ et: flash success: Kodukoht edukalt salvestatud terms: agree: Nõustun - consider_pd_why: Mis see on? + consider_pd_why: mis see on? decline: Ei nõustu heading: "Kaastöötingimused:" legale_names: diff --git a/config/locales/eu.yml b/config/locales/eu.yml index 42a24abdb..0408dc4c1 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -504,7 +504,6 @@ eu: sign_up: izena eman view: Ikusi view_tooltip: Mapa ikusi - welcome_user: Ongietorri, %{user_link} welcome_user_link_tooltip: Zure lankide orrialdea wiki: Wikia license_page: diff --git a/config/locales/fa.yml b/config/locales/fa.yml index d67b29eee..ab8df80cb 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -729,7 +729,6 @@ fa: user_diaries: یادداشت کاربر view: نمایش view_tooltip: نمایش نقشه - welcome_user: خوش آمدید، %{user_link} welcome_user_link_tooltip: صفحهٔ کاربری شما wiki: ویکی‌ wiki_title: سایت ویکی برای پروژه diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 685cdacd3..91cba33ac 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -996,7 +996,6 @@ fi: user_diaries_tooltip: Näytä käyttäjän päiväkirjat view: Kartta view_tooltip: Näytä kartta - welcome_user: Tervetuloa, %{user_link}! welcome_user_link_tooltip: Käyttäjäsivusi wiki: Wiki wiki_title: Projektin wikisivusto diff --git a/config/locales/fr.yml b/config/locales/fr.yml index c3d827dd7..139dcdfbd 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -193,7 +193,7 @@ fr: way: chemin paging_nav: of: de - showing_page: Page en cours + showing_page: page redacted: message_html: La version %{version} de ce(tte) %{type} ne peut être affichée car elle a été masquée. Veuillez consulter %{redaction_link} pour plus d'informations. redaction: Masquage %{id} @@ -233,7 +233,7 @@ fr: manually_select: Sélectionner manuellement une zone différente object_list: api: Obtenir cette zone depuis l’API - back: Afficher la liste d’objets + back: Revenir à la liste d’objets details: Détails heading: Liste d’objets history: @@ -275,8 +275,8 @@ fr: way_title: "Chemin : %{way_name}" way_details: also_part_of: - one: faisant aussi partie du chemin %{related_ways} - other: faisant aussi partie des chemins %{related_ways} + one: partie du chemin %{related_ways} + other: partie des chemins %{related_ways} nodes: "Nœuds :" part_of: "Faisant partie de :" way_history: @@ -296,7 +296,7 @@ fr: changeset_paging_nav: next: Suivants » previous: « Précédents - showing_page: Affichage de la page %{page} + showing_page: Page %{page} changesets: area: Zone comment: Commentaire @@ -304,13 +304,13 @@ fr: saved_at: Sauvegardé à user: Utilisateur list: - description: Modifications récentes + description: Parcourir les contributions récentes sur la carte description_bbox: Groupes de modifications dans %{bbox} description_friend: Groupes de modifications par vos amis description_nearby: Groupes de modifications par les utilisateurs à proximité description_user: Groupes de modifications par %{user} description_user_bbox: Groupes de modifications par %{user} dans %{bbox} - empty_anon_html: Aucune modification encore faite + empty_anon_html: Encore aucune modification faite. empty_user_html: Il semble que vous n'avez pas encore fait de modification. Pour commencer, regardez le Guide du débutant. heading: Groupes de modifications heading_bbox: Groupes de modifications @@ -378,7 +378,7 @@ fr: newer_entries: Entrées plus récentes no_entries: Aucune entrée dans votre journal older_entries: Entrées plus anciennes - recent_entries: "Entrées récentes du journal :" + recent_entries: "Entrées récentes du journal:" title: Journaux des utilisateurs title_friends: Journaux des amis title_nearby: Journaux des utilisateurs à proximité @@ -1012,7 +1012,6 @@ fr: user_diaries_tooltip: Voir les journaux d'utilisateurs view: Voir view_tooltip: Afficher la carte - welcome_user: Bienvenue, %{user_link} welcome_user_link_tooltip: Votre page utilisateur wiki: Wiki wiki_title: site Wiki pour le projet @@ -1445,6 +1444,7 @@ fr: visibility: "Visibilité :" visibility_help: que signifie ceci ? list: + description: Parcourir les récentes traces GPS téléchargées empty_html: Rien à voir par ici. Télécharger une nouvelle trace ou pour en savoir plus sur le traçage GPS, consultez la page wiki. public_traces: Traces GPS publiques public_traces_from: Traces GPS publiques de %{user} @@ -1492,7 +1492,7 @@ fr: trace_paging_nav: newer: Nouvelles traces older: Anciennes traces - showing_page: Affichage de la page %{page} + showing_page: Page %{page} view: delete_track: Supprimer cette piste description: "Description :" @@ -1596,8 +1596,8 @@ fr: heading: Utilisateurs hide: Masquer les utilisateurs sélectionnés showing: - one: Affichage de la page %{page} (%{first_item} sur %{items}) - other: Affichage de la page %{page} (%{first_item}-%{last_item} sur %{items}) + one: Page %{page} (%{first_item} sur %{items}) + other: Page %{page} (%{first_item}-%{last_item} sur %{items}) summary: "%{name} créé depuis %{ip_address} le %{date}" summary_no_ip: "%{name} créé le %{date}" title: Utilisateurs @@ -1659,7 +1659,7 @@ fr: button: Ajouter en tant qu'ami failed: Désolé, échec lors de l'ajout de %{name} comme votre ami heading: Ajouter %{user} en tant qu'ami? - success: "%{name} est à présent votre ami." + success: "%{name} est désormais votre ami!" new: confirm email address: "Confirmer l'adresse e-mail :" confirm password: "Confirmez le mot de passe :" @@ -1692,8 +1692,8 @@ fr: nearby mapper: Mappeur dans les environs your location: Votre emplacement remove_friend: - button: Supprimer en tant qu'ami - heading: Supprimer %{user} en tant qu'ami? + button: Supprimer en tant qu’ami + heading: Supprimer %{user} en tant qu’ami? not_a_friend: "%{name} n'est pas parmi vos amis." success: "%{name} a été retiré de vos amis." reset_password: @@ -1728,7 +1728,7 @@ fr: you need to accept or decline: Veuillez lire et ensuite soit accepter ou refuser les nouvelles conditions de contributeur pour continuer. view: activate_user: activer cet utilisateur - add as friend: ajouter en tant qu'ami + add as friend: ajouter en tant qu’ami ago: (il y a %{time_in_words_ago}) block_history: blocages reçus blocks by me: blocages donnés @@ -1748,10 +1748,10 @@ fr: diary: journal edits: modifications email address: "Adresse email :" - friends_changesets: Parcourir tous les groupes de modifications des amis - friends_diaries: Parcourir toutes les entrées de journal des amis + friends_changesets: Groupes de modifications des amis + friends_diaries: Entrées de journal des amis hide_user: masquer cet utilisateur - if set location: Si vous définissez un lieu, une jolie carte va apparaître en dessous. Vous pouvez définir votre lieu sur votre page %{settings_link}. + if set location: Positionner votre lieu d’habitation sur la page %{settings_link} pour voir les utilisateurs à proximité. km away: "%{count} km" latest edit: "Dernière modification %{ago} :" m away: distant de %{count} m @@ -1763,13 +1763,13 @@ fr: my settings: mes options my traces: mes traces nearby users: Autres utilisateurs à proximité - nearby_changesets: Parcourir tous les groupes de modifications des utilisateurs à proximité - nearby_diaries: Parcourir toutes les entrées de journal des utilisateurs à proximité + nearby_changesets: Groupes de modifications des utilisateurs à proximité + nearby_diaries: Entrées de journal des utilisateurs à proximité new diary entry: nouvelle entrée dans le journal no friends: Vous n'avez pas encore ajouté d'ami 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 + remove as friend: supprimer en tant qu’ami role: administrator: Cet utilisateur est un adminstrateur grant: @@ -1848,7 +1848,7 @@ fr: revoke: Révoquer ! revoker_name: Révoqué par show: Afficher - showing_page: Affichage de la page %{page} + showing_page: Page %{page} status: État period: one: 1 heure diff --git a/config/locales/fur.yml b/config/locales/fur.yml index 7430f2fba..475504a82 100644 --- a/config/locales/fur.yml +++ b/config/locales/fur.yml @@ -124,10 +124,10 @@ fur: prev_changeset_tooltip: Cambiament precedent di %{user} node: download_xml: Discjame XML - edit: cambie + edit: Cambie il grop node: Grop node_title: "Grop: %{node_name}" - view_history: cjale storic + view_history: Cjale il storic node_details: coordinates: "Coordenadis:" part_of: "Part di:" @@ -135,7 +135,7 @@ fur: download_xml: Discjame XML node_history: Storic dal grop node_history_title: "Storic dal grop: %{node_name}" - view_details: cjale i detais + view_details: Cjale i detais not_found: sorry: Nus displâs, nol è stât pussibil cjatâ il %{type} cun id %{id}. type: @@ -146,11 +146,16 @@ fur: paging_nav: of: su showing_page: Mostrant la pagjine + redacted: + type: + node: grop + relation: relazion + way: vie relation: download_xml: Discjame XML relation: Relazion relation_title: "Relazion: %{relation_name}" - view_history: cjale storic + view_history: Cjale il storic relation_details: members: "Membris:" part_of: "Part di:" @@ -158,7 +163,7 @@ fur: download_xml: Discjame XML relation_history: Storic relazion relation_history_title: "Storic de relazion: %{relation_name}" - view_details: cjale detais + view_details: Cjale i detais relation_member: entry_role: "%{type} %{name} come %{role}" type: @@ -167,13 +172,13 @@ fur: way: Vie start_rjs: data_frame_title: Dâts - data_layer_name: Dâts + data_layer_name: Esplore i dâts de mape details: Detais edited_by_user_at_timestamp: Cambiât di %{user} ai %{timestamp} hide_areas: Plate areis history_for_feature: Storic par %{feature} load_data: Cjame i dâts - loaded_an_area_with_num_features: "Tu âs cjamât une aree che e conten %{num_features} carateristichis. In gjenerâl, cualchi sgarfadôr al podarès no rivâ a gjestî ben cheste cuantitât di dâts. I sgarfadôrs par solit a lavorin miôr se a mostrin mancul di 100 carataristichis ae volte: cualsisei altri numar al podarès ralentâ/no fâ plui rispuindi il sgarfadôr. Se tu sês sigûr di volê mostrâ chescj dâts, frache sul boton ca sot." + loaded_an_area_with_num_features: "Tu âs cjamât une aree che e conten %{num_features} carataristichis. In gjenerâl, cualchi sgarfadôr al podarès no rivâ a gjestî ben cheste cuantitât di dâts. I sgarfadôrs par solit a lavorin miôr se a mostrin mancul di %{max_features} carataristichis ae volte: cualsisei altri numar al podarès ralentâ/no fâ plui rispuindi il sgarfadôr. Se tu sês sigûr di volê mostrâ chescj dâts, frache sul boton ca sot." loading: Daûr a cjamâ... manually_select: Sielç a man une aree divierse object_list: @@ -195,6 +200,7 @@ fur: private_user: utent privât show_areas: Mostre areis show_history: Mostre storic + view_data: Viôt i dâts pe viodude atuâl de mape wait: Daûr a spietâ... zoom_or_select: Ingrandìs o sielç la aree de mape che tu vuelis viodi tag_details: @@ -211,8 +217,8 @@ fur: way: vie way: download_xml: Discjame XML - edit: cambie - view_history: cjale storic + edit: Cambie la vie + view_history: Cjale il storic way: Vie way_title: "Vie: %{way_name}" way_details: @@ -223,7 +229,7 @@ fur: part_of: "Part di:" way_history: download_xml: Discjame XML - view_details: cjale i detais + view_details: Cjale i detais way_history: Storic de vie way_history_title: "Storic de vie: %{way_name}" changeset: @@ -248,8 +254,11 @@ fur: list: description: Ultins cambiaments description_bbox: Grups di cambiaments jentri di %{bbox} + description_friend: Grups di cambiaments dai tiei amîs + description_nearby: Grups di cambiaments dai utents dongje description_user: Grups di cambiaments di %{user} description_user_bbox: Grups di cambiaments di %{user} jentri di %{bbox} + empty_anon_html: Ancjemò nissun cambiament heading: Grups di cambiaments heading_bbox: Grups di cambiaments heading_friend: Grups di cambiaments @@ -258,9 +267,18 @@ fur: heading_user_bbox: Grups di cambiaments title: Grups di cambiaments title_bbox: Grups di cambiaments jentri di %{bbox} + title_friend: Grups di cambiaments dai tiei amîs + title_nearby: Grups di cambiaments dai utents dongje title_user: Grups di cambiaments di %{user} title_user_bbox: Grups di cambiaments di %{user} jentri di %{bbox} diary_entry: + comments: + ago: "%{ago} indaûr" + comment: Coment + newer_comments: Coments plui gnûfs + older_comments: Coments plui vieris + post: Publiche + when: Cuant diary_comment: comment_from: Coment di %{link_user} ai %{comment_created_at} confirm: Conferme @@ -305,6 +323,8 @@ fur: older_entries: Vôs plui vieris recent_entries: "Ultimis vôs dal diari:" title: Diaris dai utents + title_friends: Diaris dai amîs + title_nearby: Diaris dai utents dongje user_title: Diari di %{user} location: edit: Cambie @@ -338,7 +358,7 @@ fur: add_marker: Zonte un segnalut ae mape area_to_export: Aree di espuartâ export_button: Espuarte - export_details: I dâts di OpenStreetMap a son dâts fûr sot de licence Creative Commons Attribution-ShareAlike 2.0 license. + export_details: I dâts di OpenStreetMap a son dâts fûr sot de licence Open Data Commons Open Database License (ODbL). format: "Formât:" format_to_export: Formât di espuartâ image_size: "Dimensions figure:" @@ -399,7 +419,10 @@ fur: us_postcode: Risultâts cjolts di Geocoder.us search_osm_nominatim: prefix: + aeroway: + terminal: Terminâl amenity: + WLAN: Pont di acès WiFi airport: Aeropuart arts_centre: Centri pes arts atm: Bancomat @@ -407,6 +430,7 @@ fur: bank: Bancje bar: Bar bench: Bancjute + bicycle_parking: Parc pes bicicletis bicycle_rental: Nauli di bicicletis bureau_de_change: Ufizi di cambi bus_station: Stazion des corieris @@ -423,6 +447,7 @@ fur: driving_school: Scuele guide embassy: Ambassade emergency_phone: Telefon di emergjence + ferry_terminal: Terminâl traghets fire_hydrant: Idrant fire_station: Stazion dai pompîrs fountain: Fontane @@ -452,6 +477,7 @@ fur: school: Scuele shop: Buteghe supermarket: Supermarcjât + swimming_pool: Pissine taxi: Taxi telephone: Telefon public theatre: Teatri @@ -460,10 +486,14 @@ fur: vending_machine: Distributôr automatic veterinary: Veterinari village_hall: Centri civic - wifi: Acès a internet WiFi + wifi: Pont di acès WiFi youth_centre: Centri zovanîl boundary: administrative: Confin aministratîf + national_park: Parc nazionâl + protected_area: Aree protezude + bridge: + "yes": Puint building: "yes": Edifici highway: @@ -481,6 +511,7 @@ fur: building: Edifici castle: Cjiscjel church: Glesie + fort: Fuart house: Cjase icon: Icone monument: Monument @@ -527,6 +558,9 @@ fur: tree: Arbul valley: Val volcano: Vulcan + water: Aghe + office: + architect: Architet place: airport: Aeropuart city: Citât @@ -627,6 +661,7 @@ fur: history: Storic home: lûc iniziâl home_tooltip: Va al lûc iniziâl + inbox_html: in jentrade %{count} inbox_tooltip: one: Al è un messaç di lei te pueste in jentrade other: A son %{count} messaçs di lei te pueste in jentrade @@ -658,7 +693,6 @@ fur: user_diaries_tooltip: Viôt i diaris dai utents view: Viôt view_tooltip: Viôt la mape - welcome_user: Benvignût/de, %{user_link} welcome_user_link_tooltip: La tô pagjine utent wiki: Vichi wiki_title: Vichi dal progjet @@ -761,7 +795,7 @@ fur: header: "%{from_user} ti à mandât un messaç su OpenStreetMap cun sogjet %{subject}:" hi: Mandi %{to_user}, signup_confirm: - subject: "[OpenStreetMap] Conferme la tô direzion di pueste eletroniche" + subject: "[OpenStreetMap] Benvignût in OpenStreetMap" signup_confirm_html: introductory_video: Tu puedis viodi un %{introductory_video_link}. more_videos: A son %{more_videos_link}. @@ -787,8 +821,17 @@ fur: submit: Regjistre title: Regjistre une gnove aplicazion show: + confirm: Sêstu sigûr? edit: Cambie i detais title: Detais OAuth par {app_name} + redaction: + edit: + description: Descrizion + show: + confirm: Sêstu sigûr? + description: "Descrizion:" + update: + flash: Cambiaments salvâts. site: edit: anon_edits_link_text: Discuvierç parcè che al è cussì. @@ -802,6 +845,8 @@ fur: index: js_1: Tu stâs doprant un sgarfadôr che nol supuarte JavaScript o ben JavaScript al è stât disativât. js_2: OpenStreetMap al dopre JavaScript par mostrâ la sô mape. + license: + copyright: Copyright di OpenStreetMap e dai siei colaboradôrs, sot di une licence vierte permalink: Leam permanent remote_failed: Cambiament falît - siguriti che JOSM o Merkaartor a sedin inviâts e la opzion pal remote control e sedi ativade shortlink: Leam curt @@ -844,6 +889,23 @@ fur: - tram tunnel: Rie a trats = galarie unsurfaced: Strade blancje + markdown_help: + alt: Test alternatîf + first: Prin element + heading: Titul + headings: Intestazions + image: Figure + link: Leam + ordered: Liste ordenade + second: Secont element + subheading: Sottitul + text: Test + title_html: Analizât cun Markdown + unordered: Liste no ordenade + url: URL + richtext_area: + edit: Cambie + preview: Anteprime search: search: Cîr search_help: "esemplis: 'Cividât', 'Vie Julie, Naiarêt', 'CB2 5AQ', o se no 'post offices near Gurize' altris esemplis..." @@ -946,6 +1008,9 @@ fur: 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. + gravatar: + gravatar: Dopre Gravatar + link text: ce isal chest? home location: "Lûc iniziâl:" image: "Figure:" image size hint: (figuris cuadris di almancul 100x100 a van miôr) @@ -1052,6 +1117,8 @@ fur: title: Password pierdude make_friend: already_a_friend: Tu sês za amì di %{name}. + button: Zonte ai amîs + heading: Zontâ %{user} ai amîs? success: "%{name} al è cumò to amì." new: confirm email address: "Conferme direzion pueste:" @@ -1105,9 +1172,10 @@ fur: view: add as friend: zonte ai amîs ago: (%{time_in_words_ago} indaûr) - block_history: viôt i blocs ricevûts + block_history: blocs ricevûts blocks by me: blocs aplicâts di me blocks on me: blocs su di me + comments: coments confirm: Conferme confirm_user: conferme chest utent create_block: bloche chest utent @@ -1129,7 +1197,8 @@ fur: latest edit: "Ultin cambiament %{ago}:" m away: "%{count}m di distance" mapper since: "Al mape dai:" - moderator_history: viôt i blocs ricevûts + moderator_history: blocs aplicâts + my comments: i mei coments my diary: il gno diari my edits: miei cambiaments my settings: mês impostazions diff --git a/config/locales/gl.yml b/config/locales/gl.yml index beca09a3e..f5048e6db 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -168,7 +168,7 @@ gl: way: camiño paging_nav: of: de - showing_page: Mostrando a páxina + showing_page: páxina redacted: message_html: A versión %{version} deste %{type} non se pode mostrar tal como foi redactada. Consulte %{redaction_link} para obter máis detalles. redaction: Redacción %{id} @@ -208,7 +208,7 @@ gl: manually_select: Escoller manualmente unha zona distinta object_list: api: Obter esta área desde a API - back: Mostrar a lista de obxectos + back: Volver á lista de obxectos details: Detalles heading: Lista de obxectos history: @@ -250,8 +250,8 @@ gl: way_title: "Camiño: %{way_name}" way_details: also_part_of: - one: tamén parte do camiño %{related_ways} - other: tamén parte dos camiños %{related_ways} + one: parte do camiño %{related_ways} + other: parte dos camiños %{related_ways} nodes: "Nodos:" part_of: "Parte de:" way_history: @@ -271,7 +271,7 @@ gl: changeset_paging_nav: next: Seguinte » previous: « Anterior - showing_page: Mostrando a páxina %{page} + showing_page: Páxina %{page} changesets: area: Zona comment: Comentario @@ -279,13 +279,13 @@ gl: saved_at: Gardado o user: Usuario list: - description: Cambios recentes + description: Examinar os cambios recentes feitos no mapa description_bbox: Conxuntos de cambios en %{bbox} description_friend: Conxuntos de cambios dos seus amigos description_nearby: Conxuntos de cambios dos usuarios de lugares próximos description_user: Conxuntos de cambios por %{user} description_user_bbox: Conxuntos de cambios por %{user} en %{bbox} - empty_anon_html: Aínda non se fixo ningunha edición + empty_anon_html: Aínda non se fixo ningunha edición. empty_user_html: Semella que aínda non fixo ningunha edición. Para comezar, bote unha ollada á guía para principiantes. heading: Conxuntos de cambios heading_bbox: Conxuntos de cambios @@ -353,7 +353,7 @@ gl: newer_entries: Entradas máis novas no_entries: Non hai entradas no diario older_entries: Entradas máis vellas - recent_entries: "Entradas recentes no diario:" + recent_entries: Entradas recentes no diario title: Diarios de usuarios title_friends: Diarios de amigos title_nearby: Diarios de usuarios de lugares próximos @@ -985,7 +985,6 @@ gl: user_diaries_tooltip: Ollar os diarios do usuario view: Ver view_tooltip: Ver o mapa - welcome_user: Benvido, %{user_link} welcome_user_link_tooltip: A súa páxina de usuario wiki: wiki wiki_title: Wiki de axuda do proxecto @@ -1417,6 +1416,7 @@ gl: visibility: "Visibilidade:" visibility_help: que significa isto? list: + description: Examinar as cargas recentes de pistas GPS empty_html: Aínda non hai nada por aquí. Cargue unha nova pista ou obteña máis información sobre as pistas GPS na páxina do wiki. public_traces: Pistas GPS públicas public_traces_from: Pistas GPS públicas de %{user} @@ -1464,7 +1464,7 @@ gl: trace_paging_nav: newer: Pistas máis novas older: Pistas máis antigas - showing_page: Mostrando a páxina %{page} + showing_page: Páxina %{page} view: delete_track: Borrar esta pista description: "Descrición:" @@ -1568,8 +1568,8 @@ gl: heading: Usuarios hide: Agochar os usuarios seleccionados showing: - one: Mostrando a páxina "%{page}" (%{first_item} de %{items}) - other: Mostrando a páxina "%{page}" (%{first_item}-%{last_item} de %{items}) + one: Páxina %{page} (%{first_item} de %{items}) + other: Páxina %{page} (%{first_item}-%{last_item} de %{items}) summary: "%{name} creado desde %{ip_address} o %{date}" summary_no_ip: "%{name} creado o %{date}" title: Usuarios @@ -1631,7 +1631,7 @@ gl: button: Engadir como amigo failed: Houbo un erro ao engadir a %{name} como amigo. heading: Quere engadir a %{user} como amigo? - success: "%{name} xa é o seu amigo." + success: "%{name} xa é o seu amigo!" new: confirm email address: Confirmar o enderezo de correo electrónico confirm password: "Confirmar o contrasinal:" @@ -1720,10 +1720,10 @@ gl: diary: diario edits: edicións email address: "Enderezo de correo electrónico:" - friends_changesets: Explorar todos os conxuntos de cambios dos seus amigos - friends_diaries: Explorar todas as entradas de diario dos amigos + friends_changesets: conxuntos de cambios dos amigos + friends_diaries: entradas de diario dos amigos 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}. + if set location: Defina a súa localización na páxina de %{settings_link} para ollar usuarios de lugares próximos. km away: a %{count}km de distancia latest edit: "Última edición %{ago}:" m away: a %{count}m de distancia @@ -1735,8 +1735,8 @@ gl: my settings: os meus axustes my traces: as miñas pistas nearby users: Outros usuarios próximos - nearby_changesets: Explorar todos os conxuntos de cambios dos usuarios de lugares próximos - nearby_diaries: Explorar todas as entradas de diario dos usuarios de lugares próximos + nearby_changesets: conxuntos de cambios dos usuarios de lugares próximos + nearby_diaries: entradas de diario dos usuarios de lugares próximos new diary entry: nova entrada no diario no friends: Aínda non engadiu ningún amigo. no nearby users: Aínda non hai usuarios que estean situados na súa proximidade. @@ -1820,7 +1820,7 @@ gl: revoke: Revogar! revoker_name: Revogado por show: Mostrar - showing_page: Mostrando a páxina %{page} + showing_page: Páxina %{page} status: Estado period: one: 1 hora diff --git a/config/locales/he.yml b/config/locales/he.yml index b24dbfba8..3f381252c 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -995,7 +995,6 @@ he: user_diaries_tooltip: צפייה ביומני המשתמש view: תצוגה view_tooltip: לצפייה במפה - welcome_user: ברוך בואך, %{user_link} welcome_user_link_tooltip: דף המשתמש שלך wiki: ויקי wiki_title: אתר ויקי עבור המיזם diff --git a/config/locales/hr.yml b/config/locales/hr.yml index 8ee52b0b6..7aee1236e 100644 --- a/config/locales/hr.yml +++ b/config/locales/hr.yml @@ -888,7 +888,6 @@ hr: user_diaries_tooltip: Prikaži korisničke dnevnike view: Karta view_tooltip: Pogledaj na karti - welcome_user: DobrodoÅ¡li, %{user_link} welcome_user_link_tooltip: Tvoja korisnička stranica wiki: Wiki wiki_title: Wiki stranice projekta diff --git a/config/locales/hsb.yml b/config/locales/hsb.yml index 0d82e6db2..c694d52ef 100644 --- a/config/locales/hsb.yml +++ b/config/locales/hsb.yml @@ -997,7 +997,6 @@ hsb: user_diaries_tooltip: Wužiwarske dźeniki čitać view: Karta view_tooltip: Kartu pokazać - welcome_user: Witaj, %{user_link} welcome_user_link_tooltip: Twoja wužiwarska strona wiki: Wiki wiki_title: Wikisydło za projekt diff --git a/config/locales/hu.yml b/config/locales/hu.yml index a56ea260c..a87c5dada 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -986,7 +986,6 @@ hu: user_diaries_tooltip: Felhasználói naplók megtekintése view: Térkép view_tooltip: Térkép megjelenítése - welcome_user: Üdvözlünk %{user_link} welcome_user_link_tooltip: Felhasználói oldalad wiki: wiki wiki_title: A projekt wiki oldala diff --git a/config/locales/ia.yml b/config/locales/ia.yml index 597ae70a6..1c6bef350 100644 --- a/config/locales/ia.yml +++ b/config/locales/ia.yml @@ -985,7 +985,6 @@ ia: user_diaries_tooltip: Leger diarios de usatores view: Vider view_tooltip: Vider le carta - welcome_user: Benvenite, %{user_link} welcome_user_link_tooltip: Tu pagina de usator wiki: Wiki wiki_title: Sito wiki pro le projecto diff --git a/config/locales/id.yml b/config/locales/id.yml index 4424d644c..91bbcda48 100644 --- a/config/locales/id.yml +++ b/config/locales/id.yml @@ -947,7 +947,6 @@ id: user_diaries_tooltip: Lihat catatan harian pengguna view: Tampilkan view_tooltip: Tampilkan peta - welcome_user: Selamat Datang, %{user_link} welcome_user_link_tooltip: Halaman Anda wiki: Wiki wiki_title: Situs wiki untuk proyek diff --git a/config/locales/is.yml b/config/locales/is.yml index ea3aa08a5..37314aec3 100644 --- a/config/locales/is.yml +++ b/config/locales/is.yml @@ -616,7 +616,6 @@ is: user_diaries_tooltip: Sjá blogg notenda view: Kort view_tooltip: Kortasýn - welcome_user: Hæ %{user_link} welcome_user_link_tooltip: Notandasíðan þín license_page: foreign: diff --git a/config/locales/it.yml b/config/locales/it.yml index c96f365fd..09fe68139 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -180,7 +180,7 @@ it: way: percorso paging_nav: of: di - showing_page: Visualizzata la pagina + showing_page: pagina redacted: message_html: La versione %{version} di questo %{type} non può essere mostrata in quanto è stata redatta. Per favore, fai riferimento a %{redaction_link} per i dettagli. redaction: Redazione %{id} @@ -220,7 +220,7 @@ it: manually_select: Seleziona manualmente un'area differente object_list: api: Ottieni quest'area dalle API - back: Visualizza la lista degli oggetti + back: Ritorna all'elenco degli oggetti details: Dettagli heading: Lista degli oggetti history: @@ -262,8 +262,8 @@ it: way_title: "Percorso: %{way_name}" way_details: also_part_of: - one: anche parte del percorso %{related_ways} - other: anche parte dei percorsi %{related_ways} + one: parte del percorso %{related_ways} + other: parte dei percorsi %{related_ways} nodes: "Nodi:" part_of: "Parte di:" way_history: @@ -283,7 +283,7 @@ it: changeset_paging_nav: next: Successivo » previous: « Precedente - showing_page: Visualizzata la pagina %{page} + showing_page: Pagina %{page} changesets: area: Area comment: Commento @@ -297,7 +297,7 @@ it: description_nearby: Gruppi di modifiche da parte di utenti nelle vicinanze description_user: Modifiche dell'utente %{user} description_user_bbox: Gruppi di modifiche dell'utente %{user} all'interno di %{bbox} - empty_anon_html: Non sono state fatte modifiche ancora + empty_anon_html: Non sono state fatte modifiche ancora. empty_user_html: Sembra che tu non abbia mai fatto modifiche ancora. Per iniziare, controlla la guida per principianti. heading: Gruppi di modifiche heading_bbox: Gruppi di modifiche @@ -365,7 +365,7 @@ it: newer_entries: Voci più recenti no_entries: Nessuna voce nel diario older_entries: Voci più vecchie - recent_entries: "Voci del diario recenti:" + recent_entries: Voci del diario recenti title: Diari degli utenti title_friends: Diari degli amici title_nearby: Diari degli utenti nelle vicinanze @@ -997,7 +997,6 @@ it: user_diaries_tooltip: Visualizza diari utente view: Visualizza view_tooltip: Visualizza la mappa - welcome_user: Benvenuto, %{user_link} welcome_user_link_tooltip: Pagina utente personale wiki: Wiki wiki_title: Wiki del progetto @@ -1476,7 +1475,7 @@ it: trace_paging_nav: newer: Tracce più recenti older: Tracce più vecchie - showing_page: Visualizzata la pagina %{page} + showing_page: Pagina %{page} view: delete_track: Elimina questo tracciato description: "Descrizione:" @@ -1642,7 +1641,7 @@ it: button: Aggiungi agli amici failed: Spiacenti, non è stato possibile aggiungere %{name} come un amico. heading: Aggiungere %{user} agli amici? - success: "%{name} è ora tuo amico." + success: "%{name} è ora tuo amico!" new: confirm email address: "Conferma indirizzo email:" confirm password: "Conferma password:" @@ -1711,7 +1710,7 @@ it: you need to accept or decline: Si prega di leggere e poi accettare o rifiutare i nuovi termini di contribuzione per continuare. view: activate_user: attiva questo utente - add as friend: aggiungi come amico + add as friend: aggiungi amico ago: (%{time_in_words_ago} fa) block_history: blocchi ricevuti blocks by me: blocchi applicati da me @@ -1752,7 +1751,7 @@ it: no friends: Non ci sono ancora amici. no nearby users: Non ci sono ancora altri utenti che ammettono di mappare nelle vicinanze. oauth settings: impostazioni oauth - remove as friend: rimuovi come amico + remove as friend: rimuovi amico role: administrator: Questo utente è un amministratore grant: @@ -1831,7 +1830,7 @@ it: revoke: Revoca! revoker_name: Revocato da show: Mostra - showing_page: Visualizzata la pagina %{page} + showing_page: Pagina %{page} status: Stato period: one: 1 ora diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 7000dcb58..e8e4c7c28 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -176,7 +176,7 @@ ja: way: ウェイ paging_nav: of: / - showing_page: ページ表示 + showing_page: ページ redacted: message_html: この %{type} の %{version} 版は、改訂されたため表示できません。詳細は %{redaction_link} をご覧ください。 redaction: 改訂 %{id} @@ -216,7 +216,7 @@ ja: manually_select: ドラッグして別の領域を選択 object_list: api: API でこの領域を取得 - back: オブジェクト一覧を表示 + back: オブジェクト一覧に戻る details: 詳細 heading: オブジェクト一覧 history: @@ -257,7 +257,7 @@ ja: way_title: "ウェイ: %{way_name}" way_details: also_part_of: - other: ウェイ %{related_ways} の一部でもあります + other: ウェイ %{related_ways} の一部 nodes: "ノード:" part_of: "以下の一部:" way_history: @@ -285,13 +285,13 @@ ja: saved_at: 保存日時 user: ユーザー list: - description: 最近の変更 + description: 地図への最近の変更を参照 description_bbox: "%{bbox} の範囲内の変更セット" description_friend: 友達による変更セット - description_nearby: 周辺のユーザによる変更セット + description_nearby: 周辺のユーザーによる変更セット description_user: "%{user} による変更セット" description_user_bbox: "%{bbox} の範囲内の %{user} による変更セット" - empty_anon_html: まだ編集が行われていません + empty_anon_html: まだ編集されていません。 empty_user_html: まだ何も編集していないようですね。初心者ガイド をチェックして始めましょう。 heading: 変更セット heading_bbox: 変更セット @@ -359,7 +359,7 @@ ja: newer_entries: 以降のエントリ no_entries: 日記エントリはありません older_entries: 以前のエントリ - recent_entries: "最近の日記エントリ:" + recent_entries: 最近の日記エントリ title: ユーザーの日記 title_friends: 友達の日記 title_nearby: 周辺のユーザーの日記 @@ -987,7 +987,6 @@ ja: user_diaries_tooltip: ユーザーの日記を閲覧する view: 閲覧 view_tooltip: 地図を閲覧 - welcome_user: ようこそ、%{user_link} さん welcome_user_link_tooltip: 自分のユーザー ページ wiki: ウィキ wiki_title: プロジェクトのウィキサイト @@ -997,12 +996,19 @@ ja: text: 翻訳したページと、%{english_original_link} の間で競合が発生しました。英語版の内容が優先されるでしょう。 title: この翻訳について legal_babble: + contributors_at_html: "オーストリア: Stadt Wien (ライセンス CC BY)、Land Vorarlberg、Land Tirol (ライセンス CC-BY AT with amendments) によるデータを含みます。" + contributors_ca_html: "カナダ: GeoBase®ã€GeoGratis (© Department of Natural Resources Canada)、CanVec (© Department of Natural Resources Canada)、StatCan (Geography Division, Statistics Canada) によるデータを含みます。" + contributors_fr_html: "フランス: Direction Générale des Impôts によるデータを含みます。" + contributors_gb_html: "イギリス: 陸地測量データ © Crown copyright and database right 2010-12 を含みます。" contributors_intro_html: 協力者は数千人もの個人です。それに加え、国立の地図作成組織や、次のようなその他の情報源による公開できるライセンスによるデータを含みます。 + contributors_nl_html: "オランダ: © AND データ、2007 (www.and.com) を含みます。" + contributors_nz_html: "ニュージーランド: Land Information New Zealand によるデータを含みます。Crown が著作権を保持します。" contributors_title_html: 協力者 + contributors_za_html: "南アフリカ: Chief Directorate: National Geo-Spatial Information, State によるデータを含み、著作権を保持します。" credit_title_html: OpenStreetMap のクレジット表記の仕方 - infringement_1_html: OSMの協力者は、著作権者から明確な許諾を得ずに、著作権のある情報源(例:Google Mapsや印刷された地図)からデータを持ち込まないよう注意するものとします。 + infringement_1_html: "OSM の協力者は、著作権者から明確な許諾を得ずに、著作権のある情報源 (例: Google マップや印刷された地図) からデータを持ち込まないよう注意するものとします。" infringement_title_html: 著作権侵害 - intro_1_html: "OpenStreetMap はオープンデータであり、Open Data\nCommons Open Database License(ODbL)の下にライセンスされています。" + intro_1_html: "OpenStreetMap はオープンデータであり、Open Data\nCommons Open Database License (ODbL) の下にライセンスされています。" title_html: 著作権とライセンス native: mapping_link: マッピングを開始 @@ -1438,11 +1444,11 @@ ja: older: 以前のトレース showing_page: ページ %{page} view: - delete_track: このトラックを削除 + delete_track: このトレースを削除 description: "詳細:" download: ダウンロード edit: 編集 - edit_track: このトラックを編集 + edit_track: このトレースを編集 filename: "ファイル名:" heading: トレース %{name} の表示 map: 地図 @@ -1539,8 +1545,8 @@ ja: heading: ユーザー hide: 選択したユーザーを隠す showing: - one: ページ %{page} (%{items} 件中 %{first_item} 件目) を表示中 - other: ページ %{page} (%{items} 件中 %{first_item}-%{last_item} 件目を表示中) + one: ページ %{page} (%{items} 件中 %{first_item} 件目) + other: ページ %{page} (%{items} 件中 %{first_item}-%{last_item} 件目) summary: "%{name} は %{ip_address}から%{date}に作成されました。" summary_no_ip: "%{name} は%{date}に作成されました。" title: ユーザー @@ -1602,7 +1608,7 @@ ja: button: 友達に追加 failed: "%{name} を友達と登録できませんでした。" heading: "%{user} を友達に追加しますか?" - success: "%{name} はあなたの友達になりました。" + success: "%{name} と友達になりました!" new: confirm email address: "メール アドレスの確認:" confirm password: "パスワードの確認:" @@ -1613,10 +1619,11 @@ ja: email address: "メール アドレス:" fill_form: 以下のフォームを埋めてください。アカウントを有効にするためのメールをお送りします。 flash create success message: "%{email} に確認メッセージを送信しました。メールを確認してアカウントを有効にし次第、編集を開始できます。

    あなたの指定したアドレスに確認メールが届くまであなたはログインすることはできません。メールボックスでスパムフィルタを使っているときには webmaster@openstreetmap.org からの確認メールを受信できるようホワイトリストを設定してください。" + flash welcome: 登録ありがとうございます。歓迎メッセージと使い始めるためのヒントを %{email} にお送りしました。 heading: ユーザー アカウントの作成 license_agreement: アカウントを確認するときには contributor terms に同意する必要があります。 no_auto_account_create: 残念ながら、現在、自動ではアカウントを作成できません。 - not displayed publicly: 非公開です (詳細は プライバシー ポリシーを参照してください) + not displayed publicly: 非公開です (詳細は プライバシー ポリシーを参照してください) openid: "%{logo} OpenID:" openid association: "

    あなたの OpenID は、まだ OpenStreetMap のどのアカウントとも関連付けられていません。

    \n
      \n
    • OpenStreetMap が初めての場合は、下のフォームで新規アカウントを作成してください。
    • \n
    • \n 既にアカウントを持っている場合は、あなたのユーザー名とパスワードでログインしてください。\n ログイン後、ユーザー設定であなたの OpenID と関連付けることができます。\n
    • \n
    " openid no password: OpenID ではパスワードは不要ですが、特殊なツール/サーバーでは必要な場合があります。 @@ -1670,7 +1677,7 @@ ja: you need to accept or decline: 続行するには新しい投稿規約を読んで同意または拒否してください。 view: activate_user: このユーザーを有効にする - add as friend: 友達に追加 + add as friend: 友達を追加 ago: (%{time_in_words_ago}前) block_history: 受けたブロック blocks by me: 自分が実行したブロック @@ -1690,8 +1697,8 @@ ja: diary: 日記 edits: 編集 email address: "メール アドレス:" - friends_changesets: 友達によるすべての変更セットを参照 - friends_diaries: 友達の日記エントリをすべて参照 + friends_changesets: 友達による変更セット + friends_diaries: 友達の日記エントリ hide_user: このユーザーを隠す if set location: 活動地域を指定すると、この下に周辺の地図と、近くで活動するマッパーが表示されます。%{settings_link} から設定をしてください。 km away: 距離 %{count} km @@ -1705,8 +1712,8 @@ ja: my settings: 設定 my traces: 自分のトレース nearby users: 周辺のその他のユーザー - nearby_changesets: ユーザーの周辺のすべての変更セットを参照 - nearby_diaries: ユーザーの周辺のすべての日記エントリを参照 + nearby_changesets: 周辺のユーザーの変更セット + nearby_diaries: 周辺のユーザーの日記エントリ new diary entry: 新しい日記エントリ no friends: あなたはまだ誰も友達として登録していません。 no nearby users: あなたの活動地域周辺に他のマッパーはいないようです。 @@ -1814,7 +1821,7 @@ ja: time_past: "%{time}前に終了しました" title: "%{block_by} が %{block_on} をブロックしました" update: - only_creator_can_edit: このブロックを編集するにはモデレータ権限が必要です。 + only_creator_can_edit: このブロックを編集するにはモデレーター権限が必要です。 success: ブロックを更新しました。 user_role: filter: diff --git a/config/locales/ka.yml b/config/locales/ka.yml index ca68b07f7..ed098cb87 100644 --- a/config/locales/ka.yml +++ b/config/locales/ka.yml @@ -791,7 +791,6 @@ ka: user_diaries_tooltip: მომხმარებლების დღიურების ნახვა view: იხილეთ view_tooltip: რუკის ხილვა - welcome_user: კეთილი იყოს თქვენი მობრძანება, %{user_link} welcome_user_link_tooltip: თქვენი მომხმარებლის გვერდი wiki: ვიკი license_page: diff --git a/config/locales/ko.yml b/config/locales/ko.yml index e039595bb..e6b8235a5 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -165,7 +165,7 @@ ko: way: 길 paging_nav: of: 중 - showing_page: 페이지 보기 + showing_page: 페이지 redacted: message_html: 이 %{type}의 %{version} 버전은 수정한 버전으로 볼 수 없습니다. 자세한 내용은 %{redaction_link}(을)를 참고하세요. redaction: 개정 %{id} @@ -205,7 +205,7 @@ ko: manually_select: 다른 지역 선택 object_list: api: API로부터 이 지역 회수 - back: 개체 목록 표시 + back: 개체 목록으로 돌아가기 details: 자세한 사항 heading: 개체 목록 history: @@ -247,8 +247,8 @@ ko: 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: @@ -268,7 +268,7 @@ ko: changeset_paging_nav: next: 다음 » previous: « 이전 - showing_page: 페이지 %{page} 보는 중 + showing_page: 페이지 %{page} changesets: area: 지역 comment: 설명 @@ -276,13 +276,13 @@ ko: saved_at: 저장 시간 user: 사용자 list: - description: 최근 바뀜 + description: 지도에 최근 기여 찾아보기 description_bbox: "%{bbox} 안에서 바뀜집합" description_friend: 내 친구의 바뀜집합 description_nearby: 근처 사용자의 바뀜집합 description_user: "%{user} 사용자의 바뀜집합" description_user_bbox: "%{bbox} 안에서 %{user} 사용자의 바뀜집합" - empty_anon_html: 아직 수정한 사항이 없습니다 + empty_anon_html: 아직 편집이 없습니다. empty_user_html: 아직 어떠한 편집을 하지 않은 것으로 보입니다. 시작하려면, 초보자 가이드를 참고하세요. heading: 바뀜집합 heading_bbox: 바뀜집합 @@ -320,7 +320,7 @@ ko: confirm: 확인 edit_link: 이 항목 수정 hide_link: 이 항목 숨기기 - posted_by: "%{link_user} 사용자가 %{language_link}에서 %{created}에 게시함" + posted_by: "%{link_user} 사용자가 %{language_link}로 %{created}에 게시함" reply_link: 이 항목에 답변하기 edit: body: "내용:" @@ -335,13 +335,13 @@ ko: use_map_link: 지도 사용 feed: all: - description: OpenStreetMap의 사용자에서 최근 일지 항목 + description: OpenStreetMap의 사용자의 최근 일지 항목 title: OpenStreetMap 일지 항목 language: description: "%{language_name}로 된 OpenStreetMap 최근 일지 항목" title: "%{language_name}로 된 OpenStreetMap 일지 항목" user: - description: "%{user} 사용자에서 최근 OpenStreetMap 일지 항목" + description: "%{user} 사용자의 최근 OpenStreetMap 일지 항목" title: "%{user} 사용자에 대한 OpenStreetMap 일지 항목" list: in_language_title: "%{language} 일지 항목" @@ -350,7 +350,7 @@ ko: newer_entries: 다음 항목 no_entries: 일지 항목이 없습니다 older_entries: 이전 항목 - recent_entries: "최근 일지 항목:" + recent_entries: 최근 일지 항목 title: 사용자 일지 title_friends: 친구의 일지 title_nearby: 근처 사용자의 일지 @@ -981,7 +981,6 @@ ko: user_diaries_tooltip: 사용자 일지 보기 view: 보기 view_tooltip: 지도 보기 - welcome_user: "%{user_link}님 환영합니다." welcome_user_link_tooltip: 내 사용자 문서 wiki: 위키 wiki_title: 프로젝트에 대한 위키 사이트 @@ -1097,10 +1096,10 @@ ko: delete_button: 삭제 notifier: diary_comment_notification: - footer: "%{readurl}에서도 댓글을 확인할 수 있습니다. %{commenturl}에서 댓글을 남기거나 %{replyurl}에서 답글을 남길 수 있습니다." - header: "%{from_user} 님이 %{subject} 제목의 OpenStreetMap 일지 항목에 댓글을 남겼습니다:" + footer: "%{readurl}에서도 덧글을 확인할 수 있습니다. %{commenturl}에서 덧글을 남기거나 %{replyurl}에서 답글을 남길 수 있습니다." + header: "%{from_user} 님이 %{subject} 제목의 OpenStreetMap 일지 항목에 덧글을 남겼습니다:" hi: "%{to_user}님 안녕하세요." - subject: "[OpenStreetMap] %{user} 님이 당신의 일지 항목에 댓글을 남겼습니다." + subject: "[OpenStreetMap] %{user} 님이 당신의 일지 항목에 덧글을 남겼습니다." email_confirm: subject: "[OpenStreetMap] 이메일 주소 확인" email_confirm_html: @@ -1414,6 +1413,7 @@ ko: visibility: "공개 여부:" visibility_help: 이게 무슨 의미입니까? list: + description: 최근 GPS 추적 올리기 찾아보기 empty_html: 여기에 아직 아무것도 없습니다. 새 추적을 올리거나 위키 문서에 GPS 추적에 대한 자세한 내용을 알아보세요. public_traces: 공개 GPS 추적 public_traces_from: "%{user} 사용자의 공중 GPS 추적" @@ -1461,7 +1461,7 @@ ko: trace_paging_nav: newer: 다음 추적 older: 이전 추적 - showing_page: 페이지 %{page} 보는 중 + showing_page: 페이지 %{page} view: delete_track: 이 추적 삭제 description: "설명:" @@ -1564,8 +1564,8 @@ ko: heading: 사용자 hide: 선택한 사용자 숨기기 showing: - one: 페이지 %{page} 보는 중 (%{items} 중 %{first_item}) - other: 페이지 %{page} 보는 중 (%{items} 중 %{first_item}-%{last_item}) + one: 페이지 %{page} (%{items} 중 %{first_item}) + other: 페이지 %{page} (%{items} 중 %{first_item}-%{last_item}) summary: "%{name}(이)가 %{date}에 %{ip_address}에서 만들어짐" summary_no_ip: "%{name}(이)가 %{date}에 만들어짐" title: 사용자 @@ -1627,7 +1627,7 @@ ko: button: 친구 추가 failed: 죄송합니다, %{name} 사용자를 친구로 추가하는 데 실패했습니다. heading: "%{user} 사용자를 친구로 추가할까요?" - success: "%{name} 사용자는 친구입니다." + success: "%{name} 사용자는 이제 친구입니다!" new: confirm email address: "이메일 주소 확인:" confirm password: "비밀번호 확인:" @@ -1645,7 +1645,7 @@ ko: not displayed publicly: 공개적으로 보여지지 않습니다 (개인정보 정책을 참고하세요) openid: "%{logo} OpenID:" openid association: "

    OpenID는 아직 OpenStreetMap 계정과 연결되지 않았습니다.

    \n
      \n
    • OpenStreetMap에 새로 가입하려면 아래의 양식을 사용하여 새 계정을 만드세요.
    • \n
    • \n 이미 계정이 있다면 사용자 이름과 비밀번호를 사용해 로그인하고 나서\n 사용자 설정에서 OpenID와 계정을 연결할 수 있습니다.\n
    • \n
    " - openid no password: OpenID로 비밀번호가 필요하지 않지만 몇가지 추가 도구나 서버는 여전히 비밀번호가 필요할 수 있습니다. + openid no password: OpenID로 비밀번호가 필요하지 않지만 몇 가지 추가 도구나 서버는 여전히 비밀번호가 필요할 수 있습니다. password: "비밀번호:" terms accepted: 새 기여자 약관에 동의하셔서 감사합니다! terms declined: 새 기여자 약관에 동의하지 않은 것으로 결정했기에 죄송합니다. 자세한 정보에 대해서는 이 위키 문서를 참고하세요. @@ -1657,11 +1657,11 @@ ko: title: 이러한 사용자는 없습니다 popup: friend: 친구 - nearby mapper: 인근 매퍼 + nearby mapper: 근처 매퍼 your location: 내 위치 remove_friend: button: 친구 제거 - heading: "%{user} 사용자를 친구로 제거할까요?" + heading: "%{user} 사용자를 친구 제거할까요?" not_a_friend: "%{name} 사용자는 친구가 아닙니다." success: "%{name} 사용자를 친구에서 제거했습니다." reset_password: @@ -1716,10 +1716,10 @@ ko: diary: 일지 edits: 편집 email address: "이메일 주소:" - friends_changesets: 친구의 모든 바뀜집합 찾아보기 - friends_diaries: 친구의 모든 일지 항목 찾아보기 + friends_changesets: 친구의 바뀜집합 + friends_diaries: 친구의 일지 항목 hide_user: 이 사용자를 숨기기 - if set location: 위치를 설정하면 예쁜 지도와 물건이 여기에 나타납니다. %{settings_link} 페이지에 생활 주소를 설정할 수 있습니다. + if set location: 근처 사용자를 보려면 %{settings_link} 페이지에 생활 주소를 설정하세요. km away: "%{count}km 거리" latest edit: "최근 편집 %{ago}:" m away: "%{count}m 거리" @@ -1731,8 +1731,8 @@ ko: my settings: 내 설정 my traces: 내 발자취 nearby users: 기타 근처 사용자 - nearby_changesets: 인근 사용자의 모든 바뀜집합 찾아보기 - nearby_diaries: 인근 사용자의 모든 일지 항목 찾아보기 + nearby_changesets: 근처 사용자의 바뀜집합 + nearby_diaries: 근처 사용자의 일지 항목 new diary entry: 새 일지 항목 no friends: 아직 어떠한 친구도 추가하지 않았습니다. no nearby users: 아직 근처에 매핑을 인정하는 다른 사용자가 없습니다. @@ -1816,7 +1816,7 @@ ko: revoke: 철회! revoker_name: 철회자 show: 보기 - showing_page: 페이지 %{page} 보는 중 + showing_page: 페이지 %{page} status: 상태 period: one: 1시간 diff --git a/config/locales/lb.yml b/config/locales/lb.yml index 5f8acb32a..88516e182 100644 --- a/config/locales/lb.yml +++ b/config/locales/lb.yml @@ -445,7 +445,6 @@ lb: user_diaries: Benotzer Bloggen view: Weisen view_tooltip: Kaart weisen - welcome_user: Wëllkomm, %{user_link} welcome_user_link_tooltip: Är Benotzersäit wiki: Wiki license_page: diff --git a/config/locales/lt.yml b/config/locales/lt.yml index d2938e20b..da2144dab 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -962,7 +962,6 @@ lt: user_diaries_tooltip: Peržiūrėti naudotojų dienoraščius view: Žiūrėti view_tooltip: Žiūrėti žemėlapį - welcome_user: Sveiki, %{user_link} welcome_user_link_tooltip: Jūsų naudotojo puslapis wiki: Wiki wiki_title: Projekto wiki svetainė diff --git a/config/locales/lv.yml b/config/locales/lv.yml index 576341b14..5e6597981 100644 --- a/config/locales/lv.yml +++ b/config/locales/lv.yml @@ -991,7 +991,6 @@ lv: user_diaries_tooltip: Skatīt lietotāju dienasgrāmatas view: Skatīt view_tooltip: Skatīti karti - welcome_user: Laipni lūdzam, %{user_link} welcome_user_link_tooltip: Tava lietotāja lapa wiki: Viki wiki_title: Projekta viki vietne diff --git a/config/locales/mk.yml b/config/locales/mk.yml index 77420da25..bf45976e0 100644 --- a/config/locales/mk.yml +++ b/config/locales/mk.yml @@ -167,7 +167,7 @@ mk: way: пат paging_nav: of: од - showing_page: Приказ на страница + showing_page: страница redacted: message_html: Верзијата %{version} на оваа %{type} не може да се прикаже бидејќи е редактирана. Повеќе на %{redaction_link}. redaction: Редакција %{id} @@ -207,7 +207,7 @@ mk: manually_select: Рачно изберете друга површина object_list: api: Retrieve this area from the API - back: Прикажи список на предмети + back: Назад на списокот на предмети details: Подробно heading: Список на предмети history: @@ -249,8 +249,8 @@ mk: 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: @@ -262,7 +262,6 @@ mk: changeset: anonymous: Анонимен big_area: (голема) - id: бр. %{id} no_comment: (нема) no_edits: (нема уредувања) show_area_box: прикажи рамка на површина @@ -271,7 +270,7 @@ mk: changeset_paging_nav: next: Следно » previous: « Претходно - showing_page: Прикажана е страницата %{page} + showing_page: Страница %{page} changesets: area: Површина comment: Коментар @@ -279,13 +278,13 @@ mk: saved_at: Зачувано во user: Корисник list: - description: Скорешни промени + description: Прелистување на скорешните промени на картата description_bbox: Измени во рамките на %{bbox} description_friend: Измени на ваши пријатели description_nearby: Измени од соседни корисници description_user: Измени на %{user} description_user_bbox: Измени на %{user} во рамките на %{bbox} - empty_anon_html: Сè уште нема уредувања + empty_anon_html: Сè уште нема уредувања. empty_user_html: Сè уште немате направено ниедно уредување. За да почнете, прво погледајте ги напатствијата за почетници. heading: Измени heading_bbox: Измени @@ -353,7 +352,7 @@ mk: newer_entries: Понови ставки no_entries: Нема дневнички ставки older_entries: Постари ставки - recent_entries: "Скорешни дневнички записи:" + recent_entries: Скорешни дневнички записи title: Дневници на корисници title_friends: Дневници на пријателите title_nearby: Дневници на соседните корисници @@ -989,7 +988,6 @@ mk: user_diaries_tooltip: Види кориснички дневници view: Карта view_tooltip: Види карта - welcome_user: Добредојде, %{user_link} welcome_user_link_tooltip: Ваша корисничка страница wiki: Вики wiki_title: Помошна страница за проектот @@ -1429,6 +1427,7 @@ mk: visibility_help: што значи ова? visibility_help_url: http://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces?uselang=mk list: + description: Прелистување на скороподигнати GPS-траги empty_html: Тука сè уште нема ништо. Подигнете нова трага или дознајте повеќе за GPS-трагите на нивната викстраница. public_traces: Јавни GPS-траги public_traces_from: Јавни GPS-траги од %{user} @@ -1478,7 +1477,7 @@ mk: trace_paging_nav: newer: Понови траги older: Постари траги - showing_page: Прикажана е страницата %{page} + showing_page: Страница %{page} view: delete_track: Избриши ја трагава description: "Опис:" @@ -1583,8 +1582,8 @@ mk: heading: Корисници hide: Скриј одбрани корисници showing: - one: Прикажана е страницата %{page} (%{first_item} од %{items}) - other: Прикажани се страниците %{page} (%{first_item}-%{last_item} од %{items}) + one: Страница %{page} (%{first_item} од %{items}) + other: Страница %{page} (%{first_item}-%{last_item} од %{items}) summary: "%{name} создадено од %{ip_address} на %{date}" summary_no_ip: "%{name} создадено на %{date}" title: Корисници @@ -1646,7 +1645,7 @@ mk: button: Додај како пријател failed: Жалам, не можев да го додадам корисникот %{name} како пријател. heading: Да го додадам корисникот %{user} како пријател? - success: Сега сте пријатели со %{name}. + success: Сега сте пријатели со %{name}! new: confirm email address: "Потврдете ја е-поштата:" confirm password: "Потврдете ја лозинката:" @@ -1718,7 +1717,7 @@ mk: you need to accept or decline: Прочитајте ги новите Услови за учество, а потоа согласете се или одбијте ги. view: activate_user: активирај го корисников - add as friend: додај како пријател + add as friend: додај во пријатели ago: (пред %{time_in_words_ago}) block_history: примени блокови blocks by me: извршени болокови @@ -1738,10 +1737,10 @@ mk: diary: дневник edits: уредувања email address: Е-пошта - friends_changesets: Сите измени на пријателите - friends_diaries: Прелистување на сите дневнички записи на пријателите + friends_changesets: измени на пријателите + friends_diaries: дневнички записи на пријателите hide_user: скриј го корисников - if set location: Ако ја наместите вашата местоположба, под ова ќе ви се појави убава карта и други работи. Матичната местоположба можете да си ја наместите на страницата %{settings_link}. + if set location: Задајте ја вашата местоположба на страницата %{settings_link} за да ги видите соседните корисници околу вас. km away: "%{count} км од вас" latest edit: "Последно уредување %{ago}:" m away: "%{count} м од вас" @@ -1753,8 +1752,8 @@ mk: my settings: мои прилагодувања my traces: мои траги nearby users: Други соседни корисници - nearby_changesets: Прелистување на сите измени на соседните корисници - nearby_diaries: Прелистување на сите дневнички записи на соседните корисници + nearby_changesets: измени на соседните корисници + nearby_diaries: дневнички записи на соседн. корисн. new diary entry: нова ставка во дневникот no friends: Сè уште немате додадено пријатели. no nearby users: Сè уште нема други корисници во вашата околина што признаваат дека работат на карти. @@ -1838,7 +1837,7 @@ mk: revoke: Поништи! revoker_name: "Поништил:" show: Прикажи - showing_page: Прикажана е страницата %{page} + showing_page: Страница %{page} status: Статус period: one: 1 час diff --git a/config/locales/ms.yml b/config/locales/ms.yml index 9d36abf18..895d26e5e 100644 --- a/config/locales/ms.yml +++ b/config/locales/ms.yml @@ -977,7 +977,6 @@ ms: user_diaries_tooltip: Lihat diari pengguna view: Lihat view_tooltip: Lihat peta - welcome_user: Selamat datang, %{user_link} welcome_user_link_tooltip: Laman pengguna anda wiki: Wiki wiki_title: Tapak wiki projek diff --git a/config/locales/nb.yml b/config/locales/nb.yml index 9a13057cc..3a0e445bf 100644 --- a/config/locales/nb.yml +++ b/config/locales/nb.yml @@ -1000,7 +1000,6 @@ nb: user_diaries_tooltip: Vis brukerens dagbok view: Vis view_tooltip: Vis kartet - welcome_user: Velkommen, %{user_link} welcome_user_link_tooltip: Din brukerside wiki: Wiki wiki_title: Wikinettsted for prosjektet diff --git a/config/locales/nds.yml b/config/locales/nds.yml index a66abe357..d31c5a3a1 100644 --- a/config/locales/nds.yml +++ b/config/locales/nds.yml @@ -517,7 +517,6 @@ nds: user_diaries_tooltip: Bruker-Dagböker wiesen view: ankieken view_tooltip: Koort wiesen - welcome_user: Willkamen, %{user_link} welcome_user_link_tooltip: Dien Brukersied wiki: Wiki license_page: diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 1478d3d30..9fe37eaa5 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -174,7 +174,7 @@ nl: way: weg paging_nav: of: van - showing_page: Bezig met weergeven van pagina + showing_page: pagina redacted: message_html: Versie %{version} van dit element van het type %{type} kan niet weergegeven worden omdat deze na redigering geblokkeerd is. Zie %{redaction_link} voor details. redaction: Redigering %{id} @@ -214,7 +214,7 @@ nl: manually_select: Handmatig een ander gebied selecteren object_list: api: Dit gebied via de API ophalen - back: Objectenlijst weergeven + back: Terug naar objectenlijst details: Details heading: Objectenlijst history: @@ -256,8 +256,8 @@ nl: way_title: "Weg: %{way_name}" way_details: also_part_of: - one: ook onderdeel van weg %{related_ways} - other: ook deel van ways %{related_ways} + one: onderdeel van %{related_ways} + other: onderdeel van %{related_ways} nodes: "Nodes:" part_of: "Onderdeel van:" way_history: @@ -285,13 +285,13 @@ nl: saved_at: Opgeslagen op user: Gebruiker list: - description: Recente wijzigingen + description: Recente bijdragen aan de kaart bekijken description_bbox: Wijzigingensets binnen %{bbox} description_friend: Wijzigingensets van uw vrienden description_nearby: Wijzigingensets door nabijgelegen gebruikers description_user: Wijzigingensets door %{user} description_user_bbox: Wijzigingensets door %{user} binnen %{bbox} - empty_anon_html: Nog geen bewerkingen gemaakt + empty_anon_html: Nog geen bewerkingen gemaakt. empty_user_html: U hebt nog geen bewerkingen gemaakt. Kijk eens naar de Beginnersgids. heading: Wijzigingensets heading_bbox: Wijzigingensets @@ -359,7 +359,7 @@ nl: newer_entries: Nieuwere berichten no_entries: Het dagboek is leeg older_entries: Oudere berichten - recent_entries: "Recente dagboekberichten:" + recent_entries: Recente dagboekberichten title: Gebruikersdagboeken title_friends: Dagboeken van vrienden title_nearby: Dagboeken van nabijgelegen gebruikers @@ -992,7 +992,6 @@ nl: user_diaries_tooltip: Gebruikersdagboeken bekijken view: Bekijken view_tooltip: Kaart bekijken - welcome_user: Welkom, %{user_link} welcome_user_link_tooltip: Uw gebruikerspagina wiki: wiki wiki_title: Wikisite voor het project @@ -1424,6 +1423,7 @@ nl: visibility: "Zichtbaarheid:" visibility_help: wat betekent dit? list: + description: Recente GPS-trackuploads bekijken empty_html: Hier is nog niets te zien. Upload een nieuwe trace of kom meer te weten over GPS tracen op de wikipagina. public_traces: Openbare GPS-traces public_traces_from: Openbare GPS-traces van %{user} @@ -1727,10 +1727,10 @@ nl: diary: dagboek edits: bewerkingen email address: "E-mailadres:" - friends_changesets: Alle wijzigingensets van vrienden bekijken - friends_diaries: Alle dagboekberichten van vrienden bekijken + friends_changesets: wijzigingensets van vrienden + friends_diaries: dagboekberichten van vrienden 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}. + if set location: Stel uw thuislocatie in via de pagina %{settings_link} om gebruikers in uw buurt te zien. km away: "%{count} km verwijderd" latest edit: "Laatste bewerking %{ago}:" m away: "%{count} m verwijderd" @@ -1742,8 +1742,8 @@ nl: my settings: mijn instellingen my traces: mijn traces nearby users: Andere dichtbijzijnde gebruikers - nearby_changesets: Alle wijzigingensets van nabijgelegen gebruikers bekijken - nearby_diaries: Alle dagboekberichten van nabijgelegen gebruikers bekijken + nearby_changesets: wijzigingensets van gebruikers in de buurt + nearby_diaries: dagboekberichten van gebruikers in de buurt new diary entry: nieuw dagboekbericht no friends: U hebt nog geen vrienden toegevoegd. no nearby users: Er zijn geen andere gebruikers die hebben aangegeven in de buurt te mappen. diff --git a/config/locales/nn.yml b/config/locales/nn.yml index 756cb9b83..3639118cd 100644 --- a/config/locales/nn.yml +++ b/config/locales/nn.yml @@ -181,7 +181,7 @@ nn: way: veg paging_nav: of: av - showing_page: Viser side + showing_page: side redacted: message_html: Versjon %{version} av denne %{type} kan ikkje visast fordi den er blitt maskert. Sjå %{redaction_link} for detaljar. redaction: Maskering %{id} @@ -222,7 +222,7 @@ nn: manually_select: Vel eit anna område manuelt object_list: api: Hent dette området frå API-et - back: Vis objektliste + back: Tilbake til objektlista details: Detaljar heading: Objektliste history: @@ -264,8 +264,8 @@ nn: way_title: "Veg: %{way_name}" way_details: also_part_of: - one: òg del av vegen %{related_ways} - other: òg del av vegane %{related_ways} + one: del av vegen %{related_ways} + other: del av vegane %{related_ways} nodes: "Nodar:" part_of: "Del av:" way_history: @@ -277,7 +277,6 @@ nn: changeset: anonymous: Anonym big_area: (stor) - id: "#%{id}" no_comment: (ingen) no_edits: (ingen redigeringar) show_area_box: vis boks for område @@ -286,7 +285,7 @@ nn: changeset_paging_nav: next: Neste » previous: « Forrige - showing_page: Viser side %{page} + showing_page: Side %{page} changesets: area: Område comment: Kommentar @@ -294,13 +293,13 @@ nn: saved_at: Lagra user: Brukar list: - description: Siste endringar + description: Vis siste bidrag til kartet description_bbox: Endringssett innanfor %{bbox} description_friend: Endringssett av venene dine description_nearby: Endringssett av næliggande brukarar description_user: Endringssett av %{user} description_user_bbox: Endringssett av %{user} innan %{bbox} - empty_anon_html: Ingen endringar endå + empty_anon_html: Ingen endringar endå. empty_user_html: Du har ikkje gjort nokre endringar endå. For å starte, sjå på Startveiledninga. heading: Endringssett heading_bbox: Endringssett @@ -311,7 +310,7 @@ nn: title: Endringssett title_bbox: Endringssett innanfor %{bbox} title_friend: Endringssett av venene dine - title_nearby: Endringssett av nærliggande brukarar + title_nearby: Endringssett av naboar title_user: Endringssett av %{user} title_user_bbox: Endringssett av %{user} innan %{bbox} timeout: @@ -368,10 +367,10 @@ nn: newer_entries: Nyare oppføringar no_entries: Ingen oppføringer i dagboka older_entries: Eldre oppføringar - recent_entries: "Nye oppføringer i dagboka:" + recent_entries: Nye oppføringer i dagboka title: Brukarane sine dagbøker title_friends: Dagbøkene til venene dine - title_nearby: Dagbøkene til nærliggande brukarar + title_nearby: Dagbøkene til naboar user_title: "%{user} si dagbok" location: edit: Rediger @@ -1009,7 +1008,6 @@ nn: user_diaries_tooltip: Vis brukaren si dagbok view: Vis view_tooltip: Vis kartet - welcome_user: Velkomen, %{user_link} welcome_user_link_tooltip: Din brukarside wiki: Wiki wiki_title: Wikinettstad for prosjektet @@ -1450,6 +1448,7 @@ nn: visibility_help: kva tyder dette? visibility_help_url: http://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces list: + description: Vis siste opplasta GPS loggar empty_html: Ingenting her endå. Last opp eit nytt spor eller lær å lage GPS spor på wiki sida. public_traces: Offentleg GPS-spor public_traces_from: Offentlege GPS-spor frå %{user} @@ -1499,7 +1498,7 @@ nn: trace_paging_nav: newer: Nyare spor older: Eldre spor - showing_page: Viser side %{page} + showing_page: Side %{page} view: delete_track: Slett dette sporet description: "Skildring:" @@ -1604,8 +1603,8 @@ nn: heading: Brukarar hide: Skjul valde brukarar showing: - one: Viser side %{page} (%{first_item} av %{items}) - other: Viser side %{page} (%{first_item}-%{last_item} av %{items}) + one: Side %{page} (%{first_item} av %{items}) + other: Sside %{page} (%{first_item}-%{last_item} av %{items}) summary: "%{name} oppretta frå %{ip_address} den %{date}" summary_no_ip: "%{name} oppretta %{date}" title: Brukarar @@ -1667,7 +1666,7 @@ nn: button: Legg til som ven failed: Klarte ikkje leggje til %{name} som ven. heading: Legg til %{user} som ein ven? - success: "%{name} er no venen din." + success: "!%{name} er no din ven!" new: confirm email address: "Stadfest e-postadresse:" confirm password: "Stadfest passord:" @@ -1739,7 +1738,7 @@ nn: you need to accept or decline: Les og deretter anten godta eller avslå dei nye bidragsytervilkåra for å halde fram. view: activate_user: aktiver denne brukaren - add as friend: legg til som ven + add as friend: legg til ven ago: (%{time_in_words_ago} sidan) block_history: mottekne blokkeringar blocks by me: blokkeringar utført av meg @@ -1759,10 +1758,10 @@ nn: diary: dagbok edits: redigeringar email address: "E-postadresse:" - friends_changesets: Bla gjennom alle endringssett av vener - friends_diaries: Bla gjennom alle dagbokoppføringar av vener + friends_changesets: endringssett av vener + friends_diaries: dagbokoppføringar av vener hide_user: skjul denne brukaren - if set location: Viss du set posisjonen din, så vil eit fint kart og ting vert her vist. Du kan setje heimeposisjonen på di %{settings_link}-sida. + if set location: Set heimeposisjonen på di %{settings_link}-sida for å sjå naboar. km away: "%{count}km unna" latest edit: "Siste redigering %{ago}:" m away: "%{count}m unna" @@ -1774,13 +1773,13 @@ nn: my settings: innstellingane mine my traces: spora mine nearby users: Andre næliggande brukarar - nearby_changesets: Bla gjennom alle endringssett av nærliggande brukarar - nearby_diaries: Bla gjennom alle dagbokoppføringar av nærliggande brukarar + nearby_changesets: endringssett av naboar + nearby_diaries: dagbokoppføringar av naboar new diary entry: ny dagbokoppføring no friends: Du har ikkje lagt til nokon venner enno. no nearby users: Det er ingen andre brukarar som innrømmer kartlegging i området ditt enno. oauth settings: oauth-innstellingar - remove as friend: fjern som ven + remove as friend: fjern ven role: administrator: Denne brukaren er ein administrator grant: @@ -1859,7 +1858,7 @@ nn: revoke: Tilbakekall! revoker_name: Tilbakekalt av show: Vis - showing_page: Viser side %{page} + showing_page: Side %{page} status: Status period: one: 1 time diff --git a/config/locales/pl.yml b/config/locales/pl.yml index 76ceee76d..03484d3c3 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -4,6 +4,7 @@ # Author: Ajank # Author: BdgwksxD # Author: BeginaFelicysym +# Author: Cysioland # Author: Deejay1 # Author: Nemo bis # Author: Odie2 @@ -193,7 +194,7 @@ pl: download_xml: Ściągnij XML relation: Relacja relation_title: "Relacja: %{relation_name}" - view_history: zobacz historię zmian + view_history: Zobacz historię zmian relation_details: members: "Zawiera:" part_of: "Jest częścią:" @@ -201,7 +202,7 @@ pl: download_xml: Ściągnij XML relation_history: Historia zmian relacji relation_history_title: "Historia relacji: %{relation_name}" - view_details: zobacz szczegóły + view_details: Zobacz szczegóły relation_member: entry_role: "%{type} %{name} jako %{role}" type: @@ -257,8 +258,8 @@ pl: way: droga way: download_xml: Ściągnij XML - edit: edytuj - view_history: pokaż historię + edit: Edytuj + view_history: Pokaż historię way: Droga way_title: "Droga: %{way_name}" way_details: @@ -269,7 +270,7 @@ pl: part_of: "Jest częścią:" way_history: download_xml: Ściągnij XML - view_details: zobacz szczegóły + view_details: Zobacz szczegóły way_history: Historia zmian drogi way_history_title: "Historia drogi: %{way_name}" changeset: @@ -404,7 +405,7 @@ pl: area_to_export: Obszar do eksportu embeddable_html: Kod HTML do osadzenia export_button: Eksportuj - export_details: "Dane OpenStreetMap udostępnione są na licencji Creative Commons: uznanie autorstwa, na tych samych warunkach 2.0." + export_details: Dane OpenStreetMap udostępnione są na licencji Open Data Commons Open Database License. format: Format format_to_export: Format eksportu image_size: Rozmiar obrazka @@ -996,7 +997,6 @@ pl: user_diaries_tooltip: Przeglądaj dzienniczki użytkownika view: Mapa view_tooltip: Zobacz mapę - welcome_user: Witaj, %{user_link} welcome_user_link_tooltip: Strona użytkownika wiki: Wiki wiki_title: Strona Wiki dla projektu diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index 99b89969b..4d6d2b53d 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -183,7 +183,7 @@ pt-BR: way: caminho paging_nav: of: de - showing_page: Exibindo página + showing_page: página redacted: message_html: A versão %{version} deste %{type} não pode ser exibida tal como foi redigida. Consulte %{redaction_link} para obter mais informações. redaction: Edição %{id} @@ -224,7 +224,7 @@ pt-BR: manually_select: Selecionar manualmente uma área diferente object_list: api: Obter esta área através da API - back: Exibir lista de objetos + back: Voltar à lista de objetos details: Detalhes heading: Lista de Objetos history: @@ -266,8 +266,8 @@ pt-BR: way_title: "Caminho: %{way_name}" way_details: also_part_of: - one: também parte do caminho %{related_ways} - other: também parte dos caminhos %{related_ways} + one: parte do caminho %{related_ways} + other: parte dos caminhos %{related_ways} nodes: "Pontos:" part_of: "Parte de:" way_history: @@ -279,7 +279,6 @@ pt-BR: changeset: anonymous: Anônimo big_area: (grande) - id: "#%{id}" no_comment: (nenhum) no_edits: (sem alterações) show_area_box: exibir limite da área @@ -288,7 +287,7 @@ pt-BR: changeset_paging_nav: next: Seguinte » previous: « Anterior - showing_page: Exibindo página %{page} + showing_page: Página % {page} changesets: area: Área comment: Comentário @@ -296,13 +295,13 @@ pt-BR: saved_at: Salvo em user: Usuário list: - description: Alterações recentes + description: Procurar contribuições recentes para o mapa description_bbox: Conjuntos de alterações em %{bbox} description_friend: Conjuntos de alterações de seus amigos description_nearby: Conjuntos de alterações de usuários próximos description_user: Conjuntos de alterações de %{user} description_user_bbox: Conjuntos de alterações de %{user} em %{bbox} - empty_anon_html: Ainda não foram realizadas edições + empty_anon_html: Ainda não foram realizadas edições. empty_user_html: Parece que você ainda não fez edições. Para começar, consulte o Guia para Principiantes. heading: Conjuntos de alterações heading_bbox: Conjuntos de alterações @@ -370,7 +369,7 @@ pt-BR: newer_entries: Entradas novas no_entries: Sem entradas no Diário older_entries: Entradas antigas - recent_entries: "Entradas recentes no Diário:" + recent_entries: Entradas recentes do Diário title: Diários dos Usuários title_friends: Diários dos amigos title_nearby: Diários dos usuários próximos @@ -1011,7 +1010,6 @@ pt-BR: user_diaries_tooltip: Ver os diários dos usuários view: Ver view_tooltip: Veja o mapa - welcome_user: Bem vindo, %{user_link} welcome_user_link_tooltip: Sua Página de usuário wiki: Wiki wiki_title: Site wiki para o projeto @@ -1452,6 +1450,7 @@ pt-BR: visibility_help: o que isso significa? visibility_help_url: http://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces?uselang=pt-br list: + description: Consultar últimos carregamentos de trilhas de GPS empty_html: Nada aqui por enquanto. Carregue uma nova trilha ou aprenda mais sobre trilhas de GPS na página wiki (em inglês). public_traces: Trilhas Públicas de GPS public_traces_from: Trilhas de GPS públicas de %{user} @@ -1501,7 +1500,7 @@ pt-BR: trace_paging_nav: newer: Trilhas mais recentes older: Trilhas mais antigas - showing_page: Mostrando página %{page} + showing_page: Página %{page} view: delete_track: Apague esta trilha description: "Descrição:" @@ -1605,8 +1604,8 @@ pt-BR: heading: Usuários hide: Ocultar Usuários Selecionados showing: - one: Mostrando página %{page} (%{first_item} de %{items}) - other: Mostrando página %{page} (%{first_item}-%{last_item} de %{items}) + one: Página %{page} (%{first_item} de %{items}) + other: Página %{page} (%{first_item}-%{last_item} de %{items}) summary: "%{name} criado no computador %{ip_address} em %{date}" summary_no_ip: "%{name} criado em %{date}" title: Usuários @@ -1668,7 +1667,7 @@ pt-BR: button: Adicionar como amigo failed: Desculpe, erro ao adicionar %{name} como seu amigo. heading: Adicionar %{user} como amigo? - success: "%{name} agora é seu amigo." + success: "%{name} agora é seu amigo!" new: confirm email address: "Confirme o Endereço de Email:" confirm password: "Confirme a Senha:" @@ -1759,10 +1758,10 @@ pt-BR: diary: diário edits: edições email address: "Endereço de email:" - friends_changesets: Navegar em todos os conjuntos de alterações dos amigos - friends_diaries: Navegar em todas as entradas de diário dos amigos + friends_changesets: Conjuntos de alterações dos amigos + friends_diaries: Entradas de diário dos amigos hide_user: esconder esse usuário - if set location: Se você definir a sua localização, um mapa bonito vai aparecer abaixo. Você pode definir sua localização na página de %{settings_link}. + if set location: Defina o local de sua casa na página de %{settings_link} para ver usuários próximos. km away: "%{count}km de distância" latest edit: "Última edição %{ago}:" m away: "%{count}m de distância" @@ -1774,8 +1773,8 @@ pt-BR: my settings: minhas configurações my traces: minhas trilhas nearby users: Outros usuários próximos - nearby_changesets: Navegar em todos os conjuntos de alterações de usuários próximos - nearby_diaries: Navegar em todas as entradas de diário dos usuários próximos + nearby_changesets: Conjuntos de alterações de usuários próximos + nearby_diaries: Entradas de diário dos usuários próximos new diary entry: nova entrada de diário no friends: Você ainda não adicionou amigos. no nearby users: Ainda não há outros usuários mapeando por perto. @@ -1859,7 +1858,7 @@ pt-BR: revoke: Cancelar! revoker_name: Retirado por show: Exibir - showing_page: Mostrando a página % {page} + showing_page: Página %{page} status: Status period: one: uma hora diff --git a/config/locales/pt.yml b/config/locales/pt.yml index 82c2783e0..1f94ab6bd 100644 --- a/config/locales/pt.yml +++ b/config/locales/pt.yml @@ -985,7 +985,6 @@ pt: user_diaries_tooltip: Ver diários dos editores view: Ver view_tooltip: Ver o mapa - welcome_user: Bem vindo, %{user_link} welcome_user_link_tooltip: A sua página de utilizador wiki: Wiki wiki_title: Sitio wiki do projeto diff --git a/config/locales/ro.yml b/config/locales/ro.yml index 4dc170478..b5eeb19b4 100644 --- a/config/locales/ro.yml +++ b/config/locales/ro.yml @@ -807,7 +807,6 @@ ro: sign_up_tooltip: Creați un cont pentru editare view: Vizualizare view_tooltip: Vizualizare hartă - welcome_user: Bine ați venit, %{user_link} welcome_user_link_tooltip: Pagina dumneavoastră de utilizator license_page: foreign: diff --git a/config/locales/ru.yml b/config/locales/ru.yml index f8a0f52ab..8366ed089 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -2,6 +2,7 @@ # Exported from translatewiki.net # Export driver: syck-pecl # Author: AOleg +# Author: AZISS # Author: Aleksandr Dezhin # Author: Amire80 # Author: Andrewsh @@ -94,7 +95,7 @@ ru: tracetag: Тег трека user: Пользователь user_preference: Настройки пользователя - user_token: Код подтверждения пользователя + user_token: Маркер пользователя way: Линия way_node: Точка линии way_tag: Тег линии @@ -196,7 +197,7 @@ ru: way: линия paging_nav: of: из - showing_page: Показана страница + showing_page: страница redacted: message_html: Версия %{version} этого объекта вырезана и не может быть отображена. Смотрите %{redaction_link} для дополнительной информации. redaction: Редакция %{id} @@ -236,7 +237,7 @@ ru: manually_select: Выделить другую область object_list: api: Получить эту область из API - back: Отобразить список объектов + back: Вернуться к списку объектов details: Подробности heading: Список объектов history: @@ -264,7 +265,7 @@ ru: tag: Страница вики, описывающая тег %{key}=%{value} wikipedia_link: Статья %{page} в Википедии timeout: - sorry: Извините, данные для %{type} с id %{id} слишком длинные для извлечения. + sorry: Извините, данные для %{type} с %{id} слишком длинные для извлечения. type: changeset: пакета правок node: точки @@ -278,8 +279,8 @@ ru: 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: @@ -307,13 +308,13 @@ ru: saved_at: Завершено user: Пользователь list: - description: Последние изменения + description: Последние изменения в карте description_bbox: "Пакеты правок в рамке, охватывающей координаты: %{bbox}" description_friend: Пакеты правок ваших друзей description_nearby: Наборы правок соседних участников description_user: Пакеты правок пользователя %{user} description_user_bbox: Пакеты правок пользователя %{user} в рамке, охватывающей координаты %{bbox} - empty_anon_html: Пока правок ещё нет + empty_anon_html: Пока правок ещё нет. empty_user_html: Похоже, вы ещё не сделали ни одной правки. Приступая к работе, посмотрите Руководство для начинающих. heading: Пакеты правок heading_bbox: Пакеты правок @@ -347,6 +348,7 @@ ru: few: "%{count} комментария" one: "%{count} комментарий" other: "%{count} комментариев" + zero: Нет комментариев comment_link: Комментировать confirm: Подтвердить edit_link: Изменить запись @@ -381,7 +383,7 @@ ru: newer_entries: Более новые записи no_entries: В дневнике нет записей older_entries: Более старые записи - recent_entries: "Недавние записи:" + recent_entries: Недавние записи title: Дневники title_friends: Дневники друзей title_nearby: Дневники соседних участников @@ -394,7 +396,7 @@ ru: title: Сделать новую запись в дневнике no_such_entry: body: К сожалению, записи или комментария с id %{id} не найдено. Проверьте правильность написания. Возможно, ссылка, по которой вы перешли, ошибочна. - heading: Нет записи с id %{id} + heading: "Нет записи с id: %{id}" title: Нет такой дневниковой записи view: leave_a_comment: Оставить комментарий @@ -421,7 +423,7 @@ ru: embeddable_html: Встраиваемый HTML export_button: Экспортировать export_details: Данные OpenStreetMap распространяются по лицензии Open Data Commons Open Database License (ODbL). - format: "Формат:" + format: Формат format_to_export: Формат экспорта image_size: "Размер изображения:" latitude: "Широта:" @@ -521,17 +523,17 @@ ru: courthouse: Помещение суда crematorium: Крематоорий dentist: Стоматология - doctors: Врач + doctors: Врачи dormitory: Общежитие drinking_water: Питьевая вода driving_school: Автошкола embassy: Посольство emergency_phone: Телефон экстренных служб - fast_food: Палатка с едой + fast_food: Фаст-фуд ferry_terminal: Паромная станция fire_hydrant: Пожарный гидрант fire_station: Пожарная охрана - food_court: Фаст-фуд + food_court: Фудкорт fountain: Фонтан fuel: Заправка grave_yard: Место захоронения @@ -584,11 +586,11 @@ ru: toilets: Туалет townhall: Городская администрация university: Университет - vending_machine: торговый автомат + vending_machine: Торговый автомат veterinary: Ветеринарная клиника village_hall: Усадьба waste_basket: Мусорка - wifi: WiFi-доступ + wifi: WiFi доступ youth_centre: Молодёжный центр boundary: administrative: Административная граница @@ -1017,7 +1019,6 @@ ru: user_diaries_tooltip: Посмотреть дневники участников view: Карта view_tooltip: Посмотреть карту - welcome_user: Добро пожаловать, %{user_link} welcome_user_link_tooltip: Ваша персональная страница wiki: Вики wiki_title: Вики-сайт проекта @@ -1460,6 +1461,7 @@ ru: visibility_help: Что это значит? visibility_help_url: http://wiki.openstreetmap.org/wiki/RU:%D0%92%D0%B8%D0%B4%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C_GPS-%D1%82%D1%80%D0%B5%D0%BA%D0%BE%D0%B2?uselang=ru list: + description: Обзор последних загруженных маршрутов GPS empty_html: Пока здесь ничего нет. Загрузите новый трек или почитайте про GPS-треки на вики-странице. public_traces: Общедоступные GPS-треки public_traces_from: Общедоступные треки пользователя %{user} @@ -1509,7 +1511,7 @@ ru: trace_paging_nav: newer: Более новые треки older: Более старые треки - showing_page: Показывается страница %{page} + showing_page: Страница %{page} view: delete_track: Удалить этот трек description: "Описание:" @@ -1613,8 +1615,8 @@ ru: heading: Пользователи hide: Скрыть выделенных пользователей showing: - one: Показана страница %{page} (%{first_item} из %{items}) - other: Показана страница %{page} (%{first_item}-%{last_item} из %{items}) + one: Страница %{page} (%{first_item} из %{items}) + other: Страница %{page} (%{first_item}-%{last_item} из %{items}) summary: "%{name} создан %{date}, с адреса %{ip_address}" summary_no_ip: "%{name} создан %{date}" title: Пользователи @@ -1676,7 +1678,7 @@ ru: button: Добавить в друзья failed: Не удалось добавить %{name} в друзья. heading: Добавить %{user} в друзья? - success: "%{name} теперь ваш друг." + success: "%{name} теперь ваш друг!" new: confirm email address: "Подтвердите адрес эл. почты:" confirm password: "Повторите пароль:" @@ -1765,10 +1767,10 @@ ru: diary: дневник edits: правки email address: "Адрес Email:" - friends_changesets: Просмотреть все наборы правок друзей - friends_diaries: Просмотреть все дневники друзей + friends_changesets: наборы правок друзей + friends_diaries: дневники друзей hide_user: скрыть этого пользователя - if set location: Если вы укажете свое местоположение, ниже появятся карта и дополнительные инструменты. Вы можете установить ваше местоположение на вашей странице %{settings_link}. + if set location: Укажите свое местоположение на вашей странице %{settings_link} чтобы увидеть своих соседей. km away: "%{count} км от вас" latest edit: "Последняя правка %{ago}:" m away: "%{count} м от вас" @@ -1780,8 +1782,8 @@ ru: my settings: мои настройки my traces: мои треки nearby users: Другие ближайшие пользователи - nearby_changesets: Просмотреть все правки соседей - nearby_diaries: Просмотреть все дневники соседей + nearby_changesets: правки соседей + nearby_diaries: дневники соседей new diary entry: новая запись no friends: Вы не добавили ещё ни одного друга. no nearby users: Пока нет других пользователей, признающих, что занимающихся составлением карты поблизости. @@ -1865,7 +1867,7 @@ ru: revoke: Разблокировать! revoker_name: Разблокировал show: Показать - showing_page: Показывается страница %{page} + showing_page: Страница %{page} status: Состояние period: one: 1 час diff --git a/config/locales/sk.yml b/config/locales/sk.yml index 9d0dd1f0e..5179d7d19 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -235,6 +235,7 @@ sk: show_areas: Zobraziť oblasti show_history: Zobraziť históriu unable_to_load_size: "Nebolo možné načítať: Oblasť veľkosti %{bbox_size} je priveľká (maximum je %{max_bbox_size})" + view_data: Mapové dáta k zobrazenej oblasti wait: Čakajte... zoom_or_select: Priblížte mapu alebo zvoľte nejakú oblasť na zobrazenie tag_details: @@ -996,7 +997,6 @@ sk: user_diaries_tooltip: Zobraziť denníky používateľov view: Zobraziť view_tooltip: Zobraziť mapu - welcome_user: Vitajte, %{user_link} welcome_user_link_tooltip: Vaša používateľská stránka wiki: wiki wiki_title: Wiki k projektu diff --git a/config/locales/sl.yml b/config/locales/sl.yml index 5739e5664..136100204 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -4,6 +4,7 @@ # Author: Dbc334 # Author: Eleassar # Author: Lesko987 +# Author: Mateju # Author: Stefanb sl: activerecord: @@ -173,7 +174,7 @@ sl: way: pot paging_nav: of: od - showing_page: Prikazana stran + showing_page: stran redacted: message_html: Verzija %{version} te %{type} ne more biti prikazana, ker je bila zavrnjena licenca. Glej %{redaction_link} za podrobnosti. redaction: Redakcija %{id} @@ -213,7 +214,7 @@ sl: manually_select: Ročno izberite drugo področje object_list: api: Pridobi področje iz programskega vmesnika (API) - back: Prikaži seznam predmetov + back: Nazaj na seznam predmetov details: Podrobnosti heading: Seznam predmetov history: @@ -267,7 +268,6 @@ sl: changeset: anonymous: Brezimen big_area: (veliko) - id: št. %{id} no_comment: (brez) no_edits: (brez sprememb) show_area_box: prikaži pravokotno področje @@ -276,7 +276,7 @@ sl: changeset_paging_nav: next: Naslednja » previous: « Prejšnja - showing_page: Prikazovanje strani %{page} + showing_page: Stran %{page} changesets: area: Področje comment: Komentar @@ -284,13 +284,13 @@ sl: saved_at: Shranjen user: Uporabnik list: - description: Nedavne spremembe + description: Prebrskaj nedavno dodane podrobnosti zemljevida description_bbox: Paketi sprememb znotraj področja %{bbox} description_friend: Paketi sprememb vaših prijateljev description_nearby: Paketi sprememb bližnjih uporabnikov description_user: Paketi sprememb uporabnika %{user} description_user_bbox: Paketi sprememb uporabnika %{user} znotraj %{bbox} - empty_anon_html: " Še brez urejanj" + empty_anon_html: Vsebina še ni bila spremenjena. empty_user_html: Izgleda, da si še niste ničesar urejali. Če želite začeti, preglejte Navodila za začetnike. heading: Paketi sprememb heading_bbox: Paketi sprememb @@ -359,7 +359,7 @@ sl: newer_entries: Novejši zapisi no_entries: Ni zapisov v dnevnik older_entries: Starejši zapisi - recent_entries: "Nedavni zapisi v dnevnik:" + recent_entries: Nedavni vnosi v dnevnik title: Dnevniki uporabnikov title_friends: Dnevniki vaših prijateljev title_nearby: Dnevniki bližnjih uporabnikov @@ -978,7 +978,6 @@ sl: user_diaries_tooltip: Pregled dnevnikov uporabnikov view: Zemljevid view_tooltip: Prikaži zemljevid - welcome_user: Dobrodošli, %{user_link} welcome_user_link_tooltip: Vaša uporabniška stran wiki: Wiki wiki_title: Wiki stran za projekt @@ -987,6 +986,8 @@ sl: english_link: angleški izvirnik text: V primeru neskladja med tem prevodom in %{english_original_link} se bo uporabila angleška stran title: O tem prevodu + legal_babble: + title_html: Avtorske pravice in dovoljenja native: mapping_link: začnete kartirati native_link: Slovensko verzijo @@ -1381,6 +1382,7 @@ sl: visibility: "Vidljivost:" visibility_help: kaj to pomeni? list: + description: Prebrskaj nedavno poslane sledi GPS empty_html: Prazno. Naložite novo sled oziroma izvedete več o GPS sledeh na wiki strani. public_traces: Javne sledi GPS public_traces_from: Javne sledi GPS uporabnika %{user} @@ -1428,7 +1430,7 @@ sl: trace_paging_nav: newer: Novejše sledi older: Starejše sledi - showing_page: Prikazujem stran %{page} + showing_page: Stran %{page} view: delete_track: Izbriši to sled description: "Opis:" diff --git a/config/locales/sq.yml b/config/locales/sq.yml index 3dc785daa..ef1f2f075 100644 --- a/config/locales/sq.yml +++ b/config/locales/sq.yml @@ -266,7 +266,6 @@ sq: changeset: anonymous: Anonim big_area: (e madhe) - id: "#%{id}" no_comment: (asgjë) no_edits: (asnjë redaktim) show_area_box: Shfaq kutinë e zonës diff --git a/config/locales/sr-Latn.yml b/config/locales/sr-Latn.yml index dc7172262..110684916 100644 --- a/config/locales/sr-Latn.yml +++ b/config/locales/sr-Latn.yml @@ -273,7 +273,6 @@ sr-Latn: changeset: anonymous: Anonimno big_area: (veliko) - id: br. %{id} no_comment: (nema komentara) no_edits: (nema izmena) show_area_box: pogledaj okvir područja @@ -1004,7 +1003,6 @@ sr-Latn: user_diaries_tooltip: Pogledajte korisničke dnevnike view: Pregled view_tooltip: Pogledajte mapu - welcome_user: Dobro došli, %{user_link} welcome_user_link_tooltip: Vaša korisnička stranica wiki: viki wiki_title: Viki stranice projekta diff --git a/config/locales/sr.yml b/config/locales/sr.yml index 54fe874b3..326a89ccc 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -277,7 +277,6 @@ sr: changeset: anonymous: Анонимно big_area: (велико) - id: бр. %{id} no_comment: (нема коментара) no_edits: (нема измена) show_area_box: погледај оквир подручја @@ -1008,7 +1007,6 @@ sr: user_diaries_tooltip: Погледајте корисничке дневнике view: Преглед view_tooltip: Погледајте мапу - welcome_user: Добро дошли, %{user_link} welcome_user_link_tooltip: Ваша корисничка страница wiki: вики wiki_title: Вики странице пројекта diff --git a/config/locales/sv.yml b/config/locales/sv.yml index fbc7d4186..024ed53af 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -126,7 +126,7 @@ sv: has_ways: one: "Har följande %{count} sträcka:" other: "Innehåller följande %{count} sträckor:" - no_bounding_box: Inga yttre gränser (bounding box) lagrades för detta changeset. + no_bounding_box: Inga yttre gränser (bounding box) lagrades för detta ändringsset. show_area_box: Visa boxarea common_details: changeset_comment: "Kommentar:" @@ -189,7 +189,7 @@ sv: way: väg paging_nav: of: av - showing_page: Visar sida + showing_page: sida redacted: message_html: Version %{version} av denna %{type} kan inte visas då den har tagits bort. Se %{redaction_link} för detaljer. redaction: Redaktering %{id} @@ -229,7 +229,7 @@ sv: manually_select: Välj en annan area manuellt object_list: api: Hämta detta område från API:t - back: Visa objektlista + back: Tillbaka till objektlista details: Detaljer heading: Objektlista history: @@ -271,8 +271,8 @@ sv: way_title: "Väg: %{way_name}" way_details: also_part_of: - one: också del av väg %{related_ways} - other: också del av vägarna %{related_ways} + one: del av väg %{related_ways} + other: del av vägarna %{related_ways} nodes: "Noder:" part_of: "Del av:" way_history: @@ -292,7 +292,7 @@ sv: changeset_paging_nav: next: Nästa » previous: « Föregående - showing_page: Visar sida %{page} + showing_page: Sida %{page} changesets: area: Area comment: Kommentar @@ -300,24 +300,24 @@ sv: saved_at: Sparad user: Användare list: - description: Senaste ändringar - description_bbox: Changesets inom %{bbox} - description_friend: Changesets av dina vänner - description_nearby: Changesets av närliggande användare + description: Bläddra bland de senaste bidragen till kartan + description_bbox: Ändringsset inom %{bbox} + description_friend: Ändringsset av dina vänner + description_nearby: Ändringsset av närbelägna användare description_user: Ändringsset av %{user} description_user_bbox: Ändringsset av %{user} inom %{bbox} - empty_anon_html: Inga redigeringar har gjorts ännu + empty_anon_html: Inga redigeringar har gjorts ännu. empty_user_html: Det verkar som om du ännu inte har gjort några redigeringar. För att komma igång, kolla Nybörjarguiden. heading: Ändringsset heading_bbox: Ändringsset - heading_friend: Changesets - heading_nearby: Changesets + heading_friend: Ändringsset + heading_nearby: Ändringsset heading_user: Ändringsset heading_user_bbox: Ändringsset title: Ändringsset - title_bbox: Changesets inom %{bbox} - title_friend: Changesets av dina vänner - title_nearby: Changesets av närliggande användare + title_bbox: Ändringsset inom %{bbox} + title_friend: Ändringsset av dina vänner + title_nearby: Ändringsset av närbelägna användare title_user: Ändringsset av %{user} title_user_bbox: Ändringsset av %{user} inom %{bbox} timeout: @@ -374,10 +374,10 @@ sv: newer_entries: Nyare anteckningar no_entries: Inga dagboksanteckningar older_entries: Äldre anteckningar - recent_entries: "Aktuella dagboksanteckningar:" + recent_entries: Nyligen gjorda dagboksanteckningar title: Användardagböcker title_friends: Vänners dagböcker - title_nearby: Närliggande användares dagböcker + title_nearby: Närbelägna användares dagböcker user_title: "%{user}s dagbok" location: edit: Redigera @@ -1007,7 +1007,6 @@ sv: user_diaries_tooltip: Visa användardagböcker view: Visa view_tooltip: Visa kartan - welcome_user: Välkommen %{user_link} welcome_user_link_tooltip: Din användarsida wiki: Wiki wiki_title: Wiki-webplats för projektet @@ -1439,6 +1438,7 @@ sv: visibility: "Synlighet:" visibility_help: vad betyder detta? list: + description: Bläddra bland nyligen uppladdade GPS-spår empty_html: Ingenting här ännu. Ladda upp ett nytt spår eller lär dig om GPS-spår på wikin. public_traces: Publika GPS-spår public_traces_from: Publika GPS-spår från %{user} @@ -1486,7 +1486,7 @@ sv: trace_paging_nav: newer: Nyare spår older: Äldre spår - showing_page: Visar sida %{page} + showing_page: Sida %{page} view: delete_track: Radera detta spår description: "Beskrivning:" @@ -1589,8 +1589,8 @@ sv: heading: Användare hide: Göm valda användare showing: - one: Visar sida %{page} (%{first_item} av %{items}) - other: Visar sida %{page} (%{first_item}-%{last_item} av %{items}) + one: Sida %{page} (%{first_item} av %{items}) + other: Sida %{page} (%{first_item}-%{last_item} av %{items}) summary: "%{name} skapades från %{ip_address} den %{date}" summary_no_ip: "%{name} skapad %{date}" title: Användare @@ -1652,7 +1652,7 @@ sv: button: Lägg till som vän failed: Misslyckades med att lägga till %{name} som vän. heading: Lägg till %{user} som en vän? - success: "%{name} är nu din vän." + success: "%{name} är nu din vän!" new: confirm email address: "Bekräfta e-postadress:" confirm password: "Bekräfta lösenord:" @@ -1721,7 +1721,7 @@ sv: you need to accept or decline: Läs igenom och Godkänn eller Avböj de nya bidragsvillkoren för att fortsätta. view: activate_user: aktivera denna användare - add as friend: lägg till som vän + add as friend: lägg till vän ago: (%{time_in_words_ago} sedan) block_history: tilldelade blockeringar blocks by me: blockeringar av mig @@ -1741,10 +1741,10 @@ sv: diary: dagbok edits: redigeringar email address: "E-post:" - friends_changesets: Bläddra igenom alla ändringsset bland vänner - friends_diaries: Bläddra igenom alla dagboksinlägg av vänner + friends_changesets: vänners ändringsset + friends_diaries: vänners dagboksinlägg hide_user: dölj denna användare - if set location: Om du sätter din position, så kommer en karta med lite funktioner att dyka upp här nedanför. Du kan sätta din hemposition på din %{settings_link}-sida. + if set location: Ange din hemposition på %{settings_link}-sidan för att se närbelägna användare. km away: "%{count}km bort" latest edit: "Senaste redigering %{ago}:" m away: "%{count}m bort" @@ -1756,8 +1756,8 @@ sv: my settings: mina inställningar my traces: mina GPS-spår nearby users: Andra användare nära dig - nearby_changesets: Bläddra igenom alla ändringsset av närbelägna användare - nearby_diaries: Bläddra igenom alla dagboksinlägg av närbelägna användare + nearby_changesets: närbelägna användares ändringsset + nearby_diaries: närbelägna användares dagboksinlägg new diary entry: nytt dagboksinlägg no friends: Du har inte lagt till några vänner ännu. no nearby users: Det är inga andra användare som uppgett att de mappar i ditt område ännu. @@ -1841,7 +1841,7 @@ sv: revoke: Återkalla! revoker_name: Återkallad av show: Visa - showing_page: Visar sida %{page} + showing_page: Sida %{page} status: Status period: one: 1 timma diff --git a/config/locales/ta.yml b/config/locales/ta.yml index 6a36c6bed..b04dc6ba0 100644 --- a/config/locales/ta.yml +++ b/config/locales/ta.yml @@ -615,7 +615,6 @@ ta: text: ஒரு நன்கொடையை அளிக்கவும் view: காண் view_tooltip: வரைபடத்தை காண் - welcome_user: வரவேற்பு, %{user_link} welcome_user_link_tooltip: உங்கள் பயனர் பக்கம் wiki: விக்கி license_page: diff --git a/config/locales/tl.yml b/config/locales/tl.yml index 60573bff6..8e03213be 100644 --- a/config/locales/tl.yml +++ b/config/locales/tl.yml @@ -269,7 +269,6 @@ tl: changeset: anonymous: Hindi nagpapakilala (anonimo) big_area: (malaki) - id: "#%{id}" no_comment: (wala) no_edits: (walang mga pamamatnugot) show_area_box: ipakita ang kahon ng pook @@ -1002,7 +1001,6 @@ tl: user_diaries_tooltip: Tingnan ang mga talaarawan ng tagagamit view: Tingnan view_tooltip: Tingnan ang mapa - welcome_user: Maligayang pagdating, %{user_link} welcome_user_link_tooltip: Ang iyong pahina ng tagagamit wiki: Wiki wiki_title: Lugar ng wiki para sa proyekto diff --git a/config/locales/tr.yml b/config/locales/tr.yml index 855327490..5a8c187af 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -886,7 +886,6 @@ tr: user_diaries_tooltip: Kullanıcı günlükleri görüntüle view: Harita view_tooltip: Haritayı göster - welcome_user: Merhaba, %{user_link} welcome_user_link_tooltip: Senin kullanıcı sayfan wiki: Viki wiki_title: Projenin viki sayfaları diff --git a/config/locales/uk.yml b/config/locales/uk.yml index 6a95689b8..5618dcdbd 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -1002,7 +1002,6 @@ uk: user_diaries_tooltip: Подивитись щоденники view: Мапа view_tooltip: Переглянути мапу - welcome_user: Вітаємо, %{user_link} welcome_user_link_tooltip: Ваша сторінка користувача wiki: Вікі wiki_title: Вікі-сайт проекту diff --git a/config/locales/vi.yml b/config/locales/vi.yml index bf875634d..dde68b3c1 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -169,7 +169,7 @@ vi: way: lối paging_nav: of: trong - showing_page: Đang hiện trang + showing_page: trang redacted: message_html: Không thể xem phiên bản %{version} của %{type} này vì nó đã bị ẩn. Xin vui lòng xem chi tiết tại %{redaction_link}. redaction: Dãy ẩn %{id} @@ -209,7 +209,7 @@ vi: manually_select: Chọn vùng khác thủ công object_list: api: Lấy vùng này dùng API - back: Liệt kê các đối tượng + back: Quay lại danh sách đối tượng details: Chi tiết heading: Danh sách đối tượng history: @@ -251,8 +251,8 @@ vi: way_title: "Lối: %{way_name}" way_details: also_part_of: - one: cũng thuộc về lối %{related_ways} - other: cũng thuộc về các lối %{related_ways} + one: thuộc về lối %{related_ways} + other: thuộc về các lối %{related_ways} nodes: "Nốt:" part_of: "Trực thuộc:" way_history: @@ -272,7 +272,7 @@ vi: changeset_paging_nav: next: Sau » previous: « Trước - showing_page: Đang hiện trang %{page} + showing_page: Trang %{page} changesets: area: Vùng comment: Miêu tả @@ -280,7 +280,7 @@ vi: saved_at: Lúc Lưu user: Người dùng list: - description: Những thay đổi gần đây + description: Xem những đóng góp gần đây vào bản đồ description_bbox: Những bộ thay đổi ở trong %{bbox} description_friend: Những bộ thay đổi của bạn bè description_nearby: Những bộ thay đổi của người dùng ở gần @@ -353,7 +353,7 @@ vi: newer_entries: Mục Sau no_entries: Chưa có mục nhật ký older_entries: Mục Trước - recent_entries: "Mục nhật ký gần đây:" + recent_entries: Mục nhật ký gần đây title: Các Nhật ký Cá nhân title_friends: Các nhật ký của bạn bè title_nearby: Các nhật ký của người dùng ở gần @@ -989,7 +989,6 @@ vi: user_diaries_tooltip: Đọc các nhật ký cá nhân view: Xem view_tooltip: Xem bản đồ - welcome_user: Hoan nghênh, %{user_link} welcome_user_link_tooltip: Trang cá nhân của bạn wiki: Wiki wiki_title: Trang wiki của dự án @@ -1124,7 +1123,7 @@ vi: and_the_tags: "và các thẻ sau:" failure: failed_to_import: "không nhập thành công. Đã gặp lỗi này:" - import_failures_url: http://wiki.openstreetmap.org/wiki/Vi:FAQ#Why_didn.27t_my_GPX_file_upload_properly.3F + import_failures_url: http://wiki.openstreetmap.org/wiki/Vi:FAQ?uselang=vi#Why_didn.27t_my_GPX_file_upload_properly.3F more_info_1: Có thêm chi tiết về vụ nhập GPX bị thất bại và cách tránh more_info_2: "vấn đề này tại:" subject: "[OpenStreetMap] Nhập GPX thất bại" @@ -1420,6 +1419,7 @@ vi: visibility_help: có nghĩa là gì? visibility_help_url: http://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces?uselang=vi list: + description: Xem những tuyến đường GPS được tải lên gần đây empty_html: Chưa có gì ở đây. Tải lên tuyến đường mới hoặc tìm hiểu thêm về tuyến đường GPS tại trang wiki. public_traces: Tuyến đường GPS công khai public_traces_from: Tuyến đường GPS công khai của %{user} @@ -1469,7 +1469,7 @@ vi: trace_paging_nav: newer: Tuyến đường Mới hơn older: Tuyến đường Cũ hơn - showing_page: Đang hiện trang %{page} + showing_page: Trang %{page} view: delete_track: Xóa tuyến đường này description: "Miêu tả:" @@ -1511,6 +1511,7 @@ vi: 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. gravatar: gravatar: Sử dụng Gravatar + link: http://wiki.openstreetmap.org/wiki/Gravatar?uselang=vi link text: đây là gì? home location: "Vị trí Nhà:" image: "Hình:" @@ -1636,7 +1637,7 @@ vi: button: Thêm là người bạn failed: Rất tiếc, việc thêm %{name} là người bạn bị thất bại. heading: Thêm %{user} là người bạn? - success: "%{name} mới là người bạn." + success: "%{name} bây giờ là bạn bè của bạn!" new: confirm email address: "Xác nhận Địa chỉ Thư điện tử:" confirm password: "Xác nhận Mật khẩu:" @@ -1728,10 +1729,10 @@ vi: diary: nhật ký edits: đóng góp email address: "Địa chỉ thư điện tử:" - friends_changesets: Xem những bộ thay đổi của bạn bè - friends_diaries: Đọc những mục nhật ký của bạn bè + friends_changesets: bộ thay đổi của bạn bè + friends_diaries: mục nhật ký của bạn bè hide_user: ẩn tài khoản này - if set location: Nếu đặt vị trí, bản đồ đẹp đẽ và những thứ đó sẽ được hiển thị ở dưới. Bạn có thể đặt vị trí nhà tại trang %{settings_link}. + if set location: Đặt vị trí nhà tại trang %{settings_link} để xem những người dùng ở gần. km away: cách %{count} km latest edit: "Sửa đổi gần đây nhất cách đây %{ago}:" m away: cách %{count} m @@ -1743,8 +1744,8 @@ vi: my settings: tùy chọn my traces: tuyến đường của tôi nearby users: Người dùng khác ở gần - nearby_changesets: Xem các bộ thay đổi của người dùng ở gần - nearby_diaries: Đọc các mục nhật ký của người dùng ở gần + nearby_changesets: bộ thay đổi của người dùng ở gần + nearby_diaries: mục nhật ký của người dùng ở 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 nearby users: Không có người dùng nào nhận rằng họ ở gần. @@ -1828,7 +1829,7 @@ vi: revoke: Bỏ cấm! revoker_name: Người bỏ cấm show: Hiện - showing_page: Đang hiện trang %{page} + showing_page: Trang %{page} status: Trạng thái period: "%{count} giờ" revoke: diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index d47bd7398..eab3e720c 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -264,7 +264,6 @@ zh-CN: changeset: anonymous: 匿名 big_area: (大) - id: "#%{id}" no_comment: (空) no_edits: (没有编辑) show_area_box: 显示区域窗口 @@ -995,7 +994,6 @@ zh-CN: user_diaries_tooltip: 查看用户日记 view: 查看 view_tooltip: 查看地图 - welcome_user: 欢迎,%{user_link} welcome_user_link_tooltip: 您的用户页面 wiki: 维基 wiki_title: 项目的维基网站 diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 5e9921a59..669e76e64 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -631,7 +631,6 @@ zh-TW: user_diaries_tooltip: 檢視日記 view: 檢視 view_tooltip: 檢視地圖 - welcome_user: 歡迎,%{user_link} welcome_user_link_tooltip: 您的使用者頁面 wiki: Wiki wiki_title: 專案的 Wiki 網站 diff --git a/lib/potlatch2.rb b/lib/potlatch2.rb index 7d0681de7..1c6c81cd4 100644 --- a/lib/potlatch2.rb +++ b/lib/potlatch2.rb @@ -2,6 +2,7 @@ module Potlatch2 LOCALES = { "ar" => "ar", "ast" => "ast", + "az" => "az", "be" => "be", "be-Tarask" => "be-tarask", "br" => "br", diff --git a/test/functional/browse_controller_test.rb b/test/functional/browse_controller_test.rb index 11f51ae5c..87a3e7489 100644 --- a/test/functional/browse_controller_test.rb +++ b/test/functional/browse_controller_test.rb @@ -92,9 +92,10 @@ class BrowseControllerTest < ActionController::TestCase assert_template 'node_history' # there are 2 revisions of the redacted node, but only one - # should be showing up here. - assert_select "body div[id=content] div[class=browse_details]", 1 - assert_select "body div[id=content] div[class=browse_details][id=1]", 0 + # should be showing details here. + assert_select "body div#content div.browse_details", 2 + assert_select "body div#content div.browse_details[id=1] div.common", 0 + assert_select "body div#content div.browse_details[id=2] div.common", 1 end def test_redacted_way_history @@ -103,11 +104,12 @@ class BrowseControllerTest < ActionController::TestCase assert_template 'way_history' # there are 4 revisions of the redacted way, but only 2 - # should be showing up here. - assert_select "body div[id=content] div[class=browse_details]", 2 - # redacted revisions are 2 & 3 - assert_select "body div[id=content] div[class=browse_details][id=2]", 0 - assert_select "body div[id=content] div[class=browse_details][id=3]", 0 + # should be showing details here. + assert_select "body div#content div.browse_details", 4 + assert_select "body div#content div.browse_details[id=1] div.common", 1 + assert_select "body div#content div.browse_details[id=2] div.common", 0 + assert_select "body div#content div.browse_details[id=3] div.common", 0 + assert_select "body div#content div.browse_details[id=4] div.common", 1 end def test_redacted_relation_history @@ -116,11 +118,12 @@ class BrowseControllerTest < ActionController::TestCase assert_template 'relation_history' # there are 4 revisions of the redacted relation, but only 2 - # should be showing up here. - assert_select "body div[id=content] div[class=browse_details]", 2 - # redacted revisions are 2 & 3 - assert_select "body div[id=content] div[class=browse_details][id=2]", 0 - assert_select "body div[id=content] div[class=browse_details][id=3]", 0 + # should be showing details here. + assert_select "body div#content div.browse_details", 4 + assert_select "body div#content div.browse_details[id=1] div.common", 1 + assert_select "body div#content div.browse_details[id=2] div.common", 0 + assert_select "body div#content div.browse_details[id=3] div.common", 0 + assert_select "body div#content div.browse_details[id=4] div.common", 1 end # This is a convenience method for most of the above checks diff --git a/test/functional/diary_entry_controller_test.rb b/test/functional/diary_entry_controller_test.rb index 52356d913..6a51cb142 100644 --- a/test/functional/diary_entry_controller_test.rb +++ b/test/functional/diary_entry_controller_test.rb @@ -239,7 +239,7 @@ class DiaryEntryControllerTest < ActionController::TestCase assert_select "p", :text => /#{new_body}/, :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 "span[class=hidden show_if_user_#{entry.user.id}]", :count => 1 do + assert_select "li[class=hidden show_if_user_#{entry.user.id}]", :count => 1 do assert_select "a[href='/user/#{entry.user.display_name}/diary/#{entry.id}/edit']", :text => "Edit this entry", :count => 1 end end diff --git a/test/functional/trace_controller_test.rb b/test/functional/trace_controller_test.rb index 8ff29c437..d0afcc587 100644 --- a/test/functional/trace_controller_test.rb +++ b/test/functional/trace_controller_test.rb @@ -154,7 +154,8 @@ class TraceControllerTest < ActionController::TestCase def test_list get :list assert_response :success - assert_template 'list' + assert_template "list" + check_trace_list Trace.public end # Check that I can get mine @@ -168,6 +169,43 @@ class TraceControllerTest < ActionController::TestCase # Now try when logged in get :mine, {}, {:user => users(:public_user).id} assert_redirected_to :controller => 'trace', :action => 'list', :display_name => users(:public_user).display_name + + # Fetch the actual list + get :list, {:display_name => users(:public_user).display_name}, {:user => users(:public_user).id} + assert_response :success + assert_template "list" + check_trace_list users(:public_user).traces + end + + # Check the list of changesets for a specific user + def test_list_user + # Test a user with no traces + get :list, :display_name => users(:second_public_user).display_name + assert_response :success + assert_template "list" + check_trace_list users(:second_public_user).traces.public + + # Test a user with some traces - should see only public ones + get :list, :display_name => users(:public_user).display_name + assert_response :success + assert_template "list" + check_trace_list users(:public_user).traces.public + + @request.cookies["_osm_username"] = users(:normal_user).display_name + + # Should still see only public ones when authenticated as another user + get :list, {:display_name => users(:public_user).display_name}, {:user => users(:normal_user).id} + assert_response :success + assert_template "list" + check_trace_list users(:public_user).traces.public + + @request.cookies["_osm_username"] = users(:public_user).display_name + + # Should see all traces when authenticated as the target user + get :list, {:display_name => users(:public_user).display_name}, {:user => users(:public_user).id} + assert_response :success + assert_template "list" + check_trace_list users(:public_user).traces end # Check that the rss loads @@ -307,4 +345,24 @@ class TraceControllerTest < ActionController::TestCase delete :api_delete, :id => gpx_files(:public_trace_file).id assert_response :not_found end + +private + + def check_trace_list(traces) + traces = traces.visible.order("timestamp DESC") + + if traces.count > 0 + assert_select "table#trace_list tbody", :count => 1 do + assert_select "tr", :count => traces.count do |rows| + traces.zip(rows).each do |trace,row| + assert_select row, "span.trace_summary", Regexp.new(Regexp.escape("(#{trace.size} points)")) + assert_select row, "td", Regexp.new(Regexp.escape(trace.description)) + assert_select row, "td", Regexp.new(Regexp.escape("by #{trace.user.display_name}")) + end + end + end + else + assert_select "h4", /Nothing here yet/ + end + end end diff --git a/vendor/assets/leaflet/images/layers.png b/vendor/assets/leaflet/images/layers.png index 642e2787f..ef90a080b 100644 Binary files a/vendor/assets/leaflet/images/layers.png and b/vendor/assets/leaflet/images/layers.png differ diff --git a/vendor/assets/leaflet/images/marker-icon.png b/vendor/assets/leaflet/images/marker-icon.png index 7614b7c7f..e2e9f757f 100644 Binary files a/vendor/assets/leaflet/images/marker-icon.png and b/vendor/assets/leaflet/images/marker-icon.png differ diff --git a/vendor/assets/leaflet/images/marker-icon@2x.png b/vendor/assets/leaflet/images/marker-icon@2x.png new file mode 100644 index 000000000..0015b6495 Binary files /dev/null and b/vendor/assets/leaflet/images/marker-icon@2x.png differ diff --git a/vendor/assets/leaflet/images/marker-shadow.png b/vendor/assets/leaflet/images/marker-shadow.png index a64f6a672..d1e773c71 100644 Binary files a/vendor/assets/leaflet/images/marker-shadow.png and b/vendor/assets/leaflet/images/marker-shadow.png differ diff --git a/vendor/assets/leaflet/images/zoom-in.png b/vendor/assets/leaflet/images/zoom-in.png deleted file mode 100644 index 4a98a35d9..000000000 Binary files a/vendor/assets/leaflet/images/zoom-in.png and /dev/null differ diff --git a/vendor/assets/leaflet/images/zoom-out.png b/vendor/assets/leaflet/images/zoom-out.png deleted file mode 100644 index 427616669..000000000 Binary files a/vendor/assets/leaflet/images/zoom-out.png and /dev/null differ diff --git a/vendor/assets/leaflet/leaflet.css b/vendor/assets/leaflet/leaflet.css index 938a1be54..ea3da3907 100644 --- a/vendor/assets/leaflet/leaflet.css +++ b/vendor/assets/leaflet/leaflet.css @@ -15,6 +15,7 @@ .leaflet-layer { position: absolute; left: 0; + top: 0; } .leaflet-container { overflow: hidden; @@ -184,25 +185,61 @@ /* general typography */ .leaflet-container { font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif; -} + } -/* zoom control */ +/* general toolbar styles */ -.leaflet-control-zoom { - -webkit-border-radius: 7px; - border-radius: 7px; +.leaflet-bar { + box-shadow: 0 0 8px rgba(0,0,0,0.4); + border: 1px solid #888; + -webkit-border-radius: 5px; + border-radius: 5px; + } +.leaflet-bar-part { + background-color: rgba(255, 255, 255, 0.8); + border-bottom: 1px solid #aaa; } -.leaflet-control-zoom { - padding: 5px; - background: rgba(0, 0, 0, 0.25); +.leaflet-bar-part-top { + -webkit-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; + } +.leaflet-bar-part-bottom { + -webkit-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; + border-bottom: none; + } + +.leaflet-touch .leaflet-bar { + -webkit-border-radius: 10px; + border-radius: 10px; + } +.leaflet-touch .leaflet-bar-part { + border-bottom: 4px solid rgba(0,0,0,0.3); + } +.leaflet-touch .leaflet-bar-part-top { + -webkit-border-radius: 7px 7px 0 0; + border-radius: 7px 7px 0 0; + } +.leaflet-touch .leaflet-bar-part-bottom { + -webkit-border-radius: 0 0 7px 7px; + border-radius: 0 0 7px 7px; + border-bottom: none; + } + + +/* zoom control */ + +.leaflet-container .leaflet-control-zoom { + margin-left: 13px; + margin-top: 12px; } .leaflet-control-zoom a { - width: 19px; - height: 19px; - background-color: rgba(255, 255, 255, 0.75); - -webkit-border-radius: 4px; - border-radius: 4px; + width: 22px; + height: 22px; + text-align: center; + text-decoration: none; + color: black; } .leaflet-control-zoom a, .leaflet-control-layers-toggle { @@ -212,24 +249,37 @@ } .leaflet-control-zoom a:hover { background-color: #fff; - } -.leaflet-touch .leaflet-control-zoom a { - width: 27px; - height: 27px; + color: #777; } .leaflet-control-zoom-in { - background-image: url(images/zoom-in.png); - margin-bottom: 5px; + font: bold 18px/24px Arial, Helvetica, sans-serif; } .leaflet-control-zoom-out { - background-image: url(images/zoom-out.png); + font: bold 23px/20px Tahoma, Verdana, sans-serif; + } +.leaflet-control-zoom a.leaflet-control-zoom-disabled { + cursor: default; + background-color: rgba(255, 255, 255, 0.8); + color: #bbb; } +.leaflet-touch .leaflet-control-zoom a { + width: 30px; + height: 30px; + } +.leaflet-touch .leaflet-control-zoom-in { + font-size: 24px; + line-height: 29px; + } +.leaflet-touch .leaflet-control-zoom-out { + font-size: 28px; + line-height: 24px; + } /* layers control */ .leaflet-control-layers { - box-shadow: 0 1px 7px #999; + box-shadow: 0 1px 7px rgba(0,0,0,0.4); background: #f8f8f9; -webkit-border-radius: 8px; border-radius: 8px; @@ -297,27 +347,33 @@ border: 2px solid #777; border-top: none; color: black; - line-height: 1; - font-size: 10px; - padding-bottom: 2px; + line-height: 1.1; + padding: 2px 5px 1px; + font-size: 11px; text-shadow: 1px 1px 1px #fff; background-color: rgba(255, 255, 255, 0.5); + box-shadow: 0 -1px 5px rgba(0, 0, 0, 0.2); + white-space: nowrap; + overflow: hidden; } .leaflet-control-scale-line:not(:first-child) { border-top: 2px solid #777; - padding-top: 1px; border-bottom: none; margin-top: -2px; + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); } .leaflet-control-scale-line:not(:first-child):not(:last-child) { border-bottom: 2px solid #777; } -.leaflet-touch .leaflet-control-attribution, .leaflet-touch .leaflet-control-layers { +.leaflet-touch .leaflet-control-attribution, +.leaflet-touch .leaflet-control-layers, +.leaflet-touch .leaflet-control-zoom { box-shadow: none; } -.leaflet-touch .leaflet-control-layers { - border: 5px solid #bbb; +.leaflet-touch .leaflet-control-layers, +.leaflet-touch .leaflet-control-zoom { + border: 4px solid rgba(0,0,0,0.3); } @@ -363,8 +419,7 @@ .leaflet-popup-content-wrapper, .leaflet-popup-tip { background: white; - box-shadow: 0 3px 14px rgba(0,0,0,0.35); - -webkit-box-shadow: 0 3px 18px rgba(0,0,0,0.33); + box-shadow: 0 3px 14px rgba(0,0,0,0.4); } .leaflet-container a.leaflet-popup-close-button { position: absolute; @@ -378,6 +433,7 @@ color: #c3c3c3; text-decoration: none; font-weight: bold; + background: transparent; } .leaflet-container a.leaflet-popup-close-button:hover { color: #999; diff --git a/vendor/assets/leaflet/leaflet.ie.css b/vendor/assets/leaflet/leaflet.ie.css index 5b65c400a..b59c8144e 100644 --- a/vendor/assets/leaflet/leaflet.ie.css +++ b/vendor/assets/leaflet/leaflet.ie.css @@ -3,11 +3,11 @@ height: 1px; } .lvml { - behavior: url(#default#VML); - display: inline-block; + behavior: url(#default#VML); + display: inline-block; position: absolute; } - + .leaflet-control { display: inline; } @@ -17,7 +17,7 @@ _width: 27px; margin: 0 auto; _margin-top: -3px; - + filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; } @@ -25,11 +25,15 @@ margin-top: -1px; } .leaflet-popup-content-wrapper, .leaflet-popup-tip { - border: 1px solid #bbb; + border: 1px solid #999; + } +.leaflet-popup-content-wrapper { + zoom: 1; } -.leaflet-control-zoom { - filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#3F000000',EndColorStr='#3F000000'); +.leaflet-control-zoom, +.leaflet-control-layers { + border: 3px solid #999; } .leaflet-control-zoom a { background-color: #eee; @@ -39,9 +43,15 @@ } .leaflet-control-layers-toggle { } -.leaflet-control-attribution, .leaflet-control-layers { +.leaflet-control-attribution, +.leaflet-control-layers, +.leaflet-control-scale-line { background: white; } .leaflet-zoom-box { filter: alpha(opacity=50); - } \ No newline at end of file + } +.leaflet-control-attribution { + border-top: 1px solid #bbb; + border-left: 1px solid #bbb; + } diff --git a/vendor/assets/leaflet/leaflet.js b/vendor/assets/leaflet/leaflet.js index 5503592a0..2da1987df 100644 --- a/vendor/assets/leaflet/leaflet.js +++ b/vendor/assets/leaflet/leaflet.js @@ -1,9 +1,11 @@ /* - Copyright (c) 2010-2012, CloudMade, Vladimir Agafonkin - Leaflet is an open-source JavaScript library for mobile-friendly interactive maps. - http://leafletjs.com + Leaflet, a JavaScript library for mobile-friendly interactive maps. http://leafletjs.com + (c) 2010-2013, Vladimir Agafonkin, CloudMade */ -(function (window, undefined) { +(function (window, document, undefined) {/* + * The L namespace contains all Leaflet classes and functions. + * This code allows you to handle any possible namespace conflicts. + */ var L, originalL; @@ -21,11 +23,11 @@ if (typeof exports !== undefined + '') { window.L = L; } -L.version = '0.4.4'; +L.version = '0.5'; /* - * L.Util is a namespace for various utility functions. + * L.Util contains various utility functions used throughout Leaflet code. */ L.Util = { @@ -103,14 +105,14 @@ L.Util = { return obj.options; }, - getParamString: function (obj) { + getParamString: function (obj, existingUrl) { var params = []; for (var i in obj) { if (obj.hasOwnProperty(i)) { params.push(i + '=' + obj[i]); } } - return '?' + params.join('&'); + return ((!existingUrl || existingUrl.indexOf('?') === -1) ? '?' : '&') + params.join('&'); }, template: function (str, data) { @@ -123,6 +125,10 @@ L.Util = { }); }, + isArray: function (obj) { + return (Object.prototype.toString.call(obj) === '[object Array]'); + }, + emptyImageUrl: 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=' }; @@ -186,18 +192,26 @@ L.setOptions = L.Util.setOptions; /* - * Class powers the OOP facilities of the library. Thanks to John Resig and Dean Edwards for inspiration! + * L.Class powers the OOP facilities of the library. + * Thanks to John Resig and Dean Edwards for inspiration! */ L.Class = function () {}; -L.Class.extend = function (/*Object*/ props) /*-> Class*/ { +L.Class.extend = function (props) { // extended class with the new prototype var NewClass = function () { + + // call the constructor if (this.initialize) { this.initialize.apply(this, arguments); } + + // call all constructor hooks + if (this._initHooks) { + this.callInitHooks(); + } }; // instantiate class without calling constructor @@ -236,6 +250,25 @@ L.Class.extend = function (/*Object*/ props) /*-> Class*/ { // mix given properties into the prototype L.extend(proto, props); + proto._initHooks = []; + + var parent = this; + // add method for calling all hooks + proto.callInitHooks = function () { + + if (this._initHooksCalled) { return; } + + if (parent.prototype.callInitHooks) { + parent.prototype.callInitHooks.call(this); + } + + this._initHooksCalled = true; + + for (var i = 0, len = proto._initHooks.length; i < len; i++) { + proto._initHooks[i].call(this); + } + }; + return NewClass; }; @@ -245,13 +278,26 @@ L.Class.include = function (props) { L.extend(this.prototype, props); }; +// merge new default options to the Class L.Class.mergeOptions = function (options) { L.extend(this.prototype.options, options); }; +// add a constructor hook +L.Class.addInitHook = function (fn) { // (Function) || (String, args...) + var args = Array.prototype.slice.call(arguments, 1); + + var init = typeof fn === 'function' ? fn : function () { + this[fn].apply(this, args); + }; + + this.prototype._initHooks = this.prototype._initHooks || []; + this.prototype._initHooks.push(init); +}; + /* - * L.Mixin.Events adds custom events functionality to Leaflet classes + * L.Mixin.Events is used to add custom events functionality to Leaflet classes. */ var key = '_leaflet_events'; @@ -352,26 +398,29 @@ L.Mixin.Events.off = L.Mixin.Events.removeEventListener; L.Mixin.Events.fire = L.Mixin.Events.fireEvent; +/* + * L.Browser handles different browser and feature detections for internal Leaflet use. + */ + (function () { var ie = !!window.ActiveXObject, - // http://tanalin.com/en/articles/ie-version-js/ ie6 = ie && !window.XMLHttpRequest, ie7 = ie && !document.querySelector, // terrible browser detection to work around Safari / iOS / Android browser bugs - // see TileLayer._addTile and debug/hacks/jitter.html - ua = navigator.userAgent.toLowerCase(), - webkit = ua.indexOf("webkit") !== -1, - chrome = ua.indexOf("chrome") !== -1, - android = ua.indexOf("android") !== -1, - android23 = ua.search("android [23]") !== -1, + webkit = ua.indexOf('webkit') !== -1, + chrome = ua.indexOf('chrome') !== -1, + android = ua.indexOf('android') !== -1, + android23 = ua.search('android [23]') !== -1, mobile = typeof orientation !== undefined + '', - msTouch = (window.navigator && window.navigator.msPointerEnabled && window.navigator.msMaxTouchPoints), - retina = (('devicePixelRatio' in window && window.devicePixelRatio > 1) || - ('matchMedia' in window && window.matchMedia("(min-resolution:144dpi)").matches)), + msTouch = window.navigator && window.navigator.msPointerEnabled && + window.navigator.msMaxTouchPoints, + retina = ('devicePixelRatio' in window && window.devicePixelRatio > 1) || + ('matchMedia' in window && window.matchMedia('(min-resolution:144dpi)') && + window.matchMedia('(min-resolution:144dpi)').matches), doc = document.documentElement, ie3d = ie && ('transition' in doc.style), @@ -411,6 +460,7 @@ L.Mixin.Events.fire = L.Mixin.Events.fireEvent; L.Browser = { + ie: ie, ie6: ie6, ie7: ie7, webkit: webkit, @@ -526,6 +576,11 @@ L.Point.prototype = { return Math.sqrt(x * x + y * y); }, + equals: function (point) { + return point.x === this.x && + point.y === this.y; + }, + toString: function () { return 'Point(' + L.Util.formatNum(this.x) + ', ' + @@ -537,7 +592,7 @@ L.point = function (x, y, round) { if (x instanceof L.Point) { return x; } - if (x instanceof Array) { + if (L.Util.isArray(x)) { return new L.Point(x[0], x[1]); } if (isNaN(x)) { @@ -551,18 +606,17 @@ L.point = function (x, y, round) { * L.Bounds represents a rectangular area on the screen in pixel coordinates. */ -L.Bounds = L.Class.extend({ - - initialize: function (a, b) { //(Point, Point) or Point[] - if (!a) { return; } +L.Bounds = function (a, b) { //(Point, Point) or Point[] + if (!a) { return; } - var points = b ? [a, b] : a; + var points = b ? [a, b] : a; - for (var i = 0, len = points.length; i < len; i++) { - this.extend(points[i]); - } - }, + for (var i = 0, len = points.length; i < len; i++) { + this.extend(points[i]); + } +}; +L.Bounds.prototype = { // extend the bounds to contain the given point extend: function (point) { // (Point) point = L.point(point); @@ -593,6 +647,10 @@ L.Bounds = L.Class.extend({ return new L.Point(this.max.x, this.min.y); }, + getSize: function () { + return this.max.subtract(this.min); + }, + contains: function (obj) { // (Bounds) or (Point) -> Boolean var min, max; @@ -631,7 +689,7 @@ L.Bounds = L.Class.extend({ isValid: function () { return !!(this.min && this.max); } -}); +}; L.bounds = function (a, b) { // (Bounds) or (Point, Point) or (Point[]) if (!a || a instanceof L.Bounds) { @@ -645,33 +703,33 @@ L.bounds = function (a, b) { // (Bounds) or (Point, Point) or (Point[]) * L.Transformation is an utility class to perform simple point transformations through a 2d-matrix. */ -L.Transformation = L.Class.extend({ - initialize: function (/*Number*/ a, /*Number*/ b, /*Number*/ c, /*Number*/ d) { - this._a = a; - this._b = b; - this._c = c; - this._d = d; - }, +L.Transformation = function (a, b, c, d) { + this._a = a; + this._b = b; + this._c = c; + this._d = d; +}; - transform: function (point, scale) { +L.Transformation.prototype = { + transform: function (point, scale) { // (Point, Number) -> Point return this._transform(point.clone(), scale); }, // destructive transform (faster) - _transform: function (/*Point*/ point, /*Number*/ scale) /*-> Point*/ { + _transform: function (point, scale) { scale = scale || 1; point.x = scale * (this._a * point.x + this._b); point.y = scale * (this._c * point.y + this._d); return point; }, - untransform: function (/*Point*/ point, /*Number*/ scale) /*-> Point*/ { + untransform: function (point, scale) { scale = scale || 1; return new L.Point( (point.x / scale - this._b) / this._a, (point.y / scale - this._d) / this._c); } -}); +}; /* @@ -711,6 +769,11 @@ L.DomUtil = { do { top += el.offsetTop || 0; left += el.offsetLeft || 0; + + //add borders + top += parseInt(L.DomUtil.getStyle(el, "borderTopWidth"), 10) || 0; + left += parseInt(L.DomUtil.getStyle(el, "borderLeftWidth"), 10) || 0; + pos = L.DomUtil.getStyle(el, 'position'); if (el.offsetParent === docBody && pos === 'absolute') { break; } @@ -776,7 +839,7 @@ L.DomUtil = { document.selection.empty(); } if (!this._onselectstart) { - this._onselectstart = document.onselectstart; + this._onselectstart = document.onselectstart || null; document.onselectstart = L.Util.falseFn; } }, @@ -897,8 +960,11 @@ L.DomUtil = { L.DomUtil.TRANSFORM = L.DomUtil.testProp( ['transform', 'WebkitTransform', 'OTransform', 'MozTransform', 'msTransform']); +// webkitTransition comes first because some browser versions that drop vendor prefix don't do +// the same for the transitionend event, in particular the Android 4.1 stock browser + L.DomUtil.TRANSITION = L.DomUtil.testProp( - ['transition', 'webkitTransition', 'OTransition', 'MozTransition', 'msTransition']); + ['webkitTransition', 'transition', 'OTransition', 'MozTransition', 'msTransition']); L.DomUtil.TRANSITION_END = L.DomUtil.TRANSITION === 'webkitTransition' || L.DomUtil.TRANSITION === 'OTransition' ? @@ -906,10 +972,10 @@ L.DomUtil.TRANSITION_END = /* - CM.LatLng represents a geographical point with latitude and longtitude coordinates. -*/ + * L.LatLng represents a geographical point with latitude and longitude coordinates. + */ -L.LatLng = function (rawLat, rawLng, noWrap) { // (Number, Number[, Boolean]) +L.LatLng = function (rawLat, rawLng) { // (Number, Number) var lat = parseFloat(rawLat), lng = parseFloat(rawLng); @@ -917,11 +983,6 @@ L.LatLng = function (rawLat, rawLng, noWrap) { // (Number, Number[, Boolean]) throw new Error('Invalid LatLng object: (' + rawLat + ', ' + rawLng + ')'); } - if (noWrap !== true) { - lat = Math.max(Math.min(lat, 90), -90); // clamp latitude into -90..90 - lng = (lng + 180) % 360 + ((lng < -180 || lng === 180) ? 180 : -180); // wrap longtitude into -180..180 - } - this.lat = lat; this.lng = lng; }; @@ -938,17 +999,21 @@ L.LatLng.prototype = { obj = L.latLng(obj); - var margin = Math.max(Math.abs(this.lat - obj.lat), Math.abs(this.lng - obj.lng)); + var margin = Math.max( + Math.abs(this.lat - obj.lat), + Math.abs(this.lng - obj.lng)); + return margin <= L.LatLng.MAX_MARGIN; }, - toString: function (precision) { // -> String + toString: function (precision) { // (Number) -> String return 'LatLng(' + L.Util.formatNum(this.lat, precision) + ', ' + L.Util.formatNum(this.lng, precision) + ')'; }, // Haversine distance formula, see http://en.wikipedia.org/wiki/Haversine_formula + // TODO move to projection code, LatLng shouldn't know about Earth distanceTo: function (other) { // (LatLng) -> Number other = L.latLng(other); @@ -964,20 +1029,31 @@ L.LatLng.prototype = { var a = sin1 * sin1 + sin2 * sin2 * Math.cos(lat1) * Math.cos(lat2); return R * 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); + }, + + wrap: function (a, b) { // (Number, Number) -> LatLng + var lng = this.lng; + + a = a || -180; + b = b || 180; + + lng = (lng + b) % (b - a) + (lng < a || lng === b ? b : a); + + return new L.LatLng(this.lat, lng); } }; -L.latLng = function (a, b, c) { // (LatLng) or ([Number, Number]) or (Number, Number, Boolean) +L.latLng = function (a, b) { // (LatLng) or ([Number, Number]) or (Number, Number) if (a instanceof L.LatLng) { return a; } - if (a instanceof Array) { + if (L.Util.isArray(a)) { return new L.LatLng(a[0], a[1]); } if (isNaN(a)) { return a; } - return new L.LatLng(a, b, c); + return new L.LatLng(a, b); }; @@ -986,20 +1062,20 @@ L.latLng = function (a, b, c) { // (LatLng) or ([Number, Number]) or (Number, Nu * L.LatLngBounds represents a rectangular area on the map in geographical coordinates. */ -L.LatLngBounds = L.Class.extend({ - initialize: function (southWest, northEast) { // (LatLng, LatLng) or (LatLng[]) - if (!southWest) { return; } +L.LatLngBounds = function (southWest, northEast) { // (LatLng, LatLng) or (LatLng[]) + if (!southWest) { return; } - var latlngs = northEast ? [southWest, northEast] : southWest; + var latlngs = northEast ? [southWest, northEast] : southWest; - for (var i = 0, len = latlngs.length; i < len; i++) { - this.extend(latlngs[i]); - } - }, + for (var i = 0, len = latlngs.length; i < len; i++) { + this.extend(latlngs[i]); + } +}; +L.LatLngBounds.prototype = { // extend the bounds to contain the given point or bounds extend: function (obj) { // (LatLng) or (LatLngBounds) - if (typeof obj[0] === 'number' || obj instanceof L.LatLng) { + if (typeof obj[0] === 'number' || typeof obj[0] === 'string' || obj instanceof L.LatLng) { obj = L.latLng(obj); } else { obj = L.latLngBounds(obj); @@ -1007,8 +1083,8 @@ L.LatLngBounds = L.Class.extend({ if (obj instanceof L.LatLng) { if (!this._southWest && !this._northEast) { - this._southWest = new L.LatLng(obj.lat, obj.lng, true); - this._northEast = new L.LatLng(obj.lat, obj.lng, true); + this._southWest = new L.LatLng(obj.lat, obj.lng); + this._northEast = new L.LatLng(obj.lat, obj.lng); } else { this._southWest.lat = Math.min(obj.lat, this._southWest.lat); this._southWest.lng = Math.min(obj.lng, this._southWest.lng); @@ -1050,11 +1126,11 @@ L.LatLngBounds = L.Class.extend({ }, getNorthWest: function () { - return new L.LatLng(this._northEast.lat, this._southWest.lng, true); + return new L.LatLng(this._northEast.lat, this._southWest.lng); }, getSouthEast: function () { - return new L.LatLng(this._southWest.lat, this._northEast.lng, true); + return new L.LatLng(this._southWest.lat, this._northEast.lng); }, contains: function (obj) { // (LatLngBounds) or (LatLng) -> Boolean @@ -1112,7 +1188,7 @@ L.LatLngBounds = L.Class.extend({ isValid: function () { return !!(this._southWest && this._northEast); } -}); +}; //TODO International date line? @@ -1131,6 +1207,9 @@ L.latLngBounds = function (a, b) { // (LatLngBounds) or (LatLng, LatLng) L.Projection = {}; +/* + * Spherical Mercator is the most popular map projection, used by EPSG:3857 CRS used by default. + */ L.Projection.SphericalMercator = { MAX_LATITUDE: 85.0511287798, @@ -1152,12 +1231,14 @@ L.Projection.SphericalMercator = { lng = point.x * d, lat = (2 * Math.atan(Math.exp(point.y)) - (Math.PI / 2)) * d; - // TODO refactor LatLng wrapping - return new L.LatLng(lat, lng, true); + return new L.LatLng(lat, lng); } }; +/* + * Simple equirectangular (Plate Carree) projection, used by CRS like EPSG:4326 and Simple. + */ L.Projection.LonLat = { project: function (latlng) { @@ -1165,11 +1246,14 @@ L.Projection.LonLat = { }, unproject: function (point) { - return new L.LatLng(point.y, point.x, true); + return new L.LatLng(point.y, point.x); } }; +/* + * L.CRS is a base object for all defined CRS (Coordinate Reference Systems) in Leaflet. + */ L.CRS = { latLngToPoint: function (latlng, zoom) { // (LatLng, Number) -> Point @@ -1196,13 +1280,24 @@ L.CRS = { }; +/* + * A simple CRS that can be used for flat non-Earth maps like panoramas or game maps. + */ L.CRS.Simple = L.extend({}, L.CRS, { projection: L.Projection.LonLat, - transformation: new L.Transformation(1, 0, 1, 0) + transformation: new L.Transformation(1, 0, -1, 0), + + scale: function (zoom) { + return Math.pow(2, zoom); + } }); +/* + * L.CRS.EPSG3857 (Spherical Mercator) is the most common CRS for web mapping + * and is used by Leaflet by default. + */ L.CRS.EPSG3857 = L.extend({}, L.CRS, { code: 'EPSG:3857', @@ -1222,6 +1317,9 @@ L.CRS.EPSG900913 = L.extend({}, L.CRS.EPSG3857, { }); +/* + * L.CRS.EPSG4326 is a CRS popular among advanced GIS specialists. + */ L.CRS.EPSG4326 = L.extend({}, L.CRS, { code: 'EPSG:4326', @@ -1258,7 +1356,7 @@ L.Map = L.Class.extend({ this._initContainer(id); this._initLayout(); - this._initHooks(); + this.callInitHooks(); this._initEvents(); if (options.maxBounds) { @@ -1381,11 +1479,9 @@ L.Map = L.Class.extend({ this._layers[id] = layer; // TODO getMaxZoom, getMinZoom in ILayer (instead of options) - if (layer.options && !isNaN(layer.options.maxZoom)) { - this._layersMaxZoom = Math.max(this._layersMaxZoom || 0, layer.options.maxZoom); - } - if (layer.options && !isNaN(layer.options.minZoom)) { - this._layersMinZoom = Math.min(this._layersMinZoom || Infinity, layer.options.minZoom); + if (layer.options && (!isNaN(layer.options.maxZoom) || !isNaN(layer.options.minZoom))) { + this._zoomBoundLayers[id] = layer; + this._updateZoomLevels(); } // TODO looks ugly, refactor!!! @@ -1411,6 +1507,10 @@ L.Map = L.Class.extend({ layer.onRemove(this); delete this._layers[id]; + if (this._zoomBoundLayers[id]) { + delete this._zoomBoundLayers[id]; + this._updateZoomLevels(); + } // TODO looks ugly, refactor if (this.options.zoomAnimation && L.TileLayer && (layer instanceof L.TileLayer)) { @@ -1648,7 +1748,6 @@ L.Map = L.Class.extend({ _initLayout: function () { var container = this._container; - container.innerHTML = ''; L.DomUtil.addClass(container, 'leaflet-container'); if (L.Browser.touch) { @@ -1697,19 +1796,11 @@ L.Map = L.Class.extend({ return L.DomUtil.create('div', className, container || this._panes.objectsPane); }, - _initializers: [], - - _initHooks: function () { - var i, len; - for (i = 0, len = this._initializers.length; i < len; i++) { - this._initializers[i].call(this); - } - }, - _initLayers: function (layers) { - layers = layers ? (layers instanceof Array ? layers : [layers]) : []; + layers = layers ? (L.Util.isArray(layers) ? layers : [layers]) : []; this._layers = {}; + this._zoomBoundLayers = {}; this._tileLayersNum = 0; var i, len; @@ -1768,6 +1859,30 @@ L.Map = L.Class.extend({ L.DomUtil.setPosition(this._mapPane, this._getMapPanePos().subtract(offset)); }, + _updateZoomLevels: function () { + var i, + minZoom = Infinity, + maxZoom = -Infinity; + + for (i in this._zoomBoundLayers) { + if (this._zoomBoundLayers.hasOwnProperty(i)) { + var layer = this._zoomBoundLayers[i]; + if (!isNaN(layer.options.minZoom)) { + minZoom = Math.min(minZoom, layer.options.minZoom); + } + if (!isNaN(layer.options.maxZoom)) { + maxZoom = Math.max(maxZoom, layer.options.maxZoom); + } + } + } + + if (i === undefined) { // we have no tilelayers + this._layersMaxZoom = this._layersMinZoom = undefined; + } else { + this._layersMaxZoom = maxZoom; + this._layersMinZoom = minZoom; + } + }, // map events @@ -1888,21 +2003,15 @@ L.Map = L.Class.extend({ } }); -L.Map.addInitHook = function (fn) { - var args = Array.prototype.slice.call(arguments, 1); - - var init = typeof fn === 'function' ? fn : function () { - this[fn].apply(this, args); - }; - - this.prototype._initializers.push(init); -}; - L.map = function (id, options) { return new L.Map(id, options); }; +/* + * Mercator projection that takes into account that the Earth is not a perfect sphere. + * Less popular than spherical mercator; used by projections like EPSG:3395. + */ L.Projection.Mercator = { MAX_LATITUDE: 85.0840591556, @@ -1952,7 +2061,7 @@ L.Projection.Mercator = { phi += dphi; } - return new L.LatLng(phi * d, lng, true); + return new L.LatLng(phi * d, lng); } }; @@ -2056,7 +2165,7 @@ L.TileLayer = L.Class.extend({ }, onRemove: function (map) { - map._panes.tilePane.removeChild(this._container); + this._container.parentNode.removeChild(this._container); map.off({ 'viewreset': this._resetCallback, @@ -2141,8 +2250,8 @@ L.TileLayer = L.Class.extend({ _setAutoZIndex: function (pane, compare) { - var layers = pane.getElementsByClassName('leaflet-layer'), - edgeZIndex = -compare(Infinity, -Infinity), // -Ifinity for max, Infinity for min + var layers = pane.children, + edgeZIndex = -compare(Infinity, -Infinity), // -Infinity for max, Infinity for min zIndex, i, len; for (i = 0, len = layers.length; i < len; i++) { @@ -2219,7 +2328,7 @@ L.TileLayer = L.Class.extend({ this._initContainer(); }, - _update: function (e) { + _update: function () { if (!this._map) { return; } @@ -2440,9 +2549,8 @@ L.TileLayer = L.Class.extend({ return this._createTile(); }, - _resetTile: function (tile) { - // Override if data stored on a tile needs to be cleaned up before reuse - }, + // Override if data stored on a tile needs to be cleaned up before reuse + _resetTile: function (/*tile*/) {}, _createTile: function () { var tile = this._tileImg.cloneNode(false); @@ -2465,7 +2573,7 @@ L.TileLayer = L.Class.extend({ } }, - _tileOnLoad: function (e) { + _tileOnLoad: function () { var layer = this._layer; //Only if we are loading an actual image @@ -2481,7 +2589,7 @@ L.TileLayer = L.Class.extend({ layer._tileLoaded(); }, - _tileOnError: function (e) { + _tileOnError: function () { var layer = this._layer; layer.fire('tileerror', { @@ -2503,6 +2611,10 @@ L.tileLayer = function (url, options) { }; +/* + * L.TileLayer.WMS is used for putting WMS tile layers on the map. + */ + L.TileLayer.WMS = L.TileLayer.extend({ defaultWmsParams: { @@ -2549,6 +2661,8 @@ L.TileLayer.WMS = L.TileLayer.extend({ getTileUrl: function (tilePoint, zoom) { // (Point, Number) -> String + this._adjustTilePoint(tilePoint); + var map = this._map, crs = map.options.crs, tileSize = this.options.tileSize, @@ -2563,7 +2677,7 @@ L.TileLayer.WMS = L.TileLayer.extend({ url = L.Util.template(this._url, {s: this._getSubdomain(tilePoint)}); - return url + L.Util.getParamString(this.wmsParams) + "&bbox=" + bbox; + return url + L.Util.getParamString(this.wmsParams, url) + "&bbox=" + bbox; }, setParams: function (params, noRedraw) { @@ -2583,6 +2697,11 @@ L.tileLayer.wms = function (url, options) { }; +/* + * L.TileLayer.Canvas is a class that you can use as a base for creating + * dynamically drawn Canvas-based tile layers. + */ + L.TileLayer.Canvas = L.TileLayer.extend({ options: { async: false @@ -2628,7 +2747,7 @@ L.TileLayer.Canvas = L.TileLayer.extend({ } }, - drawTile: function (tile, tilePoint) { + drawTile: function (/*tile, tilePoint*/) { // override with rendering code }, @@ -2643,6 +2762,10 @@ L.tileLayer.canvas = function (options) { }; +/* + * L.ImageOverlay is used to overlay images over the map (to specific geographical bounds). + */ + L.ImageOverlay = L.Class.extend({ includes: L.Mixin.Events, @@ -2742,8 +2865,7 @@ L.ImageOverlay = L.Class.extend({ topLeft = map._latLngToNewLayerPoint(nw, e.zoom, e.center), size = map._latLngToNewLayerPoint(se, e.zoom, e.center)._subtract(topLeft), - currentSize = map.latLngToLayerPoint(se)._subtract(map.latLngToLayerPoint(nw)), - origin = topLeft._add(size._subtract(currentSize)._divideBy(2)); + origin = topLeft._add(size._multiplyBy((1 / 2) * (1 - 1 / scale))); image.style[L.DomUtil.TRANSFORM] = L.DomUtil.getTranslateString(origin) + ' scale(' + scale + ') '; @@ -2752,7 +2874,7 @@ L.ImageOverlay = L.Class.extend({ _reset: function () { var image = this._image, topLeft = this._map.latLngToLayerPoint(this._bounds.getNorthWest()), - size = this._map.latLngToLayerPoint(this._bounds.getSouthEast())._subtract(topLeft); + size = this._map.latLngToLayerPoint(this._bounds.getSouthEast())._subtract(topLeft); L.DomUtil.setPosition(image, topLeft); @@ -2774,14 +2896,20 @@ L.imageOverlay = function (url, bounds, options) { }; +/* + * L.Icon is an image-based icon class that you can use with L.Marker for custom markers. + */ + L.Icon = L.Class.extend({ options: { /* iconUrl: (String) (required) + iconRetinaUrl: (String) (optional, used for retina devices if detected) iconSize: (Point) (can be set through CSS) iconAnchor: (Point) (centered by default, can be set in CSS with negative margins) popupAnchor: (Point) (if not specified, popup opens in the anchor point) shadowUrl: (Point) (no shadow by default) + shadowRetinaUrl: (String) (optional, used for retina devices if detected) shadowSize: (Point) shadowAnchor: (Point) */ @@ -2859,6 +2987,9 @@ L.Icon = L.Class.extend({ }, _getIconUrl: function (name) { + if (L.Browser.retina && this.options[name + 'RetinaUrl']) { + return this.options[name + 'RetinaUrl']; + } return this.options[name + 'Url']; } }); @@ -2868,6 +2999,9 @@ L.icon = function (options) { }; +/* + * L.Icon.Default is the blue marker icon used by default in Leaflet. + */ L.Icon.Default = L.Icon.extend({ @@ -2886,6 +3020,10 @@ L.Icon.Default = L.Icon.extend({ return this.options[key]; } + if (L.Browser.retina && name === 'icon') { + name += '@2x'; + } + var path = L.Icon.Default.imagePath; if (!path) { @@ -2977,12 +3115,14 @@ L.Marker = L.Class.extend({ this.update(); - this.fire('move', { latlng: this._latlng }); + return this.fire('move', { latlng: this._latlng }); }, setZIndexOffset: function (offset) { this.options.zIndexOffset = offset; this.update(); + + return this; }, setIcon: function (icon) { @@ -2996,13 +3136,17 @@ L.Marker = L.Class.extend({ this._initIcon(); this.update(); } + + return this; }, update: function () { - if (!this._icon) { return; } + if (this._icon) { + var pos = this._map.latLngToLayerPoint(this._latlng).round(); + this._setPos(pos); + } - var pos = this._map.latLngToLayerPoint(this._latlng).round(); - this._setPos(pos); + return this; }, _initIcon: function () { @@ -3094,12 +3238,13 @@ L.Marker = L.Class.extend({ }, _initInteraction: function () { - if (!this.options.clickable) { - return; - } + + if (!this.options.clickable) { return; } + + // TODO refactor into something shared with Map/Path/etc. to DRY it up var icon = this._icon, - events = ['dblclick', 'mousedown', 'mouseover', 'mouseout']; + events = ['dblclick', 'mousedown', 'mouseover', 'mouseout', 'contextmenu']; L.DomUtil.addClass(icon, 'leaflet-clickable'); L.DomEvent.on(icon, 'click', this._onMouseClick, this); @@ -3119,20 +3264,31 @@ L.Marker = L.Class.extend({ _onMouseClick: function (e) { var wasDragged = this.dragging && this.dragging.moved(); + if (this.hasEventListeners(e.type) || wasDragged) { L.DomEvent.stopPropagation(e); } + if (wasDragged) { return; } - if (this._map.dragging && this._map.dragging.moved()) { return; } + + if ((!this.dragging || !this.dragging._enabled) && this._map.dragging && this._map.dragging.moved()) { return; } + this.fire(e.type, { originalEvent: e }); }, _fireMouseEvent: function (e) { + this.fire(e.type, { originalEvent: e }); + + // TODO proper custom event propagation + // this line will always be called if marker is in a FeatureGroup + if (e.type === 'contextmenu' && this.hasEventListeners(e.type)) { + L.DomEvent.preventDefault(e); + } if (e.type !== 'mousedown') { L.DomEvent.stopPropagation(e); } @@ -3166,6 +3322,11 @@ L.marker = function (latlng, options) { }; +/* + * L.DivIcon is a lightweight HTML-based icon class (as opposed to the image-based L.Icon) + * to use with L.Marker. + */ + L.DivIcon = L.Icon.extend({ options: { iconSize: new L.Point(12, 12), // also can be set through CSS @@ -3205,6 +3366,9 @@ L.divIcon = function (options) { }; +/* + * L.Popup is used for displaying popups on the map. + */ L.Map.mergeOptions({ closePopupOnClick: true @@ -3221,13 +3385,15 @@ L.Popup = L.Class.extend({ closeButton: true, offset: new L.Point(0, 6), autoPanPadding: new L.Point(5, 5), - className: '' + className: '', + zoomAnimation: true }, initialize: function (options, source) { L.setOptions(this, options); this._source = source; + this._animated = L.Browser.any3d && this.options.zoomAnimation; }, onAdd: function (map) { @@ -3247,7 +3413,7 @@ L.Popup = L.Class.extend({ map.on('viewreset', this._updatePosition, this); - if (L.Browser.any3d) { + if (this._animated) { map.on('zoomanim', this._zoomAnimation, this); } @@ -3316,7 +3482,8 @@ L.Popup = L.Class.extend({ _initLayout: function () { var prefix = 'leaflet-popup', - containerClass = prefix + ' ' + this.options.className + ' leaflet-zoom-animated', + containerClass = prefix + ' ' + this.options.className + ' leaflet-zoom-' + + (this._animated ? 'animated' : 'hide'), container = this._container = L.DomUtil.create('div', containerClass), closeButton; @@ -3402,15 +3569,15 @@ L.Popup = L.Class.extend({ if (!this._map) { return; } var pos = this._map.latLngToLayerPoint(this._latlng), - is3d = L.Browser.any3d, + animated = this._animated, offset = this.options.offset; - if (is3d) { + if (animated) { L.DomUtil.setPosition(this._container, pos); } - this._containerBottom = -offset.y - (is3d ? 0 : pos.y); - this._containerLeft = -Math.round(this._containerWidth / 2) + offset.x + (is3d ? 0 : pos.x); + this._containerBottom = -offset.y - (animated ? 0 : pos.y); + this._containerLeft = -Math.round(this._containerWidth / 2) + offset.x + (animated ? 0 : pos.x); //Bottom position the popup in case the height of the popup changes (images loading etc) this._container.style.bottom = this._containerBottom + 'px'; @@ -3432,7 +3599,7 @@ L.Popup = L.Class.extend({ layerPos = new L.Point(this._containerLeft, -containerHeight - this._containerBottom); - if (L.Browser.any3d) { + if (this._animated) { layerPos._add(L.DomUtil.getPosition(this._container)); } @@ -3472,7 +3639,7 @@ L.popup = function (options, source) { /* - * Popup extension to L.Marker, adding openPopup & bindPopup methods. + * Popup extension to L.Marker, adding popup-related methods. */ L.Marker.include({ @@ -3533,6 +3700,9 @@ L.Marker.include({ }); +/* + * Adds popup-related methods to L.Map. + */ L.Map.include({ openPopup: function (popup) { @@ -3555,7 +3725,8 @@ L.Map.include({ /* - * L.LayerGroup is a class to combine several layers so you can manipulate the group (e.g. add/remove it) as one layer. + * L.LayerGroup is a class to combine several layers into one so that + * you can manipulate the group (e.g. add/remove it) as one layer. */ L.LayerGroup = L.Class.extend({ @@ -3638,6 +3809,10 @@ L.LayerGroup = L.Class.extend({ method.call(context, this._layers[i]); } } + }, + + setZIndex: function (zIndex) { + return this.invoke('setZIndex', zIndex); } }); @@ -3647,7 +3822,8 @@ L.layerGroup = function (layers) { /* - * L.FeatureGroup extends L.LayerGroup by introducing mouse events and bindPopup method shared between a group of layers. + * L.FeatureGroup extends L.LayerGroup by introducing mouse events and additional methods + * shared between a group of interactive layers (like vectors or markers). */ L.FeatureGroup = L.LayerGroup.extend({ @@ -3667,7 +3843,7 @@ L.FeatureGroup = L.LayerGroup.extend({ L.LayerGroup.prototype.addLayer.call(this, layer); if (this._popupContent && layer.bindPopup) { - layer.bindPopup(this._popupContent); + layer.bindPopup(this._popupContent, this._popupOptions); } return this.fire('layeradd', {layer: layer}); @@ -3686,9 +3862,10 @@ L.FeatureGroup = L.LayerGroup.extend({ return this.fire('layerremove', {layer: layer}); }, - bindPopup: function (content) { + bindPopup: function (content, options) { this._popupContent = content; - return this.invoke('bindPopup', content); + this._popupOptions = options; + return this.invoke('bindPopup', content, options); }, setStyle: function (style) { @@ -3775,6 +3952,8 @@ L.Path = L.Class.extend({ this._map._pathRoot.appendChild(this._container); } + this.fire('add'); + map.on({ 'viewreset': this.projectLatlngs, 'moveend': this._updatePath @@ -3789,6 +3968,8 @@ L.Path = L.Class.extend({ onRemove: function (map) { map._pathRoot.removeChild(this._container); + // Need to fire remove event before we set _map to null as the event hooks might need the object + this.fire('remove'); this._map = null; if (L.Browser.vml) { @@ -3797,8 +3978,6 @@ L.Path = L.Class.extend({ this._fill = null; } - this.fire('remove'); - map.off({ 'viewreset': this.projectLatlngs, 'moveend': this._updatePath @@ -3841,6 +4020,10 @@ L.Map.include({ }); +/* + * Extends L.Path with SVG-specific rendering code. + */ + L.Path.SVG_NS = 'http://www.w3.org/2000/svg'; L.Browser.svg = !!(document.createElementNS && document.createElementNS(L.Path.SVG_NS, 'svg').createSVGRect); @@ -4002,13 +4185,12 @@ L.Map.include({ } }, - _animatePathZoom: function (opt) { - var scale = this.getZoomScale(opt.zoom), - offset = this._getCenterOffset(opt.center), - translate = offset.multiplyBy(-scale)._add(this._pathViewport.min); + _animatePathZoom: function (e) { + var scale = this.getZoomScale(e.zoom), + offset = this._getCenterOffset(e.center)._multiplyBy(-scale)._add(this._pathViewport.min); this._pathRoot.style[L.DomUtil.TRANSFORM] = - L.DomUtil.getTranslateString(translate) + ' scale(' + scale + ') '; + L.DomUtil.getTranslateString(offset) + ' scale(' + scale + ') '; this._pathZooming = true; }, @@ -4054,7 +4236,7 @@ L.Map.include({ /* - * Popup extension to L.Path (polylines, polygons, circles), adding bindPopup method. + * Popup extension to L.Path (polylines, polygons, circles), adding popup-related methods. */ L.Path.include({ @@ -4082,7 +4264,7 @@ L.Path.include({ if (this._popup) { this._popup = null; this - .off('click', this.openPopup) + .off('click', this._openPopup) .off('remove', this.closePopup); this._popupHandlersAdded = false; @@ -4193,11 +4375,15 @@ L.Path = L.Browser.svg || !L.Browser.vml ? L.Path : L.Path.extend({ stroke.weight = options.weight + 'px'; stroke.color = options.color; stroke.opacity = options.opacity; + if (options.dashArray) { - stroke.dashStyle = options.dashArray.replace(/ *, */g, ' '); + stroke.dashStyle = options.dashArray instanceof Array ? + options.dashArray.join(' ') : + options.dashArray.replace(/ *, */g, ' '); } else { stroke.dashStyle = ''; } + } else if (stroke) { container.removeChild(stroke); this._stroke = null; @@ -4210,6 +4396,7 @@ L.Path = L.Browser.svg || !L.Browser.vml ? L.Path : L.Path.extend({ } fill.color = options.fillColor || options.color; fill.opacity = options.fillOpacity; + } else if (fill) { container.removeChild(fill); this._fill = null; @@ -4277,6 +4464,10 @@ L.Path = (L.Path.SVG && !window.L_PREFER_CANVAS) || !L.Browser.canvas ? L.Path : .off('viewreset', this.projectLatlngs, this) .off('moveend', this._updatePath, this); + if (this.options.clickable) { + this._map.off('click', this._onClick, this); + } + this._requestUpdate(); this._map = null; @@ -4344,16 +4535,12 @@ L.Path = (L.Path.SVG && !window.L_PREFER_CANVAS) || !L.Browser.canvas ? L.Path : this._updateStyle(); if (options.fill) { - if (options.fillOpacity < 1) { - ctx.globalAlpha = options.fillOpacity; - } + ctx.globalAlpha = options.fillOpacity; ctx.fill(); } if (options.stroke) { - if (options.opacity < 1) { - ctx.globalAlpha = options.opacity; - } + ctx.globalAlpha = options.opacity; ctx.stroke(); } @@ -4372,7 +4559,12 @@ L.Path = (L.Path.SVG && !window.L_PREFER_CANVAS) || !L.Browser.canvas ? L.Path : _onClick: function (e) { if (this._containsPoint(e.layerPoint)) { - this.fire('click', e); + this.fire('click', { + latlng: e.latlng, + layerPoint: e.layerPoint, + containerPoint: e.containerPoint, + originalEvent: e + }); } } }); @@ -4426,6 +4618,8 @@ L.Map.include((L.Path.SVG && !window.L_PREFER_CANVAS) || !L.Browser.canvas ? {} * and polylines (clipping, simplification, distances, etc.) */ +/*jshint bitwise:false */ // allow bitwise oprations for this file + L.LineUtil = { // Simplify polyline with vertex reduction and Douglas-Peucker simplification. @@ -4517,16 +4711,11 @@ L.LineUtil = { return reducedPoints; }, - /*jshint bitwise:false */ // temporarily allow bitwise oprations - // Cohen-Sutherland line clipping algorithm. // Used to avoid rendering parts of a polyline that are not currently visible. clipSegment: function (a, b, bounds, useLastCode) { - var min = bounds.min, - max = bounds.max, - - codeA = useLastCode ? this._lastCode : this._getBitCode(a, bounds), + var codeA = useLastCode ? this._lastCode : this._getBitCode(a, bounds), codeB = this._getBitCode(b, bounds), codeOut, p, newCode; @@ -4592,8 +4781,6 @@ L.LineUtil = { return code; }, - /*jshint bitwise:true */ - // square distance (to avoid unnecessary Math.sqrt calls) _sqDist: function (p1, p2) { var dx = p2.x - p1.x, @@ -4630,20 +4817,15 @@ L.LineUtil = { }; +/* + * L.Polygon is used to display polylines on a map. + */ + L.Polyline = L.Path.extend({ initialize: function (latlngs, options) { L.Path.prototype.initialize.call(this, options); this._latlngs = this._convertLatLngs(latlngs); - - // TODO refactor: move to Polyline.Edit.js - if (L.Handler.PolyEdit) { - this.editing = new L.Handler.PolyEdit(this); - - if (this.options.editable) { - this.editing.enable(); - } - } }, options: { @@ -4682,7 +4864,7 @@ L.Polyline = L.Path.extend({ return this.redraw(); }, - spliceLatLngs: function (index, howMany) { + spliceLatLngs: function () { // (Number index, Number howMany) var removed = [].splice.apply(this._latlngs, arguments); this._convertLatLngs(this._latlngs); this.redraw(); @@ -4722,27 +4904,10 @@ L.Polyline = L.Path.extend({ return bounds; }, - // TODO refactor: move to Polyline.Edit.js - onAdd: function (map) { - L.Path.prototype.onAdd.call(this, map); - - if (this.editing && this.editing.enabled()) { - this.editing.addHooks(); - } - }, - - onRemove: function (map) { - if (this.editing && this.editing.enabled()) { - this.editing.removeHooks(); - } - - L.Path.prototype.onRemove.call(this, map); - }, - _convertLatLngs: function (latlngs) { var i, len; for (i = 0, len = latlngs.length; i < len; i++) { - if (latlngs[i] instanceof Array && typeof latlngs[i][0] !== 'number') { + if (L.Util.isArray(latlngs[i]) && typeof latlngs[i][0] !== 'number') { return; } latlngs[i] = L.latLng(latlngs[i]); @@ -4826,10 +4991,10 @@ L.polyline = function (latlngs, options) { /* - * L.PolyUtil contains utilify functions for polygons (clipping, etc.). + * L.PolyUtil contains utility functions for polygons (clipping, etc.). */ -/*jshint bitwise:false */ // allow bitwise oprations here +/*jshint bitwise:false */ // allow bitwise operations here L.PolyUtil = {}; @@ -4838,9 +5003,7 @@ L.PolyUtil = {}; * Used to avoid rendering parts of a polygon that are not currently visible. */ L.PolyUtil.clipPolygon = function (points, bounds) { - var min = bounds.min, - max = bounds.max, - clippedPoints, + var clippedPoints, edges = [1, 4, 2, 8], i, j, k, a, b, @@ -4883,8 +5046,6 @@ L.PolyUtil.clipPolygon = function (points, bounds) { return points; }; -/*jshint bitwise:true */ - /* * L.Polygon is used to display polygons on a map. @@ -4898,7 +5059,7 @@ L.Polygon = L.Polyline.extend({ initialize: function (latlngs, options) { L.Polyline.prototype.initialize.call(this, latlngs, options); - if (latlngs && (latlngs[0] instanceof Array) && (typeof latlngs[0][0] !== 'number')) { + if (latlngs && L.Util.isArray(latlngs[0]) && (typeof latlngs[0][0] !== 'number')) { this._latlngs = this._convertLatLngs(latlngs[0]); this._holes = latlngs.slice(1); } @@ -4913,7 +5074,7 @@ L.Polygon = L.Polyline.extend({ if (!this._holes) { return; } - var i, j, len, len2, hole; + var i, j, len, len2; for (i = 0, len = this._holes.length; i < len; i++) { this._holePoints[i] = []; @@ -5003,7 +5164,7 @@ L.polygon = function (latlngs, options) { /* - * L.Rectangle extends Polygon and creates a rectangle when passed a LatLngBounds + * L.Rectangle extends Polygon and creates a rectangle when passed a LatLngBounds object. */ L.Rectangle = L.Polygon.extend({ @@ -5021,8 +5182,7 @@ L.Rectangle = L.Polygon.extend({ latLngBounds.getSouthWest(), latLngBounds.getNorthWest(), latLngBounds.getNorthEast(), - latLngBounds.getSouthEast(), - latLngBounds.getSouthWest() + latLngBounds.getSouthEast() ]; } }); @@ -5060,7 +5220,7 @@ L.Circle = L.Path.extend({ projectLatlngs: function () { var lngRadius = this._getLngRadius(), - latlng2 = new L.LatLng(this._latlng.lat, this._latlng.lng - lngRadius, true), + latlng2 = new L.LatLng(this._latlng.lat, this._latlng.lng - lngRadius), point2 = this._map.latLngToLayerPoint(latlng2); this._point = this._map.latLngToLayerPoint(this._latlng); @@ -5150,6 +5310,11 @@ L.CircleMarker = L.Circle.extend({ projectLatlngs: function () { this._point = this._map.latLngToLayerPoint(this._latlng); }, + + _updateStyle : function () { + L.Circle.prototype._updateStyle.call(this); + this.setRadius(this.options.radius); + }, setRadius: function (radius) { this._radius = radius; @@ -5162,6 +5327,9 @@ L.circleMarker = function (latlng, options) { }; +/* + * Extends L.Polyline to be able to manually detect clicks on Canvas-rendered polylines. + */ L.Polyline.include(!L.Path.CANVAS ? {} : { _containsPoint: function (p, closed) { @@ -5191,6 +5359,9 @@ L.Polyline.include(!L.Path.CANVAS ? {} : { }); +/* + * Extends L.Polygon to be able to manually detect clicks on Canvas-rendered polygons. + */ L.Polygon.include(!L.Path.CANVAS ? {} : { _containsPoint: function (p) { @@ -5228,7 +5399,7 @@ L.Polygon.include(!L.Path.CANVAS ? {} : { /* - * Circle canvas specific drawing parts. + * Extends L.Circle with Canvas-specific code. */ L.Circle.include(!L.Path.CANVAS ? {} : { @@ -5247,7 +5418,12 @@ L.Circle.include(!L.Path.CANVAS ? {} : { }); +/* + * L.GeoJSON turns any GeoJSON data into a Leaflet layer. + */ + L.GeoJSON = L.FeatureGroup.extend({ + initialize: function (geojson, options) { L.setOptions(this, options); @@ -5259,12 +5435,15 @@ L.GeoJSON = L.FeatureGroup.extend({ }, addData: function (geojson) { - var features = geojson instanceof Array ? geojson : geojson.features, + var features = L.Util.isArray(geojson) ? geojson : geojson.features, i, len; if (features) { for (i = 0, len = features.length; i < len; i++) { - this.addData(features[i]); + // Only add this if geometry or geometries are set and not null + if (features[i].geometries || features[i].geometry) { + this.addData(features[i]); + } } return this; } @@ -5276,6 +5455,7 @@ L.GeoJSON = L.FeatureGroup.extend({ var layer = L.GeoJSON.geometryToLayer(geojson, options.pointToLayer); layer.feature = geojson; + layer.defaultOptions = layer.options; this.resetStyle(layer); if (options.onEachFeature) { @@ -5288,6 +5468,9 @@ L.GeoJSON = L.FeatureGroup.extend({ resetStyle: function (layer) { var style = this.options.style; if (style) { + // reset any custom styles + L.Util.extend(layer.options, layer.defaultOptions); + this._setLayerStyle(layer, style); } }, @@ -5340,13 +5523,17 @@ L.extend(L.GeoJSON, { latlngs = this.coordsToLatLngs(coords, 1); return new L.MultiPolyline(latlngs); - case "MultiPolygon": + case 'MultiPolygon': latlngs = this.coordsToLatLngs(coords, 2); return new L.MultiPolygon(latlngs); - case "GeometryCollection": + case 'GeometryCollection': for (i = 0, len = geometry.geometries.length; i < len; i++) { - layer = this.geometryToLayer(geometry.geometries[i], pointToLayer); + layer = this.geometryToLayer({ + geometry: geometry.geometries[i], + type: 'Feature', + properties: geojson.properties + }, pointToLayer); layers.push(layer); } return new L.FeatureGroup(layers); @@ -5360,7 +5547,7 @@ L.extend(L.GeoJSON, { var lat = parseFloat(coords[reverse ? 0 : 1]), lng = parseFloat(coords[reverse ? 1 : 0]); - return new L.LatLng(lat, lng, true); + return new L.LatLng(lat, lng); }, coordsToLatLngs: function (coords, levelsDeep, reverse) { // (Array, Number, Boolean) -> Array @@ -5390,7 +5577,7 @@ L.geoJson = function (geojson, options) { */ L.DomEvent = { - /* inpired by John Resig, Dean Edwards and YUI addEvent implementations */ + /* inspired by John Resig, Dean Edwards and YUI addEvent implementations */ addListener: function (obj, type, fn, context) { // (HTMLElement, String, Function[, Object]) var id = L.stamp(fn), @@ -5405,10 +5592,12 @@ L.DomEvent = { if (L.Browser.msTouch && type.indexOf('touch') === 0) { return this.addMsTouchListener(obj, type, handler, id); - } else if (L.Browser.touch && (type === 'dblclick') && this.addDoubleTapListener) { - return this.addDoubleTapListener(obj, handler, id); + } + if (L.Browser.touch && (type === 'dblclick') && this.addDoubleTapListener) { + this.addDoubleTapListener(obj, handler, id); + } - } else if ('addEventListener' in obj) { + if ('addEventListener' in obj) { if (type === 'mousewheel') { obj.addEventListener('DOMMouseScroll', handler, false); @@ -5486,8 +5675,11 @@ L.DomEvent = { var stop = L.DomEvent.stopPropagation; + for (var i = L.Draggable.START.length - 1; i >= 0; i--) { + L.DomEvent.addListener(el, L.Draggable.START[i], stop); + } + return L.DomEvent - .addListener(el, L.Draggable.START, stop) .addListener(el, 'click', stop) .addListener(el, 'dblclick', stop); }, @@ -5547,9 +5739,8 @@ L.DomEvent = { return (related !== el); }, - /*jshint noarg:false */ _getEvent: function () { // evil magic for IE - + /*jshint noarg:false */ var e = window.event; if (!e) { var caller = arguments.callee.caller; @@ -5563,7 +5754,6 @@ L.DomEvent = { } return e; } - /*jshint noarg:false */ }; L.DomEvent.on = L.DomEvent.addListener; @@ -5578,9 +5768,17 @@ L.Draggable = L.Class.extend({ includes: L.Mixin.Events, statics: { - START: L.Browser.touch ? 'touchstart' : 'mousedown', - END: L.Browser.touch ? 'touchend' : 'mouseup', - MOVE: L.Browser.touch ? 'touchmove' : 'mousemove', + START: L.Browser.touch ? ['touchstart', 'mousedown'] : ['mousedown'], + END: { + mousedown: 'mouseup', + touchstart: 'touchend', + MSPointerDown: 'touchend' + }, + MOVE: { + mousedown: 'mousemove', + touchstart: 'touchmove', + MSPointerDown: 'touchmove' + }, TAP_TOLERANCE: 15 }, @@ -5593,14 +5791,18 @@ L.Draggable = L.Class.extend({ enable: function () { if (this._enabled) { return; } - L.DomEvent.on(this._dragStartTarget, L.Draggable.START, this._onDown, this); + for (var i = L.Draggable.START.length - 1; i >= 0; i--) { + L.DomEvent.on(this._dragStartTarget, L.Draggable.START[i], this._onDown, this); + } this._enabled = true; }, disable: function () { if (!this._enabled) { return; } - L.DomEvent.off(this._dragStartTarget, L.Draggable.START, this._onDown); + for (var i = L.Draggable.START.length - 1; i >= 0; i--) { + L.DomEvent.off(this._dragStartTarget, L.Draggable.START[i], this._onDown, this); + } this._enabled = false; this._moved = false; }, @@ -5648,8 +5850,8 @@ L.Draggable = L.Class.extend({ }, this), 1000); } - L.DomEvent.on(document, L.Draggable.MOVE, this._onMove, this); - L.DomEvent.on(document, L.Draggable.END, this._onUp, this); + L.DomEvent.on(document, L.Draggable.MOVE[e.type], this._onMove, this); + L.DomEvent.on(document, L.Draggable.END[e.type], this._onUp, this); }, _onMove: function (e) { @@ -5710,8 +5912,12 @@ L.Draggable = L.Class.extend({ this._restoreCursor(); } - L.DomEvent.off(document, L.Draggable.MOVE, this._onMove); - L.DomEvent.off(document, L.Draggable.END, this._onUp); + for (var i in L.Draggable.MOVE) { + if (L.Draggable.MOVE.hasOwnProperty(i)) { + L.DomEvent.off(document, L.Draggable.MOVE[i], this._onMove); + L.DomEvent.off(document, L.Draggable.END[i], this._onUp); + } + } if (this._moved) { // ensure drag is not fired after dragend @@ -5750,8 +5956,9 @@ L.Draggable = L.Class.extend({ /* - * L.Handler classes are used internally to inject interaction features to classes like Map and Marker. - */ + L.Handler is a base class for handler classes that are used internally to inject + interaction features like dragging to classes like Map and Marker. +*/ L.Handler = L.Class.extend({ initialize: function (map) { @@ -5779,7 +5986,7 @@ L.Handler = L.Class.extend({ /* - * L.Handler.MapDrag is used internally by L.Map to make the map draggable. + * L.Handler.MapDrag is used to make the map draggable (with panning inertia), enabled by default. */ L.Map.mergeOptions({ @@ -5794,7 +6001,7 @@ L.Map.mergeOptions({ longPress: true, // TODO refactor, move to CRS - worldCopyJump: true + worldCopyJump: false }); L.Map.Drag = L.Handler.extend({ @@ -5863,6 +6070,7 @@ L.Map.Drag = L.Handler.extend({ }, _onViewReset: function () { + // TODO fix hardcoded Earth values var pxCenter = this._map.getSize()._divideBy(2), pxWorldCenter = this._map.latLngToLayerPoint(new L.LatLng(0, 0)); @@ -5872,8 +6080,7 @@ L.Map.Drag = L.Handler.extend({ _onPreDrag: function () { // TODO refactor to be able to adjust map pane position after zoom - var map = this._map, - worldWidth = this._worldWidth, + var worldWidth = this._worldWidth, halfWidth = Math.round(worldWidth / 2), dx = this._initialWorldOffset, x = this._draggable._newPos.x, @@ -5889,9 +6096,7 @@ L.Map.Drag = L.Handler.extend({ options = map.options, delay = +new Date() - this._lastTime, - noInertia = !options.inertia || - delay > options.inertiaThreshold || - !this._positions[0]; + noInertia = !options.inertia || delay > options.inertiaThreshold || !this._positions[0]; if (noInertia) { map.fire('moveend'); @@ -5900,18 +6105,19 @@ L.Map.Drag = L.Handler.extend({ var direction = this._lastPos.subtract(this._positions[0]), duration = (this._lastTime + delay - this._times[0]) / 1000, + ease = options.easeLinearity, - speedVector = direction.multiplyBy(options.easeLinearity / duration), + speedVector = direction.multiplyBy(ease / duration), speed = speedVector.distanceTo(new L.Point(0, 0)), limitedSpeed = Math.min(options.inertiaMaxSpeed, speed), limitedSpeedVector = speedVector.multiplyBy(limitedSpeed / speed), - decelerationDuration = limitedSpeed / (options.inertiaDeceleration * options.easeLinearity), + decelerationDuration = limitedSpeed / (options.inertiaDeceleration * ease), offset = limitedSpeedVector.multiplyBy(-decelerationDuration / 2).round(); L.Util.requestAnimFrame(function () { - map.panBy(offset, decelerationDuration, options.easeLinearity); + map.panBy(offset, decelerationDuration, ease); }); } @@ -5932,7 +6138,7 @@ L.Map.addInitHook('addHandler', 'dragging', L.Map.Drag); /* - * L.Handler.DoubleClickZoom is used internally by L.Map to add double-click zooming. + * L.Handler.DoubleClickZoom is used to handle double-click zoom on the map, enabled by default. */ L.Map.mergeOptions({ @@ -5955,12 +6161,13 @@ L.Map.DoubleClickZoom = L.Handler.extend({ L.Map.addInitHook('addHandler', 'doubleClickZoom', L.Map.DoubleClickZoom); + /* * L.Handler.ScrollWheelZoom is used by L.Map to enable mouse scroll wheel zoom on the map. */ L.Map.mergeOptions({ - scrollWheelZoom: !L.Browser.touch || L.Browser.msTouch + scrollWheelZoom: true }); L.Map.ScrollWheelZoom = L.Handler.extend({ @@ -5994,9 +6201,10 @@ L.Map.ScrollWheelZoom = L.Handler.extend({ _performZoom: function () { var map = this._map, - delta = Math.round(this._delta), + delta = this._delta, zoom = map.getZoom(); + delta = delta > 0 ? Math.ceil(delta) : Math.round(delta); delta = Math.max(Math.min(delta, 4), -4); delta = map._limitZoom(zoom + delta) - zoom; @@ -6026,6 +6234,10 @@ L.Map.ScrollWheelZoom = L.Handler.extend({ L.Map.addInitHook('addHandler', 'scrollWheelZoom', L.Map.ScrollWheelZoom); +/* + * Extends the event handling code with double tap support for mobile browsers. + */ + L.extend(L.DomEvent, { _touchstart: L.Browser.msTouch ? 'MSPointerDown' : 'touchstart', @@ -6061,7 +6273,9 @@ L.extend(L.DomEvent, { doubleTap = (delta > 0 && delta <= delay); last = now; } + function onTouchEnd(e) { + /*jshint forin:false */ if (L.Browser.msTouch) { var idx = trackedTouches.indexOf(e.pointerId); if (idx === -1) { @@ -6075,14 +6289,13 @@ L.extend(L.DomEvent, { //Work around .type being readonly with MSPointer* events var newTouch = { }, prop; + for (var i in touch) { - if (true) { //Make JSHint happy, we want to copy all properties - prop = touch[i]; - if (typeof prop === 'function') { - newTouch[i] = prop.bind(touch); - } else { - newTouch[i] = prop; - } + prop = touch[i]; + if (typeof prop === 'function') { + newTouch[i] = prop.bind(touch); + } else { + newTouch[i] = prop; } } touch = newTouch; @@ -6119,6 +6332,10 @@ L.extend(L.DomEvent, { }); +/* + * Extends L.DomEvent to provide touch support for Internet Explorer and Windows-based devices. + */ + L.extend(L.DomEvent, { _msTouches: [], @@ -6357,7 +6574,7 @@ L.Map.TouchZoom = L.Handler.extend({ L.DomUtil.getScaleString(this._scale, this._startCenter); }, - _onTouchEnd: function (e) { + _onTouchEnd: function () { if (!this._moved || !this._zooming) { return; } var map = this._map; @@ -6397,7 +6614,8 @@ L.Map.addInitHook('addHandler', 'touchZoom', L.Map.TouchZoom); /* - * L.Handler.ShiftDragZoom is used internally by L.Map to add shift-drag zoom (zoom to a selected bounding box). + * L.Handler.ShiftDragZoom is used to add shift-drag zoom interaction to the map + * (zoom to a selected bounding box), enabled by default. */ L.Map.mergeOptions({ @@ -6469,9 +6687,11 @@ L.Map.BoxZoom = L.Handler.extend({ .off(document, 'mouseup', this._onMouseUp); var map = this._map, - layerPoint = map.mouseEventToLayerPoint(e), + layerPoint = map.mouseEventToLayerPoint(e); + + if (this._startLayerPoint.equals(layerPoint)) { return; } - bounds = new L.LatLngBounds( + var bounds = new L.LatLngBounds( map.layerPointToLatLng(this._startLayerPoint), map.layerPointToLatLng(layerPoint)); @@ -6486,6 +6706,10 @@ L.Map.BoxZoom = L.Handler.extend({ L.Map.addInitHook('addHandler', 'boxZoom', L.Map.BoxZoom); +/* + * L.Map.Keyboard is handling keyboard interaction with the map, enabled by default. + */ + L.Map.mergeOptions({ keyboard: true, keyboardPanOffset: 80, @@ -6494,14 +6718,13 @@ L.Map.mergeOptions({ L.Map.Keyboard = L.Handler.extend({ - // list of e.keyCode values for particular actions keyCodes: { left: [37], right: [39], down: [40], up: [38], zoomIn: [187, 107, 61], - zoomOut: [189, 109] + zoomOut: [189, 109, 173] }, initialize: function (map) { @@ -6520,9 +6743,9 @@ L.Map.Keyboard = L.Handler.extend({ } L.DomEvent - .addListener(container, 'focus', this._onFocus, this) - .addListener(container, 'blur', this._onBlur, this) - .addListener(container, 'mousedown', this._onMouseDown, this); + .on(container, 'focus', this._onFocus, this) + .on(container, 'blur', this._onBlur, this) + .on(container, 'mousedown', this._onMouseDown, this); this._map .on('focus', this._addHooks, this) @@ -6535,9 +6758,9 @@ L.Map.Keyboard = L.Handler.extend({ var container = this._map._container; L.DomEvent - .removeListener(container, 'focus', this._onFocus, this) - .removeListener(container, 'blur', this._onBlur, this) - .removeListener(container, 'mousedown', this._onMouseDown, this); + .off(container, 'focus', this._onFocus, this) + .off(container, 'blur', this._onBlur, this) + .off(container, 'mousedown', this._onMouseDown, this); this._map .off('focus', this._addHooks, this) @@ -6593,21 +6816,26 @@ L.Map.Keyboard = L.Handler.extend({ }, _addHooks: function () { - L.DomEvent.addListener(document, 'keydown', this._onKeyDown, this); + L.DomEvent.on(document, 'keydown', this._onKeyDown, this); }, _removeHooks: function () { - L.DomEvent.removeListener(document, 'keydown', this._onKeyDown, this); + L.DomEvent.off(document, 'keydown', this._onKeyDown, this); }, _onKeyDown: function (e) { - var key = e.keyCode; + var key = e.keyCode, + map = this._map; if (this._panKeys.hasOwnProperty(key)) { - this._map.panBy(this._panKeys[key]); + map.panBy(this._panKeys[key]); + + if (map.options.maxBounds) { + map.panInsideBounds(map.options.maxBounds); + } } else if (this._zoomKeys.hasOwnProperty(key)) { - this._map.setZoom(this._map.getZoom() + this._zoomKeys[key]); + map.setZoom(map.getZoom() + this._zoomKeys[key]); } else { return; @@ -6648,14 +6876,14 @@ L.Handler.MarkerDrag = L.Handler.extend({ return this._draggable && this._draggable._moved; }, - _onDragStart: function (e) { + _onDragStart: function () { this._marker .closePopup() .fire('movestart') .fire('dragstart'); }, - _onDrag: function (e) { + _onDrag: function () { var marker = this._marker, shadow = marker._shadow, iconPos = L.DomUtil.getPosition(marker._icon), @@ -6681,6 +6909,10 @@ L.Handler.MarkerDrag = L.Handler.extend({ }); +/* + * L.Handler.PolyEdit is an editing handler for polylines and polygons. + */ + L.Handler.PolyEdit = L.Handler.extend({ options: { icon: new L.DivIcon({ @@ -6904,7 +7136,34 @@ L.Handler.PolyEdit = L.Handler.extend({ } }); +L.Polyline.addInitHook(function () { + + if (L.Handler.PolyEdit) { + this.editing = new L.Handler.PolyEdit(this); + + if (this.options.editable) { + this.editing.enable(); + } + } + this.on('add', function () { + if (this.editing && this.editing.enabled()) { + this.editing.addHooks(); + } + }); + + this.on('remove', function () { + if (this.editing && this.editing.enabled()) { + this.editing.removeHooks(); + } + }); +}); + + +/* + * L.Control is a base class for implementing map controls. Handles positioning. + * All other controls extend from this class. + */ L.Control = L.Class.extend({ options: { @@ -6973,6 +7232,10 @@ L.control = function (options) { }; +/* + * Adds control-related methods to L.Map. + */ + L.Map.include({ addControl: function (control) { control.addTo(this); @@ -7004,23 +7267,44 @@ L.Map.include({ }); +/* + * L.Control.Zoom is used for the default zoom buttons on the map. + */ + L.Control.Zoom = L.Control.extend({ options: { position: 'topleft' }, onAdd: function (map) { - var className = 'leaflet-control-zoom', - container = L.DomUtil.create('div', className); + var zoomName = 'leaflet-control-zoom', + barName = 'leaflet-bar', + partName = barName + '-part', + container = L.DomUtil.create('div', zoomName + ' ' + barName); this._map = map; - this._createButton('Zoom in', className + '-in', container, this._zoomIn, this); - this._createButton('Zoom out', className + '-out', container, this._zoomOut, this); + this._zoomInButton = this._createButton('+', 'Zoom in', + zoomName + '-in ' + + partName + ' ' + + partName + '-top', + container, this._zoomIn, this); + + this._zoomOutButton = this._createButton('-', 'Zoom out', + zoomName + '-out ' + + partName + ' ' + + partName + '-bottom', + container, this._zoomOut, this); + + map.on('zoomend', this._updateDisabled, this); return container; }, + onRemove: function (map) { + map.off('zoomend', this._updateDisabled, this); + }, + _zoomIn: function (e) { this._map.zoomIn(e.shiftKey ? 3 : 1); }, @@ -7029,19 +7313,37 @@ L.Control.Zoom = L.Control.extend({ this._map.zoomOut(e.shiftKey ? 3 : 1); }, - _createButton: function (title, className, container, fn, context) { + _createButton: function (html, title, className, container, fn, context) { var link = L.DomUtil.create('a', className, container); + link.innerHTML = html; link.href = '#'; link.title = title; + var stop = L.DomEvent.stopPropagation; + L.DomEvent - .on(link, 'click', L.DomEvent.stopPropagation) - .on(link, 'mousedown', L.DomEvent.stopPropagation) - .on(link, 'dblclick', L.DomEvent.stopPropagation) + .on(link, 'click', stop) + .on(link, 'mousedown', stop) + .on(link, 'dblclick', stop) .on(link, 'click', L.DomEvent.preventDefault) .on(link, 'click', fn, context); return link; + }, + + _updateDisabled: function () { + var map = this._map, + className = 'leaflet-control-zoom-disabled'; + + L.DomUtil.removeClass(this._zoomInButton, className); + L.DomUtil.removeClass(this._zoomOutButton, className); + + if (map._zoom === map.getMinZoom()) { + L.DomUtil.addClass(this._zoomOutButton, className); + } + if (map._zoom === map.getMaxZoom()) { + L.DomUtil.addClass(this._zoomInButton, className); + } } }); @@ -7062,6 +7364,10 @@ L.control.zoom = function (options) { +/* + * L.Control.Attribution is used for displaying attribution on the map (added by default). + */ + L.Control.Attribution = L.Control.extend({ options: { position: 'bottomright', @@ -7173,6 +7479,10 @@ L.control.attribution = function (options) { }; +/* + * L.Control.Scale is used for displaying metric/imperial scale on the map. + */ + L.Control.Scale = L.Control.extend({ options: { position: 'bottomleft', @@ -7283,6 +7593,10 @@ L.control.scale = function (options) { }; +/* + * L.Control.Layers is a control to allow users to switch between different layers on the map. + */ + L.Control.Layers = L.Control.extend({ options: { collapsed: true, @@ -7315,16 +7629,16 @@ L.Control.Layers = L.Control.extend({ this._update(); map - .on('layeradd', this._update, this) - .on('layerremove', this._update, this); + .on('layeradd', this._onLayerChange, this) + .on('layerremove', this._onLayerChange, this); return this._container; }, onRemove: function (map) { map - .off('layeradd', this._update) - .off('layerremove', this._update); + .off('layeradd', this._onLayerChange) + .off('layerremove', this._onLayerChange); }, addBaseLayer: function (layer, name) { @@ -7352,6 +7666,7 @@ L.Control.Layers = L.Control.extend({ if (!L.Browser.touch) { L.DomEvent.disableClickPropagation(container); + L.DomEvent.on(container, 'mousewheel', L.DomEvent.stopPropagation); } else { L.DomEvent.on(container, 'click', L.DomEvent.stopPropagation); } @@ -7406,7 +7721,7 @@ L.Control.Layers = L.Control.extend({ }, _update: function () { - if (!this._container || this._handlingClick) { + if (!this._container) { return; } @@ -7428,6 +7743,14 @@ L.Control.Layers = L.Control.extend({ this._separator.style.display = (overlaysPresent && baseLayersPresent ? '' : 'none'); }, + _onLayerChange: function (e) { + var id = L.stamp(e.layer); + + if (this._layers[id] && !this._handlingClick) { + this._update(); + } + }, + // IE7 bugs out if you create a radio dynamically, so you have to do it this hacky way (see http://bit.ly/PqYLBe) _createRadioElement: function (name, checked) { @@ -7469,6 +7792,8 @@ L.Control.Layers = L.Control.extend({ var container = obj.overlay ? this._overlaysList : this._baseLayersList; container.appendChild(label); + + return label; }, _onInputClick: function () { @@ -7494,6 +7819,7 @@ L.Control.Layers = L.Control.extend({ } if (baseLayer) { + this._map.setZoom(this._map.getZoom()); this._map.fire('baselayerchange', {layer: baseLayer}); } @@ -7538,7 +7864,7 @@ L.PosAnimation = L.Class.extend({ // toggle reflow, Chrome flickers for some reason if you don't do this L.Util.falseFn(el.offsetWidth); - // there's no native way to track value updates of tranisitioned properties, so we imitate this + // there's no native way to track value updates of transitioned properties, so we imitate this this._stepTimer = setInterval(L.bind(this.fire, this, 'step'), 50); }, @@ -7591,6 +7917,9 @@ L.PosAnimation = L.Class.extend({ }); +/* + * Extends L.Map to handle panning animations. + */ L.Map.include({ @@ -7642,7 +7971,7 @@ L.Map.include({ L.DomUtil.addClass(this._mapPane, 'leaflet-pan-anim'); - var newPos = L.DomUtil.getPosition(this._mapPane).subtract(offset); + var newPos = L.DomUtil.getPosition(this._mapPane).subtract(offset)._round(); this._panAnim.run(this._mapPane, newPos, duration || 0.25, easeLinearity); return this; @@ -7747,6 +8076,10 @@ L.PosAnimation = L.DomUtil.TRANSITION ? L.PosAnimation : L.PosAnimation.extend({ }); +/* + * Extends L.Map to handle zoom animations. + */ + L.Map.mergeOptions({ zoomAnimation: L.DomUtil.TRANSITION && !L.Browser.android23 && !L.Browser.mobileOpera }); @@ -7790,7 +8123,7 @@ L.Map.include(!L.DomUtil.TRANSITION ? {} : { return true; }, - _catchTransitionEnd: function (e) { + _catchTransitionEnd: function () { if (this._animatingZoom) { this._onZoomTransitionEnd(); } @@ -7888,11 +8221,11 @@ L.Map.include(!L.DomUtil.TRANSITION ? {} : { _onZoomTransitionEnd: function () { this._restoreTileFront(); - L.Util.falseFn(this._tileBg.offsetWidth); // force reflow - this._resetView(this._animateToCenter, this._animateToZoom, true, true); L.DomUtil.removeClass(this._mapPane, 'leaflet-zoom-anim'); + L.Util.falseFn(this._tileBg.offsetWidth); // force reflow this._animatingZoom = false; + this._resetView(this._animateToCenter, this._animateToZoom, true, true); if (L.Draggable) { L.Draggable._disabled = false; @@ -7915,7 +8248,7 @@ L.Map.include(!L.DomUtil.TRANSITION ? {} : { /* - * Provides L.Map with convenient shortcuts for W3C geolocation. + * Provides L.Map with convenient shortcuts for using browser geolocation features. */ L.Map.include({ @@ -8003,6 +8336,4 @@ L.Map.include({ }); - - -}(this)); +}(this, document)); \ No newline at end of file diff --git a/vendor/assets/leaflet/leaflet.locationfilter.js b/vendor/assets/leaflet/leaflet.locationfilter.js index 8e5121f62..a17f1a5af 100644 --- a/vendor/assets/leaflet/leaflet.locationfilter.js +++ b/vendor/assets/leaflet/leaflet.locationfilter.js @@ -294,7 +294,7 @@ L.LocationFilter = L.Class.extend({ this._eastRect = this._drawRectangle(this._eastBounds); this._southRect = this._drawRectangle(this._southBounds); this._innerRect = this._drawRectangle(this.getBounds(), { - fillColor: "transparent", + fillOpacity: 0, stroke: true, color: "white", weight: 1, diff --git a/vendor/assets/leaflet/leaflet.zoom.js b/vendor/assets/leaflet/leaflet.zoom.js index 6ce96757c..fe7e2f5d2 100644 --- a/vendor/assets/leaflet/leaflet.zoom.js +++ b/vendor/assets/leaflet/leaflet.zoom.js @@ -7,21 +7,18 @@ L.Control.Zoomslider = L.Control.extend({ onAdd: function (map) { var className = 'leaflet-control-zoomslider', - container = L.DomUtil.create('div', className); + container = L.DomUtil.create('div', className); + + L.DomEvent.disableClickPropagation(container); - L.DomEvent - .on(container, 'click', L.DomEvent.stopPropagation) - .on(container, 'mousedown', L.DomEvent.stopPropagation) - .on(container, 'dblclick', L.DomEvent.stopPropagation); - this._map = map; - this._zoomInButton = this._createButton('+', 'Zoom in', className + '-in' + this._zoomInButton = this._createButton('Zoom in', className + '-in' , container, this._zoomIn , this); this._createSlider(className + '-slider', container, map); - this._zoomOutButton = this._createButton('-', 'Zoom out', className + '-out' + this._zoomOutButton = this._createButton('Zoom out', className + '-out' , container, this._zoomOut, this); - + map.on('layeradd layerremove', this._refresh, this); map.whenReady(function(){ @@ -45,6 +42,11 @@ L.Control.Zoomslider = L.Control.extend({ _createSlider: function (className, container, map) { var zoomLevels = map.getMaxZoom() - map.getMinZoom(); + // This means we have no tilelayers (or that they are setup in a strange way). + // Either way we don't want to add a slider here. + if(zoomLevels == Infinity){ + return undefined; + } this._sliderHeight = this.options.stepHeight * zoomLevels; var wrapper = L.DomUtil.create('div', className + '-wrap', container); @@ -68,9 +70,8 @@ L.Control.Zoomslider = L.Control.extend({ this._map.zoomOut(e.shiftKey ? 3 : 1); }, - _createButton: function (html, title, className, container, fn, context) { + _createButton: function (title, className, container, fn, context) { var link = L.DomUtil.create('a', className, container); - link.innerHTML = html; link.href = '#'; link.title = title; @@ -82,16 +83,12 @@ L.Control.Zoomslider = L.Control.extend({ }, _createDraggable: function() { - L.DomUtil.setPosition(this._knob, new L.Point(0, 0)); - L.DomEvent - .on(this._knob - , L.Draggable.START - , L.DomEvent.stopPropagation) - .on(this._knob, 'click', L.DomEvent.stopPropagation); + L.DomUtil.setPosition(this._knob, L.point(0, 0)); + L.DomEvent.disableClickPropagation(this._knob); var bounds = new L.Bounds( - new L.Point(0, 0), - new L.Point(0, this._sliderHeight) + L.point(0, 0), + L.point(0, this._sliderHeight) ); var draggable = new L.BoundedDraggable(this._knob, this._knob, @@ -135,7 +132,7 @@ L.Control.Zoomslider = L.Control.extend({ : sliderValue; var y = this._sliderHeight - (sliderValue * this.options.stepHeight); - L.DomUtil.setPosition(this._knob, new L.Point(0, y)); + L.DomUtil.setPosition(this._knob, L.point(0, y)); } }, _toZoomLevel: function(sliderValue) { @@ -191,7 +188,7 @@ L.BoundedDraggable = L.Draggable.extend({ }, this); }, _fitPoint: function(point){ - var closest = new L.Point( + var closest = L.point( Math.min(point.x, this._bounds.max.x), Math.min(point.y, this._bounds.max.y) ); diff --git a/vendor/assets/potlatch2/potlatch2/locales/az.swf b/vendor/assets/potlatch2/potlatch2/locales/az.swf new file mode 100644 index 000000000..4d5a851b5 Binary files /dev/null and b/vendor/assets/potlatch2/potlatch2/locales/az.swf differ diff --git a/vendor/assets/potlatch2/potlatch2/locales/ca.swf b/vendor/assets/potlatch2/potlatch2/locales/ca.swf index 5a9171711..f0db72d04 100644 Binary files a/vendor/assets/potlatch2/potlatch2/locales/ca.swf and b/vendor/assets/potlatch2/potlatch2/locales/ca.swf differ diff --git a/vendor/assets/potlatch2/potlatch2/locales/et.swf b/vendor/assets/potlatch2/potlatch2/locales/et.swf index 0bbbef31a..6110fd8ae 100644 Binary files a/vendor/assets/potlatch2/potlatch2/locales/et.swf and b/vendor/assets/potlatch2/potlatch2/locales/et.swf differ diff --git a/vendor/assets/potlatch2/potlatch2/locales/ja_JP.swf b/vendor/assets/potlatch2/potlatch2/locales/ja_JP.swf index 3fd424670..4fd79b691 100644 Binary files a/vendor/assets/potlatch2/potlatch2/locales/ja_JP.swf and b/vendor/assets/potlatch2/potlatch2/locales/ja_JP.swf differ diff --git a/vendor/assets/potlatch2/potlatch2/locales/lv.swf b/vendor/assets/potlatch2/potlatch2/locales/lv.swf index 192ee82a9..50e9036ea 100644 Binary files a/vendor/assets/potlatch2/potlatch2/locales/lv.swf and b/vendor/assets/potlatch2/potlatch2/locales/lv.swf differ diff --git a/vendor/assets/potlatch2/potlatch2/locales/nl_NL.swf b/vendor/assets/potlatch2/potlatch2/locales/nl_NL.swf index c2ec457ca..d188f5f99 100644 Binary files a/vendor/assets/potlatch2/potlatch2/locales/nl_NL.swf and b/vendor/assets/potlatch2/potlatch2/locales/nl_NL.swf differ
    <%= t 'user.login.email or username' %><%= text_field_tag "username", params[:username], :size => 28, :maxlength => 255, :tabindex => 1 %>
    <%= t 'user.login.password' %><%= password_field_tag "password", "", :size => 28, :maxlength => 255, :tabindex => 2 %> (<%= link_to t('user.login.lost password link'), :controller => 'user', :action => 'lost_password' %>)
    <%= t 'user.login.email or username' %><%= text_field_tag "username", params[:username], :maxlength => 255, :tabindex => 1 %>
    <%= t 'user.login.password' %><%= password_field_tag "password", "", :maxlength => 255, :tabindex => 2 %> (<%= link_to t('user.login.lost password link'), :controller => 'user', :action => 'lost_password' %>)
    <%= check_box_tag "remember_me", "yes", false, :tabindex => 3 %> @@ -43,7 +43,7 @@ <%= raw t 'user.login.openid', :logo => openid_logo %> - <%= url_field_tag("openid_url", "", { :size => 28, :maxlength => 255, :tabindex => 3, :class => "openid_url" }) %> + <%= url_field_tag("openid_url", "", { :maxlength => 255, :tabindex => 3, :class => "openid_url" }) %> (<%= t 'user.account.openid.link text' %>)