From: Andy Allan Date: Wed, 2 Mar 2022 15:00:25 +0000 (+0000) Subject: Merge branch 'pull/3472' X-Git-Tag: live~2291 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/45487e1ff8e7d334792440a2b5b3b1067269bfaf?hp=03fdc6d67f1826b1a202eb50c284fa9202af24af Merge branch 'pull/3472' --- diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index a24c745f2..29ef1e8b8 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -8,7 +8,7 @@ jobs: runs-on: ubuntu-20.04 steps: - name: Checkout source - uses: actions/checkout@v2.4.0 + uses: actions/checkout@v3 - name: Poke config run: | cp config/example.storage.yml config/storage.yml diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 6ae40a3f5..27f93428c 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-20.04 steps: - name: Check out code - uses: actions/checkout@v2.4.0 + uses: actions/checkout@v3 - name: Setup ruby uses: actions/setup-ruby@v1.1.3 with: @@ -35,7 +35,7 @@ jobs: runs-on: ubuntu-20.04 steps: - name: Check out code - uses: actions/checkout@v2.4.0 + uses: actions/checkout@v3 - name: Setup ruby uses: actions/setup-ruby@v1.1.3 with: @@ -59,7 +59,7 @@ jobs: runs-on: ubuntu-20.04 steps: - name: Check out code - uses: actions/checkout@v2.4.0 + uses: actions/checkout@v3 - name: Setup ruby uses: actions/setup-ruby@v1.1.3 with: @@ -94,7 +94,7 @@ jobs: runs-on: ubuntu-20.04 steps: - name: Check out code - uses: actions/checkout@v2.4.0 + uses: actions/checkout@v3 - name: Setup ruby uses: actions/setup-ruby@v1.1.3 with: diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 1d7c50350..ef569e3e1 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -15,7 +15,7 @@ jobs: OPENSTREETMAP_MEMCACHE_SERVERS: 127.0.0.1 steps: - name: Checkout source - uses: actions/checkout@v2.4.0 + uses: actions/checkout@v3 - name: Setup ruby uses: actions/setup-ruby@v1.1.3 with: diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 2527192f9..b8e782553 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -196,18 +196,6 @@ Rails/OutputSafety: - 'lib/rich_text.rb' - 'test/helpers/application_helper_test.rb' -# Offense count: 26 -# Cop supports --auto-correct. -Rails/RedundantPresenceValidationOnBelongsTo: - Enabled: false - -# Offense count: 90 -# Cop supports --auto-correct. -# Configuration parameters: EnforcedStyle. -# SupportedStyles: strict, flexible -Rails/TimeZone: - Enabled: false - # Offense count: 6 # Cop supports --auto-correct. Rake/Desc: diff --git a/Gemfile.lock b/Gemfile.lock index 6b90fce50..57896dfbc 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -86,17 +86,17 @@ GEM autoprefixer-rails (10.4.2.0) execjs (~> 2) aws-eventstream (1.2.0) - aws-partitions (1.556.0) - aws-sdk-core (3.126.2) + aws-partitions (1.560.0) + aws-sdk-core (3.127.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.525.0) aws-sigv4 (~> 1.1) jmespath (~> 1.0) - aws-sdk-kms (1.54.0) - aws-sdk-core (~> 3, >= 3.126.0) + aws-sdk-kms (1.55.0) + aws-sdk-core (~> 3, >= 3.127.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.112.0) - aws-sdk-core (~> 3, >= 3.126.0) + aws-sdk-s3 (1.113.0) + aws-sdk-core (~> 3, >= 3.127.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.4) aws-sigv4 (1.4.0) @@ -249,7 +249,7 @@ GEM image_optim (~> 0.24) railties sprockets - image_processing (1.12.1) + image_processing (1.12.2) mini_magick (>= 4.9.5, < 5) ruby-vips (>= 2.0.17, < 3) image_size (3.0.1) @@ -358,7 +358,7 @@ GEM parallel (1.21.0) parser (3.1.1.0) ast (~> 2.4.1) - pg (1.3.2) + pg (1.3.3) popper_js (1.16.0) progress (3.6.0) public_suffix (4.0.6) diff --git a/app/assets/opensearch/osm.xml b/app/assets/opensearch/osm.xml index 43e64c7ea..6e6db7305 100644 --- a/app/assets/opensearch/osm.xml +++ b/app/assets/opensearch/osm.xml @@ -3,15 +3,14 @@ xmlns:moz="http://www.mozilla.org/2006/browser/search/"> OpenStreetMap OpenStreetMap Search - Search for a place in OpenStreetMap, the Wiki World Map + Search for a place in OpenStreetMap UTF-8 UTF-8 - data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%10%00%00%00%10%08%06%00%00%00%1F%F3%FFa%00%00%00%19tEXtSoftware%00www.inkscape.org%9B%EE%3C%1A%00%00%01'IDATx%9C%9D%93%B1q%C30%0CE%1F%5Dd%80l%90I%C4*%A7%22%95%CF%85J%97%AE%B2%82%3DC%CE%03%A0%B3%9B%B8f%95%A3%17H%93%05%5C%A7%C8%0A%3F%05E%8A%92l%E7.%D0%E9N%02%81%07%E0Cr%FCaf%A6%FC%BC%5E%AF%DD%F4%3C%3Bt%C5%87%99)%84P%0E%DA%B6%BD%0AI%00%A1%A8%A8%1E%263S%D7u%C9'F%FE%9B%80%0C%C9%C9%22%BD'%B0%0A%AC%86%2CJ%DB%0E%22%11%8F%2F%D4%B3%22%8D%F34%CE%13u%06R%0C%40%D7u%AA%01%C5r%40%0Dq%88%C6%F9i%E8%7C%8CX%5D%A9M%95%D6%A3%A2Ti%C3Xx%CA%9C%F5mf3h%11%B6%07%B8%0APh%97%DD%1E%9E%5E%08!%D0%B6m%F1%87%108%1E%8EY5%007%03%5Cv%7B%00%3E%BF%3E%F8~x%1E%CD%B89l%00%F0I%0FWw%00%20%DB%AEJr%B6%E5%FB%09%80%C6y%CE%7D%91%1AP%B6p%2B%D9%BB%06%18V%3A%B5E%9F%AC%5B%95%AFY%3F%EE%20%A2mW%AA%93%DFN%3F%A0%E1%9B%F0u%E5%BC%BC%89%88%BC.%1F%D5'%DF%FD%C1%EE%F8%FFg%BFp%96%DF%E2%DCw%25%2B%00%00%00%00IEND%AEB%60%82 + data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAHXRFWHRUaXRsZQBPcGVuU3RyZWV0TWFwIGxvZ28gMjAxMbBaqq0AAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAACXBIWXMAAAIJAAACCQGIszliAAADAFBMVEVHcEzJ66zM7KnL5Kap3Y3U7LfR7rLd9KrS8K+99bLG6J/P7a3Z8r7O7KrC6aSswcPT77PW78HH46jJ6KfO7K7X8Lqy4ZXK7KrN66vY87vN7Kuu3ZEkMTHC35/W7byswcGzz67O7azA5aHP67mt35G245na88DB5KC41cXN2KLC4KwvLzbA0M7G5b2brJPT5eKarap6iooxPT3D3K6kurlcUz4tLSPwxTSElXs3NSL14qHL06ra8sFpaVaFl4VUXF6UpqWvxLnE2pvb88LN7avE56S546Da88HM6onM6MrM7KrL6qik24m337na8r/V8LfT8LTU5PLZ7trW8bnJ56fQ77Di8uSg1oXQ7LHO6czU7bjI4dPF46LA2Oze8eDS69PP7K3n8+rH5aTJzJzC56LA56vY8bzj8+bQ6s++1era7d7G4sc4Nzq95qjI6KS24KG846fc6fTX5vLG2+jS77LR4vHU5tei2IjV6d8xMTPW2K7N6qzN5M/R5NW60ueIn4Kox4+31b/T0qs8Oz+nvb1AP0JIRUnC5MPM3qXd7eGuz7PK5cqSv4DIxZnQ7bU7PTG60aK/1+W7456915y+2aPK4qvB3aefuo1TWVCSqZus3JFbY1ZygWfQ6r1BQ0fG487N6dHK3u7X7dfK16Gf04O24Jjo7ua13LjB2tGy0rssLC4xMC/OxqCbzoI1NTWtxrzi8OXF56660Mm0yMPB3p6x3pq+1uCFmHfL577I2dV3h2vM56jAvZS/3ce92L3I4M680t3M0J7U5+zN4O/Z27Owy7DB4r4mJymQoJOtzpSjtaHS4rC30cnW5bSxxqCmv43J6LKcs4aXrIjD3cOZtoe1z5qtwrLB4bRIUklob16Qp3y2zNhvbk13hoXb88JPV12it9BXYmrG393i8OuswpqUyoCx2LWeuYe1uo+TxHyXln6vqIbP5dvQ5dyt0ZrZ8MaZw5mcsZet1q/CzbqkrIeyrK2dsbRCRTeyxtJ6iZGnk1dhbHF+dmKBkJ+ppJCUo7fdGvRRAAAASHRSTlMAi9Bd/klPCBAEJb2KHzftZ6ky+aTOt3OfPvPeCtz2/f2XZ+vqk+V7z3DzJvVs4PbJsD9I4uPTtR2HrvHA88Z91PqX+Kn06tFpmiUEAAADw0lEQVQ4y2NQdGEU4GKAAA5GN2kxJXYIh5NV0B1EC3h5eXkzabJzsPHYOOcWlIezuCryMfAKCCqn3bsnCdIlBVJxUCrNzy/tQkHBrFneMRc/Om6+NnN6QZQfD8gIEaB8R4e3f3BfQX5uwdZJl9a/3bBhQ1bFzpaPfqIgBWxe3t7J3iEJ/sEb8wvyt9ZHV9TWlpXV1tRGnzkhB3IPh7e398HkxTEJEREbgfJvOsuyshYF1dbU7G88c4IVZASTt3dITPLihJKAgKlA/Z1ZYUGL4uMzamq6Vp6xAzsioTokJqQ3yduretr6srJFQVlxcWFxcfHd+7oa5WWACtT8/IL9oqoivJO2bN9bFhcWlJ6eGJYVtsB3edfRTfYMDJJ+aWlRaVFHEmJmLZkZnZWeFfa4qLDoUEW7L1BFowMDA08aUIG//5GQpT5rW4oDiwIDA0uBeOE2oIpnK/kZGESDg4MjIoKbtrD4fJCfCJQrBKKihbF184FGABWwB/j7+0dEVE318fmk0LKt9PChQ4dLD8fGxtZl+/r6NvIzsAYAQXXT6SSfWRunfKtbeDgoqKI4MzY2E2SF714TBuYQ79DQ0DXVeSnXU/J/TswsXhSfsWBiJtCG7mPt8VmGDBzCIUkhCR3JeQk7JjX+/ZE50dPTMzLyUXG0p2dGXLq+EQMDNygg1yRVB8/N3/d/3u26bk9PsJqMRWGJiQbAcBIHRnfvbu/d/vtT9z64/7AuGqzAMz4obNkyHW2gAiFgdG9J9oqZe2D/gQcP235viwQrCFq2LH2FHjhpCefleXUkT8suiZh6t611xv2WBUAl8enLsjafUuAEqZCNyYvZkvy5ac/Nf39ab8yZc7dl04ro6J2bZ7ZcfSIEUsDtHZN0fe/iybPntf26s+vW9lsN51/VX3p+8uq5a1NA6YFdbm53dp8XSH5e852Z0642TL8y/XVDT0/PyaNaoBTF9j6yL7hkyuzWttac7/Vfm5qipk6b8KKh5+XTtZM0QDYIRqbmRk2Z3dzauq5/zpd9t/2bqvpOr5m8NhwI1EEKlFNTL0yY0dzcXNl/80pv9YHLAWerzkYtLV8SXu7DB/JlburcCTNymnMq++dc3BNzuSR7f4B/cEr5Eh8fHxZwqi8oODdjXc66Vf27nu/pPQaMuB0r/P0nAbX7+KiAFDDmvrtRua4SKH9+8m5rCaYEoIrsgJRwoLyPGEgBn7iTbeXq46u3N8hKMAN9xSvOHZodGrOURVoVlqc5rUyPm1kYw7jArKTLyMzLgATYzS1lGHABANfVkEkFerrFAAAAAElFTkSuQmCC - Jonathan Bennett false - Data &copy; OpenStreetMap contributors, Some Rights Reserved. CC by-sa 2.0. Geolocation provided by npemap.org.uk, geocoder.us, geocoder.ca and geonames.org. + &copy; OpenStreetMap contributors. ODbL 1.0. Geocoding provided by nominatim.openstreetmap.org. diff --git a/app/controllers/api/changesets_controller.rb b/app/controllers/api/changesets_controller.rb index 63fda31bd..df27ab5ca 100644 --- a/app/controllers/api/changesets_controller.rb +++ b/app/controllers/api/changesets_controller.rb @@ -307,11 +307,11 @@ module Api times = time.split(",") raise OSM::APIBadUserInput, "bad time range" if times.size != 2 - from, to = times.collect { |t| Time.parse(t) } + from, to = times.collect { |t| Time.parse(t).utc } changesets.where("closed_at >= ? and created_at <= ?", from, to) else # if there is no comma, assume its a lower limit on time - changesets.where("closed_at >= ?", Time.parse(time)) + changesets.where("closed_at >= ?", Time.parse(time).utc) end # stupid Time seems to throw both of these for bad parsing, so # we have to catch both and ensure the correct code path is taken. @@ -329,7 +329,7 @@ module Api changesets else changesets.where("closed_at >= ? and num_changes <= ?", - Time.now.getutc, Changeset::MAX_ELEMENTS) + Time.now.utc, Changeset::MAX_ELEMENTS) end end @@ -341,7 +341,7 @@ module Api changesets else changesets.where("closed_at < ? or num_changes > ?", - Time.now.getutc, Changeset::MAX_ELEMENTS) + Time.now.utc, Changeset::MAX_ELEMENTS) end end diff --git a/app/controllers/api/notes_controller.rb b/app/controllers/api/notes_controller.rb index f480b9706..8a41d5db8 100644 --- a/app/controllers/api/notes_controller.rb +++ b/app/controllers/api/notes_controller.rb @@ -277,16 +277,16 @@ module Api # Add any date filter if params[:from] begin - from = Time.parse(params[:from]) + from = Time.parse(params[:from]).utc rescue ArgumentError raise OSM::APIBadUserInput, "Date #{params[:from]} is in a wrong format" end begin to = if params[:to] - Time.parse(params[:to]) + Time.parse(params[:to]).utc else - Time.now + Time.now.utc end rescue ArgumentError raise OSM::APIBadUserInput, "Date #{params[:to]} is in a wrong format" @@ -361,7 +361,7 @@ module Api elsif closed_since.positive? notes.where(:status => "open") .or(notes.where(:status => "closed") - .where(notes.arel_table[:closed_at].gt(Time.now - closed_since.days))) + .where(notes.arel_table[:closed_at].gt(Time.now.utc - closed_since.days))) else notes.where(:status => "open") end diff --git a/app/controllers/api/traces_controller.rb b/app/controllers/api/traces_controller.rb index aa8a06000..6a0ec81ec 100644 --- a/app/controllers/api/traces_controller.rb +++ b/app/controllers/api/traces_controller.rb @@ -108,7 +108,7 @@ module Api :visibility => visibility, :inserted => false, :user => current_user, - :timestamp => Time.now.getutc, + :timestamp => Time.now.utc, :file => file ) diff --git a/app/controllers/friendships_controller.rb b/app/controllers/friendships_controller.rb index 93dffb4a3..a08ce0b69 100644 --- a/app/controllers/friendships_controller.rb +++ b/app/controllers/friendships_controller.rb @@ -19,7 +19,7 @@ class FriendshipsController < ApplicationController friendship.befriendee = @new_friend if current_user.is_friends_with?(@new_friend) flash[:warning] = t "friendships.make_friend.already_a_friend", :name => @new_friend.display_name - elsif current_user.friendships.where("created_at >= ?", Time.now.getutc - 1.hour).count >= current_user.max_friends_per_hour + elsif current_user.friendships.where("created_at >= ?", Time.now.utc - 1.hour).count >= current_user.max_friends_per_hour flash.now[:error] = t "friendships.make_friend.limit_exceeded" elsif friendship.save flash[:notice] = t "friendships.make_friend.success", :name => @new_friend.display_name diff --git a/app/controllers/messages_controller.rb b/app/controllers/messages_controller.rb index a95e2e587..e801915d6 100644 --- a/app/controllers/messages_controller.rb +++ b/app/controllers/messages_controller.rb @@ -24,9 +24,9 @@ class MessagesController < ApplicationController @message = Message.new(message_params) @message.recipient = @user @message.sender = current_user - @message.sent_on = Time.now.getutc + @message.sent_on = Time.now.utc - if current_user.sent_messages.where("sent_on >= ?", Time.now.getutc - 1.hour).count >= current_user.max_messages_per_hour + if current_user.sent_messages.where("sent_on >= ?", Time.now.utc - 1.hour).count >= current_user.max_messages_per_hour flash.now[:error] = t ".limit_exceeded" render :action => "new" elsif @message.save diff --git a/app/controllers/traces_controller.rb b/app/controllers/traces_controller.rb index a9dbc8539..741819f65 100644 --- a/app/controllers/traces_controller.rb +++ b/app/controllers/traces_controller.rb @@ -119,7 +119,7 @@ class TracesController < ApplicationController :description => params[:trace][:description], :visibility => params[:trace][:visibility], :inserted => false, :user => current_user, - :timestamp => Time.now.getutc) + :timestamp => Time.now.utc) @trace.valid? @trace.errors.add(:gpx_file, "can't be blank") @@ -266,7 +266,7 @@ class TracesController < ApplicationController :visibility => visibility, :inserted => false, :user => current_user, - :timestamp => Time.now.getutc, + :timestamp => Time.now.utc, :file => file ) diff --git a/app/controllers/user_blocks_controller.rb b/app/controllers/user_blocks_controller.rb index 63fca6557..63ebdad71 100644 --- a/app/controllers/user_blocks_controller.rb +++ b/app/controllers/user_blocks_controller.rb @@ -32,7 +32,7 @@ class UserBlocksController < ApplicationController end def edit - params[:user_block_period] = ((@user_block.ends_at - Time.now.getutc) / 1.hour).ceil.to_s + params[:user_block_period] = ((@user_block.ends_at - Time.now.utc) / 1.hour).ceil.to_s end def create @@ -41,7 +41,7 @@ class UserBlocksController < ApplicationController :user => @user, :creator => current_user, :reason => params[:user_block][:reason], - :ends_at => Time.now.getutc + @block_period.hours, + :ends_at => Time.now.utc + @block_period.hours, :needs_view => params[:user_block][:needs_view] ) @@ -62,7 +62,7 @@ class UserBlocksController < ApplicationController flash[:error] = t(".only_creator_can_edit") redirect_to :action => "edit" elsif @user_block.update( - :ends_at => Time.now.getutc + @block_period.hours, + :ends_at => Time.now.utc + @block_period.hours, :reason => params[:user_block][:reason], :needs_view => params[:user_block][:needs_view] ) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 39a191d84..3489b4eda 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -55,8 +55,8 @@ class UsersController < ApplicationController elsif current_user unless current_user.terms_agreed? current_user.consider_pd = params[:user][:consider_pd] - current_user.tou_agreed = Time.now.getutc - current_user.terms_agreed = Time.now.getutc + current_user.tou_agreed = Time.now.utc + current_user.terms_agreed = Time.now.utc current_user.terms_seen = true flash[:notice] = t "users.new.terms accepted" if current_user.save @@ -73,8 +73,8 @@ class UsersController < ApplicationController current_user.description = "" if current_user.description.nil? current_user.creation_ip = request.remote_ip current_user.languages = http_accept_language.user_preferred_languages - current_user.terms_agreed = Time.now.getutc - current_user.tou_agreed = Time.now.getutc + current_user.terms_agreed = Time.now.utc + current_user.tou_agreed = Time.now.utc current_user.terms_seen = true if current_user.auth_uid.blank? diff --git a/app/helpers/changesets_helper.rb b/app/helpers/changesets_helper.rb index 4c0236b6b..5773240ff 100644 --- a/app/helpers/changesets_helper.rb +++ b/app/helpers/changesets_helper.rb @@ -10,7 +10,7 @@ module ChangesetsHelper end def changeset_details(changeset) - if changeset.closed_at > Time.now + if changeset.closed_at > Time.now.utc action = :created time = time_ago_in_words(changeset.created_at, :scope => :"datetime.distance_in_words_ago") title = l(changeset.created_at) diff --git a/app/helpers/user_blocks_helper.rb b/app/helpers/user_blocks_helper.rb index 95b6cb600..3a55e1cde 100644 --- a/app/helpers/user_blocks_helper.rb +++ b/app/helpers/user_blocks_helper.rb @@ -8,7 +8,7 @@ module UserBlocksHelper if block.active? # if the block hasn't expired yet show the date, if the user just needs to login show that if block.needs_view? - if block.ends_at > Time.now.getutc + if block.ends_at > Time.now.utc t("user_blocks.helper.time_future_and_until_login_html", :time => friendly_date(block.ends_at)) else t("user_blocks.helper.until_login") diff --git a/app/models/access_token.rb b/app/models/access_token.rb index 1a5ff8553..d2c0dba1c 100644 --- a/app/models/access_token.rb +++ b/app/models/access_token.rb @@ -36,8 +36,8 @@ # class AccessToken < OauthToken - belongs_to :user - belongs_to :client_application + belongs_to :user, :optional => true + belongs_to :client_application, :optional => true scope :valid, -> { where(:invalidated_at => nil) } @@ -52,6 +52,6 @@ class AccessToken < OauthToken protected def set_authorized_at - self.authorized_at = Time.now + self.authorized_at = Time.now.utc end end diff --git a/app/models/changeset.rb b/app/models/changeset.rb index aa674ea7f..2659eaeea 100644 --- a/app/models/changeset.rb +++ b/app/models/changeset.rb @@ -44,8 +44,6 @@ class Changeset < ApplicationRecord validates :id, :uniqueness => true, :presence => { :on => :update }, :numericality => { :on => :update, :only_integer => true } - validates :user_id, :presence => true, - :numericality => { :only_integer => true } validates :num_changes, :presence => true, :numericality => { :only_integer => true, :greater_than_or_equal_to => 0 } @@ -73,11 +71,11 @@ class Changeset < ApplicationRecord # note that this may not be a hard limit - due to timing changes and # concurrency it is possible that some changesets may be slightly # longer than strictly allowed or have slightly more changes in them. - ((closed_at > Time.now.getutc) && (num_changes <= MAX_ELEMENTS)) + ((closed_at > Time.now.utc) && (num_changes <= MAX_ELEMENTS)) end def set_closed_time_now - self.closed_at = Time.now.getutc if is_open? + self.closed_at = Time.now.utc if is_open? end def self.from_xml(xml, create: false) @@ -97,7 +95,7 @@ class Changeset < ApplicationRecord def self.from_xml_node(pt, create: false) cs = Changeset.new if create - cs.created_at = Time.now.getutc + cs.created_at = Time.now.utc # initial close time is 1h ahead, but will be increased on each # modification. cs.closed_at = cs.created_at + IDLE_TIMEOUT @@ -193,7 +191,7 @@ class Changeset < ApplicationRecord self.closed_at = if (closed_at - created_at) > (MAX_TIME_OPEN - IDLE_TIMEOUT) created_at + MAX_TIME_OPEN else - Time.now.getutc + IDLE_TIMEOUT + Time.now.utc + IDLE_TIMEOUT end end end diff --git a/app/models/changeset_comment.rb b/app/models/changeset_comment.rb index ceb7d3559..1b78f98e8 100644 --- a/app/models/changeset_comment.rb +++ b/app/models/changeset_comment.rb @@ -25,8 +25,8 @@ class ChangesetComment < ApplicationRecord validates :id, :uniqueness => true, :presence => { :on => :update }, :numericality => { :on => :update, :only_integer => true } - validates :changeset, :presence => true, :associated => true - validates :author, :presence => true, :associated => true + validates :changeset, :associated => true + validates :author, :associated => true validates :visible, :inclusion => [true, false] validates :body, :characters => true diff --git a/app/models/changeset_tag.rb b/app/models/changeset_tag.rb index 600ace4a6..672e6f76c 100644 --- a/app/models/changeset_tag.rb +++ b/app/models/changeset_tag.rb @@ -20,7 +20,7 @@ class ChangesetTag < ApplicationRecord belongs_to :changeset - validates :changeset, :presence => true, :associated => true + validates :changeset, :associated => true validates :k, :v, :allow_blank => true, :length => { :maximum => 255 }, :characters => true validates :k, :uniqueness => { :scope => :changeset_id } end diff --git a/app/models/client_application.rb b/app/models/client_application.rb index 1b2faafbb..d9d6b2df8 100644 --- a/app/models/client_application.rb +++ b/app/models/client_application.rb @@ -31,7 +31,7 @@ # class ClientApplication < ApplicationRecord - belongs_to :user + belongs_to :user, :optional => true has_many :tokens, :class_name => "OauthToken", :dependent => :delete_all has_many :access_tokens has_many :oauth2_verifiers diff --git a/app/models/issue.rb b/app/models/issue.rb index c94fe56a7..54947be30 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -32,9 +32,9 @@ class Issue < ApplicationRecord belongs_to :reportable, :polymorphic => true - belongs_to :reported_user, :class_name => "User" - belongs_to :user_resolved, :class_name => "User", :foreign_key => :resolved_by - belongs_to :user_updated, :class_name => "User", :foreign_key => :updated_by + belongs_to :reported_user, :class_name => "User", :optional => true + belongs_to :user_resolved, :class_name => "User", :foreign_key => :resolved_by, :optional => true + belongs_to :user_updated, :class_name => "User", :foreign_key => :updated_by, :optional => true has_many :reports, :dependent => :destroy has_many :comments, :class_name => "IssueComment", :dependent => :destroy @@ -70,7 +70,7 @@ class Issue < ApplicationRecord event :resolve do transitions :from => :open, :to => :resolved after do - self.resolved_at = Time.now.getutc + self.resolved_at = Time.now.utc end end diff --git a/app/models/issue_comment.rb b/app/models/issue_comment.rb index 69aa8bde9..07647d679 100644 --- a/app/models/issue_comment.rb +++ b/app/models/issue_comment.rb @@ -25,6 +25,4 @@ class IssueComment < ApplicationRecord belongs_to :user validates :body, :presence => true, :characters => true - validates :user, :presence => true - validates :issue, :presence => true end diff --git a/app/models/message.rb b/app/models/message.rb index 44b1d8745..49c11e900 100644 --- a/app/models/message.rb +++ b/app/models/message.rb @@ -29,7 +29,7 @@ class Message < ApplicationRecord belongs_to :recipient, :class_name => "User", :foreign_key => :to_user_id validates :title, :presence => true, :utf8 => true, :length => 1..255 - validates :body, :sent_on, :sender, :recipient, :presence => true + validates :body, :sent_on, :presence => true validates :title, :body, :characters => true def self.from_mail(mail, from, to) diff --git a/app/models/node.rb b/app/models/node.rb index f6f0f258e..ad4318487 100644 --- a/app/models/node.rb +++ b/app/models/node.rb @@ -49,8 +49,6 @@ class Node < ApplicationRecord :numericality => { :on => :update, :only_integer => true } validates :version, :presence => true, :numericality => { :only_integer => true } - validates :changeset_id, :presence => true, - :numericality => { :only_integer => true } validates :latitude, :presence => true, :numericality => { :only_integer => true } validates :longitude, :presence => true, @@ -238,7 +236,7 @@ class Node < ApplicationRecord private def save_with_history! - t = Time.now.getutc + t = Time.now.utc self.version += 1 self.timestamp = t diff --git a/app/models/node_tag.rb b/app/models/node_tag.rb index fa21b1ff6..d76a1a0ae 100644 --- a/app/models/node_tag.rb +++ b/app/models/node_tag.rb @@ -17,7 +17,7 @@ class NodeTag < ApplicationRecord belongs_to :node - validates :node, :presence => true, :associated => true + validates :node, :associated => true validates :k, :v, :allow_blank => true, :length => { :maximum => 255 }, :characters => true validates :k, :uniqueness => { :scope => :node_id } end diff --git a/app/models/note.rb b/app/models/note.rb index 24ba6854d..8c6137479 100644 --- a/app/models/note.rb +++ b/app/models/note.rb @@ -45,7 +45,7 @@ class Note < ApplicationRecord # Close a note def close self.status = "closed" - self.closed_at = Time.now.getutc + self.closed_at = Time.now.utc save end diff --git a/app/models/note_comment.rb b/app/models/note_comment.rb index eed917eee..635a5b0de 100644 --- a/app/models/note_comment.rb +++ b/app/models/note_comment.rb @@ -25,11 +25,11 @@ class NoteComment < ApplicationRecord belongs_to :note, :touch => true - belongs_to :author, :class_name => "User" + belongs_to :author, :class_name => "User", :optional => true validates :id, :uniqueness => true, :presence => { :on => :update }, :numericality => { :on => :update, :only_integer => true } - validates :note, :presence => true, :associated => true + validates :note, :associated => true validates :visible, :inclusion => [true, false] validates :author, :associated => true validates :event, :inclusion => %w[opened closed reopened commented hidden] diff --git a/app/models/oauth2_verifier.rb b/app/models/oauth2_verifier.rb index 3eca1038c..1613eabeb 100644 --- a/app/models/oauth2_verifier.rb +++ b/app/models/oauth2_verifier.rb @@ -67,6 +67,6 @@ class Oauth2Verifier < OauthToken def generate_keys self.token = OAuth::Helper.generate_key(20)[0, 20] self.expires_at = 10.minutes.from_now - self.authorized_at = Time.now + self.authorized_at = Time.now.utc end end diff --git a/app/models/oauth_token.rb b/app/models/oauth_token.rb index affdcdeb8..ae15dc658 100644 --- a/app/models/oauth_token.rb +++ b/app/models/oauth_token.rb @@ -36,8 +36,8 @@ # class OauthToken < ApplicationRecord - belongs_to :client_application - belongs_to :user + belongs_to :client_application, :optional => true + belongs_to :user, :optional => true scope :authorized, -> { where("authorized_at IS NOT NULL and invalidated_at IS NULL") } @@ -52,7 +52,7 @@ class OauthToken < ApplicationRecord end def invalidate! - update(:invalidated_at => Time.now) + update(:invalidated_at => Time.now.utc) end def authorized? diff --git a/app/models/old_node.rb b/app/models/old_node.rb index 1324c8139..4f5f074ab 100644 --- a/app/models/old_node.rb +++ b/app/models/old_node.rb @@ -35,7 +35,7 @@ class OldNode < ApplicationRecord # the queries generated by Redactable will use the wrong table name. include Redactable - validates :changeset, :presence => true, :associated => true + validates :changeset, :associated => true validates :latitude, :presence => true, :numericality => { :only_integer => true } validates :longitude, :presence => true, @@ -46,7 +46,7 @@ class OldNode < ApplicationRecord validate :validate_position belongs_to :changeset - belongs_to :redaction + belongs_to :redaction, :optional => true belongs_to :current_node, :class_name => "Node", :foreign_key => "node_id", :inverse_of => :old_nodes has_many :old_tags, :class_name => "OldNodeTag", :foreign_key => [:node_id, :version], :inverse_of => :old_node diff --git a/app/models/old_node_tag.rb b/app/models/old_node_tag.rb index 11a2efd5a..c710e48f1 100644 --- a/app/models/old_node_tag.rb +++ b/app/models/old_node_tag.rb @@ -18,7 +18,7 @@ class OldNodeTag < ApplicationRecord belongs_to :old_node, :foreign_key => [:node_id, :version], :inverse_of => :old_tags - validates :old_node, :presence => true, :associated => true + validates :old_node, :associated => true validates :k, :v, :allow_blank => true, :length => { :maximum => 255 }, :characters => true validates :k, :uniqueness => { :scope => [:node_id, :version] } end diff --git a/app/models/old_relation.rb b/app/models/old_relation.rb index 71bd4b73d..7f9a747e6 100644 --- a/app/models/old_relation.rb +++ b/app/models/old_relation.rb @@ -31,13 +31,13 @@ class OldRelation < ApplicationRecord include Redactable belongs_to :changeset - belongs_to :redaction + belongs_to :redaction, :optional => true belongs_to :current_relation, :class_name => "Relation", :foreign_key => "relation_id", :inverse_of => :old_relations has_many :old_members, -> { order(:sequence_id) }, :class_name => "OldRelationMember", :foreign_key => [:relation_id, :version], :inverse_of => :old_relation has_many :old_tags, :class_name => "OldRelationTag", :foreign_key => [:relation_id, :version], :inverse_of => :old_relation - validates :changeset, :presence => true, :associated => true + validates :changeset, :associated => true validates :timestamp, :presence => true validates :visible, :inclusion => [true, false] diff --git a/app/models/old_relation_tag.rb b/app/models/old_relation_tag.rb index 1fccdf7a8..c3a183891 100644 --- a/app/models/old_relation_tag.rb +++ b/app/models/old_relation_tag.rb @@ -18,7 +18,7 @@ class OldRelationTag < ApplicationRecord belongs_to :old_relation, :foreign_key => [:relation_id, :version], :inverse_of => :old_tags - validates :old_relation, :presence => true, :associated => true + validates :old_relation, :associated => true validates :k, :v, :allow_blank => true, :length => { :maximum => 255 }, :characters => true validates :k, :uniqueness => { :scope => [:relation_id, :version] } end diff --git a/app/models/old_way.rb b/app/models/old_way.rb index 1f00c46ba..acf88ddcf 100644 --- a/app/models/old_way.rb +++ b/app/models/old_way.rb @@ -31,13 +31,13 @@ class OldWay < ApplicationRecord include Redactable belongs_to :changeset - belongs_to :redaction + belongs_to :redaction, :optional => true belongs_to :current_way, :class_name => "Way", :foreign_key => "way_id", :inverse_of => :old_ways has_many :old_nodes, :class_name => "OldWayNode", :foreign_key => [:way_id, :version], :inverse_of => :old_way has_many :old_tags, :class_name => "OldWayTag", :foreign_key => [:way_id, :version], :inverse_of => :old_way - validates :changeset, :presence => true, :associated => true + validates :changeset, :associated => true validates :timestamp, :presence => true validates :visible, :inclusion => [true, false] diff --git a/app/models/old_way_tag.rb b/app/models/old_way_tag.rb index e684199bf..0342cf344 100644 --- a/app/models/old_way_tag.rb +++ b/app/models/old_way_tag.rb @@ -18,7 +18,7 @@ class OldWayTag < ApplicationRecord belongs_to :old_way, :foreign_key => [:way_id, :version], :inverse_of => :old_tags - validates :old_way, :presence => true, :associated => true + validates :old_way, :associated => true validates :k, :v, :allow_blank => true, :length => { :maximum => 255 }, :characters => true validates :k, :uniqueness => { :scope => [:way_id, :version] } end diff --git a/app/models/relation.rb b/app/models/relation.rb index 61ae45c99..0a4a660a6 100644 --- a/app/models/relation.rb +++ b/app/models/relation.rb @@ -39,8 +39,6 @@ class Relation < ApplicationRecord :numericality => { :on => :update, :only_integer => true } validates :version, :presence => true, :numericality => { :only_integer => true } - validates :changeset_id, :presence => true, - :numericality => { :only_integer => true } validates :timestamp, :presence => true validates :changeset, :associated => true validates :visible, :inclusion => [true, false] @@ -265,7 +263,7 @@ class Relation < ApplicationRecord private def save_with_history! - t = Time.now.getutc + t = Time.now.utc self.version += 1 self.timestamp = t diff --git a/app/models/relation_tag.rb b/app/models/relation_tag.rb index ad9a93266..758ed37cc 100644 --- a/app/models/relation_tag.rb +++ b/app/models/relation_tag.rb @@ -17,7 +17,7 @@ class RelationTag < ApplicationRecord belongs_to :relation - validates :relation, :presence => true, :associated => true + validates :relation, :associated => true validates :k, :v, :allow_blank => true, :length => { :maximum => 255 }, :characters => true validates :k, :uniqueness => { :scope => :relation_id } end diff --git a/app/models/report.rb b/app/models/report.rb index 346c5eea9..77a967641 100644 --- a/app/models/report.rb +++ b/app/models/report.rb @@ -25,8 +25,6 @@ class Report < ApplicationRecord belongs_to :issue, :counter_cache => true belongs_to :user - validates :issue, :presence => true - validates :user, :presence => true validates :details, :presence => true, :characters => true validates :category, :presence => true diff --git a/app/models/request_token.rb b/app/models/request_token.rb index f7c9501b5..adeabb184 100644 --- a/app/models/request_token.rb +++ b/app/models/request_token.rb @@ -42,7 +42,7 @@ class RequestToken < OauthToken return false if authorized? self.user = user - self.authorized_at = Time.now + self.authorized_at = Time.now.utc self.verifier = OAuth::Helper.generate_key(20)[0, 20] unless oauth10? save end diff --git a/app/models/trace.rb b/app/models/trace.rb index feefc0773..f2d81e31a 100644 --- a/app/models/trace.rb +++ b/app/models/trace.rb @@ -43,7 +43,7 @@ class Trace < ApplicationRecord has_one_attached :image, :service => Settings.trace_image_storage has_one_attached :icon, :service => Settings.trace_icon_storage - validates :user, :presence => true, :associated => true + validates :user, :associated => true validates :name, :presence => true, :length => 1..255, :characters => true validates :description, :presence => { :on => :create }, :length => 1..255, :characters => true validates :timestamp, :presence => true diff --git a/app/models/user_block.rb b/app/models/user_block.rb index 47ff9ff08..7af1f9bdc 100644 --- a/app/models/user_block.rb +++ b/app/models/user_block.rb @@ -30,14 +30,14 @@ class UserBlock < ApplicationRecord belongs_to :user, :class_name => "User" belongs_to :creator, :class_name => "User" - belongs_to :revoker, :class_name => "User" + belongs_to :revoker, :class_name => "User", :optional => true PERIODS = Settings.user_block_periods ## # scope to match active blocks def self.active - where("needs_view or ends_at > ?", Time.now.getutc) + where("needs_view or ends_at > ?", Time.now.utc) end ## @@ -50,7 +50,7 @@ class UserBlock < ApplicationRecord # returns true if the block is currently active (i.e: the user can't # use the API). def active? - needs_view || ends_at > Time.now.getutc + needs_view || ends_at > Time.now.utc end ## @@ -65,7 +65,7 @@ class UserBlock < ApplicationRecord # is the user object who is revoking the ban. def revoke!(revoker) update( - :ends_at => Time.now.getutc, + :ends_at => Time.now.utc, :revoker_id => revoker.id, :needs_view => false ) diff --git a/app/models/user_preference.rb b/app/models/user_preference.rb index d5cad3978..741aa335a 100644 --- a/app/models/user_preference.rb +++ b/app/models/user_preference.rb @@ -16,6 +16,6 @@ class UserPreference < ApplicationRecord belongs_to :user - validates :user, :presence => true, :associated => true + validates :user, :associated => true validates :k, :v, :length => 1..255, :characters => true end diff --git a/app/models/user_token.rb b/app/models/user_token.rb index 8c9bf4aeb..f927563a9 100644 --- a/app/models/user_token.rb +++ b/app/models/user_token.rb @@ -24,7 +24,7 @@ class UserToken < ApplicationRecord after_initialize :set_defaults def expired? - expiry < Time.now + expiry < Time.now.utc end private diff --git a/app/models/way.rb b/app/models/way.rb index 0c6e645b7..b11c225dd 100644 --- a/app/models/way.rb +++ b/app/models/way.rb @@ -41,8 +41,6 @@ class Way < ApplicationRecord :numericality => { :on => :update, :only_integer => true } validates :version, :presence => true, :numericality => { :only_integer => true } - validates :changeset_id, :presence => true, - :numericality => { :only_integer => true } validates :timestamp, :presence => true validates :changeset, :associated => true validates :visible, :inclusion => [true, false] @@ -229,7 +227,7 @@ class Way < ApplicationRecord private def save_with_history! - t = Time.now.getutc + t = Time.now.utc self.version += 1 self.timestamp = t diff --git a/app/models/way_tag.rb b/app/models/way_tag.rb index 0d32d8c41..93c4cdece 100644 --- a/app/models/way_tag.rb +++ b/app/models/way_tag.rb @@ -17,7 +17,7 @@ class WayTag < ApplicationRecord belongs_to :way - validates :way, :presence => true, :associated => true + validates :way, :associated => true validates :k, :v, :allow_blank => true, :length => { :maximum => 255 }, :characters => true validates :k, :uniqueness => { :scope => :way_id } end diff --git a/config/application.rb b/config/application.rb index 7b576d38f..10a2372db 100644 --- a/config/application.rb +++ b/config/application.rb @@ -35,10 +35,6 @@ module OpenStreetMap # 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" - # Use SQL instead of Active Record's schema dumper when creating the database. # This is necessary if your schema can't be completely dumped by the schema dumper, # like if you have constraints or database-specific column types diff --git a/config/environments/development.rb b/config/environments/development.rb index 750a596b4..36a6f2820 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -56,6 +56,11 @@ Rails.application.configure do # Highlight code that triggered database queries in logs. config.active_record.verbose_query_logs = true unless Settings.status == "database_offline" + # Debug mode disables concatenation and preprocessing of assets. + # This option may cause significant delays in view rendering with a large + # number of complex assets. + config.assets.debug = true + # Suppress logger output for asset requests. config.assets.quiet = true diff --git a/config/initializers/new_framework_defaults_7_0.rb b/config/initializers/new_framework_defaults_7_0.rb index a5edd72ff..e41b6c7d1 100644 --- a/config/initializers/new_framework_defaults_7_0.rb +++ b/config/initializers/new_framework_defaults_7_0.rb @@ -73,7 +73,7 @@ Rails.application.config.active_record.verify_foreign_keys_for_fixtures = true Rails.application.config.active_record.partial_inserts = false # Protect from open redirect attacks in `redirect_back_or_to` and `redirect_to`. -# Rails.application.config.action_controller.raise_on_open_redirects = true +Rails.application.config.action_controller.raise_on_open_redirects = true # Change the variant processor for Active Storage. # Changing this default means updating all places in your code that diff --git a/config/locales/eo.yml b/config/locales/eo.yml index 67823a23f..3c741c914 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -264,6 +264,31 @@ eo: entry: comment: Komento full: Tuta rimarko + account: + deletions: + show: + title: Forigi mian konton + warning: Averto! La procedo de forigo de konto estas definitiva kaj neinversigebla. + delete_account: Forigi konton + delete_introduction: 'Vi povas forigi vian OpenStreetMap-konton per la butono + sube. Estu konscia, ke:' + delete_profile: informoj pri via profilo – profilbildo, priskribo kaj hejma + pozicio – estos forigitaj; + delete_display_name: via montra nomo estos forigita kaj povos esti uzata de + aliaj kontoj. + retain_caveats: 'Tamen iuj informoj pri vi plue estos konservitaj en OpenStreetMap, + eĉ post forigi konton:' + retain_edits: viaj (eventualaj) redaktoj al la map-datumbazo estos konservitaj; + retain_traces: viaj (eventualaj) alŝutitaj spuroj estos konservitaj; + retain_diary_entries: viaj (eventualaj) afiŝoj kaj komentoj en la taglibro + estos konservitaj, sed kaŝitaj; + retain_notes: viaj (eventualaj) rimarkoj kaj komentoj pri rimarkoj estos konservitaj, + sed kaŝitaj; + retain_changeset_discussions: viaj (eventualaj) komentoj pri ŝanĝaroj estos + konservitaj; + retain_email: via retpoŝta adreso estos konservita. + confirm_delete: Ĉu vi certas? + cancel: Nuligi accounts: edit: title: Redakti konton @@ -272,12 +297,12 @@ eo: external auth: Ekstera aŭtentigo openid: link: https://wiki.openstreetmap.org/wiki/OpenID - link text: kio estas tio? + link text: Pliaj informoj public editing: heading: Publika redaktado enabled: Ebligita. Ne anonima kaj rajtas redakti. enabled link: https://wiki.openstreetmap.org/wiki/Anonymous_edits - enabled link text: Kio estas tio ? + enabled link text: Pliaj informoj disabled: Malebligita kaj ne rajtas redakti, ĉiuj antaŭaj redaktoj naŭ estas publikaj. disabled link text: kial mi ne povas redakti? @@ -298,13 +323,16 @@ eo: agreed_with_pd: Vi ankaŭ deklaris, ke viaj kontribuaĵoj estas en la publika havaĵo. link: https://www.osmfoundation.org/wiki/License/Contributor_Terms - link text: kio estas tio? + link text: Pliaj informoj save changes button: Konservi ŝanĝojn make edits public button: Publikigu ĉiujn miajn redaktojn. + delete_account: Forigi konton… update: success_confirm_needed: Uzantinformoj sukcese freŝigitaj. Kontrolu vian retpoŝtilon por iu mesaĝo kiu konfirmos vian novan retadreso. success: Uzantinformoj sukcese freŝigitaj. + destroy: + success: Via konto estas forigita. browse: created: Kreita closed: Fermita @@ -2613,7 +2641,7 @@ eo: read_tou: Mi legis kaj konsentas la Uzkondiĉojn consider_pd: Krom la ĉi-supro, mi konfirmas, ke miaj kontribuaĵoj apartenas al la publika havaĵo - consider_pd_why: kio estas tio? + consider_pd_why: Pliaj informoj consider_pd_why_url: https://wiki.osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why_would_I_want_my_contributions_to_be_public_domain guidance_html: 'Informoj por helpi kompreni ĉi tiun interkonsenton: simpla mallongigo kaj kelkaj neoficialaj tradukoj' diff --git a/config/locales/es.yml b/config/locales/es.yml index bb9a401d4..82b3d1653 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -325,6 +325,32 @@ es: entry: comment: Comentario full: Nota completa + account: + deletions: + show: + title: Eliminar mi cuenta + warning: ¡Advertencia! El proceso de eliminación de la cuenta es definitivo + y no puede ser revertido. + delete_account: Eliminar cuenta + delete_introduction: 'Puede eliminar su cuenta de OpenStreetMap utilizando + el botón que aparece a continuación. Tenga en cuenta los siguientes detalles:' + delete_profile: Se eliminará la información de su perfil, incluido su avatar, + descripción y ubicación de inicio. + delete_display_name: Su nombre para mostrar será eliminado, y puede ser reutilizado + por otras cuentas. + retain_caveats: 'Sin embargo, algunos datos sobre usted se conservarán en + OpenStreetMap, incluso después de que se elimine su cuenta:' + retain_edits: Sus ediciones en la base de datos de mapas, si las hay, se conservarán. + retain_traces: Sus trazas subidas, si las hay, se conservarán. + retain_diary_entries: Las entradas y los comentarios de tu diario, si los + hay, se conservarán pero estarán ocultos. + retain_notes: Las notas del mapa y los comentarios de las notas, si los hay, + se conservarán pero estarán ocultos. + retain_changeset_discussions: Sus discusiones sobre el conjunto de cambios, + si las hay, se conservarán. + retain_email: Su dirección de correo electrónico se conservará. + confirm_delete: ¿Está seguro? + cancel: Cancelar accounts: edit: title: Editar cuenta @@ -364,11 +390,14 @@ es: link text: ¿Qué es esto? save changes button: Guardar cambios make edits public button: Hacer que todas mis ediciones sean públicas + delete_account: Eliminar cuenta... update: success_confirm_needed: La información del usuario se ha actualizado correctamente. Compruebe su correo electrónico para ver una nota sobre cómo confirmar su nueva dirección de correo electrónico. success: La información del usuario se ha actualizado correctamente. + destroy: + success: Cuenta eliminada. browse: created: Creado closed: Cerrado diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 628318744..142b1d083 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -286,6 +286,17 @@ fi: entry: comment: Kommentti full: Koko karttailmoitus + account: + deletions: + show: + title: Poista käyttäjäni + warning: Varoitus! Käyttäjän poistaminen on lopullinen, eikä sitä voi peruuttaa. + delete_account: Poista käyttäjä + delete_profile: Käyttäjätietosi, avatar, kuvaus ja kotisijainti mukaan lukien + poistetaan. + retain_edits: Mahdolliset karttatietokantaan tekemäsi muutokset säilytetään. + confirm_delete: Oletko varma? + cancel: Peruuta accounts: edit: title: Asetusten muokkaus @@ -324,10 +335,13 @@ fi: link text: Mitä tämä tarkoittaa? save changes button: Tallenna muutokset make edits public button: Tee muokkauksistani julkisia + delete_account: Poista käyttäjä... update: success_confirm_needed: Käyttäjätietojen muutokset on tallennettu. Vahvista uusi sähköpostiosoite siihen lähetettyjen ohjeiden mukaisesti. success: Käyttäjätietojen muutokset on tallennettu. + destroy: + success: Käyttäjä poistettu. browse: created: Luotu closed: Ratkaistu diff --git a/config/locales/fr.yml b/config/locales/fr.yml index edb05f162..c9ebc688e 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -106,7 +106,7 @@ fr: message: create: Envoyer client_application: - create: Enregistrer + create: S’inscrire update: Mettre à jour doorkeeper_application: create: S’inscrire @@ -132,7 +132,7 @@ fr: country: Pays diary_comment: Commentaire du journal diary_entry: Entrée du journal - friend: Ami + friend: Ami(e) issue: Problème language: Langue message: Message @@ -190,7 +190,7 @@ fr: scopes: Autorisations friend: user: Utilisateur - friend: Ami + friend: Ami(e) trace: user: Utilisateur visible: Visible @@ -221,7 +221,7 @@ fr: email_confirmation: Confirmation du courriel new_email: Nouvelle adresse de courriel active: Actif - display_name: Pseudonyme + display_name: Nom affiché description: Description du profil home_lat: Latitude home_lon: Longitude @@ -452,7 +452,7 @@ fr: osmchangexml: XML osmChange feed: title: Groupe de modifications %{id} - title_comment: Groupe de modifications %{id} — %{comment} + title_comment: 'Groupe de modifications %{id} : %{comment}' join_discussion: Se connecter pour rejoindre la discussion discussion: Discussion still_open: Ensemble de modifications toujours ouvert – la discussion s’ouvrira @@ -557,7 +557,7 @@ fr: changeset_paging_nav: showing_page: Page %{page} next: Suivant ›› - previous: ‹‹ Précédent + previous: ◂ Précédent changeset: anonymous: Anonyme no_edits: (aucune modification) @@ -623,7 +623,7 @@ fr: new: title: Nouvelle entrée du journal form: - location: Lieu + location: Emplacement use_map_link: Utiliser la carte index: title: Journaux des utilisateurs @@ -674,7 +674,7 @@ fr: confirm: Confirmer report: Signaler ce commentaire location: - location: 'Lieu :' + location: 'Emplacement :' view: Afficher edit: Modifier coordinates: '%{latitude} ; %{longitude}' @@ -1272,7 +1272,7 @@ fr: place: allotments: Jardins familiaux archipelago: Archipel - city: Ville + city: Grande ville city_block: Bloc urbain country: Pays county: Comté @@ -1295,7 +1295,7 @@ fr: state: État / province subdivision: Subdivision suburb: Quartier - town: Ville + town: Petite ville village: Village "yes": Lieu railway: @@ -1484,7 +1484,7 @@ fr: lock_gate: Porte d’écluse mooring: Mouillage rapids: Rapides - river: Rivière + river: Cours d’eau stream: Ruisseau wadi: Oued waterfall: Chute d’eau @@ -1994,10 +1994,10 @@ fr: ligne si vous voulez en discuter. auth failure: Désolé, mais les informations fournies n’ont pas permis de vous identifier. - openid_logo_alt: Se connecter avec un OpenID + openid_logo_alt: Se connecter avec OpenID auth_providers: openid: - title: Se connecter avec OpenID + title: Connexion avec OpenID alt: Se connecter avec une URL OpenID google: title: Connexion avec Google @@ -2045,7 +2045,7 @@ fr: site: about: next: Suivant - copyright_html: © Contributeurs
d’OpenStreetMap + copyright_html: © Contributeurs
d’OpenStreetMap used_by_html: '%{name} fournit les données cartographiques pour des milliers de sites web, d’applications mobiles et d’appareils' lede_text: OpenStreetMap est bâti par une communauté de cartographes bénévoles @@ -2112,8 +2112,8 @@ fr: intro_3_1_html: "Notre documentation est disponible sous la licence \nCreative\nCommons paternité – partage à l’identique 2.0 (CC-BY-SA 2.0)." credit_title_html: Comment créditer OpenStreetMap - credit_1_html: Nous demandons que votre crédit comporte la mention « © les - contributeurs d’OpenStreetMap ». + credit_1_html: Nous demandons que votre crédit comporte la mention « © Contributeurs + d’OpenStreetMap ». credit_2_1_html: |- Vous devez également préciser clairement que les données sont disponibles sous la licence ODbL (Open Database License) et, si vous utilisez les tuiles de notre carte, que la carte est sous la @@ -2990,7 +2990,7 @@ fr: time_future: Ce blocage se terminera dans %{time}. past: Ce blocage s’est terminé à %{time} et ne peut plus être annulé. confirm: Êtes-vous sûr de vouloir annuler ce blocage ? - revoke: Débloquer ! + revoke: Révoquer ! flash: Ce blocage a été annulé. helper: time_future_html: Prends fin dans %{time}. @@ -3114,7 +3114,7 @@ fr: gps: Traces GPS publiques overlays: Autoriser les superpositions pour réparer la carte title: Couches - copyright: © Contributeurs de OpenStreetMap + copyright: © Contributeurs d’OpenStreetMap donate_link_text: terms: Conditions du site web et de l’API cyclosm: Style de briques par CyclOSM diff --git a/config/locales/fy.yml b/config/locales/fy.yml index 51d10627f..b12cb7508 100644 --- a/config/locales/fy.yml +++ b/config/locales/fy.yml @@ -51,10 +51,12 @@ fy: diary_comment: Deiboekreäksje diary_entry: Deiboekstik friend: Freon + issue: Probleem language: Taal message: Berjocht node: Punt node_tag: Puntlebel + notifier: Melder old_node: Ald punt old_node_tag: Ald puntlebel old_relation: Alde relaasje @@ -152,6 +154,11 @@ fy: trace: tagstring: skaat mei komma's user_block: + reason: De reden wêrom't de meidogger útsletten wurdt. Bliuw sa kalm en ridlik + mooglik, en jou oer de sitewaasje safolle bysûnderheden as jo kinne, mei + yn 'e efterholle dat it berjocht iepenbier sichtber wêze sil. Betink dat + net alle meidoggers it mienskipsjargon begripe, dus besykje graach gewoaneminsketaal + te brûken. needs_view: Moat de meidogger oanmelde foar't dizze útsluting ferfalt? user: email_confirmation: Jo adres wurdt net publikelik toand; sjoch ús %{time} + last_updated_time_user_html: %{time} troch %{user} + link_to_reports: Meldings besjen + reports_count: + one: 1 melding + other: '%{count} meldings' + reported_item: Meld elemint + states: + ignored: Negearre + open: Iepen + resolved: Oplost update: new_report: It fêstlizzen fan jo melding is slagge successful_update: It bywurkjen fan jo melding is slagge provide_details: Graach de ferplichte details oanjaan + show: + title: '%{status} probleem #%{issue_id}' + reports: + one: 1 melding + other: '%{count} meldings' + report_created_at: Earst meld op %{datetime} + last_resolved_at: Lêst oplost op %{datetime} + last_updated_at: Lêst bywurke op %{datetime} troch %{displayname} + resolve: Oplosse + ignore: Negearje + reopen: Weriepenje + reports_of_this_issue: Meldings fan dit probleem + read_reports: Meldings lêze + new_reports: Nije meldings + other_issues_against_this_user: Oare problemen mei dizze meidogger + no_other_issues: Gjin oare problemen mei dizze meidogger. + comments_on_this_issue: Reäksjes by dit probleem + resolve: + resolved: De probleemstatus is op 'Oplost' set + ignore: + ignored: De probleemstatus is op 'Negearre' set + reopen: + reopened: De probleemstatus is op 'Iepen' set + comments: + comment_from_html: Reäksje fan %{user_link} op %{comment_created_at} + reassign_param: Probleem weryndiele? + reports: + reported_by_html: Meld as %{category} troch %{user} op %{updated_at} helper: reportable_title: + diary_comment: '%{entry_title}, reäksje #%{comment_id}' note: 'Notysje #%{note_id}' + issue_comments: + create: + comment_created: It oanmeitsjen fan jo reäksje is slagge reports: new: title_html: '%{link} melde' missing_params: Kin gjin nije melding oanmeitsje + disclaimer: + intro: 'Foar''t jo melding dogge by it websteetafersjoch, moat it neikommende + fêststean:' + not_just_mistake: Jo binne der wis fan dat it probleem net gewoan in fersin + is + unable_to_fix: Jo binne net by steat en ferhelp it probleem sels, of mei help + fan jo meileden út 'e mienskip + resolve_with_user: Jo hawwe al besocht om mei de belutsen meidogger it probleem + op te lossen categories: diary_entry: spam_label: Dit deiboekstik is/befettet spam @@ -1444,6 +1517,7 @@ fy: edit: Bewurkje history: Skiednis export: Eksportearje + issues: Problemen data: Gegevens export_data: Data eksportearje gps_traces: GPS-trajekten @@ -1463,6 +1537,10 @@ fy: partners_bytemark: Bytemark Hosting partners_partners: partners tou: Gebrûksbetingsten + osm_offline: De OpenStreetMap-databank is op it stuit ôfline, wylst der it nedige + ûnderhâldswurk útfierd wurdt. + osm_read_only: De OpenStreetMap-databank is op it stuit allinnich yn lêsmodus, + wylst der it nedige ûnderhâldswurk útfierd wurdt. donate: Stypje OpenStreetMap en %{link} oan it Fernijingsfûns foar Kompjûtersystemen. help: Help about: Oer @@ -1518,6 +1596,7 @@ fy: failed_to_import: 'net ymportearre wurde koe. Hjir is de foutmelding:' more_info_html: Mear ynformaasje oer GPX-ymportflaters, en hoe't se tefoaren kommen wurde kinne, fine jo op %{url}. + import_failures_url: https://wiki.openstreetmap.org/wiki/GPX_Import_Failures subject: '[OpenStreetMap] GPX ymportearjen mislearre' gpx_success: hi: Goeie %{to_user}, @@ -1793,7 +1872,7 @@ fy: account not active: Spitich, jo akkount is noch net aktyf.
Brûk de keppeling yn 'e akkountbefêstigingsmail en aktivearje jo akkount, of
freegje in nije befêstigingsmail. - account is suspended: Spitich, jo akkount is stillein fanwegen fertochte aktiviteiten.
Nim kontakt op mei Stipe at jo dat beprate wolle. auth failure: Spitich, koe jo net oanmelde mei dy gegevens. openid_logo_alt: Meld jo oan mei in openID @@ -2024,6 +2103,15 @@ fy: url: https://wiki.openstreetmap.org/ title: OpenStreetMap-wiki description: De wiki trochsjen foar wiidweidige dokumintaasje oer OpenStreetMap. + potlatch: + removed: Jo standertbewurker foar OpenStreetMap is ynsteld op Potlatch. Om't + Adobe Flash Player weifallen is, is Potlatch net mear beskikber foar gebrûk + yn in webblêder. + desktop_html: Jo kinne Potlatch nog brûke troch it + kompjûterprogramma foar Mac as Windows yn te laden. + id_html: As alternatyf kinne jo jo standertbewurker ynstelle op iD, dat yn jo + webblêder draait krekt as Potlatch foarhinne. Feroarje + hjir jo foarkarren. sidebar: search_results: Sykresultaten close: Slute @@ -2177,6 +2265,15 @@ fy: trace_uploaded: Jo GPX-bestân is opladen en wachtet op databankynfiering. Dat bart trochstrings binnen in heal oere, en der wurdt jo in e-mail tastjoerd at it dien is. + upload_failed: Spitich, it opladen fan 'e GPX gong mis. In behearder is op 'e + flater wiisd. Besykje it nochris + traces_waiting: + one: Jo hawwe %{count} trajekt foar opladen yn 'e wacht. Wachtsje oant dy + klear is foar't jo noch mear oplade, om 'e wachtrige net te ferstopjen foar + oare meidoggers. + other: Jo hawwe %{count} trajekten foar opladen yn 'e wacht. Wachtsje oant + dy klear binne foar't jo noch mear oplade, om 'e wachtrige net te ferstopjen + foar oare meidoggers. edit: cancel: Annulearje title: Trajekt %{name} bewurkje @@ -2243,6 +2340,12 @@ fy: scheduled_for_deletion: Trajekt ynplend om te wiskjen make_public: made_public: Trajekt iepenbier makke + offline_warning: + message: It systeem foar opladen fan GPX-bestannen is op it stuit net beskikber + offline: + heading: GPX-opslach ôfline + message: It systeem foar opslach en opladen fan GPX-bestannen is op it stuit + net beskikber. georss: title: OpenStreetMap GPS-trajekten description: @@ -2251,12 +2354,18 @@ fy: other: GPX-bestân mei %{count} punten fan %{user} description_without_count: GPX-bestân fan %{user} application: + permission_denied: Jo hawwe net de rjochten foar tagong ta dy hanneling + require_cookies: + cookies_needed: It liket dat jo 'koekjes' út stean hawwe - set koekjes oan yn + jo webblêder foar't jo trochgeane. + require_admin: + not_an_admin: Jo moatte behearder wêze om dy hanneling útfiere te kinnen. setup_user_auth: blocked_zero_hour: Jo hawwe in driuwend berjocht op it OpenStreetMap-webstee. Jo moatte it berjocht lêze foar't jo jo bewurkings fêstlizze kinne. - blocked: Jo tagong ta de API is útsletten. Meld jo oan op 'e webside om der - mear oer te witten. - need_to_see_terms: Jo tagong ta de API is tydlik stillein. Meld jo oan op 'e + blocked: Jo binne útsletten fan tagong ta de API. Meld jo oan op 'e webside + om der mear oer te witten. + need_to_see_terms: Jo tagong ta de API is tydlik skoattele. Meld jo oan op 'e webside om de Bydragersbetingsten te besjen. Jo hoege net akkoart te gean, mar jo moatte se besjen. settings_menu: @@ -2265,10 +2374,32 @@ fy: oauth2_applications: Applikaasjes OAuth 2 oauth2_authorizations: Autorisaasjes OAuth 2 oauth: + authorize: + title: Tagong ta jo akkount autorisearje + request_access_html: De applikaasje %{app_name} freget tagong ta jo akkount, + %{user}. Gean nei oft jo wolle dat de applikaasje de neikommende mooglikheden + kriget. Jo meie der sa folle of sa min kieze as jo wolle. + allow_to: 'De kliïnt-applikaasje tastean om:' + allow_read_prefs: jo meidoggerfoarkarren te lêzen. + allow_write_prefs: jo meidoggerfoarkarren te wizigjen. + allow_write_diary: deiboekstikken, reäksjes en freonen te meitsjen. + allow_write_api: de kaart te wizigjen. + allow_read_gpx: jo privee-GPS-trajekten te lêzen. + allow_write_gpx: GPS-trajekten op te laden. + allow_write_notes: notysjes te wizigjen. + grant_access: Tagong jaan + authorize_success: + title: Autorisaasjefersyk tastien + allowed_html: Jo hawwe de applikaasje %{app_name} tagong ta jo akkount jûn. + verification: De ferifikaasjekoade is %{code}. authorize_failure: + title: Autorisaasjefersyk mislearre + denied: Jo hawwe de applikaasje %{app_name} tagong ta jo akkount wegere. invalid: De autorisaasjekaai is net jildich. revoke: flash: Jo hawwe de kaai foar %{application} ynlutsen + permissions: + missing: Jo hawwe de applikaasje de tagong ta dizze foarsjenning net tastien scopes: read_prefs: Meidoggerfoarkarren lêzen write_prefs: Meidoggerfoarkarren wizigjen @@ -2282,9 +2413,15 @@ fy: oauth_clients: new: title: In nije applikaasje registrearje + edit: + title: Jo applikaasje bewurkje show: + title: OAuth-gegevens foar %{app_name} support_notice: Wy stypje ûndertekeningen mei HMAC-SHA1 (oanret) en RSA-SHA1. + edit: Gegevens bewurkje + delete: Kliïnt wiskje confirm: Seker witte? + requests: 'Freget de neikommende rjochten fan ''e meidogger:' index: title: Myn OAuth-gegevens my_tokens: Myn autorisearre applikaasjes @@ -2301,6 +2438,12 @@ fy: register_new: Jo applikaasje registrearje form: requests: 'Freegje de neikommende rjochten fan ''e meidogger:' + create: + flash: Registrearjen fan 'e ynformaasje slagge + update: + flash: Bywurkjen fan 'e kliïnt-ynformaasje slagge + destroy: + flash: Registraasje fan 'e kliïnt-applikaasje ferneatige oauth2_applications: index: title: Myn kliïnt-applikaasjes @@ -2437,7 +2580,7 @@ fy: edits: Bewurkings traces: Trajekten notes: Kaartnotysjes - remove as friend: Freon ôf + remove as friend: Freon ôffiere add as friend: Freon tafoegje mapper since: 'Kaartmakker sûnt:' ct status: 'Bydragersbetingsten:' @@ -2445,12 +2588,14 @@ fy: ct declined: ôfwiisd latest edit: 'Lêste bewurking (%{ago}):' email address: 'E-mailadres:' + created from: 'Oanmakke fan:' status: 'Status:' + spam score: 'Spamskoare:' description: Beskriuwing user location: Lokaasje meidogger role: - administrator: Dizze meidogger is in behearder - moderator: Dizze meidogger is in tafersjochhâlder + administrator: Dizze meidogger is behearder + moderator: Dizze meidogger is tafersjochhâlder grant: administrator: Behearder meitsje moderator: Tafersjochhâlder meitsje @@ -2461,8 +2606,13 @@ fy: moderator_history: Utslutings útdield comments: Reäksjes create_block: Dizze meidogger útslute + activate_user: Dizze meidogger aktivearje + deactivate_user: Dizze meidogger deäktivearje confirm_user: Dizze meidogger befêstigje + unconfirm_user: Dizze meidogger ûnbefêstigje + unsuspend_user: Dizze meidogger ûntskoattelje hide_user: Dizze meidogger ferbergje + unhide_user: Dizze meidogger werompleatse delete_user: Dizze meidogger wiskje confirm: Befêstigje report: Dizze meidogger melde @@ -2476,18 +2626,18 @@ fy: showing: one: Side %{page} (%{first_item} fan %{items}) other: Side %{page} (%{first_item}-%{last_item} fan %{items}) - summary_html: '%{name} oanmakke fan %{ip_address} ôf op %{date}' + summary_html: '%{name} oanmakke fan %{ip_address} op %{date}' summary_no_ip_html: '%{name} oanmakke op %{date}' confirm: Selektearre meidoggers befêstigje hide: Selektearre meidoggers ferbergje empty: Gjin oerienkommende meidoggers fûn suspended: - title: Akkount stillein - heading: Akkount stillein + title: Akkount skoattele + heading: Akkount skoattele support: Stipe body_html: |-

