From: Tom Hughes Date: Tue, 13 Sep 2022 18:19:12 +0000 (+0100) Subject: Merge remote-tracking branch 'upstream/pull/3680' X-Git-Tag: live~1834 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/35392c1a2f25ced94150ac81cba1b7e517ce145b?hp=1fc2a70c1713172317acb14b76ef8ac45d994065 Merge remote-tracking branch 'upstream/pull/3680' --- diff --git a/Gemfile b/Gemfile index 1b2b60864..020cc9166 100644 --- 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" diff --git a/Gemfile.lock b/Gemfile.lock index 6b5a62a4e..586c8c7d2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -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) diff --git a/app/assets/javascripts/embed.js.erb b/app/assets/javascripts/embed.js.erb index c92be4515..4ebb89da9 100644 --- a/app/assets/javascripts/embed.js.erb +++ b/app/assets/javascripts/embed.js.erb @@ -75,7 +75,7 @@ window.onload = function () { L.Control.OSMReportAProblem = L.Control.Attribution.extend({ options: { position: 'bottomright', - prefix: ''+I18n.t('javascripts.embed.report_problem')+'' + prefix: ''+I18n.t('javascripts.embed.report_problem')+'' }, onAdd: function (map) { diff --git a/app/controllers/geocoder_controller.rb b/app/controllers/geocoder_controller.rb index 48d3505dc..02f00ff7f 100644 --- a/app/controllers/geocoder_controller.rb +++ b/app/controllers/geocoder_controller.rb @@ -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 diff --git a/app/controllers/preferences_controller.rb b/app/controllers/preferences_controller.rb index e098a8acc..dcf0d8b64 100644 --- a/app/controllers/preferences_controller.rb +++ b/app/controllers/preferences_controller.rb @@ -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 diff --git a/app/controllers/profiles_controller.rb b/app/controllers/profiles_controller.rb index b48d08ad2..4005176ce 100644 --- a/app/controllers/profiles_controller.rb +++ b/app/controllers/profiles_controller.rb @@ -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 diff --git a/app/controllers/reports_controller.rb b/app/controllers/reports_controller.rb index 30cb9da7c..6d05e6a57 100644 --- a/app/controllers/reports_controller.rb +++ b/app/controllers/reports_controller.rb @@ -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 diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb index 7bbe65ec5..33fcc7465 100644 --- a/app/mailers/user_mailer.rb +++ b/app/mailers/user_mailer.rb @@ -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 diff --git a/app/views/traces/_trace.html.erb b/app/views/traces/_trace.html.erb index ba14f214e..832187b79 100644 --- a/app/views/traces/_trace.html.erb +++ b/app/views/traces/_trace.html.erb @@ -25,7 +25,7 @@ when "public", "identifiable" then "success" else "danger" end %> - <%= t(".#{trace.visibility}") %> + <%= t(".#{trace.visibility}") %>

