]> git.openstreetmap.org Git - rails.git/commitdiff
Merge remote-tracking branch 'upstream/pull/3680'
authorTom Hughes <tom@compton.nu>
Tue, 13 Sep 2022 18:19:12 +0000 (19:19 +0100)
committerTom Hughes <tom@compton.nu>
Tue, 13 Sep 2022 18:19:12 +0000 (19:19 +0100)
45 files changed:
Gemfile
Gemfile.lock
app/assets/javascripts/embed.js.erb
app/controllers/geocoder_controller.rb
app/controllers/preferences_controller.rb
app/controllers/profiles_controller.rb
app/controllers/reports_controller.rb
app/mailers/user_mailer.rb
app/views/traces/_trace.html.erb
config/initializers/config.rb
config/initializers/doorkeeper.rb
config/locales/bg.yml
config/locales/br.yml
config/locales/de.yml
config/locales/en-GB.yml
config/locales/es.yml
config/locales/et.yml
config/locales/fa.yml
config/locales/fr.yml
config/locales/fy.yml
config/locales/he.yml
config/locales/hi.yml
config/locales/ia.yml
config/locales/it.yml
config/locales/kk-cyrl.yml
config/locales/ko.yml
config/locales/lb.yml
config/locales/mk.yml
config/locales/nb.yml
config/locales/ne.yml
config/locales/nl.yml
config/locales/pa.yml
config/locales/pt-PT.yml
config/locales/ru.yml
config/locales/sc.yml
config/locales/sk.yml
config/locales/tr.yml
config/locales/vi.yml
config/locales/zh-CN.yml
config/locales/zh-HK.yml [moved from config/locales/zh-hk.yml with 84% similarity]
config/locales/zh-TW.yml
lib/country.rb
lib/nominatim.rb
test/models/trace_test.rb
yarn.lock

diff --git a/Gemfile b/Gemfile
index 1b2b60864e080919086a01f3a4cd0fadd760f067..020cc9166e7ab3d1ea0f6607fb6bb77f0677cf1e 100644 (file)
--- a/Gemfile
+++ b/Gemfile
@@ -1,7 +1,7 @@
 source "https://rubygems.org"
 
 # Require rails
-gem "rails", "7.0.3.1"
+gem "rails", "7.0.4"
 
 # Require json for multi_json
 gem "json"
index 6b5a62a4ee021d33aa9d1abacfcd1e0732615ae7..586c8c7d2337198bc0548a1c6a778c963d8bdd9c 100644 (file)
@@ -3,73 +3,73 @@ GEM
   specs:
     aasm (5.3.0)
       concurrent-ruby (~> 1.0)
-    actioncable (7.0.3.1)
-      actionpack (= 7.0.3.1)
-      activesupport (= 7.0.3.1)
+    actioncable (7.0.4)
+      actionpack (= 7.0.4)
+      activesupport (= 7.0.4)
       nio4r (~> 2.0)
       websocket-driver (>= 0.6.1)
-    actionmailbox (7.0.3.1)
-      actionpack (= 7.0.3.1)
-      activejob (= 7.0.3.1)
-      activerecord (= 7.0.3.1)
-      activestorage (= 7.0.3.1)
-      activesupport (= 7.0.3.1)
+    actionmailbox (7.0.4)
+      actionpack (= 7.0.4)
+      activejob (= 7.0.4)
+      activerecord (= 7.0.4)
+      activestorage (= 7.0.4)
+      activesupport (= 7.0.4)
       mail (>= 2.7.1)
       net-imap
       net-pop
       net-smtp
-    actionmailer (7.0.3.1)
-      actionpack (= 7.0.3.1)
-      actionview (= 7.0.3.1)
-      activejob (= 7.0.3.1)
-      activesupport (= 7.0.3.1)
+    actionmailer (7.0.4)
+      actionpack (= 7.0.4)
+      actionview (= 7.0.4)
+      activejob (= 7.0.4)
+      activesupport (= 7.0.4)
       mail (~> 2.5, >= 2.5.4)
       net-imap
       net-pop
       net-smtp
       rails-dom-testing (~> 2.0)
-    actionpack (7.0.3.1)
-      actionview (= 7.0.3.1)
-      activesupport (= 7.0.3.1)
+    actionpack (7.0.4)
+      actionview (= 7.0.4)
+      activesupport (= 7.0.4)
       rack (~> 2.0, >= 2.2.0)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.2.0)
     actionpack-page_caching (1.2.4)
       actionpack (>= 4.0.0)
-    actiontext (7.0.3.1)
-      actionpack (= 7.0.3.1)
-      activerecord (= 7.0.3.1)
-      activestorage (= 7.0.3.1)
-      activesupport (= 7.0.3.1)
+    actiontext (7.0.4)
+      actionpack (= 7.0.4)
+      activerecord (= 7.0.4)
+      activestorage (= 7.0.4)
+      activesupport (= 7.0.4)
       globalid (>= 0.6.0)
       nokogiri (>= 1.8.5)
-    actionview (7.0.3.1)
-      activesupport (= 7.0.3.1)
+    actionview (7.0.4)
+      activesupport (= 7.0.4)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.1, >= 1.2.0)
     active_record_union (1.3.0)
       activerecord (>= 4.0)
-    activejob (7.0.3.1)
-      activesupport (= 7.0.3.1)
+    activejob (7.0.4)
+      activesupport (= 7.0.4)
       globalid (>= 0.3.6)
-    activemodel (7.0.3.1)
-      activesupport (= 7.0.3.1)
-    activerecord (7.0.3.1)
-      activemodel (= 7.0.3.1)
-      activesupport (= 7.0.3.1)
+    activemodel (7.0.4)
+      activesupport (= 7.0.4)
+    activerecord (7.0.4)
+      activemodel (= 7.0.4)
+      activesupport (= 7.0.4)
     activerecord-import (1.4.0)
       activerecord (>= 4.2)
-    activestorage (7.0.3.1)
-      actionpack (= 7.0.3.1)
-      activejob (= 7.0.3.1)
-      activerecord (= 7.0.3.1)
-      activesupport (= 7.0.3.1)
+    activestorage (7.0.4)
+      actionpack (= 7.0.4)
+      activejob (= 7.0.4)
+      activerecord (= 7.0.4)
+      activesupport (= 7.0.4)
       marcel (~> 1.0)
       mini_mime (>= 1.1.0)
-    activesupport (7.0.3.1)
+    activesupport (7.0.4)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
@@ -86,8 +86,8 @@ GEM
     autoprefixer-rails (10.4.7.0)
       execjs (~> 2)
     aws-eventstream (1.2.0)
-    aws-partitions (1.621.0)
-    aws-sdk-core (3.134.0)
+    aws-partitions (1.628.0)
+    aws-sdk-core (3.145.0)
       aws-eventstream (~> 1, >= 1.0.2)
       aws-partitions (~> 1, >= 1.525.0)
       aws-sigv4 (~> 1.1)
@@ -163,7 +163,7 @@ GEM
       delayed_job (>= 3.0, < 5)
     digest (3.1.0)
     docile (1.4.0)
-    doorkeeper (5.5.4)
+    doorkeeper (5.6.0)
       railties (>= 5)
     doorkeeper-i18n (5.2.4)
       doorkeeper (>= 5.2)
@@ -179,12 +179,12 @@ GEM
     dry-logic (1.2.0)
       concurrent-ruby (~> 1.0)
       dry-core (~> 0.5, >= 0.5)
-    dry-schema (1.10.2)
+    dry-schema (1.10.4)
       concurrent-ruby (~> 1.0)
       dry-configurable (~> 0.13, >= 0.13.0)
       dry-core (~> 0.5, >= 0.5)
       dry-initializer (~> 3.0)
-      dry-logic (~> 1.0)
+      dry-logic (~> 1.2)
       dry-types (~> 1.5)
     dry-types (1.5.1)
       concurrent-ruby (~> 1.0)
@@ -260,7 +260,7 @@ GEM
       railties (>= 4.2.0)
       thor (>= 0.14, < 2.0)
     json (2.6.2)
-    jwt (2.4.1)
+    jwt (2.5.0)
     kgio (2.11.4)
     kramdown (2.4.0)
       rexml
@@ -373,20 +373,20 @@ GEM
     rack-test (2.0.2)
       rack (>= 1.3)
     rack-uri_sanitizer (0.0.2)
-    rails (7.0.3.1)
-      actioncable (= 7.0.3.1)
-      actionmailbox (= 7.0.3.1)
-      actionmailer (= 7.0.3.1)
-      actionpack (= 7.0.3.1)
-      actiontext (= 7.0.3.1)
-      actionview (= 7.0.3.1)
-      activejob (= 7.0.3.1)
-      activemodel (= 7.0.3.1)
-      activerecord (= 7.0.3.1)
-      activestorage (= 7.0.3.1)
-      activesupport (= 7.0.3.1)
+    rails (7.0.4)
+      actioncable (= 7.0.4)
+      actionmailbox (= 7.0.4)
+      actionmailer (= 7.0.4)
+      actionpack (= 7.0.4)
+      actiontext (= 7.0.4)
+      actionview (= 7.0.4)
+      activejob (= 7.0.4)
+      activemodel (= 7.0.4)
+      activerecord (= 7.0.4)
+      activestorage (= 7.0.4)
+      activesupport (= 7.0.4)
       bundler (>= 1.15.0)
-      railties (= 7.0.3.1)
+      railties (= 7.0.4)
     rails-controller-testing (1.0.5)
       actionpack (>= 5.0.1.rc1)
       actionview (>= 5.0.1.rc1)
@@ -399,16 +399,16 @@ GEM
     rails-i18n (7.0.5)
       i18n (>= 0.7, < 2)
       railties (>= 6.0.0, < 8)
-    railties (7.0.3.1)
-      actionpack (= 7.0.3.1)
-      activesupport (= 7.0.3.1)
+    railties (7.0.4)
+      actionpack (= 7.0.4)
+      activesupport (= 7.0.4)
       method_source
       rake (>= 12.2)
       thor (~> 1.0)
       zeitwerk (~> 2.5)
     rainbow (3.1.1)
     rake (13.0.6)
-    rb-fsevent (0.11.1)
+    rb-fsevent (0.11.2)
     rb-inotify (0.10.1)
       ffi (~> 1.0)
     regexp_parser (2.5.0)
@@ -417,7 +417,7 @@ GEM
     rexml (3.2.5)
     rinku (2.0.6)
     rotp (6.2.0)
-    rubocop (1.35.1)
+    rubocop (1.36.0)
       json (~> 2.3)
       parallel (~> 1.10)
       parser (>= 3.1.2.1)
@@ -429,15 +429,15 @@ GEM
       unicode-display_width (>= 1.4.0, < 3.0)
     rubocop-ast (1.21.0)
       parser (>= 3.1.1.0)
-    rubocop-minitest (0.21.0)
+    rubocop-minitest (0.22.0)
       rubocop (>= 0.90, < 2.0)
-    rubocop-performance (1.14.3)
+    rubocop-performance (1.15.0)
       rubocop (>= 1.7.0, < 2.0)
       rubocop-ast (>= 0.4.0)
-    rubocop-rails (2.15.2)
+    rubocop-rails (2.16.0)
       activesupport (>= 4.2.0)
       rack (>= 1.1)
-      rubocop (>= 1.7.0, < 2.0)
+      rubocop (>= 1.33.0, < 2.0)
     rubocop-rake (0.6.0)
       rubocop (~> 1.0)
     ruby-openid (2.9.2)
@@ -481,7 +481,7 @@ GEM
       actionpack (>= 5.2)
       activesupport (>= 5.2)
       sprockets (>= 3.0.0)
-    strong_migrations (1.2.0)
+    strong_migrations (1.3.0)
       activerecord (>= 5.2)
     strscan (3.0.4)
     terser (1.1.12)
@@ -575,7 +575,7 @@ DEPENDENCIES
   r2 (~> 0.2.7)
   rack-cors
   rack-uri_sanitizer
-  rails (= 7.0.3.1)
+  rails (= 7.0.4)
   rails-controller-testing
   rails-i18n (~> 7.0.0)
   rinku (>= 2.0.6)