- Spitich, jo akkount is automatysk stillein fanwegen + Spitich, jo akkount is automatysk skoattele fanwegen fertochte aktiviteiten.

@@ -2510,6 +2660,29 @@ fy: At jo al in akkount hawwe, kinne jo jo oanmelde op jo akkount mei jo meidochnamme en wachtwurd, en dan it akkount ferbine oan jo ID yn jo meidoggerynstellings. + user_role: + filter: + not_a_role: De tekenrige '%{role}' is net in jildige rol. + already_has_role: De meidogger hat al de rol fan %{role}. + doesnt_have_role: De meidogger hat net de rol fan %{role}. + not_revoke_admin_current_user: Kin de beheardersrol fan dizze meidogger net + ynlûke. + grant: + title: Rol takennen befêstigje + heading: Rol takennen befêstigje + are_you_sure: Witte jo seker dat jo de rol fan '%{role}' oan 'e meidogger '%{name}' + takenne wolle? + confirm: Befêstigje + fail: Koe de rol fan '%{role}' oan 'e meidogger '%{name}' net takenne. Gean + nei oft meidogger en rol beide jildich binne. + revoke: + title: Rol ynlûken befêstigje + heading: Rol ynlûken befêstigje + are_you_sure: Witte jo seker dat jo de rol fan '%{role}' fan 'e meidogger '%{name}' + ynlûke wolle? + confirm: Befêstigje + fail: Koe de rol fan '%{role}' fan 'e meidogger '%{name}' net ynlûke. Gean nei + oft meidogger en rol beide jildich binne. user_blocks: model: non_moderator_update: Moat tafersjochhâlder wêze om in útsluting oanmeitsje diff --git a/config/locales/he.yml b/config/locales/he.yml index 288bfc4ea..77247be61 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -313,9 +313,14 @@ he: retain_caveats: 'אבל חלק מהמידע עליך יישמר ב־OpenStreetMap, אפילו אחרי מחיקת חשבונך:' retain_edits: העריכות שלך לבסיס הנתונים של המפה, אם קיימות, יישמרו. + retain_traces: ההקלטות (traces) שהעליתם, יישמרו. retain_diary_entries: יומן הכניסות ויומן התגובות שלך, אם קיימים, יישמרו, אך לא ניתן יהיה לצפות בהם. + retain_notes: הערות המפה ותגובות להערות, אם יש כאלה, יישמרו, אבל יוסתרו. + retain_changeset_discussions: הדיונים שלכם על ערכות השינויים, אם יש כאלה, + יישמרו. retain_email: כתובת הדואר האלקטרוני שלך תישמר. + confirm_delete: להמשיך? cancel: ביטול accounts: edit: diff --git a/config/locales/hi.yml b/config/locales/hi.yml index 4cefa721e..cae49769f 100644 --- a/config/locales/hi.yml +++ b/config/locales/hi.yml @@ -11,6 +11,7 @@ # Author: Nitin1485 # Author: Prong$31 # Author: Rajatkatiyar10 +# Author: Saurmandal # Author: Sfic # Author: Shubhamkanodia # Author: Siddhartha Ghai @@ -237,6 +238,11 @@ hi: entry: comment: टिप्पणी full: पूरा नोट + account: + deletions: + show: + confirm_delete: क्या आप निश्चित है? + cancel: रद्द करें accounts: edit: public editing: diff --git a/config/locales/ia.yml b/config/locales/ia.yml index 1e9f29d3a..d536777d6 100644 --- a/config/locales/ia.yml +++ b/config/locales/ia.yml @@ -248,6 +248,12 @@ ia: entry: comment: Commento full: Nota complete + account: + deletions: + show: + title: Deler mi conto + warning: Attention! Le deletion de un conto es definitive e irreversibile. + delete_account: Deler conto accounts: edit: title: Modificar conto diff --git a/config/locales/is.yml b/config/locales/is.yml index 220c56794..043bc8e48 100644 --- a/config/locales/is.yml +++ b/config/locales/is.yml @@ -1,6 +1,7 @@ # Messages for Icelandic (íslenska) # Exported from translatewiki.net # Export driver: phpyaml +# Author: LoveIceLang # Author: Macofe # Author: McDutchie # Author: Nemo bis @@ -34,6 +35,9 @@ is: client_application: create: Nýskrá update: Uppfæra + doorkeeper_application: + create: Nýskrá + update: Uppfæra redaction: create: Búa til leiðréttingu update: Vista leiðréttingu @@ -106,6 +110,11 @@ is: latitude: Breiddargráða longitude: Lengdargráða language: Tungumál + doorkeeper/application: + name: Nafn + redirect_uri: Tilvísa tengslar + confidential: Leynilegur umsókn? + scopes: Réttindi friend: user: Notandi friend: Vinur @@ -133,6 +142,7 @@ is: category: Veldu ástæðu fyrir að þú gerir skýrslu details: Tilgreindu öll nauðsynleg atriði um vandamálið (nauðsynlegt). user: + auth_provider: Auðkenningaraðili email: Netfang email_confirmation: Staðfesting póstfangs new_email: Nýtt póstfang @@ -146,11 +156,24 @@ is: pass_crypt: Lykilorð pass_crypt_confirmation: Staðfestu lykilorð help: + doorkeeper/application: + confidential: Forritið verður ekki notuð þar sem leyni viðskiptavinsins er + hægt að halda trúnaði (innfæddur farsímaforrit og smásíðuforrit eru ekki + trúnaðarmál) + redirect_uri: Notaðu einn röð á URI trace: tagstring: aðskilið með kommum user_block: + reason: Ástæðan til af hverju Notandinn verði falinn. Vinsamlegast vertu eins + rólegur og eins sanngjarn og mögulegt er, gefa eins miklar upplýsingar og + þú getur um ástandið, muna að skilaboðin verða sýnileg opinberlega. Hafðu + í huga að ekki allir notendur skilja orðalag samfélagsins, svo vinsamlegast + reyndu að nota skilmála leikmanna. needs_view: Notandinn þarf að innskrá sig áður en bannið fellur úr gildi. user: + email_confirmation: Netfangið þitt er ekki birt opinberlega, sjá kaflann um meðferð persónuupplýsinga new_email: (aldrei sýnt opinberlega) datetime: distance_in_words_ago: @@ -235,6 +258,32 @@ is: entry: comment: Athugasemd full: Allur minnispunkturinn + account: + deletions: + show: + title: Eyði Aðgangi + warning: Viðvörun! Eyðing aðgangs er óbreytanlegt, og ekki hægt að afturkalla. + delete_account: Eyði Aðgangi + delete_introduction: 'Þú getur eytt OpenStreetMap aðgangin þínum með því að + nota takkann hér að neðan. Vinsamlegast athugaðu eftirfarandi upplýsingar:' + delete_profile: Notenduupplýsingarnar þínar, þar á meðal notandaútlit, lýsing + og heimastaðsetning verða fjarlægðar. + delete_display_name: Sýningarnafnið þitt verður fjarlægt, og get verið notuð + frá öðrum aðgöngum. + retain_caveats: 'Hins vegar verða sumar upplýsingar um þig geymdar á OpenStreetMap, + jafnvel eftir að aðgangið þitt hefur verið eytt:' + retain_edits: Breytingar þínar á kortagagnagrunninum, ef einhverjar eru, verða + geymdar. + retain_traces: Hlöðuð ummerki þín, ef einhverjar eru, verða geymdar. + retain_diary_entries: Dagbókarfærslur þínar og dagbókarathugasemdir, ef einhverjar + eru, verða geymdar en falin. + retain_notes: Kortaskýrslur þínar og athugasemdir, ef einhverjar eru, verða + geymdar en falin. + retain_changeset_discussions: Umræður þínar um breytingar, ef einhverjar eru, + verða geymdar. + retain_email: Netfangið þitt verður geymt. + confirm_delete: Ertu viss? + cancel: Hætta við accounts: edit: title: Stillingar @@ -276,11 +325,14 @@ is: link text: Hvað er þetta? save changes button: Vista breytingar make edits public button: Gera allar breytingarnar mínar opinberar + delete_account: Eyði Aðgangi update: success_confirm_needed: Stillingarnar þínar voru uppfærðar. Póstur var sendur á netfangið þitt sem þú þarft að bregðast við til að netfangið þitt verði staðfest. success: Stillingarnar þínar voru uppfærðar. + destroy: + success: Aðgangi eytt... browse: created: Búið til closed: Lokað @@ -368,6 +420,7 @@ is: changeset: breytingasett note: minnispunktur timeout: + title: Hlé Villa sorry: Ekki var hægt að ná í gögn fyrir %{type} með kennitöluna %{id}, það tók of langan tíma að ná í gögnin. type: @@ -477,6 +530,10 @@ is: nearby mapper: Nálægur notandi friend: Vinur show: + title: Stjórnborðið Mitt + no_home_location_html: '%{edit_profile_link} og stilltu heimastaðsetninguna + þína til að sjá nálæga notendur.' + edit_your_profile: Breyttu notandaaðgang þínum my friends: Vinir mínir no friends: Þú átt enga vini nearby users: Aðrir nálægir notendur @@ -555,11 +612,20 @@ is: title: OpenStreetMap bloggfærslur description: Nýjustu bloggfærslur frá notendum OpenStreetMap comments: + title: Dagbók Athugasemdir bætt við af %{user} + heading: Athugasemdir dagbókar %{user} + subheading_html: Dagbóka Athugasemdir bætt við af %{user} + no_comments: Engar athugasemdir við dagbók post: Senda when: Þegar comment: Athugasemd newer_comments: Nýrri athugasemdir older_comments: Eldri athugasemdir + doorkeeper: + flash: + applications: + create: + notice: Umsókn skráð. friendships: make_friend: heading: Bæta %{user} við sem vini? @@ -567,6 +633,8 @@ is: success: '%{name} er núna vinur þinn!' failed: Gat ekki bætt %{name} á vinalistann þinn. already_a_friend: '%{name} er þegar vinur þinn.' + limit_exceeded: Þú hefur vingast við marga notendur nýlega. Vinsamlegast bíddu + aðeins áður en þú reynir að vingast fleiri. remove_friend: heading: Hætta að vera vinur %{user}? button: fjarlægja úr vinahópi @@ -812,6 +880,7 @@ is: window_construction: Gluggasmíði winery: Víngerð "yes": Handverkshús + crossing: Götugangur emergency: access_point: Aðgangspunktur ambulance_station: Sjúkrabílastöð @@ -871,6 +940,7 @@ is: trailhead: Upphaf slóða trunk: Stofnbraut (Hringvegurinn) trunk_link: Stofnbraut (Hringvegurinn) + turning_circle: Beygjuhringur turning_loop: Snúningsslaufa unclassified: Óflokkaður vegur "yes": Vegur @@ -901,6 +971,7 @@ is: railway: Sögulegt lestarspor roman_road: Rómverskur vegur ruins: Rústir + rune_stone: Rúnasteinn stone: Steinn tomb: Gröf tower: Turn @@ -1079,10 +1150,13 @@ is: sand: Sandur scree: Skriða scrub: Kjarr + shingle: Riðuströnd spring: Lind stone: Steinn strait: Sund tree: Tré + tree_row: Trjáröð + tundra: Freðmýri valley: Dalur volcano: Eldfjall water: Vatn @@ -1118,6 +1192,7 @@ is: "yes": Skrifstofa place: allotments: Úthlutuð svæði + archipelago: Eyjagarður city: Borg city_block: Götureitur country: Land @@ -1159,6 +1234,7 @@ is: platform: Brautarpallur preserved: Varðveitt lestarspor proposed: Tillaga um lestarteinalagningu + rail: Járnbraut spur: Lestarteinastubbur station: Lestarstöð stop: Stöðvunarsvæði lestar @@ -1480,11 +1556,13 @@ is: edit_with: Breyta með %{editor} tag_line: Frjálsa wiki heimskortið intro_header: Velkomin í OpenStreetMap! - intro_text: OpenStreetMap er heimskort búið til af fólki eins og þér. Það er gefið + intro_text: OpenStreetMap er heimskort gert af fólki eins og þér. Það er gefið út með opnu hugbúnaðarleyfi og það kostar ekkert að nota það. intro_2_create_account: Búa til notandaaðgang - hosting_partners_html: Vefhýsing er studd af %{ucl}, %{bytemark} og öðrum %{partners}. + hosting_partners_html: Vefhýsing er studd af %{ucl},%{fastly}, %{bytemark} og + öðrum %{partners}. partners_ucl: UCL + partners_fastly: Fastly partners_bytemark: Bytemark Hosting partners_partners: samstarfsaðilum tou: Notkunarskilmálar @@ -1511,11 +1589,20 @@ is: hi: Hæ %{to_user}, header: '%{from_user} hefur bætt við athugasemd á OpenStreetMap bloggfærsluna með titlinum „%{subject}“:' + header_html: '%{from_user} hefur bætt við athugasemd á OpenStreetMap dagbókarfærslu + með titlinum „%{subject}“:' footer: Þú getur einnig lesið athugasemdina á %{readurl} og skrifað athugasemd á %{commenturl} eða sent skilaboð til höfundarins á %{replyurl} + footer_html: Þú getur einnig lesið athugasemdina á %{readurl} og skrifað athugasemd + á %{commenturl} eða sent skilaboð til höfundarins á %{replyurl} message_notification: + subject: '[OpenStreetMap] %{message_title}' hi: Hæ %{to_user}, header: '%{from_user} hefur send þér skilaboð á OpenStreetMap með titlinum „%{subject}“:' + header_html: '%{from_user} hefur sent eitt skilaboð gegnum OpenStreetMap með + efninu %{subject}:' + footer: Þú getur einnig lesið skilaboðin á %{readurl} og sent skilaboð til höfundarins + á %{replyurl} footer_html: Þú getur einnig lesið skilaboðin á %{readurl} og sent skilaboð til höfundarins á %{replyurl} friendship_notification: @@ -1524,12 +1611,23 @@ is: had_added_you: Notandinn %{user} hefur bætt þér við sem vini á OpenStreetMap. see_their_profile: Þú getur séð notandasíðu notandans á %{userurl} og jafnvel bætt honum við sem vini líka. + see_their_profile_html: Þú getur séð notandasíðu notandans á %{userurl}. befriend_them: Þú getur líka bætt þeim við sem vinum á %{befriendurl}. + befriend_them_html: Þú getur líka bætt þeim við sem vinum á %{befriendurl}. + gpx_description: + description_with_tags_html: 'Hitt sér út sem að þinn GPX-fil %{trace_name} með + lýsingunni %{trace_description} og eftirfarandi merki: %{tags}' + description_with_no_tags_html: Hitt sér út sem að þinn GPX-fil %{trace_name} + með lýsingunni %{trace_description} og engin merki gpx_failure: + hi: Hæ %{to_user}, failed_to_import: 'Lenti í villu þegar átti að flytja hana inn, hérna er villan::' + more_info_html: Meir upplýsingar Um misheppnaðir GPX-innflutningur og hvernig + maður forðast þau finnst á %{url}. import_failures_url: https://wiki.openstreetmap.org/wiki/GPX_Import_Failures subject: '[OpenStreetMap] Villa við að flytja inn GPX skrá' gpx_success: + hi: Hæ %{to_user}, loaded_successfully: one: var hlaðið inn með %{trace_points} af 1 punkti mögulegum. other: var hlaðið inn með %{trace_points} punktum af %{possible_points} mögulegum. @@ -1567,8 +1665,12 @@ is: sem þú hefur áhuga á' your_note: '%{commenter} hefur sett athugasemd við einn af minnispunktunum þínum nálægt %{place}.' + your_note_html: '%{commenter} hefur sett athugasemd við einn af minnispunktunum + þínum nálægt %{place}.' commented_note: '%{commenter} hefur sett athugasemd við minnispunkt á korti sem þú hefur gert athugasemd við. Minnispunkturinn er nálægt %{place}.' + commented_note_html: '%{commenter} hefur sett athugasemd við minnispunkt á + korti sem þú hefur gert athugasemd við. Minnispunkturinn er nálægt %{place}.' closed: subject_own: '[OpenStreetMap] %{commenter} hefur leyst einn af minnispunktunum þínum' @@ -1576,8 +1678,12 @@ is: þú hefur áhuga á' your_note: '%{commenter} hefur leyst einn af minnispunktunum þínum nálægt %{place}.' + your_note_html: '%{commenter} hefur leyst einn af minnispunktunum þínum nálægt + %{place}.' commented_note: '%{commenter} hefur leyst minnispunkt á korti sem þú hefur gert athugasemd við. Minnispunkturinn er nálægt %{place}.' + commented_note_html: '%{commenter} hefur leyst minnispunkt á korti sem þú + hefur gert athugasemd við. Minnispunkturinn er nálægt %{place}.' reopened: subject_own: '[OpenStreetMap] %{commenter} hefur endurvirkjað einn af minnispunktunum þínum' @@ -1585,9 +1691,14 @@ is: sem þú hefur áhuga á' your_note: '%{commenter} hefur endurvirkjað einn af minnispunktunum þínum nálægt %{place}.' + your_note_html: '%{commenter} hefur endurvirkjað einn af minnispunktunum þínum + nálægt %{place}.' commented_note: '%{commenter} hefur endurvirkjað minnispunkt á korti sem þú hefur gert athugasemd við. Minnispunkturinn er nálægt %{place}.' + commented_note_html: '%{commenter} hefur endurvirkjað minnispunkt á korti + sem þú hefur gert athugasemd við. Minnispunkturinn er nálægt %{place}.' details: Nánari upplýsingar um minnispunktinn er að finna á %{url}. + details_html: Nánari upplýsingar um minnispunktinn er að finna á %{url}. changeset_comment_notification: hi: Hæ %{to_user}, greeting: Hæ, @@ -1598,13 +1709,21 @@ is: sem þú hefur áhuga á' your_changeset: '%{commenter} hefur sett athugasemd við eitt af breytingasettunum þínum sem búið var til %{time}' + your_changeset_html: '%{commenter} hefur sett athugasemd við eitt af breytingasettunum + þínum sem búið var til %{time}' commented_changeset: '%{commenter} hefur sett athugasemd %{time} við breytingasett á korti sem þú fylgist með og var búið til af %{changeset_author}' + commented_changeset_html: '%{commenter} hefur sett athugasemd %{time} við + breytingasett á korti sem þú fylgist með og var gerð af %{changeset_author}' partial_changeset_with_comment: með umsögninni '%{changeset_comment}' + partial_changeset_with_comment_html: með umsögninni '%{changeset_comment}' partial_changeset_without_comment: án athugasemdar details: Nánari upplýsingar um breytingasettið er að finna á %{url}. + details_html: Nánari upplýsingar um breytingasettið er að finna á %{url}. unsubscribe: Til að hætta áskrift að uppfærslum á þessu breytingasetti, farðu þá á %{url} og smelltu á "Segja upp áskrift". + unsubscribe_html: Til að hætta áskrift að uppfærslum á þessu breytingasetti, + farðu þá á %{url} og smelltu á "Segja upp áskrift". confirmations: confirm: heading: Athuga með tölvupóstinn þinn! @@ -1628,10 +1747,17 @@ is: success: Breyting á netfanginu þínu hefur verið staðfest. failure: Netfang hefur þegar verið staðfest með þessum lykli. unknown_token: Þessi staðfestingarkóði er útrunninn eða er ekki til staðar. + resend_success_flash: + confirmation_sent: Við höfum sent nýja staðfestingarmiða til %{email} og um + leið og þú staðfestir aðganginn þinn muntu geta fengið kortlagningu. + whitelist: Ef þú notar ruslpóstskerfi sem sendir staðfestingarbeiðnir, vinsamlegast + vertu viss um að þú skráir %{sender} á hvítlista þar sem við getum ekki svarað + neinum staðfestingarbeiðnum. messages: inbox: title: Innhólf my_inbox: Innhólfið mitt + my_outbox: Úthólfið mitt messages: Þú átt %{new_messages} og %{old_messages} new_messages: one: '%{count} ný skilaboð' @@ -1666,6 +1792,8 @@ is: body: Því miður er ekkert skilaboð með þetta auðkenni. outbox: title: Úthólf + my_inbox: Innhólfið mitt + my_outbox: Úthólfið mitt messages: one: Þú hefur sent %{count} skilaboð other: Þú hefur sent %{count} skilaboð @@ -1715,8 +1843,24 @@ is: reset: Endurstilla lykilorð flash changed: Lykilorðinu þínu hefur verið breytt flash token bad: Þessi leynistrengur fannst ekki, kannski er slóðin röng? + preferences: + show: + title: Kjörstillingar + preferred_editor: 'Uppáhaldsritill:' + preferred_languages: Ákjósanleg tungumál + edit_preferences: Kjörstillingar + edit: + save: Uppfæra kjörstillingar + cancel: Hætta við + update: + failure: Gat ekki uppfært kjörstillingar. + update_success_flash: + message: Kjörstillingar uppfærðir profiles: edit: + title: Breyta Notandasíðu + save: Uppfæra Notandasíðu + cancel: Hætta við image: Mynd gravatar: gravatar: Nota Gravatar-auðkennismynd @@ -1732,6 +1876,9 @@ is: home location: Upphafsstaðsetning no home location: Þú hefur ekki stillt staðsetningu þína. update home location on click: Uppfæra staðsetninguna þegar ég smelli á kortið + update: + success: Notandasíða uppfært. + failure: Gat ekki uppfært kjörstillingar. sessions: new: title: Innskrá @@ -1754,8 +1901,8 @@ is: account not active: Þessi reikningur er ekki virkur.
Vinsamlegast smelltu á tengilinn í staðfestingarpóstinum sem þú fékkst til að virkja reikninginn, eða óskaðu eftir nýjum staðfestingarpósti. - account is suspended: Því miður, notandaaðgangurinn þinn hefur verið frystur - vegna grunsamlegrar virkni.
Hafðu samband við vefstjóra + account is suspended: Því miður, notandaaðgangurinn þinn hefur verið lokuð vegna + grunsamlegrar virkni.
Hafðu samband við vefstjóra ef þú vilt ræða þetta mál. auth failure: Þetta notandanafn eða lykilorð er rangt. openid_logo_alt: Skrá inn með OpenID-aðgangi @@ -1790,6 +1937,7 @@ is: logout_button: Útskráning shared: markdown_help: + title_html: Þáttað með kramdown headings: Fyrirsagnir heading: Fyrirsögn subheading: Undirfyrirsögn @@ -2123,6 +2271,10 @@ is: title: Wiki-vefur OpenStreetMap description: Vafraðu um wiki/kvikuna til að sjá greinargóðar leiðbeiningar varðandi OpenStreetMap. + potlatch: + removed: Sjálfgefinn OpenStreetMap ritstjóri er stilltur sem Potlatch. Þar sem + Adobe Flash Player er ekki til lengur, er Potlatch ekki lengur hægt að nota + í vafra. sidebar: search_results: Leitarniðurstöður close: Loka @@ -2336,13 +2488,14 @@ is: in: í index: public_traces: Allir ferlar - my_traces: GPS-ferlarnir mínir + my_traces: Ferlarnir mínir public_traces_from: Ferlar eftir %{user} description: Skoða nýlega innsenda GPS-ferla tagged_with: ' með merkið %{tags}' empty_html: Ekkert hér ennþá. Sendu inn nýjan feril eða lærðu meira um GPS-ferlun á wiki-síðunni. upload_trace: Senda inn feril + all_traces: Allar ferlar destroy: scheduled_for_deletion: Þessum feril verður eitt make_public: @@ -2448,6 +2601,21 @@ is: flash: Uppfærði upplýsingar biðlaraforritsins destroy: flash: Eyðilagði skráningu biðlaraforritsins + oauth2_applications: + index: + name: Nafn + permissions: Réttindi + application: + edit: Breyta + delete: Eyða + confirm_delete: Eyða þessu forriti? + new: + title: Skrá nýtt forrit + edit: + title: Breyta forritinu þínu + show: + edit: Breyta + delete: Eyða users: new: title: Nýskrá @@ -2763,8 +2931,8 @@ is: tooltip_disabled: Kortaskýringar ekki tiltækar fyrir þetta lag map: zoom: - in: Renna að - out: Renna frá + in: Þysja Inn + out: Þysja Út locate: title: Birta staðsetningu mína metersPopup: @@ -2798,18 +2966,18 @@ is: France site: edit_tooltip: Breyta kortinu - edit_disabled_tooltip: Renndu að til að breyta kortinu + edit_disabled_tooltip: Þysja inn til að breyta kortinu createnote_tooltip: Bæta við minnispunkti á kortið - createnote_disabled_tooltip: Renndu að til að bæta minnispunkti á kortið - map_notes_zoom_in_tooltip: Renndu að til að sjá minnispunkta á kortinu - map_data_zoom_in_tooltip: Renndu að til að skoða gögn kortsins + createnote_disabled_tooltip: Þysja inn til að bæta minnispunkti á kortið + map_notes_zoom_in_tooltip: Þysja inn til að sjá minnispunkta á kortinu + map_data_zoom_in_tooltip: Þysja inn til að skoða gögn kortsins queryfeature_tooltip: Rannsaka fitjur - queryfeature_disabled_tooltip: Renndu inn til að rannsaka fitjur + queryfeature_disabled_tooltip: Þysja inn til að rannsaka fitjur changesets: show: comment: Athugasemd subscribe: Gerast áskrifandi - unsubscribe: Segja upp áskrift + unsubscribe: Hætta í áskrift hide_comment: fela unhide_comment: hætta að fela notes: diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 5eb7574d0..75223723a 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -248,6 +248,13 @@ ko: entry: comment: 의견 full: 전체 참고 + account: + deletions: + show: + title: 내 계정 삭제 + delete_account: 계정 삭제 + confirm_delete: 확실합니까? + cancel: 취소 accounts: edit: title: 계정 편집 @@ -281,9 +288,12 @@ ko: link text: 무엇인가요? save changes button: 변경사항 저장 make edits public button: 내 편집을 공개하기 + delete_account: 계정 삭제... update: success_confirm_needed: 사용자 정보를 성공적으로 업데이트했습니다. 새 이메일 주소를 확인하기 위해 이메일을 확인하세요. success: 사용자 정보를 성공적으로 업데이트했습니다. + destroy: + success: 계정이 삭제되었습니다. browse: created: 만들어짐 closed: 닫힘 diff --git a/config/locales/pl.yml b/config/locales/pl.yml index dabbe3ddd..cdba0f8fa 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -1828,8 +1828,8 @@ pl: messages: inbox: title: Wiadomości odebrane - my_inbox: skrzynka odbiorcza - my_outbox: skrzynka nadawcza + my_inbox: wiadomości odebrane + my_outbox: wiadomości wysłane messages: Masz %{new_messages} i %{old_messages} new_messages: few: '%{count} nowe wiadomości' @@ -1867,9 +1867,9 @@ pl: heading: Nie ma takiej wiadomości body: Niestety nie ma wiadomości o tym identyfikatorze. outbox: - title: Wysłane - my_inbox: Wiadomości odebrane - my_outbox: Wiadomości wysłane + title: Wiadomości wysłane + my_inbox: wiadomości odebrane + my_outbox: wiadomości wysłane messages: one: '%{count} wysłana wiadomość' few: '%{count} wysłane wiadomości' diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 2d8458aa6..ffcb2c183 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -40,6 +40,7 @@ # Author: G0rn # Author: Happy13241 # Author: Helpau +# Author: Ice bulldog # Author: Ignatus # Author: Iluvatar # Author: Infovarius @@ -421,7 +422,7 @@ ru: link text: что это? save changes button: Сохранить изменения make edits public button: Сделать все мои правки доступными - delete_account: Удалить учётную запись... + delete_account: Удалить учётную запись… update: success_confirm_needed: Информация о пользователе успешно обновлена. Проверьте свою электронную почту для подтверждения вашего нового адреса. diff --git a/config/locales/uk.yml b/config/locales/uk.yml index 09b935e95..3624daab7 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -21,6 +21,7 @@ # Author: Esk78 # Author: Green Zero # Author: Gzhegozh +# Author: Ice bulldog # Author: KEL # Author: Kareyac # Author: Lxlalexlxl @@ -315,6 +316,32 @@ uk: entry: comment: Коментар full: Повний текст + account: + deletions: + show: + title: Видалити мій обліковий запис + warning: Увага! Процес видалення облікового запису є остаточним і не може + бути скасований. + delete_account: Видалити обліковий запис + delete_introduction: 'Ви можете видалити свій обліковий запис OpenStreetMap + за допомогою кнопки нижче. Будь ласка, зверніть увагу на такі деталі:' + delete_profile: Інформацію вашого профілю, включаючи ваш аватар, опис і домашнє + місцезнаходження, буде вилучено. + delete_display_name: Ваше відображуване ім’я буде вилучено, і його можна буде + повторно використовувати іншими обліковими записами. + retain_caveats: 'Однак деяка інформація про вас буде збережена на OpenStreetMap, + навіть після того, як ваш обліковий запис буде видалено:' + retain_edits: Ваші зміни до бази даних мап, якщо такі є, будуть збережені. + retain_traces: Ваші завантажені сліди, якщо такі є, будуть збережені. + retain_diary_entries: Ваші щоденникові записи та коментарі до щоденника, якщо + такі є, будуть збережені, але приховані від перегляду. + retain_notes: Ваші примітки до мапи та коментарі до приміток, якщо такі є, + будуть збережені, але приховані від перегляду. + retain_changeset_discussions: Ваші обговорення набору змін, якщо такі є, будуть + збережені. + retain_email: Ваша електронна адреса буде збережена. + confirm_delete: Ви впевнені? + cancel: Скасувати accounts: edit: title: Редагувати обліковий запис @@ -353,10 +380,13 @@ uk: link text: що це? save changes button: Зберегти зміни make edits public button: Зробити всі мої редагування загальнодоступними + delete_account: Видалити обліковий запис… update: success_confirm_needed: Інформацію про учасника успішно оновлено. Перевірте свою електронну пошту, щоб підтвердити вашу нову адресу е-пошти. success: Інформацію про учасника успішно оновлено. + destroy: + success: Обліковий запис видалено. browse: created: Створено closed: Закрито diff --git a/db/functions/quadtile.c b/db/functions/quadtile.c index 748e0b9aa..0f787b739 100644 --- a/db/functions/quadtile.c +++ b/db/functions/quadtile.c @@ -23,3 +23,7 @@ PG_FUNCTION_INFO_V1(tile_for_point); * * (without all the *s) */ + +#ifdef PG_MODULE_MAGIC +PG_MODULE_MAGIC; +#endif diff --git a/db/migrate/20220223140543_remove_id_defaults.rb b/db/migrate/20220223140543_remove_id_defaults.rb new file mode 100644 index 000000000..5ce01f9a4 --- /dev/null +++ b/db/migrate/20220223140543_remove_id_defaults.rb @@ -0,0 +1,13 @@ +class RemoveIdDefaults < ActiveRecord::Migration[7.0] + def change + # Remove defaults from foreign key references + change_column_default :gpx_file_tags, :gpx_id, :from => 0, :to => nil + change_column_default :relation_members, :relation_id, :from => 0, :to => nil + change_column_default :relation_tags, :relation_id, :from => 0, :to => nil + change_column_default :way_tags, :way_id, :from => 0, :to => nil + + # Remove defaults from primary keys + change_column_default :relations, :relation_id, :from => 0, :to => nil + change_column_default :ways, :way_id, :from => 0, :to => nil + end +end diff --git a/db/structure.sql b/db/structure.sql index 63aa17353..dd0165ee0 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -753,7 +753,7 @@ CREATE TABLE public.gps_points ( -- CREATE TABLE public.gpx_file_tags ( - gpx_id bigint DEFAULT 0 NOT NULL, + gpx_id bigint NOT NULL, tag character varying NOT NULL, id bigint NOT NULL ); @@ -1274,7 +1274,7 @@ ALTER SEQUENCE public.redactions_id_seq OWNED BY public.redactions.id; -- CREATE TABLE public.relation_members ( - relation_id bigint DEFAULT 0 NOT NULL, + relation_id bigint NOT NULL, member_type public.nwr_enum NOT NULL, member_id bigint NOT NULL, member_role character varying NOT NULL, @@ -1288,7 +1288,7 @@ CREATE TABLE public.relation_members ( -- CREATE TABLE public.relation_tags ( - relation_id bigint DEFAULT 0 NOT NULL, + relation_id bigint NOT NULL, k character varying DEFAULT ''::character varying NOT NULL, v character varying DEFAULT ''::character varying NOT NULL, version bigint NOT NULL @@ -1300,7 +1300,7 @@ CREATE TABLE public.relation_tags ( -- CREATE TABLE public.relations ( - relation_id bigint DEFAULT 0 NOT NULL, + relation_id bigint NOT NULL, changeset_id bigint NOT NULL, "timestamp" timestamp without time zone NOT NULL, version bigint NOT NULL, @@ -1541,7 +1541,7 @@ CREATE TABLE public.way_nodes ( -- CREATE TABLE public.way_tags ( - way_id bigint DEFAULT 0 NOT NULL, + way_id bigint NOT NULL, k character varying NOT NULL, v character varying NOT NULL, version bigint NOT NULL @@ -1553,7 +1553,7 @@ CREATE TABLE public.way_tags ( -- CREATE TABLE public.ways ( - way_id bigint DEFAULT 0 NOT NULL, + way_id bigint NOT NULL, changeset_id bigint NOT NULL, "timestamp" timestamp without time zone NOT NULL, version bigint NOT NULL, @@ -3427,6 +3427,7 @@ INSERT INTO "schema_migrations" (version) VALUES ('20210511104518'), ('20211216185316'), ('20220201183346'), +('20220223140543'), ('21'), ('22'), ('23'), diff --git a/lib/gpx.rb b/lib/gpx.rb index 3dc448e46..274ece7d9 100644 --- a/lib/gpx.rb +++ b/lib/gpx.rb @@ -22,7 +22,7 @@ module GPX elsif reader.name == "ele" && point point.altitude = reader.read_string.to_f elsif reader.name == "time" && point - point.timestamp = Time.parse(reader.read_string) + point.timestamp = Time.parse(reader.read_string).utc end when XML::Reader::TYPE_END_ELEMENT if reader.name == "trkpt" && point && point.valid? diff --git a/script/statistics b/script/statistics index ffc672b0b..05ed637a8 100755 --- a/script/statistics +++ b/script/statistics @@ -2,7 +2,7 @@ require File.join(File.dirname(__FILE__), "..", "config", "environment") -start_time = Time.now +start_time = Time.now.utc puts "" puts "" @@ -87,7 +87,7 @@ rescue StandardError => e puts "