diff --git a/config/initializers/config.rb b/config/initializers/config.rb index e51281e11..7fc488635 100644 --- a/config/initializers/config.rb +++ b/config/initializers/config.rb @@ -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" diff --git a/config/initializers/doorkeeper.rb b/config/initializers/doorkeeper.rb index 8dce1c870..a2df9167f 100644 --- a/config/initializers/doorkeeper.rb +++ b/config/initializers/doorkeeper.rb @@ -1,486 +1,486 @@ # 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 diff --git a/config/locales/bg.yml b/config/locales/bg.yml index c7579bc0a..65e68cc70 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -24,10 +24,10 @@ bg: friendly: '%e %B %Y в %H:%M' helpers: file: - prompt: Избери файл + prompt: Избиране на файл submit: diary_comment: - create: Съхраняване + create: Запазване 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: Име (Задължително) - url: Основно приложение URL(Задължително) + name: Име (задължително) + url: Адрес на основното приложение (задължително) 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: Перон - gate: Врата + apron: Самолетна писта + gate: Врата на летище hangar: Хангар helipad: Вертолетна площадка runway: Писта taxilane: Таксилента taxiway: Път за рулиране - terminal: Терминал + terminal: Летищен терминал amenity: animal_shelter: Приют за животни arts_centre: Център на изкуствата @@ -586,7 +593,7 @@ bg: ferry_terminal: Фериботен терминал fire_station: Пожарна станция fountain: Фонтан - fuel: Гориво + fuel: Бензиностанция gambling: Хазартни игри grave_yard: Гробище hospital: Болница @@ -594,7 +601,7 @@ bg: ice_cream: Сладолед internet_cafe: Интернет Кафе kindergarten: Детска градина - language_school: Училище за езици + language_school: Езиково училище 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: Направи сам + doityourself: Магазин направи сам 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: Кабина + cabin: Заслон 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: Отхвърли diff --git a/config/locales/br.yml b/config/locales/br.yml index 2de1f0829..0e0ef0aed 100644 --- a/config/locales/br.yml +++ b/config/locales/br.yml @@ -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 diverradenn lennus gant mab-den hag un nebeud troidigezhioù anfurmel' diff --git a/config/locales/de.yml b/config/locales/de.yml index 8d6dd3aa1..9bab1f3d1 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -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 diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml index 55aeb8d72..30640be9a 100644 --- a/config/locales/en-GB.yml +++ b/config/locales/en-GB.yml @@ -416,7 +416,6 @@ en-GB: reopened_by_html: Reactivated by %{user} %{when} reopened_by_anonymous_html: Reactivated by anonymous %{when} hidden_by_html: Hidden by %{user} %{when} - report: Report this note coordinates_html: '%{latitude}, %{longitude}' query: title: Query Features diff --git a/config/locales/es.yml b/config/locales/es.yml index 3a7de5e11..6fb4fe5f0 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -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 diff --git a/config/locales/et.yml b/config/locales/et.yml index 6ac3607a4..06645d7fc 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -425,7 +425,7 @@ et: reopened_by_html: Taasaktiveerinud %{user} %{when} reopened_by_anonymous_html: Taasaktiveerinud anonüümne kasutaja %{when} hidden_by_html: Peitnud %{user} %{when} - 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 "Autorile viitamine + jagamine samadel tingimustel 2.0" (CC BY-SA 2.0) alla. credit_title_html: OpenStreetMapile viitamine - credit_1_html: |- - Nõuame, et kasutad omistamiseks teksti “© OpenStreetMapi - kaastöölised”. + 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 - siia autoriõiguse leheküljele. - 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. +

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 omistamisjuhendist. 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 + sellele autoriõiguse leheküljele. + 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: diff --git a/config/locales/fa.yml b/config/locales/fa.yml index 98157a181..469517c9a 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -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: انتخاب فایل + prompt: انتخاب پرونده submit: diary_comment: create: ذخیره diary_entry: create: انتشار - update: روزآمدسازی + update: به‌روز رسانی issue_comment: - create: نظر دهید + create: افزودن نظر message: create: ارسال client_application: - create: ثبت نام - update: روزآمدسازی + create: نام‌نویسی + update: به‌روز رسانی doorkeeper_application: - create: ثبت‌نام - update: روزآمدسازی + create: نام‌نویسی + update: به‌روز رسانی redaction: create: ایجاد پاک‌سازی - update: ذخیره‌کردن پاک‌سازی + update: ذخیرهٔ پاک‌سازی trace: create: بارگذاری - update: ذخیره‌کردن تغییرات + update: ذخیرهٔ تغییرات user_block: create: ایجاد مسدودی - update: روزآمدسازی مسدودی + update: به‌روز رسانی مسدودی activerecord: errors: messages: - invalid_email_address: نشانی ایمیل نامعتبر به نظر می‌رسد + invalid_email_address: نشانی رایانامه نامعتبر به نظر می‌رسد 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: اپلیکیشن محرمانه؟ + confidential: برنامهٔ محرمانه؟ scopes: اجازه‌ها friend: user: کاربر @@ -151,13 +152,13 @@ fa: trace: user: کاربر visible: نمایان - name: نام فایل + name: نام پرونده size: اندازه latitude: عرض جغرافیایی longitude: طول جغرافیایی public: عمومی description: توضیح - gpx_file: آپلود فایل GPX + gpx_file: بارگذاری پروندهٔ GPX visibility: پدیداری tagstring: برچسب‌ها message: @@ -184,7 +185,7 @@ fa: home_lon: طول جغرافیایی languages: زبان‌های مورد ترجیح preferred_editor: ویرایش‌گر مورد ترجیح - pass_crypt: اسم رمز + pass_crypt: رمز عبور 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: فروشگاه سخت افزار + hardware: فروشگاه ابزار آلات 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: برون‌برد + export: برون‌ریزی issues: مسئله‌ها data: داده - export_data: برون‌برد داده + export_data: برون‌ریزی داده gps_traces: ردهای GPS gps_traces_tooltip: مدیریت ردهای GPS user_diaries: روزنوشت‌های کاربر @@ -1562,14 +1564,14 @@ fa: %{befriendurl} ‬' gpx_description: description_with_tags_html: |- - به‌نظر می‌رسد فایل GPX شما: + به‌نظر می‌رسد پروندهٔ GPX شما: %{trace_name} با این توصیف: %{trace_description} و برچسب‌های زیر: %{tags} description_with_no_tags_html: |- - به‌نظر می‌رسد فایل GPX شما: + به‌نظر می‌رسد پروندهٔ GPX شما: %{trace_name} با این توصیف: %{trace_description} @@ -1941,7 +1943,7 @@ fa: حق‌نشر و پروانه را ببینید.' legal_title: قانونی legal_1_html: |- - این سایت و خدمات فراوان دیگری که به آن وابسته‌اند به‌طور رسمی و به‌نمایندگی از جامعه تحت رهبری بنیاد OpenStreetMap ‏(OSMF) دایر است. استفاده از همهٔ خدماتی که تحت رهبری OSMF قرار دارد منوط به پذیرش + این وبگاه و خدمات فراوان دیگری که به آن وابسته‌اند به‌طور رسمی و به نمایندگی از جامعه، تحت رهبری بنیاد OpenStreetMap ‏(OSMF) دایر است. استفاده از همهٔ خدماتی که تحت رهبری OSMF قرار دارد منوط به پذیرش سیاست استفادهٔ قابل‌قبول، شرایط استفاده و سیاست حریم خصوصی ماست.
اگر در رابطه با پروانه، حق‌نشر یا سایر موارد قانونی سؤالی دارید لطفاً با OSMF تماس بگیرید. @@ -1981,19 +1983,13 @@ fa: مستندات ما تحت پروانهٔ Creative Commons Attribution-ShareAlike 2.0 (CC BY-SA 2.0) است. credit_title_html: چگونه از OpenStreetMap یاد کنیم - credit_1_html: |- - بایسته است که این‌گونه از ما یاد کنید: - “©Ù…شارکت‌کنندگان OpenStreetMap”. - credit_2_1_html: همچنین باید روشن کنید که داده‌ها تحت پروانهٔ پایگاه‌دادهٔ - باز (Open Database License) قرار دارند و اگر کاشی‌های نقشهٔ ما را استفاده - کردید باید به‌روشنی بیان کنید که نقشه‌نگاری‌ها تحت پروانهٔ CC BY-SA است. - این کار را با پیونددادن به - این صفحهٔ حق‌نشر انجام دهید. به‌عنوان جایگزین، می‌توانید با نام و پیوند - مستقیماً به پروانه(ها) ارجاع بدهید (اگر OSM را در قالب داده توزیع می‌کنید - انجام این کار ضروری است). در رسانه‌هایی که درج پیوند ممکن نیست ( مثلاً کارهای - چاپی)، توصیه می‌کنیم که خوانندگان خود را به openstreetmap.org (شاید با - گسترش OpenStreetMap به این نشانی کامل)، به opendatacommons.org و در صورت - تناسب به creativecommons.org هدایت کنید. + credit_1_html: 'جایی که دارید از داده‌های اوپن‌استریت‌مپ استفاده می‌کنید، + لازم است دو کار زیر را انجام دهید:' + credit_2_1_html: |- + credit_3_1_html: کاشی‌های نقشه با «سبک استاندارد» در www.openstreetmap.org کار تولیدی (Produced Work) محسوب می‌شوند که بنیاد اوپن‌استریت‌مپ با استفاده از دادهٔ اوپن‌استریت‌مپ تحت پروانهٔ پایگاه‌دادهٔ باز (ODbL) ساخته‌است. هنگام @@ -2101,10 +2097,10 @@ fa: no_iframe_support: مرورگر شما فریم‌های HTML را، که برای این ویژگی لازم است، پشتیبانی نمی‌کند. export: - title: برون‌برد - area_to_export: محدوده برای برون‌برد + title: برون‌ریزی + area_to_export: محدوده برای برون‌ریزی manually_select: به‌صورت دستی منطقهٔ دیگری انتخاب کنید - format_to_export: قالب برون‌برد + format_to_export: قالب برون‌ریزی osm_xml_data: OpenStreetMap XML Data map_image: تصویر نقشه (لایهٔ استاندارد را نشان می‌دهد) embeddable_html: HTML توکار @@ -2112,9 +2108,9 @@ fa: export_details_html: دادهٔ OpenStreetMap تحت پروانهٔ دادهٔ همگانی باز، پایگاه‌دادهٔ باز (ODbL) قرار دارد. too_large: - advice: 'اگر برون‌برد بالا انجام نشد، لطفاً یکی از منابع زیر را استفاده کنید:' - body: این محدوده برای برون‌برد در قالب OpenStreetMap XML خیلی بزرگ است. لطفاً - بزرگنمایی کنید یا منطقهٔ کوچکتری را انتخاب کنید، یا برای دریافت داده‌های + advice: 'اگر برون‌ریزی بالا انجام نشد، لطفاً یکی از منابع زیر را استفاده کنید:' + body: این محدوده برای برون‌ریزی در قالب OpenStreetMap XML خیلی بزرگ است. لطفاً + بزرگ‌نمایی کنید یا منطقهٔ کوچک‌تری را انتخاب کنید، یا برای دریافت داده‌های انبوه یکی از منابع فهرست زیر را استفاده کنید. planet: title: سیارهٔ OSM @@ -2144,7 +2140,7 @@ fa: longitude: 'طول:' output: خروجی paste_html: برای استفادهٔ توکار در وب‌سایت، HTML بچسبانید - export_button: برون‌برد + export_button: برون‌ریزی 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: فایل GPX شما بارگذاری شده و در انتظار درج در پایگاه‌داده است. - این کار معمولاً کمتر از نیم ساعت طول می‌کشد. هنگامی که انجام شد ایمیلی برای - شما فرستاده می‌شود. + trace_uploaded: پروندهٔ GPX شما بارگذاری شده و در انتظار درج در پایگاه داده + است. این کار معمولاً کمتر از نیم ساعت طول می‌کشد. هنگامی که انجام شد رایانامه‌ای + برای شما فرستاده می‌شود. upload_failed: شوربختانه بارگذاری GPX انجام نشد. به یکی از مدیران دربارهٔ این خطا اطلاع‌رسانی شد. لطفاً دوباره تلاش کنید traces_waiting: @@ -2378,7 +2374,7 @@ fa: title: در حال دیدن رد %{name} heading: در حال دیدن رد %{name} pending: در انتظار - filename: 'نام فایل:' + filename: 'نام پرونده:' download: بارگیری uploaded: 'تاریخ بارگذاری:' points: 'نقاط:' @@ -2434,14 +2430,14 @@ fa: message: سامانهٔ بارگذاری GPX در حال حاضر در دسترس نیست offline: heading: ذخیره‌گاه GPX آفلاین است - message: ذخیره‌گاه فایل GPX و سامانهٔ بارگذاری هم‌اکنون در دسترس نیستند. + message: ذخیره‌گاه پروندهٔ GPX و سامانهٔ بارگذاری هم‌اکنون در دسترس نیستند. georss: title: ‫ردهای جی‌پی‌اس OpenStreetMap‬ description: description_with_count: one: ‫فایل GPX با %{count} نقطه از %{user}‬ other: ' ‫فایل GPX با %{count} نقطه از %{user}‬' - description_without_count: فایل GPX از %{user} + description_without_count: پروندهٔ GPX از %{user} application: permission_denied: شما اجازهٔ دسترسی به آن کنش را ندارید. require_cookies: @@ -2495,7 +2491,7 @@ fa: write_diary: ایجاد روزنوشت، نظردهی و افزودن دوست write_api: اصلاح نقشه read_gpx: خواندن ردهای جی‌پی‌اس خصوصی - write_gpx: آپلود ردهای جی‌پی‌اس + write_gpx: بارگذاری ردهای جی‌پی‌اس 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: فرانسه 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: فراز diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 4f848d6f0..be1781fb7 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -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 ›› + next: Suivant ▸ 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 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 la carte et cliquez sur l’icône note : - . 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. + . 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. Téléverser une nouvelle trace ou pour en savoir plus sur le traçage GPS, consultez la page wiki. - 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’assistance pour qu’elle vous crée un compte — nous essaierons de traiter votre demande le plus rapidement possible. about: header: Libre et modifiable html: |- -

