]> git.openstreetmap.org Git - rails.git/commitdiff
Merge remote-tracking branch 'upstream/pull/2642'
authorTom Hughes <tom@compton.nu>
Thu, 4 Jun 2020 16:40:13 +0000 (17:40 +0100)
committerTom Hughes <tom@compton.nu>
Thu, 4 Jun 2020 16:40:13 +0000 (17:40 +0100)
30 files changed:
.rubocop_todo.yml
Gemfile.lock
app/controllers/api/amf_controller.rb
app/helpers/browse_helper.rb
app/helpers/browse_tags_helper.rb
app/models/concerns/consistency_validations.rb [moved from lib/consistency_validations.rb with 98% similarity]
app/models/concerns/redactable.rb [moved from lib/redactable.rb with 57% similarity]
app/views/diary_entries/index.html.erb
config/application.rb
config/initializers/new_framework_defaults_5_2.rb [deleted file]
config/initializers/new_framework_defaults_6_0.rb [deleted file]
config/initializers/query_cache.rb [deleted file]
config/locales/be-Tarask.yml
config/locales/ca.yml
config/locales/el.yml
config/locales/en.yml
config/locales/eo.yml
config/locales/es.yml
config/locales/fa.yml
config/locales/fr.yml
config/locales/mk.yml
config/locales/ro.yml
config/locales/zh-TW.yml
lib/locale.rb
lib/tasks/add_version_to_nodes.rake [deleted file]
script/daemons [deleted file]
script/gravatar [deleted file]
test/helpers/browse_helper_test.rb
test/integration/user_creation_test.rb
test/lib/locale_test.rb

index 307a23f4b035c56539cc9d7dd2d7c841252758f0..6a1338851ba23fcd40e0373d55658152938efaf7 100644 (file)
@@ -18,7 +18,7 @@ require:
 # Configuration parameters: AutoCorrect, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
 # URISchemes: http, https
 Layout/LineLength:
-  Max: 260
+  Max: 370
 
 # Offense count: 35
 # Configuration parameters: AllowSafeAssignment.
index 8e6d4ab851d30cf91f358f9cd7c7d2ab24c4c4be..33b513ee5f6cb4ead9b83ee55061223dfca49a67 100644 (file)
@@ -74,20 +74,20 @@ GEM
     autoprefixer-rails (9.7.6)
       execjs
     aws-eventstream (1.1.0)
-    aws-partitions (1.321.0)
-    aws-sdk-core (3.96.1)
+    aws-partitions (1.323.0)
+    aws-sdk-core (3.97.1)
       aws-eventstream (~> 1, >= 1.0.2)
       aws-partitions (~> 1, >= 1.239.0)
       aws-sigv4 (~> 1.1)
       jmespath (~> 1.0)