Exception: #{e}
#{e.backtrace.join('
')}

" end -puts "

Report took #{Time.new - start_time} seconds to run

" +puts "

Report took #{Time.now.utc - start_time} seconds to run

" puts "" puts "" diff --git a/script/update-spam-blocks b/script/update-spam-blocks index 40f2cb03c..b5656f6ac 100755 --- a/script/update-spam-blocks +++ b/script/update-spam-blocks @@ -6,7 +6,7 @@ require "generator" addresses = User.count( :conditions => { :status => %w[suspended deleted], - :creation_time => Time.now - 28.days..Time.now + :creation_time => Time.now.utc - 28.days..Time.now.utc }, :group => :creation_ip ) diff --git a/test/controllers/api/changeset_comments_controller_test.rb b/test/controllers/api/changeset_comments_controller_test.rb index 64871baa3..ce7c08a65 100644 --- a/test/controllers/api/changeset_comments_controller_test.rb +++ b/test/controllers/api/changeset_comments_controller_test.rb @@ -214,7 +214,7 @@ module Api assert_response :forbidden # Try again, after agreement with the terms - user.terms_agreed = Time.now + user.terms_agreed = Time.now.utc user.save! assert_difference "ChangesetComment.count", 1 do @@ -237,7 +237,7 @@ module Api assert_response :forbidden # Try again, after agreement with the terms - user.terms_agreed = Time.now + user.terms_agreed = Time.now.utc user.save! assert_difference "ChangesetComment.count", 1 do diff --git a/test/controllers/api/changesets_controller_test.rb b/test/controllers/api/changesets_controller_test.rb index f3de0682b..e61831fbd 100644 --- a/test/controllers/api/changesets_controller_test.rb +++ b/test/controllers/api/changesets_controller_test.rb @@ -206,7 +206,7 @@ module Api # test that it really is closed now cs = Changeset.find(changeset.id) assert_not(cs.is_open?, - "changeset should be closed now (#{cs.closed_at} > #{Time.now.getutc}.") + "changeset should be closed now (#{cs.closed_at} > #{Time.now.utc}.") end ## diff --git a/test/controllers/api/notes_controller_test.rb b/test/controllers/api/notes_controller_test.rb index fe9127029..7dbcdc816 100644 --- a/test/controllers/api/notes_controller_test.rb +++ b/test/controllers/api/notes_controller_test.rb @@ -345,7 +345,7 @@ module Api end assert_response :gone - closed_note_with_comment = create(:note_with_comments, :status => "closed", :closed_at => Time.now) + closed_note_with_comment = create(:note_with_comments, :status => "closed", :closed_at => Time.now.utc) assert_no_difference "NoteComment.count" do post comment_note_path(:id => closed_note_with_comment, :text => "This is an additional comment"), :headers => auth_header @@ -406,14 +406,14 @@ module Api post close_note_path(:id => hidden_note_with_comment), :headers => auth_header assert_response :gone - closed_note_with_comment = create(:note_with_comments, :status => "closed", :closed_at => Time.now) + closed_note_with_comment = create(:note_with_comments, :status => "closed", :closed_at => Time.now.utc) post close_note_path(:id => closed_note_with_comment), :headers => auth_header assert_response :conflict end def test_reopen_success - closed_note_with_comment = create(:note_with_comments, :status => "closed", :closed_at => Time.now) + closed_note_with_comment = create(:note_with_comments, :status => "closed", :closed_at => Time.now.utc) user = create(:user) post reopen_note_path(:id => closed_note_with_comment, :text => "This is a reopen comment", :format => "json") @@ -748,8 +748,8 @@ module Api end def test_index_closed - create(:note_with_comments, :status => "closed", :closed_at => Time.now - 5.days) - create(:note_with_comments, :status => "closed", :closed_at => Time.now - 100.days) + create(:note_with_comments, :status => "closed", :closed_at => Time.now.utc - 5.days) + create(:note_with_comments, :status => "closed", :closed_at => Time.now.utc - 100.days) create(:note_with_comments, :status => "hidden") create(:note_with_comments) diff --git a/test/controllers/browse_controller_test.rb b/test/controllers/browse_controller_test.rb index 9a77e8034..7ad16dcd9 100644 --- a/test/controllers/browse_controller_test.rb +++ b/test/controllers/browse_controller_test.rb @@ -153,7 +153,7 @@ class BrowseControllerTest < ActionDispatch::IntegrationTest def test_read_closed_note user = create(:user) - closed_note = create(:note_with_comments, :status => "closed", :closed_at => Time.now, :comments_count => 2) do |note| + closed_note = create(:note_with_comments, :status => "closed", :closed_at => Time.now.utc, :comments_count => 2) do |note| create(:note_comment, :event => "closed", :note => note, :author => user) end diff --git a/test/controllers/messages_controller_test.rb b/test/controllers/messages_controller_test.rb index c3d764578..1193d3b25 100644 --- a/test/controllers/messages_controller_test.rb +++ b/test/controllers/messages_controller_test.rb @@ -191,7 +191,7 @@ class MessagesControllerTest < ActionDispatch::IntegrationTest m = Message.last assert_equal user.id, m.from_user_id assert_equal recipient_user.id, m.to_user_id - assert_in_delta Time.now, m.sent_on, 2 + assert_in_delta Time.now.utc, m.sent_on, 2 assert_equal "Test Message", m.title assert_equal "Test message body", m.body assert_equal "markdown", m.body_format diff --git a/test/controllers/user_blocks_controller_test.rb b/test/controllers/user_blocks_controller_test.rb index 3e2be801d..16a77624c 100644 --- a/test/controllers/user_blocks_controller_test.rb +++ b/test/controllers/user_blocks_controller_test.rb @@ -240,9 +240,9 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest assert_redirected_to user_block_path(:id => id) assert_equal "Created a block on user #{target_user.display_name}.", flash[:notice] b = UserBlock.find(id) - assert_in_delta Time.now, b.created_at, 1 - assert_in_delta Time.now, b.updated_at, 1 - assert_in_delta Time.now + 12.hours, b.ends_at, 1 + assert_in_delta Time.now.utc, b.created_at, 1 + assert_in_delta Time.now.utc, b.updated_at, 1 + assert_in_delta Time.now.utc + 12.hours, b.ends_at, 1 assert_not b.needs_view assert_equal "Vandalism", b.reason assert_equal "markdown", b.reason_format @@ -311,7 +311,7 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest assert_redirected_to user_block_path(active_block) assert_equal "Block updated.", flash[:notice] b = UserBlock.find(active_block.id) - assert_in_delta Time.now, b.updated_at, 1 + assert_in_delta Time.now.utc, b.updated_at, 1 assert b.needs_view assert_equal "Vandalism", b.reason @@ -356,13 +356,13 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest assert_response :success assert_template "revoke" b = UserBlock.find(active_block.id) - assert b.ends_at - Time.now > 100 + assert b.ends_at - Time.now.utc > 100 # Check that revoking a block works using POST post revoke_user_block_path(:id => active_block, :confirm => true) assert_redirected_to user_block_path(active_block) b = UserBlock.find(active_block.id) - assert_in_delta Time.now, b.ends_at, 1 + assert_in_delta Time.now.utc, b.ends_at, 1 # We should get an error if the block doesn't exist get revoke_user_block_path(:id => 99999) diff --git a/test/factories/messages.rb b/test/factories/messages.rb index 57a434fa1..cd148c789 100644 --- a/test/factories/messages.rb +++ b/test/factories/messages.rb @@ -2,7 +2,7 @@ FactoryBot.define do factory :message do sequence(:title) { |n| "Message #{n}" } sequence(:body) { |n| "Body text for message #{n}" } - sent_on { Time.now } + sent_on { Time.now.utc } association :sender, :factory => :user association :recipient, :factory => :user diff --git a/test/factories/node.rb b/test/factories/node.rb index ae32926cd..392d67a84 100644 --- a/test/factories/node.rb +++ b/test/factories/node.rb @@ -6,7 +6,7 @@ FactoryBot.define do changeset visible { true } - timestamp { Time.now } + timestamp { Time.now.utc } version { 1 } trait :deleted do diff --git a/test/factories/old_node.rb b/test/factories/old_node.rb index e129b62f7..a2ca0a2ee 100644 --- a/test/factories/old_node.rb +++ b/test/factories/old_node.rb @@ -7,7 +7,7 @@ FactoryBot.define do association :current_node, :factory => :node visible { true } - timestamp { Time.now } + timestamp { Time.now.utc } version { 1 } end end diff --git a/test/factories/old_relation.rb b/test/factories/old_relation.rb index 8fdb23f58..1bc1b36cf 100644 --- a/test/factories/old_relation.rb +++ b/test/factories/old_relation.rb @@ -1,6 +1,6 @@ FactoryBot.define do factory :old_relation do - timestamp { Time.now } + timestamp { Time.now.utc } visible { true } version { 1 } diff --git a/test/factories/old_way.rb b/test/factories/old_way.rb index 4fc0721d7..265a477d3 100644 --- a/test/factories/old_way.rb +++ b/test/factories/old_way.rb @@ -1,6 +1,6 @@ FactoryBot.define do factory :old_way do - timestamp { Time.now } + timestamp { Time.now.utc } visible { true } version { 1 } diff --git a/test/factories/relation.rb b/test/factories/relation.rb index 8bb00e287..6d43df0a3 100644 --- a/test/factories/relation.rb +++ b/test/factories/relation.rb @@ -1,6 +1,6 @@ FactoryBot.define do factory :relation do - timestamp { Time.now } + timestamp { Time.now.utc } visible { true } version { 1 } diff --git a/test/factories/tracepoints.rb b/test/factories/tracepoints.rb index 4ba152f6e..86d2aea57 100644 --- a/test/factories/tracepoints.rb +++ b/test/factories/tracepoints.rb @@ -4,7 +4,7 @@ FactoryBot.define do latitude { 1 * GeoRecord::SCALE } longitude { 1 * GeoRecord::SCALE } # tile { QuadTile.tile_for_point(1,1) } - timestamp { Time.now } + timestamp { Time.now.utc } trace end diff --git a/test/factories/traces.rb b/test/factories/traces.rb index 687339e7f..88c57745b 100644 --- a/test/factories/traces.rb +++ b/test/factories/traces.rb @@ -5,7 +5,7 @@ FactoryBot.define do user - timestamp { Time.now } + timestamp { Time.now.utc } inserted { true } size { 10 } diff --git a/test/factories/user.rb b/test/factories/user.rb index 07f1ef679..cdc606cf1 100644 --- a/test/factories/user.rb +++ b/test/factories/user.rb @@ -11,7 +11,7 @@ FactoryBot.define do end terms_seen { true } - terms_agreed { Time.now.getutc } + terms_agreed { Time.now.utc } data_public { true } trait :with_home_location do diff --git a/test/factories/user_blocks.rb b/test/factories/user_blocks.rb index 53864bb0e..fefbba45a 100644 --- a/test/factories/user_blocks.rb +++ b/test/factories/user_blocks.rb @@ -1,7 +1,7 @@ FactoryBot.define do factory :user_block do sequence(:reason) { |n| "User Block #{n}" } - ends_at { Time.now + 1.day } + ends_at { Time.now.utc + 1.day } user association :creator, :factory => :moderator_user @@ -11,7 +11,7 @@ FactoryBot.define do end trait :expired do - ends_at { Time.now - 1.day } + ends_at { Time.now.utc - 1.day } end trait :revoked do diff --git a/test/factories/way.rb b/test/factories/way.rb index 1b6b18dc9..f2093e305 100644 --- a/test/factories/way.rb +++ b/test/factories/way.rb @@ -1,6 +1,6 @@ FactoryBot.define do factory :way do - timestamp { Time.now } + timestamp { Time.now.utc } visible { true } version { 1 } diff --git a/test/helpers/application_helper_test.rb b/test/helpers/application_helper_test.rb index 43e27c529..d3e4d4f07 100644 --- a/test/helpers/application_helper_test.rb +++ b/test/helpers/application_helper_test.rb @@ -56,19 +56,19 @@ class ApplicationHelperTest < ActionView::TestCase end def test_friendly_date - date = friendly_date(Time.new(2014, 3, 5, 18, 58, 23)) + date = friendly_date(Time.new(2014, 3, 5, 18, 58, 23).utc) assert_match %r{^.*$}, date - date = friendly_date(Time.now - 1.hour) + date = friendly_date(Time.now.utc - 1.hour) assert_match %r{^about 1 hour$}, date - date = friendly_date(Time.now - 2.days) + date = friendly_date(Time.now.utc - 2.days) assert_match %r{^2 days$}, date - date = friendly_date(Time.now - 3.weeks) + date = friendly_date(Time.now.utc - 3.weeks) assert_match %r{^21 days$}, date - date = friendly_date(Time.now - 4.months) + date = friendly_date(Time.now.utc - 4.months) assert_match %r{^4 months$}, date end diff --git a/test/helpers/user_blocks_helper_test.rb b/test/helpers/user_blocks_helper_test.rb index c4afa6c83..0c2ab42b5 100644 --- a/test/helpers/user_blocks_helper_test.rb +++ b/test/helpers/user_blocks_helper_test.rb @@ -4,13 +4,13 @@ class UserBlocksHelperTest < ActionView::TestCase include ApplicationHelper def test_block_status - block = create(:user_block, :needs_view, :ends_at => Time.now.getutc) + block = create(:user_block, :needs_view, :ends_at => Time.now.utc) assert_equal "Active until the user logs in.", block_status(block) - block = create(:user_block, :needs_view, :ends_at => Time.now.getutc + 1.hour) + block = create(:user_block, :needs_view, :ends_at => Time.now.utc + 1.hour) assert_match %r{^Ends in about 1 hour and after the user has logged in\.$}, block_status(block) - block = create(:user_block, :ends_at => Time.now.getutc + 1.hour) + block = create(:user_block, :ends_at => Time.now.utc + 1.hour) assert_match %r{^Ends in about 1 hour\.$}, block_status(block) end diff --git a/test/integration/user_blocks_test.rb b/test/integration/user_blocks_test.rb index ecadaad53..96dd879ee 100644 --- a/test/integration/user_blocks_test.rb +++ b/test/integration/user_blocks_test.rb @@ -15,7 +15,7 @@ class UserBlocksTest < ActionDispatch::IntegrationTest :user_id => blocked_user.id, :creator_id => create(:moderator_user).id, :reason => "testing", - :ends_at => Time.now.getutc + 5.minutes + :ends_at => Time.now.utc + 5.minutes ) get "/api/#{Settings.api_version}/user/details", :headers => basic_authorization_header(blocked_user.display_name, "test") assert_response :forbidden @@ -29,7 +29,7 @@ class UserBlocksTest < ActionDispatch::IntegrationTest :user_id => blocked_user.id, :creator_id => moderator.id, :reason => "testing", - :ends_at => Time.now.getutc + 5.minutes + :ends_at => Time.now.utc + 5.minutes ) get "/api/#{Settings.api_version}/user/details", :headers => basic_authorization_header(blocked_user.display_name, "test") assert_response :forbidden diff --git a/test/models/message_test.rb b/test/models/message_test.rb index 3a25c1a4b..1a1241091 100644 --- a/test/models/message_test.rb +++ b/test/models/message_test.rb @@ -75,7 +75,7 @@ class MessageTest < ActiveSupport::TestCase from "from@example.com" to "to@example.com" subject "Test message" - date Time.now + date Time.now.utc content_type "text/plain; charset=utf-8" body "This is a test & a message" end @@ -95,7 +95,7 @@ class MessageTest < ActiveSupport::TestCase from "from@example.com" to "to@example.com" subject "Test message" - date Time.now + date Time.now.utc content_type "text/html; charset=utf-8" body "

This is a test & a message

" end @@ -115,7 +115,7 @@ class MessageTest < ActiveSupport::TestCase from "from@example.com" to "to@example.com" subject "Test message" - date Time.now + date Time.now.utc text_part do content_type "text/plain; charset=utf-8" @@ -139,7 +139,7 @@ class MessageTest < ActiveSupport::TestCase from "from@example.com" to "to@example.com" subject "Test message" - date Time.now + date Time.now.utc html_part do content_type "text/html; charset=utf-8" @@ -162,7 +162,7 @@ class MessageTest < ActiveSupport::TestCase from "from@example.com" to "to@example.com" subject "[OpenStreetMap] Test message" - date Time.now + date Time.now.utc content_type "text/plain; charset=utf-8" body "This is a test & a message" end diff --git a/test/models/note_test.rb b/test/models/note_test.rb index 2385125b5..b74cebcc4 100644 --- a/test/models/note_test.rb +++ b/test/models/note_test.rb @@ -28,7 +28,7 @@ class NoteTest < ActiveSupport::TestCase end def test_reopen - note = create(:note, :status => "closed", :closed_at => Time.now) + note = create(:note, :status => "closed", :closed_at => Time.now.utc) assert_equal "closed", note.status assert_not_nil note.closed_at note.reopen @@ -43,7 +43,7 @@ class NoteTest < ActiveSupport::TestCase end def test_closed? - assert create(:note, :status => "closed", :closed_at => Time.now).closed? + assert create(:note, :status => "closed", :closed_at => Time.now.utc).closed? assert_not create(:note, :status => "open", :closed_at => nil).closed? end diff --git a/yarn.lock b/yarn.lock index d76a2c4ac..0e6b00c06 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@eslint/eslintrc@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.1.0.tgz#583d12dbec5d4f22f333f9669f7d0b7c7815b4d3" - integrity sha512-C1DfL7XX4nPqGd6jcP01W9pVM1HYCuUkFk1432D7F0v3JSlUIeOYn9oCoi3eoLZ+iwBSb29BMFxxny0YrrEZqg== +"@eslint/eslintrc@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.2.0.tgz#7ce1547a5c46dfe56e1e45c3c9ed18038c721c6a" + integrity sha512-igm9SjJHNEJRiUnecP/1R5T3wKLEJ7pL6e2P+GUSfCd0dGjPYYZve08uzw8L2J8foVHFz+NGu12JxRcU2gGo6w== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -189,11 +189,11 @@ eslint-visitor-keys@^3.3.0: integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== eslint@^8.0.0: - version "8.9.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.9.0.tgz#a2a8227a99599adc4342fd9b854cb8d8d6412fdb" - integrity sha512-PB09IGwv4F4b0/atrbcMFboF/giawbBLVC7fyDamk5Wtey4Jh2K+rYaBhCAbUyEI4QzB1ly09Uglc9iCtFaG2Q== + version "8.10.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.10.0.tgz#931be395eb60f900c01658b278e05b6dae47199d" + integrity sha512-tcI1D9lfVec+R4LE1mNDnzoJ/f71Kl/9Cv4nG47jOueCMBrCCKYXr4AUVS7go6mWYGFD4+EoN6+eXSrEbRzXVw== dependencies: - "@eslint/eslintrc" "^1.1.0" + "@eslint/eslintrc" "^1.2.0" "@humanwhocodes/config-array" "^0.9.2" ajv "^6.10.0" chalk "^4.0.0"