À 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.

+

À 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.

Inscrivez-vous pour commencer à participer. Nous vous enverrons un courriel pour confirmer votre compte.

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: © Contributeurs d’OpenStreetMap - donate_link_text: + donate_link_text: terms: Conditions du site web et de l’API cyclosm: Style de briques par CyclOSM hébergé par OpenStreetMap France @@ -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 (OSRM) - fossgis_osrm_foot: À pied (OSRM) + fossgis_osrm_car: En voiture (OSRM) + fossgis_osrm_foot: À pied (OSRM) graphhopper_bicycle: À vélo (GraphHopper) - graphhopper_car: En voiture (GraphHopper) - graphhopper_foot: À pied (GraphHopper) + graphhopper_car: En voiture (GraphHopper) + graphhopper_foot: À pied (GraphHopper) 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 diff --git a/config/locales/fy.yml b/config/locales/fy.yml index 115743cc3..5a9077b35 100644 --- a/config/locales/fy.yml +++ b/config/locales/fy.yml @@ -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. diff --git a/config/locales/he.yml b/config/locales/he.yml index 1e9ae4924..b6f84e14e 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -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: שיחה אינטראקטיבית בשפות שונות רבות ובנושאים רבים. diff --git a/config/locales/hi.yml b/config/locales/hi.yml index 1ca1feb5c..71faa5bd2 100644 --- a/config/locales/hi.yml +++ b/config/locales/hi.yml @@ -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: ओपनस्ट्रीटमैप विकि diff --git a/config/locales/ia.yml b/config/locales/ia.yml index 0728d1e84..ec0b82780 100644 --- a/config/locales/ia.yml +++ b/config/locales/ia.yml @@ -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 diff --git a/config/locales/it.yml b/config/locales/it.yml index 46dd65ae2..853c113fc 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -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. diff --git a/config/locales/kk-cyrl.yml b/config/locales/kk-cyrl.yml index 900fb3328..7c3568b3c 100644 --- a/config/locales/kk-cyrl.yml +++ b/config/locales/kk-cyrl.yml @@ -134,6 +134,7 @@ kk-cyrl: link text: бұл не? save changes button: Өзгерістерді сақтау browse: + closed: Жабық created_html: %{time} жасалған closed_html: %{time} жабылған created_by_html: %{time} %{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: diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 72b9426af..164b88fb9 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -1996,8 +1996,10 @@ ko: title: 메일링 리스트 description: 국소 또는 지역의 메일링 리스트의 넓은 범위에서 관심사에 대해 질문하거나 토론을 합니다. forums: - title: 포럼들 + title: 포럼 (레거시) description: 게시판 스타일 인터페이스를 선호하는 것에 대한 질문과 토론입니다. + community: + url: https://community.openstreetmap.org/ irc: title: IRC description: 다양한 주제에서 많은 다른 언어로 된 대화형 채트입니다. diff --git a/config/locales/lb.yml b/config/locales/lb.yml index 350c0c22d..dc16dfd24 100644 --- a/config/locales/lb.yml +++ b/config/locales/lb.yml @@ -2015,7 +2015,7 @@ lb: mailing_lists: title: Mailing-Lëschten forums: - title: Forumen + title: Forumen (vereelzt) irc: title: IRC welcomemat: diff --git a/config/locales/mk.yml b/config/locales/mk.yml index 996760fe3..36efe0108 100644 --- a/config/locales/mk.yml +++ b/config/locales/mk.yml @@ -2217,8 +2217,12 @@ mk: description: Поставете прашање или разговарајте за интересни прашања на широк опсег на тематски и регионални поштенски списоци. forums: - title: Форуми + title: Форуми (наследени) description: Прашања и разговори за оние кои претпочитаат да општат со објави. + community: + url: https://community.openstreetmap.org/ + title: Форум на заедницата + description: Заедничко место за разговори за OpenStreetMap. irc: title: IRC description: Разговор во живо на најразлични јазици и на многу теми. diff --git a/config/locales/nb.yml b/config/locales/nb.yml index 7bc393f02..f2aef8605 100644 --- a/config/locales/nb.yml +++ b/config/locales/nb.yml @@ -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 diff --git a/config/locales/ne.yml b/config/locales/ne.yml index 18c661548..78d761103 100644 --- a/config/locales/ne.yml +++ b/config/locales/ne.yml @@ -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: निश्चित गर्ने + confirm: निश्चित गर्नुहोस् report: यो प्रविष्टीको उजुरी गर्ने diary_comment: comment_from_html: '%{link_user}द्वारा %{comment_created_at}मा गरिएको टिप्पणी' @@ -863,7 +864,7 @@ ne: greeting: नमस्ते, confirmations: confirm: - button: निश्चित गर्ने + button: निश्चित गर्नुहोस् confirm_email: heading: इमेल परिवर्तन भएको निश्चित गर्नुहोस् press confirm button: इमेल निश्चित गर्नको लागि निश्चितमा क्लिक गर्नुहोस् । @@ -1175,7 +1176,7 @@ ne: role: administrator: यी प्रयोगकर्ता प्रबन्धक हुनुहुन्छ comments: टिप्पणी - confirm: निश्चित गर्ने + confirm: निश्चित गर्नुहोस् go_public: flash success: तपाईंका सबै सम्पादनहरू सार्वाजनिक छन् , तपाईं अब सम्पादन लायक हुनु भयो । @@ -1192,15 +1193,15 @@ ne: heading: भूमिका प्रदान निश्चित गर्ने are_you_sure: भूमिका `%{role}' प्रयोगकर्ता `%{name}'लाई प्रदान गर्न निश्चित हुनुहुन्छ? - confirm: निश्चित गर्ने + confirm: निश्चित गर्नुहोस् fail: भूमिका `%{role}' प्रयोगकर्ता `%{name}'लाई प्रदान गर्न सकिएन । कृपया प्रयोगकर्ता र भूमिका दुबै मान्य छन् भनि जाँच गर्नुहोस् । revoke: title: भूमिका फिर्ता निश्चित गर्ने heading: भूमिका फिर्ता निश्चित गर्ने - are_you_sure: तपाईँ भूमिका `%{role}' , `%{name} प्रोगकर्ताबाट फिर्ता लिने कुरामा + are_you_sure: तपाईं भूमिका `%{role}' , `%{name} प्रोगकर्ताबाट फिर्ता लिने कुरामा निश्चित हुनुहुन्छ'? - confirm: निश्चित गर्ने + confirm: निश्चित गर्नुहोस् fail: भूमिका `%{role}' ,`%{name}'बाट फिर्ता लिन सकिएन । प्रोगकर्ता नाम र भूमिका दुबै मान्य छन् भन्ने खुलाउनु होस् । user_blocks: diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 21b1a6588..c3b29ff06 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -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 diff --git a/config/locales/pa.yml b/config/locales/pa.yml index 05029d421..85c6a2b90 100644 --- a/config/locales/pa.yml +++ b/config/locales/pa.yml @@ -52,12 +52,12 @@ pa: notifier: ਨੋਟੀਫਾਇਰ old_node: ਪੁਰਾਣੀ ਨੋਡ old_node_tag: ਪੁਰਾਣਾ ਨੋਡ ਟੈਗ - old_relation: ਪੁਰਾਣਾ ਨਾਤਾ + old_relation: ਪੁਰਾਣਾ ਸਬੰਧ old_relation_member: ਪੁਰਾਣਾ ਸਬੰਧ ਮੈਂਬਰ old_relation_tag: ਪੁਰਾਣਾ ਸਬੰਧ ਟੈਗ - old_way: ਪੁਰਾਣਾ ਢੰਗ - old_way_node: ਪੁਰਾਣਾ ਢੰਗ ਨੋਡ - old_way_tag: ਪੁਰਾਣਾ ਢੰਗ ਟੈਗ + old_way: ਪੁਰਾਣਾ ਰਾਹ + old_way_node: ਪੁਰਾਣਾ ਰਾਹ ਨੋਡ + old_way_tag: ਪੁਰਾਣਾ ਰਾਹ ਟੈਗ relation: ਸਬੰਧ relation_member: ਸਬੰਧ ਮੈਂਬਰ relation_tag: ਸਬੰਧ ਟੈਗ @@ -80,7 +80,7 @@ pa: diary_entry: user: ਵਰਤੋਂਕਾਰ title: ਵਿਸ਼ਾ - latitude: ਲੰਬਕਾਰ + latitude: ਅਕਸ਼ਾਂਸ਼ longitude: ਲੰਬਕਾਰ language: ਬੋਲੀ doorkeeper/application: @@ -93,7 +93,7 @@ pa: visible: ਵਿਖਣਯੋਗ name: ਨਾਂ size: ਅਕਾਰ - latitude: ਵਿਧਕਾਰ + latitude: ਅਕਸ਼ਾਂਸ਼ 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: 'ਮਾਲਕ:' diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml index 4fafb890d..2586145be 100644 --- a/config/locales/pt-PT.yml +++ b/config/locales/pt-PT.yml @@ -496,7 +496,7 @@ pt-PT: reopened_by_html: Reaberto por %{user} %{when} reopened_by_anonymous_html: Reaberto por um anónimo %{when} hidden_by_html: Ocultada por %{user} %{when} - 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: "
    \n
  • Fornecer crédito ao OpenStreetMap exibindo o - nosso aviso de direitos autorais.
  • \n
  • Deixar claro que os dados - estão disponíveis sob a Open Database License.
  • \n
" - 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 Diretrizes - de atribuição ." - 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 esta - página de direitos de autor.\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: "
    \n
  • Atribuir os créditos ao OpenStreetMap exibindo + o nosso aviso de direitos de autor.
  • \n
  • Deixar claro que os dados + estão disponíveis sob a Licença Open Database.
  • \n
" + 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 Diretrizes + de Atribuição. + 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 esta página de direitos de autor. + 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 diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 8f8210d56..6a3133efd 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -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: Описание diff --git a/config/locales/sc.yml b/config/locales/sc.yml index c6928eaa7..d073d3b54 100644 --- a/config/locales/sc.yml +++ b/config/locales/sc.yml @@ -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 %{time} dae %{user} closed_by_html: Serradu %{time} 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} %{when} commented_by_html: Cummentu de %{user} %{when} - 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 internos + ca_postcode_html: Resurtados dae Geocoder.CA + osm_nominatim_html: Resurtados dae OpenStreetMap + Nominatim + geonames_html: Resurtados dae GeoNames + osm_nominatim_reverse_html: Resurtados dae OpenStreetMap + Nominatim + geonames_reverse_html: Resurtados dae GeoNames 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: %{time} + last_updated_time_user_html: %{time} 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, + incarca inoghe. + 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.
Imprea su ligàmene + in sa lìtera eletrònica de cunfirma pro ativare su contu tuo, o pedi + una lìtera de cunfirma noa. + account is suspended: Su contu tuo est istadu suspèndidu pro neghe de atividades + suspetas.
Cuntata s'assistèntzia 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 kramdown + 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: ©Contribuidores
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: diff --git a/config/locales/sk.yml b/config/locales/sk.yml index 2931bceb8..2b86107c1 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -496,7 +496,7 @@ sk: reopened_by_html: Opätovne aktivoval používateľ %{user} %{when} reopened_by_anonymous_html: Opätovne aktivoval anonymný používateľ %{when} hidden_by_html: Skryl %{user} %{when} - 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. diff --git a/config/locales/tr.yml b/config/locales/tr.yml index 49f908de8..2ca9126b6 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -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: Yol, bir çizgi ya da alan, bir cadde, akarsu, göl ya da bina olabilir. - tag_html: Etiket, bir düğümün ya da yolun veri parçasıdır. + tag_html: Etiket, 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ı diff --git a/config/locales/vi.yml b/config/locales/vi.yml index fa1324d7a..020dcb446 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -467,7 +467,7 @@ vi: reopened_by_html: Mở lại bởi %{user} %{when} reopened_by_anonymous_html: Mở lại vô danh %{when} hidden_by_html: Ẩn bởi %{user} %{when} - 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: diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index fd8fd478c..9304a98f1 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -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: 在很多不同的语言和在很多话题间交互聊天。 diff --git a/config/locales/zh-hk.yml b/config/locales/zh-HK.yml similarity index 84% rename from config/locales/zh-hk.yml rename to config/locales/zh-HK.yml index b2ea1ba74..cc9335fea 100644 --- a/config/locales/zh-hk.yml +++ b/config/locales/zh-HK.yml @@ -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: 日記註解 + diary_comment: 日記評論 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: 閣下的電郵地址並不會被公開展示,請參閱我們的私隱政策頁面以獲取進一步的資訊。 + 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: 目前您的編輯是匿名的,人們不能發送訊息給您或看到您的位置。要顯示你的編輯以及讓別人能透過網站與您聯繫,請點選下面的按鈕。自從0.6 + API更新,只有公開使用者可以編輯地圖資料。(了解原因)。
  • 成為公開使用者不會令您的電郵地址被透露。
  • 這個動作不能逆轉,所有新的使用者現在都預設為公開的。
+ 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: 來自 Geocoder.CA 的結果 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: 請聯絡網站管理員以安排建立帳號,我們會儘快嘗試並處理相關要求。 + contact_support_html: 請聯絡支援人員以安排建立帳號,我們會儘快嘗試並處理相關要求。 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: 將地圖置中於此 ... diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index a62ffa684..202dbef98 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -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: 使用各種不同語言在各種主題聊天互動。 diff --git a/lib/country.rb b/lib/country.rb index f6f679125..ca547a972 100644 --- a/lib/country.rb +++ b/lib/country.rb @@ -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 diff --git a/lib/nominatim.rb b/lib/nominatim.rb index fd0855fc9..f847ec84e 100644 --- a/lib/nominatim.rb +++ b/lib/nominatim.rb @@ -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 diff --git a/test/models/trace_test.rb b/test/models/trace_test.rb index 8fa09f4d7..762df6648 100644 --- a/test/models/trace_test.rb +++ b/test/models/trace_test.rb @@ -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 diff --git a/yarn.lock b/yarn.lock index 72312b045..8449c3093 100644 --- 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"