-    aws-sdk-kms (1.31.0)
+    aws-sdk-kms (1.33.0)
       aws-sdk-core (~> 3, >= 3.71.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-s3 (1.66.0)
+    aws-sdk-s3 (1.67.1)
       aws-sdk-core (~> 3, >= 3.96.1)
       aws-sdk-kms (~> 1)
       aws-sigv4 (~> 1.1)
-    aws-sigv4 (1.1.3)
+    aws-sigv4 (1.1.4)
       aws-eventstream (~> 1.0, >= 1.0.2)
     better_errors (2.7.1)
       coderay (>= 1.0.0)
@@ -110,7 +110,7 @@ GEM
       autoprefixer-rails (>= 9.1.0)
       popper_js (>= 1.14.3, < 2)
       sassc-rails (>= 2.0.0)
-    browser (4.1.0)
+    browser (4.2.0)
     builder (3.2.4)
     bzip2-ffi (1.0.0)
       ffi (~> 1.0)
@@ -126,7 +126,7 @@ GEM
       regexp_parser (~> 1.5)
       xpath (~> 3.2)
     childprocess (3.0.0)
-    coderay (1.1.2)
+    coderay (1.1.3)
     composite_primary_keys (12.0.2)
       activerecord (~> 6.0.0)
     concurrent-ruby (1.1.6)
@@ -207,7 +207,7 @@ GEM
       railties (>= 4.2.0)
     faraday (1.0.1)
       multipart-post (>= 1.2, < 3)
-    ffi (1.12.2)
+    ffi (1.13.0)
     ffi-libarchive (1.0.0)
       ffi (~> 1.0)
     fspath (3.1.2)
@@ -222,7 +222,7 @@ GEM
     http_accept_language (2.0.5)
     i18n (0.9.5)
       concurrent-ruby (~> 1.0)
-    i18n-js (3.6.0)
+    i18n-js (3.7.0)
       i18n (>= 0.6.6)
     image_optim (0.26.5)
       exifr (~> 1.2, >= 1.2.2)
@@ -385,10 +385,11 @@ GEM
     rinku (2.0.6)
     rotp (6.0.0)
       addressable (~> 2.7)
-    rubocop (0.84.0)
+    rubocop (0.85.0)
       parallel (~> 1.10)
       parser (>= 2.7.0.1)
       rainbow (>= 2.2.2, < 4.0)
+      regexp_parser (>= 1.7)
       rexml
       rubocop-ast (>= 0.0.3)
       ruby-progressbar (~> 1.7)
@@ -411,7 +412,7 @@ GEM
       crass (~> 1.0.2)
       nokogiri (>= 1.8.0)
       nokogumbo (~> 2.0)
-    sassc (2.3.0)
+    sassc (2.4.0)
       ffi (~> 1.9)
     sassc-rails (2.1.2)
       railties (>= 4.0.0)
@@ -460,7 +461,7 @@ GEM
       hashdiff (>= 0.4.0, < 2.0.0)
     websocket-driver (0.7.2)
       websocket-extensions (>= 0.1.0)
-    websocket-extensions (0.1.4)
+    websocket-extensions (0.1.5)
     xpath (3.2.0)
       nokogiri (~> 1.8)
     zeitwerk (2.3.0)
index db8982d43278237df950f2889b5078b84aef69f2..c05a130981cdf46bb97cea3af2dca125362822dd 100644 (file)
@@ -868,7 +868,7 @@ module Api
     # not just the id, hence this abstraction
 
     def getuser(token)
-      if token =~ /^(.+)\:(.+)$/
+      if token =~ /^(.+):(.+)$/
         User.authenticate(:username => Regexp.last_match(1), :password => Regexp.last_match(2))
       else
         User.authenticate(:token => token)
index 63f48a876ee14653f8d2205674b34d639c073f5a..14b1f7cc22d1b04e92acdc52dd790bb6797602c0 100644 (file)
@@ -11,9 +11,21 @@ module BrowseHelper
     # don't look at object tags if redacted, so as to avoid giving
     # away redacted version tag information.
     unless object.redacted?
-      locale = I18n.locale.to_s
+      available_locales = Locale::List.new(name_locales(object))
 
-      locale = locale.sub(/-[^-]+/, "") while locale =~ /-[^-]+/ && !object.tags.include?("name:#{I18n.locale}")
+      Rails.logger.info "available_locales = #{available_locales.map(&:to_s)}"
+
+      preferred_locales = if current_user
+                            current_user.preferred_languages
+                          else
+                            Locale.new(I18n.locale).candidates
+                          end
+
+      Rails.logger.info "preferred_locales = #{preferred_locales.expand.map(&:to_s)}"
+
+      locale = available_locales.preferred(preferred_locales)
+
+      Rails.logger.info "locale = #{locale}"
 
       if object.tags.include? "name:#{locale}"
         name = t "printable_name.with_name_html", :name => content_tag(:bdi, object.tags["name:#{locale}"].to_s), :id => content_tag(:bdi, name)
@@ -71,4 +83,8 @@ module BrowseHelper
   def icon_tags(object)
     object.tags.find_all { |k, _v| ICON_TAGS.include? k }.sort
   end
+
+  def name_locales(object)
+    object.tags.keys.map { |k| Regexp.last_match(1) if k =~ /^name:(.*)$/ }.flatten
+  end
 end
index 4f73eb9d7c8018f932471ac71b98e6f8f22645df..fc25325a4b0bf07472d2a2a824608901843650b7 100644 (file)
@@ -155,7 +155,7 @@ module BrowseTagsHelper
     #
     # Also accepting / as a visual separator although not given in RFC 3966,
     # because it is used as a visual separator in OSM data in some countries.
-    if value.match?(%r{^\s*\+[\d\s\(\)/\.-]{6,25}\s*(;\s*\+[\d\s\(\)/\.-]{6,25}\s*)*$})
+    if value.match?(%r{^\s*\+[\d\s()/.-]{6,25}\s*(;\s*\+[\d\s()/.-]{6,25}\s*)*$})
       return value.split(";").map do |phone_number|
         # for display, remove leading and trailing whitespace
         phone_number = phone_number.strip
similarity index 98%
rename from lib/consistency_validations.rb
rename to app/models/concerns/consistency_validations.rb
index 7e9b335861e6f913e5aff61da9147168f6c3ccd9..00c6ce9934b7b37c6a95f74e32a68d4678714668 100644 (file)
@@ -1,4 +1,6 @@
 module ConsistencyValidations
+  extend ActiveSupport::Concern
+
   # Generic checks that are run for the updates and deletes of
   # node, ways and relations. This code is here to avoid duplication,
   # and allow the extention of the checks without having to modify the
similarity index 57%
rename from lib/redactable.rb
rename to app/models/concerns/redactable.rb
index 6efdae0efd4b2dfeb8bf91c3969c88af54df8594..ccf04907f28ff363cbc0f1d2e409076c3fd254a6 100644 (file)
@@ -1,10 +1,8 @@
-require "osm"
-
 module Redactable
-  def self.included(base)
-    # this is used to extend activerecord bases, as these aren't
-    # in scope for the module itself.
-    base.scope :unredacted, -> { where(:redaction_id => nil) }
+  extend ActiveSupport::Concern
+
+  included do
+    scope :unredacted, -> { where(:redaction_id => nil) }
   end
 
   def redacted?
index 32a4e1e0fb7154f32f2f8b8d0789f84e122a8968..96c052da69fd940ff16c7e7f374017fbde99ed6c 100644 (file)
         <li><%= rss_link_to :action => "rss", :language => params[:language] %></li>
       <% end -%>
 
-      <% if @user %>
-        <% if @user == current_user %>
-          <li><%= link_to image_tag("new.png", :class => "small_icon") + t(".new"), new_diary_entry_path, :title => t(".new_title") %></li>
-        <% end %>
-      <% else %>
-        <% if current_user %>
-          <li><%= link_to image_tag("new.png", :class => "small_icon") + t(".new"), new_diary_entry_path, :title => t(".new_title") %></li>
-        <% end %>
+      <% if @user && @user == current_user || !@user && current_user %>
+        <li><%= link_to image_tag("new.png", :class => "small_icon") + t(".new"), new_diary_entry_path, :title => t(".new_title") %></li>
+      <% end %>
+
+      <% if !@user && current_user %>
+        <li><%= link_to t(".my_diary"), :controller => "diary_entries", :action => "index", :display_name => current_user.display_name %></li>
       <% end %>
     </ul>
   </div>
index 3b470bacc5fc2759da6258fc3dd3badaffc26775..651d32907626b3393414feb6e54193f9a42d712a 100644 (file)
@@ -21,7 +21,7 @@ Bundler.require(*Rails.groups)
 module OpenStreetMap
   class Application < Rails::Application
     # Initialize configuration defaults for originally generated Rails version.
-    config.load_defaults 5.2
+    config.load_defaults 6.0
 
     # Settings in config/environments/* take precedence over those specified here.
     # Application configuration can go into files in config/initializers
@@ -31,6 +31,13 @@ module OpenStreetMap
     # Custom directories with classes and modules you want to be autoloadable.
     config.autoload_paths += %W[#{config.root}/lib]
 
+    # Continue to use the classic autoloader for now
+    config.autoloader = :classic
+
+    # Force requests from old versions of IE (<= IE8) to be UTF-8 encoded.
+    # This has defaulted to false since rails 6.0
+    config.action_view.default_enforce_utf8 = true
+
     # This defaults to true from rails 5.0 but our code doesn't comply
     # with it at all so we turn it off
     config.active_record.belongs_to_required_by_default = false unless Settings.status == "database_offline"
diff --git a/config/initializers/new_framework_defaults_5_2.rb b/config/initializers/new_framework_defaults_5_2.rb
deleted file mode 100644 (file)
index c383d07..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-# Be sure to restart your server when you modify this file.
-#
-# This file contains migration options to ease your Rails 5.2 upgrade.
-#
-# Once upgraded flip defaults one by one to migrate to the new default.
-#
-# Read the Guide for Upgrading Ruby on Rails for more info on each option.
-
-# Make Active Record use stable #cache_key alongside new #cache_version method.
-# This is needed for recyclable cache keys.
-# Rails.application.config.active_record.cache_versioning = true
-
-# Use AES-256-GCM authenticated encryption for encrypted cookies.
-# Also, embed cookie expiry in signed or encrypted cookies for increased security.
-#
-# This option is not backwards compatible with earlier Rails versions.
-# It's best enabled when your entire app is migrated and stable on 5.2.
-#
-# Existing cookies will be converted on read then written with the new scheme.
-# Rails.application.config.action_dispatch.use_authenticated_cookie_encryption = true
-
-# Use AES-256-GCM authenticated encryption as default cipher for encrypting messages
-# instead of AES-256-CBC, when use_authenticated_message_encryption is set to true.
-# Rails.application.config.active_support.use_authenticated_message_encryption = true
-
-# Add default protection from forgery to ActionController::Base instead of in
-# ApplicationController.
-# Rails.application.config.action_controller.default_protect_from_forgery = true
-
-# Store boolean values are in sqlite3 databases as 1 and 0 instead of 't' and
-# 'f' after migrating old data.
-# Rails.application.config.active_record.sqlite3.represent_boolean_as_integer = true
-
-# Use SHA-1 instead of MD5 to generate non-sensitive digests, such as the ETag header.
-# Rails.application.config.active_support.use_sha1_digests = true
-
-# Make `form_with` generate id attributes for any generated HTML tags.
-# Rails.application.config.action_view.form_with_generates_ids = true
diff --git a/config/initializers/new_framework_defaults_6_0.rb b/config/initializers/new_framework_defaults_6_0.rb
deleted file mode 100644 (file)
index 92240ef..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-# Be sure to restart your server when you modify this file.
-#
-# This file contains migration options to ease your Rails 6.0 upgrade.
-#
-# Once upgraded flip defaults one by one to migrate to the new default.
-#
-# Read the Guide for Upgrading Ruby on Rails for more info on each option.
-
-# Don't force requests from old versions of IE to be UTF-8 encoded.
-# Rails.application.config.action_view.default_enforce_utf8 = false
-
-# Embed purpose and expiry metadata inside signed and encrypted
-# cookies for increased security.
-#
-# This option is not backwards compatible with earlier Rails versions.
-# It's best enabled when your entire app is migrated and stable on 6.0.
-# Rails.application.config.action_dispatch.use_cookies_with_metadata = true
-
-# Change the return value of `ActionDispatch::Response#content_type` to Content-Type header without modification.
-# Rails.application.config.action_dispatch.return_only_media_type_on_content_type = false
-
-# Return false instead of self when enqueuing is aborted from a callback.
-# Rails.application.config.active_job.return_false_on_aborted_enqueue = true
-
-# Send Active Storage analysis and purge jobs to dedicated queues.
-# Rails.application.config.active_storage.queues.analysis = :active_storage_analysis
-# Rails.application.config.active_storage.queues.purge    = :active_storage_purge
-
-# When assigning to a collection of attachments declared via `has_many_attached`, replace existing
-# attachments instead of appending. Use #attach to add new attachments without replacing existing ones.
-# Rails.application.config.active_storage.replace_on_assign_to_many = true
-
-# Use ActionMailer::MailDeliveryJob for sending parameterized and normal mail.
-#
-# The default delivery jobs (ActionMailer::Parameterized::DeliveryJob, ActionMailer::DeliveryJob),
-# will be removed in Rails 6.1. This setting is not backwards compatible with earlier Rails versions.
-# If you send mail in the background, job workers need to have a copy of
-# MailDeliveryJob to ensure all delivery jobs are processed properly.
-# Make sure your entire app is migrated and stable on 6.0 before using this setting.
-# Rails.application.config.action_mailer.delivery_job = "ActionMailer::MailDeliveryJob"
-
-# Enable the same cache key to be reused when the object being cached of type
-# `ActiveRecord::Relation` changes by moving the volatile information (max updated at and count)
-# of the relation's cache key into the cache version to support recycling cache key.
-# Rails.application.config.active_record.collection_cache_versioning = true
diff --git a/config/initializers/query_cache.rb b/config/initializers/query_cache.rb
deleted file mode 100644 (file)
index bb9c8b0..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Rails.configuration.middleware.delete ActiveRecord::QueryCache
index f073dbb7be76f579e30f6be6066a497ce9999b66..d185b69ee7cf792d2af012796d6ff2f7af0d5367 100644 (file)
@@ -49,6 +49,7 @@ be-Tarask:
       diary_comment: Камэнтар у дзёньніку
       diary_entry: Запіс у дзёньніку
       friend: Сябар
+      issue: Праблема
       language: Мова
       message: Паведамленьне
       node: Вузел
@@ -65,6 +66,7 @@ be-Tarask:
       relation: Сувязь
       relation_member: Удзельнік сувязі
       relation_tag: Тэг сувязі
+      report: Справаздача
       session: Сэсыя
       trace: Трэк
       tracepoint: Пункт трэку
@@ -161,6 +163,15 @@ be-Tarask:
     remote:
       name: Аддаленае кіраваньне
       description: Аддаленае кіраваньне (JOSM ці Merkaartor)
+  auth:
+    providers:
+      none: Няма
+      openid: OpenID
+      google: Google
+      facebook: Facebook
+      windowslive: Windows Live
+      github: GitHub
+      wikipedia: Вікіпэдыя
   api:
     notes:
       comment:
@@ -172,6 +183,8 @@ be-Tarask:
         closed_at_by_html: Разьвізана %{when} удзельнікам %{user}
         reopened_at_html: Пераадкрыта %{when}
         reopened_at_by_html: Пераадкрыта %{when} удзельнікам %{user}
+      rss:
+        title: Нататкі OpenStreetMap
       entry:
         full: Поўны тэкст
   browse:
@@ -792,8 +805,10 @@ be-Tarask:
         more_info_2: 'іх можна знайсьці на:'
       success:
         subject: '[OpenStreetMap] імпарт GPX адбыўся пасьпяхова'
-        loaded_successfully: пасьпяхова загружаны %{trace_points} пунктаў з магчымых
-          %{possible_points}.
+        loaded_successfully:
+          one: пасьпяхова загружаны з %{trace_points} з 1 магчымага пункту.
+          few: пасьпяхова загружаныя %{trace_points} пункты з магчымых %{possible_points}.
+          many: пасьпяхова загружаныя %{trace_points} пунктаў з магчымых %{possible_points}.
     signup_confirm:
       subject: '[OpenStreetMap] Вітаем у OpenStreetMap'
     email_confirm:
index f894ae9dba176ce6f1c23ccb682b6114d8c56ac6..c263889525e2cd6232ce9fb58b8d3e58990f2cdf 100644 (file)
@@ -355,8 +355,8 @@ ca:
   changesets:
     changeset_paging_nav:
       showing_page: Pàgina %{page}
-      next: Següent »
-      previous: « Anterior
+      next: Següent 
+      previous:  Anterior
     changeset:
       anonymous: Anònim
       no_edits: (no hi ha cap edició)
index 3d4ffc76b5234dc1636856b9c1d3558e13bd3017..d783085c3484d8e92e94eceb4be5f1ebd7d8eb62 100644 (file)
@@ -18,6 +18,7 @@
 # Author: Logictheo
 # Author: Macofe
 # Author: Nikosgranturismogt
+# Author: Norhorn
 # Author: Omnipaedista
 # Author: Panos78
 # Author: Protnet
@@ -73,6 +74,7 @@ el:
       diary_comment: Σχόλιο Ημερολογίου
       diary_entry: Καταχώριση Ημερολογίου
       friend: Φίλος
+      issue: Ζήτημα
       language: Γλώσσα
       message: Μήνυμα
       node: Κόμβος
@@ -89,6 +91,7 @@ el:
       relation: Σχέση
       relation_member: Μέλος της Σχέσης
       relation_tag: Ετικέτα της Σχέσης
+      report: Αναφορά
       session: Συνεδρία
       trace: Ίχνος
       tracepoint: Σημείο Ίχνους
@@ -189,9 +192,11 @@ el:
       description: Εξωτερικό πρόγραμμα (JOSM ή Merkaartor)
   auth:
     providers:
+      none: Κανένα
       openid: OpenID
       google: Google
       facebook: Facebook
+      windowslive: Windows Live
       github: GitHub
       wikipedia: Βικιπαίδεια
   api:
@@ -408,6 +413,7 @@ el:
       in_language_title: Καταχωρήσεις ημερολογίων στα %{language}
       new: Νέα καταχώρηση ημερολογίου
       new_title: Σύνταξη νέας καταχώρησης στο ημερολόγιό μου
+      my_diary: Το ημερολόγιό μου
       no_entries: Δε βρέθηκαν καταχωρήσεις στο ημερολόγιο
       recent_entries: Πρόσφατες καταχωρίσεις ημερολογίου
       older_entries: Παλιότερες καταχωρήσεις
@@ -1261,8 +1267,10 @@ el:
         more_info_2: 'μπορούν να βρεθούν στο:'
       success:
         subject: '[OpenStreetMap] Η εισαγωγή GPX πέτυχε'
-        loaded_successfully: φόρτωσε επιτυχώς με %{trace_points} από %{possible_points}
-          πιθανά σημεία.
+        loaded_successfully:
+          one: φόρτωσε επιτυχώς με %{trace_points} από 1 πιθανό σημείο.
+          other: φόρτωσε επιτυχώς με %{trace_points} από πιθανά %{possible_points}
+            σημεία.
     signup_confirm:
       subject: '[OpenStreetMap] Καλώς ήλθατε στο OpenStreetMap'
       greeting: Γεια σου!
@@ -1530,6 +1538,11 @@ el:
           <a href="https://data.wien.gv.at/">Stadt Wien</a> (υπό  <a href="https://creativecommons.org/licenses/by/3.0/at/deed.de">CC BY</a>),
           <a href="https://www.vorarlberg.at/vorarlberg/bauen_wohnen/bauen/vermessung_geoinformation/weitereinformationen/services/wmsdienste.htm">Land Vorarlberg</a> και
           Land Tirol (υπό <a href="https://www.tirol.gv.at/applikationen/e-government/data/nutzungsbedingungen/">CC BY AT με τροποποιήσεις</a>).
+        contributors_au_html: |-
+          <strong>Αυστραλία</strong>: Περιέχει δεδομένα από
+          <a href="https://www.psma.com.au/psma-data-copyright-and-disclaimer">PSMA Australia Limited</a>
+          με άδεια από το Commonwealth of Australia υπό
+          <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>.
         contributors_ca_html: |-
           <strong>Καναδάς</strong>: Περιέχει δεδομένα από τα
           GeoBase®, GeoGratis (© Τμήμα Φυσικών
@@ -1552,6 +1565,11 @@ el:
           <strong>Σλοβενία</strong>: Περιέχει δεδομένα από την
           <a href="http://www.gu.gov.si/en/">Αρχή Τοπογραφίας και Χαρτογράφησης</a> και το <a href="http://www.mkgp.gov.si/en/">Υπουργείο Γεωργίας, Δασών και Τροφίμων</a>
           (δημόσιες πληροφορίες της Σλοβενίας).
+        contributors_es_html: |-
+          <strong>Ισπανία</strong>: Περιέχει δεδομένα από το
+          εθνικό γεωγραφικό ινστιτούτο Ισπανίας (<a href="http://www.ign.es/">IGN</a>) και το
+          Εθνικό σύστημα χαρτογράφησης (<a href="http://www.scne.es/">SCNE</a>)
+          αδειοδοτημένο για χρήση υπό <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>.
         contributors_za_html: |-
           <strong>Νότια Αφρική</strong>: Περιεχέι δεδομένα που προέρχονται από το
           <a href="http://www.ngi.gov.za/">Chief Directorate:
@@ -1700,7 +1718,7 @@ el:
         description: Οδηγός αρχαρίων διατηρούμενος από την κοινότητα.
       help:
         url: https://help.openstreetmap.org/
-        title: help.openstreetmap.org
+        title: Κοινότητα βοήθειας
         description: Κάντε μία ερώτηση ή αναζητήσετε απαντήσεις στην ιστοσελίδα ερωτήσεων
           και απαντήσεων του OpenStreetMap.
       mailing_lists:
@@ -1726,7 +1744,7 @@ el:
           ό,τι χρειάζεστε να ξέρετε στο  Welcome Mat.
       wiki:
         url: https://wiki.openstreetmap.org/
-        title: wiki.openstreetmap.org
+        title: OpenStreetMap Wiki
         description: Περιηγηθείτε το wiki για επιμελής τεκμηρίωση του OpenStreetMap.
     sidebar:
       search_results: Αποτελέσματα Αναζήτησης
@@ -1904,6 +1922,8 @@ el:
       trace_uploaded: Το GPX αρχείο σας έχει μεταμορφωθεί και αναμένει την εισαγωγή
         στη βάση δεδομένων. Συνήθως αυτό θα συμβεί μέσα σε μισή ώρα, και μετά την
         ολοκλήρωση θα σας αποσταλεί ένα email.
+      upload_failed: Η μεταφόρτωση του GPX απέτυχε. Ένας διαχειριστής έχει ενημερωθεί
+        για το σφάλμα. Παρακαλούμε δοκιμάστε ξανά.
       traces_waiting:
         one: Έχετε %{count} ίχνος σε αναμονή για ανέβασμα. Παρακαλούμε περιμένετε
           να ολοκληρωθεί πριν ανεβάσετε άλλα, ώστε να μην εμποδίσετε τη σειρά αναμονής
@@ -2224,6 +2244,7 @@ el:
       terms declined: Λυπούμαστε για το ότι αποφασίσατε να μην αποδεχθείτε τους νέους
         όρους συνεισφοράς. Για περισσότερες πληροφορίες, παρακαλούμε δείτε <a href="%{url}">αυτήν
         τη σελίδα wiki</a>.
+      terms declined url: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
     terms:
       title: Όροι
       heading: Όροι
@@ -2231,6 +2252,8 @@ el:
       read and accept with tou: Παρακαλώ διαβάστε τους όρους συνεισφοράς και όρους
         χρήσης, επιλέξτε τα δυο πλαίσια ελέγχου όταν έχετε τελειώσει και πατήστε το
         κουμπί για να συνεχίσετε.
+      contributor_terms_explain: Η συμφωνία διέπει τους όρους για υπάρχουσες και μελλοντικές
+        συνεισφορές σας.
       read_ct: Έχω διαβάσει και αποδέχομαι τους παραπάνω όρους συνεισφοράς
       tou_explain_html: Αυτοί %{tou_link} καλύπτουν τη χρήση της ιστοσελίδας και άλλης
         υποδομής που προσφέρει η OSMF. Παρακαλώ ακολουθήστε τον σύνδεσμο, διαβάστε
@@ -2239,10 +2262,12 @@ el:
       consider_pd: Και επιπρόσθετα στην παραπάνω συμφωνία, καταστώ τις συνεισφορές
         μου στο κοινό κτήμα (για ελεύθερη χρήση)
       consider_pd_why: τι είναι αυτό;
+      consider_pd_why_url: https://www.osmfoundation.org/wiki/License/Why_would_I_want_my_contributions_to_be_public_domain
       guidance_html: Πληροφορίες για να καταλάβετε αυτούς τους όρους:μία <href="%{summary}">
         αναγνώσιμη περίληψη</a>και μερικές <a href=''%{translations}''>ανεπίσημες
         μεταφράσεις </a>
       continue: Συνέχεια
+      declined: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
       decline: Διαφωνώ
       you need to accept or decline: Παρακαλώ διαβάστε και αποδεχτείτε ή απορρίψτε
         τους νέους Όρους Συνεισφοράς για να συνεχίσετε.
@@ -2366,6 +2391,7 @@ el:
           να διαβάσετε και να αποδεχθείτε τους νέους Όρους Συνεισφοράς.
         agreed_with_pd: Έχετε επίσης δηλώσει ότι θεωρείτε τις επεξεργασίες σας οτι
           είναι Public Domain.
+        link: https://www.osmfoundation.org/wiki/License/Contributor_Terms
         link text: τι είναι αυτό;
       profile description: 'Περιγραφή Προφίλ:'
       preferred languages: 'Προτιμώμενες Γλώσσες:'
@@ -2373,6 +2399,7 @@ el:
       image: 'Εικόνα:'
       gravatar:
         gravatar: Χρήση Gravatar
+        link: https://wiki.openstreetmap.org/wiki/Gravatar
         link text: τι είναι αυτό;
         disabled: 'Το Gravatar έχει απενεργοποιηθεί:'
         enabled: Εμφάνισης του Gravatar σας έχει ενεργοποιηθεί.
@@ -2663,6 +2690,12 @@ el:
         out: Σμίκρυνση
       locate:
         title: Προβολή της Τοποθεσίας μου
+        metersPopup:
+          one: Είστε εντός ενός μέτρου από το σημείο
+          other: Είστε μεταξύ %{count} μέτρων από το σημείο
+        feetPopup:
+          one: Είστε εντός ενός ποδός από το σημείο
+          other: Είστε μεταξύ %{count} ποδιών από το σημείο
       base:
         standard: Κανονικός
         cycle_map: Χάρτης Ποδηλασίας
@@ -2678,6 +2711,11 @@ el:
       copyright: © <a href='%{copyright_url}'>Συνεισφέροντες του OpenStreetMap</a>
       donate_link_text: <a class='donate-attr' href='%{donate_url}'>Κάνετε Δωρεά</a>
       terms: <a href='%{terms_url}' target='_blank'>Όροι ιστότοπου και API</a>
+      thunderforest: Ευγενική χορηγεία πλακιδίων από τον <a href='%{thunderforest_url}'
+        target='_blank'>Andy Allan</a>
+      hotosm: Στύλ πλακιδίων από την <a href='%{hotosm_url}' target='_blank'>Ομάδα
+        Humanitarian OpenStreetMap</a> φιλοξενείται από <a href='%{osmfrance_url}'
+        target='_blank'>OpenStreetMap Γαλλίας</a>
     site:
       edit_tooltip: Επεξεργασία του χάρτη
       edit_disabled_tooltip: Κάντε μεγέθυνση για να επεξεργαστείτε το χάρτη
index 4f3358989f87b9c334a7d78ea7286613a9a68206..5ae211ffa0e43d865a5820bc06e732860cd3c551 100644 (file)
@@ -373,6 +373,7 @@ en:
       in_language_title: "Diary Entries in %{language}"
       new: New Diary Entry
       new_title: Compose a new entry in my user diary
+      my_diary: My Diary
       no_entries: No diary entries
       recent_entries: "Recent diary entries"
       older_entries: Older Entries
index b6107081c3f4d94873b37e59f71433a3aba8d1c6..242a0d7dfabfdc44ff45f2dd62b9a680c015e809 100644 (file)
@@ -1491,11 +1491,12 @@ eo:
           Resources Canada), CanVec (&copy; Department of Natural
           Resources Canada), kaj StatCan (Geography Division,
           Statistics Canada).
-        contributors_fi_html: |-
-          <strong>Suomujo</strong>: enhavas datumojn el
-          National Land Survey of Finland's Topographic Database kaj aliaj fontoj, laŭ la <a href="https://www.maanmittauslaitos.fi/en/opendata-licence-version1">permesilo NLSFI</a>.
-        contributors_fr_html: '<strong>Francio</strong>: enhavas datumojn ricevitajn
-          el ''Direction Générale des Impôts''.'
+        contributors_fi_html: '<strong>Finnlando</strong>: enhavas datumojn el la
+          Topografia Datumbazo «Maastotietokanta» de Ŝtata Ofico de Termezurado de
+          Finnlando «Maanmittauslaitos» laŭ la <a href="https://www.maanmittauslaitos.fi/avoindata-lisenssi-versio1">permesilo
+          NLSFI</a>.'
+        contributors_fr_html: '<strong>Francujo</strong>: enhavas datumojn ricevitajn
+          el Ĝenerala Direkcio de Impostoj «Direction Générale des Impôts».'
         contributors_nl_html: |-
           <strong>Nederlando</strong>: enhavas datumojn el &copy; AND, 2007
           (<a href="https://www.and.com">www.and.com</a>).
@@ -2180,7 +2181,7 @@ eo:
         novan interkonsenton pri uzado por pluigi.
       legale_select: 'Loĝlando:'
       legale_names:
-        france: Francio
+        france: Francujo
         italy: Italujo
         rest_of_world: Resto de la mondo
     no_such_user:
index 8d7b64804f1ca8b9a04e05781522e1203ee345b3..eca88cca0ef14297a786f82c99d0a53041d4bcf8 100644 (file)
@@ -24,6 +24,7 @@
 # Author: Harvest
 # Author: Hereñu
 # Author: Idontknow
+# Author: Ignaciolep
 # Author: Indiralena
 # Author: Invadinado
 # Author: James
@@ -96,8 +97,7 @@ es:
   activerecord:
     errors:
       messages:
-        invalid_email_address: no aparenta ser una dirección de correo electrónico
-          válida
+        invalid_email_address: no parece ser una dirección de correo electrónico válida
         email_address_not_routable: no es enrutable
     models:
       acl: Lista de control de acceso
@@ -343,9 +343,9 @@ es:
         way: vía
         relation: relación
     start_rjs:
-      feature_warning: Cargando %{num_features} características, lo que puede hacer
-        que su navegador se ralentice o que no responda. ¿Está seguro de que desea
-        mostrar estos datos?
+      feature_warning: Cargando %{num_features} elementos, lo que puede hacer que
+        su navegador se ralentice o que no responda. ¿Está seguro de que desea mostrar
+        estos datos?
       load_data: Cargar datos
       loading: Cargando...
     tag_details:
@@ -376,10 +376,10 @@ es:
       hidden_by: Oculto por %{user} <abbr title='%{exact_time}'>%{when}</abbr>
       report: Denunciar esta nota
     query:
-      title: Consultar características
-      introduction: Haga clic en el mapa para encontrar características cercanas.
-      nearby: Características cercanas
-      enclosing: Características envolventes
+      title: Consultar elementos
+      introduction: Haga clic en el mapa para encontrar elementos cercanos.
+      nearby: Elementos cercanos
+      enclosing: Elementos envolventes
   changesets:
     changeset_paging_nav:
       showing_page: Página %{page}
@@ -460,7 +460,7 @@ es:
       title: No existe esa entrada de diario
       heading: 'No hay entrada con la id: %{id}'
       body: No hay ninguna entrada de diario o comentario con el identificador %{id}.
-        Comprueba la ortografía, o puede que el enlace al que has hecho clic sea incorrecto.
+        Revise su ortografía, o tal vez el enlace en el que hizo clic es incorrecto.
     diary_entry:
       posted_by_html: Publicado por %{link_user} el %{created} en %{language_link}
       comment_link: Comentar esta entrada
@@ -1525,7 +1525,7 @@ es:
         credit_title_html: Cómo dar reconocimiento a OpenStreetMap
         credit_1_html: Requerimos que utilices los créditos "© Colaboradores de OpenStreetMap".
         credit_2_html: |-
-          Usted debe también dejar claro que los datos están disponibles bajo la licencia Open Database License (ODbL), y si utiliza nuestros mapas, que la cartografía posee licencia CC BY-SA. Puede hacer esto mediante el enlace a <a href="https://www.openstreetmap.org/copyright">esta página de derechos de autor</a>.
+          También debe dejar en claro que los datos están disponibles bajo la licencia Open Database License (ODbL), y si utiliza nuestros mapas, que la cartografía posee licencia CC BY-SA. Puede hacer esto mediante el enlace a <a href="https://www.openstreetmap.org/copyright">esta página de derechos de autor</a>.
           Como alternativa y como un requisito si están distribuyendo OSM en un formulario de datos, puede nombrar y enlazar directamente a las licencias. En medios de comunicación donde los enlaces no sean posibles (por ejemplo, obras impresas), le sugerimos que dirija a sus lectores a openstreetmap.org (quizás expandiendo 'OpenStreetMap' hasta esta dirección completa), a opendatacommons.org, y si procede, a creativecommons.org.
         credit_3_html: |-
           En un mapa electrónico navegable, los créditos deben aparecer en la esquina del mapa.
@@ -1535,7 +1535,7 @@ es:
           title: Ejemplo de atribución
         more_title_html: Para saber más...
         more_1_html: |-
-          Encontrarás más información acerca de cómo utilizar nuestros datos y cómo citarnos como fuente en la <a
+          Encontrará más información acerca de cómo utilizar nuestros datos y cómo citarnos como fuente en la <a
           href="https://osmfoundation.org/Licence">página de licencia de la OSMF</a>.
         more_2_html: |-
           A pesar de que OpenStreetMap es contenido abierto, no podemos suminstrar una API de mapas gratuita para terceros.
@@ -1856,13 +1856,13 @@ es:
         title: Qué hay en el mapa
         on_html: OpenStreetMap es un lugar para el mapeo de las cosas que son <em>reales
           y actuales</em> - esto incluye millones de edificios, carreteras, y otros
-          detalles acerca de lugares. Puede mapear cualquier característica de la
-          vida real que es interesante para usted.
-        off_html: Lo que <em>no</em> se incluye son datos basados en opiniones (por
-          ejemplo, valoraciones), características históricas que ya no existen sobre
-          el terreno o hipotéticas, ni datos provenientes de fuentes protegidas por
-          derechos de autor. A menos que tenga un permiso especial, no copie de mapas
-          en línea o en papel.
+          detalles acerca de lugares. Puede mapear cualquier elemento de la vida real
+          que le interese.
+        off_html: Lo que <em>no</em> se incluye son datos basados en opiniones, como
+          calificaciones, elementos históricos o hipotéticos que no existen sobre
+          el terreno, ni datos provenientes de fuentes protegidas por derechos de
+          autor. A menos que tenga un permiso especial, no copie de mapas en línea
+          o en papel.
       basic_terms:
         title: Términos básicos para mapear
         paragraph_1_html: OpenStreetMap tiene su propia jerga. Estas son algunas palabras
@@ -1999,7 +1999,7 @@ es:
       description: Explorar los itinerarios GPS recién subidos
       tagged_with: etiquetado con %{tags}
       empty_html: Todavía no hay nada aquí. <a href='%{upload_link}'>Sube una nueva
-        traza</a> o aprende más sobre trazas GPS en la <a href='http://wiki.openstreetmap.org/wiki/Beginners_Guide_1.2'>página
+        traza</a> o aprende más sobre trazas GPS en la <a href='https://wiki.openstreetmap.org/wiki/ES:Gu%C3%ADa_del_principiante_1.2'>página
         wiki</a>.
       upload_trace: Subir una traza
       see_all_traces: Ver todas las trazas
@@ -2202,7 +2202,7 @@ es:
       confirm password: 'Confirmar contraseña:'
       reset: Restablecer contraseña
       flash changed: Tu contraseña ha sido cambiada.
-      flash token bad: No se ha encontrado este elemento, ¿quizá debería comprobar
+      flash token bad: No se ha encontrado este elemento, ¿Quizá debería comprobar
         la URL?
     new:
       title: Registrarse
@@ -2255,7 +2255,7 @@ es:
       read_tou: He leído y estoy de acuerdo con los Términos de Uso
       consider_pd: Además del acuerdo anterior, considero que mis contribuciones se
         encuentran en Dominio Público.
-      consider_pd_why: ¿qué es esto?
+      consider_pd_why: ¿Qué es esto?
       consider_pd_why_url: https://www.osmfoundation.org/wiki/License/Why_would_I_want_my_contributions_to_be_public_domain
       guidance_html: 'Información para ayudar a comprender estos términos: un <a href="%{summary}">resumen
         legible</a> y algunas <a href="%{translations}">traducciones informales</a>'
@@ -2353,12 +2353,12 @@ es:
       external auth: 'Autenticación externa:'
       openid:
         link: https://wiki.openstreetmap.org/wiki/OpenID
-        link text: ¿qué es esto?
+        link text: ¿Qué es esto?
       public editing:
         heading: 'Ediciones públicas:'
         enabled: Activadas. No es anónimo y puede editar datos.
         enabled link: https://wiki.openstreetmap.org/wiki/Anonymous_edits
-        enabled link text: ¿qué es esto?
+        enabled link text: ¿Qué es esto?
         disabled: Desactivadas y no puede editar datos; todas las ediciones anteriores
           son anónimas.
         disabled link text: ¿Por qué no puedo editar?
@@ -2368,17 +2368,17 @@ es:
           mensajes ni ver su localización. Para mostrar que es lo que ha editado y
           permitir a la gente contactar con usted a través del sitio web, pulse el
           botón inferior. <b>Desde la migración a la API 0.6, sólo los usuarios públicos
-          pueden editar el mapa</b> (<a href="http://wiki.openstreetmap.org/wiki/Anonymous_edits">más
+          pueden editar el mapa</b> (<a href="https://wiki.openstreetmap.org/wiki/ES:Ediciones_an%C3%B3nimas">más
           detalles aquí</a>) <ul><li>Su dirección de correo no será revelada por el
           hecho de ser público. </li><li>Esta acción no puede ser deshecha y todos
           los nuevos usuarios son públicos por omisión.</li></ul>
       contributor terms:
         heading: 'Términos de Colaborador:'
         agreed: Has aceptado los nuevos Términos de Colaborador.
-        not yet agreed: Aún no has aceptado los nuevos Términos de Colaborador.
+        not yet agreed: Aún no ha aceptado los nuevos Términos de Colaborador.
         review link text: Por favor, haz clic sobre este vínculo para revisar y aceptar
           los nuevos Términos de Colaborador.
-        agreed_with_pd: También has declarado que consideras tus modificaciones como
+        agreed_with_pd: También ha declarado que consideras tus modificaciones como
           de Dominio Público.
         link: https://www.osmfoundation.org/wiki/License/Contributor_Terms
         link text: ¿Qué es esto?
@@ -2710,8 +2710,8 @@ es:
       createnote_disabled_tooltip: Acercar para añadir una nota al mapa
       map_notes_zoom_in_tooltip: Acercar para ver notas del mapa
       map_data_zoom_in_tooltip: Acercar para ver datos del mapa
-      queryfeature_tooltip: Consultar características
-      queryfeature_disabled_tooltip: Acercar para consultar características
+      queryfeature_tooltip: Consultar elementos
+      queryfeature_disabled_tooltip: Acercar para consultar elementos
     changesets:
       show:
         comment: Comentar
@@ -2742,10 +2742,10 @@ es:
       ascend: Ascender
       engines:
         fossgis_osrm_bike: Bicicleta (OSRM)
-        fossgis_osrm_car: En coche (OSRM)
-        fossgis_osrm_foot: Pie (OSRM)
-        graphhopper_bicycle: En bicicleta (GraphHopper)
-        graphhopper_car: Auto (GraphHopper)
+        fossgis_osrm_car: Automóvil (OSRM)
+        fossgis_osrm_foot: A pie (OSRM)
+        graphhopper_bicycle: Bicicleta (GraphHopper)
+        graphhopper_car: Automóvil (GraphHopper)
         graphhopper_foot: A pie (GraphHopper)
       descend: Descender
       directions: Indicaciones
@@ -2836,7 +2836,7 @@ es:
       node: Nodo
       way: Vía
       relation: Relación
-      nothing_found: No se encontraron características
+      nothing_found: No se encontraron elementos
       error: 'Error al contactar con %{server}: %{error}'
       timeout: Tiempo de espera agotado al contactar con %{server}
     context:
@@ -2844,7 +2844,7 @@ es:
       directions_to: Indicaciones hasta aquí
       add_note: Añadir una nota aquí
       show_address: Mostrar dirección
-      query_features: Consultar características
+      query_features: Consultar elementos
       centre_map: Centrar el mapa aquí
   redactions:
     edit:
index 54daac79eaba6001f5521bec6143580e3f2bd564..49902cc4c09b800c3ac9fb1115b57ef166ba1a84 100644 (file)
@@ -1265,7 +1265,7 @@ fa:
             بار شد.
     signup_confirm:
       subject: '[OpenStreetMap] به اوپن‌استریت‌مپ خوش آمدید'
-      greeting: سلام!‏
+      greeting: سلام!‏
       created: ‫کسی (امیدواریم شما) در %{site_url} حساب کاربری ساخت.‬
       confirm: ‫پیش از هر کار دیگری، باید مطمئن شویم این درخواست از سوی شماست. اگر
         همین‌طور است، لطفاً روی پیوند زیر کلیک کنید تا حساب کاربری خود را تأیید کنید:‬
@@ -1301,7 +1301,7 @@ fa:
         پیوند زیر کلیک کنید.‬
     note_comment_notification:
       anonymous: کاربری گمنام
-      greeting: سلام،‏
+      greeting: سلام،‏
       commented:
         subject_own: '[OpenStreetMap] ‫%{commenter} روی یکی از یادداشت‌های شما نظر
           داد‬'
@@ -2598,7 +2598,7 @@ fa:
       custom_dimensions: تنظیم ابعاد سفارشی
       format: 'قالب:'
       scale: 'مقیاس: ‪'
-      image_size: 'لایهٔ استاندارد در تصویری به ‌این ابعاد نمایش داده می‌شود: ‎'
+      image_size: 'این عکس، لایهٔ استاندارد را با ‌این ابعاد نمایش می‌دهد: ‎'
       download: بارگیری
       short_url: نشانی کوتاه
       include_marker: شامل نشانگر
index e7d5e5af31cb38a04ce8d108a2a94ca34588459a..1391ff698d8c5484ebc1eaae258eb94a4c0b9dc8 100644 (file)
@@ -449,6 +449,7 @@ fr:
       in_language_title: Entrées du journal en %{language}
       new: Nouvelle entrée du journal
       new_title: Écrire une nouvelle entrée dans mon journal utilisateur
+      my_diary: Mon journal
       no_entries: Aucune entrée de journal
       recent_entries: Entrées récentes du journal
       older_entries: Entrées plus anciennes
index b2585b75408730c8b2909b68618c3195218a4c60..d9f44d153c218a01fc6a7c6c3eaa3056199b69dd 100644 (file)
@@ -385,6 +385,7 @@ mk:
       in_language_title: Дневнички написи на %{language}
       new: Нова дневничка ставка
       new_title: Напишете нова ставка во вашиот кориснички дневник
+      my_diary: Мојот дневник
       no_entries: Нема дневнички ставки
       recent_entries: Скорешни дневнички ставки
       older_entries: Постари ставки
index 5036146a720f428fc3ae21e773a7b341db20d49c..69196731f4cf078650d9f38cdba699eff627e43a 100644 (file)
@@ -58,6 +58,7 @@ ro:
       diary_comment: Comentariu jurnal
       diary_entry: Intrare în jurnal
       friend: Prieten
+      issue: problemă
       language: Limbă
       message: Mesaj
       node: Nod
@@ -74,6 +75,7 @@ ro:
       relation: Relație
       relation_member: Membru relație
       relation_tag: Etichetă relație
+      report: Raport
       session: Sesiune
       trace: Urmă
       tracepoint: Punct al unei înregistrări GPS
@@ -173,6 +175,15 @@ ro:
     remote:
       name: Control la distanță
       description: Control de la distanță (JOSM sau Merkaartor)
+  auth:
+    providers:
+      none: Fără
+      openid: OpenID
+      google: OpenID
+      facebook: OpenID
+      windowslive: Windows Live
+      github: GitHub
+      wikipedia: Wikipedia
   api:
     notes:
       comment:
@@ -297,7 +308,9 @@ ro:
         tag: Pagina de pe wiki pentru tagul %{key}=%{value}
       wikidata_link: Elementul %{page} pe Wikidata
       wikipedia_link: Articolul %{page} pe Wikipedia
+      wikimedia_commons_link: Item-ul %{page} pe Wikimedia Commons
       telephone_link: Sună %{phone_number}
+      colour_preview: Previzualizează %{colour_value} culoare
     note:
       title: 'Notă: %{id}'
       new_note: Notă nouă
@@ -381,6 +394,7 @@ ro:
       in_language_title: Înregistrări de jurnal în %{language}
       new: O nouă înregistrare în jurnal
       new_title: Compune o înregistrare nouă în jurnalul meu de utilizator
+      my_diary: Jurnalul meu
       no_entries: Nu există înregistrări în jurnal
       recent_entries: Înregistrări recente din jurnal
       older_entries: Înregistrări mai vechi
@@ -555,7 +569,7 @@ ro:
           social_club: Club social
           social_facility: Facilitate socială
           studio: Studio
-          swimming_pool: Bazin de înot
+          swimming_pool: Piscină de înot
           taxi: Taxi
           telephone: Telefon public
           theatre: Teatru
@@ -1095,9 +1109,10 @@ ro:
     reopen:
       reopened: Starea problemei a fost setată la 'Deschis'
     comments:
+      comment_from_html: Comentariu de la %{user_link} pe %{comment_created_at}
       reassign_param: Realocaţi problema?
     reports:
-      reported_by_html: Realocați ca %{category} de %{user}
+      reported_by_html: Raportat %{category} de %{user} pe %{updated_at}
     helper:
       reportable_title:
         diary_comment: '%{entry_title}, coment #%{comment_id}'
@@ -1226,12 +1241,12 @@ ro:
         more_info_2: 'acestea pot fi găsite la adresa:'
       success:
         subject: '[OpenStreetMap] succes import fișier GPX'
-        loaded_successfully: încărcate cu succes cu %{trace_points} din cauza punctelor
-          posbibile %{possible_points}.
+        loaded_successfully:
+          other: încărcat cu succes cu %{trace_points} din 1 punct posibil.
     signup_confirm:
       subject: '[OpenStreetMap] Bun venit la OpenStreetMap'
-      greeting: Bună!
-      created: Cineva (sperăm că tu) tocmai ați creat un cont la %{site_url}.
+      greeting: Salut!
+      created: Cineva (sperăm că tu) tocmai a creat un cont la %{site_url}.
       confirm: 'Înainte de a face orice altceva, trebuie să confirmați că această
         solicitare a venit de la dvs., deci dacă este adevărat atunci faceți click
         pe link-ul de mai jos pentru a vă confirma contul:'
@@ -1243,12 +1258,12 @@ ro:
       greeting: Salut,
       hopefully_you: Cineva (sperăm că tu) dorește să schimbe adresa de e-mail de
         la %{server_url} la %{new_address}.
-      click_the_link: Dacă sunteți ală, faceți clic pe linkul de mai jos pentru a
-        confirma modificarea.
+      click_the_link: Dacă sunteți dumneavoastră, vă rugăm să faceți click pe linkul
+        de mai jos pentru a confirma modificarea.
     email_confirm_html:
       greeting: Salut,
-      hopefully_you: Cineva (sperăm că tu) doriți să schimbați adresa de e-mail de
-        la %{server_url} la %{new_address}.
+      hopefully_you: Cineva (sperăm că tu) ar dori să schimbe adresa de e-mail la
+        %{server_url} la %{new_address}.
       click_the_link: Dacă sunteți acesta, faceți click pe linkul de mai jos pentru
         a confirma modificarea.
     lost_password:
@@ -1257,14 +1272,14 @@ ro:
       greeting: Salut,
       hopefully_you: Cineva (posibil tu) a cerut resetarea parolei în contul openstreetmap.org
         al acestei adrese de e-mail.
-      click_the_link: Dacă vă aflați aici, faceți click pe linkul de mai jos pentru
-        a vă reseta parola.
+      click_the_link: Dacă sunteți dumneavoastră, vă rugăm să faceți click pe linkul
+        de mai jos pentru a vă reseta parola.
     lost_password_html:
       greeting: Salut,
       hopefully_you: Cineva (posibil tu) a cerut resetarea parolei în contul openstreetmap.org
         al acestei adrese de e-mail.
-      click_the_link: Dacă vă aflați aici, faceți clic pe linkul de mai jos pentru
-        a vă reseta parola.
+      click_the_link: Dacă sunteți dumneavoastră, vă rugăm să faceți click pe linkul
+        de mai jos pentru a vă reseta parola.
     note_comment_notification:
       anonymous: Un utilizator anonim
       greeting: Salut,
@@ -1297,11 +1312,10 @@ ro:
           de modificări'
         subject_other: '[OpenStreetMap] %{commenter} a comentat un set de modificări
           care vă interesează'
-        your_changeset: '%{commenter} a lăsat un comentariu asupra uneia dintre setările
-          de modificări create la %{time}'
-        commented_changeset: '%{commenter} a lăsat un comentariu cu privire la setările
-          de modificări ale hărții pe care le urmăriți create de %{changeset_author}
-          la %{time}'
+        your_changeset: '%{commenter} a lăsat un comentariu la %{time} asupra unui
+          set de modificări ale dvs.'
+        commented_changeset: '%{commenter} a lăsat un comentariu %{time} cu privire
+          la un set de modificări pe care îl urmăriți creat de %{changeset_author}'
         partial_changeset_with_comment: cu comentariul '%{changeset_comment}'
         partial_changeset_without_comment: fără comentarii
       details: Mai multe detalii despre setul de modificări pot fi găsite la adresa
@@ -1413,15 +1427,14 @@ ro:
         Drepturi de autor și Pagina de licență</a> pentru detalii.'
       legal_title: Legal
       legal_1_html: |-
-        Acest site și multe alte servicii conexe sunt operate în mod oficial de <a href='https://osmfoundation.org/'>OpenStreetMap Foundation</a> (OSMF)
-        în numele comunității. Utilizarea tuturor serviciilor operate de OSMF este supusă <a href="https://wiki.osmfoundation.org/wiki/Terms_of_Use">Termenilor de Utilizare</a>, <a href="https://wiki.openstreetmap.org/wiki/Acceptable_Use_Policy">
-        Politicile de Utilizare Acceptabile</a> şi <a href="https://wiki.osmfoundation.org/wiki/Privacy_Policy">Politica de confidenţialitate
-        </a>
-        <br>
-        Vă rugăm <a href='https://osmfoundation.org/Contact'>contactați OSMF</a>
-        dacă aveți licențe, drepturi de autor sau alte întrebări legale.
+        Acest site și multe alte servicii conexe sunt operate în mod formal de <a href='https://osmfoundation.org/'>Fundația OpenStreetMap</a> (OSMF)
+        în numele comunității. Utilizarea tuturor serviciilor operate de OSMF este supusă <a href="https://wiki.osmfoundation.org/wiki/Terms_of_Use">Termeni de utilizare</a>, <a href="https://wiki.openstreetmap.org/wiki/Acceptable_Use_Policy">
+        Politici de utilizare acceptabile</a> și a <a href="https://wiki.osmfoundation.org/wiki/Privacy_Policy">Politica de confidențialitate</a>.
+      legal_2_html: |-
+        Vă rugăm să <a href='https://osmfoundation.org/Contact'>contactați OSMF</a>
+        dacă aveți licență, drepturi de autor sau alte întrebări legale.
         <br>
-        OpenStreetMap, sigla lupă și starea hărții sunt <a href="https://wiki.osmfoundation.org/wiki/Trademark_Policy">mărci comerciale înregistrate ale OSMF</a>.
+        OpenStreetMap, logo-ul lupa și starea hărții sunt <a href="https://wiki.osmfoundation.org/wiki/Trademark_Policy">mărci înregistrate ale OSMF</a>.
       partners_title: Parteneri
     copyright:
       foreign:
@@ -1660,7 +1673,7 @@ ro:
         legate de cartografiere.
       welcome:
         url: Bun venit
-        title: Bine ați venit la OSM
+        title: Bine ați venit la OpenStreetMap
         description: Începeți cu acest ghid rapid care acoperă elementele de bază
           OpenStreetMap.
       beginners_guide:
@@ -1669,9 +1682,9 @@ ro:
         description: Ghid menținut de comunitate pentru începători.
       help:
         url: https://help.openstreetmap.org/
-        title: help.openstreetmap.org
-        description: Puneți o întrebare sau căutați răspunsuri pe site-ul de întrebări
-          și răspunsuri al OSM.
+        title: Ajutor Forum
+        description: Adresează o întrebare sau caută răspunsuri pe site-ul OpenStreetMap
+          de întrebări și răspunsuri.
       mailing_lists:
         title: Lista de e-mail-uri
         description: Adresați o întrebare sau discutați despre probleme interesante
@@ -1694,8 +1707,8 @@ ro:
           ce trebuie să știți în Matricea de întâmpinare.
       wiki:
         url: https://wiki.openstreetmap.org/
-        title: wiki.openstreetmap.org
-        description: Răsfoiți wiki-ul pentru o documentație OSM detaliată.
+        title: OpenStreetMap Wiki
+        description: Caută pe wiki pentru o documentație OpenStreetMap detaliată.
     sidebar:
       search_results: Rezultatele căutării
       close: Închide
@@ -1928,7 +1941,9 @@ ro:
       newer: Urme mai noi
     trace:
       pending: ÎN AȘTEPTARE
-      count_points: puncte %{count}
+      count_points:
+        one: 1 punct
+        other: '%{count} puncte'
       more: mai multe
       trace_details: Vezi detaliile urmei
       view_map: Vezi hartă
@@ -2048,6 +2063,7 @@ ro:
       no_apps_html: Aveți o aplicație pe care doriți să o înregistrați pentru a fi
         utilizată cu noi folosind standardul %{oauth}? Trebuie să vă înregistrați
         aplicația web înainte de a putea face cereri OAuth pentru acest serviciu.
+      oauth: OAuth
       registered_apps: 'Aveți următoarele aplicații de client înregistrate:'
       register_new: Înregistrați-vă cererea
     form:
@@ -2625,6 +2641,12 @@ ro:
         out: Micşorează
       locate:
         title: Arată locația mea
+        metersPopup:
+          one: Sunteți la un metru de acest punct
+          other: Sunteți la %{count} metri de acest punct
+        feetPopup:
+          one: Sunteți la un picior unitate de măsură de acest punct
+          other: Suntețî la %{count} picioare unitate de măsură de acest punct
       base:
         standard: Standard
         cycle_map: Hartă de ciclism
@@ -2640,6 +2662,11 @@ ro:
       copyright: © <a href='%{copyright_url}'>contribuitori OpenStreetMap</a>
       donate_link_text: <a class='donate-attr' href='%{donate_url}'>Donează</a>
       terms: <a href='%{terms_url}' target='_blank'>Website şi API terms</a>
+      thunderforest: Plăci amabilitatea <a href='%{thunderforest_url}' target='_blank'>Andy
+        Allan</a>
+      hotosm: Stilul plăcilor de <a href='%{hotosm_url}' target='_blank'>Humanitarian
+        OpenStreetMap Team</a> hosted by <a href='%{osmfrance_url}' target='_blank'>OpenStreetMap
+        France</a>
     site:
       edit_tooltip: Modifică harta
       edit_disabled_tooltip: Măriți pentru a edita harta
index e7e1a8dc3c5433399d834db427eca00381683009..a9db0a9fb39989c08772163bf15b1c3d46d9a507 100644 (file)
@@ -411,6 +411,7 @@ zh-TW:
       in_language_title: 語言為%{language}的日記項目
       new: 新增日記項目
       new_title: 在我的使用者日記裡撰寫新內容
+      my_diary: 我的日記
       no_entries: 沒有日記項目
       recent_entries: 最近的日記項目
       older_entries: 較舊的項目
index e10f066329a0fd4e126d1416c55271f86fbc564b..b0ad20fc793f4bd4332057af1002c38a39e3cfdd 100644 (file)
@@ -15,7 +15,11 @@ class Locale < I18n::Locale::Tag::Rfc4646
     end
 
     def expand
-      map(&:candidates).flatten.uniq << Locale.default
+      List.new(reverse.each_with_object([]) do |locale, expanded|
+                 locale.candidates.uniq.reverse_each do |candidate|
+                   expanded << candidate if candidate == locale || !expanded.include?(candidate)
+                 end
+               end.reverse.uniq << Locale.default)
     end
   end
 
@@ -28,17 +32,23 @@ class Locale < I18n::Locale::Tag::Rfc4646
   end
 
   def self.available
-    @available ||= List.new(I18n.available_locales)
+    @available ||= List.new(I18n.available_locales).reject!(&:invalid?)
+  end
+
+  def invalid?
+    I18n.t("activerecord.models.acl", :locale => self, :fallback => false, :raise => true).nil?
+  rescue I18n::MissingTranslationData
+    true
   end
 
   def candidates
-    [self.class.new(language, script, region, variant),
-     self.class.new(language, script, region),
-     self.class.new(language, script, nil, variant),
-     self.class.new(language, script),
-     self.class.new(language, nil, region, variant),
-     self.class.new(language, nil, region),
-     self.class.new(language, nil, nil, variant),
-     self.class.new(language)]
+    List.new([self.class.new(language, script, region, variant),
+              self.class.new(language, script, region),
+              self.class.new(language, script, nil, variant),
+              self.class.new(language, script),
+              self.class.new(language, nil, region, variant),
+              self.class.new(language, nil, region),
+              self.class.new(language, nil, nil, variant),
+              self.class.new(language)])
   end
 end
diff --git a/lib/tasks/add_version_to_nodes.rake b/lib/tasks/add_version_to_nodes.rake
deleted file mode 100644 (file)
index 4762116..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-namespace "db" do
-  desc "Adds a version number to the nodes table"
-  task :node_version => :environment do
-    require File.dirname(__FILE__) + "/../../config/environment"
-
-    increment = 1000
-    offset = 0
-    id_max = OldNode.find(:first, :order => "id desc").id
-
-    while offset < (id_max + increment)
-      hash = {}
-
-      # should be offsetting not selecting
-      OldNode.find(:all, :limit => increment, :offset => offset, :order => "timestamp").each do |node|
-        hash[node.id] ||= []
-        hash[node.id] << node
-      end
-
-      hash.each_value do |node_array|
-        n = 1
-        node_array.each do |node|
-          temp_old_node = TempOldNode.new
-          temp_old_node.id = node.id
-          temp_old_node.latitude = node.latitude
-          temp_old_node.longitude = node.longitude
-          temp_old_node.user_id = node.user_id
-          temp_old_node.visible = node.visible
-          temp_old_node.timestamp = node.timestamp
-          temp_old_node.tile = node.tile
-          temp_old_node.version = n
-          temp_old_node.save! || raise
-          n += 1
-        end
-      end
-      offset += increment
-    end
-  end
-end
diff --git a/script/daemons b/script/daemons
deleted file mode 100755 (executable)
index 4eb2fcf..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/usr/bin/env ruby
-Dir[File.dirname(__FILE__) + "/../lib/daemons/*_ctl"].each { |f| `#{f} #{ARGV.first}` }
diff --git a/script/gravatar b/script/gravatar
deleted file mode 100755 (executable)
index 2c2c2bd..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env ruby
-
-# require File.dirname(__FILE__) + "/../config/environment"
-
-start = 0
-User.where("image_use_gravatar AND id >=" + start.to_s).order("id").find_each do |user|
-  p "checked up to id " + user.id.to_s if (user.id % 1000).zero? # just give a rough indication where we are for restarting
-  next if user.avatar.attached?
-
-  hash = Digest::MD5.hexdigest(user.email.downcase)
-  url = "https://www.gravatar.com/avatar/#{hash}?d=404" # without d=404 we will always get an image back
-  response = OSM.http_client.get(URI.parse(url))
-  user.image_use_gravatar = response.success?
-  user.save
-  sleep(1)
-end
-
-exit 0
index 4f05d5f7acf39f341789e7c72dd591dae425c13d..7141cda6038747661a7eff929e71e54dd72a2168 100644 (file)
@@ -151,4 +151,10 @@ class BrowseHelperTest < ActionView::TestCase
       create(:node_tag, :node => node, :k => key, :v => value)
     end
   end
+
+  private
+
+  def current_user
+    nil
+  end
 end
index b825990b8153293809393ce0c17384fdf2b33837..9c934dc072282f8c8ac590435d34d546d652662c 100644 (file)
@@ -32,7 +32,7 @@ class UserCreationTest < ActionDispatch::IntegrationTest
   end
 
   def test_user_create_submit_duplicate_email
-    I18n.available_locales.each do |locale|
+    Locale.available.each do |locale|
       dup_email = create(:user).email
       display_name = "#{locale}_new_tester"
       assert_difference("User.count", 0) do
@@ -50,7 +50,7 @@ class UserCreationTest < ActionDispatch::IntegrationTest
       end
       assert_response :success
       assert_template "users/new"
-      assert_equal locale.to_s, response.headers["Content-Language"] unless locale == :root
+      assert_equal locale.to_s, response.headers["Content-Language"]
       assert_select "form > fieldset > div.standard-form-row > input.field_with_errors#user_email"
       assert_no_missing_translations
     end
index 4d457116013e55ca6c84bfb208018801de3d4136..13df643b25cbb674ba4edc0cf7ff34daa7d924b5 100644 (file)
@@ -80,7 +80,7 @@ class LocaleTest < ActiveSupport::TestCase
   end
 
   def test_available
-    assert_equal I18n.available_locales.count, Locale.available.count
+    assert Locale.available.count <= I18n.available_locales.count
   end
 
   def test_preferred
@@ -91,9 +91,7 @@ class LocaleTest < ActiveSupport::TestCase
     assert_equal "de", Locale.available.preferred(Locale.list("zh-Hant", "de")).to_s
     assert_equal "zh-TW", Locale.available.preferred(Locale.list("zh-Hant-TW", "de")).to_s
     assert_equal "zh-TW", Locale.available.preferred(Locale.list("zh-TW", "de")).to_s
-    assert_equal "zh-HK", Locale.available.preferred(Locale.list("yue", "zh-HK", "de")).to_s
-    assert_equal "zh-yue", Locale.available.preferred(Locale.list("yue", "zh-yue", "zh-HK", "de")).to_s
-    assert_equal "zh-yue", Locale.available.preferred(Locale.list("yue", "zh-YUE", "zh-HK", "de")).to_s
+    assert_equal "zh-TW", Locale.available.preferred(Locale.list("zh-HK", "zh-hk", "zh-Hant", "zh-hant", "zh-TW", "zh-tw", "zh", "zh-yue", "yue", "yue-Hant", "yue-HK", "yue-Hans", "zh-classical", "lzh", "ja-Hani", "ko-Hani", "ko_hanja", "vi-Hani", "ja-hani", "ko-hani", "vi-hani", "en-HK", "en-hk", "en-SG", "en-sg", "en-GB", "en-gb", "en-US", "en-us", "en", "ja")).to_s
     assert_equal "en", Locale.available.preferred(Locale.list("yue")).to_s
   end
 end