index c92be45155133a245a90699d912d69d5b24fe4c0..4ebb89da93134a422133640e6680119c6ab9e752 100644 (file)
@@ -75,7 +75,7 @@ window.onload = function () {
 L.Control.OSMReportAProblem = L.Control.Attribution.extend({
   options: {
     position: 'bottomright',
-    prefix: '<a href="http://www.openstreetmap.org/fixthemap?lat={x}&lon={y}&zoom={z}" target="_blank">'+I18n.t('javascripts.embed.report_problem')+'</a>'
+    prefix: '<a href="https://www.openstreetmap.org/fixthemap?lat={x}&lon={y}&zoom={z}" target="_blank">'+I18n.t('javascripts.embed.report_problem')+'</a>'
   },
 
   onAdd: function (map) {
index 48d3505dc94aca358794c7c7e37a62be1e397f07..02f00ff7f3bf301bf10269ea685c0e99331d9dc5 100644 (file)
@@ -167,7 +167,8 @@ class GeocoderController < ApplicationController
 
     render :action => "results"
   rescue StandardError => e
-    @error = "Error contacting nominatim.openstreetmap.org: #{e}"
+    host = URI(Settings.nominatim_url).host
+    @error = "Error contacting #{host}: #{e}"
     render :action => "error"
   end
 
@@ -231,7 +232,8 @@ class GeocoderController < ApplicationController
 
     render :action => "results"
   rescue StandardError => e
-    @error = "Error contacting nominatim.openstreetmap.org: #{e}"
+    host = URI(Settings.nominatim_url).host
+    @error = "Error contacting #{host}: #{e}"
     render :action => "error"
   end
 
index e098a8acc49a989a58b390e1cfb3a27570e23d95..dcf0d8b64e2682364b7c5b489ad1c9c72662bd19 100644 (file)
@@ -26,7 +26,7 @@ class PreferencesController < ApplicationController
       flash[:notice] = { :partial => "preferences/update_success_flash" }
       redirect_to preferences_path
     else
-      flash[:error] = t ".failure"
+      flash.now[:error] = t ".failure"
       render :edit
     end
   end
index b48d08ad2ebece1d3fb14ed1ffaa18fbe6d18968..4005176ce192c529d8f4f535e57ada04569f1622 100644 (file)
@@ -36,7 +36,7 @@ class ProfilesController < ApplicationController
       flash[:notice] = t ".success"
       redirect_to user_path(current_user)
     else
-      flash[:error] = t ".failure"
+      flash.now[:error] = t ".failure"
       render :edit
     end
   end
index 30cb9da7cc18c526ab9b93eabbb338cf72fbf2a8..6d05e6a57b7f24042ffcb781e8952cbeb7f52bd5 100644 (file)
@@ -28,7 +28,7 @@ class ReportsController < ApplicationController
 
       redirect_to helpers.reportable_url(@report.issue.reportable), :notice => t(".successful_report")
     else
-      flash[:notice] = t(".provide_details")
+      flash.now[:notice] = t(".provide_details")
       render :action => "new"
     end
   end
index 7bbe65ec591d471ccf297878dffdd5b0a027a0c6..33fcc7465a6fb8a056448032556dbf7c577b0b7c 100644 (file)
@@ -183,7 +183,7 @@ class UserMailer < ApplicationMailer
   end
 
   def attach_project_logo
-    attachments.inline["logo.png"] = File.read(Rails.root.join("app/assets/images/osm_logo_30.png"))
+    attachments.inline["logo.png"] = Rails.root.join("app/assets/images/osm_logo_30.png").read
   end
 
   def attach_user_avatar(user)
@@ -199,7 +199,7 @@ class UserMailer < ApplicationMailer
         avatar.blob.download
       end
     else
-      File.read(Rails.root.join("app/assets/images/avatar_small.png"))
+      Rails.root.join("app/assets/images/avatar_small.png").read
     end
   end
 
index ba14f214e7a3daec2271cfb8aacb5f98ac9c1944..832187b79306acda89b58896a595daf054b01ca7 100644 (file)
@@ -25,7 +25,7 @@
                          when "public", "identifiable" then "success"
                          else "danger"
                          end %>
-        <span class="badge badge-<%= badge_class %> text-white"><%= t(".#{trace.visibility}") %></span>
+        <span class="badge bg-<%= badge_class %> text-white"><%= t(".#{trace.visibility}") %></span>
       </li>
     </ul>
     <p class="text-muted mb-0">
index e51281e11e034499b26e9ccba6b2bb795ee3456d..7fc48863567b022fe8ac31d726b9ca47e811d9f9 100644 (file)
@@ -2,7 +2,7 @@
 # Otherwise, admins might not be aware that they are now silently ignored
 # and major problems could occur
 # rubocop:disable Rails/Output, Rails/Exit
-if File.exist?(Rails.root.join("config/application.yml"))
+if Rails.root.join("config/application.yml").exist?
   puts "The config/application.yml file is no longer supported."
   puts ""
   puts "Default settings are now found in config/settings.yml and you"
index 8dce1c8707fe149fa823e7432c6e8cf7f0c4890f..a2df9167f420d37da6f3ab263dbf98efaddc4701 100644 (file)
 # frozen_string_literal: true
 
-Rails.application.reloader.to_prepare do
-  Doorkeeper.configure do
-    # Change the ORM that doorkeeper will use (requires ORM extensions installed).
-    # Check the list of supported ORMs here: https://github.com/doorkeeper-gem/doorkeeper#orms
-    orm :active_record
-
-    # This block will be called to check whether the resource owner is authenticated or not.
-    resource_owner_authenticator do
-      current_user
-    end
-
-    # If you didn't skip applications controller from Doorkeeper routes in your application routes.rb
-    # file then you need to declare this block in order to restrict access to the web interface for
-    # adding oauth authorized applications. In other case it will return 403 Forbidden response
-    # every time somebody will try to access the admin web interface.
-
-    admin_authenticator do
-      current_user
-    end
-
-    # You can use your own model classes if you need to extend (or even override) default
-    # Doorkeeper models such as `Application`, `AccessToken` and `AccessGrant.
-    #
-    # Be default Doorkeeper ActiveRecord ORM uses it's own classes:
-    #
-    # access_token_class "Doorkeeper::AccessToken"
-    # access_grant_class "Doorkeeper::AccessGrant"
-    # application_class "Doorkeeper::Application"
-    #
-    # Don't forget to include Doorkeeper ORM mixins into your custom models:
-    #
-    #   *  ::Doorkeeper::Orm::ActiveRecord::Mixins::AccessToken - for access token
-    #   *  ::Doorkeeper::Orm::ActiveRecord::Mixins::AccessGrant - for access grant
-    #   *  ::Doorkeeper::Orm::ActiveRecord::Mixins::Application - for application (OAuth2 clients)
-    #
-    # For example:
-    #
-    # access_token_class "MyAccessToken"
-    #
-    # class MyAccessToken < ApplicationRecord
-    #   include ::Doorkeeper::Orm::ActiveRecord::Mixins::AccessToken
-    #
-    #   self.table_name = "hey_i_wanna_my_name"
-    #
-    #   def destroy_me!
-    #     destroy
-    #   end
-    # end
-
-    application_class "Oauth2Application" unless Settings.status == "database_offline"
-
-    # Enables polymorphic Resource Owner association for Access Tokens and Access Grants.
-    # By default this option is disabled.
-    #
-    # Make sure you properly setup you database and have all the required columns (run
-    # `bundle exec rails generate doorkeeper:enable_polymorphic_resource_owner` and execute Rails
-    # migrations).
-    #
-    # If this option enabled, Doorkeeper will store not only Resource Owner primary key
-    # value, but also it's type (class name). See "Polymorphic Associations" section of
-    # Rails guides: https://guides.rubyonrails.org/association_basics.html#polymorphic-associations
-    #
-    # [NOTE] If you apply this option on already existing project don't forget to manually
-    # update `resource_owner_type` column in the database and fix migration template as it will
-    # set NOT NULL constraint for Access Grants table.
-    #
-    # use_polymorphic_resource_owner
-
-    # If you are planning to use Doorkeeper in Rails 5 API-only application, then you might
-    # want to use API mode that will skip all the views management and change the way how
-    # Doorkeeper responds to a requests.
-    #
-    # api_only
-
-    # Enforce token request content type to application/x-www-form-urlencoded.
-    # It is not enabled by default to not break prior versions of the gem.
-
-    enforce_content_type
-
-    # Authorization Code expiration time (default: 10 minutes).
-    #
-    # authorization_code_expires_in 10.minutes
-
-    # Access token expiration time (default: 2 hours).
-    # If you want to disable expiration, set this to `nil`.
-
-    access_token_expires_in nil
-
-    # Assign custom TTL for access tokens. Will be used instead of access_token_expires_in
-    # option if defined. In case the block returns `nil` value Doorkeeper fallbacks to
-    # +access_token_expires_in+ configuration option value. If you really need to issue a
-    # non-expiring access token (which is not recommended) then you need to return
-    # Float::INFINITY from this block.
-    #
-    # `context` has the following properties available:
-    #
-    #   * `client` - the OAuth client application (see Doorkeeper::OAuth::Client)
-    #   * `grant_type` - the grant type of the request (see Doorkeeper::OAuth)
-    #   * `scopes` - the requested scopes (see Doorkeeper::OAuth::Scopes)
-    #   * `resource_owner` - authorized resource owner instance (if present)
-    #
-    # custom_access_token_expires_in do |context|
-    #   context.client.additional_settings.implicit_oauth_expiration
-    # end
-
-    # Use a custom class for generating the access token.
-    # See https://doorkeeper.gitbook.io/guides/configuration/other-configurations#custom-access-token-generator
-    #
-    # access_token_generator '::Doorkeeper::JWT'
-
-    # The controller +Doorkeeper::ApplicationController+ inherits from.
-    # Defaults to +ActionController::Base+ unless +api_only+ is set, which changes the default to
-    # +ActionController::API+. The return value of this option must be a stringified class name.
-    # See https://doorkeeper.gitbook.io/guides/configuration/other-configurations#custom-controllers
-
-    base_controller "ApplicationController"
-
-    # Reuse access token for the same resource owner within an application (disabled by default).
-    #
-    # This option protects your application from creating new tokens before old valid one becomes
-    # expired so your database doesn't bloat. Keep in mind that when this option is `on` Doorkeeper
-    # doesn't updates existing token expiration time, it will create a new token instead.
-    # Rationale: https://github.com/doorkeeper-gem/doorkeeper/issues/383
-    #
-    # You can not enable this option together with +hash_token_secrets+.
-
-    reuse_access_token
-
-    # In case you enabled `reuse_access_token` option Doorkeeper will try to find matching
-    # token using `matching_token_for` Access Token API that searches for valid records
-    # in batches in order not to pollute the memory with all the database records. By default
-    # Doorkeeper uses batch size of 10 000 records. You can increase or decrease this value
-    # depending on your needs and server capabilities.
-    #
-    # token_lookup_batch_size 10_000
-
-    # Set a limit for token_reuse if using reuse_access_token option
-    #
-    # This option limits token_reusability to some extent.
-    # If not set then access_token will be reused unless it expires.
-    # Rationale: https://github.com/doorkeeper-gem/doorkeeper/issues/1189
-    #
-    # This option should be a percentage(i.e. (0,100])
-    #
-    # token_reuse_limit 100
-
-    # Only allow one valid access token obtained via client credentials
-    # per client. If a new access token is obtained before the old one
-    # expired, the old one gets revoked (disabled by default)
-    #
-    # When enabling this option, make sure that you do not expect multiple processes
-    # using the same credentials at the same time (e.g. web servers spanning
-    # multiple machines and/or processes).
-    #
-    # revoke_previous_client_credentials_token
-
-    # Hash access and refresh tokens before persisting them.
-    # This will disable the possibility to use +reuse_access_token+
-    # since plain values can no longer be retrieved.
-    #
-    # Note: If you are already a user of doorkeeper and have existing tokens
-    # in your installation, they will be invalid without adding 'fallback: :plain'.
-    #
-    # hash_token_secrets
-    # By default, token secrets will be hashed using the
-    # +Doorkeeper::Hashing::SHA256+ strategy.
-    #
-    # If you wish to use another hashing implementation, you can override
-    # this strategy as follows:
-
-    hash_token_secrets :using => "::Doorkeeper::SecretStoring::Plain",
-                       :fallback => "::Doorkeeper::SecretStoring::Sha256Hash"
-
-    # Keep in mind that changing the hashing function will invalidate all existing
-    # secrets, if there are any.
-
-    # Hash application secrets before persisting them.
-
-    hash_application_secrets
-
-    # By default, applications will be hashed
-    # with the +Doorkeeper::SecretStoring::SHA256+ strategy.
-    #
-    # If you wish to use bcrypt for application secret hashing, uncomment
-    # this line instead:
-    #
-    # hash_application_secrets using: '::Doorkeeper::SecretStoring::BCrypt'
-
-    # When the above option is enabled, and a hashed token or secret is not found,
-    # you can allow to fall back to another strategy. For users upgrading
-    # doorkeeper and wishing to enable hashing, you will probably want to enable
-    # the fallback to plain tokens.
-    #
-    # This will ensure that old access tokens and secrets
-    # will remain valid even if the hashing above is enabled.
-    #
-    # This can be done by adding 'fallback: plain', e.g. :
-    #
-    # hash_application_secrets using: '::Doorkeeper::SecretStoring::BCrypt', fallback: :plain
-
-    # Issue access tokens with refresh token (disabled by default), you may also
-    # pass a block which accepts `context` to customize when to give a refresh
-    # token or not. Similar to +custom_access_token_expires_in+, `context` has
-    # the following properties:
-    #
-    # `client` - the OAuth client application (see Doorkeeper::OAuth::Client)
-    # `grant_type` - the grant type of the request (see Doorkeeper::OAuth)
-    # `scopes` - the requested scopes (see Doorkeeper::OAuth::Scopes)
-    #
-    # use_refresh_token
-
-    # Provide support for an owner to be assigned to each registered application (disabled by default)
-    # Optional parameter confirmation: true (default: false) if you want to enforce ownership of
-    # a registered application
-    # NOTE: you must also run the rails g doorkeeper:application_owner generator
-    # to provide the necessary support
-
-    enable_application_owner :confirmation => true
-
-    # Define access token scopes for your provider
-    # For more information go to
-    # https://doorkeeper.gitbook.io/guides/ruby-on-rails/scopes
-
-    # default_scopes  :public
-    optional_scopes(*Oauth::SCOPES, *Oauth::PRIVILEGED_SCOPES)
-
-    # Allows to restrict only certain scopes for grant_type.
-    # By default, all the scopes will be available for all the grant types.
-    #
-    # Keys to this hash should be the name of grant_type and
-    # values should be the array of scopes for that grant type.
-    # Note: scopes should be from configured_scopes (i.e. default or optional)
-    #
-    # scopes_by_grant_type password: [:write], client_credentials: [:update]
-
-    # Forbids creating/updating applications with arbitrary scopes that are
-    # not in configuration, i.e. +default_scopes+ or +optional_scopes+.
-    # (disabled by default)
-
-    enforce_configured_scopes
-
-    # Change the way client credentials are retrieved from the request object.
-    # By default it retrieves first from the `HTTP_AUTHORIZATION` header, then
-    # falls back to the `:client_id` and `:client_secret` params from the `params` object.
-    # Check out https://github.com/doorkeeper-gem/doorkeeper/wiki/Changing-how-clients-are-authenticated
-    # for more information on customization
-    #
-    # client_credentials :from_basic, :from_params
-
-    # Change the way access token is authenticated from the request object.
-    # By default it retrieves first from the `HTTP_AUTHORIZATION` header, then
-    # falls back to the `:access_token` or `:bearer_token` params from the `params` object.
-    # Check out https://github.com/doorkeeper-gem/doorkeeper/wiki/Changing-how-clients-are-authenticated
-    # for more information on customization
-
-    access_token_methods :from_bearer_authorization
-
-    # Forces the usage of the HTTPS protocol in non-native redirect uris (enabled
-    # by default in non-development environments). OAuth2 delegates security in
-    # communication to the HTTPS protocol so it is wise to keep this enabled.
-    #
-    # Callable objects such as proc, lambda, block or any object that responds to
-    # #call can be used in order to allow conditional checks (to allow non-SSL
-    # redirects to localhost for example).
-
-    force_ssl_in_redirect_uri do |uri|
-      !Rails.env.development? && uri.host != "127.0.0.1"
-    end
-
-    # Specify what redirect URI's you want to block during Application creation.
-    # Any redirect URI is whitelisted by default.
-    #
-    # You can use this option in order to forbid URI's with 'javascript' scheme
-    # for example.
-    #
-    # forbid_redirect_uri { |uri| uri.scheme.to_s.downcase == 'javascript' }
-
-    # Allows to set blank redirect URIs for Applications in case Doorkeeper configured
-    # to use URI-less OAuth grant flows like Client Credentials or Resource Owner
-    # Password Credentials. The option is on by default and checks configured grant
-    # types, but you **need** to manually drop `NOT NULL` constraint from `redirect_uri`
-    # column for `oauth_applications` database table.
-    #
-    # You can completely disable this feature with:
-    #
-    # allow_blank_redirect_uri false
-    #
-    # Or you can define your custom check:
-    #
-    # allow_blank_redirect_uri do |grant_flows, client|
-    #   client.superapp?
-    # end
-
-    # Specify how authorization errors should be handled.
-    # By default, doorkeeper renders json errors when access token
-    # is invalid, expired, revoked or has invalid scopes.
-    #
-    # If you want to render error response yourself (i.e. rescue exceptions),
-    # set +handle_auth_errors+ to `:raise` and rescue Doorkeeper::Errors::InvalidToken
-    # or following specific errors:
-    #
-    #   Doorkeeper::Errors::TokenForbidden, Doorkeeper::Errors::TokenExpired,
-    #   Doorkeeper::Errors::TokenRevoked, Doorkeeper::Errors::TokenUnknown
-    #
-    # handle_auth_errors :raise
-
-    # Customize token introspection response.
-    # Allows to add your own fields to default one that are required by the OAuth spec
-    # for the introspection response. It could be `sub`, `aud` and so on.
-    # This configuration option can be a proc, lambda or any Ruby object responds
-    # to `.call` method and result of it's invocation must be a Hash.
-    #
-    # custom_introspection_response do |token, context|
-    #   {
-    #     "sub": "Z5O3upPC88QrAjx00dis",
-    #     "aud": "https://protected.example.net/resource",
-    #     "username": User.find(token.resource_owner_id).username
-    #   }
-    # end
-    #
-    # or
-    #
-    # custom_introspection_response CustomIntrospectionResponder
-
-    # Specify what grant flows are enabled in array of Strings. The valid
-    # strings and the flows they enable are:
-    #
-    # "authorization_code" => Authorization Code Grant Flow
-    # "implicit"           => Implicit Grant Flow
-    # "password"           => Resource Owner Password Credentials Grant Flow
-    # "client_credentials" => Client Credentials Grant Flow
-    #
-    # If not specified, Doorkeeper enables authorization_code and
-    # client_credentials.
-    #
-    # implicit and password grant flows have risks that you should understand
-    # before enabling:
-    #   http://tools.ietf.org/html/rfc6819#section-4.4.2
-    #   http://tools.ietf.org/html/rfc6819#section-4.4.3
-
-    grant_flows %w[authorization_code]
-
-    # Allows to customize OAuth grant flows that +each+ application support.
-    # You can configure a custom block (or use a class respond to `#call`) that must
-    # return `true` in case Application instance supports requested OAuth grant flow
-    # during the authorization request to the server. This configuration +doesn't+
-    # set flows per application, it only allows to check if application supports
-    # specific grant flow.
-    #
-    # For example you can add an additional database column to `oauth_applications` table,
-    # say `t.array :grant_flows, default: []`, and store allowed grant flows that can
-    # be used with this application there. Then when authorization requested Doorkeeper
-    # will call this block to check if specific Application (passed with client_id and/or
-    # client_secret) is allowed to perform the request for the specific grant type
-    # (authorization, password, client_credentials, etc).
-    #
-    # Example of the block:
-    #
-    #   ->(flow, client) { client.grant_flows.include?(flow) }
-    #
-    # In case this option invocation result is `false`, Doorkeeper server returns
-    # :unauthorized_client error and stops the request.
-    #
-    # @param allow_grant_flow_for_client [Proc] Block or any object respond to #call
-    # @return [Boolean] `true` if allow or `false` if forbid the request
-    #
-    # allow_grant_flow_for_client do |grant_flow, client|
-    #   # `grant_flows` is an Array column with grant
-    #   # flows that application supports
-    #
-    #   client.grant_flows.include?(grant_flow)
-    # end
-
-    # If you need arbitrary Resource Owner-Client authorization you can enable this option
-    # and implement the check your need. Config option must respond to #call and return
-    # true in case resource owner authorized for the specific application or false in other
-    # cases.
-    #
-    # Be default all Resource Owners are authorized to any Client (application).
-    #
-    # authorize_resource_owner_for_client do |client, resource_owner|
-    #   resource_owner.admin? || client.owners_whitelist.include?(resource_owner)
-    # end
-
-    # Hook into the strategies' request & response life-cycle in case your
-    # application needs advanced customization or logging:
-    #
-    # before_successful_strategy_response do |request|
-    #   puts "BEFORE HOOK FIRED! #{request}"
-    # end
-    #
-    # after_successful_strategy_response do |request, response|
-    #   puts "AFTER HOOK FIRED! #{request}, #{response}"
-    # end
-
-    # Hook into Authorization flow in order to implement Single Sign Out
-    # or add any other functionality. Inside the block you have an access
-    # to `controller` (authorizations controller instance) and `context`
-    # (Doorkeeper::OAuth::Hooks::Context instance) which provides pre auth
-    # or auth objects with issued token based on hook type (before or after).
-    #
-    # before_successful_authorization do |controller, context|
-    #   Rails.logger.info(controller.request.params.inspect)
-    #
-    #   Rails.logger.info(context.pre_auth.inspect)
-    # end
-    #
-    # after_successful_authorization do |controller, context|
-    #   controller.session[:logout_urls] <<
-    #     Doorkeeper::Application
-    #       .find_by(controller.request.params.slice(:redirect_uri))
-    #       .logout_uri
-    #
-    #   Rails.logger.info(context.auth.inspect)
-    #   Rails.logger.info(context.issued_token)
-    # end
-
-    # Under some circumstances you might want to have applications auto-approved,
-    # so that the user skips the authorization step.
-    # For example if dealing with a trusted application.
-
-    skip_authorization do |_, client|
-      client.scopes.include?("skip_authorization")
-    end
-
-    # Configure custom constraints for the Token Introspection request.
-    # By default this configuration option allows to introspect a token by another
-    # token of the same application, OR to introspect the token that belongs to
-    # authorized client (from authenticated client) OR when token doesn't
-    # belong to any client (public token). Otherwise requester has no access to the
-    # introspection and it will return response as stated in the RFC.
-    #
-    # Block arguments:
-    #
-    # @param token [Doorkeeper::AccessToken]
-    #   token to be introspected
-    #
-    # @param authorized_client [Doorkeeper::Application]
-    #   authorized client (if request is authorized using Basic auth with
-    #   Client Credentials for example)
-    #
-    # @param authorized_token [Doorkeeper::AccessToken]
-    #   Bearer token used to authorize the request
-    #
-    # In case the block returns `nil` or `false` introspection responses with 401 status code
-    # when using authorized token to introspect, or you'll get 200 with { "active": false } body
-    # when using authorized client to introspect as stated in the
-    # RFC 7662 section 2.2. Introspection Response.
-    #
-    # Using with caution:
-    # Keep in mind that these three parameters pass to block can be nil as following case:
-    #  `authorized_client` is nil if and only if `authorized_token` is present, and vice versa.
-    #  `token` will be nil if and only if `authorized_token` is present.
-    # So remember to use `&` or check if it is present before calling method on
-    # them to make sure you doesn't get NoMethodError exception.
-    #
-    # You can define your custom check:
-    #
-    # allow_token_introspection do |token, authorized_client, authorized_token|
-    #   if authorized_token
-    #     # customize: require `introspection` scope
-    #     authorized_token.application == token&.application ||
-    #       authorized_token.scopes.include?("introspection")
-    #   elsif token.application
-    #     # `protected_resource` is a new database boolean column, for example
-    #     authorized_client == token.application || authorized_client.protected_resource?
-    #   else
-    #     # public token (when token.application is nil, token doesn't belong to any application)
-    #     true
-    #   end
-    # end
-    #
-    # Or you can completely disable any token introspection:
-    #
-    # allow_token_introspection false
-    #
-    # If you need to block the request at all, then configure your routes.rb or web-server
-    # like nginx to forbid the request.
-
-    # WWW-Authenticate Realm (default: "Doorkeeper").
-    #
-    # realm "Doorkeeper"
+require_relative "../../lib/oauth"
+
+Doorkeeper.configure do
+  # Change the ORM that doorkeeper will use (requires ORM extensions installed).
+  # Check the list of supported ORMs here: https://github.com/doorkeeper-gem/doorkeeper#orms
+  orm :active_record
+
+  # This block will be called to check whether the resource owner is authenticated or not.
+  resource_owner_authenticator do
+    current_user
+  end
+
+  # If you didn't skip applications controller from Doorkeeper routes in your application routes.rb
+  # file then you need to declare this block in order to restrict access to the web interface for
+  # adding oauth authorized applications. In other case it will return 403 Forbidden response
+  # every time somebody will try to access the admin web interface.
+
+  admin_authenticator do
+    current_user
   end
+
+  # You can use your own model classes if you need to extend (or even override) default
+  # Doorkeeper models such as `Application`, `AccessToken` and `AccessGrant.
+  #
+  # Be default Doorkeeper ActiveRecord ORM uses it's own classes:
+  #
+  # access_token_class "Doorkeeper::AccessToken"
+  # access_grant_class "Doorkeeper::AccessGrant"
+  # application_class "Doorkeeper::Application"
+  #
+  # Don't forget to include Doorkeeper ORM mixins into your custom models:
+  #
+  #   *  ::Doorkeeper::Orm::ActiveRecord::Mixins::AccessToken - for access token
+  #   *  ::Doorkeeper::Orm::ActiveRecord::Mixins::AccessGrant - for access grant
+  #   *  ::Doorkeeper::Orm::ActiveRecord::Mixins::Application - for application (OAuth2 clients)
+  #
+  # For example:
+  #
+  # access_token_class "MyAccessToken"
+  #
+  # class MyAccessToken < ApplicationRecord
+  #   include ::Doorkeeper::Orm::ActiveRecord::Mixins::AccessToken
+  #
+  #   self.table_name = "hey_i_wanna_my_name"
+  #
+  #   def destroy_me!
+  #     destroy
+  #   end
+  # end
+
+  application_class "Oauth2Application" unless Settings.status == "database_offline"
+
+  # Enables polymorphic Resource Owner association for Access Tokens and Access Grants.
+  # By default this option is disabled.
+  #
+  # Make sure you properly setup you database and have all the required columns (run
+  # `bundle exec rails generate doorkeeper:enable_polymorphic_resource_owner` and execute Rails
+  # migrations).
+  #
+  # If this option enabled, Doorkeeper will store not only Resource Owner primary key
+  # value, but also it's type (class name). See "Polymorphic Associations" section of
+  # Rails guides: https://guides.rubyonrails.org/association_basics.html#polymorphic-associations
+  #
+  # [NOTE] If you apply this option on already existing project don't forget to manually
+  # update `resource_owner_type` column in the database and fix migration template as it will
+  # set NOT NULL constraint for Access Grants table.
+  #
+  # use_polymorphic_resource_owner
+
+  # If you are planning to use Doorkeeper in Rails 5 API-only application, then you might
+  # want to use API mode that will skip all the views management and change the way how
+  # Doorkeeper responds to a requests.
+  #
+  # api_only
+
+  # Enforce token request content type to application/x-www-form-urlencoded.
+  # It is not enabled by default to not break prior versions of the gem.
+
+  enforce_content_type
+
+  # Authorization Code expiration time (default: 10 minutes).
+  #
+  # authorization_code_expires_in 10.minutes
+
+  # Access token expiration time (default: 2 hours).
+  # If you want to disable expiration, set this to `nil`.
+
+  access_token_expires_in nil
+
+  # Assign custom TTL for access tokens. Will be used instead of access_token_expires_in
+  # option if defined. In case the block returns `nil` value Doorkeeper fallbacks to
+  # +access_token_expires_in+ configuration option value. If you really need to issue a
+  # non-expiring access token (which is not recommended) then you need to return
+  # Float::INFINITY from this block.
+  #
+  # `context` has the following properties available:
+  #
+  #   * `client` - the OAuth client application (see Doorkeeper::OAuth::Client)
+  #   * `grant_type` - the grant type of the request (see Doorkeeper::OAuth)
+  #   * `scopes` - the requested scopes (see Doorkeeper::OAuth::Scopes)
+  #   * `resource_owner` - authorized resource owner instance (if present)
+  #
+  # custom_access_token_expires_in do |context|
+  #   context.client.additional_settings.implicit_oauth_expiration
+  # end
+
+  # Use a custom class for generating the access token.
+  # See https://doorkeeper.gitbook.io/guides/configuration/other-configurations#custom-access-token-generator
+  #
+  # access_token_generator '::Doorkeeper::JWT'
+
+  # The controller +Doorkeeper::ApplicationController+ inherits from.
+  # Defaults to +ActionController::Base+ unless +api_only+ is set, which changes the default to
+  # +ActionController::API+. The return value of this option must be a stringified class name.
+  # See https://doorkeeper.gitbook.io/guides/configuration/other-configurations#custom-controllers
+
+  base_controller "ApplicationController"
+
+  # Reuse access token for the same resource owner within an application (disabled by default).
+  #
+  # This option protects your application from creating new tokens before old valid one becomes
+  # expired so your database doesn't bloat. Keep in mind that when this option is `on` Doorkeeper
+  # doesn't updates existing token expiration time, it will create a new token instead.
+  # Rationale: https://github.com/doorkeeper-gem/doorkeeper/issues/383
+  #
+  # You can not enable this option together with +hash_token_secrets+.
+
+  reuse_access_token
+
+  # In case you enabled `reuse_access_token` option Doorkeeper will try to find matching
+  # token using `matching_token_for` Access Token API that searches for valid records
+  # in batches in order not to pollute the memory with all the database records. By default
+  # Doorkeeper uses batch size of 10 000 records. You can increase or decrease this value
+  # depending on your needs and server capabilities.
+  #
+  # token_lookup_batch_size 10_000
+
+  # Set a limit for token_reuse if using reuse_access_token option
+  #
+  # This option limits token_reusability to some extent.
+  # If not set then access_token will be reused unless it expires.
+  # Rationale: https://github.com/doorkeeper-gem/doorkeeper/issues/1189
+  #
+  # This option should be a percentage(i.e. (0,100])
+  #
+  # token_reuse_limit 100
+
+  # Only allow one valid access token obtained via client credentials
+  # per client. If a new access token is obtained before the old one
+  # expired, the old one gets revoked (disabled by default)
+  #
+  # When enabling this option, make sure that you do not expect multiple processes
+  # using the same credentials at the same time (e.g. web servers spanning
+  # multiple machines and/or processes).
+  #
+  # revoke_previous_client_credentials_token
+
+  # Hash access and refresh tokens before persisting them.
+  # This will disable the possibility to use +reuse_access_token+
+  # since plain values can no longer be retrieved.
+  #
+  # Note: If you are already a user of doorkeeper and have existing tokens
+  # in your installation, they will be invalid without adding 'fallback: :plain'.
+  #
+  # hash_token_secrets
+  # By default, token secrets will be hashed using the
+  # +Doorkeeper::Hashing::SHA256+ strategy.
+  #
+  # If you wish to use another hashing implementation, you can override
+  # this strategy as follows:
+
+  hash_token_secrets :using => "::Doorkeeper::SecretStoring::Plain",
+                     :fallback => "::Doorkeeper::SecretStoring::Sha256Hash"
+
+  # Keep in mind that changing the hashing function will invalidate all existing
+  # secrets, if there are any.
+
+  # Hash application secrets before persisting them.
+
+  hash_application_secrets
+
+  # By default, applications will be hashed
+  # with the +Doorkeeper::SecretStoring::SHA256+ strategy.
+  #
+  # If you wish to use bcrypt for application secret hashing, uncomment
+  # this line instead:
+  #
+  # hash_application_secrets using: '::Doorkeeper::SecretStoring::BCrypt'
+
+  # When the above option is enabled, and a hashed token or secret is not found,
+  # you can allow to fall back to another strategy. For users upgrading
+  # doorkeeper and wishing to enable hashing, you will probably want to enable
+  # the fallback to plain tokens.
+  #
+  # This will ensure that old access tokens and secrets
+  # will remain valid even if the hashing above is enabled.
+  #
+  # This can be done by adding 'fallback: plain', e.g. :
+  #
+  # hash_application_secrets using: '::Doorkeeper::SecretStoring::BCrypt', fallback: :plain
+
+  # Issue access tokens with refresh token (disabled by default), you may also
+  # pass a block which accepts `context` to customize when to give a refresh
+  # token or not. Similar to +custom_access_token_expires_in+, `context` has
+  # the following properties:
+  #
+  # `client` - the OAuth client application (see Doorkeeper::OAuth::Client)
+  # `grant_type` - the grant type of the request (see Doorkeeper::OAuth)
+  # `scopes` - the requested scopes (see Doorkeeper::OAuth::Scopes)
+  #
+  # use_refresh_token
+
+  # Provide support for an owner to be assigned to each registered application (disabled by default)
+  # Optional parameter confirmation: true (default: false) if you want to enforce ownership of
+  # a registered application
+  # NOTE: you must also run the rails g doorkeeper:application_owner generator
+  # to provide the necessary support
+
+  enable_application_owner :confirmation => true
+
+  # Define access token scopes for your provider
+  # For more information go to
+  # https://doorkeeper.gitbook.io/guides/ruby-on-rails/scopes
+
+  # default_scopes  :public
+  optional_scopes(*Oauth::SCOPES, *Oauth::PRIVILEGED_SCOPES)
+
+  # Allows to restrict only certain scopes for grant_type.
+  # By default, all the scopes will be available for all the grant types.
+  #
+  # Keys to this hash should be the name of grant_type and
+  # values should be the array of scopes for that grant type.
+  # Note: scopes should be from configured_scopes (i.e. default or optional)
+  #
+  # scopes_by_grant_type password: [:write], client_credentials: [:update]
+
+  # Forbids creating/updating applications with arbitrary scopes that are
+  # not in configuration, i.e. +default_scopes+ or +optional_scopes+.
+  # (disabled by default)
+
+  enforce_configured_scopes
+
+  # Change the way client credentials are retrieved from the request object.
+  # By default it retrieves first from the `HTTP_AUTHORIZATION` header, then
+  # falls back to the `:client_id` and `:client_secret` params from the `params` object.
+  # Check out https://github.com/doorkeeper-gem/doorkeeper/wiki/Changing-how-clients-are-authenticated
+  # for more information on customization
+  #
+  # client_credentials :from_basic, :from_params
+
+  # Change the way access token is authenticated from the request object.
+  # By default it retrieves first from the `HTTP_AUTHORIZATION` header, then
+  # falls back to the `:access_token` or `:bearer_token` params from the `params` object.
+  # Check out https://github.com/doorkeeper-gem/doorkeeper/wiki/Changing-how-clients-are-authenticated
+  # for more information on customization
+
+  access_token_methods :from_bearer_authorization
+
+  # Forces the usage of the HTTPS protocol in non-native redirect uris (enabled
+  # by default in non-development environments). OAuth2 delegates security in
+  # communication to the HTTPS protocol so it is wise to keep this enabled.
+  #
+  # Callable objects such as proc, lambda, block or any object that responds to
+  # #call can be used in order to allow conditional checks (to allow non-SSL
+  # redirects to localhost for example).
+
+  force_ssl_in_redirect_uri do |uri|
+    !Rails.env.development? && uri.host != "127.0.0.1"
+  end
+
+  # Specify what redirect URI's you want to block during Application creation.
+  # Any redirect URI is whitelisted by default.
+  #
+  # You can use this option in order to forbid URI's with 'javascript' scheme
+  # for example.
+  #
+  # forbid_redirect_uri { |uri| uri.scheme.to_s.downcase == 'javascript' }
+
+  # Allows to set blank redirect URIs for Applications in case Doorkeeper configured
+  # to use URI-less OAuth grant flows like Client Credentials or Resource Owner
+  # Password Credentials. The option is on by default and checks configured grant
+  # types, but you **need** to manually drop `NOT NULL` constraint from `redirect_uri`
+  # column for `oauth_applications` database table.
+  #
+  # You can completely disable this feature with:
+  #
+  # allow_blank_redirect_uri false
+  #
+  # Or you can define your custom check:
+  #
+  # allow_blank_redirect_uri do |grant_flows, client|
+  #   client.superapp?
+  # end
+
+  # Specify how authorization errors should be handled.
+  # By default, doorkeeper renders json errors when access token
+  # is invalid, expired, revoked or has invalid scopes.
+  #
+  # If you want to render error response yourself (i.e. rescue exceptions),
+  # set +handle_auth_errors+ to `:raise` and rescue Doorkeeper::Errors::InvalidToken
+  # or following specific errors:
+  #
+  #   Doorkeeper::Errors::TokenForbidden, Doorkeeper::Errors::TokenExpired,
+  #   Doorkeeper::Errors::TokenRevoked, Doorkeeper::Errors::TokenUnknown
+  #
+  # handle_auth_errors :raise
+
+  # Customize token introspection response.
+  # Allows to add your own fields to default one that are required by the OAuth spec
+  # for the introspection response. It could be `sub`, `aud` and so on.
+  # This configuration option can be a proc, lambda or any Ruby object responds
+  # to `.call` method and result of it's invocation must be a Hash.
+  #
+  # custom_introspection_response do |token, context|
+  #   {
+  #     "sub": "Z5O3upPC88QrAjx00dis",
+  #     "aud": "https://protected.example.net/resource",
+  #     "username": User.find(token.resource_owner_id).username
+  #   }
+  # end
+  #
+  # or
+  #
+  # custom_introspection_response CustomIntrospectionResponder
+
+  # Specify what grant flows are enabled in array of Strings. The valid
+  # strings and the flows they enable are:
+  #
+  # "authorization_code" => Authorization Code Grant Flow
+  # "implicit"           => Implicit Grant Flow
+  # "password"           => Resource Owner Password Credentials Grant Flow
+  # "client_credentials" => Client Credentials Grant Flow
+  #
+  # If not specified, Doorkeeper enables authorization_code and
+  # client_credentials.
+  #
+  # implicit and password grant flows have risks that you should understand
+  # before enabling:
+  #   http://tools.ietf.org/html/rfc6819#section-4.4.2
+  #   http://tools.ietf.org/html/rfc6819#section-4.4.3
+
+  grant_flows %w[authorization_code]
+
+  # Allows to customize OAuth grant flows that +each+ application support.
+  # You can configure a custom block (or use a class respond to `#call`) that must
+  # return `true` in case Application instance supports requested OAuth grant flow
+  # during the authorization request to the server. This configuration +doesn't+
+  # set flows per application, it only allows to check if application supports
+  # specific grant flow.
+  #
+  # For example you can add an additional database column to `oauth_applications` table,
+  # say `t.array :grant_flows, default: []`, and store allowed grant flows that can
+  # be used with this application there. Then when authorization requested Doorkeeper
+  # will call this block to check if specific Application (passed with client_id and/or
+  # client_secret) is allowed to perform the request for the specific grant type
+  # (authorization, password, client_credentials, etc).
+  #
+  # Example of the block:
+  #
+  #   ->(flow, client) { client.grant_flows.include?(flow) }
+  #
+  # In case this option invocation result is `false`, Doorkeeper server returns
+  # :unauthorized_client error and stops the request.
+  #
+  # @param allow_grant_flow_for_client [Proc] Block or any object respond to #call
+  # @return [Boolean] `true` if allow or `false` if forbid the request
+  #
+  # allow_grant_flow_for_client do |grant_flow, client|
+  #   # `grant_flows` is an Array column with grant
+  #   # flows that application supports
+  #
+  #   client.grant_flows.include?(grant_flow)
+  # end
+
+  # If you need arbitrary Resource Owner-Client authorization you can enable this option
+  # and implement the check your need. Config option must respond to #call and return
+  # true in case resource owner authorized for the specific application or false in other
+  # cases.
+  #
+  # Be default all Resource Owners are authorized to any Client (application).
+  #
+  # authorize_resource_owner_for_client do |client, resource_owner|
+  #   resource_owner.admin? || client.owners_whitelist.include?(resource_owner)
+  # end
+
+  # Hook into the strategies' request & response life-cycle in case your
+  # application needs advanced customization or logging:
+  #
+  # before_successful_strategy_response do |request|
+  #   puts "BEFORE HOOK FIRED! #{request}"
+  # end
+  #
+  # after_successful_strategy_response do |request, response|
+  #   puts "AFTER HOOK FIRED! #{request}, #{response}"
+  # end
+
+  # Hook into Authorization flow in order to implement Single Sign Out
+  # or add any other functionality. Inside the block you have an access
+  # to `controller` (authorizations controller instance) and `context`
+  # (Doorkeeper::OAuth::Hooks::Context instance) which provides pre auth
+  # or auth objects with issued token based on hook type (before or after).
+  #
+  # before_successful_authorization do |controller, context|
+  #   Rails.logger.info(controller.request.params.inspect)
+  #
+  #   Rails.logger.info(context.pre_auth.inspect)
+  # end
+  #
+  # after_successful_authorization do |controller, context|
+  #   controller.session[:logout_urls] <<
+  #     Doorkeeper::Application
+  #       .find_by(controller.request.params.slice(:redirect_uri))
+  #       .logout_uri
+  #
+  #   Rails.logger.info(context.auth.inspect)
+  #   Rails.logger.info(context.issued_token)
+  # end
+
+  # Under some circumstances you might want to have applications auto-approved,
+  # so that the user skips the authorization step.
+  # For example if dealing with a trusted application.
+
+  skip_authorization do |_, client|
+    client.scopes.include?("skip_authorization")
+  end
+
+  # Configure custom constraints for the Token Introspection request.
+  # By default this configuration option allows to introspect a token by another
+  # token of the same application, OR to introspect the token that belongs to
+  # authorized client (from authenticated client) OR when token doesn't
+  # belong to any client (public token). Otherwise requester has no access to the
+  # introspection and it will return response as stated in the RFC.
+  #
+  # Block arguments:
+  #
+  # @param token [Doorkeeper::AccessToken]
+  #   token to be introspected
+  #
+  # @param authorized_client [Doorkeeper::Application]
+  #   authorized client (if request is authorized using Basic auth with
+  #   Client Credentials for example)
+  #
+  # @param authorized_token [Doorkeeper::AccessToken]
+  #   Bearer token used to authorize the request
+  #
+  # In case the block returns `nil` or `false` introspection responses with 401 status code
+  # when using authorized token to introspect, or you'll get 200 with { "active": false } body
+  # when using authorized client to introspect as stated in the
+  # RFC 7662 section 2.2. Introspection Response.
+  #
+  # Using with caution:
+  # Keep in mind that these three parameters pass to block can be nil as following case:
+  #  `authorized_client` is nil if and only if `authorized_token` is present, and vice versa.
+  #  `token` will be nil if and only if `authorized_token` is present.
+  # So remember to use `&` or check if it is present before calling method on
+  # them to make sure you doesn't get NoMethodError exception.
+  #
+  # You can define your custom check:
+  #
+  # allow_token_introspection do |token, authorized_client, authorized_token|
+  #   if authorized_token
+  #     # customize: require `introspection` scope
+  #     authorized_token.application == token&.application ||
+  #       authorized_token.scopes.include?("introspection")
+  #   elsif token.application
+  #     # `protected_resource` is a new database boolean column, for example
+  #     authorized_client == token.application || authorized_client.protected_resource?
+  #   else
+  #     # public token (when token.application is nil, token doesn't belong to any application)
+  #     true
+  #   end
+  # end
+  #
+  # Or you can completely disable any token introspection:
+  #
+  # allow_token_introspection false
+  #
+  # If you need to block the request at all, then configure your routes.rb or web-server
+  # like nginx to forbid the request.
+
+  # WWW-Authenticate Realm (default: "Doorkeeper").
+  #
+  # realm "Doorkeeper"
 end
index c7579bc0a386c3ff8c9ee4a6634696215ed0dc25..65e68cc70dc452a62594430c35590cb3436c3d7d 100644 (file)
@@ -24,10 +24,10 @@ bg:
       friendly: '%e %B %Y в %H:%M'
   helpers:
     file:
-      prompt: Ð\98збеÑ\80и файл
+      prompt: Ð\98збиÑ\80ане Ð½Ð° файл
     submit:
       diary_comment:
-        create: Ð¡Ñ\8aÑ\85Ñ\80анÑ\8fване
+        create: Ð\97апазване
       diary_entry:
         create: Публикуване
         update: Обновяване
@@ -37,9 +37,10 @@ bg:
         create: Изпращане
       client_application:
         create: Регистриране
-        update: Обнови
+        update: Обновяване
       doorkeeper_application:
         create: Регистриране
+        update: Обновяване
       redaction:
         create: Създаване на поправка
         update: Запазване на поправка
@@ -90,8 +91,8 @@ bg:
       way_tag: Етикет на път
     attributes:
       client_application:
-        name: Ð\98ме (Ð\97адължително)
-        url: Ð\9eÑ\81новно Ð¿Ñ\80иложение URL(Ð\97адължително)
+        name: Ð\98ме (задължително)
+        url: Ð\90дÑ\80еÑ\81 Ð½Ð° Ð¾Ñ\81новноÑ\82о Ð¿Ñ\80иложение (задължително)
         allow_read_prefs: прочетете потребителските предпочитания
         allow_write_prefs: променете потребителските им предпочитания
         allow_write_diary: създай дневник на бележките, коментарите и новите приятелства
@@ -230,6 +231,12 @@ bg:
       entry:
         comment: Коментар
         full: Цялата бележка
+  account:
+    deletions:
+      show:
+        title: Изтриване на профила
+        delete_account: Изтриване на профила
+        cancel: Отказ
   accounts:
     edit:
       title: Промяна на профил
@@ -250,7 +257,7 @@ bg:
         heading: Условия за сътрудничество
         agreed: Приели сте новите условия за сътрудничество.
         not yet agreed: Все още не сте приели новите Условия за участие.
-        link: https://www.osmfoundation.org/wiki/License/Contributor_Terms
+        link: https://wiki.osmfoundation.org/wiki/Licence/Contributor_Terms
         link text: Какво е това?
       save changes button: Съхраняване на промените
       make edits public button: Всички мои промени да са публично достъпни
@@ -538,14 +545,14 @@ bg:
           t-bar: Седалков лифт
         aeroway:
           aerodrome: Летище
-          apron: Ð\9fеÑ\80он
-          gate: Врата
+          apron: Ð¡Ð°Ð¼Ð¾Ð»ÐµÑ\82на Ð¿Ð¸Ñ\81Ñ\82а
+          gate: Врата на летище
           hangar: Хангар
           helipad: Вертолетна площадка
           runway: Писта
           taxilane: Таксилента
           taxiway: Път за рулиране
-          terminal: Ð¢ерминал
+          terminal: Ð\9bеÑ\82иÑ\89ен Ñ\82ерминал
         amenity:
           animal_shelter: Приют за животни
           arts_centre: Център на изкуствата
@@ -586,7 +593,7 @@ bg:
           ferry_terminal: Фериботен терминал
           fire_station: Пожарна станция
           fountain: Фонтан
-          fuel: Ð\93оÑ\80иво
+          fuel: Ð\91ензиноÑ\81Ñ\82анÑ\86иÑ\8f
           gambling: Хазартни игри
           grave_yard: Гробище
           hospital: Болница
@@ -594,7 +601,7 @@ bg:
           ice_cream: Сладолед
           internet_cafe: Интернет Кафе
           kindergarten: Детска градина
-          language_school: Ð£Ñ\87илиÑ\89е Ð·Ð° ÐµÐ·Ð¸Ñ\86и
+          language_school: Ð\95зиково Ñ\83Ñ\87илиÑ\89е
           library: Библиотека
           loading_dock: Товарна рампа
           marketplace: Пазар
@@ -789,7 +796,7 @@ bg:
           cemetery: Гробище
           commercial: Търговска зона
           conservation: Резерват
-          construction: Строителство
+          construction: Строителен обект
           farmland: Обработваема земя
           farmyard: Стопански двор
           forest: Гора
@@ -994,7 +1001,7 @@ bg:
           curtain: Магазин за завеси
           deli: Деликатесен магазин
           department_store: Универсален магазин
-          doityourself: Ð\9dаправи сам
+          doityourself: Ð\9cагазин Ð½аправи сам
           dry_cleaning: Химическо чистене
           e-cigarette: Магазин е-цигари
           electronics: Магазин за електроника
@@ -1016,7 +1023,7 @@ bg:
           hairdresser: Фризьорски салон
           hardware: Железария
           health_food: Магазин Здравословна храна
-          hifi: Аудиосистеми
+          hifi: Аудиомагазин
           houseware: Домашни потреби
           ice_cream: Магазин за Сладолед
           jewelry: Бижутериен магазин
@@ -1058,7 +1065,7 @@ bg:
           apartment: Ваканционен апартамент
           artwork: Произведениe на изкуството
           attraction: Атракция
-          cabin: Ð\9aабина
+          cabin: Ð\97аÑ\81лон
           camp_site: Лагер
           caravan_site: Къмпинг
           chalet: Бунгало
@@ -1764,7 +1771,7 @@ bg:
       public_traces_from: Публични следи от GPS от потребител %{user}
       tagged_with: с етикет %{tags}
       upload_trace: Качване на следи от GPS
-      my_traces: Моите следи от GPS
+      my_traces: Моите следи
     georss:
       title: OpenStreetMap GPS трасета
     description:
@@ -1833,7 +1840,7 @@ bg:
       heading: Условия
       heading_ct: Условия за сътрудничество
       consider_pd_why: какво е това?
-      consider_pd_why_url: https://www.osmfoundation.org/wiki/License/Why_would_I_want_my_contributions_to_be_public_domain
+      consider_pd_why_url: https://wiki.osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why_would_I_want_my_contributions_to_be_public_domain
       continue: Продължаване
       declined: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
       decline: Отхвърли
index 2de1f0829e5fa945f4d35f912a59527165786c41..0e0ef0aed38f1caba0ef20ecb9375c0793dc2021 100644 (file)
@@ -324,7 +324,7 @@ br:
         review link text: Heuilhit al liamm-mañ evel ma karot evit sellet ouzh diferadennoù
           nevez ar c'henlabourer hag asantiñ dezho.
         agreed_with_pd: Disklêriet hoc'h eus ivez emañ ho tegasadennoù en domani foran.
-        link: https://www.osmfoundation.org/wiki/License/Contributor_Terms
+        link: https://wiki.osmfoundation.org/wiki/Licence/Contributor_Terms
         link text: Petra eo se ?
       save changes button: Enrollañ ar c'hemmoù
       make edits public button: Lakaat ma holl aozadennoù da vezañ foran
@@ -701,7 +701,7 @@ br:
           fire_station: Kazarn pomperien
           food_court: ↓Predva
           fountain: Feunteun
-          fuel: Dour-tan
+          fuel: Porzh Servij
           gambling: C'hoari arc'hant
           grave_yard: Bered
           grit_bin: Bailh holen
@@ -2544,7 +2544,7 @@ br:
       consider_pd: Ouzhpenn an asant amañ a-us, ez anavezan emañ ma zegasadennoù en
         domani foran
       consider_pd_why: petra eo se ?
-      consider_pd_why_url: https://www.osmfoundation.org/wiki/License/Why_would_I_want_my_contributions_to_be_public_domain
+      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: 'Titouroù da skoazellañ kompren an termenoù-mañ : a <a href="%{summary}">diverradenn
         lennus gant mab-den</a> hag un nebeud <a href="%{translations}">troidigezhioù
         anfurmel</a>'
index 8d6dd3aa12693fe632cf8c3362c53446751fad02..9bab1f3d1ac163236d798564c9bf6f0033c1d5e8 100644 (file)
@@ -90,6 +90,7 @@
 # Author: Unkn0wnCat
 # Author: Wolfdietmann
 # Author: Woodpeck
+# Author: Wuzzy
 # Author: Zauberzunge2000
 ---
 de:
@@ -2318,9 +2319,13 @@ de:
         description: Stelle eine Frage und diskutiere interessante Sachen zu einem
           weiten Bereich von thematischen oder regionalen Mailinglisten.
       forums:
-        title: Foren
+        title: Foren (veraltet)
         description: Fragen und Diskussionen für diejenigen, die eine Oberfläche in
           der Art einer Anschlagstafel bevorzugen.
+      community:
+        url: https://community.openstreetmap.org/
+        title: Community-Forum
+        description: Ein gemeinsamer Ort für Gespräche über OpenStreetMap.
       irc:
         title: IRC
         description: Interaktiver Chat in vielen unterschiedlichen Sprachen und zu
index 55aeb8d72606c8e18d9e9bb7467e0f30e315e1a3..30640be9ac1ad9aecc054daa6617e72599266f44 100644 (file)
@@ -416,7 +416,6 @@ en-GB:
       reopened_by_html: Reactivated by %{user} <abbr title='%{exact_time}'>%{when}</abbr>
       reopened_by_anonymous_html: Reactivated by anonymous <abbr title='%{exact_time}'>%{when}</abbr>
       hidden_by_html: Hidden by %{user} <abbr title='%{exact_time}'>%{when}</abbr>
-      report: Report this note
       coordinates_html: '%{latitude}, %{longitude}'
     query:
       title: Query Features
index 3a7de5e112bbfdd843c598f330b7f91e07700371..6fb4fe5f0b6b7219b961e368997ec4f98ed83ae8 100644 (file)
@@ -8,6 +8,7 @@
 # Author: Alberto Chung
 # Author: Anarhistička Maca
 # Author: Angoca
+# Author: AnupamM
 # Author: Armando-Martin
 # Author: BnSrSa
 # Author: Carlosmg.dg
@@ -17,6 +18,7 @@
 # Author: Danieldegroot2
 # Author: Danniel07
 # Author: DannyS712
+# Author: DarkGames26
 # Author: Dcapillae
 # Author: Destinid10 2
 # Author: Dgstranz
@@ -2293,9 +2295,13 @@ es:
         description: Haga una pregunta o discuta asuntos interesantes en una amplia
           gama de listas de correo regionales o temáticas.
       forums:
-        title: Foros
+        title: Foros (Legado)
         description: Preguntas y discusiones para aquellos que prefieren una interfaz
           del estilo cartelera de anuncios.
+      community:
+        url: https://community.openstreetmap.org/
+        title: Foro de la Comunidad
+        description: Un lugar compartido para conversaciones sobre OpenStreetMap.
       irc:
         title: IRC
         description: Chat interactivo en muchos idiomas diferentes y sobre muchos
index 6ac3607a4fb8a5e365fd7bbaf843a97b2c66b9cd..06645d7fc36e2b74e7d39e39a3d8deb506d4716f 100644 (file)
@@ -425,7 +425,7 @@ et:
       reopened_by_html: Taasaktiveerinud %{user} <abbr title='%{exact_time}'>%{when}</abbr>
       reopened_by_anonymous_html: Taasaktiveerinud anonüümne kasutaja <abbr title='%{exact_time}'>%{when}</abbr>
       hidden_by_html: Peitnud %{user} <abbr title='%{exact_time}'>%{when}</abbr>
-      report: Teata sellest märkusest
+      report: sellest märkusest teada anda
     query:
       title: Info objektide kohta
       introduction: Klõpsa kaardil, et leida läheduses asuvad objektid.
@@ -703,7 +703,7 @@ et:
           university: Ülikoolihoone
           "yes": Hoone
         craft:
-          blacksmith: Sepana
+          blacksmith: Sepp
           brewery: Pruulikoda
           carpenter: Puusepp
           electrician: Elektrik
@@ -1498,28 +1498,28 @@ et:
           Meie dokumentatsioon kuulub Creative Commonsi
           litsentsi "<a href="https://creativecommons.org/licenses/by-sa/2.0/deed.et">Autorile viitamine + jagamine samadel tingimustel 2.0</a>" (CC BY-SA 2.0) alla.
         credit_title_html: OpenStreetMapile viitamine
-        credit_1_html: |-
-          Nõuame, et kasutad omistamiseks teksti &ldquo;&copy; OpenStreetMapi
-          kaastöölised&rdquo;.
+        credit_1_html: 'Seal, kus kasutad OpenStreetMapi andmeid, tuleb sul teha kaht
+          järgmist asja:'
         credit_2_1_html: |-
-          Samuti pead selgelt välja tooma, et andmed kuuluvad litsentsi Open
-          Database License alla ja kui kasutatakse kaardipaane, siis et kujutised
-          kuuluvad litsentsi CC BY-SA alla. Üks võimalus selleks on linkida
-          <a href="https://www.openstreetmap.org/copyright">siia autoriõiguse leheküljele</a>.
-          Teine võimalus ja samas ka nõue, kui levitad OSM-i
-          andmete kujul, on nimetada litsentsid ja linkida otse neile. Esitusvormis,
-          kus lingid pole võimalikud (nt trükises), soovitame suunata lugejad
-          aadressidele openstreetmap.org (võimalik, et laiendades teksti
-          "OpenStreetMap" täisaadressiks), opendatacommons.org ja
-          kui vaja, siis ka aadressile creativecommons.org.
+          <ul>
+            <li>Viidata OpenStreetMapile, kuvades meie autoriõiguse teatist.</li>
+            <li>Näidata selgelt, et andmed on saadaval litsentsi Open Database License all.</li>
+          </ul>
         credit_3_1_html: |-
-          Standardse kujundusega kaardipaanid asukohas www.openstreetmap.org on
-          litsentsi Open Database License alla kuuluvatest andmetest loodud teos,
-          mille autor on OpenStreetMap Foundation. Kui kasutad neid kaardipaane,
-          siis tuleb need autorile omistada samamoodi nagu kaardiandmed.
+          Nõuded selle kohta, kuidas autoriõiguse teatist kuvada, sõltuvad sellest,
+          kuidas andmeid kasutad. Näiteks kohalduvad erinevad reeglid sõltuvalt
+          sellest, kas oled teinud sirvitava kaardi, trükikaardi või staatilise pildi.
+          Kõik üksikasjad nõuete kohta leiad <a href="https://wiki.osmfoundation.org/wiki/Licence/Attribution_Guidelines">omistamisjuhendist</a>.
         credit_4_html: |-
-          Sirvitaval elektroonilisel kaardil peaks viide olema näha kaardi nurgas.
-          Näiteks:
+          Näitamaks selgelt, et andmed on saadaval litsentsi Open
+          Database License all, võid linkida
+          <a href="https://www.openstreetmap.org/copyright">sellele autoriõiguse leheküljele</a>.
+          Teise võimalusena ning ka nõudena, kui levitad OSM-i andmete kujul,
+          saad nimetada litsentsi(d) ja linkida otse sellele. Meediumites,
+          kus see pole võimalik (nt trükiteostes), soovitame juhatada
+          lugejad aadressidele openstreetmap.org (võid näiteks asendada nime
+          "OpenStreetMap" selle täieliku aadressiga) ja opendatacommons.org.
+          Selles näites on viide autoritele kaardi nurgas.
         attribution_example:
           alt: Näide, kuidas tunnustada OpenStreetMapi veebilehel
           title: Omistamise näide
@@ -2342,7 +2342,7 @@ et:
       custom_dimensions: Vali suurus käsitsi
       format: 'Vorming:'
       scale: 'Mõõtkava:'
-      image_dimensions: Pildil näeb tavakaarti suurusega %{width} x %{height}
+      image_dimensions: Pildil näeb tavakaarti suurusega %{width} × %{height}
       download: Laadi alla
       short_url: Lühilink
       include_marker: Lisa marker
@@ -2410,6 +2410,9 @@ et:
         reactivate: Aktiveeri uuesti
         comment_and_resolve: Kommenteeri ja lahenda
         comment: Kommenteeri
+        report_link_html: Kui see märkus sisaldab tundlikku teavet, mis tuleks eemaldada,
+          saad %{link}. Kõigi märkusega seotud muude probleemide korral lahenda see
+          ise kommentaariga.
     edit_help: Nihuta kaarti ja suumi sisse asukohta mida soovid redigeerida ja seejärel
       kliki siia.
     directions:
index 98157a181337802c2d21504c7b06383fb61690ab..469517c9adefca185d1ae0f90b3a4c0e7cf69927 100644 (file)
@@ -31,6 +31,7 @@
 # Author: Mohammad ebz
 # Author: Mojtabakd
 # Author: Movyn
+# Author: Mskf1383
 # Author: Nbi
 # Author: Omidh
 # Author: Pirehelokan
@@ -52,36 +53,36 @@ fa:
       friendly: '%e %B %Y ساعت %H:%M'
   helpers:
     file:
-      prompt: Ø§Ù\86تخاب Ù\81اÛ\8cÙ\84
+      prompt: Ø§Ù\86تخاب Ù¾Ø±Ù\88Ù\86دÙ\87
     submit:
       diary_comment:
         create: ذخیره
       diary_entry:
         create: انتشار
-        update: Ø±Ù\88زآÙ\85دسازی
+        update: Ø¨Ù\87â\80\8cرÙ\88ز Ø±Ø³Ø§Ù\86ی
       issue_comment:
-        create: نظر دهید
+        create: افزودن نظر
       message:
         create: ارسال
       client_application:
-        create: ثبت نام
-        update: Ø±Ù\88زآÙ\85دسازی
+        create: نام‌نویسی
+        update: Ø¨Ù\87â\80\8cرÙ\88ز Ø±Ø³Ø§Ù\86ی
       doorkeeper_application:
-        create: ثبت‌نام
-        update: Ø±Ù\88زآÙ\85دسازی
+        create: نام‌نویسی
+        update: Ø¨Ù\87â\80\8cرÙ\88ز Ø±Ø³Ø§Ù\86ی
       redaction:
         create: ایجاد پاک‌سازی
-        update: ذخیره‌کردن پاک‌سازی
+        update: ذخیرهٔ پاک‌سازی
       trace:
         create: بارگذاری
-        update: ذخیره‌کردن تغییرات
+        update: ذخیرهٔ تغییرات
       user_block:
         create: ایجاد مسدودی
-        update: Ø±Ù\88زآÙ\85دسازی مسدودی
+        update: Ø¨Ù\87â\80\8cرÙ\88ز Ø±Ø³Ø§Ù\86ی مسدودی
   activerecord:
     errors:
       messages:
-        invalid_email_address: Ù\86شاÙ\86Û\8c Ø§Û\8cÙ\85Û\8cÙ\84 نامعتبر به نظر می‌رسد
+        invalid_email_address: Ù\86شاÙ\86Û\8c Ø±Ø§Û\8cاÙ\86اÙ\85Ù\87 نامعتبر به نظر می‌رسد
         email_address_not_routable: قابل مسیریابی نیست
     models:
       acl: فهرست کنترل دسترسی
@@ -122,7 +123,7 @@ fa:
     attributes:
       client_application:
         name: نام (الزامی)
-        url: نشانی اینترنتی برنامه اصلی (الزامی)
+        url: نشانی اینترنتی برنامهٔ اصلی (الزامی)
         callback_url: Callback URL
         support_url: URL پشتیبانی
         allow_read_prefs: ترجیحات کاربری او را بخواند
@@ -143,7 +144,7 @@ fa:
       doorkeeper/application:
         name: نام
         redirect_uri: URIهای تغییرمسیر
-        confidential: Ø§Ù¾Ù\84Û\8cÚ©Û\8cØ´Ù\86 محرمانه؟
+        confidential: Ø¨Ø±Ù\86اÙ\85Ù\87Ù\94 محرمانه؟
         scopes: اجازه‌ها
       friend:
         user: کاربر
@@ -151,13 +152,13 @@ fa:
       trace:
         user: کاربر
         visible: نمایان
-        name: Ù\86اÙ\85 Ù\81اÛ\8cÙ\84
+        name: Ù\86اÙ\85 Ù¾Ø±Ù\88Ù\86دÙ\87
         size: اندازه
         latitude: عرض جغرافیایی
         longitude: طول جغرافیایی
         public: عمومی
         description: توضیح
-        gpx_file: Ø¢Ù¾Ù\84Ù\88د Ù\81اÛ\8cÙ\84 GPX
+        gpx_file: Ø¨Ø§Ø±Ú¯Ø°Ø§Ø±Û\8c Ù¾Ø±Ù\88Ù\86دÙ\87Ù\94 GPX
         visibility: پدیداری
         tagstring: برچسب‌ها
       message:
@@ -184,7 +185,7 @@ fa:
         home_lon: طول جغرافیایی
         languages: زبان‌های مورد ترجیح
         preferred_editor: ویرایش‌گر مورد ترجیح
-        pass_crypt: Ø§Ø³Ù\85 Ø±Ù\85ز
+        pass_crypt: Ø±Ù\85ز Ø¹Ø¨Ù\88ر
         pass_crypt_confirmation: تأیید رمز عبور
     help:
       doorkeeper/application:
@@ -794,7 +795,7 @@ fa:
           village_hall: دهیاری
           waste_basket: سطل زباله
           waste_disposal: دفع زباله
-          waste_dump_site: سایت تخلیه زباله
+          waste_dump_site: پایگاه تخلیهٔ زباله
           watering_place: مکان آبیاری
           water_point: منطقه دارای آب
           "yes": تسهیلات
@@ -1130,6 +1131,7 @@ fa:
           stone: سنگ
           strait: تنگه
           tree: درخت
+          tree_row: ردیف درخت
           valley: دره
           volcano: آتشفشان
           water: اب
@@ -1260,7 +1262,7 @@ fa:
           greengrocer: سبزی فروش
           grocery: فروشگاه خواروبار
           hairdresser: سلمانی
-          hardware: Ù\81رÙ\88شگاÙ\87 Ø³Ø®Øª Ø§Ù\81زار
+          hardware: Ù\81رÙ\88شگاÙ\87 Ø§Ø¨Ø²Ø§Ø± Ø¢Ù\84ات
           herbalist: عطاری
           hifi: فروشگاه Hi-Fi
           houseware: فروشگاه لوازم خانگی
@@ -1314,7 +1316,7 @@ fa:
           artwork: آثار هنری
           attraction: جاذبه
           bed_and_breakfast: تخت‌خواب و صبحانه
-          cabin: کابین
+          cabin: اتاقک گردشگر
           camp_site: محل اردوگاه
           caravan_site: مکان خودرو کاروان
           chalet: کلبه ییلاقی
@@ -1441,7 +1443,7 @@ fa:
       title_html: گزارش %{link}
       missing_params: ایجاد گزارش تازه ممکن نیست
       disclaimer:
-        intro: 'پیش از اینکه گزارش خود را برای مدیران سایت ارسال کنید، مطمئن شوید
+        intro: 'پیش از اینکه گزارش خود را برای مدیران وبگاه ارسال کنید، مطمئن شوید
           که:'
         not_just_mistake: قطعاً این مسئله سهوی نبوده
         unable_to_fix: به‌تنهایی یا با کمک نقشه‌کش‌های همکارتان نمی‌توانید مشکل را
@@ -1487,10 +1489,10 @@ fa:
     sign_up_tooltip: ساخت حساب کاربری برای ویرایش
     edit: ویرایش
     history: تاریخچه
-    export: Ø¨Ø±Ù\88Ù\86â\80\8cبرد
+    export: Ø¨Ø±Ù\88Ù\86â\80\8cرÛ\8cزÛ\8c
     issues: مسئله‌ها
     data: داده
-    export_data: Ø¨Ø±Ù\88Ù\86â\80\8cبرد داده
+    export_data: Ø¨Ø±Ù\88Ù\86â\80\8cرÛ\8cزÛ\8c داده
     gps_traces: ردهای GPS
     gps_traces_tooltip: مدیریت ردهای GPS
     user_diaries: روزنوشت‌های کاربر
@@ -1562,14 +1564,14 @@ fa:
         %{befriendurl} ‬'
     gpx_description:
       description_with_tags_html: |-
-        Ø¨Ù\87â\80\8cÙ\86ظر Ù\85Û\8câ\80\8cرسد Ù\81اÛ\8cÙ\84 GPX شما:
+        Ø¨Ù\87â\80\8cÙ\86ظر Ù\85Û\8câ\80\8cرسد Ù¾Ø±Ù\88Ù\86دÙ\87Ù\94 GPX شما:
          %{trace_name}
         با این توصیف:
          %{trace_description}
         و برچسب‌های زیر:
         %{tags}
       description_with_no_tags_html: |-
-        Ø¨Ù\87â\80\8cÙ\86ظر Ù\85Û\8câ\80\8cرسد Ù\81اÛ\8cÙ\84 GPX شما:
+        Ø¨Ù\87â\80\8cÙ\86ظر Ù\85Û\8câ\80\8cرسد Ù¾Ø±Ù\88Ù\86دÙ\87Ù\94 GPX شما:
          %{trace_name}
         با این توصیف:
          %{trace_description}
@@ -1941,7 +1943,7 @@ fa:
         حق‌نشر و پروانه</a> را ببینید.'
       legal_title: قانونی
       legal_1_html: |-
-        این سایت و خدمات فراوان دیگری که به آن وابسته‌اند به‌طور رسمی و به‌نمایندگی از جامعه تحت رهبری <a href='https://osmfoundation.org/'>بنیاد OpenStreetMap</a> ‏(OSMF) دایر است. استفاده از همهٔ خدماتی که تحت رهبری OSMF قرار دارد منوط به پذیرش <a href="https://wiki.openstreetmap.org/wiki/Acceptable_Use_Policy">
+        این وبگاه و خدمات فراوان دیگری که به آن وابسته‌اند به‌طور رسمی و به نمایندگی از جامعه، تحت رهبری <a href='https://osmfoundation.org/'>بنیاد OpenStreetMap</a> ‏(OSMF) دایر است. استفاده از همهٔ خدماتی که تحت رهبری OSMF قرار دارد منوط به پذیرش <a href="https://wiki.openstreetmap.org/wiki/Acceptable_Use_Policy">
         سیاست استفادهٔ قابل‌قبول</a>، <a href="https://wiki.osmfoundation.org/wiki/Terms_of_Use">شرایط استفاده</a> و <a href="https://wiki.osmfoundation.org/wiki/Privacy_Policy">سیاست حریم خصوصی</a> ماست.
         <br>
         اگر در رابطه با پروانه، حق‌نشر یا سایر موارد قانونی سؤالی دارید لطفاً <a href='https://osmfoundation.org/Contact'>با OSMF تماس بگیرید</a>.
@@ -1981,19 +1983,13 @@ fa:
           مستندات ما تحت پروانهٔ <a href="http://creativecommons.org/licenses/by-sa/2.0/">Creative
           Commons Attribution-ShareAlike 2.0</a> (CC BY-SA 2.0) است.
         credit_title_html: چگونه از OpenStreetMap یاد کنیم
-        credit_1_html: |-
-          بایسته است که این‌گونه از ما یاد کنید:
-          &ldquo;&copy;مشارکت‌کنندگان OpenStreetMap&rdquo;.
-        credit_2_1_html: همچنین باید روشن کنید که داده‌ها تحت پروانهٔ پایگاه‌دادهٔ
-          باز (Open Database License) قرار دارند و اگر کاشی‌های نقشهٔ ما را استفاده
-          کردید باید به‌روشنی بیان کنید که نقشه‌نگاری‌ها تحت پروانهٔ CC BY-SA است.
-          این کار را با پیونددادن به <a href="https://www.openstreetmap.org/copyright">
-          این صفحهٔ حق‌نشر</a> انجام دهید. به‌عنوان جایگزین، می‌توانید با نام و پیوند
-          مستقیماً به پروانه(ها) ارجاع بدهید (اگر OSM را در قالب داده توزیع می‌کنید
-          انجام این کار ضروری است). در رسانه‌هایی که درج پیوند ممکن نیست ( مثلاً کارهای
-          چاپی)، توصیه می‌کنیم که خوانندگان خود را به  openstreetmap.org (شاید با
-          گسترش OpenStreetMap به این نشانی کامل)، به opendatacommons.org و در صورت
-          تناسب به creativecommons.org هدایت کنید.
+        credit_1_html: 'جایی که دارید از داده‌های اوپن‌استریت‌مپ استفاده می‌کنید،
+          لازم است دو کار زیر را انجام دهید:'
+        credit_2_1_html: |-
+          <ul>
+            <li>ارائهٔ اعبار به اوپن‌استریت‌مپ با نمایش اطلاعیهٔ کپی‌رایت‌مان.</li>
+            <li>مشخص کنید که داده‌ها تحت پروانهٔ آزاد پایگاه داده هستند.</li>
+          </ul>
         credit_3_1_html: کاشی‌های نقشه با «سبک استاندارد» در www.openstreetmap.org
           کار تولیدی (Produced Work) محسوب می‌شوند که بنیاد اوپن‌استریت‌مپ با استفاده
           از دادهٔ اوپن‌استریت‌مپ تحت پروانهٔ پایگاه‌دادهٔ باز (ODbL) ساخته‌است. هنگام
@@ -2101,10 +2097,10 @@ fa:
       no_iframe_support: مرورگر شما فریم‌های HTML را، که برای این ویژگی لازم است،
         پشتیبانی نمی‌کند.
     export:
-      title: Ø¨Ø±Ù\88Ù\86â\80\8cبرد
-      area_to_export: Ù\85حدÙ\88دÙ\87 Ø¨Ø±Ø§Û\8c Ø¨Ø±Ù\88Ù\86â\80\8cبرد
+      title: Ø¨Ø±Ù\88Ù\86â\80\8cرÛ\8cزÛ\8c
+      area_to_export: Ù\85حدÙ\88دÙ\87 Ø¨Ø±Ø§Û\8c Ø¨Ø±Ù\88Ù\86â\80\8cرÛ\8cزÛ\8c
       manually_select: به‌صورت دستی منطقهٔ دیگری انتخاب کنید
-      format_to_export: Ù\82اÙ\84ب Ø¨Ø±Ù\88Ù\86â\80\8cبرد
+      format_to_export: Ù\82اÙ\84ب Ø¨Ø±Ù\88Ù\86â\80\8cرÛ\8cزÛ\8c
       osm_xml_data: OpenStreetMap XML Data
       map_image: تصویر نقشه (لایهٔ استاندارد را نشان می‌دهد)
       embeddable_html: HTML توکار
@@ -2112,9 +2108,9 @@ fa:
       export_details_html: دادهٔ OpenStreetMap تحت <a href="https://opendatacommons.org/licenses/odbl/1.0/">پروانهٔ
         دادهٔ همگانی باز، پایگاه‌دادهٔ باز</a> (ODbL) قرار دارد.
       too_large:
-        advice: 'اگر Ø¨Ø±Ù\88Ù\86â\80\8cبرد بالا انجام نشد، لطفاً یکی از منابع زیر را استفاده کنید:'
-        body: Ø§Û\8cÙ\86 Ù\85حدÙ\88دÙ\87 Ø¨Ø±Ø§Û\8c Ø¨Ø±Ù\88Ù\86â\80\8cبرد در قالب OpenStreetMap XML خیلی بزرگ است. لطفاً
-          بزرگنمایی کنید یا منطقهٔ کوچکتری را انتخاب کنید، یا برای دریافت داده‌های
+        advice: 'اگر Ø¨Ø±Ù\88Ù\86â\80\8cرÛ\8cزÛ\8c بالا انجام نشد، لطفاً یکی از منابع زیر را استفاده کنید:'
+        body: Ø§Û\8cÙ\86 Ù\85حدÙ\88دÙ\87 Ø¨Ø±Ø§Û\8c Ø¨Ø±Ù\88Ù\86â\80\8cرÛ\8cزÛ\8c در قالب OpenStreetMap XML خیلی بزرگ است. لطفاً
+          بزرگ‌نمایی کنید یا منطقهٔ کوچک‌تری را انتخاب کنید، یا برای دریافت داده‌های
           انبوه یکی از منابع فهرست زیر را استفاده کنید.
         planet:
           title: سیارهٔ OSM
@@ -2144,7 +2140,7 @@ fa:
       longitude: 'طول:'
       output: خروجی
       paste_html: برای استفادهٔ توکار در وب‌سایت، HTML بچسبانید
-      export_button: Ø¨Ø±Ù\88Ù\86â\80\8cبرد
+      export_button: Ø¨Ø±Ù\88Ù\86â\80\8cرÛ\8cزÛ\8c
     fixthemap:
       title: گزارش مشکل / اصلاح نقشه
       how_to_help:
@@ -2180,7 +2176,7 @@ fa:
       help:
         url: https://help.openstreetmap.org/
         title: انجمن کمک
-        description: در سایت پرسش‌وپاسخ OSM سؤال بپرسید یا بین پاسخ‌ها بگردید.
+        description: در وبگاه پرسش‌وپاسخ OSM سؤال بپرسید یا بین پاسخ‌ها بگردید.
       mailing_lists:
         title: فهرست‌های پستی
         description: در فهرست‌های پستی متنوعِ موضوعی یا منطقه‌ای سوال بپرسید یا دربارهٔ
@@ -2354,9 +2350,9 @@ fa:
       help_url: https://wiki.openstreetmap.org/wiki/Fa:Upload
     create:
       upload_trace: بارگذاری رد جی‌پی‌اس
-      trace_uploaded: Ù\81اÛ\8cÙ\84 GPX Ø´Ù\85ا Ø¨Ø§Ø±Ú¯Ø°Ø§Ø±Û\8c Ø´Ø¯Ù\87 Ù\88 Ø¯Ø± Ø§Ù\86تظار Ø¯Ø±Ø¬ Ø¯Ø± Ù¾Ø§Û\8cگاÙ\87â\80\8cدادÙ\87 Ø§Ø³Øª.
-        این کار معمولاً کمتر از نیم ساعت طول می‌کشد. هنگامی که انجام شد ایمیلی برای
-        شما فرستاده می‌شود.
+      trace_uploaded: Ù¾Ø±Ù\88Ù\86دÙ\87Ù\94 GPX Ø´Ù\85ا Ø¨Ø§Ø±Ú¯Ø°Ø§Ø±Û\8c Ø´Ø¯Ù\87 Ù\88 Ø¯Ø± Ø§Ù\86تظار Ø¯Ø±Ø¬ Ø¯Ø± Ù¾Ø§Û\8cگاÙ\87 Ø¯Ø§Ø¯Ù\87
+        است. این کار معمولاً کمتر از نیم ساعت طول می‌کشد. هنگامی که انجام شد رایانامه‌ای
+        Ø¨Ø±Ø§Û\8c Ø´Ù\85ا Ù\81رستادÙ\87 Ù\85Û\8câ\80\8cØ´Ù\88د.
       upload_failed: شوربختانه بارگذاری GPX انجام نشد. به یکی از مدیران دربارهٔ این
         خطا اطلاع‌رسانی شد. لطفاً دوباره تلاش کنید
       traces_waiting:
@@ -2378,7 +2374,7 @@ fa:
       title: در حال دیدن رد %{name}
       heading: در حال دیدن رد %{name}
       pending: در انتظار
-      filename: 'Ù\86اÙ\85 Ù\81اÛ\8cÙ\84:'
+      filename: 'Ù\86اÙ\85 Ù¾Ø±Ù\88Ù\86دÙ\87:'
       download: بارگیری
       uploaded: 'تاریخ بارگذاری:'
       points: 'نقاط:'
@@ -2434,14 +2430,14 @@ fa:
       message: سامانهٔ بارگذاری GPX در حال حاضر در دسترس نیست
     offline:
       heading: ذخیره‌گاه GPX آفلاین است
-      message: Ø°Ø®Û\8cرÙ\87â\80\8cگاÙ\87 Ù\81اÛ\8cÙ\84 GPX و سامانهٔ بارگذاری هم‌اکنون در دسترس نیستند.
+      message: Ø°Ø®Û\8cرÙ\87â\80\8cگاÙ\87 Ù¾Ø±Ù\88Ù\86دÙ\87Ù\94 GPX و سامانهٔ بارگذاری هم‌اکنون در دسترس نیستند.
     georss:
       title: ‫ردهای جی‌پی‌اس OpenStreetMap‬
     description:
       description_with_count:
         one: ‫فایل GPX با %{count} نقطه از %{user}‬
         other: ' ‫فایل GPX با %{count} نقطه از %{user}‬'
-      description_without_count: Ù\81اÛ\8cÙ\84 GPX از %{user}
+      description_without_count: Ù¾Ø±Ù\88Ù\86دÙ\87Ù\94 GPX از %{user}
   application:
     permission_denied: شما اجازهٔ دسترسی به آن کنش را ندارید.
     require_cookies:
@@ -2495,7 +2491,7 @@ fa:
       write_diary: ایجاد روزنوشت، نظردهی و افزودن دوست
       write_api: اصلاح نقشه
       read_gpx: خواندن ردهای جی‌پی‌اس خصوصی
-      write_gpx: Ø¢Ù¾Ù\84Ù\88د ردهای جی‌پی‌اس
+      write_gpx: Ø¨Ø§Ø±Ú¯Ø°Ø§Ø±Û\8c ردهای جی‌پی‌اس
       write_notes: اصلاح یادداشت‌ها
       read_email: خواندن نشانی ایمیل کاربر
       skip_authorization: اپلیکیشن با تأیید خودکار
@@ -2908,7 +2904,7 @@ fa:
       tooltip_disabled: کلید نقشه برای این لایه در دسترس نیست
     map:
       zoom:
-        in: بزرگنمایی
+        in: بزرگنمایی
         out: کوچک‌نمایی
       locate:
         title: نمایش مکان من
@@ -2943,13 +2939,13 @@ fa:
         فرانسه </a>
     site:
       edit_tooltip: ویرایش نقشه
-      edit_disabled_tooltip: برای ویرایش نقشه بزرگنمایی کنید
+      edit_disabled_tooltip: برای ویرایش نقشه بزرگنمایی کنید
       createnote_tooltip: افزودن یادداشت به نقشه
-      createnote_disabled_tooltip: برای افزودن یادداشت به نقشه بزرگنمایی کنید
-      map_notes_zoom_in_tooltip: برای دیدن یادداشت‌های نقشه بزرگنمایی کنید
-      map_data_zoom_in_tooltip: برای دیدن دادهٔ نقشه بزرگنمایی کنید
+      createnote_disabled_tooltip: برای افزودن یادداشت به نقشه بزرگنمایی کنید
+      map_notes_zoom_in_tooltip: برای دیدن یادداشت‌های نقشه بزرگنمایی کنید
+      map_data_zoom_in_tooltip: برای دیدن دادهٔ نقشه بزرگنمایی کنید
       queryfeature_tooltip: پرس‌وجوی عارضه‌ها
-      queryfeature_disabled_tooltip: برای پرس‌وجوی عارضه‌ها بزرگنمایی کنید
+      queryfeature_disabled_tooltip: برای پرس‌وجوی عارضه‌ها بزرگنمایی کنید
     changesets:
       show:
         comment: نظر
@@ -2976,7 +2972,7 @@ fa:
         report_link_html: اگر این یادداشت حاوی اطلاعات حساسی است که باید حذف شود،
           می‌توانید %{link}. برای سایر مشکلات مربوط به این یادداشت لطفاً خودتان همراه
           با نوشتن نظر آن را حل کنید.
-    edit_help: نقشه را جابه‌جا کنید و روی مکانی که می‌خواهید ویرایش نمایید بزرگنمایی
+    edit_help: نقشه را جابه‌جا کنید و روی مکانی که می‌خواهید ویرایش نمایید بزرگنمایی
       کنید. سپس اینجا کلیک کنید.
     directions:
       ascend: فراز
index 4f848d6f0007281eccce4e915da85f102e534731..be1781fb72ee60e14ecf5ee057c909d7a0ad0df8 100644 (file)
@@ -69,6 +69,7 @@
 # Author: Rémi Bovard
 # Author: Seb35
 # Author: Sherbrooke
+# Author: StephaneP
 # Author: Syl
 # Author: The RedBurn
 # Author: Thibaut120094
@@ -131,7 +132,7 @@ fr:
       changeset_tag: Attribut du groupe de modifications
       country: Pays
       diary_comment: Commentaire du journal
-      diary_entry: Entrée du journal
+      diary_entry: Entrée de carnet
       friend: Ami(e)
       issue: Problème
       language: Langue
@@ -169,8 +170,8 @@ fr:
         support_url: URL de l’assistance
         allow_read_prefs: lire les préférences de l’utilisateur
         allow_write_prefs: modifier les préférences de l’utilisateur
-        allow_write_diary: créer des entrées d’agenda, des commentaires et se faire
-          des amis
+        allow_write_diary: créer des entrées de carnet, des commentaires et des liens
+          d’amitié
         allow_write_api: modifier la carte
         allow_read_gpx: lire ses traces GPS privées
         allow_write_gpx: téléverser des traces GPS
@@ -185,7 +186,7 @@ fr:
         language: Langue
       doorkeeper/application:
         name: Nom
-        redirect_uri: Rediriger les URIs
+        redirect_uri: Rediriger les URI
         confidential: Application confidentielle ?
         scopes: Autorisations
       friend:
@@ -356,7 +357,7 @@ fr:
         retain_notes: Vos notes sur la cartes et les commentaires de notes, s’il y
           en a, seront conservés mais masqués au public.
         retain_changeset_discussions: Vos discussions sur les groupes de modification,
-          s’il y en a, seront conservés.
+          s’il y en a, seront conservées.
         retain_email: Votre adresse de courriel sera conservée.
         confirm_delete: Êtes-vous sûr(e) ?
         cancel: Annuler
@@ -396,7 +397,7 @@ fr:
           contribution.
         review link text: Veuillez suivre ce lien à votre convenance pour examiner
           et accepter les nouvelles Conditions de contribution.
-        agreed_with_pd: Vous avez également déclaré que vous considériez vos modifications
+        agreed_with_pd: Vous avez également déclaré que vous considérez vos modifications
           comme relevant du domaine public.
         link: https://wiki.osmfoundation.org/wiki/Licence/Contributor_Terms
         link text: qu’est-ce que ceci ?
@@ -423,7 +424,7 @@ fr:
     in_changeset: Groupe de modifications
     anonymous: anonyme
     no_comment: (aucun commentaire)
-    part_of: Appartient à
+    part_of: Partie de
     part_of_relations:
       one: 1 relation
       other: '%{count} relations'
@@ -497,7 +498,7 @@ fr:
         changeset: groupe de modifications
         note: note
     timeout:
-      title: Erreur de dépassement de temps
+      title: Erreur de dépassement du délai d’attente
       sorry: Désolé, les données pour le type %{type} avec l’id %{id} prennent trop
         de temps à être récupérées.
       type:
@@ -549,14 +550,14 @@ fr:
       report: signaler cette note
       coordinates_html: '%{latitude}, %{longitude}'
     query:
-      title: Requête sur les objets
-      introduction: Cliquer sur la carte pour trouver les objets à proximité.
+      title: Interroger les objets
+      introduction: Cliquer sur la carte pour trouver des objets à proximité.
       nearby: Objets à proximité
       enclosing: Objets englobants
   changesets:
     changeset_paging_nav:
       showing_page: Page %{page}
-      next: Suivant â\80ºâ\80º
+      next: Suivant â\96¸
       previous: ◂ Précédent
     changeset:
       anonymous: Anonyme
@@ -579,7 +580,7 @@ fr:
       no_more: Aucun autre groupe de modifications trouvé.
       no_more_area: Aucun autre groupe de modifications dans cette zone.
       no_more_user: Aucun autre groupe de modifications par cet utilisateur.
-      load_more: Charger plus
+      load_more: Charger davantage
     timeout:
       sorry: Désolé, la liste des groupes de modifications que vous avez demandée
         met trop de temps pour être chargée.
@@ -634,7 +635,7 @@ fr:
       new: Nouvelle entrée du journal
       new_title: Écrire une nouvelle entrée dans mon journal utilisateur
       my_diary: Mon journal
-      no_entries: Aucune entrée de journal
+      no_entries: Aucune entrée de carnet
       recent_entries: Entrées récentes du journal
       older_entries: Entrées plus anciennes
       newer_entries: Entrées plus récentes
@@ -648,9 +649,9 @@ fr:
       login_to_leave_a_comment_html: '%{login_link} pour laisser un commentaire'
       login: Se connecter
     no_such_entry:
-      title: Aucune entrée du journal correspondante
+      title: Aucune entrée de carnet correspondante
       heading: 'Aucune entrée avec l’id : %{id}'
-      body: Désolé, il n’y a aucune entrée ou commentaire dans le journal avec l’id
+      body: Désolé, il n’y a aucune entrée ni commentaire de carnet avec l’identifiant
         %{id}. Veuillez vérifier votre orthographe ou la validité du lien que vous
         avez cliqué.
     diary_entry:
@@ -711,8 +712,8 @@ fr:
       success: '%{name} est désormais votre ami(e) !'
       failed: Désolé, échec lors de l’ajout de %{name} en tant qu’ami(e).
       already_a_friend: Vous et %{name} êtes déjà ami(e)s.
-      limit_exceeded: Vous avez déclaré récemment beaucoup d’utilisateurs comme amis.
-        Veuillez attendre un peu avant d’essayer de déclarer de nouveaux amis.
+      limit_exceeded: Vous avez récemment déclaré beaucoup d’utilisateurs comme ami(e)s.
+        Veuillez attendre un peu avant d’essayer d’en déclarer d’autres.
     remove_friend:
       heading: Supprimer %{user} en tant qu’ami(e) ?
       button: Supprimer en tant qu’ami(e)
@@ -890,7 +891,7 @@ fr:
           chapel: Chapelle
           church: Bâtiment d’église
           civic: Bâtiment municipal
-          college: Bâtiment de collège
+          college: Bâtiment d’enseignement supérieur
           commercial: Bâtiment de bureaux
           construction: Bâtiment en construction
           detached: Maison isolée
@@ -937,7 +938,7 @@ fr:
           blacksmith: Forgeron
           brewery: Brasserie
           carpenter: Charpentier
-          caterer: Réfectoire / cantine
+          caterer: Traiteur
           confectionery: Confiserie
           dressmaker: Couturier
           electrician: Électricien
@@ -978,7 +979,7 @@ fr:
           bus_stop: Arrêt de bus
           construction: Route en construction
           corridor: Couloir
-          crossing: Carrefour
+          crossing: Intersection / carrefour
           cycleway: Piste cyclable
           elevator: Ascenseur
           emergency_access_point: Point d’accès d’urgence
@@ -1086,8 +1087,8 @@ fr:
           railway: Voie ferrée
           recreation_ground: Aire de jeux
           religious: Terrain religieux
-          reservoir: Réservoir
-          reservoir_watershed: Bassin versant de réservoir
+          reservoir: Bassin de retenue
+          reservoir_watershed: Bassin versant d’une retenue
           residential: Zone résidentielle
           retail: Zone commerciale
           village_green: Pré communal
@@ -1164,7 +1165,7 @@ fr:
           pier: Jetée
           pipeline: Pipeline
           pumping_station: Station de pompage
-          reservoir_covered: Réservoir couvert
+          reservoir_covered: Bassin de retenue couvert
           silo: Silo
           snow_cannon: Canon à neige
           snow_fence: Barrière à neige
@@ -1233,7 +1234,7 @@ fr:
           stone: Pierre
           strait: Détroit
           tree: Arbre
-          tree_row: Ligne d’arbres
+          tree_row: Rangée d’arbres
           tundra: Toundra
           valley: Vallée
           volcano: Volcan
@@ -1517,7 +1518,7 @@ fr:
       not_updated: Non mis à jour
       search: Rechercher
       search_guidance: 'Problèmes de recherche :'
-      user_not_found: L’utilisateur n’existe pas
+      user_not_found: L’utilisateur ou l’utilisatrice n’existe pas
       issues_not_found: Aucun problème trouvé de ce type
       status: État
       reports: Rapports
@@ -1699,10 +1700,10 @@ fr:
       befriend_them: 'Vous pouvez également l’ajouter comme ami(e) ici : %{befriendurl}.'
       befriend_them_html: Vous pouvez aussi l’ajouter comme ami à l’adresse %{befriendurl}.
     gpx_description:
-      description_with_tags_html: 'Il semblerait que votre fichier GPX %{trace_name}
-        avec la description %{trace_description} et les balises suivantes : %{tags}'
-      description_with_no_tags_html: Il semblerait que votre fichier GPX %{trace_name}
-        avec la description %{trace_description} et sans balises
+      description_with_tags_html: 'Cela ressemble à votre fichier GPX « %{trace_name} »
+        avec la description « %{trace_description}«» et les balises suivantes : %{tags}'
+      description_with_no_tags_html: Cela ressemble à votre fichier GPX « %{trace_name} »
+        avec la description « %{trace_description} » et sans balises
     gpx_failure:
       hi: Bonjour %{to_user},
       failed_to_import: 'n’a pas pu être importé. Voici l’erreur :'
@@ -1782,18 +1783,18 @@ fr:
       hi: Bonjour %{to_user},
       greeting: Bonjour,
       commented:
-        subject_own: '[OpenStreetMap] %{commenter} a commenté un de vos ensembles
-          de changements'
-        subject_other: '[OpenStreetMap] %{commenter} a commenté un ensemble de changements
+        subject_own: '[OpenStreetMap] %{commenter} a commenté un de vos groupes de
+          modifications'
+        subject_other: '[OpenStreetMap] %{commenter} a commenté un groupe de modifications
           auquel vous vous intéressez'
         your_changeset: '%{commenter} a laissé un commentaire le %{time} sur un de
-          vos ensembles de changements'
+          vos groupes de modifications'
         your_changeset_html: '%{commenter} a laissé un commentaire à %{time} sur un
-          de vos ensembles de modifications'
+          de vos groupes de modifications'
         commented_changeset: '%{commenter} a laissé un commentaire le %{time} sur
-          un ensemble de changements créé par %{changeset_author} et que vous suivez'
+          un groupe de modifications que vous suivez et créé par %{changeset_author}'
         commented_changeset_html: '%{commenter} a laissé un commentaire à %{time}
-          sur un ensemble de modifications que vous suivez créé par %{changeset_author}.'
+          sur un groupe de modifications que vous suivez et créé par %{changeset_author}.'
         partial_changeset_with_comment: avec le commentaire « %{changeset_comment} »
         partial_changeset_with_comment_html: avec le commentaire « %{changeset_comment} »
         partial_changeset_without_comment: sans commentaire
@@ -1867,8 +1868,8 @@ fr:
       back_to_inbox: Revenir à la boîte de réception
     create:
       message_sent: Message envoyé
-      limit_exceeded: Vous avez envoyé trop de messages récemment, attendez un moment
-        avant d’essayer d’en envoyer de nouveaux.
+      limit_exceeded: Vous avez récemment envoyé beaucoup de messages. Veuillez attendre
+        un moment avant d’essayer d’en envoyer d’autres.
     no_such_message:
       title: Message introuvable
       heading: Message introuvable
@@ -2297,7 +2298,7 @@ fr:
         add_a_note:
           instructions_html: |-
             Cliquez simplement sur <a class="icon note"></a> ou cette même icône sur l’affichage de la carte.
-            Cela placera un marqueur sur la carte, que vous pourrez déplacer en le glissant. Ajoutez votre message, puis cliquez sur Enregistrer, et d’autres cartographes l’étudieront.
+            Cela placera un marqueur sur la carte, que vous pourrez déplacer en faisant glisser la carte. Ajoutez votre message, puis cliquez sur « Enregistrer » ; alors d’autres cartographes iront enquêter.
       other_concerns:
         title: Autres préoccupations
         explanation_html: Si vous êtes préoccupé par la manière dont nos données sont
@@ -2328,9 +2329,13 @@ fr:
         description: Poser une question ou discuter de questions intéressantes sur
           un large éventail de listes de diffusion thématiques ou régionales.
       forums:
-        title: Forums
+        title: Forums (hérités)
         description: Des questions et des discussions pour ceux qui préfèrent une
           interface sous forme de tableau d’affichage.
+      community:
+        url: https://community.openstreetmap.org/
+        title: Forum de la communauté
+        description: Un lieu partagé pour les conversations sur OpenStreetMap.
       irc:
         title: IRC
         description: Discussion interactive dans de nombreuses langues différentes
@@ -2436,7 +2441,7 @@ fr:
           tunnel: Bordure pointillée = tunnel
           bridge: Bord noir = pont
           private: Accès privé
-          destination: Réservé aux riverains
+          destination: Accès réservé aux riverains
           construction: Routes en construction
           bicycle_shop: Magasin de vélos
           bicycle_parking: Parking à vélos
@@ -2487,12 +2492,12 @@ fr:
       start_mapping: Commencer à cartographier
       add_a_note:
         title: Pas le temps d’effectuer les modifications ? Ajoutez une note !
-        paragraph_1_html: |-
-          Si vous voulez juste une petite correction et n’avez pas le temps de vous
-          enregistrer sur le projet et d’apprendre à effectuer les modifications, il est facile d’ajouter une note.
+        paragraph_1_html: Si vous voulez juste une petite correction et n’avez pas
+          le temps de vous inscrire sur le projet et d’apprendre à effectuer des modifications,
+          il est facile d’ajouter une note.
         paragraph_2_html: |-
           Allez simplement sur <a href="%{map_url}">la carte</a> et cliquez sur l’icône note :
-          <span class="icon note"></span>. Cela ajoutera un marqueur sur la carte, que vous pouvez déplacer en faisant glisser la carte. Ajoutez votre message puis cliquez sur Enregistrer, alors d’autres contributeurs iront enquêter.
+          <span class="icon note"></span>. Cela placera un marqueur sur la carte, que vous pourrez déplacer en faisant glisser la carte. Ajoutez votre message puis cliquez sur « Enregistrer » ; alors d’autres cartographes iront enquêter.
   traces:
     visibility:
       private: Privé (partagé anonymement, points non ordonnés)
@@ -2508,7 +2513,7 @@ fr:
       help: Aide
       help_url: https://wiki.openstreetmap.org/wiki/FR:Upload
     create:
-      upload_trace: Envoyer la trace GPS
+      upload_trace: Téléverser la trace GPS
       trace_uploaded: Votre fichier GPX a été téléversé et est en attente de son intégration
         dans la base de données. Ceci prend en général moins d’une demi-heure et un
         courriel vous sera envoyé lorsque ce sera terminé.
@@ -2523,12 +2528,12 @@ fr:
           afin de ne pas bloquer la file d’attente pour les autres utilisateurs.
     edit:
       cancel: Annuler
-      title: Modifier la trace %{name}
-      heading: Modifier la trace %{name}
+      title: Modification de la trace %{name}
+      heading: Modification de la trace %{name}
       visibility_help: qu’est-ce que cela signifie ?
       visibility_help_url: https://wiki.openstreetmap.org/wiki/FR:Visibilit%C3%A9_des_traces_GPS
     update:
-      updated: Traces mises à jour
+      updated: Trace mise à jour
     trace_optionals:
       tags: Mots-clés
     show:
@@ -2547,19 +2552,19 @@ fr:
       description: 'Description :'
       tags: 'Mots-clés :'
       none: Aucun
-      edit_trace: Modifier cette piste
-      delete_trace: Supprimer cette piste
+      edit_trace: Modifier cette trace
+      delete_trace: Supprimer cette trace
       trace_not_found: Trace non trouvée !
       visibility: 'Visibilité :'
       confirm_delete: Supprimer cette trace ?
     trace_paging_nav:
       showing_page: Page %{page}
-      older: Anciennes traces
-      newer: Nouvelles traces
+      older: Traces plus anciennes
+      newer: Traces plus récentes
     trace:
       pending: EN ATTENTE
       count_points:
-        one: 1 point
+        one: '%{count} point'
         other: '%{count} points'
       more: plus
       trace_details: Voir les détails de la trace
@@ -2575,19 +2580,19 @@ fr:
       public_traces: Traces GPS publiques
       my_gps_traces: Mes traces GPS
       public_traces_from: Traces GPS publiques de %{user}
-      description: Parcourir les traces GPS récemment téléversées
+      description: Parcourir les téléversements récents de traces GPS
       tagged_with: balisée avec %{tags}
       empty_html: Il n’y a encore rien ici. <a href="%{upload_link}">Téléverser une
         nouvelle trace</a> ou pour en savoir plus sur le traçage GPS, consultez la
         <a href="https://wiki.openstreetmap.org/wiki/FR:Beginners_Guide_1.2">page
         wiki</a>.
-      upload_trace: Envoyer une trace
+      upload_trace: Téléverser une trace
       all_traces: Toutes les traces
       my_traces: Mes traces
       traces_from: Traces publiques de %{user}
-      remove_tag_filter: Supprimer le filtre de balise
+      remove_tag_filter: Retirer le filtre de balises
     destroy:
-      scheduled_for_deletion: Trace prévue pour la suppression
+      scheduled_for_deletion: Trace planifiée pour suppression
     make_public:
       made_public: Trace rendue publique
     offline_warning:
@@ -2633,11 +2638,11 @@ fr:
       allow_to: 'Autoriser l’application cliente à :'
       allow_read_prefs: lire vos préférences utilisateur ;
       allow_write_prefs: modifier vos préférences utilisateur ;
-      allow_write_diary: créer pour vous des entrées dans votre carnet, faire des
-        commentaires et ajouter des amis ;
+      allow_write_diary: créer des entrées dans votre carnet, faire des commentaires
+        et ajouter des ami(e)s ;
       allow_write_api: modifier la carte.
       allow_read_gpx: lire vos traces GPS privées ;
-      allow_write_gpx: envoyer des traces GPS en votre nom ;
+      allow_write_gpx: téléverser des traces GPS.
       allow_write_notes: modifier des notes.
       grant_access: Accorder l’accès
     authorize_success:
@@ -2666,7 +2671,7 @@ fr:
       skip_authorization: Demande d’approbation automatique
   oauth_clients:
     new:
-      title: Enregistrer une nouvelle application
+      title: Inscrire une nouvelle application
     edit:
       title: Modifier votre application
     show:
@@ -2690,12 +2695,11 @@ fr:
       issued_at: Émis le
       revoke: Révoquer !
       my_apps: Mes applications clientes
-      no_apps_html: Avez-vous une application qui aimerait s’enregistrer pour utiliser
-        le standard %{oauth} ? Vous devez enregistrer votre application web avant
-        qu’elle ne puisse faire des requêtes OAuth sur ce service.
+      no_apps_html: Avez-vous une application que vous aimeriez inscrire pour son
+        utilisation avec nous via le standard %{oauth} ? Vous devez inscrire votre
+        application web avant qu’elle puisse faire des requêtes OAuth sur ce service.
       oauth: OAuth
-      registered_apps: 'Vous avez les applications clientes suivantes enregistrées
-        :'
+      registered_apps: 'Vous avez inscrit les applications clientes suivantes :'
       register_new: Enregistrez votre application
     form:
       requests: 'Demander les permissions suivantes à l’utilisateur :'
@@ -2710,11 +2714,11 @@ fr:
   oauth2_applications:
     index:
       title: Mes applications clientes
-      no_applications_html: Avez-vous une application que vous aimeriez enregistrer
-        pour utiliser avec nous via le standard %{oauth2} ? Vous devez enregistrer
+      no_applications_html: Avez-vous une application que vous aimeriez inscrire pour
+        son utilisation avec nous via le standard %{oauth2} ? Vous devez inscrire
         votre application avant qu’elle puisse faire des requêtes OAuth à ce service.
       oauth_2: OAuth 2
-      new: Enregistrer une nouvelle application
+      new: Inscrire une nouvelle application
       name: Nom
       permissions: Autorisations
     application:
@@ -2722,19 +2726,19 @@ fr:
       delete: Supprimer
       confirm_delete: Supprimer cette application ?
     new:
-      title: Enregistrer une nouvelle application
+      title: Inscrire une nouvelle application
     edit:
       title: Modifier votre application
     show:
       edit: Modifier
       delete: Supprimer
       confirm_delete: Supprimer cette application ?
-      client_id: ID client
+      client_id: Identifiant du client
       client_secret: Secret du client
-      client_secret_warning: Assurez-vous de sauvegarder ce secret — il ne sera plus
+      client_secret_warning: Assurez-vous d’enregistrer ce secret — il ne sera plus
         accessible
       permissions: Autorisations
-      redirect_uris: Rediriger les URIs
+      redirect_uris: Rediriger les URI
     not_found:
       sorry: Désolé, cette application n’a pas pu être trouvée.
   oauth2_authorizations:
@@ -2760,15 +2764,15 @@ fr:
   users:
     new:
       title: S’inscrire
-      no_auto_account_create: Malheureusement, nous sommes actuellement dans l’impossibilité
-        de vous créer un compte automatiquement.
+      no_auto_account_create: Malheureusement, nous ne sommes actuellement pas en
+        mesure de vous créer un compte automatiquement.
       contact_support_html: Veuillez contacter l’<a href="%{support}">assistance</a>
         pour qu’elle vous crée un compte — nous essaierons de traiter votre demande
         le plus rapidement possible.
       about:
         header: Libre et modifiable
         html: |-
-          <p>À la différence des autres cartes, OpenStreetMap est entièrement créé par des gens comme vous, et chacun est libre de le modifier, le mettre à jour, le télécharger et l’utiliser.</p>
+          <p>À la différence des autres cartes, OpenStreetMap est entièrement créé par des gens comme vous, et chacun est libre de le corriger, le mettre à jour, le télécharger et l’utiliser.</p>
           <p>Inscrivez-vous pour commencer à participer. Nous vous enverrons un courriel pour confirmer votre compte.</p>
       email address: 'Adresse de courriel :'
       confirm email address: 'Confirmez l’adresse de courriel :'
@@ -2788,8 +2792,8 @@ fr:
       heading: Conditions
       heading_ct: Conditions de contribution
       read and accept with tou: Veuillez lire l’accord du contributeur et les conditions
-        d’utilisation ; une fois ceci fait cochez les deux cases, puis appuyer sur
-        le bouton Continuer.
+        d’utilisation ; une fois cela fait, cochez les deux cases et appuyez alors
+        sur le bouton « Continuer ».
       contributor_terms_explain: Cet accord impose les conditions de vos contributions
         existantes et à venir.
       read_ct: J’ai lu et j’accepte les Conditions de contribution ci-dessus.
@@ -2821,13 +2825,13 @@ fr:
       terms_declined_url: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
     no_such_user:
       title: Utilisateur inexistant
-      heading: L’utilisateur %{user} n’existe pas
-      body: Désolé, il n’y a aucun utilisateur avec le nom %{user}. Veuillez vérifier
-        l’orthographe, ou bien le lien que vous avez cliqué n’est pas correct.
+      heading: L’utilisateur ou l’utilisatrice « %{user} » n’existe pas
+      body: Désolé, il n’y a aucun(e) utilisateur ou utilisatrice avec le nom « %{user} ».
+        Veuillez vérifier votre orthographe ou la validité du lien que vous avez cliqué.
       deleted: supprimé
     show:
       my diary: Mon journal
-      new diary entry: nouvelle entrée du journal
+      new diary entry: nouvelle entrée du carnet
       my edits: Mes modifications
       my traces: Mes traces
       my notes: Mes notes
@@ -2958,7 +2962,7 @@ fr:
       title: Création d’un blocage sur « %{name} »
       heading_html: Création d’un blocage sur « %{name} »
       period: Pendant combien de temps, à partir de maintenant, l’utilisateur ou l’utilisatrice
-        doit être bloqué(e) sur l’API ?
+        doit être bloqué(e) sur l’API.
       tried_contacting: J’ai contacté l’utilisateur ou l’utilisatrice et lui ai demandé
         d’arrêter.
       tried_waiting: J’ai donné un temps raisonnable à l’utilisateur ou l’utilisatrice
@@ -2967,8 +2971,8 @@ fr:
     edit:
       title: Modification d’un blocage sur « %{name} »
       heading_html: Modification d’un blocage sur « %{name} »
-      period: Combien de temps, à partir de maintenant, l’utilisateur ou l’utilisatrice
-        doit être bloqué(e) sur l’API ?
+      period: Pendant combien de temps, à partir de maintenant, l’utilisateur ou l’utilisatrice
+        doit être bloqué(e) sur l’API.
       show: Afficher ce blocage
       back: Voir tous les blocages
     filter:
@@ -2993,7 +2997,7 @@ fr:
       heading_html: Annulation d’un blocage sur « %{block_on} » par « %{block_by} »
       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 ?
+      confirm: Êtes-vous sûr(e) de vouloir annuler ce blocage ?
       revoke: Révoquer !
       flash: Ce blocage a été annulé.
     helper:
@@ -3052,7 +3056,7 @@ fr:
       revoker_name: Révoqué par
       showing_page: Page %{page}
       next: Suivant »
-      previous: « Précédent
+      previous:  Précédent
   notes:
     index:
       title: Notes soumises ou commentées par « %{user} »
@@ -3100,7 +3104,7 @@ fr:
         title: Afficher mon emplacement
         metersPopup:
           one: Vous êtes à moins d’un mètre de ce point
-          other: Vous êtes à %{count} mètres de ce point
+          other: Vous êtes à moins de %{count} mètres de ce point
         feetPopup:
           one: Vous êtes à moins d’un pied de ce point
           other: Vous êtes à moins de %{count} pieds de ce point
@@ -3119,7 +3123,7 @@ fr:
         overlays: Autoriser les superpositions pour réparer la carte
         title: Couches
       copyright: © <a href="%{copyright_url}">Contributeurs d’OpenStreetMap</a>
-      donate_link_text: <a class='donate-attr' href='%{donate_url}'>Faire un don</a>
+      donate_link_text: <a class="donate-attr" href="%{donate_url}">Faire un don</a>
       terms: <a href="%{terms_url}" target="_blank">Conditions du site web et de l’API</a>
       cyclosm: Style de briques par <a href="%{cyclosm_url}" target="_blank">CyclOSM</a>
         hébergé par <a href="%{osmfrance_url}" target="_blank">OpenStreetMap France</a>
@@ -3136,7 +3140,7 @@ fr:
       createnote_disabled_tooltip: Zoomer pour ajouter une note sur la carte
       map_notes_zoom_in_tooltip: Zoomez pour lire les notes sur la carte
       map_data_zoom_in_tooltip: Zoomez pour lire voir les données sur la carte
-      queryfeature_tooltip: Requête sur les objets
+      queryfeature_tooltip: Interroger les objets
       queryfeature_disabled_tooltip: Zoomer plus pour rechercher des objets
     changesets:
       show:
@@ -3171,11 +3175,11 @@ fr:
       ascend: Croissant
       engines:
         fossgis_osrm_bike: À vélo (OSRM)
-        fossgis_osrm_car: En voiture (<i>OSRM</i>)
-        fossgis_osrm_foot: À pied (OSRM)
+        fossgis_osrm_car: En voiture (OSRM)
+        fossgis_osrm_foot: À pied (<em>OSRM<em>)
         graphhopper_bicycle: À vélo (GraphHopper)
-        graphhopper_car: En voiture (GraphHopper)
-        graphhopper_foot: À pied (<i>GraphHopper</i>)
+        graphhopper_car: En voiture (<em>GraphHopper<em>)
+        graphhopper_foot: À pied (<em>GraphHopper</em>)
       descend: Décroissant
       directions: Itinéraire
       distance: Distance
@@ -3248,7 +3252,7 @@ fr:
         courtesy: Itinéraire fourni par %{link}
         exit_counts:
           first: 1er
-          second: 2nd
+          second: 2e
           third: 3e
           fourth: 4e
           fifth: 5e
index 115743cc3a633a7de01e37d1f5ce3ba1b229975b..5a9077b35047946c579ec2b9135a73e77bb3b2a0 100644 (file)
@@ -2223,9 +2223,13 @@ fy:
         description: Stel in fraach of bepraat nijsgjirrige saken op útienrinnende
           tematyske as regionale mailinglisten.
       forums:
-        title: Foarums
+        title: Foarums (âld)
         description: Fragen en oerlis foar dejingen dy't leaver yn pripboerd-styl
           wurkje.
+      community:
+        url: https://community.openstreetmap.org/
+        title: Mienskipsfoarum
+        description: In mienskiplik plak foar petear oer OpenStreetMap.
       irc:
         title: IRC
         description: Ynteraktyf tsjetten yn ferskate talen en op alderlei mêd.
index 1e9ae49246244352fb7d73f26bd9b59496d8b080..b6f84e14ecd6c6417d36e96822ca016af62d05e1 100644 (file)
@@ -33,6 +33,7 @@
 # Author: Zstadler
 # Author: יאיר מן
 # Author: ישראל קלר
+# Author: מקף
 # Author: נדב ס
 # Author: תומר ט
 ---
@@ -1523,6 +1524,7 @@ he:
   issue_comments:
     create:
       comment_created: המודעה שלך נוצרה בהצלחה
+      issue_reassigned: ההערה שלך נוצרה והבעיה הוקצתה מחדש
   reports:
     new:
       title_html: דיווח על %{link}
@@ -2232,8 +2234,10 @@ he:
         description: לשאול שאלה או לדון בדברים מעניינים ברשימות תפוצה נושאים ואזוריות
           רבות.
       forums:
-        title: פורומים
+        title: פורומים (היסטוריים)
         description: שאלות ודיונים לאנשים שמעדיפים ממשק בסגנון פורום.
+      community:
+        title: פורום קהילתי
       irc:
         title: IRC
         description: שיחה אינטראקטיבית בשפות שונות רבות ובנושאים רבים.
index 1ca1feb5c415222f812846fffffb2b1d1c158064..71faa5bd2c0b16c4b2bafc53f531f588b303633f 100644 (file)
@@ -979,7 +979,11 @@ hi:
           title: समुदाय से जुड़ें
     help:
       forums:
-        title: मंच
+        title: फ़ोरम (लिगेसी)
+      community:
+        url: https://community.openstreetmap.org/
+        title: सामुदायिक फ़ोरम
+        description: OpenStreetMap के बारे में चर्चा के लिए सार्वजनिक स्थान।
       wiki:
         url: http://wiki.openstreetmap.org/
         title: ओपनस्ट्रीटमैप विकि
index 0728d1e8497b67775b43beef0f2b44f2e4ce7ebd..ec0b8278074b9e8b22acf36fff1bbcdae29f12c1 100644 (file)
@@ -2223,9 +2223,13 @@ ia:
         description: Pone un question o discute cosas interessante sur un varietate
           de listas de diffusion thematic o regional.
       forums:
-        title: Foros
+        title: Foros (ancian)
         description: Questiones e discussiones pro qui prefere un interfacie in stilo
           de tabuliero de bulletines.
+      community:
+        url: https://community.openstreetmap.org/
+        title: Foro del communitate
+        description: Un sito commun de conversation sur OpenStreetMap.
       irc:
         title: IRC
         description: Conversation interactive in multe linguas differente e sur multe
index 46dd65ae21bfac2a4b50a9b6140ff73174e190be..853c113fc23de1bca0d7ca2dc9a425b325967116 100644 (file)
@@ -56,6 +56,7 @@
 # Author: Sorcrosc
 # Author: Toa
 # Author: Tuxfuzz
+# Author: Vivbod
 # Author: Ximo17
 # Author: ZioNicco
 ---
@@ -1531,6 +1532,7 @@ it:
   issue_comments:
     create:
       comment_created: Il tuo commento è stato creato con successo
+      issue_reassigned: Il tuo commento è stato creato e il problema è stato riassegnato
   reports:
     new:
       title_html: Segnala %{link}
@@ -2278,9 +2280,12 @@ it:
         description: Poni la tua domanda o discuti questioni di interesse su una vasta
           gamma di mailing list tematiche o regionali.
       forums:
-        title: Forum
+        title: Forum (vecchio)
         description: Domande e discussioni per coloro che preferiscono un'interfaccia
           in stile bacheca (BBS).
+      community:
+        url: https://community.openstreetmap.org/
+        description: Un luogo condiviso per le conversazioni su OpenStreetMap.
       irc:
         title: IRC
         description: Chat interattiva in molte lingue diverse e su molti argomenti.
index 900fb3328e5b2f29fdaf28c60051077c9a80fd03..7c3568b3c39e1e853645a23e771e75ec7b99251f 100644 (file)
@@ -134,6 +134,7 @@ kk-cyrl:
         link text: бұл не?
       save changes button: Өзгерістерді сақтау
   browse:
+    closed: Жабық
     created_html: <abbr title='%{title}'>%{time}</abbr> жасалған
     closed_html: <abbr title='%{title}'>%{time}</abbr> жабылған
     created_by_html: <abbr title='%{title}'>%{time}</abbr> %{user} жасаған
@@ -146,10 +147,16 @@ kk-cyrl:
       comment: Пікірлер (%{count})
       osmchangexml: osmChange XML
       discussion: Талқылау
+    relation_member:
+      type:
+        node: Нүкте
     not_found:
       title: Табылмады
       type:
         node: нүкте
+    redacted:
+      type:
+        node: нүкте
     start_rjs:
       loading: Жүктелуде…
     tag_details:
index 72b9426afc3e8c0f5a8a85f680967577fe6233ed..164b88fb915621496c8999c1800557a2c356a519 100644 (file)
@@ -1996,8 +1996,10 @@ ko:
         title: 메일링 리스트
         description: 국소 또는 지역의 메일링 리스트의 넓은 범위에서 관심사에 대해 질문하거나 토론을 합니다.
       forums:
-        title: 포럼
+        title: 포럼 (레거시)
         description: 게시판 스타일 인터페이스를 선호하는 것에 대한 질문과 토론입니다.
+      community:
+        url: https://community.openstreetmap.org/
       irc:
         title: IRC
         description: 다양한 주제에서 많은 다른 언어로 된 대화형 채트입니다.
index 350c0c22d8f07eef2127dbae33ded85c361ccf5c..dc16dfd24231bbf8dd7b1a85d26201f4df3ad86d 100644 (file)
@@ -2015,7 +2015,7 @@ lb:
       mailing_lists:
         title: Mailing-Lëschten
       forums:
-        title: Forumen
+        title: Forumen (vereelzt)
       irc:
         title: IRC
       welcomemat:
index 996760fe35ccf4cd0efbb468c4d0a29c3342be3b..36efe0108261ad3f19bff4aae25369ad0cb88973 100644 (file)
@@ -2217,8 +2217,12 @@ mk:
         description: Поставете прашање или разговарајте за интересни прашања на широк
           опсег на тематски и регионални поштенски списоци.
       forums:
-        title: Форуми
+        title: Форуми (наследени)
         description: Прашања и разговори за оние кои претпочитаат да општат со објави.
+      community:
+        url: https://community.openstreetmap.org/
+        title: Форум на заедницата
+        description: Заедничко место за разговори за OpenStreetMap.
       irc:
         title: IRC
         description: Разговор во живо на најразлични јазици и на многу теми.
index 7bc393f0283a2b675d4d1d7ef472b6f2c9289a0b..f2aef860582cefd87081509de659ec581a7dfd2c 100644 (file)
@@ -8,6 +8,7 @@
 # Author: Dittaeva
 # Author: EvenT
 # Author: Event
+# Author: Gabriel Kielland
 # Author: Gustavf
 # Author: Haakon K
 # Author: Hansfn
@@ -1955,6 +1956,8 @@ nb:
         title: Forumer
         description: Spørsmål og diskusjoner for de som foretrekker et oppslagstavlelignende
           grensesnitt.
+      community:
+        url: https://community.openstreetmap.org/
       irc:
         title: IRC
         description: Interaktiv sludrekanal på flere ulike språk som dekker mange
index 18c66154859dc08136fe72641d3ba28bfa93f377..78d7611032ff7487762a96cae658850cf810a5b1 100644 (file)
@@ -11,6 +11,7 @@
 # Author: Njsubedi
 # Author: RajeshPandey
 # Author: पर्वत सुबेदी
+# Author: बडा काजी
 # Author: राम प्रसाद जोशी
 # Author: सरोज कुमार ढकाल
 # Author: हिमाल सुबेदी
@@ -375,7 +376,7 @@ ne:
         other: '%{count} टिप्पणीहरू'
       edit_link: यो प्रविष्टी सम्पादन गर्ने
       hide_link: यो प्रविष्टी लुकाउने
-      confirm: à¤¨à¤¿à¤¶à¥\8dà¤\9aित à¤\97रà¥\8dनà¥\87
+      confirm: à¤¨à¤¿à¤¶à¥\8dà¤\9aित à¤\97रà¥\8dनà¥\81हà¥\8bसà¥\8d
       report: यो प्रविष्टीको उजुरी गर्ने
     diary_comment:
       comment_from_html: '%{link_user}द्वारा %{comment_created_at}मा गरिएको टिप्पणी'
@@ -863,7 +864,7 @@ ne:
       greeting: नमस्ते,
   confirmations:
     confirm:
-      button: à¤¨à¤¿à¤¶à¥\8dà¤\9aित à¤\97रà¥\8dनà¥\87
+      button: à¤¨à¤¿à¤¶à¥\8dà¤\9aित à¤\97रà¥\8dनà¥\81हà¥\8bसà¥\8d
     confirm_email:
       heading: इमेल परिवर्तन भएको निश्चित गर्नुहोस्
       press confirm button: इमेल निश्चित गर्नको लागि निश्चितमा क्लिक गर्नुहोस् ।
@@ -1175,7 +1176,7 @@ ne:
       role:
         administrator: यी प्रयोगकर्ता प्रबन्धक हुनुहुन्छ
       comments: टिप्पणी
-      confirm: à¤¨à¤¿à¤¶à¥\8dà¤\9aित à¤\97रà¥\8dनà¥\87
+      confirm: à¤¨à¤¿à¤¶à¥\8dà¤\9aित à¤\97रà¥\8dनà¥\81हà¥\8bसà¥\8d
     go_public:
       flash success: तपाईंका सबै सम्पादनहरू सार्वाजनिक छन् , तपाईं अब सम्पादन लायक
         हुनु भयो ।
@@ -1192,15 +1193,15 @@ ne:
       heading: भूमिका प्रदान निश्चित गर्ने
       are_you_sure: भूमिका `%{role}' प्रयोगकर्ता `%{name}'लाई प्रदान गर्न निश्चित
         हुनुहुन्छ?
-      confirm: à¤¨à¤¿à¤¶à¥\8dà¤\9aित à¤\97रà¥\8dनà¥\87
+      confirm: à¤¨à¤¿à¤¶à¥\8dà¤\9aित à¤\97रà¥\8dनà¥\81हà¥\8bसà¥\8d
       fail: भूमिका `%{role}' प्रयोगकर्ता  `%{name}'लाई प्रदान गर्न सकिएन । कृपया प्रयोगकर्ता
         र भूमिका दुबै मान्य छन् भनि जाँच गर्नुहोस् ।
     revoke:
       title: भूमिका फिर्ता निश्चित गर्ने
       heading: भूमिका फिर्ता निश्चित गर्ने
-      are_you_sure: à¤¤à¤ªà¤¾à¤\88à¤\81  भूमिका `%{role}' , `%{name} प्रोगकर्ताबाट फिर्ता लिने कुरामा
+      are_you_sure: à¤¤à¤ªà¤¾à¤\88à¤\82 भूमिका `%{role}' , `%{name} प्रोगकर्ताबाट फिर्ता लिने कुरामा
         निश्चित हुनुहुन्छ'?
-      confirm: à¤¨à¤¿à¤¶à¥\8dà¤\9aित à¤\97रà¥\8dनà¥\87
+      confirm: à¤¨à¤¿à¤¶à¥\8dà¤\9aित à¤\97रà¥\8dनà¥\81हà¥\8bसà¥\8d
       fail: भूमिका `%{role}' ,`%{name}'बाट फिर्ता लिन सकिएन । प्रोगकर्ता नाम र भूमिका
         दुबै मान्य छन् भन्ने खुलाउनु होस् ।
   user_blocks:
index 21b1a6588784fbc90d57c9e67bc0b167bb11ad71..c3b29ff066e61451b70c8dc0c3e64176cad33bf9 100644 (file)
@@ -2291,9 +2291,13 @@ nl:
         description: Stel een vraag of bespreek interessante zaken op een hele reeks
           onderwerpsgebonden of regionale mailinglijsten.
       forums:
-        title: Forums
+        title: Forums (verouderd)
         description: Vragen en overleg voor als u liever met een interface in bulletin
           boardstijl werkt.
+      community:
+        url: https://community.openstreetmap.org/
+        title: Gemeenschapsforum
+        description: Een gedeelde plek voor conversaties over OpenStreetMap.
       irc:
         title: IRC
         description: Interactieve chat in vele verschillende talen en over tal van
index 05029d42191bbce27fd780584b046308d9b785c2..85c6a2b903e7b009151264e659593a950d17f0db 100644 (file)
@@ -52,12 +52,12 @@ pa:
       notifier: ਨੋਟੀਫਾਇਰ
       old_node: ਪੁਰਾਣੀ ਨੋਡ
       old_node_tag: ਪੁਰਾਣਾ ਨੋਡ ਟੈਗ
-      old_relation: à¨ªà©\81ਰਾਣਾ à¨¨à¨¾à¨¤à¨¾
+      old_relation: à¨ªà©\81ਰਾਣਾ à¨¸à¨¬à©°à¨§
       old_relation_member: ਪੁਰਾਣਾ ਸਬੰਧ ਮੈਂਬਰ
       old_relation_tag: ਪੁਰਾਣਾ ਸਬੰਧ ਟੈਗ
-      old_way: à¨ªà©\81ਰਾਣਾ à¨¢à©°à¨\97
-      old_way_node: à¨ªà©\81ਰਾਣਾ à¨¢à©°à¨\97 ਨੋਡ
-      old_way_tag: à¨ªà©\81ਰਾਣਾ à¨¢à©°à¨\97 ਟੈਗ
+      old_way: à¨ªà©\81ਰਾਣਾ à¨°à¨¾à¨¹
+      old_way_node: à¨ªà©\81ਰਾਣਾ à¨°à¨¾à¨¹ ਨੋਡ
+      old_way_tag: à¨ªà©\81ਰਾਣਾ à¨°à¨¾à¨¹ ਟੈਗ
       relation: ਸਬੰਧ
       relation_member: ਸਬੰਧ ਮੈਂਬਰ
       relation_tag: ਸਬੰਧ ਟੈਗ
@@ -80,7 +80,7 @@ pa:
       diary_entry:
         user: ਵਰਤੋਂਕਾਰ
         title: ਵਿਸ਼ਾ
-        latitude: à¨²à©°à¨¬à¨\95ਾਰ
+        latitude: à¨\85à¨\95ਸ਼ਾà¨\82ਸ਼
         longitude: ਲੰਬਕਾਰ
         language: ਬੋਲੀ
       doorkeeper/application:
@@ -93,7 +93,7 @@ pa:
         visible: ਵਿਖਣਯੋਗ
         name: ਨਾਂ
         size: ਅਕਾਰ
-        latitude: à¨µà¨¿à¨§à¨\95ਾਰ
+        latitude: à¨\85à¨\95ਸ਼ਾà¨\82ਸ਼
         longitude: ਲੰਬਕਾਰ
         public: ਜਨਤਕ
         description: ਵੇਰਵਾ
@@ -112,7 +112,7 @@ pa:
         active: ਸਰਗਰਮ
         display_name: ਵਿਖਾਉਣ ਨਾਂ
         description: ਵੇਰਵਾ
-        home_lat: 'ਅਕਸ਼ਾਂਸ਼:'
+        home_lat: ਅਕਸ਼ਾਂਸ਼
         home_lon: 'ਰੇਖਾਂਸ਼:'
         languages: ਬੋਲੀਆਂ
         pass_crypt: ਪਛਾਣ-ਸ਼ਬਦ
@@ -1022,6 +1022,7 @@ pa:
       uploaded: 'ਅੱਪਲੋਡ ਹੋਇਆ:'
       points: ਬਿੰਦੂ
       start_coordinates: 'ਸ਼ੁਰੂਆਤੀ ਗੁਣਕ:'
+      coordinates_html: '%{latitude}; %{longitude}'
       map: ਨਕਸ਼ਾ
       edit: ਸੋਧੋ
       owner: 'ਮਾਲਕ:'
index 4fafb890d5f9901520e6068e29e6c5ed6ba54cb4..2586145becdaf78a6b45ab70dff4dce80688fdc0 100644 (file)
@@ -496,7 +496,7 @@ pt-PT:
       reopened_by_html: Reaberto por %{user} <abbr title='%{exact_time}'>%{when}</abbr>
       reopened_by_anonymous_html: Reaberto por um anónimo <abbr title='%{exact_time}'>%{when}</abbr>
       hidden_by_html: Ocultada por %{user} <abbr title='%{exact_time}'>%{when}</abbr>
-      report: Denunciar esta nota
+      report: denunciar esta nota
       coordinates_html: '%{latitude}, %{longitude}'
     query:
       title: Consultar elementos
@@ -1272,7 +1272,7 @@ pt-PT:
           switch: Agulha ferroviária
           tram: Linha de elétrico
           tram_stop: Paragem de elétrico
-          turntable: Girador ferroviário
+          turntable: Rotunda ferroviária
           yard: Pátio de manobras ferroviário
         shop:
           agrarian: Loja agrícola
@@ -1523,6 +1523,7 @@ pt-PT:
   issue_comments:
     create:
       comment_created: O comentário foi criado com sucesso
+      issue_reassigned: O teu comentário foi criado e o problema foi reatribuído
   reports:
     new:
       title_html: Denunciar %{link}
@@ -1890,7 +1891,7 @@ pt-PT:
       cancel: Cancelar
       image: Imagem
       gravatar:
-        gravatar: Usar imagem Gravatar
+        gravatar: Usar Gravatar
         link: https://wiki.openstreetmap.org/wiki/Gravatar
         what_is_gravatar: O que é o Gravatar?
         disabled: O Gravatar foi desativado.
@@ -1899,7 +1900,7 @@ pt-PT:
       keep image: Manter a imagem atual
       delete image: Remover a imagem atual
       replace image: Substituir a imagem atual
-      image size hint: (as imagens quadradas com pelo menos 100x100 píxeis, funcionam
+      image size hint: (as imagens quadradas com, pelo menos, 100x100 píxeis funcionam
         melhor)
       home location: Localização principal
       no home location: Não definiste a tua localização principal.
@@ -2048,24 +2049,19 @@ pt-PT:
         credit_title_html: Como creditar o OpenStreetMap
         credit_1_html: 'Onde usar dados do OpenStreetMap, é necessário fazer as duas
           coisas seguintes:'
-        credit_2_1_html: "<ul>\n<li> Fornecer crédito ao OpenStreetMap exibindo o
-          nosso aviso de direitos autorais.</li> \n<li> Deixar claro que os dados
-          estão disponíveis sob a Open Database License.</li> \n</ul>"
-        credit_3_1_html: "Para o aviso de direitos autorais, temos requisitos diferentes
-          sobre como isso deve ser \nexibido, dependendo de como usa os nossos dados.
-          Por exemplo, diferentes \nregras se aplicam sobre como mostrar o aviso de
-          direitos de autor dependendo se\ncriou um mapa navegável, um mapa impresso
-          ou uma imagem estática. Detalhes completos sobre os requisitos \n podem
-          ser encontrados nas\n <a href=\"https://wiki.osmfoundation.org/wiki/Licence/Attribution_Guidelines\">Diretrizes
-          de atribuição</a> ."
-        credit_4_html: "Para deixar claro que os dados estão disponíveis sob a Licença
-          Open\nDatabase, é possível criar um link para\n <a href=\"https://www.openstreetmap.org/copyright\">esta
-          página de direitos de autor</a>.\nAlternativamente, e como requisito, se
-          estiver distribuindo OSM num\nformato de dados, pode nomear e vincular diretamente
-          à(s) licença(s). Em mídia\nonde ligações não são possíveis (por exemplo,
-          trabalhos impressos), sugerimos que\ndirecione os seus leitores para openstreetmap.org
-          (talvez expandindo\n'OpenStreetMap' para este endereço completo) e para
-          opendatacommons.org. \nNeste exemplo, o crédito aparece no canto do mapa."
+        credit_2_1_html: "<ul>\n<li> Atribuir os créditos ao OpenStreetMap exibindo
+          o nosso aviso de direitos de autor.</li> \n<li> Deixar claro que os dados
+          estão disponíveis sob a Licença Open Database.</li> \n</ul>"
+        credit_3_1_html: Para o aviso de direitos de autor, temos vários requisitos
+          para a sua exibição, dependendo da forma como usa os nossos dados. Por exemplo,
+          aplicam-se regras diferentes para a exibição do aviso de direitos de autor
+          conforme usar um mapa navegável, um mapa impresso ou uma imagem estática.
+          Poderá encontrar toda a informação sobre os requisitos nas <a href="https://wiki.osmfoundation.org/wiki/Licence/Attribution_Guidelines">Diretrizes
+          de Atribuição</a>.
+        credit_4_html: |-
+          Para deixar claro que os dados estão disponíveis sob a Licença Open
+          Database, é possível criar uma ligação para <a href="https://www.openstreetmap.org/copyright">esta página de direitos de autor</a>.
+          Em alternativa, e como requisito, se estiver a distribuir o OSM num formato de dados, pode nomear e ligar diretamente à(s) licença(s). Em plataformas multimédia onde as ligações não são possíveis (por exemplo, trabalhos impressos), sugerimos que direcione os seus utilizadores para openstreetmap.org (talvez expandindo 'OpenStreetMap' para este endereço completo) e para opendatacommons.org. Neste exemplo, os créditos aparecem no canto do mapa.
         attribution_example:
           alt: Exemplo de como indicar os créditos do OpenStreetMap numa página eletrónica
           title: Exemplo de atribuição
@@ -2497,7 +2493,7 @@ pt-PT:
       in: em
     index:
       public_traces: Rotas de GPS Públicas
-      my_gps_traces: Meus rastreamentos de GPS
+      my_gps_traces: As minhas rotas GPS
       public_traces_from: Rotas GPS públicas do utilizador %{user}
       description: Explorar as rotas GPS enviadas recentemente
       tagged_with: etiquetada com %{tags}
@@ -3079,6 +3075,9 @@ pt-PT:
         reactivate: Reabrir
         comment_and_resolve: Comentar e resolver
         comment: Comentar
+        report_link_html: Se esta nota contiver informação sensível que tenha de ser
+          removida, podes %{link}. Para qualquer outro problema com a nota, por favor,
+          resolve-a com um comentário.
     edit_help: Move o mapa, amplia-o no local que pretendes editar e clica aqui.
     directions:
       ascend: Ascenção
index 8f8210d561a752ca3da525584a4e6e5fd3e39c4b..6a3133efd2ee31a1f5779223c598baa6fad9eea1 100644 (file)
@@ -715,7 +715,6 @@ ru:
       heading: Комментарии к записям в дневнике пользователя %{user}
       subheading_html: Комментарии к записям в дневнике, добавленные пользователем
         %{user}
-      no_comments: Никаких комментариев в дневнике
       post: Сообщение
       when: Когда
       comment: Комментарий
@@ -2276,8 +2275,12 @@ ru:
         description: Задайте вопрос или обсудите насущные вопросы в списке рассылок
           (количество активных пользователей зависит от языка).
       forums:
-        title: Форумы
+        title: Форумы (устаревшее)
         description: Вопросы и обсуждения для тех, кто предпочитает форумы для общения.
+      community:
+        url: https://community.openstreetmap.org/
+        title: Форум сообщества
+        description: Общедоступное место для разговоров об OpenStreetMap.
       irc:
         title: IRC
         description: Интерактивный чат на разных языках и на разные темы.
@@ -2356,6 +2359,7 @@ ru:
           common:
           - Общественная земля
           - луг
+          - сад
           retail: Торговый район
           industrial: Промышленный район
           commercial: Коммерческий район
@@ -2995,7 +2999,6 @@ ru:
       title: Заметки, созданные или прокомментированный участником %{user}
       heading: Заметки участника %{user}
       subheading_html: Заметки, созданные или прокомментированные участником %{user}
-      no_notes: Нет заметок
       id: Идентификатор
       creator: Автор
       description: Описание
index c6928eaa7b9f00dd172c27bbd0b75cdf73616836..d073d3b54192114ee61c647907d0c2bc026bfb75 100644 (file)
@@ -45,7 +45,7 @@ sc:
         email_address_not_routable: non si podet incarrerare
     models:
       acl: Lista de Controllu de Atzessu
-      changeset: Grupu de modìficas
+      changeset: Annantu de modìficas
       changeset_tag: Eticheta de su grupu de modìficas
       country: Istadu
       diary_comment: Cummentu in su diàriu
@@ -274,7 +274,7 @@ sc:
           ant a èssere cunservados ma cuados a sa vista.
         retain_notes: Sas notas de sa mapa e sos cummentos a sas notas, si bi nd'at,
           ant a èssere cunservados ma cuados a sa vista.
-        retain_changeset_discussions: Sos arresonos tuos in sos grupos de modìficas,
+        retain_changeset_discussions: Sos arresonos tuos in sos annantos de modìficas,
           si bi nd'at, s'ant a cunservare.
         retain_email: S'indiritzu tuo de posta eletrònica s'at a cunservare.
         confirm_delete: Seguru ses?
@@ -336,7 +336,7 @@ sc:
     edited_by_html: Modificadu <abbr title='%{title}'>%{time}</abbr> dae %{user}
     closed_by_html: Serradu <abbr title='%{title}'>%{time}</abbr> dae %{user}
     version: Versione
-    in_changeset: Grupu de modìficas
+    in_changeset: Annantu de modìficas
     anonymous: anònimu
     no_comment: (perunu cummentu)
     part_of: Parte de
@@ -351,7 +351,7 @@ sc:
     view_details: Mustra Detàllios
     location: 'Logu:'
     changeset:
-      title: 'Grupu de modìficas: %{id}'
+      title: 'Annantu de modìficas: %{id}'
       belongs_to: Autore
       node: Nodos (%{count})
       node_paginated: Nodos (%{x}-%{y} de %{count})
@@ -362,15 +362,15 @@ sc:
       comment: Cummentos (%{count})
       hidden_commented_by_html: Cummentu cuadu de %{user} <abbr title='%{exact_time}'>%{when}</abbr>
       commented_by_html: Cummentu de %{user} <abbr title='%{exact_time}'>%{when}</abbr>
-      changesetxml: XML de su grupu de modìficas
+      changesetxml: XML de s'annantu de modìficas
       osmchangexml: XML in formadu osmChange
       feed:
-        title: Grupu de modìficas %{id}
+        title: Annantu de modìficas %{id}
         title_comment: Grupu de modìficas %{id} - %{comment}
       join_discussion: Intra pro t'aunire a s'arresonu
       discussion: Arresonu
-      still_open: Grupu de modìficas galu abertu - s'arresonu s'at a abèrrere cando
-        su grupu de modìficas s'at a serrare.
+      still_open: Annantu de modìficas galu abertu - s'arresonu s'at a abèrrere cando
+        s'annantu de modìficas s'at a serrare.
     node:
       title_html: 'Nodu: %{name}'
       history_title_html: 'Istòria de su nodu: %{name}'
@@ -407,7 +407,7 @@ sc:
         node: nodu
         way: caminu
         relation: relata
-        changeset: grupu de modìficas
+        changeset: annantu de modìficas
         note: nota
     timeout:
       title: Errore de lìmite de tempus de isetu barigadu
@@ -417,7 +417,7 @@ sc:
         node: nodu
         way: caminu
         relation: relata
-        changeset: grupu de modìficas
+        changeset: annantu de modìficas
         note: nota
     redacted:
       redaction: Revisione %{id}
@@ -474,7 +474,7 @@ sc:
     changeset:
       anonymous: Anònimu
       no_edits: (peruna modìfica)
-      view_changeset_details: Pòmpia sos detàllios de su grupu de modìficas
+      view_changeset_details: Pòmpia sos detàllios de s'annantu de modìficas
     changesets:
       id: ID
       saved_at: Sarvadu su
@@ -482,29 +482,29 @@ sc:
       comment: Cummentu
       area: Àrea
     index:
-      title: Trumas de modìficas
+      title: Annantos de modìficas
       title_user: Trumas de modìficas de %{user}
-      title_friend: Trumas de modìficas de sos amigus meus
+      title_friend: Annantos de modìficas de sos amigos meos
       title_nearby: Trumas de modìficas de utentes acanta
-      empty: Perunu grupu de modìficas agatadu.
+      empty: Perunu annantu de modìficas agatadu.
       empty_area: Perunu grupu de modìficas in custa àrea.
-      empty_user: Perunu grupu de modìficas de custu utente.
+      empty_user: Perunu annantu de modìficas de custu utente.
       no_more: Perunu àteru grupu de modìficas agatadu.
-      no_more_area: Perunu àteru grupu de modìficas in custa àrea.
+      no_more_area: Perunu àteru annantu de modìficas in custa àrea.
       no_more_user: Perunu àteru grupu de modìficas de custu utente.
       load_more: Càrriga·nde prus
     timeout:
-      sorry: S'elencu de grupos de modìficas chi as pedidu at bisongiadu de tropu
+      sorry: S'elencu de annantos de modìficas chi as pedidu at bisongiadu de tropu
         tempus pro lu recuperare.
   changeset_comments:
     comment:
-      comment: 'Cummentu nou a su grupu de modìficas #%{changeset_id} de %{author}'
+      comment: 'Cummentu nou a s''annantu de modìficas #%{changeset_id} de %{author}'
       commented_at_by_html: Atualizadu %{when} dae %{user}
     comments:
-      comment: 'Cummentu nou a su grupu de modìficas #%{changeset_id} de %{author}'
+      comment: 'Cummentu nou a s''annantu de modìficas #%{changeset_id} de %{author}'
     index:
       title_all: Arresonu subra su grupu de modìficas de OpenStreetMap
-      title_particular: 'Arresonu de su grupu de modìficas de OpenStreetMap #%{changeset_id}'
+      title_particular: 'Arresonu de s''annantu de modìficas de OpenStreetMap #%{changeset_id}'
     timeout:
       sorry: S'elencu de grupos de modìficas chi as pedidu at bisongiadu de tropu
         tempus pro lu recuperare.
@@ -522,48 +522,146 @@ sc:
         tua pro bìdere sos utentes a curtzu.'
       edit_your_profile: Modìfica su profìlu tuu
       my friends: Amigus meus
+      no friends: No as galu annantu perunu amigu.
+      nearby users: Àteros utentes a curtzu
+      no nearby users: Non b'at perunu àteru utente chi ammitat de mapare a curtzu
+        a inoghe.
+      friends_changesets: annantos de modìficas de sos amigos
+      friends_diaries: intradas de diàriu de sos amigos
+      nearby_changesets: annantos de modìficas de utentes a curtzu
+      nearby_diaries: intradas de diàriu de utentes a curtzu
   diary_entries:
+    new:
+      title: Intrada de diàriu noa
     form:
       location: Logu
+      use_map_link: Imprea sa mapa
     index:
+      title: Diàrios de sos utentes
+      title_friends: Diàrios de sos amigos
+      title_nearby: Diàrios de sos utentes a curtzu
+      user_title: Diàriu de %{user}
+      in_language_title: Intradas de diàriu in %{language}
+      new: Intrada de diàriu noa
+      new_title: Cumpone un'intrada noa in su diàriu de utente meu
       my_diary: Cuotidianu meu
+      no_entries: Peruna intrada in su diàriu
+      recent_entries: Intradas reghentes in su diàriu
+      older_entries: Intradas prus antigas
+      newer_entries: Intradas prus noas
+    edit:
+      title: Modìfica s'intrada de su diàriu
+      marker_text: Positzione de s'intrada de su diàriu
     show:
+      title: Diàriu de %{user} | %{title}
+      user_title: Diàriu de %{user}
       leave_a_comment: Lassa unu cummentu
+      login_to_leave_a_comment_html: '%{login_link} pro lassare unu cummentu'
       login: Intra
+    no_such_entry:
+      title: In su diàriu non b'at peruna intrada gasi
+      heading: 'Non b''at peruna intrada cun s''id: %{id}'
+      body: Non b'at peruna intrada o cummentu in su diàriu cun s'id %{id}. Verìfica
+        s'ortografia tua. O forsis su ligàmene chi as incarcadu est isballiadu.
     diary_entry:
+      posted_by_html: Publicadu dae %{link_user} su %{created} in %{language_link}.
+      updated_at_html: Ùrtimu agiornamentu su %{updated}.
+      comment_link: Cummenta custa intrada
+      reply_link: Imbia unu messàgiu a s'autore
+      edit_link: Modìfica custa intrada
+      hide_link: Cua custa intrada
+      unhide_link: Ammustra custa intrada
       confirm: Cunfirma
+      report: Sinnala custa intrada
     diary_comment:
+      comment_from_html: Cummentu dae %{link_user} de su %{comment_created_at}
+      hide_link: Cua custu cummentu
+      unhide_link: Ammustra custu cummentu
       confirm: Cunfirma
+      report: Sinnala custu cummentu
     location:
       location: 'Logu:'
+      view: Ammustra
       edit: Càmbia
+    feed:
+      user:
+        title: Intradas de diàriu de OpenStreetMap de %{user}
+        description: Intradas de diàriu reghentes de OpenStreetMap de %{user}
+      language:
+        title: Intradas de diàriu de OpenStreetMap in %{language_name}
+        description: Intradas de diàriu reghentes de sos utentes de OpenStreetMap
+          in %{language_name}
+      all:
+        title: Intradas de diàriu de OpenStreetMap
+        description: Intradas de diàriu reghentes de sos utentes de OpenStreetMap
     comments:
+      title: Cummentos de su diàriu annantos dae %{user}
+      heading: Cummentos de su diàriu de %{user}
+      subheading_html: Cummentos de su diàriu annantos dae %{user}
+      no_comments: Perunu cummentu a su diàriu
+      post: Publicatzione
       when: Cando
       comment: Cummentu
       newer_comments: Cummentos prus noos
       older_comments: Cummentos prus antigos
+  doorkeeper:
+    flash:
+      applications:
+        create:
+          notice: Aplicatzione registrada.
+  friendships:
+    make_friend:
+      heading: Annànghere %{user} a sos amigos?
+      button: Annanghe a sos amigos
+      success: '%{name} como est amigu tuo!'
+      failed: Annanta de %{name} a sos amigos fallida.
+      already_a_friend: Ses giai amigu de %{name}.
+      limit_exceeded: In custu ùrtimu perìodu as annantu utentes medas a sos amigos
+        tuos. Iseta unu pagu in antis de proare a nde annànghere àteros.
+    remove_friend:
+      heading: Bogare %{user} dae sos amigos?
+      button: Boga dae sos amigos
+      success: '%{name} est istadu bogadu dae sos amigos tuos.'
+      not_a_friend: '%{name} no est unu de sos amigos tuos.'
   geocoder:
+    search:
+      title:
+        latlon_html: Resurtados <a href="https://openstreetmap.org/">internos</a>
+        ca_postcode_html: Resurtados dae <a href="https://geocoder.ca/">Geocoder.CA</a>
+        osm_nominatim_html: Resurtados dae <a href="https://nominatim.openstreetmap.org/">OpenStreetMap
+          Nominatim</a>
+        geonames_html: Resurtados dae <a href="http://www.geonames.org/">GeoNames</a>
+        osm_nominatim_reverse_html: Resurtados dae <a href="https://nominatim.openstreetmap.org/">OpenStreetMap
+          Nominatim</a>
+        geonames_reverse_html: Resurtados dae <a href="http://www.geonames.org/">GeoNames</a>
     search_osm_nominatim:
       prefix:
         aerialway:
           cable_car: Funivia
           chair_lift: Ascensore carrotzina
           drag_lift: Sciovia
+          gondola: Telecabina
           magic_carpet: Cinta Trasportadora
           platter: Sciovia a piatellu
           pylon: Turre de sa funivia
           station: Istatzione sciovia
           t-bar: Sciovia a àncora
+          "yes": Isciovia
         aeroway:
           aerodrome: Aeròdromu
+          airstrip: Aeròdromu
+          apron: Àrea de arreada de aeroportu
           gate: Gate de aeroportu
           hangar: Hangar
           helipad: Eliportu
+          holding_position: Positzione de isetu
+          navigationaid: Agiudu de navigatzione aèrea
           parking_position: Positzione parchègiu
           runway: Pista
           taxilane: Carrera de rullàgiu
           taxiway: Carrera de furriada
           terminal: Terminal de aeroportu
+          windsock: Màniga a bentu
         amenity:
           animal_boarding: Domo po animales
           animal_shelter: Imbaru pro animales
@@ -575,6 +673,8 @@ sc:
           bench: Panchita/banchina
           bicycle_parking: Parchègiu pro Bitzicletas
           bicycle_rental: Afitu de Bitzicletas
+          bicycle_repair_station: Istatzione de acontzadura de bitzicletas
+          biergarten: Birreria a s'abertu
           blood_bank: Bancu de sàmbene
           boat_rental: Afitu de Imbarcatziones
           brothel: Casinu
@@ -600,7 +700,8 @@ sc:
           drinking_water: Abba Potàbile
           driving_school: Autoiscola
           embassy: Ambasciada
-          fast_food: Fast Food
+          events_venue: Sala pro eventos
+          fast_food: Màndigu lestru (Fast Food)
           ferry_terminal: Terminale navios
           fire_station: Pompieres
           food_court: Corte de màndigu (Food court)
@@ -612,12 +713,16 @@ sc:
           hospital: Ispidale
           hunting_stand: Posta de cassa
           ice_cream: Geladeria
+          internet_cafe: Ìnternet cafè
           kindergarten: Parcu de giogos
           language_school: Iscola de limbas
           library: Biblioteca
+          loading_dock: Dàrsena de càrriga
           love_hotel: Love hotel
           marketplace: Mercadu
+          mobile_money_agent: Agente de dinare mòbile
           monastery: Monastèriu
+          money_transfer: Tramudòngiu de dinare
           motorcycle_parking: Parchègiu pro Mototzicletas
           music_school: Iscola de mùsica
           nightclub: Locale noturnu
@@ -625,6 +730,7 @@ sc:
           parking: Parchègiu
           parking_entrance: Intrada de su Parchègiu
           parking_space: Parchègiu
+          payment_terminal: Terminale de pagamentu
           pharmacy: Apotecaria
           place_of_worship: Logu de cultu
           police: Politzia
@@ -635,8 +741,10 @@ sc:
           public_bath: Còmudu pùblicu
           public_bookcase: Libreria pùblica
           public_building: Telèfonu Pùblicu
+          ranger_station: Istatzione de sas guàrdias forestales
           recycling: Puntu de Retziclàgiu
           restaurant: Ristorante
+          sanitary_dump_station: Istatzione de discàrriga sanitària
           school: Iscola
           shelter: Imbaru
           shower: Dòtzia
@@ -649,16 +757,25 @@ sc:
           theatre: Teatru
           toilets: Còmodu
           townhall: Munitzìpiu
+          training: Istrutura de annestru
           university: Universidade
+          vehicle_inspection: Tzentru de revisiones
           vending_machine: Distribudore automàticu
           veterinary: Chirurgia veterinària
           village_hall: Munitzìpiu
           waste_basket: Cuntenidore de Arga
           waste_disposal: Cuntenidore de Arga
+          waste_dump_site: Muntonàrgiu
+          watering_place: Abbadòrgiu
           water_point: Puntu de abba
+          weighbridge: Bilàntzia a ponte
+          "yes": Servìtziu
         boundary:
+          aboriginal_lands: Terras aborìgenas
           administrative: Lìmite Amministrativu
+          census: Làcana de tzensimentu
           national_park: Parcu Natzionale
+          political: Distretu eletorale
           protected_area: Àrea amparada
           "yes": Làcana
         bridge:
@@ -671,52 +788,120 @@ sc:
         building:
           apartment: Aposentu
           apartments: Aposentus
+          barn: Òrriu
           bungalow: Bungalow
+          cabin: Pinnetu
           chapel: Capella
           church: Crésia
+          civic: Edifìtziu tzìvicu
+          college: Edifìtziu universitàriu
+          commercial: Edifìtziu cummertziale
+          construction: Edifìtziu in fràigu
+          detached: Domo unifamiliare
+          dormitory: Dormitòriu
+          duplex: Domo dòpia (duplex)
+          farm: Domo de fatoria
+          farm_auxiliary: Fràigu ausiliàriu de una fatoria
+          garage: Garàgiu
+          garages: Garàgios
+          greenhouse: Serra
           hangar: Hangar
           hospital: Ospidale
+          hotel: Edifìtziu de un'albergu
           house: Domo
+          houseboat: Domo chi gallègiat
           hut: Barraca
+          industrial: Edifìtziu industriale
+          kindergarten: Edifìtziu de un'asilu
+          manufacture: Edifìtziu de una fàbrica
+          office: Ufìtzios
+          public: Edifìtziu pùblicu
+          residential: Edifìtziu residentziale
+          retail: Edifìtziu cummertziale
+          roof: Coberta
+          ruins: Edifìtziu in ruinas
+          school: Edifìtziu iscolàsticu
+          semidetached_house: Domo bifamiliare
+          service: Edifìtziu de servìtziu
+          shed: Capannone
+          stable: Istalla
+          static_caravan: Caravana
+          temple: Edifìtziu de unu tèmpiu
+          terrace: Domos a ischiera
+          train_station: Istatzione ferroviària
           university: Edifìtziu universitàriu
           warehouse: Magasinu
           "yes": Edifitziu
+        club:
+          scout: Base scout
+          sport: Tzìrculu isportivu
+          "yes": Tzìrculu
         craft:
+          beekeeper: Mojaresu
+          blacksmith: Mastru de ferru
           brewery: Fàbrica de birra
           carpenter: Mastru de linna
+          caterer: Servìtziu de ristorazione
+          confectionery: Cofituria
+          dressmaker: Draperi
           electrician: Eletritzista
+          electronics_repair: Acontzadura de trastes eletrònicos
           gardener: Giardinere
+          glaziery: Bidraju
+          handicraft: Artesania
+          hvac: Fabricante de climatizadores
+          metal_construction: Azienda metalmecànica
           painter: Pintore
           photographer: Fotògrafu
           plumber: Idràulicu
+          roofer: Fraigadore de cobertas
+          sawmill: Segheria
           shoemaker: Cartzeraju
+          stonemason: Picapedreri
           tailor: Draperi
+          window_construction: Fraigadore de ventanas
+          winery: Cantina de binos
           "yes": Butega de artesania
         emergency:
+          access_point: Puntu de atzessu
           ambulance_station: Istatzione ambulàntzias
           assembly_point: Puntu de reunione
           defibrillator: Defibrillatore
+          fire_extinguisher: Estintore
+          fire_water_pond: Riserva de abba anti-fogos
           landing_site: Logu de aterràgiu de emergèntzia
+          life_ring: Sarvagente
           phone: Telèfonu de Emergèntzias
+          siren: Sirena de emergèntzia
+          suction_point: Puntu de aspiratzione de emergèntzia
           water_tank: Depòsitu de Abba de Emergèntzia
         highway:
           abandoned: Ferrovia abbandonada
           bridleway: Caminu pro caddos
+          bus_guideway: Corsia de postales a ghia vinculada
           bus_stop: Firmada de su Postale
           construction: Caminu in costrutzione
+          corridor: Passadissu
+          crossing: Coladòrgiu
           cycleway: Pista Tziclàbile
           elevator: Ascensore
           emergency_access_point: Logu de intrada de emergèntzia
+          emergency_bay: Pratzita de pàsida
+          footway: Caminera pedonale
           ford: Badu
           give_way: Sinnale de Tzèdere su Passu
           living_street: Carrera Residentziale
+          milestone: Perda miliare
           motorway: Autostrada
           motorway_junction: Nodu Viàriu
+          motorway_link: Autostrada
           passing_place: Logu de coladòrgiu
           path: Caminu
+          pedestrian: Caminu pedonale
           platform: Andana pro postale o tramvia
           primary: Caminu printzipale
           primary_link: Caminu printzipale
+          proposed: Caminu propostu
           raceway: Tzircùitu automobilìsticu
           residential: Carrera residentziale
           rest_area: Àrea de Pasu
@@ -724,6 +909,7 @@ sc:
           secondary: Carrera segundària
           secondary_link: Carrera segundària
           service: Carrera de Servìtziu
+          services: Istatzione de servìtziu
           speed_camera: Autovelox
           steps: Iscalinos
           stop: Signale de istop
@@ -731,28 +917,46 @@ sc:
           tertiary: Carrera Tertziària
           tertiary_link: Carrera Tertziària
           track: Sestadu
+          traffic_mirror: Ispigru de tràficu
+          traffic_signals: Semàforu
+          trailhead: Intrada de un'àndala
+          trunk: Superstrada
+          trunk_link: Superstrada
           turning_loop: Rotonda de cambiamentu de sensu
           unclassified: Carrera senza classificatzione
           "yes": Carrera
         historic:
+          aircraft: Aeroplanu istòricu
           archaeological_site: Sìtiu Archeològicu
+          bomb_crater: Cratere de bomba istòricu
           battlefield: Campu de Batalla
           boundary_stone: Pedra de làcana
+          building: Edifìtziu istòricu
+          bunker: Bunker
+          cannon: Cannone istòricu
           castle: Casteddu
+          charcoal_pile: Carbonera istòrica
           church: Crèsia
           city_gate: Porta de sa Tzitade
           citywalls: Murallas de sa Tzitade
           fort: Forte
           heritage: Patrimoniu de s'umanidade
+          hollow_way: Caminu afundadu
           house: Domo
           manor: Villa
           memorial: Memoriale
+          milestone: Perda miliare istòrica
+          mine: Mina
+          mine_shaft: Putzu mineràriu
           monument: Monumentu
+          railway: Ferrovia istòrica
           roman_road: Carreggiada romana
           ruins: Ruinas
+          rune_stone: Perda rùnica
           stone: Pedra
           tomb: Tumba
           tower: Turre
+          wayside_chapel: Capella votiva
           wayside_cross: Rughe istòrica
           wayside_shrine: Tabernàculu istòricu
           wreck: Relitu
@@ -761,7 +965,9 @@ sc:
           "yes": Giuntura de su caminu
         landuse:
           allotments: Giardinos familiares
+          aquaculture: Abbacultura
           basin: Batzinu
+          brownfield: Terrinu abbandonadu
           cemetery: Campusantu
           commercial: Zona Cummertziale
           conservation: Ispàtziu de cunservatzione
@@ -771,24 +977,37 @@ sc:
           forest: Litu
           garages: Garàgios
           grass: Erva
+          greenfield: Terrinu egadu
           industrial: Zona Industriale
           landfill: Muntonàrgiu
           meadow: Pradu
           military: Zona Militare
+          mine: Miniera
           orchard: Frutedu
+          plant_nursery: Vivaju
           quarry: Cava
           railway: Ferrovia
           recreation_ground: Zona de recreu
+          religious: Terrinu religiosu
           reservoir: Batzinu
+          reservoir_watershed: Presetu de unu serbatoju de abba
           residential: Àrea residentziale
           retail: Àrea cummertziale
           village_green: Àrea birde comune de sa bidda
           vineyard: Bìngia
           "yes": Impreu de su terrinu
         leisure:
+          adult_gaming_centre: Sala de giogos pro adultos
+          amusement_arcade: Sala de giogos
+          bandstand: Chioscu de sa mùsica
           beach_resort: Cumplessu turìsticu de marina
+          bird_hide: Logu pro pompiare pugiones
+          bleachers: Gradinadas
+          bowling_alley: Sala de bowling
           common: Terrinu comunale
+          dance: Sala de ballu
           dog_park: Parcu pro sos Canes
+          firepit: Brasieri
           fishing: Àrea de Pisca
           fitness_centre: Palestra
           fitness_station: Palestra a s'abertu
@@ -799,7 +1018,10 @@ sc:
           marina: Marina (portu minore)
           miniature_golf: Minigolf
           nature_reserve: Reserva naturale
+          outdoor_seating: Logos pro si sètzere in foras
           park: Parcu
+          picnic_table: Mesa de picnic
+          pitch: Campu isportivu
           playground: Parcu pro Pitzinnos
           recreation_ground: Zona de recreu
           resort: Cumplessu turìsticu
@@ -813,28 +1035,51 @@ sc:
           "yes": Tempus lìberu
         man_made:
           adit: Intrada de una galleria minerària
+          advertising: Publitzidade
+          antenna: Antenna
+          avalanche_protection: Protetzione anti-valanga
           beacon: Sinnale marinu
+          beam: Trae
+          beehive: Moju
           breakwater: Paraundas
           bridge: Ponte
+          bunker_silo: Bunker
+          cairn: Tùmulu (cairn)
           chimney: Fumajolu
+          clearcut: Padente isboscadu
+          communications_tower: Torre de comunicatziones
           crane: Grue
+          cross: Rughe
+          dolphin: Puntu de ormègiu
           dyke: Àrgine
+          embankment: Terraprenu
           flagpole: Palu de bandera
           gasometer: Gasòmetru
           groyne: Paraundas (Groyne)
           kiln: Furru (kiln)
           lighthouse: Faru
+          manhole: Tumbinu
           mast: Àrbore (de sa nave)
+          mine: Miniera
+          mineshaft: Putzu mineràriu
           monitoring_station: Istatzione de cuntrollu
           petroleum_well: Putzu petrolìferu
           pier: Pontinu
           pipeline: Tubadura
+          pumping_station: Istatzione de pompàgiu
+          reservoir_covered: Serbatoju cobertu
           silo: Lòssia
+          snow_cannon: Cannone de nie
+          snow_fence: Cresura pro sa nie
           storage_tank: Serbatòiu
+          street_cabinet: Tzentralina
           surveillance: Videobardiamentu
+          telescope: Telescòpiu
           tower: Turre
+          utility_pole: Palu de suportu
           wastewater_plant: Depuradore
           watermill: Mulinu a abba
+          water_tap: Càntaru de s'abba
           water_tower: Turre ìdrica
           water_well: Putzu petrolìferu
           water_works: Istrutura idràulica
@@ -844,23 +1089,32 @@ sc:
         military:
           airfield: Aeroportu militare
           barracks: Caserma
+          bunker: Bunker
+          checkpoint: Puntu de controllu
+          trench: Trintzea
           "yes": Militare
         mountain_pass:
           "yes": Coladòrgiu montanu
         natural:
+          atoll: Atollu
+          bare_rock: Roca nuda
           bay: Baja
           beach: Marina
           cape: Cabu
           cave_entrance: Intrada de sa gruta
           cliff: Iscameddu
+          coastline: Costera
           crater: Cratere
           dune: Duna
+          fell: Fell (ambiente de monte)
           fjord: Costera
           forest: Litu
+          geyser: Geyser
           glacier: Niera
           grassland: Pradu
           heath: Ghiddostraju
           hill: Montigru
+          hot_spring: Fonte termale
           island: Ìsula
           isthmus: Istmu
           land: Terra
@@ -875,28 +1129,45 @@ sc:
           rock: Roca
           saddle: Sedda
           sand: Arena
+          scree: Giarrone
           scrub: Prunitzàrgiu
+          shingle: Praja de perdas de riu
           spring: Bena
           stone: Pedra
           strait: Astrintura
           tree: Àrbore
+          tree_row: Fila de àrbores
+          tundra: Tundra
           valley: Badde
           volcano: Vulcanu
           water: Abba
           wetland: Paule
           wood: Buscu
+          "yes": Elementu naturale
         office:
           accountant: Contàbile
           administrative: Amministratzione
+          advertising_agency: Agentzia publitzitària
           architect: Architetu
           association: Assòtziu
           company: Azienda
+          diplomatic: Ufìtziu diplomàticu
           educational_institution: Istitutzione educativa
           employment_agency: Agèntzia pro su traballu
+          energy_supplier: Ufìtziu de fornidura elètrica
           estate_agent: Butega immobiliare
+          financial: Ufìtziu finantziàriu
           government: Ufìtziu guvernativu
+          insurance: Ufìtziu de asseguratziones
           it: Ufìtziu IT
           lawyer: Abogadu
+          logistics: Ufìtziu logìsticu
+          newspaper: Ufìtziu de redatzione de unu cuotidianu
+          ngo: Ufìtziu de una ONG
+          notary: Notaju
+          religion: Ufìtziu religiosu
+          research: Ufìtziu de chirca
+          tax_advisor: Consulente fiscale
           telecommunication: Ufìtziu de telecomunicatziones
           travel_agent: Agèntzia de biàgios
           "yes": Ufìtziu
@@ -904,6 +1175,7 @@ sc:
           allotments: Giardinos familiares
           archipelago: Artzipèlagu
           city: Tzitade
+          city_block: Isoladu urbanu
           country: Paisu
           county: Contea
           farm: Fatoria
@@ -916,6 +1188,7 @@ sc:
           locality: Localidade
           municipality: Munitzìpiu
           neighbourhood: Bighinadu
+          plot: Lotu de terrinu
           postcode: Còdighe postale
           quarter: Bighinadu
           region: Regione
@@ -929,105 +1202,210 @@ sc:
           "yes": Logu
         railway:
           abandoned: Ferrovia abbandonada
+          buffer_stop: Paraurti ferroviàriu
           construction: Ferrandeu in costrutzione
           disused: Ferrandeu in disavesu
+          funicular: Funiculare
           halt: Firmada de sos trenos
           junction: Nodu ferruviàriu
           level_crossing: passagiù a livellu
           light_rail: Trenu lèbiu
+          miniature: Ferrovia in miniadura
           monorail: Monorotàia
           narrow_gauge: Ferrovia abbandonada
+          platform: Banchina ferroviària
+          preserved: Ferrovia cunservada
+          proposed: Ferrovia proposta
           rail: Caminu de ferru
+          spur: Mascada ferroviària curtza
+          station: Istatzione ferroviària
+          stop: Firmada de sa ferrovia
           subway: Metropolitana
           subway_entrance: Intrada de sa metropolitana
+          switch: Cuncàmbios ferroviàrios
+          tram: Tramvia
           tram_stop: Firmada de su tram
+          turntable: Prataforma chi girat
+          yard: Zona de manovra ferroviària
         shop:
+          agrarian: Butega agrària
           alcohol: Licorista
           antiques: Anticuàriu
+          appliance: Butega de eletrodomèsticos
           art: Butega de arte
+          baby_goods: Butega de artìculos pro crios
+          bag: Butega de bursas
           bakery: Paneteri
+          bathroom_furnishing: Arredu de bagnu
           beauty: Salone de bellesa
+          bed: Produtos pro su letu
           beverages: Butega de bèvidas
           bicycle: Butega de bitzicletas
           bookmaker: Iscummissas
           books: Libreria
           boutique: Boutique
           butcher: Carnitzeria
+          car: Butega de màchinas
           car_parts: Cantos de ricàmbiu pro automòbiles
           car_repair: Riparatzione màchina
+          carpet: Butega de tapetes
+          charity: Butega de benefitzèntzia
+          cheese: Butega de casu
+          chemist: Potecaria
+          chocolate: Tziculateria
           clothes: Butega de bestires
           coffee: Butega de cafei
           computer: Butega de informàtica
+          confectionery: Butega de durches
           convenience: Buteghedda
           copyshop: Copisteria
+          cosmetics: Butega de cosmèticos
+          craft: Butega de artìculos pro s'artesania
+          curtain: Butega de tendas
+          dairy: Lateria
           deli: Gastronomia
           department_store: Supermercadu
+          discount: Butega de artìculos iscontados (discount)
           doityourself: Butega de bricolage
           dry_cleaning: Sabunadura "a sicu"
+          e-cigarette: Butega de sigaretas eletrònicas
           electronics: Butega de eletrònica
+          erotic: Butega eròtica
           estate_agent: Butega immobiliare
+          fabric: Butega de tessutos
+          farm: Butega de produtos agrìculos
+          fashion: Butega de moda
+          fishing: Butega de trastes de pisca
           florist: Froraju
           food: Alimentares
+          frame: Butega de curnisas
           funeral_directors: Pompas fùnebres
           furniture: Mòbiles
+          garden_centre: Tzentru de giardinàgiu
+          gas: Butega de combustìbile
           general: Empòriu
           gift: Butega de donos
+          greengrocer: Butega de fruteri
+          grocery: Fruteri
           hairdresser: Pilucheri
           hardware: Ferramenta
+          health_food: Butega de alimentos pro sa salude
+          hearing_aids: Butega de aparèchios acùsticos
+          herbalist: Erbolàriu
+          hifi: Butega de Hi-Fi
+          houseware: Butega de artìculos pro sa domo
+          ice_cream: Gelateria
           interior_decoration: Decoradura de internos
           jewelry: Butega de prendas
+          kiosk: Chioscu
+          kitchen: Butega de coghina
           laundry: Samunadòrgiu
+          locksmith: Mastru de ferru
           lottery: Loteria
           mall: Tzentru cummertziale
           massage: Messàgiu
+          medical_supply: Butega de artìculos mèigos
+          mobile_phone: Butega de telèfonos mòbiles
+          money_lender: Imprestadore de dinare
           motorcycle: Butega de mototzicletas
+          motorcycle_repair: Butega de acontzadura de mototzicletas
+          music: Butega de mùsica
+          musical_instrument: Istrumentos musicales
           newsagent: Agentzia de imprenta
+          nutrition_supplements: Integradores alimentares
           optician: Òticu
+          organic: Butega de alimentos biològicos
+          outdoor: Butega de artìculos pro s'atividade a s'abertu
           paint: Butega de Pinturas
+          pastry: Pastisseria
           pawnbroker: Monte de piedade
+          perfumery: Butega de profumos
+          pet: Butega de animales
+          pet_grooming: Toeletadura pro animales domèsticos
           photo: Fotògrafu
+          seafood: Pischeria
           second_hand: Ogetos de segunda manu
+          sewing: Mertzeria
+          shoes: Butega de iscarpas
+          sports: Butega de isport
+          stationery: Cartoleria
+          storage_rental: Afitu de depòsitos
           supermarket: Supermercadu
           tailor: Draperi
+          tattoo: Butega de tatuàgios
+          tea: Butega de te
+          ticket: Billeteria
           tobacco: Istancu
+          toys: Butega de giogos
           travel_agency: Agèntzia de biàgios
           tyres: Butega de pneumàticos
+          vacant: Logu pro butega bòidu
           variety_store: Butega de ogetos baratos
+          video: Butega de vìdeos
+          video_games: Butega de video-giogos
+          wholesale: Butega a s'ingrussu
           wine: Butega de binos
           "yes": Butega
         tourism:
           alpine_hut: Pinnetu alpinu
+          apartment: Apartamentu pro vacàntzias
           artwork: Òpera de arte
           attraction: Atratzione
           bed_and_breakfast: Bed and Breakfast
           cabin: Cabina turìstica
+          camp_pitch: Pratzita de campègiu
           camp_site: Campègiu
           caravan_site: Campeggio pro roulotte
+          chalet: Masu (Chalet)
           gallery: Galleria
           guest_house: Pensione
           hostel: Ostellu
+          hotel: Albergu
           information: Informatziones
+          motel: Motel
           museum: Museu
           picnic_site: Àrea de recreu
           theme_park: Parcu temàticu
           viewpoint: Puntu panoràmicu
+          wilderness_hut: Imbaru rurale
+          zoo: Zoo
         tunnel:
+          building_passage: Coladòrgiu peri unu fràigu
+          culvert: Canale suta terra
           "yes": Galleria
         waterway:
+          artificial: Cursu de abba artifitziale
           boatyard: Cantiere navale
           canal: Canale
           dam: Diga
+          derelict_canal: Canale abbandonadu
+          ditch: Fossu
+          dock: Dàrsena
+          drain: Canale de drenàgiu
+          lock: Serrada (isbarramentu idràulicu)
           lock_gate: Ghenna de serradura
           mooring: Ormègiu
           rapids: Tràinos
           river: Riu
           stream: Traghinu/Trainu
+          wadi: Uadì
           waterfall: Istrampu
           weir: Nassàrgiu
+          "yes": Cursu de abba
       admin_levels:
         level2: Làcana Aministrativa 2u Livellu - Istadu Natzionale
         level3: Làcana de regione
+        level4: Làcana de 4u livellu (regione, provìntzia o istadu federadu de unu
+          paisu)
         level5: Làcana aministrativa su de 5 livellus - àrea regionale
+        level6: Làcana de 6u livellu - suta-regionale (provìntzia, tzitade metropolitana
+          o contea)
+        level7: Làcana de 7u livellu - subra-munitzipale (unione de comunes, comunidade
+          montana)
+        level8: Làcana munitzipale (livellu 8)
+        level9: Làcana de 9u livellu - sutamunitzipale (distretu tzitadinu)
+        level10: Làcana de livellu 10 (bighinadu)
+        level11: Làcana de trighìngiu
       types:
         cities: Tzitades
         towns: Tzitadinas
@@ -1038,59 +1416,176 @@ sc:
   issues:
     index:
       title: Problemas
+      select_status: Seletziona un'istadu
+      select_type: Seletziona una casta
+      select_last_updated_by: Seletzionare s'ùrtima atualizatzione de
+      reported_user: Utente sinnaladu
+      not_updated: No atualizadu
       search: Chirca
+      search_guidance: 'Chirca problemas:'
+      user_not_found: S'utente no esistit
+      issues_not_found: Perunu problema de custa casta agatadu
       status: Istadu
-      reports: Raportos
+      reports: Informes
       last_updated: Ùrtimu agiornamentu
-      link_to_reports: Abbàida su raportu
+      last_updated_time_html: <abbr title='%{title}'>%{time}</abbr>
+      last_updated_time_user_html: <abbr title='%{title}'>%{time}</abbr> dae %{user}
+      link_to_reports: Abbàida sos informes
+      reports_count:
+        one: 1 sinnalatzione
+        other: '%{count} sinnalatziones'
+      reported_item: Elementu sinnaladu
+      states:
+        ignored: Ignoradu
+        open: Abertu
+        resolved: Risoltu
+    update:
+      new_report: Sa sinnalatzione tua est istada registrada
+      successful_update: Sa sinnalatzione tua est istada atualizada
+      provide_details: Fruni sos detàllios pedidos
+    show:
+      title: '%{status} Problema #%{issue_id}'
+      report_created_at: Sinnaladu pro sa prima borta su %{datetime}
+      last_resolved_at: Risoltu pro s'ùrtima borta su %{datetime}
+      last_updated_at: Ùrtima atualizatzione de %{displayname} su %{datetime}
+      resolve: Risolve
+      ignore: Ignora
+      reopen: Torra a abèrrere
+      reports_of_this_issue: Sinnalatziones de custu problema
+      read_reports: Leghe sas sinnalatziones
+      new_reports: Sinnalatziones noas
+      other_issues_against_this_user: Àteras sinnalatziones contra a custu utente
+      no_other_issues: Non b'at perunu àteru problema chi pertochet a custu utente.
+      comments_on_this_issue: Cummentos subra de custu problema
+    resolve:
+      resolved: S'istadu de su problema est istadu impostadu comente ‘Risoltu'
+    ignore:
+      ignored: S'istadu de su problema est istadu impostadu comente ‘Ignoradu'
+    reopen:
+      reopened: S'istadu de su problema est istadu impostadu comente ‘Abertu'
+    comments:
+      comment_from_html: Cummentu de %{user_link} de su %{comment_created_at}
+      reassign_param: Torrare a assignare su problema?
+    reports:
+      reported_by_html: Sinnaladu comente %{category} dae %{user} su %{updated_at}
+    helper:
+      reportable_title:
+        diary_comment: '%{entry_title}, cummentu #%{comment_id}'
+        note: 'Nota #%{note_id}'
+  issue_comments:
+    create:
+      comment_created: Su cummentu tuo est istadu creadu
+      issue_reassigned: Su cummentu tuo est istadu creadu e su problema est istadu
+        torradu a assignare
   reports:
     new:
+      title_html: Sinnala %{link}
+      missing_params: Non faghet a creare una sinnalatzione noa
+      disclaimer:
+        intro: 'In antis de imbiare sa sinnalatzione tua a sos moderadores de su situ
+          web assegura·ti chi:'
+        not_just_mistake: Sias seguru chi su problema non siat petzi una faddina
+        unable_to_fix: Non sias in gradu de acontzare su problema a sa sola o cun
+          s'agiudu de sos membros de sa comunidade tua
+        resolve_with_user: Apas giai proadu a risòlvere su problema cun s'utente in
+          chistione
       categories:
         diary_entry:
+          spam_label: Custa intrada de diàriu est/cuntenet arga
+          offensive_label: Custa intrada de diàriu est ofensiva/truzosa
+          threat_label: Custa intrada de diàriu cuntenet una minetza
           other_label: Àteru
         diary_comment:
+          spam_label: Custu cummentu a su diàriu est/cuntenet arga
+          offensive_label: Custu cummentu a su diàriu est ofensivu/truzosu
+          threat_label: Custu cummentu a su diàriu cuntenet una minetza
           other_label: Àteru
         user:
+          spam_label: Custu profilu de utente est/cuntenet arga
+          offensive_label: Custu profilu de utente est ofensivu/truzosu
+          threat_label: Custu profilu de utente cuntenet una minetza
+          vandal_label: Custu utente est unu vàndalu
           other_label: Àteru
         note:
           spam_label: Custa nota est àliga
+          personal_label: Custa nota cuntenet datos personales
+          abusive_label: Custa nota est ingiuliosa
           other_label: Àteru
+    create:
+      successful_report: Sa sinnalatzione tua est istada registrada
+      provide_details: Fruni sos detàllios pedidos
   layouts:
     logo:
       alt_text: Logotipu de OpenStreetMap
+    home: Bae a sa positzione de incumintzu
     logout: Essi
     log_in: Intra
+    log_in_tooltip: Intra cun unu contu chi esistit
     sign_up: Iscrie·ti
     start_mapping: Cumintzat a mapare
+    sign_up_tooltip: Crea unu contu pro modificare
     edit: Modìfica
     history: Cronologia
     export: Esporta
     issues: Problemas
     data: Datos
+    export_data: Esporta sos datos
     gps_traces: Trassas GPS
+    gps_traces_tooltip: Amministra sas rastas GPS
+    user_diaries: Diàrios de sos utentes
+    user_diaries_tooltip: Pòmpia sos diàrios de sos utentes
+    edit_with: Modìfica cun %{editor}
+    tag_line: Sa mapa wiki lìbera de su mundu
     intro_header: Bene benius in OpenStreetMap!
     intro_text: OpenStreetMap est una mapa de su mundu, creadu dae persones comente
       tue e de impreu lìberu suta una litzèntzia aberta.
+    intro_2_create_account: Crea unu contu de utente
+    hosting_partners_html: S'allògiu est a càrrigu de %{ucl}, %{fastly}, %{bytemark}
+      e de àteros %{partners}.
+    partners_ucl: UCL
+    partners_fastly: Fastly
+    partners_bytemark: Bytemark Hosting
+    partners_partners: sòtzios
     tou: Conditziones de impreu
+    osm_offline: In custu momentu sa base de datos de OpenStreetMap est foras de lìnia,
+      ca sunt faghende traballos essentziales de mantenimentu.
+    osm_read_only: In custu momentu sa base de datos de OpenStreetMap est in modalidade
+      de leghidura ebbia, ca sunt faghende traballos essentziales de mantenimentu.
+    donate: Agiuda a OpenStreetMap %{link} a su Fundu de Modernizatzione de s'Hardware.
     help: Agiudu
     about: Informatziones
     copyright: Deretu de autore
     community: Comunidade
+    community_blogs: Blogs de sa comunidade
+    community_blogs_title: Blogs de sos membros de sa comunidade de OpenStreetMap
     foundation: Fundatzione
     foundation_title: Sa Fundatzione OpenStreetMap
+    make_a_donation:
+      title: Agiuda a OpenStreetMap cun una donatzione econòmica
+      text: Faghe una donatzione
     learn_more: Leghe àteru
     more: Àteru
   user_mailer:
     diary_comment_notification:
+      subject: '[OpenStreetMap] %{user} at cummentadu un''intrada de su diàriu'
       hi: Salude %{to_user},
       header: '%{from_user} at cummentadu s''intrada cuotidiana de OpenStreetMap cun
         su tema %{subject}:'
+      header_html: '%{from_user} at cummentadu s''intrada de su diàriu de OpenStreetMap
+        cun s''ogetu %{subject}:'
       footer: Podes lèghere su cummentu fintzas in %{readurl} e cummentare in %{commenturl}
         o rispònnere in %{replyurl}
+      footer_html: Podes lèghere su cummentu tuo fintzas in %{readurl} e cummentare
+        in %{commenturl} o mandare unu messàgiu a s'autore in %{replyurl}
     message_notification:
+      subject: '[OpenStreetMap] %{message_title}'
       hi: Salude %{to_user},
       header: '%{from_user} at imbiadu unu messàgiu a traessu de OpenStreetMap cun
         su tema %{subject}:'
+      header_html: '%{from_user} t''at imbiadu unu messàgiu pro mèdiu OpenStreetMap
+        cun s''ogetu %{subject}:'
+      footer: Podes lèghere su messàgiu fintzas in %{readurl} e podes imbiare unu
+        messàgiu a s'autore in %{replyurl}
       footer_html: Podes lèghere su messàgiu fintzas in %{readurl} e podes rispònnere
         in %{replyurl}
     friendship_notification:
@@ -1098,10 +1593,20 @@ sc:
       subject: '[OpenStreetMap] %{user} t''at annànghidu a sa lista de amigos'
       had_added_you: '%{user} t''at annantu comente a amigu in OpenStreetMap.'
       see_their_profile: Podes bìdere su profilu suo in %{userurl}.
+      see_their_profile_html: Podes bìdere su profilu suo in %{userurl}.
       befriend_them: Lu/a podes fintzas annànghere comente a amigu/a in %{befriendurl}.
+      befriend_them_html: Lu podes fintzas annànghere comente amigu in %{befriendurl}.
+    gpx_description:
+      description_with_tags_html: 'Paret s''archìviu GPX tuo %{trace_name} cun sa
+        descritzione %{trace_description} e sas etichetas chi sighint: %{tags}'
+      description_with_no_tags_html: Paret s'archìviu GPX tuo %{trace_name} cun sa
+        descritzione %{trace_description} e chene etichetas
     gpx_failure:
       hi: Salude %{to_user},
       failed_to_import: 'non si podet importare. Sa faddina est istada:'
+      more_info_html: Podes agatare àteras informatzione subra sos fallimentos de
+        importatzione de sos GPX e de comente los evitare in %{url}.
+      import_failures_url: https://wiki.openstreetmap.org/wiki/GPX_Import_Failures
       subject: '[OpenStreetMap] Faddina de importatzione de GPX'
     gpx_success:
       hi: Salude %{to_user},
@@ -1116,28 +1621,139 @@ sc:
       confirm: 'Primu de totu, depimus cunfirmare chi custa petitzione de creatzione
         de contu est bostra; si l''est, incarcades subra su ligàmene imbeniente pro
         la cunfirmare:'
+      welcome: A pustis de àere cunfirmadu su contu tuo t'amus a frunire unas cantas
+        informatziones additzionales pro ti permìtere de incumintzare.
     email_confirm:
       subject: '[OpenStreetMap] Cunfirma s''indiritzu de posta'
       greeting: Salude,
       hopefully_you: Calicunu (isperamus tue matessi) cheret cambiare s'indiritzu
         eletrònicu tuo dae %{server_url} cun %{new_address}.
+      click_the_link: Si ses istadu tue incarca in su ligàmene inoghe in suta pro
+        cunfirmare sa modìfica.
     lost_password:
+      subject: '[OpenStreetMap] Dimanda de riprìstinu de sa crae de intrada'
       greeting: Salude,
+      hopefully_you: Calicunu (forsis tue) at pedidu de ripristinare sa crae de intrada
+        de su contu de openstreetmap.org assotziadu a custu indiritzu de posta eletrònica.
+      click_the_link: Si ses istadu tue incarca in su ligàmene inoghe in suta pro
+        ripristinare sa crae de intrada tua.
     note_comment_notification:
+      anonymous: Un'utente anònimu
       greeting: Salude,
+      commented:
+        subject_own: '[OpenStreetMap] %{commenter} at cummentadu una de sas notas
+          tuas'
+        subject_other: '[OpenStreetMap] %{commenter} at cummentadu una nota chi t''interessat'
+        your_note: '%{commenter} at lassadu unu cummentu a una de sas notas tuas in
+          sa mapa a curtzu a %{place}.'
+        your_note_html: '%{commenter} at lassadu unu cummentu a una de sas notas tuas
+          in sa mapa a curtzu a %{place}.'
+        commented_note: '%{commenter} at lassadu unu cummentu a una de sas notas in
+          sa mapa chi as cummentadu. Sa nota est a curtzu a %{place}.'
+        commented_note_html: '%{commenter} at lassadu unu cummentu a una de sas notas
+          in sa mapa chi as cummentadu. Sa nota est a curtzu a %{place}.'
+      closed:
+        subject_own: '[OpenStreetMap] %{commenter} at risòlvidu una de sas notas tuas'
+        subject_other: '[OpenStreetMap] %{commenter} at risòlvidu una nota chi t''interessat'
+        your_note: '%{commenter} at risòlvidu una de sas notas tuas in sa mapa a curtzu
+          a %{place}.'
+        your_note_html: '%{commenter} at risòlvidu una de sas notas tuas in sa mapa
+          a curtzu a %{place}.'
+        commented_note: '%{commenter} at risòlvidu una de sas notas in sa mapa chi
+          aias cummentadu. Sa nota est a curtzu a %{place}.'
+        commented_note_html: '%{commenter} at risòlvidu una de sas notas in sa mapa
+          chi aias cummentadu. Sa nota est a curtzu a %{place}.'
+      reopened:
+        subject_own: '[OpenStreetMap] %{commenter} at torradu a ativare una de sas
+          notas tuas'
+        subject_other: '[OpenStreetMap] %{commenter} at torradu a ativare una nota
+          chi t''interessat'
+        your_note: '[OpenStreetMap] %{commenter} at torradu a ativare una de sas notas
+          de sa mapa tuas a curtzu a %{place}.'
+        your_note_html: '[OpenStreetMap] %{commenter} at torradu a ativare una de
+          sas notas de sa mapa tuas a curtzu a %{place}.'
+        commented_note: '[OpenStreetMap] %{commenter} at torradu a ativare una de
+          sas notas de sa mapa chi as cummentadu. Sa nota est a curtzu a %{place}.'
+        commented_note_html: '[OpenStreetMap] %{commenter} at torradu a ativare una
+          de sas notas de sa mapa chi as cummentadu. Sa nota est a curtzu a %{place}.'
+      details: Podes agatare detàllios in prus subra de sa nota in %{url}.
+      details_html: Podes agatare detàllios in prus subra de sa nota in %{url}.
     changeset_comment_notification:
       hi: Salude %{to_user},
       greeting: Salude,
+      commented:
+        subject_own: '[OpenStreetMap] %{commenter} at cummentadu unu de sos annantos
+          de modìficas tuos'
+        subject_other: '[OpenStreetMap] %{commenter} at cummentadu un''annantu de
+          modìficas chi t''interessat'
+        your_changeset: '%{commenter} at lassadu unu cummentu a sas %{time} a unu
+          de sos annantos de modìficas tuos'
+        your_changeset_html: '%{commenter} at lassadu unu cummentu a sas %{time} a
+          unu de sos annantos de modìficas tuos'
+        commented_changeset: '%{commenter} at lassadu unu cummentu a sas %{time} a
+          unu de sos annantos de modìficas chi ses sighende creadu dae %{changeset_author}'
+        commented_changeset_html: '%{commenter} at lassadu unu cummentu a sas %{time}
+          a unu de sos annantos de modìficas chi ses sighende creadu dae %{changeset_author}'
+        partial_changeset_with_comment: cun su cummentu '%{changeset_comment}'
+        partial_changeset_with_comment_html: cun su cummentu '%{changeset_comment}'
+        partial_changeset_without_comment: chene cummentos
+      details: Podes agatare detàllios in prus subra de s'annantu de modìficas in
+        %{url}.
+      details_html: Podes agatare detàllios in prus subra de s'annantu de modìficas
+        in %{url}.
+      unsubscribe: Pro annullare s'iscritzione a sas atualizatzione de custu annantu
+        de modìficas bìsita %{url} e incarca in "Annulla s'iscritzione".
+      unsubscribe_html: Pro annullare s'iscritzione a sas atualizatzione de custu
+        annantu de modìficas bìsita %{url} e incarca in "Annulla s'iscritzione".
   confirmations:
     confirm:
+      heading: Controlla sa posta eletrònica tua!
+      introduction_1: T'amus imbiadu una lìtera eletrònica de cunfirma.
+      introduction_2: Cunfirma su contu tuo incarchende in su ligàmene in sa lìtera
+        eletrònica chi t'amus imbiadu e as a pòdere incumintzare a modificare sa mapa.
+      press confirm button: Incarca su butone de cunfirma inoghe in suta pro ativare
+        su contu tuo.
       button: Cunfirma
+      success: As cunfirmadu su contu tuo, gràtzias pro t'èssere registradu!
+      already active: Custu contu est istadu giai cunfirmadu.
+      unknown token: Custu còdighe de cunfirma est iscadidu o no esistet.
+      reconfirm_html: Si tenes bisòngiu chi ti torremus a imbiare sa lìtera de cunfirma,
+        <a href="%{reconfirm}">incarca inoghe</a>.
+    confirm_resend:
+      failure: Utente %{name} no agatadu.
     confirm_email:
+      heading: Cunfirma una modìfica de indiritzu de posta eletrònica
+      press confirm button: Incarca su butone de cunfirma inoghe in suta pro cunfirmare
+        s'indiritzu de posta nou tuo.
       button: Cunfirma
+      success: As cunfirmadu su cambiamentu de s'indiritzu de posta eletrònica tuo!
+      failure: Un'indiritzu de posta eletrònica est istadu giai cunfirmadu cun custu
+        getone de autenticatzione.
+      unknown_token: Custu còdighe de cunfirma est iscadidu o no esistet.
+    resend_success_flash:
+      confirmation_sent: T'amus imbiadu una nota de cunfirma a %{email}, e cando as
+        a cunfirmare su contu tuo as a pòdere incumintzare a mapare.
+      whitelist: Si impreas unu sistema anti-arga chi imbiat rechestas de cunfirma
+        tando assegura·ti de annànghere %{sender} a sa lista bianca tua, dae chi no
+        amus a pòdere rispòndere a peruna rechesta de cunfirma.
   messages:
     inbox:
+      title: Posta in intrada
+      my_inbox: Posta in intrada mea
+      my_outbox: Posta in essida mea
+      messages: Tenes %{new_messages} e %{old_messages}
+      new_messages:
+        one: '%{count} messàgiu nou'
+        other: '%{count} messàgios noos'
+      old_messages:
+        one: '%{count} messàgiu betzu'
+        other: '%{count} messàgios betzos'
       from: Dae
       subject: 'Sugetu:'
       date: Data
+      no_messages_yet_html: Non tenes galu messàgios. Proite non chircas a calicuna
+        de sas %{people_mapping_nearby_link}?
+      people_mapping_nearby: persones chi mapant a curtzu a tie
     message_summary:
       unread_button: Sinna comente no lèghidu
       read_button: Sinna comente lèghidu
@@ -1148,13 +1764,34 @@ sc:
       send_message_to_html: Imbia unu messàgiu nou a %{name}
       subject: 'Sugetu:'
       body: Corpus
+      back_to_inbox: Torra a sa posta in intrada
     create:
       message_sent: Messàgiu imbiadu
+      limit_exceeded: In custos ùrtimos tempos as imbiadu messàgios medas. Iseta unu
+        pagu in antis de proare a nd'imbiare àteros.
+    no_such_message:
+      title: Non b'at perunu messàgiu gasi
+      heading: Non b'at perunu messàgiu gasi
+      body: Non b'at perunu messàgiu cun custu id.
     outbox:
+      title: Posta in essida
+      my_inbox: Posta in intrada mea
+      my_outbox: Posta in essida mea
+      messages:
+        one: Tenes %{count} messàgiu imbiadu
+        other: Tenes %{count} messàgios imbiados
       to: Cara a
       subject: 'Sugetu:'
       date: Data
+      no_sent_messages_html: Non tenes galu messàgios imbiados. Proite non chircas
+        a calicuna de sas %{people_mapping_nearby_link}?
+      people_mapping_nearby: persones chi mapant a curtzu a tie
+    reply:
+      wrong_user: Ti ses autenticadu comente `%{user}', ma su messàgiu a su cale cheres
+        rispòndere no est istadu imbiadu a cussu utente. Faghe s'atzessu comente s'utente
+        curretu pro li torrare risposta.
     show:
+      title: Leghe su messàgiu
       from: Dae
       subject: 'Sugetu:'
       date: Data
@@ -1163,16 +1800,161 @@ sc:
       destroy_button: Cantzella
       back: In palas
       to: Cara a
+      wrong_user: Ti ses autenticadu comente `%{user}', ma su messàgiu chi as pedidu
+        de pòdere lèghere no est istadu imbiadu a cussu utente. Faghe s'atzessu comente
+        s'utente curretu pro lu lèghere.
     sent_message_summary:
       destroy_button: Cantzella
+    mark:
+      as_read: Messàgiu marcadu comente lèghidu
+      as_unread: Messàgiu marcadu comente non lèghidu
     destroy:
       destroyed: Messàgiu iscantzelladu
+  passwords:
+    lost_password:
+      title: Crae de intrada pèrdida
+      heading: Ais ismentigadu sa crae de intrada?
+      email address: 'Indiritzu de posta eletrònica:'
+      new password button: Riprìstina sa crae de intrada
+      help_text: Inserta s'indiritzu de posta chi as impreadu pro ti registrare, l'amus
+        a imbiare unu ligàmene chi as a pòdere impreare pro ripristinare sa crae de
+        intrada tua.
+      notice email on way: Nos dispraghet chi l'apas pèrdida :-( ma t'amus imbiadu
+        unu messàgiu de posta eletrònica pro chi la potzas ripristinare.
+      notice email cannot find: A dolu mannu non semus resèssidos a agatare custu
+        indiritzu de posta eletrònica.
+    reset_password:
+      title: Riprìstina sa crae de intrada
+      heading: Riprìstina sa crae de intrada pro %{user}
+      reset: Riprìstina sa crae de intrada
+      flash changed: Sa crae de intrada tua est istada mudada.
+      flash token bad: No amus agatadu custu getone, proa a verificare s'URL.
+  preferences:
+    show:
+      title: Preferèntzias meas
+      preferred_editor: Editore preferidu
+      preferred_languages: Limbas preferidas
+      edit_preferences: Modìfica sas preferèntzias
+    edit:
+      title: Modìfica sas preferèntzias
+      save: Atualiza sas preferèntzias
+      cancel: Annulla
+    update:
+      failure: No at fatu a atualizare sas preferèntzias.
+    update_success_flash:
+      message: Preferèntzias atualizadas.
+  profiles:
+    edit:
+      title: Modìfica su profilu
+      save: Atualiza su profilu
+      cancel: Annulla
+      image: Immàgine
+      gravatar:
+        gravatar: Imprea Gravatar
+        link: https://wiki.openstreetmap.org/wiki/Gravatar
+        what_is_gravatar: Ite est Gravatar?
+        disabled: Gravatar est istadu inabilitadu.
+        enabled: Sa visualizatzione de su Gravatar tuo est istada abilitada.
+      new image: Annanghe un'immàgine
+      keep image: Mantene s'immàgine atuale
+      delete image: Boga s'immàgine atuale
+      replace image: Remplasa s'immàgine atuale
+      image size hint: (sas immàgines cuadradas de a su nessi 100x100 funtzionant
+        mègius)
+      home location: Positzione de incumintzu
+      no home location: No as insertadu sa positzione de incumintzu tua.
+      update home location on click: Atualizare sa positzione de incumintzu incarchende
+        in sa mapa?
+    update:
+      success: Profilu atualizadu.
+      failure: Non s'est pòdidu atualizare su profilu.
   sessions:
     new:
       title: Intra
       heading: Intra
+      email or username: 'Indiritzu de posta o nùmene de utente:'
+      password: 'Crae:'
+      openid_html: '%{logo} OpenID:'
+      remember: Ammenta·ti de mene
+      lost password link: Ais pèrdidu sa crae de intrada tua?
       login_button: Intra
+      register now: Registra·ti como
+      with username: 'Tenes giai unu contu de OpenStreetMap? Intra cun su nùmene utente
+        tuo e sa crae de intrada tua:'
+      with external: 'In alternativa, intra impreende unu servìtziu esternu:'
+      new to osm: Ses nou in OpenStreetMap?
+      to make changes: Pro fàghere modìficas a sos datos de OpenStreetMap, depes tènnere
+        unu contu.
+      create account minute: Crea unu contu. Bi bolet petzi unu minutu.
+      no account: Non tenes unu contu?
+      account not active: Su contu tuo no est galu ativu.<br />Imprea su ligàmene
+        in sa lìtera eletrònica de cunfirma pro ativare su contu tuo, o <a href="%{reconfirm}">pedi
+        una lìtera de cunfirma noa</a>.
+      account is suspended: Su contu tuo est istadu suspèndidu pro neghe de atividades
+        suspetas.<br />Cuntata <a href="%{webmaster}">s'assistèntzia</a> si nde cheres
+        chistionare.
+      auth failure: Non podes intrare cun custos detàllios.
+      openid_logo_alt: Intra cun un'OpenID
+      auth_providers:
+        openid:
+          title: Intra cun OpenID
+          alt: Intra cun un'URL de OpenID
+        google:
+          title: Intra cun Google
+          alt: Intra cun un'OpenID de Google
+        facebook:
+          title: Intra cun Facebook
+          alt: Intra cun unu contu de Facebook
+        windowslive:
+          title: Intra cun Windows Live
+          alt: Intra cun unu contu de Windows Live
+        github:
+          title: Intra cun GitHub
+          alt: Intra cun unu contu de GitHub
+        wikipedia:
+          title: Intra cun Wikipedia
+          alt: Intra cun unu contu de Wikipedia
+        wordpress:
+          title: Intra cun Wordpress
+          alt: Intra cun un'OpenID de Wordpress
+        aol:
+          title: Intra cun AOL
+          alt: Intra cun un'OpenID de AOL
+    destroy:
+      title: Essi
+      heading: Essi dae OpenStreetMap
+      logout_button: Essi
+  shared:
+    markdown_help:
+      title_html: Analizadu cun <a href="https://kramdown.gettalong.org/quickref.html">kramdown</a>
+      headings: Intestatziones
+      heading: Intestatzione
+      subheading: Sutatìtulu
+      unordered: Lista no ordinada
+      ordered: Lista ordinada
+      first: Primu elementu
+      second: Segundu elementu
+      link: Ligàmene
+      text: Testu
+      image: Immàgine
+      alt: Testu alternativu
+      url: URL
+    richtext_field:
+      edit: Modìfica
+      preview: Antiprima
   site:
+    about:
+      next: Imbeniente
+      copyright_html: <span>&copy;</span>Contribuidores<br>de OpenStreetMap
+      used_by_html: '%{name} frunit datos cartogràficos a mìgias de sitos web, aplicatziones
+        pro telefoneddos e dispositivos fìsicos'
+      lede_text: OpenStreetMap est fraigadu dae una comunidade de mapadores chi frunint
+        e agiornant datos subra de caminos, camineras, cafeterias, istatziones de
+        ferrovia e meda de prus in totu su mundu.
+      local_knowledge_title: Connoschèntzia locale
+      local_knowledge_html: |-
+        OpenStreetMap daet valore a sa connoschèntzia locale. Sos collaboradores impreant immàgines aèreas, dispositivos GPS e mapas clàssicas de su terrinu pro verificare chi OSM
+        siat pretzisas e atualizadas.
     index:
       createnote: Annanghe una nota
     export:
@@ -1257,14 +2039,14 @@ sc:
       rules:
         title: Règulas!
       add_a_note:
-        title: No Time To Edit? Annanghe una nota!
+        title: Non tenes tempus pro fàghere modìficas? Annanghe una nota!
   traces:
     new:
       visibility_help: ite cheret nàrrere?
       help: Agiudu
     create:
-      upload_failed: Sorry, the GPX upload failed. An administrator has been alerted
-        to the error. Torra·bi a proare.
+      upload_failed: Su carrigamentu de su GPX est fallidu. Un'amministradore est
+        istadu avisadu de s'errore. Torra·bi a proare.
     edit:
       visibility_help: ite cheret nàrrere?
     trace_optionals:
@@ -1340,7 +2122,7 @@ sc:
       show:
         comment: Cummentu
         subscribe: Sutaiscrie·ti
-        unsubscribe: Annulla sa sutiscritzione
+        unsubscribe: Annulla s'iscritzione
         hide_comment: cua
         unhide_comment: ammustra
     notes:
index 2931bceb8da9cc4b2fa52a078aac8b105a103a6d..2b86107c1a46ad0c9c297de86dd72aecfca5ae7d 100644 (file)
@@ -496,7 +496,7 @@ sk:
       reopened_by_html: Opätovne aktivoval používateľ %{user} <abbr title='%{exact_time}'>%{when}</abbr>
       reopened_by_anonymous_html: Opätovne aktivoval anonymný používateľ <abbr title='%{exact_time}'>%{when}</abbr>
       hidden_by_html: Skryl %{user} <abbr title='%{exact_time}'>%{when}</abbr>
-      report: Nahlásiť túto poznámku
+      report: nahlásiť túto poznámku
     query:
       title: Prieskum prvkov
       introduction: Pre nájdenie okolitých prvkov kliknite na mapu.
index 49f908de8b06ac6050fc08d1a28d5e3fd3839cf6..2ca9126b600753b80605dfa1baf7429ca9cd99e7 100644 (file)
@@ -57,7 +57,7 @@ tr:
     dir: ltr
   time:
     formats:
-      friendly: '%e %B %Y saat %H:%M'
+      friendly: '%e %B %Y saat %H.%M'
   helpers:
     file:
       prompt: Dosya seç
@@ -102,7 +102,7 @@ tr:
       issue: Sorun
       language: Dil
       message: Mesaj
-      node: Düğüm
+      node: Nokta
       node_tag: Düğüm Etiketi
       notifier: Bildiren
       old_node: Eski Nokta
@@ -2419,7 +2419,7 @@ tr:
           ya da bir ağaç olabilir.
         way_html: <strong>Yol</strong>, bir çizgi ya da alan, bir cadde, akarsu, göl
           ya da bina olabilir.
-        tag_html: <strong>Etiket</strong>, bir düğümün ya da yolun veri parçasıdır.
+        tag_html: <strong>Etiket</strong>, bir noktanın ya da yolun veri parçasıdır.
           Bu bir restoranın ismi ya da yolun hız sınırı olabilir.
       rules:
         title: Kuralları!
@@ -3196,7 +3196,7 @@ tr:
           tenth: onuncu
       time: Zaman
     query:
-      node: Düğüm
+      node: Nokta
       way: Yol
       relation: İlişki
       nothing_found: Özellik bulunamadı
index fa1324d7a6feb43b327e6fa4b44bb8a1ad067a0a..020dcb446a704a8c08d6ec598aad306def89cb1c 100644 (file)
@@ -467,7 +467,7 @@ vi:
       reopened_by_html: Mở lại bởi %{user} <abbr title='%{exact_time}'>%{when}</abbr>
       reopened_by_anonymous_html: Mở lại vô danh <abbr title='%{exact_time}'>%{when}</abbr>
       hidden_by_html: Ẩn bởi %{user} <abbr title='%{exact_time}'>%{when}</abbr>
-      report: Báo cáo ghi chú này
+      report: báo cáo ghi chú này
       coordinates_html: '%{latitude}, %{longitude}'
     query:
       title: Thăm dò Yếu tố
@@ -1403,6 +1403,7 @@ vi:
   issue_comments:
     create:
       comment_created: Bình luận của bạn đã được tạo ra thành công
+      issue_reassigned: Đã tạo bình luận của bạn và chỉ định lại vấn đề
   reports:
     new:
       title_html: Báo cáo %{link}
@@ -2199,6 +2200,7 @@ vi:
           common:
           - Đất công
           - bãi cỏ
+          - vườn
           retail: Khu vực buôn bán
           industrial: Khu vực công nghiệp
           commercial: Khu vực thương mại
@@ -2354,6 +2356,7 @@ vi:
       in: trong
     index:
       public_traces: Tuyến đường GPS công khai
+      my_gps_traces: Tuyến GPS của Tôi
       public_traces_from: Tuyến đường GPS công khai của %{user}
       description: Xem những tuyến đường GPS được tải lên gần đây
       tagged_with: ' có thẻ %{tags}'
@@ -2642,6 +2645,8 @@ vi:
       activate_user: Kích hoạt Tài khoản Này
       deactivate_user: Vô hiệu hóa Tài khoản Này
       confirm_user: Xác nhận Người dùng Này
+      unconfirm_user: Bỏ Xác nhận Người dùng Này
+      unsuspend_user: Bỏ cấm Người dùng Này
       hide_user: Ẩn Tài khoản Này
       unhide_user: Hiện Tài khoản Này
       delete_user: Xóa Tài khoản Này
@@ -2926,6 +2931,9 @@ vi:
         reactivate: Mở lại
         comment_and_resolve: Bình luận & Giải quyết
         comment: Bình luận
+        report_link_html: Nếu ghi chú này chứa thông tin nhạy cảm có thể cần xóa,
+          bạn có thể %{link}. Còn nếu ghi chú có vấn đề khác, xin vui lòng giải quyết
+          lấy bằng cách để lại lời bình luận.
     edit_help: Di chuyển bản đồ và phóng to một vị trí mà bạn muốn sửa đổi, rồi nhấn
       chuột vào đây.
     directions:
index fd8fd478c652c5a83f32b64e43ddc21d23f4a93d..9304a98f123e6bac50facc49a85e6ebf4e1c5da5 100644 (file)
@@ -1516,6 +1516,7 @@ zh-CN:
   issue_comments:
     create:
       comment_created: 已成功创建评论
+      issue_reassigned: 已创建您的评论,并重新分配问题
   reports:
     new:
       title_html: 举报%{link}
@@ -2104,8 +2105,12 @@ zh-CN:
         title: 邮件列表
         description: 询问问题或在广泛或局部的邮件列表中讨论有趣事件
       forums:
-        title: 论坛
+        title: 论坛(旧版)
         description: 面向更喜欢电子公告栏样式界面的用户的问题和讨论。
+      community:
+        url: https://community.openstreetmap.org/
+        title: 社区论坛
+        description: 用于讨论 OpenStreetMap 的共享场所。
       irc:
         title: IRC
         description: 在很多不同的语言和在很多话题间交互聊天。
similarity index 84%
rename from config/locales/zh-hk.yml
rename to config/locales/zh-HK.yml
index b2ea1ba749a1d07c82dc724e2088799b93851e7a..cc9335fea84d0e4a8b6e092439690b65929dd08a 100644 (file)
@@ -7,10 +7,10 @@
 # Author: LuciferianThomas
 # Author: StarrySky
 ---
-zh-hk:
+zh-HK:
   time:
     formats:
-      friendly: '%Y年%m月%e日 %H:%M'
+      friendly: '%Y年%-m月%-d日%H:%M'
   helpers:
     file:
       prompt: 選擇檔案
@@ -49,7 +49,7 @@ zh-hk:
       changeset: 變更集
       changeset_tag: 變更集標籤
       country: 國家
-      diary_comment: æ\97¥è¨\98註解
+      diary_comment: æ\97¥è¨\98è©\95è«\96
       diary_entry: 日記項目
       friend: 朋友
       issue: 問題
@@ -105,11 +105,13 @@ zh-hk:
         name: 名稱
         redirect_uri: 重新導向 URI
         confidential: 保密的應用程式?
+        scopes: 權限
       friend:
         user: 用戶
         friend: 朋友
       trace:
         user: 用戶
+        visible: 能見度
         name: 檔案名稱
         size: 大小
         latitude: 緯度
@@ -124,19 +126,39 @@ zh-hk:
         title: 主題
         body: 內文
         recipient: 收件者
+      redaction:
+        title: 標題
+        description: 描述
       report:
+        category: 選擇您舉報的原因
         details: 請就這問題提供多點詳情(必需)。
       user:
+        auth_provider: 認證提供者
+        auth_uid: 認證UID
         email: 電郵
+        email_confirmation: 電郵確認
+        new_email: 新電郵地址
         active: 活躍
         display_name: 顯示名稱
-        description: 描述
-        languages: 語言
+        description: 個人檔案描述
+        home_lat: 緯度
+        home_lon: 經度
+        languages: 偏好的語言
+        preferred_editor: 偏好的編輯軟件
         pass_crypt: 密碼
         pass_crypt_confirmation: 確認密碼
     help:
+      doorkeeper/application:
+        redirect_uri: 每個URI位址各開一行輸入
       trace:
         tagstring: 以逗號分隔
+      user_block:
+        reason: 使用者被封鎖的理由。請盡可能保持平靜和理性的態度,寫下有關事件狀況你所能夠提供最詳盡的細節,並考慮到這訊息會公開給公眾讀取。謹記並非所有使用者都能夠明白社群的專用術語,所以請嘗試使用通俗的表達方式。
+        needs_view: 是否需要使用者先登入後才讓此封鎖得以清除?
+      user:
+        email_confirmation: 閣下的電郵地址並不會被公開展示,請參閱我們的<a href="https://wiki.osmfoundation.org/wiki/Privacy_Policy"
+          title="OSMF privacy policy including section on email addresses">私隱政策</a>頁面以獲取進一步的資訊。
+        new_email: (永遠不會公開展示)
   datetime:
     distance_in_words_ago:
       about_x_hours:
@@ -183,7 +205,7 @@ zh-hk:
       description: iD (瀏覽器內的編輯器)
     remote:
       name: 遙遠控制
-      description: 遙遠控制 (JOSM 或 Merkaartor)
+      description: 遙遠控制 (JOSM、Potlatch、Merkaartor)
   auth:
     providers:
       none: 無
@@ -204,11 +226,64 @@ zh-hk:
         closed_at_by_html: 已由%{user}於%{when}解決
         reopened_at_html: 於%{when}重新開啟
         reopened_at_by_html: 由%{user}於%{when}重新開啟
+      rss:
+        title: OpenStreetMap註記
       entry:
         comment: 評論
+  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: 編輯帳號
       my settings: 我的設定
+      current email address: 現在的電郵地址
+      external auth: 外部認證
+      openid:
+        link: https://wiki.openstreetmap.org/wiki/OpenID
+        link text: 這是什麼?
+      public editing:
+        heading: 公開編輯
+        enabled: 已啟用。並非匿名而可以編輯資料。
+        enabled link: https://wiki.openstreetmap.org/wiki/Anonymous_edits
+        enabled link text: 這是什麼?
+        disabled: 已停用而不能編輯資料,所有以往的編輯為匿名。
+        disabled link text: 為什麼我不能編輯?
+      public editing note:
+        heading: 公開編輯
+        html: 目前您的編輯是匿名的,人們不能發送訊息給您或看到您的位置。要顯示你的編輯以及讓別人能透過網站與您聯繫,請點選下面的按鈕。<b>自從0.6
+          API更新,只有公開使用者可以編輯地圖資料</b>。(<a href="https://wiki.openstreetmap.org/wiki/Anonymous_edits">了解原因</a>)。<ul><li>成為公開使用者不會令您的電郵地址被透露。</li><li>這個動作不能逆轉,所有新的使用者現在都預設為公開的。</li></ul>
+      contributor terms:
+        heading: 貢獻者條款
+        agreed: 您已同意新的貢獻者條款。
+        not yet agreed: 您尚未同意新的貢獻者條款。
+        review link text: 請在有空時按此連結查閱並接受新的貢獻者條款。
+        agreed_with_pd: 您亦同意將您的編輯放到公共領域。
+        link: https://wiki.osmfoundation.org/wiki/Licence/Contributor_Terms
+        link text: 這是什麼?
+      save changes button: 儲存變更
+      make edits public button: 將我所有的編輯設為公開
+      delete_account: 刪除帳號……
+    update:
+      success_confirm_needed: 使用者資訊更新成功。請檢查電郵,以確認新電郵地址。
+      success: 使用者資訊更新成功。
+    destroy:
+      success: 帳號已刪除。
   browse:
     version: 版本
     in_changeset: 變更集
@@ -222,6 +297,8 @@ zh-hk:
     changeset:
       title: 變更集:%{id}
       belongs_to: 製作者
+      changesetxml: 變更集XML
+      osmchangexml: osmChange格式XML
       feed:
         title: 變更集 %{id}
     relation_member:
@@ -234,17 +311,25 @@ zh-hk:
         node: 節點
         way: 路徑
         changeset: 變更集
+        note: 註記
     timeout:
       type:
         node: 節點
         way: 路徑
         changeset: 變更集
+        note: 註記
     redacted:
       type:
         node: 節點
         way: 路徑
     start_rjs:
       feature_warning: 正在載入%{num_features}項地圖特徵,可能會拖慢您的瀏覽器或導致瀏覽器未能回應。您是否肯定想要顯示這些資料?
+    note:
+      title: 註記:%{id}
+      new_note: 新增註記
+      open_title: 未解決的註記:#%{note_name}
+      closed_title: 已解決的註記:#%{note_name}
+      report: 舉報此註記
     query:
       title: 查詢地圖特徴
       introduction: 點擊地圖以尋找附近的地圖特徵。
@@ -277,7 +362,7 @@ zh-hk:
       no nearby users: 附近還沒有已加入製圖的用戶。
   diary_entries:
     form:
-      location: 位置
+      location: 位置
       use_map_link: 使用地圖
     index:
       title: 用戶日記
@@ -318,6 +403,9 @@ zh-hk:
     remove_friend:
       heading: 刪除好友%{user}?
   geocoder:
+    search:
+      title:
+        ca_postcode_html: 來自 <a href="https://geocoder.ca/">Geocoder.CA</a> 的結果
     search_osm_nominatim:
       prefix:
         aerialway:
@@ -334,8 +422,8 @@ zh-hk:
         aeroway:
           aerodrome: 機場
           airstrip: 飛機跑道
-          apron: 停機坪
-          gate: 閘口
+          apron: 機場停機坪
+          gate: 機場閘口
           hangar: 機庫
           helipad: 直升機坪
           holding_position: 等待位置
@@ -344,7 +432,7 @@ zh-hk:
           runway: 跑道
           taxilane: 滑行道
           taxiway: 滑行道
-          terminal: 客運大樓
+          terminal: 機場客運大樓
           windsock: 布製風標
         amenity:
           animal_boarding: 動物寄養
@@ -749,7 +837,7 @@ zh-hk:
           mineshaft: 礦井
           monitoring_station: 監控站台
           petroleum_well: 油井
-          pier: 碼頭
+          pier: 棧橋/碼頭(Pier)
           pipeline: 管線
           pumping_station: 泵站
           reservoir_covered: 有蓋蓄水槽
@@ -812,7 +900,14 @@ zh-hk:
           reef: 礁
           ridge: 山脊
           rock: 獨立岩
+          sand: 沙地
+          stone: 岩石
+          strait: 海峽
+          tree: 樹木
+          valley: 山谷
           volcano: 火山
+          water: 水
+          wetland: 濕地
           "yes": 自然特徵
         office:
           travel_agent: 旅行社
@@ -881,7 +976,7 @@ zh-hk:
           fishing: 釣魚用品店
           florist: 花店
           hairdresser: 理髮店
-          hifi: Hi-Fi
+          hifi: Hi-Fi
           houseware: 生活用品店
           ice_cream: 冰淇淋店
           interior_decoration: 室內裝潢
@@ -893,15 +988,19 @@ zh-hk:
           mobile_phone: 手機店
           optician: 視光師
           organic: 有機食品店
+          outdoor: 戶外用品店
           pet: 寵物店
           seafood: 海鮮店
           second_hand: 二手商店
           shoes: 鞋店
+          sports: 運動用品店
           stationery: 文具店
           supermarket: 超級市場
+          tattoo: 紋身店
           tobacco: 煙草店
           toys: 玩具店
           travel_agency: 旅行社
+          vacant: 空置店舖
           "yes": 商店
         tourism:
           museum: 博物館
@@ -940,12 +1039,17 @@ zh-hk:
       resolve: 解決
       ignore: 忽略
       reopen: 重新開啟
+    helper:
+      reportable_title:
+        note: 註記#%{note_id}
   reports:
     new:
       categories:
         user:
           spam_label: 此用戶個人檔案為/含有垃圾信息
           threat_label: 此用戶個人檔案含有威脅或恐嚇內容
+        note:
+          spam_label: 此註記是垃圾訊息
     create:
       provide_details: 請提供所需要的詳情
   layouts:
@@ -1015,6 +1119,8 @@ zh-hk:
     destroy:
       title: 登出
   site:
+    index:
+      createnote: 添加註記
     edit:
       not_public: 您尚未把編輯公開。
       not_public_description_html: 您不這樣設定的話就將再無法編輯地圖。您可以在%{user_page}將閣下的編輯設為公開。
@@ -1107,6 +1213,9 @@ zh-hk:
   oauth:
     authorize:
       allow_read_prefs: 讀取您的用戶設定。
+      allow_write_notes: 修改註記。
+    scopes:
+      write_notes: 修改註記
   oauth_clients:
     show:
       requests: 向用戶要求下列權限:
@@ -1119,7 +1228,7 @@ zh-hk:
     new:
       title: 註冊
       no_auto_account_create: 很不幸地我們目前無法為您自動建立帳號。
-      contact_support_html: 請聯絡<a href="%{support}">網站管理員</a>以安排建立帳號,我們會儘快嘗試並處理相關要求。
+      contact_support_html: 請聯絡<a href="%{support}">支援人員</a>以安排建立帳號,我們會儘快嘗試並處理相關要求。
       about:
         header: 自由而可編輯
       email address: 電郵地址:
@@ -1148,7 +1257,9 @@ zh-hk:
       title: 沒有這用戶
       body: 抱歉,沒有名為%{user}的用戶。請檢查您的拼寫,或者您可能按到了錯誤的連結。
     show:
+      my notes: 我的註記
       my settings: 我的設定
+      notes: 地圖註記
       user location: 用戶位置
       report: 舉報此用戶
     index:
@@ -1156,6 +1267,11 @@ zh-hk:
       heading: 用戶
     auth_association:
       option_2: 如果您已經有帳號,您可以用該帳號的用戶名稱和密碼登入,然後到用戶設定中把您的ID和帳號關聯到一起。
+  notes:
+    index:
+      title: 由%{user}提交或評論過的註記
+      heading: '%{user}的註記'
+      no_notes: 沒有註記
   javascripts:
     share:
       embed: HTML
@@ -1175,13 +1291,17 @@ zh-hk:
         opnvkarte: ÖPNVKarte
       layers:
         header: 地圖圖層
+        notes: 地圖註記
         title: 圖層
     site:
+      createnote_tooltip: 在地圖加入註記
+      createnote_disabled_tooltip: 放大以在地圖加入註記
       queryfeature_tooltip: 查詢地圖特徴
       queryfeature_disabled_tooltip: 放大以查詢地圖特徴
     query:
       nothing_found: 沒找到地圖特徵
     context:
+      add_note: 在此加入註記
       query_features: 查詢地圖特徴
       centre_map: 將地圖置中於此
 ...
index a62ffa68436c148912614ec0ebdf7049e1822861..202dbef9813975c503f73a25b07909550f5a5b3e 100644 (file)
@@ -2107,8 +2107,12 @@ zh-TW:
         title: 郵件論壇
         description: 在不同主題或是地區的郵件論壇問問題或是討論有趣的事物。
       forums:
-        title: 論壇
+        title: 論壇(舊版)
         description: 給習慣論壇型式的地方問問題和討論
+      community:
+        url: https://community.openstreetmap.org/
+        title: 社群論壇
+        description: 討論有關 OpenStreetMap 的分享場所。
       irc:
         title: IRC
         description: 使用各種不同語言在各種主題聊天互動。
index f6f6791252524e4e1e739d923de3aec138859f75..ca547a972d7df72ccb9bd9c6dc03823b648ee50e 100644 (file)
@@ -19,7 +19,7 @@ class Country
 
   def self.load_countries
     countries = {}
-    xml = REXML::Document.new(File.read(Rails.root.join("config/countries.xml")))
+    xml = REXML::Document.new(Rails.root.join("config/countries.xml").read)
 
     xml.elements.each("geonames/country") do |ele|
       code = ele.get_text("countryCode").to_s
index fd0855fc9e02bf81e091ff443eb2713cce53e00c..f847ec84e323e2a6871f35e824b7d7e7bb53ff35 100644 (file)
@@ -8,7 +8,7 @@ module Nominatim
     language ||= http_accept_language.user_preferred_languages.join(",")
 
     Rails.cache.fetch "/nominatim/location/#{lat}/#{lon}/#{zoom}/#{language}" do
-      url = "https://nominatim.openstreetmap.org/reverse?lat=#{lat}&lon=#{lon}&zoom=#{zoom}&accept-language=#{language}"
+      url = "#{Settings.nominatim_url}reverse?lat=#{lat}&lon=#{lon}&zoom=#{zoom}&accept-language=#{language}"
 
       begin
         response = Timeout.timeout(4) do
index 8fa09f4d7233c77858b1bf3a0c90a9ae88e24651..762df66484d185c82bc52f305e739a989421a1cc 100644 (file)
@@ -166,14 +166,14 @@ class TraceTest < ActiveSupport::TestCase
   end
 
   def test_large_picture
-    picture = File.read(Rails.root.join("test/gpx/fixtures/a.gif"), :mode => "rb")
+    picture = Rails.root.join("test/gpx/fixtures/a.gif").read(:mode => "rb")
     trace = create(:trace, :fixture => "a")
 
     assert_equal picture, trace.large_picture
   end
 
   def test_icon_picture
-    picture = File.read(Rails.root.join("test/gpx/fixtures/a_icon.gif"), :mode => "rb")
+    picture = Rails.root.join("test/gpx/fixtures/a_icon.gif").read(:mode => "rb")
     trace = create(:trace, :fixture => "a")
 
     assert_equal picture, trace.icon_picture
index 72312b045ebb8bb666e9a5a13399eea625c40f63..8449c30931335f74e802824b82dd66f96f7f0f68 100644 (file)
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,10 +2,10 @@
 # yarn lockfile v1
 
 
-"@eslint/eslintrc@^1.3.1":
-  version "1.3.1"
-  resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.1.tgz#de0807bfeffc37b964a7d0400e0c348ce5a2543d"
-  integrity sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==
+"@eslint/eslintrc@^1.3.2":
+  version "1.3.2"
+  resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.2.tgz#58b69582f3b7271d8fa67fe5251767a5b38ea356"
+  integrity sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ==
   dependencies:
     ajv "^6.12.4"
     debug "^4.3.2"
@@ -239,11 +239,11 @@ eslint-visitor-keys@^3.3.0:
   integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==
 
 eslint@^8.0.0:
-  version "8.23.0"
-  resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.23.0.tgz#a184918d288820179c6041bb3ddcc99ce6eea040"
-  integrity sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==
+  version "8.23.1"
+  resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.23.1.tgz#cfd7b3f7fdd07db8d16b4ac0516a29c8d8dca5dc"
+  integrity sha512-w7C1IXCc6fNqjpuYd0yPlcTKKmHlHHktRkzmBPZ+7cvNBQuiNjx0xaMTjAJGCafJhQkrFJooREv0CtrVzmHwqg==
   dependencies:
-    "@eslint/eslintrc" "^1.3.1"
+    "@eslint/eslintrc" "^1.3.2"
     "@humanwhocodes/config-array" "^0.10.4"
     "@humanwhocodes/gitignore-to-minimatch" "^1.0.2"
     "@humanwhocodes/module-importer" "^1.0.1"
@@ -262,7 +262,6 @@ eslint@^8.0.0:
     fast-deep-equal "^3.1.3"
     file-entry-cache "^6.0.1"
     find-up "^5.0.0"
-    functional-red-black-tree "^1.0.1"
     glob-parent "^6.0.1"
     globals "^13.15.0"
     globby "^11.1.0"
@@ -271,6 +270,7 @@ eslint@^8.0.0:
     import-fresh "^3.0.0"
     imurmurhash "^0.1.4"
     is-glob "^4.0.0"
+    js-sdsl "^4.1.4"
     js-yaml "^4.1.0"
     json-stable-stringify-without-jsonify "^1.0.1"
     levn "^0.4.1"
@@ -399,11 +399,6 @@ function-bind@^1.1.1:
   resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
   integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
 
-functional-red-black-tree@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
-  integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
-
 get-intrinsic@^1.0.2:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6"
@@ -543,6 +538,11 @@ js-cookie@^3.0.0:
   resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-3.0.1.tgz#9e39b4c6c2f56563708d7d31f6f5f21873a92414"
   integrity sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw==
 
+js-sdsl@^4.1.4:
+  version "4.1.4"
+  resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.1.4.tgz#78793c90f80e8430b7d8dc94515b6c77d98a26a6"
+  integrity sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw==
+
 js-yaml@^4.1.0:
   version "4.1.0"
   resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"