From: Tom Hughes Date: Tue, 24 Oct 2023 16:37:48 +0000 (+0100) Subject: Merge remote-tracking branch 'upstream/pull/4262' X-Git-Tag: live~944 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/dd905b5aa893918168c644045aa1b6069e95d48e?hp=14c20e9835587ccdd0e7d5c7d81a1d15fbb00ede Merge remote-tracking branch 'upstream/pull/4262' --- diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index df617d4fb..771d307cf 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -19,17 +19,17 @@ jobs: touch config/settings.local.yml - name: Build Docker Image run: | - docker-compose build - - name: Start Docker-Compose + docker compose build + - name: Start Docker Compose run: | - docker-compose up -d + docker compose up -d sleep 15 # let the DB warm up a little - name: Prepare Database run: | - docker-compose run --rm web bundle exec rails db:migrate - docker-compose run --rm web bundle exec rails i18n:js:export - docker-compose run --rm web bundle exec rails assets:precompile - docker-compose run --rm web osmosis --rx docker/null-island.osm.xml --wd host=db database=openstreetmap user=openstreetmap password=openstreetmap validateSchemaVersion=no + docker compose run --rm web bundle exec rails db:migrate + docker compose run --rm web bundle exec rails i18n:js:export + docker compose run --rm web bundle exec rails assets:precompile + docker compose run --rm web osmosis --rx docker/null-island.osm.xml --wd host=db database=openstreetmap user=openstreetmap password=openstreetmap validateSchemaVersion=no - name: Test Basic Website run: | curl -siL http://127.0.0.1:3000 | egrep '^HTTP/1.1 200 OK' @@ -37,5 +37,5 @@ jobs: curl -siL http://127.0.0.1:3000/api/0.6/node/1 | grep 'Null Island' - name: Test Complete Suite run: | - docker-compose run --rm web bundle exec rails db:test:prepare - docker-compose run --rm web bundle exec rails test:all + docker compose run --rm web bundle exec rails db:test:prepare + docker compose run --rm web bundle exec rails test:all diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 685937b03..2050aaf3f 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -72,3 +72,27 @@ jobs: bundler-cache: true - name: Run brakeman run: bundle exec brakeman -q + annotate_models: + env: + RAILS_ENV: test + name: Rails Annotate Models + runs-on: ubuntu-22.04 + steps: + - name: Check out code + uses: actions/checkout@v4 + - name: Setup ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ env.ruby }} + bundler-cache: true + - name: Setup database + run: | + sudo systemctl start postgresql + sudo -u postgres createuser -s $(id -un) + createdb openstreetmap + cp config/github.database.yml config/database.yml + bundle exec rails db:schema:load + - name: Run Annotate Models + run: bundle exec rails annotate_models + - name: Fail if model annotations are out of date + run: git diff --exit-code diff --git a/.rubocop.yml b/.rubocop.yml index dc2a33a35..1e18afd83 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -48,6 +48,9 @@ Naming/MethodParameterName: Rails/CreateTableWithTimestamps: Enabled: false +Rails/FindBy: + IgnoreWhereFirst: false + Rails/FindEach: Enabled: false diff --git a/DOCKER.md b/DOCKER.md index bddb9695b..f6caa6988 100644 --- a/DOCKER.md +++ b/DOCKER.md @@ -1,11 +1,26 @@ # Using Docker and Docker Compose for Development and Testing -These instructions are designed for setting up `openstreetmap-website` for development and testing using [Docker](https://www.docker.com/). This will allow you to install the OpenStreetMap application and all its dependencies in Docker images and then run them in containers, almost with a single command. You will need to install Docker and Docker Compose on your development machine: +These instructions are designed for setting up `openstreetmap-website` for development and testing using [Docker](https://www.docker.com/). This will allow you to install the OpenStreetMap application and all its dependencies in Docker images and then run them in containers, almost with a single command. -- [Install Docker](https://docs.docker.com/install/) -- [Install Docker Compose](https://docs.docker.com/compose/install/) +## Install Docker -**Windows users: You must enable git symlinks before cloning the repository.** This repository uses symbolic links that are not enabled by default on Windows git. To enable them, [turn on Developer Mode](https://windowsreport.com/windows-11-developer-mode/) on Windows and run `git config --global core.symlinks true` to enable symlinks in Git. See [this StackOverflow question](https://stackoverflow.com/questions/5917249/git-symbolic-links-in-windows) for more information. +### Windows + +1. Use Docker Desktop via [docker.com Download](https://www.docker.com/products/docker-desktop/). + +2. You have to enable git symlinks before cloning the repository. + This repository uses symbolic links that are not enabled by default on Windows git. To enable them, [turn on Developer Mode](https://windowsreport.com/windows-11-developer-mode/) on Windows and run `git config --global core.symlinks true` to enable symlinks in Git. See [this StackOverflow question](https://stackoverflow.com/questions/5917249/git-symbolic-links-in-windows) for more information. + +### Mac + +- Use Docker Desktop via [docker.com Download](https://www.docker.com/products/docker-desktop/). +- Or [Homebrew](https://formulae.brew.sh/cask/docker). + +### Linux + +Use [Docker Engine](https://docs.docker.com/engine/install/ubuntu/) with the [docker-compose-plugin](https://docs.docker.com/compose/install/linux/) + +## Clone repository The first step is to fork/clone the repo to your local machine: @@ -37,30 +52,34 @@ This is a workaround. [See issues/2185 for details](https://github.com/openstree To build local Docker images run from the root directory of the repository: - docker-compose build + docker compose build If this is your first time running or you have removed cache this will take some time to complete. Once the Docker images have finished building you can launch the images as containers. To launch the app run: - docker-compose up -d + docker compose up -d This will launch one Docker container for each 'service' specified in `docker-compose.yml` and run them in the background. There are two options for inspecting the logs of these running containers: -- You can tail logs of a running container with a command like this: `docker-compose logs -f web` or `docker-compose logs -f db`. -- Instead of running the containers in the background with the `-d` flag, you can launch the containers in the foreground with `docker-compose up`. The downside of this is that the logs of all the 'services' defined in `docker-compose.yml` will be intermingled. If you don't want this you can mix and match - for example, you can run the database in background with `docker-compose up -d db` and then run the Rails app in the foreground via `docker-compose up web`. +- You can tail logs of a running container with a command like this: `docker compose logs -f web` or `docker compose logs -f db`. +- Instead of running the containers in the background with the `-d` flag, you can launch the containers in the foreground with `docker compose up`. The downside of this is that the logs of all the 'services' defined in `docker-compose.yml` will be intermingled. If you don't want this you can mix and match - for example, you can run the database in background with `docker compose up -d db` and then run the Rails app in the foreground via `docker compose up web`. ### Migrations Run the Rails database migrations: - docker-compose run --rm web bundle exec rails db:migrate + docker compose run --rm web bundle exec rails db:migrate ### Tests -Run the test suite by running: +Prepare the test database: + + docker compose run --rm web bundle exec rails db:test:prepare + +Run the test suite: - docker-compose run --rm web bundle exec rails test:all + docker compose run --rm web bundle exec rails test:all ### Loading an OSM extract @@ -72,7 +91,7 @@ For example, let's download the District of Columbia from Geofabrik or [any othe You can now use Docker to load this extract into your local Docker-based OSM instance: - docker-compose run --rm web osmosis \ + docker compose run --rm web osmosis \ -verbose \ --read-pbf district-of-columbia-latest.osm.pbf \ --log-progress \ @@ -84,7 +103,7 @@ You can now use Docker to load this extract into your local Docker-based OSM ins **Windows users:** Powershell uses `` ` `` and CMD uses `^` at the end of each line, e.g.: - docker-compose run --rm web osmosis ` + docker compose run --rm web osmosis ` -verbose ` --read-pbf district-of-columbia-latest.osm.pbf ` --log-progress ` @@ -104,12 +123,12 @@ See [`CONFIGURE.md`](CONFIGURE.md) for information on how to manage users and en If you want to get into a web container and run specific commands you can fire up a throwaway container to run bash in via: - docker-compose run --rm web bash + docker compose run --rm web bash Alternatively, if you want to use the already-running `web` container then you can `exec` into it via: - docker-compose exec web bash + docker compose exec web bash Similarly, if you want to `exec` in the db container use: - docker-compose exec db bash + docker compose exec db bash diff --git a/Dockerfile b/Dockerfile index 446f71ac3..28c3a2ea6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,6 +19,7 @@ RUN apt-get update \ libvips-dev \ libxml2-dev \ libxslt1-dev \ + libyaml-dev \ locales \ postgresql-client \ ruby \ diff --git a/Gemfile b/Gemfile index 8be817547..8f0d29d5a 100644 --- a/Gemfile +++ b/Gemfile @@ -1,7 +1,7 @@ source "https://rubygems.org" # Require rails -gem "rails", "~> 7.0.0" +gem "rails", "~> 7.1.0" # Require json for multi_json gem "json" @@ -48,7 +48,6 @@ gem "active_record_union" gem "bootstrap", :github => "twbs/bootstrap-rubygem", :ref => "fde1edff90d9219bbef48ecc6a65f13835269bcd" gem "bootstrap_form", "~> 5.0" gem "cancancan" -gem "composite_primary_keys", "~> 14.0.0" gem "config" gem "delayed_job_active_record" gem "frozen_record" @@ -81,6 +80,7 @@ gem "omniauth-rails_csrf_protection", "~> 1.0" # Doorkeeper for OAuth2 gem "doorkeeper" gem "doorkeeper-i18n" +gem "doorkeeper-openid_connect" # Markdown formatting support gem "kramdown" @@ -135,7 +135,6 @@ gem "image_processing" # Gems useful for development group :development do - gem "annotate" gem "better_errors" gem "binding_of_caller" gem "debug_inspector" @@ -150,6 +149,7 @@ group :test do gem "capybara", ">= 2.15" gem "erb_lint", :require => false gem "factory_bot_rails" + gem "jwt" gem "minitest", "~> 5.1" gem "puma", "~> 5.6" gem "rails-controller-testing" @@ -165,3 +165,7 @@ group :test do gem "simplecov-lcov", :require => false gem "webmock" end + +group :development, :test do + gem "annotate" +end diff --git a/Gemfile.lock b/Gemfile.lock index 7438ec809..80f7b2936 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -12,76 +12,84 @@ GEM specs: aasm (5.5.0) concurrent-ruby (~> 1.0) - actioncable (7.0.8) - actionpack (= 7.0.8) - activesupport (= 7.0.8) + actioncable (7.1.1) + actionpack (= 7.1.1) + activesupport (= 7.1.1) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (7.0.8) - actionpack (= 7.0.8) - activejob (= 7.0.8) - activerecord (= 7.0.8) - activestorage (= 7.0.8) - activesupport (= 7.0.8) + zeitwerk (~> 2.6) + actionmailbox (7.1.1) + actionpack (= 7.1.1) + activejob (= 7.1.1) + activerecord (= 7.1.1) + activestorage (= 7.1.1) + activesupport (= 7.1.1) mail (>= 2.7.1) net-imap net-pop net-smtp - actionmailer (7.0.8) - actionpack (= 7.0.8) - actionview (= 7.0.8) - activejob (= 7.0.8) - activesupport (= 7.0.8) + actionmailer (7.1.1) + actionpack (= 7.1.1) + actionview (= 7.1.1) + activejob (= 7.1.1) + activesupport (= 7.1.1) mail (~> 2.5, >= 2.5.4) net-imap net-pop net-smtp - rails-dom-testing (~> 2.0) - actionpack (7.0.8) - actionview (= 7.0.8) - activesupport (= 7.0.8) - rack (~> 2.0, >= 2.2.4) + rails-dom-testing (~> 2.2) + actionpack (7.1.1) + actionview (= 7.1.1) + activesupport (= 7.1.1) + nokogiri (>= 1.8.5) + rack (>= 2.2.4) + rack-session (>= 1.0.1) rack-test (>= 0.6.3) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.2.0) + rails-dom-testing (~> 2.2) + rails-html-sanitizer (~> 1.6) actionpack-page_caching (1.2.4) actionpack (>= 4.0.0) - actiontext (7.0.8) - actionpack (= 7.0.8) - activerecord (= 7.0.8) - activestorage (= 7.0.8) - activesupport (= 7.0.8) + actiontext (7.1.1) + actionpack (= 7.1.1) + activerecord (= 7.1.1) + activestorage (= 7.1.1) + activesupport (= 7.1.1) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.0.8) - activesupport (= 7.0.8) + actionview (7.1.1) + activesupport (= 7.1.1) builder (~> 3.1) - erubi (~> 1.4) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.1, >= 1.2.0) + erubi (~> 1.11) + rails-dom-testing (~> 2.2) + rails-html-sanitizer (~> 1.6) active_record_union (1.3.0) activerecord (>= 4.0) - activejob (7.0.8) - activesupport (= 7.0.8) + activejob (7.1.1) + activesupport (= 7.1.1) globalid (>= 0.3.6) - activemodel (7.0.8) - activesupport (= 7.0.8) - activerecord (7.0.8) - activemodel (= 7.0.8) - activesupport (= 7.0.8) + activemodel (7.1.1) + activesupport (= 7.1.1) + activerecord (7.1.1) + activemodel (= 7.1.1) + activesupport (= 7.1.1) + timeout (>= 0.4.0) activerecord-import (1.5.0) activerecord (>= 4.2) - activestorage (7.0.8) - actionpack (= 7.0.8) - activejob (= 7.0.8) - activerecord (= 7.0.8) - activesupport (= 7.0.8) + activestorage (7.1.1) + actionpack (= 7.1.1) + activejob (= 7.1.1) + activerecord (= 7.1.1) + activesupport (= 7.1.1) marcel (~> 1.0) - mini_mime (>= 1.1.0) - activesupport (7.0.8) + activesupport (7.1.1) + base64 + bigdecimal concurrent-ruby (~> 1.0, >= 1.0.2) + connection_pool (>= 2.2.5) + drb i18n (>= 1.6, < 2) minitest (>= 5.1) + mutex_m tzinfo (~> 2.0) addressable (2.8.5) public_suffix (>= 2.0.2, < 6.0) @@ -95,16 +103,16 @@ GEM autoprefixer-rails (10.4.15.0) execjs (~> 2) aws-eventstream (1.2.0) - aws-partitions (1.828.0) - aws-sdk-core (3.183.1) + aws-partitions (1.840.0) + aws-sdk-core (3.185.1) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.651.0) aws-sigv4 (~> 1.5) jmespath (~> 1, >= 1.6.1) - aws-sdk-kms (1.71.0) - aws-sdk-core (~> 3, >= 3.177.0) + aws-sdk-kms (1.72.0) + aws-sdk-core (~> 3, >= 3.184.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.135.0) + aws-sdk-s3 (1.136.0) aws-sdk-core (~> 3, >= 3.181.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.6) @@ -122,6 +130,7 @@ GEM erubi (~> 1.4) parser (>= 2.4) smart_properties + bigdecimal (3.1.4) binding_of_caller (1.0.0) debug_inspector (>= 0.0.1) bootsnap (1.16.0) @@ -136,8 +145,8 @@ GEM bzip2-ffi (1.1.1) ffi (~> 1.0) cancancan (3.5.0) - canonical-rails (0.2.14) - rails (>= 4.1, <= 7.1) + canonical-rails (0.2.15) + actionview (>= 4.1, <= 7.2) capybara (3.39.2) addressable matrix @@ -147,10 +156,8 @@ GEM rack-test (>= 0.6.3) regexp_parser (>= 1.5, < 3.0) xpath (~> 3.2) - composite_primary_keys (14.0.6) - activerecord (~> 7.0.2) concurrent-ruby (1.2.2) - config (4.2.1) + config (5.0.0) deep_merge (~> 1.2, >= 1.2.1) dry-validation (~> 1.0, >= 1.0.0) connection_pool (2.4.1) @@ -171,14 +178,19 @@ GEM deep_merge (1.2.2) delayed_job (4.1.11) activesupport (>= 3.0, < 8.0) - delayed_job_active_record (4.1.7) + delayed_job_active_record (4.1.8) activerecord (>= 3.0, < 8.0) delayed_job (>= 3.0, < 5) docile (1.4.0) doorkeeper (5.6.6) railties (>= 5) - doorkeeper-i18n (5.2.6) + doorkeeper-i18n (5.2.7) doorkeeper (>= 5.2) + doorkeeper-openid_connect (1.8.7) + doorkeeper (>= 5.5, < 5.7) + jwt (>= 2.5) + drb (2.1.1) + ruby2_keywords dry-configurable (1.1.0) dry-core (~> 1.0, < 2) zeitwerk (~> 2.6) @@ -231,7 +243,7 @@ GEM faraday-net_http (>= 2.0, < 3.1) ruby2_keywords (>= 0.0.4) faraday-net_http (3.0.2) - ffi (1.16.2) + ffi (1.16.3) ffi-compiler (1.0.1) ffi (>= 1.0.0) rake @@ -244,7 +256,7 @@ GEM ffi (>= 1.0.0) globalid (1.2.1) activesupport (>= 6.1) - google-protobuf (3.24.3) + google-protobuf (3.24.4) hashdiff (1.0.1) hashie (5.0.0) highline (2.1.0) @@ -254,14 +266,14 @@ GEM concurrent-ruby (~> 1.0) i18n-js (3.9.2) i18n (>= 0.6.6) - i18n-tasks (1.0.12) + i18n-tasks (1.0.13) activesupport (>= 4.0.2) ast (>= 2.1.0) better_html (>= 1.0, < 3.0) erubi highline (>= 2.0.0) i18n - parser (>= 2.2.3.0) + parser (>= 3.2.2.1) rails-i18n rainbow (>= 2.2.2, < 4.0) terminal-table (>= 1.5.1) @@ -280,6 +292,10 @@ GEM ruby-vips (>= 2.0.17, < 3) image_size (3.3.0) in_threads (1.6.0) + io-console (0.6.0) + irb (1.8.3) + rdoc + reline (>= 0.3.8) jbuilder (2.11.5) actionview (>= 5.0.0) activesupport (>= 5.0.0) @@ -301,7 +317,7 @@ GEM logstasher (2.1.5) activesupport (>= 5.2) request_store - loofah (2.21.3) + loofah (2.21.4) crass (~> 1.0.2) nokogiri (>= 1.12.0) mail (2.8.1) @@ -312,15 +328,15 @@ GEM marcel (1.0.2) matrix (0.4.2) maxminddb (0.1.22) - method_source (1.0.0) mini_magick (4.12.0) mini_mime (1.1.5) - mini_portile2 (2.8.4) + mini_portile2 (2.8.5) minitest (5.20.0) msgpack (1.7.2) multi_json (1.15.0) multi_xml (0.6.0) - net-imap (0.3.7) + mutex_m (0.1.2) + net-imap (0.4.2) date net-protocol net-pop (0.1.2) @@ -380,12 +396,14 @@ GEM omniauth (~> 2.0) openstreetmap-deadlock_retry (1.3.1) parallel (1.23.0) - parser (3.2.2.3) + parser (3.2.2.4) ast (~> 2.4.1) racc pg (1.5.4) popper_js (2.11.8) progress (3.6.0) + psych (5.1.1.1) + stringio public_suffix (5.0.3) puma (5.6.7) nio4r (~> 2.0) @@ -400,23 +418,28 @@ GEM ruby-openid (>= 2.1.8) rack-protection (3.1.0) rack (~> 2.2, >= 2.2.4) + rack-session (1.0.1) + rack (< 3) rack-test (2.1.0) rack (>= 1.3) rack-uri_sanitizer (0.0.2) - rails (7.0.8) - actioncable (= 7.0.8) - actionmailbox (= 7.0.8) - actionmailer (= 7.0.8) - actionpack (= 7.0.8) - actiontext (= 7.0.8) - actionview (= 7.0.8) - activejob (= 7.0.8) - activemodel (= 7.0.8) - activerecord (= 7.0.8) - activestorage (= 7.0.8) - activesupport (= 7.0.8) + rackup (1.0.0) + rack (< 3) + webrick + rails (7.1.1) + actioncable (= 7.1.1) + actionmailbox (= 7.1.1) + actionmailer (= 7.1.1) + actionpack (= 7.1.1) + actiontext (= 7.1.1) + actionview (= 7.1.1) + activejob (= 7.1.1) + activemodel (= 7.1.1) + activerecord (= 7.1.1) + activestorage (= 7.1.1) + activesupport (= 7.1.1) bundler (>= 1.15.0) - railties (= 7.0.8) + railties (= 7.1.1) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) actionview (>= 5.0.1.rc1) @@ -431,31 +454,36 @@ GEM rails-i18n (7.0.8) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 8) - railties (7.0.8) - actionpack (= 7.0.8) - activesupport (= 7.0.8) - method_source + railties (7.1.1) + actionpack (= 7.1.1) + activesupport (= 7.1.1) + irb + rackup (>= 1.0.0) rake (>= 12.2) - thor (~> 1.0) - zeitwerk (~> 2.5) + thor (~> 1.0, >= 1.2.2) + zeitwerk (~> 2.6) rainbow (3.1.1) rake (13.0.6) rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) - regexp_parser (2.8.1) + rdoc (6.5.0) + psych (>= 4.0.0) + regexp_parser (2.8.2) + reline (0.3.9) + io-console (~> 0.5) request_store (1.5.1) rack (>= 1.4) rexml (3.2.6) rinku (2.0.6) rotp (6.3.0) rouge (4.1.3) - rubocop (1.56.3) + rubocop (1.57.1) base64 (~> 0.1.1) json (~> 2.3) language_server-protocol (>= 3.17.0) parallel (~> 1.10) - parser (>= 3.2.2.3) + parser (>= 3.2.2.4) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 1.8, < 3.0) rexml (>= 3.2.5, < 4.0) @@ -468,12 +496,12 @@ GEM rubocop (~> 1.41) rubocop-factory_bot (2.24.0) rubocop (~> 1.33) - rubocop-minitest (0.32.1) + rubocop-minitest (0.33.0) rubocop (>= 1.39, < 2.0) rubocop-performance (1.19.1) rubocop (>= 1.7.0, < 2.0) rubocop-ast (>= 0.4.0) - rubocop-rails (2.21.1) + rubocop-rails (2.21.2) activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.33.0, < 2.0) @@ -481,7 +509,7 @@ GEM rubocop (~> 1.0) ruby-openid (2.9.2) ruby-progressbar (1.13.0) - ruby-vips (2.1.4) + ruby-vips (2.2.0) ffi (~> 1.12) ruby2_keywords (0.0.5) rubyzip (2.3.2) @@ -492,7 +520,7 @@ GEM google-protobuf (~> 3.23) rake (>= 13.0.0) secure_headers (6.5.0) - selenium-webdriver (4.13.1) + selenium-webdriver (4.14.0) rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2, < 3.0) websocket (~> 1.0) @@ -517,18 +545,19 @@ GEM actionpack (>= 5.2) activesupport (>= 5.2) sprockets (>= 3.0.0) - strong_migrations (1.6.3) + stringio (3.0.8) + strong_migrations (1.6.4) activerecord (>= 5.2) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) - terser (1.1.18) + terser (1.1.19) execjs (>= 0.3.0, < 3) - thor (1.2.2) + thor (1.3.0) tilt (2.3.0) timeout (0.4.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - unicode-display_width (2.4.2) + unicode-display_width (2.5.0) validates_email_format_of (1.7.2) i18n vendorer (0.2.0) @@ -537,6 +566,7 @@ GEM addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) + webrick (1.8.1) websocket (1.2.10) websocket-driver (0.7.6) websocket-extensions (>= 0.1.0) @@ -568,7 +598,6 @@ DEPENDENCIES cancancan canonical-rails capybara (>= 2.15) - composite_primary_keys (~> 14.0.0) config connection_pool dalli @@ -577,6 +606,7 @@ DEPENDENCIES delayed_job_active_record doorkeeper doorkeeper-i18n + doorkeeper-openid_connect erb_lint factory_bot_rails faraday @@ -592,6 +622,7 @@ DEPENDENCIES jbuilder (~> 2.7) jquery-rails json + jwt kgio kramdown libxml-ruby (>= 2.0.5) @@ -616,7 +647,7 @@ DEPENDENCIES r2 (~> 0.2.7) rack-cors rack-uri_sanitizer - rails (~> 7.0.0) + rails (~> 7.1.0) rails-controller-testing rails-i18n (~> 7.0.0) rinku (>= 2.0.6) diff --git a/INSTALL.md b/INSTALL.md index 74c736f4c..59e924b9b 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -35,7 +35,7 @@ sudo apt-get install ruby ruby-dev ruby-bundler \ libvips-dev libxml2-dev libxslt1-dev nodejs \ build-essential git-core \ postgresql postgresql-contrib libpq-dev libsasl2-dev \ - libffi-dev libgd-dev libarchive-dev libbz2-dev npm + libffi-dev libgd-dev libarchive-dev libyaml-dev libbz2-dev npm sudo npm install --global yarn ``` @@ -51,7 +51,7 @@ sudo dnf install ruby ruby-devel rubygem-rdoc rubygem-bundler rubygems \ gcc gcc-c++ git \ postgresql postgresql-server postgresql-contrib libpq-devel \ perl-podlators libffi-devel gd-devel libarchive-devel \ - bzip2-devel nodejs-yarn vips-devel + libyaml-devel bzip2-devel nodejs-yarn vips-devel ``` If you didn't already have PostgreSQL installed then create a PostgreSQL instance and start the server: diff --git a/app/assets/javascripts/index/directions.js b/app/assets/javascripts/index/directions.js index c86c8ad02..ef37e73ca 100644 --- a/app/assets/javascripts/index/directions.js +++ b/app/assets/javascripts/index/directions.js @@ -244,7 +244,7 @@ OSM.Directions = function (map) { map.removeLayer(polyline); if (reportErrors) { - $("#sidebar_content").html("

" + I18n.t("javascripts.directions.errors.no_route") + "

"); + $("#sidebar_content").html("
" + I18n.t("javascripts.directions.errors.no_route") + "
"); } return; @@ -307,7 +307,7 @@ OSM.Directions = function (map) { var row = $(""); row.append("
"); row.append("" + instruction); - row.append("" + dist); + row.append("" + dist); row.on("click", function () { popup diff --git a/app/assets/stylesheets/common.scss b/app/assets/stylesheets/common.scss index 6ff46c07c..92f3347d1 100644 --- a/app/assets/stylesheets/common.scss +++ b/app/assets/stylesheets/common.scss @@ -109,31 +109,14 @@ header { float: left; } - a, a:hover { - text-decoration: none; - } - img.logo { - width: 30px; - height: 30px; margin-top: -2px; - vertical-align: middle; } h1 { font-size: 18px; - font-weight: 600; line-height: 1.2; - margin: 0; padding-top: 15px; - - a { - color: #000; - } - - a:hover { - color: #000; - } } .btn { @@ -187,22 +170,6 @@ nav.secondary { color: darken($darkgrey, 25%); } - .login-menu { - .btn-outline-secondary { - @include button-outline-variant($darkgrey, $color-hover: $white, $active-color: $white); - } - } - - .user-menu { - .btn-outline-secondary { - @include button-outline-variant($darkgrey, $color-hover: $darkgrey, $active-background: white, $active-border: $darkgrey); - border-color: $grey; - &:hover { - border-color: $grey; - } - } - } - #inboxanchor { background-color: lighten($grey, 10%); } @@ -598,10 +565,6 @@ body.small-nav { /* Rules for attribution text under the main map shown on printouts */ -#attribution { - display: none; -} - .donate-attr { color: darken($green, 10%) !important; } /* Rules for the sidebar */ @@ -671,9 +634,8 @@ header .search_forms, /* Rules for search sidebar */ #sidebar .search_results_entry { - ul li { - cursor: pointer; - &.selected { background: $list-highlight; } + ul li.selected { + background: $list-highlight; } .search_more .loader { @@ -681,11 +643,6 @@ header .search_forms, } } -.search_results_error { - color: #f00; - padding: 10px 20px; -} - /* Rules for routing */ div.direction { @@ -699,8 +656,6 @@ div.direction.i#{$i} { background-position: #{($i)*-20}px 0px; } } td.distance { - color: $darkgrey; - text-align: right; font-size: x-small; } tr.turn { @@ -796,12 +751,6 @@ tr.turn:hover { } } - .subscribe-buttons input { - font-size: 90%; - line-height: 15px; - min-height: 20px; - } - span.action-button:hover { cursor: pointer; text-decoration: underline; @@ -983,12 +932,6 @@ tr.turn:hover { } } -/* Rules for the user list */ - -#user_list { - width: 100%; -} - /* Rules for the diary entry page */ .diary_entries { @@ -1026,12 +969,6 @@ tr.turn:hover { } } -/* Rules for the oauth authorization page */ - -.oauth-authorize ul { - list-style: none; -} - /* Rules for messages pages */ .messages { diff --git a/app/assets/stylesheets/print.scss b/app/assets/stylesheets/print.scss index a4afdf576..35700fc5f 100644 --- a/app/assets/stylesheets/print.scss +++ b/app/assets/stylesheets/print.scss @@ -55,18 +55,12 @@ header, page-break-inside: avoid; height: 40px; font-size: 12px; - text-align: center; table { width: 100% } } -.attribution_license, -.attribution_project { - text-align: left; -} - .attribution_notice { text-align: center; } diff --git a/app/controllers/api/traces_controller.rb b/app/controllers/api/traces_controller.rb index 629617f0b..b66aead38 100644 --- a/app/controllers/api/traces_controller.rb +++ b/app/controllers/api/traces_controller.rb @@ -115,7 +115,7 @@ module Api trace.save! # Finally save the user's preferred privacy level - if pref = current_user.preferences.where(:k => "gps.trace.visibility").first + if pref = current_user.preferences.find_by(:k => "gps.trace.visibility") pref.v = visibility pref.save else diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index a30816a8e..c830d4bcd 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -22,7 +22,7 @@ class ApplicationController < ActionController::Base def authorize_web if session[:user] - self.current_user = User.where(:id => session[:user], :status => %w[active confirmed suspended]).first + self.current_user = User.find_by(:id => session[:user], :status => %w[active confirmed suspended]) if session[:fingerprint] && session[:fingerprint] != current_user.fingerprint diff --git a/app/controllers/diary_entries_controller.rb b/app/controllers/diary_entries_controller.rb index a1cd6ab0e..6db32797a 100644 --- a/app/controllers/diary_entries_controller.rb +++ b/app/controllers/diary_entries_controller.rb @@ -61,7 +61,7 @@ class DiaryEntriesController < ApplicationController def show entries = @user.diary_entries entries = entries.visible unless can? :unhide, DiaryEntry - @entry = entries.where(:id => params[:id]).first + @entry = entries.find_by(:id => params[:id]) if @entry @title = t ".title", :user => params[:display_name], :title => @entry.title @comments = can?(:unhidecomment, DiaryEntry) ? @entry.comments : @entry.visible_comments @@ -74,7 +74,7 @@ class DiaryEntriesController < ApplicationController def new @title = t ".title" - default_lang = current_user.preferences.where(:k => "diary.default_language").first + default_lang = current_user.preferences.find_by(:k => "diary.default_language") lang_code = default_lang ? default_lang.v : current_user.preferred_language @diary_entry = DiaryEntry.new(entry_params.merge(:language_code => lang_code)) set_map_location @@ -99,7 +99,7 @@ class DiaryEntriesController < ApplicationController @diary_entry.user = current_user if @diary_entry.save - default_lang = current_user.preferences.where(:k => "diary.default_language").first + default_lang = current_user.preferences.find_by(:k => "diary.default_language") if default_lang default_lang.v = @diary_entry.language_code default_lang.save! @@ -235,7 +235,7 @@ class DiaryEntriesController < ApplicationController def comments @title = t ".title", :user => @user.display_name - comments = DiaryComment.where(:users => @user) + comments = DiaryComment.where(:user => @user) comments = comments.visible unless can? :unhidecomment, DiaryEntry @params = params.permit(:display_name, :before, :after) diff --git a/app/controllers/traces_controller.rb b/app/controllers/traces_controller.rb index 90ab34a48..242f8113c 100644 --- a/app/controllers/traces_controller.rb +++ b/app/controllers/traces_controller.rb @@ -19,7 +19,7 @@ class TracesController < ApplicationController # from display name, pick up user id if one user's traces only display_name = params[:display_name] if display_name.present? - target_user = User.active.where(:display_name => display_name).first + target_user = User.active.find_by(:display_name => display_name) if target_user.nil? render_unknown_user display_name return @@ -283,7 +283,7 @@ class TracesController < ApplicationController # Save the trace object if trace.save # Finally save the user's preferred privacy level - if pref = current_user.preferences.where(:k => "gps.trace.visibility").first + if pref = current_user.preferences.find_by(:k => "gps.trace.visibility") pref.v = visibility pref.save else @@ -303,11 +303,11 @@ class TracesController < ApplicationController end def default_visibility - visibility = current_user.preferences.where(:k => "gps.trace.visibility").first + visibility = current_user.preferences.find_by(:k => "gps.trace.visibility") if visibility visibility.v - elsif current_user.preferences.where(:k => "gps.trace.public", :v => "default").first.nil? + elsif current_user.preferences.find_by(:k => "gps.trace.public", :v => "default").nil? "private" else "public" diff --git a/app/helpers/geocoder_helper.rb b/app/helpers/geocoder_helper.rb index 1826b08a4..f819c1ac5 100644 --- a/app/helpers/geocoder_helper.rb +++ b/app/helpers/geocoder_helper.rb @@ -1,6 +1,6 @@ module GeocoderHelper def result_to_html(result) - html_options = { :class => "set_position", :data => {} } + html_options = { :class => "set_position stretched-link", :data => {} } url = if result[:type] && result[:id] url_for(:controller => :browse, :action => result[:type], :id => result[:id]) diff --git a/app/helpers/user_helper.rb b/app/helpers/user_helper.rb index c8a80588c..3554980b8 100644 --- a/app/helpers/user_helper.rb +++ b/app/helpers/user_helper.rb @@ -73,7 +73,7 @@ module UserHelper if user.avatar.variable? variant = user.avatar.variant(variant_options) # https://stackoverflow.com/questions/61893089/get-metadata-of-active-storage-variant/67228171 - if variant.processed? + if variant.send(:processed?) metadata = variant.processed.send(:record).image.blob.metadata if metadata["width"] options[:width] = metadata["width"] diff --git a/app/helpers/user_roles_helper.rb b/app/helpers/user_roles_helper.rb index c9f8e2e65..b870d0273 100644 --- a/app/helpers/user_roles_helper.rb +++ b/app/helpers/user_roles_helper.rb @@ -25,9 +25,7 @@ module UserRolesHelper end if image - svg_icon = tag.source(:srcset => image_path("#{image}.svg"), :type => "image/svg+xml") - png_icon = image_tag("#{image}.png", :srcset => image_path("#{image}.svg"), :size => "20x20", :border => 0, :alt => alt, :title => title) - icon = tag.picture(svg_icon + png_icon) + icon = image_tag("#{image}.png", :srcset => image_path("#{image}.svg"), :size => "20x20", :border => 0, :alt => alt, :title => title) icon = link_to(icon, url, :method => :post, :data => { :confirm => confirm }) if url end diff --git a/app/models/changeset_comment.rb b/app/models/changeset_comment.rb index 1b78f98e8..3bc9483fa 100644 --- a/app/models/changeset_comment.rb +++ b/app/models/changeset_comment.rb @@ -11,7 +11,9 @@ # # Indexes # -# index_changeset_comments_on_created_at (created_at) +# index_changeset_comments_on_author_id_and_created_at (author_id,created_at) +# index_changeset_comments_on_changeset_id_and_created_at (changeset_id,created_at) +# index_changeset_comments_on_created_at (created_at) # # Foreign Keys # diff --git a/app/models/changeset_tag.rb b/app/models/changeset_tag.rb index 672e6f76c..da9fbce51 100644 --- a/app/models/changeset_tag.rb +++ b/app/models/changeset_tag.rb @@ -6,18 +6,12 @@ # k :string default(""), not null, primary key # v :string default(""), not null # -# Indexes -# -# changeset_tags_id_idx (changeset_id) -# # Foreign Keys # # changeset_tags_id_fkey (changeset_id => changesets.id) # class ChangesetTag < ApplicationRecord - self.primary_keys = "changeset_id", "k" - belongs_to :changeset validates :changeset, :associated => true diff --git a/app/models/concerns/geo_record.rb b/app/models/concerns/geo_record.rb index 23101856a..bd96e0ff3 100644 --- a/app/models/concerns/geo_record.rb +++ b/app/models/concerns/geo_record.rb @@ -9,7 +9,7 @@ module GeoRecord format("%.7f", :coord => self) end - def as_json(_) + def as_json(*) format("%.7f", :coord => self).to_f end end diff --git a/app/models/diary_entry_subscription.rb b/app/models/diary_entry_subscription.rb index ed6de79e4..93b8847f4 100644 --- a/app/models/diary_entry_subscription.rb +++ b/app/models/diary_entry_subscription.rb @@ -16,8 +16,6 @@ # class DiaryEntrySubscription < ApplicationRecord - self.primary_keys = "user_id", "diary_entry_id" - belongs_to :user belongs_to :diary_entry end diff --git a/app/models/friendship.rb b/app/models/friendship.rb index 476821b47..2b1c7ce00 100644 --- a/app/models/friendship.rb +++ b/app/models/friendship.rb @@ -5,11 +5,12 @@ # id :bigint(8) not null, primary key # user_id :bigint(8) not null # friend_user_id :bigint(8) not null +# created_at :datetime # # Indexes # -# friends_user_id_idx (user_id) -# user_id_idx (friend_user_id) +# index_friends_on_user_id_and_created_at (user_id,created_at) +# user_id_idx (friend_user_id) # # Foreign Keys # diff --git a/app/models/language.rb b/app/models/language.rb index f346c8a74..8d3e4583f 100644 --- a/app/models/language.rb +++ b/app/models/language.rb @@ -8,8 +8,6 @@ # class Language < ApplicationRecord - self.primary_key = "code" - has_many :diary_entries, :foreign_key => "language", :inverse_of => :language def self.load(file) diff --git a/app/models/node_tag.rb b/app/models/node_tag.rb index d76a1a0ae..18e502439 100644 --- a/app/models/node_tag.rb +++ b/app/models/node_tag.rb @@ -13,7 +13,6 @@ class NodeTag < ApplicationRecord self.table_name = "current_node_tags" - self.primary_keys = "node_id", "k" belongs_to :node diff --git a/app/models/note_comment.rb b/app/models/note_comment.rb index 635a5b0de..b870e5558 100644 --- a/app/models/note_comment.rb +++ b/app/models/note_comment.rb @@ -13,9 +13,10 @@ # # Indexes # -# index_note_comments_on_body (to_tsvector('english'::regconfig, body)) USING gin -# index_note_comments_on_created_at (created_at) -# note_comments_note_id_idx (note_id) +# index_note_comments_on_author_id_and_created_at (author_id,created_at) +# index_note_comments_on_body (to_tsvector('english'::regconfig, body)) USING gin +# index_note_comments_on_created_at (created_at) +# note_comments_note_id_idx (note_id) # # Foreign Keys # diff --git a/app/models/oauth2_application.rb b/app/models/oauth2_application.rb index 73a02417d..834f1ded5 100644 --- a/app/models/oauth2_application.rb +++ b/app/models/oauth2_application.rb @@ -1,3 +1,28 @@ +# == Schema Information +# +# Table name: oauth_applications +# +# id :bigint(8) not null, primary key +# owner_type :string not null +# owner_id :bigint(8) not null +# name :string not null +# uid :string not null +# secret :string not null +# redirect_uri :text not null +# scopes :string default(""), not null +# confidential :boolean default(TRUE), not null +# created_at :datetime not null +# updated_at :datetime not null +# +# Indexes +# +# index_oauth_applications_on_owner_type_and_owner_id (owner_type,owner_id) +# index_oauth_applications_on_uid (uid) UNIQUE +# +# Foreign Keys +# +# fk_rails_... (owner_id => users.id) +# class Oauth2Application < Doorkeeper::Application belongs_to :owner, :polymorphic => true diff --git a/app/models/oauth_nonce.rb b/app/models/oauth_nonce.rb index 86463f297..e08121cfc 100644 --- a/app/models/oauth_nonce.rb +++ b/app/models/oauth_nonce.rb @@ -2,7 +2,7 @@ # # Table name: oauth_nonces # -# id :bigint not null, primary key +# id :bigint(8) not null, primary key # nonce :string # timestamp :integer # created_at :datetime diff --git a/app/models/old_node.rb b/app/models/old_node.rb index 077039ac3..3ec5cd415 100644 --- a/app/models/old_node.rb +++ b/app/models/old_node.rb @@ -29,7 +29,6 @@ class OldNode < ApplicationRecord include ConsistencyValidations self.table_name = "nodes" - self.primary_keys = "node_id", "version" # NOTE: this needs to be included after the table name changes, or # the queries generated by Redactable will use the wrong table name. @@ -49,7 +48,7 @@ class OldNode < ApplicationRecord belongs_to :redaction, :optional => true belongs_to :current_node, :class_name => "Node", :foreign_key => "node_id", :inverse_of => :old_nodes - has_many :old_tags, :class_name => "OldNodeTag", :foreign_key => [:node_id, :version], :inverse_of => :old_node + has_many :old_tags, :class_name => "OldNodeTag", :query_constraints => [:node_id, :version], :inverse_of => :old_node def validate_position errors.add(:base, "Node is not in the world") unless in_world? diff --git a/app/models/old_node_tag.rb b/app/models/old_node_tag.rb index c710e48f1..8f632a671 100644 --- a/app/models/old_node_tag.rb +++ b/app/models/old_node_tag.rb @@ -9,14 +9,13 @@ # # Foreign Keys # -# node_tags_id_fkey (node_id => nodes.node_id) +# node_tags_id_fkey (["node_id", "version"] => nodes.["node_id", "version"]) # class OldNodeTag < ApplicationRecord self.table_name = "node_tags" - self.primary_keys = "node_id", "version", "k" - belongs_to :old_node, :foreign_key => [:node_id, :version], :inverse_of => :old_tags + belongs_to :old_node, :query_constraints => [:node_id, :version], :inverse_of => :old_tags validates :old_node, :associated => true validates :k, :v, :allow_blank => true, :length => { :maximum => 255 }, :characters => true diff --git a/app/models/old_relation.rb b/app/models/old_relation.rb index c36d64572..5ff12fd58 100644 --- a/app/models/old_relation.rb +++ b/app/models/old_relation.rb @@ -2,7 +2,7 @@ # # Table name: relations # -# relation_id :bigint(8) default(0), not null, primary key +# relation_id :bigint(8) not null, primary key # changeset_id :bigint(8) not null # timestamp :datetime not null # version :bigint(8) not null, primary key @@ -24,7 +24,6 @@ class OldRelation < ApplicationRecord include ConsistencyValidations self.table_name = "relations" - self.primary_keys = "relation_id", "version" # NOTE: this needs to be included after the table name changes, or # the queries generated by Redactable will use the wrong table name. @@ -34,8 +33,8 @@ class OldRelation < ApplicationRecord belongs_to :redaction, :optional => true belongs_to :current_relation, :class_name => "Relation", :foreign_key => "relation_id", :inverse_of => :old_relations - has_many :old_members, -> { order(:sequence_id) }, :class_name => "OldRelationMember", :foreign_key => [:relation_id, :version], :inverse_of => :old_relation - has_many :old_tags, :class_name => "OldRelationTag", :foreign_key => [:relation_id, :version], :inverse_of => :old_relation + has_many :old_members, -> { order(:sequence_id) }, :class_name => "OldRelationMember", :query_constraints => [:relation_id, :version], :inverse_of => :old_relation + has_many :old_tags, :class_name => "OldRelationTag", :query_constraints => [:relation_id, :version], :inverse_of => :old_relation validates :changeset, :associated => true validates :timestamp, :presence => true diff --git a/app/models/old_relation_member.rb b/app/models/old_relation_member.rb index c99f60e7c..4264e0221 100644 --- a/app/models/old_relation_member.rb +++ b/app/models/old_relation_member.rb @@ -2,7 +2,7 @@ # # Table name: relation_members # -# relation_id :bigint(8) default(0), not null, primary key +# relation_id :bigint(8) not null, primary key # member_type :enum not null # member_id :bigint(8) not null # member_role :string not null @@ -15,14 +15,14 @@ # # Foreign Keys # -# relation_members_id_fkey (relation_id => relations.relation_id) +# relation_members_id_fkey (["relation_id", "version"] => relations.["relation_id", "version"]) # class OldRelationMember < ApplicationRecord self.table_name = "relation_members" - self.primary_keys = "relation_id", "version", "sequence_id" + self.primary_key = %w[relation_id version sequence_id] - belongs_to :old_relation, :foreign_key => [:relation_id, :version], :inverse_of => :old_members + belongs_to :old_relation, :query_constraints => [:relation_id, :version], :inverse_of => :old_members # A bit messy, referring to the current tables, should do for the data browser for now belongs_to :member, :polymorphic => true diff --git a/app/models/old_relation_tag.rb b/app/models/old_relation_tag.rb index c3a183891..31399c00d 100644 --- a/app/models/old_relation_tag.rb +++ b/app/models/old_relation_tag.rb @@ -2,21 +2,20 @@ # # Table name: relation_tags # -# relation_id :bigint(8) default(0), not null, primary key +# relation_id :bigint(8) not null, primary key # k :string default(""), not null, primary key # v :string default(""), not null # version :bigint(8) not null, primary key # # Foreign Keys # -# relation_tags_id_fkey (relation_id => relations.relation_id) +# relation_tags_id_fkey (["relation_id", "version"] => relations.["relation_id", "version"]) # class OldRelationTag < ApplicationRecord self.table_name = "relation_tags" - self.primary_keys = "relation_id", "version", "k" - belongs_to :old_relation, :foreign_key => [:relation_id, :version], :inverse_of => :old_tags + belongs_to :old_relation, :query_constraints => [:relation_id, :version], :inverse_of => :old_tags validates :old_relation, :associated => true validates :k, :v, :allow_blank => true, :length => { :maximum => 255 }, :characters => true diff --git a/app/models/old_way.rb b/app/models/old_way.rb index fcff84ede..a55d3ed00 100644 --- a/app/models/old_way.rb +++ b/app/models/old_way.rb @@ -2,7 +2,7 @@ # # Table name: ways # -# way_id :bigint(8) default(0), not null, primary key +# way_id :bigint(8) not null, primary key # changeset_id :bigint(8) not null # timestamp :datetime not null # version :bigint(8) not null, primary key @@ -24,7 +24,6 @@ class OldWay < ApplicationRecord include ConsistencyValidations self.table_name = "ways" - self.primary_keys = "way_id", "version" # NOTE: this needs to be included after the table name changes, or # the queries generated by Redactable will use the wrong table name. @@ -34,8 +33,8 @@ class OldWay < ApplicationRecord belongs_to :redaction, :optional => true belongs_to :current_way, :class_name => "Way", :foreign_key => "way_id", :inverse_of => :old_ways - has_many :old_nodes, :class_name => "OldWayNode", :foreign_key => [:way_id, :version], :inverse_of => :old_way - has_many :old_tags, :class_name => "OldWayTag", :foreign_key => [:way_id, :version], :inverse_of => :old_way + has_many :old_nodes, :class_name => "OldWayNode", :query_constraints => [:way_id, :version], :inverse_of => :old_way + has_many :old_tags, :class_name => "OldWayTag", :query_constraints => [:way_id, :version], :inverse_of => :old_way validates :changeset, :associated => true validates :timestamp, :presence => true diff --git a/app/models/old_way_node.rb b/app/models/old_way_node.rb index 9c8c0c6f3..e031aba10 100644 --- a/app/models/old_way_node.rb +++ b/app/models/old_way_node.rb @@ -13,14 +13,13 @@ # # Foreign Keys # -# way_nodes_id_fkey (way_id => ways.way_id) +# way_nodes_id_fkey (["way_id", "version"] => ways.["way_id", "version"]) # class OldWayNode < ApplicationRecord self.table_name = "way_nodes" - self.primary_keys = "way_id", "version", "sequence_id" - belongs_to :old_way, :foreign_key => [:way_id, :version], :inverse_of => :old_nodes + belongs_to :old_way, :query_constraints => [:way_id, :version], :inverse_of => :old_nodes # A bit messy, referring to current nodes and ways, should do for the data browser for now belongs_to :node belongs_to :way diff --git a/app/models/old_way_tag.rb b/app/models/old_way_tag.rb index 0342cf344..96ec8baf5 100644 --- a/app/models/old_way_tag.rb +++ b/app/models/old_way_tag.rb @@ -2,21 +2,20 @@ # # Table name: way_tags # -# way_id :bigint(8) default(0), not null, primary key +# way_id :bigint(8) not null, primary key # k :string not null, primary key # v :string not null # version :bigint(8) not null, primary key # # Foreign Keys # -# way_tags_id_fkey (way_id => ways.way_id) +# way_tags_id_fkey (["way_id", "version"] => ways.["way_id", "version"]) # class OldWayTag < ApplicationRecord self.table_name = "way_tags" - self.primary_keys = "way_id", "version", "k" - belongs_to :old_way, :foreign_key => [:way_id, :version], :inverse_of => :old_tags + belongs_to :old_way, :query_constraints => [:way_id, :version], :inverse_of => :old_tags validates :old_way, :associated => true validates :k, :v, :allow_blank => true, :length => { :maximum => 255 }, :characters => true diff --git a/app/models/relation_member.rb b/app/models/relation_member.rb index dd47bdcf6..8ff825cee 100644 --- a/app/models/relation_member.rb +++ b/app/models/relation_member.rb @@ -19,7 +19,7 @@ class RelationMember < ApplicationRecord self.table_name = "current_relation_members" - self.primary_keys = "relation_id", "sequence_id" + self.primary_key = %w[relation_id sequence_id] belongs_to :relation belongs_to :member, :polymorphic => true diff --git a/app/models/relation_tag.rb b/app/models/relation_tag.rb index 758ed37cc..500b7d910 100644 --- a/app/models/relation_tag.rb +++ b/app/models/relation_tag.rb @@ -13,7 +13,6 @@ class RelationTag < ApplicationRecord self.table_name = "current_relation_tags" - self.primary_keys = "relation_id", "k" belongs_to :relation diff --git a/app/models/tracetag.rb b/app/models/tracetag.rb index 70296cd54..b1dde095c 100644 --- a/app/models/tracetag.rb +++ b/app/models/tracetag.rb @@ -2,7 +2,7 @@ # # Table name: gpx_file_tags # -# gpx_id :bigint(8) default(0), not null +# gpx_id :bigint(8) not null # tag :string not null # id :bigint(8) not null, primary key # diff --git a/app/models/user.rb b/app/models/user.rb index 3eb03a2fe..638928861 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -12,7 +12,6 @@ # home_lat :float # home_lon :float # home_zoom :integer default(3) -# nearby :integer default(50) # pass_salt :string # email_valid :boolean default(FALSE), not null # new_email :string diff --git a/app/models/user_preference.rb b/app/models/user_preference.rb index 741aa335a..5b91bbda9 100644 --- a/app/models/user_preference.rb +++ b/app/models/user_preference.rb @@ -12,8 +12,6 @@ # class UserPreference < ApplicationRecord - self.primary_keys = "user_id", "k" - belongs_to :user validates :user, :associated => true diff --git a/app/models/way_node.rb b/app/models/way_node.rb index 0626fb240..c57d3be79 100644 --- a/app/models/way_node.rb +++ b/app/models/way_node.rb @@ -18,7 +18,6 @@ class WayNode < ApplicationRecord self.table_name = "current_way_nodes" - self.primary_keys = "way_id", "sequence_id" belongs_to :way belongs_to :node diff --git a/app/models/way_tag.rb b/app/models/way_tag.rb index 93c4cdece..04ce7abf5 100644 --- a/app/models/way_tag.rb +++ b/app/models/way_tag.rb @@ -13,7 +13,6 @@ class WayTag < ApplicationRecord self.table_name = "current_way_tags" - self.primary_keys = "way_id", "k" belongs_to :way diff --git a/app/views/account/deletions/show.html.erb b/app/views/account/deletions/show.html.erb index 99c1686d8..ddc821677 100644 --- a/app/views/account/deletions/show.html.erb +++ b/app/views/account/deletions/show.html.erb @@ -6,10 +6,7 @@
- - " type="image/svg+xml"> - <%= image_tag("notice.png", :srcset => image_path("notice.svg")) %> - + <%= image_tag("notice.png", :srcset => image_path("notice.svg")) %>

<%= t ".warning" %>

diff --git a/app/views/browse/changeset.html.erb b/app/views/browse/changeset.html.erb index 9acbd05ae..93e0abf21 100644 --- a/app/views/browse/changeset.html.erb +++ b/app/views/browse/changeset.html.erb @@ -17,15 +17,11 @@ <% if current_user %>
- + <% if @changeset.subscribers.exists?(current_user.id) %> + + <% else %> + + <% end %>
<% end %>
diff --git a/app/views/geocoder/error.html.erb b/app/views/geocoder/error.html.erb index c4b6f8964..37a2f869e 100644 --- a/app/views/geocoder/error.html.erb +++ b/app/views/geocoder/error.html.erb @@ -1 +1 @@ -

<%= h(@error) %>

+
<%= h(@error) %>
diff --git a/app/views/layouts/_flash.html.erb b/app/views/layouts/_flash.html.erb index eaf3078fe..1d3bc3421 100644 --- a/app/views/layouts/_flash.html.erb +++ b/app/views/layouts/_flash.html.erb @@ -1,10 +1,7 @@ <% if flash[:error] %>
- - " type="image/svg+xml" /> - <%= image_tag("notice.png", :srcset => image_path("notice.svg")) %> - + <%= image_tag("notice.png", :srcset => image_path("notice.svg")) %>
<%= render_flash(flash[:error]) %>
@@ -13,10 +10,7 @@ <% if flash[:warning] %>
- - " type="image/svg+xml"> - <%= image_tag("notice.png", :srcset => image_path("notice.svg")) %> - + <%= image_tag("notice.png", :srcset => image_path("notice.svg")) %>
<%= render_flash(flash[:warning]) %>
@@ -25,10 +19,7 @@ <% if flash[:notice] %>
- - " type="image/svg+xml"> - <%= image_tag("notice.png", :srcset => image_path("notice.svg")) %> - + <%= image_tag("notice.png", :srcset => image_path("notice.svg")) %>
<%= render_flash(flash[:notice]) %>
diff --git a/app/views/layouts/_header.html.erb b/app/views/layouts/_header.html.erb index 8ff04536d..fb5c01839 100644 --- a/app/views/layouts/_header.html.erb +++ b/app/views/layouts/_header.html.erb @@ -1,7 +1,7 @@
-

- - <%= image_tag "osm_logo.png", :srcset => image_path("osm_logo.svg"), :alt => t("layouts.logo.alt_text"), :class => "logo" %> +

+ + <%= image_tag "osm_logo.png", :srcset => image_path("osm_logo.svg"), :alt => t("layouts.logo.alt_text"), :width => 30, :height => 30, :class => "logo" %> <%= t "layouts.project_name.h1" %>

@@ -60,7 +60,7 @@ <%= link_to t("layouts.about"), about_path, :class => "nav-link" %>

- <%= link_to image_tag("directions.png", :width => "20", :height => "20"), directions_path, :class => "btn btn-sm btn-primary switch_link", :title => t("site.search.get_directions_title") %> + <%= link_to image_tag("directions.png", :width => "20", :height => "20", :class => "align-bottom"), directions_path, :class => "btn btn-sm btn-primary switch_link", :title => t("site.search.get_directions_title") %>
diff --git a/app/views/layouts/error.html.erb b/app/views/layouts/error.html.erb index db6179769..435de3015 100644 --- a/app/views/layouts/error.html.erb +++ b/app/views/layouts/error.html.erb @@ -8,10 +8,7 @@ - - " type="image/svg+xml" /> - <%= image_tag "osm_logo.png", :srcset => image_path("osm_logo.svg"), :alt => t("layouts.logo.alt_text"), :class => "logo" %> - + <%= image_tag "osm_logo.png", :srcset => image_path("osm_logo.svg"), :alt => t("layouts.logo.alt_text"), :class => "logo" %>
<%= yield %> diff --git a/app/views/layouts/map.html.erb b/app/views/layouts/map.html.erb index 377f96149..adb0cd8a6 100644 --- a/app/views/layouts/map.html.erb +++ b/app/views/layouts/map.html.erb @@ -81,11 +81,11 @@
-
+
- - + + diff --git a/app/views/oauth2_applications/_form.html.erb b/app/views/oauth2_applications/_form.html.erb index 7fde3e0e7..51267c069 100644 --- a/app/views/oauth2_applications/_form.html.erb +++ b/app/views/oauth2_applications/_form.html.erb @@ -3,5 +3,5 @@ <%= f.form_group :confidential do %> <%= f.check_box :confidential %> <% end %> -<%= f.collection_check_boxes :scopes, Oauth.scopes(:privileged => current_user.administrator?), :name, :description %> +<%= f.collection_check_boxes :scopes, Oauth.scopes(:oauth2 => true, :privileged => current_user.administrator?), :name, :description %> <%= f.primary %> diff --git a/app/views/oauth2_authorizations/new.html.erb b/app/views/oauth2_authorizations/new.html.erb index 971e0e20a..ac9c7c6c5 100644 --- a/app/views/oauth2_authorizations/new.html.erb +++ b/app/views/oauth2_authorizations/new.html.erb @@ -18,6 +18,7 @@ <%= f.hidden_field :state, :value => @pre_auth.state %> <%= f.hidden_field :response_type, :value => @pre_auth.response_type %> <%= f.hidden_field :scope, :value => @pre_auth.scope %> + <%= f.hidden_field :nonce, :value => @pre_auth.nonce %> <%= f.hidden_field :code_challenge, :value => @pre_auth.code_challenge %> <%= f.hidden_field :code_challenge_method, :value => @pre_auth.code_challenge_method %> <%= f.primary t(".authorize") %> @@ -30,6 +31,7 @@ <%= f.hidden_field :state, :value => @pre_auth.state %> <%= f.hidden_field :response_type, :value => @pre_auth.response_type %> <%= f.hidden_field :scope, :value => @pre_auth.scope %> + <%= f.hidden_field :nonce, :value => @pre_auth.nonce %> <%= f.hidden_field :code_challenge, :value => @pre_auth.code_challenge %> <%= f.hidden_field :code_challenge_method, :value => @pre_auth.code_challenge_method %> <%= f.submit t(".deny") %> diff --git a/bin/setup b/bin/setup index ec47b79b3..b5accee8a 100755 --- a/bin/setup +++ b/bin/setup @@ -5,7 +5,7 @@ require "fileutils" APP_ROOT = File.expand_path("..", __dir__) def system!(*args) - system(*args) || abort("\n== Command #{args} failed ==") + system(*args, :exception => true) end FileUtils.chdir APP_ROOT do diff --git a/config/application.rb b/config/application.rb index 7b492aea0..2303d321c 100644 --- a/config/application.rb +++ b/config/application.rb @@ -11,17 +11,18 @@ module OpenStreetMap # Initialize configuration defaults for originally generated Rails version. config.load_defaults 7.0 - # Settings in config/environments/* take precedence over those specified here. - # Application configuration can go into files in config/initializers - # -- all .rb files in that directory are automatically loaded after loading - # the framework and any gems in your application. - - # Custom directories with classes and modules you want to be autoloadable. - config.autoload_paths += %W[#{config.root}/lib] - - # Force requests from old versions of IE (<= IE8) to be UTF-8 encoded. - # This has defaulted to false since rails 6.0 - config.action_view.default_enforce_utf8 = true + # Please, add to the `ignore` list any other `lib` subdirectories that do + # not contain `.rb` files, or that should not be reloaded or eager loaded. + # Common ones are `templates`, `generators`, or `middleware`, for example. + config.autoload_lib(:ignore => %w[assets classic_pagination tasks]) + + # Configuration for the application, engines, and railties goes here. + # + # These settings can be overridden in specific environments using the files + # in config/environments, which are processed later. + # + # config.time_zone = "Central Time (US & Canada)" + # config.eager_load_paths << Rails.root.join("extras") # Use SQL instead of Active Record's schema dumper when creating the database. # This is necessary if your schema can't be completely dumped by the schema dumper, diff --git a/config/docker.database.yml b/config/docker.database.yml index 29a396147..b0e79b0f8 100644 --- a/config/docker.database.yml +++ b/config/docker.database.yml @@ -1,4 +1,4 @@ -# This configuration is tailored for use with docker-compose. See DOCKER.md for more information. +# This configuration is tailored for use with docker compose. See DOCKER.md for more information. development: adapter: postgresql diff --git a/config/environments/development.rb b/config/environments/development.rb index 36a6f2820..bf49d70da 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -6,7 +6,7 @@ Rails.application.configure do # In the development environment your application's code is reloaded any time # it changes. This slows down response time but is perfect for development # since you don't have to restart the web server when you make code changes. - config.cache_classes = false + config.enable_reloading = true # Do not eager load code on boot. config.eager_load = false @@ -56,6 +56,9 @@ Rails.application.configure do # Highlight code that triggered database queries in logs. config.active_record.verbose_query_logs = true unless Settings.status == "database_offline" + # Highlight code that enqueued background job in logs. + config.active_job.verbose_enqueue_logs = true + # Debug mode disables concatenation and preprocessing of assets. # This option may cause significant delays in view rendering with a large # number of complex assets. @@ -76,6 +79,9 @@ Rails.application.configure do # Uncomment if you wish to allow Action Cable access from any origin. # config.action_cable.disable_request_forgery_protection = true + # Raise error when a before_action's only/except options reference missing actions + config.action_controller.raise_on_missing_callback_actions = true + # Disable host validation. config.hosts = [] end diff --git a/config/environments/production.rb b/config/environments/production.rb index aef8c6986..5ce25fc2c 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -4,7 +4,7 @@ Rails.application.configure do # Settings specified here will take precedence over those in config/application.rb. # Code is not reloaded between requests. - config.cache_classes = true + config.enable_reloading = false # Eager load code on boot. This eager loads most of Rails and # your application in memory, allowing both threaded web servers @@ -16,13 +16,12 @@ Rails.application.configure do config.consider_all_requests_local = false config.action_controller.perform_caching = true - # Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"] - # or in config/master.key. This key is used to decrypt credentials (and other encrypted files). + # Ensures that a master key has been made available in ENV["RAILS_MASTER_KEY"], config/master.key, or an environment + # key such as config/credentials/production.key. This key is used to decrypt credentials (and other encrypted files). # config.require_master_key = true - # Disable serving static files from the `/public` folder by default since - # Apache or NGINX already handles this. - config.public_file_server.enabled = ENV["RAILS_SERVE_STATIC_FILES"].present? + # Enable static file serving from the `/public` folder (turn off if using NGINX/Apache for it). + config.public_file_server.enabled = true # Compress JavaScripts and CSS. config.assets.js_compressor = Terser.new @@ -46,16 +45,26 @@ Rails.application.configure do # config.action_cable.url = "wss://example.com/cable" # config.action_cable.allowed_request_origins = [ "http://example.com", /http:\/\/example.*/ ] + # Assume all access to the app is happening through a SSL-terminating reverse proxy. + # Can be used together with config.force_ssl for Strict-Transport-Security and secure cookies. + # config.assume_ssl = true + # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. # config.force_ssl = true - # Include generic and useful information about system operation, but avoid logging too much - # information to avoid inadvertent exposure of personally identifiable information (PII). - config.log_level = :info + # Log to STDOUT by default + # config.logger = ActiveSupport::Logger.new($stdout) + # .tap { |logger| logger.formatter = Logger::Formatter.new } + # .then { |logger| ActiveSupport::TaggedLogging.new(logger) } # Prepend all log lines with the following tags. config.log_tags = [:request_id] + # Info include generic and useful information about system operation, but avoids logging too much + # information to avoid inadvertent exposure of personally identifiable information (PII). If you + # want to log everything, set the level to "debug". + config.log_level = ENV.fetch("RAILS_LOG_LEVEL", "info") + # Use a different log path in production. config.paths["log"] = Settings.log_path if Settings.key?(:log_path) @@ -82,24 +91,16 @@ Rails.application.configure do # Don't log any deprecations. config.active_support.report_deprecations = false - # Use default logging formatter so that PID and timestamp are not suppressed. - config.log_formatter = Logger::Formatter.new - - # Use a different logger for distributed setups. - # require "syslog/logger" - # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new "app-name") - - if ENV["RAILS_LOG_TO_STDOUT"].present? - logger = ActiveSupport::Logger.new($stdout) - logger.formatter = config.log_formatter - config.logger = ActiveSupport::TaggedLogging.new(logger) - end - # Do not dump schema after migrations. config.active_record.dump_schema_after_migration = false unless Settings.status == "database_offline" - # Enable autoloading of dependencies. - config.enable_dependency_loading = true + # Enable DNS rebinding protection and other `Host` header attacks. + # config.hosts = [ + # "example.com", # Allow requests from example.com + # /.*\.example\.com/ # Allow requests from subdomains like `www.example.com` + # ] + # Skip DNS rebinding protection for the default health check endpoint. + # config.host_authorization = { exclude: ->(request) { request.path == "/up" } } # Use delayed job to queue jobs in production. config.active_job.queue_adapter = :delayed_job diff --git a/config/environments/test.rb b/config/environments/test.rb index 875716e50..08d3236bf 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -8,12 +8,13 @@ require "active_support/core_ext/integer/time" Rails.application.configure do # Settings specified here will take precedence over those in config/application.rb. - # Turn false under Spring and add config.action_view.cache_template_loading = true - config.cache_classes = true + # While tests run files are not watched, reloading is not necessary. + config.enable_reloading = false - # Eager loading loads your whole application. When running a single test locally, - # this probably isn't necessary. It's a good idea to do in a continuous integration - # system, or in some way before deploying your code. + # Eager loading loads your entire application. When running a single test locally, + # this is usually not necessary, and can slow down your test suite. However, it's + # recommended that you enable it in continuous integration systems to ensure eager + # loading is working properly before deploying your code. config.eager_load = ENV["CI"].present? # Configure public file server for tests with Cache-Control for performance. @@ -28,7 +29,7 @@ Rails.application.configure do config.cache_store = :null_store # Raise exceptions instead of rendering exception templates. - config.action_dispatch.show_exceptions = false + config.action_dispatch.show_exceptions = :rescuable # Disable request forgery protection in test environment. config.action_controller.allow_forgery_protection = false @@ -61,6 +62,9 @@ Rails.application.configure do # Annotate rendered view with file names. # config.action_view.annotate_rendered_view_with_filenames = true + # Raise error when a before_action's only/except options reference missing actions + config.action_controller.raise_on_missing_callback_actions = true + # Use the test adapter for ActiveJob during testing. config.active_job.queue_adapter = :test end diff --git a/config/i18n-tasks.yml b/config/i18n-tasks.yml index 60f8a09df..bdd18a965 100644 --- a/config/i18n-tasks.yml +++ b/config/i18n-tasks.yml @@ -13,7 +13,7 @@ data: ## Provide a custom adapter: # adapter: I18n::Tasks::Data::FileSystem - # Locale files or `File.find` patterns where translations are read from: + # Locale files or `Find.find` patterns where translations are read from: read: ## Default: - config/locales/en.yml @@ -52,7 +52,7 @@ data: # Find translate calls search: - ## Paths or `File.find` patterns to search in: + ## Paths or `Find.find` patterns to search in: # paths: # - app/ @@ -110,7 +110,9 @@ search: # deepl_api_key: "48E92789-57A3-466A-9959-1A1A1A1A1A1A" # # deepl_host: "https://api.deepl.com" # # deepl_version: "v2" - +# # add additional options to the DeepL.translate call: https://www.deepl.com/docs-api/translate-text/translate-text/ +# deepl_options: +# formality: prefer_less ## Do not consider these keys missing: # ignore_missing: # - 'errors.messages.{accepted,blank,invalid,too_short,too_long}' diff --git a/config/initializers/content_security_policy.rb b/config/initializers/content_security_policy.rb index 3621f97f8..b3076b38f 100644 --- a/config/initializers/content_security_policy.rb +++ b/config/initializers/content_security_policy.rb @@ -1,8 +1,8 @@ # Be sure to restart your server when you modify this file. -# Define an application-wide content security policy -# For further information see the following documentation -# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy +# Define an application-wide content security policy. +# See the Securing Rails Applications Guide for more information: +# https://guides.rubyonrails.org/security.html#content-security-policy-header # Rails.application.configure do # config.content_security_policy do |policy| @@ -16,11 +16,10 @@ # # policy.report_uri "/csp-violation-report-endpoint" # end # -# # Generate session nonces for permitted importmap and inline scripts +# # Generate session nonces for permitted importmap, inline scripts, and inline styles. # config.content_security_policy_nonce_generator = ->(request) { request.session.id.to_s } -# config.content_security_policy_nonce_directives = %w(script-src) +# config.content_security_policy_nonce_directives = %w(script-src style-src) # -# # Report CSP violations to a specified URI. See: -# # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only +# # Report violations without enforcing the policy. # # config.content_security_policy_report_only = true # end diff --git a/config/initializers/doorkeeper.rb b/config/initializers/doorkeeper.rb index a2df9167f..c1d4e2f78 100644 --- a/config/initializers/doorkeeper.rb +++ b/config/initializers/doorkeeper.rb @@ -225,7 +225,7 @@ Doorkeeper.configure do # https://doorkeeper.gitbook.io/guides/ruby-on-rails/scopes # default_scopes :public - optional_scopes(*Oauth::SCOPES, *Oauth::PRIVILEGED_SCOPES) + optional_scopes(*Oauth::SCOPES, *Oauth::PRIVILEGED_SCOPES, *Oauth::OAUTH2_SCOPES) # Allows to restrict only certain scopes for grant_type. # By default, all the scopes will be available for all the grant types. diff --git a/config/initializers/doorkeeper_openid_connect.rb b/config/initializers/doorkeeper_openid_connect.rb new file mode 100644 index 000000000..7f409ecbe --- /dev/null +++ b/config/initializers/doorkeeper_openid_connect.rb @@ -0,0 +1,38 @@ +# frozen_string_literal: true + +Doorkeeper::OpenidConnect.configure do + issuer do |_resource_owner, _application| + "#{Settings.server_protocol}://#{Settings.server_url}" + end + + signing_key Settings.doorkeeper_signing_key + + subject_types_supported [:public] + + resource_owner_from_access_token do |access_token| + User.find_by(:id => access_token.resource_owner_id) + end + + auth_time_from_resource_owner do |resource_owner| + # empty block necessary as a workaround to missing configuration + # when no auth_time claim is provided + end + + subject do |resource_owner, _application| + resource_owner.id + end + + protocol do + Settings.server_protocol.to_sym + end + + claims do + claim :preferred_username, :scope => :openid do |resource_owner, _scopes, _access_token| + resource_owner.display_name + end + + claim :email, :scope => :read_email, :response => [:id_token, :user_info] do |resource_owner, _scopes, _access_token| + resource_owner.email + end + end +end diff --git a/config/initializers/filter_parameter_logging.rb b/config/initializers/filter_parameter_logging.rb index 58aa62573..460804ff0 100644 --- a/config/initializers/filter_parameter_logging.rb +++ b/config/initializers/filter_parameter_logging.rb @@ -1,6 +1,8 @@ # Be sure to restart your server when you modify this file. -# Configure sensitive parameters which will be filtered from the log file. +# Configure parameters to be partially matched (e.g. passw matches password) and filtered from the log file. +# Use this to limit dissemination of sensitive information. +# See the ActiveSupport::ParameterFilter documentation for supported notations and behaviors. Rails.application.config.filter_parameters += [ :password, :pass_crypt, :pass_crypt_confirmation ] diff --git a/config/initializers/migrate.rb b/config/initializers/migrate.rb index add6aaea9..0667e3346 100644 --- a/config/initializers/migrate.rb +++ b/config/initializers/migrate.rb @@ -1,31 +1,46 @@ if defined?(ActiveRecord::ConnectionAdapters::AbstractAdapter) module OpenStreetMap - module ActiveRecord - module PostgreSQLAdapter + module PostgreSQL + module Quoting def quote_column_name(name) Array(name).map { |n| super(n) }.join(", ") end + end - def add_primary_key(table_name, column_name, _options = {}) - table_name = quote_table_name(table_name) - column_name = quote_column_name(column_name) + module SchemaStatements + def add_primary_key(table_name, column_name, options = {}) + constraint_name = "#{table_name}_pkey" + + options = options.merge(:name => constraint_name, :unique => true) - execute "ALTER TABLE #{table_name} ADD PRIMARY KEY (#{column_name})" + add_index(table_name, column_name, **options) + set_primary_key table_name, constraint_name end def remove_primary_key(table_name) + constraint_name = quote_table_name("#{table_name}_pkey") table_name = quote_table_name(table_name) - execute "ALTER TABLE #{table_name} DROP PRIMARY KEY" + execute "ALTER TABLE #{table_name} DROP CONSTRAINT #{constraint_name}" end - def alter_primary_key(table_name, new_columns) - constraint_name = quote_table_name("#{table_name}_pkey") + def alter_primary_key(table_name, column_name, options = {}) + constraint_name = "#{table_name}_pkey" + tmp_constraint_name = "#{table_name}_pkey_tmp" + + options = options.merge(:name => tmp_constraint_name, :unique => true) + + add_index(table_name, column_name, **options) + remove_primary_key table_name + set_primary_key table_name, tmp_constraint_name + rename_index table_name, tmp_constraint_name, constraint_name + end + + def set_primary_key(table_name, constraint_name) + constraint_name = quote_table_name(constraint_name) table_name = quote_table_name(table_name) - new_columns = quote_column_name(new_columns) - execute "ALTER TABLE #{table_name} DROP CONSTRAINT #{constraint_name}" - execute "ALTER TABLE #{table_name} ADD PRIMARY KEY (#{new_columns})" + execute "ALTER TABLE #{table_name} ADD PRIMARY KEY USING INDEX #{constraint_name}" end def create_enumeration(enumeration_name, values) @@ -46,5 +61,6 @@ if defined?(ActiveRecord::ConnectionAdapters::AbstractAdapter) end end - ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.prepend(OpenStreetMap::ActiveRecord::PostgreSQLAdapter) + ActiveRecord::ConnectionAdapters::PostgreSQL::Quoting.prepend(OpenStreetMap::PostgreSQL::Quoting) + ActiveRecord::ConnectionAdapters::PostgreSQL::SchemaStatements.prepend(OpenStreetMap::PostgreSQL::SchemaStatements) end diff --git a/config/initializers/new_framework_defaults_7_1.rb b/config/initializers/new_framework_defaults_7_1.rb new file mode 100644 index 000000000..d41af162a --- /dev/null +++ b/config/initializers/new_framework_defaults_7_1.rb @@ -0,0 +1,223 @@ +# Be sure to restart your server when you modify this file. +# +# This file eases your Rails 7.1 framework defaults upgrade. +# +# Uncomment each configuration one by one to switch to the new default. +# Once your application is ready to run with all new defaults, you can remove +# this file and set the `config.load_defaults` to `7.1`. +# +# Read the Guide for Upgrading Ruby on Rails for more info on each option. +# https://guides.rubyonrails.org/upgrading_ruby_on_rails.html + +# No longer add autoloaded paths into `$LOAD_PATH`. This means that you won't be able +# to manually require files that are managed by the autoloader, which you shouldn't do anyway. +# This will reduce the size of the load path, making `require` faster if you don't use bootsnap, or reduce the size +# of the bootsnap cache if you use it. +# Rails.application.config.add_autoload_paths_to_load_path = false + +# Remove the default X-Download-Options headers since it is used only by Internet Explorer. +# If you need to support Internet Explorer, add back `"X-Download-Options" => "noopen"`. +# Rails.application.config.action_dispatch.default_headers = { +# "X-Frame-Options" => "SAMEORIGIN", +# "X-XSS-Protection" => "0", +# "X-Content-Type-Options" => "nosniff", +# "X-Permitted-Cross-Domain-Policies" => "none", +# "Referrer-Policy" => "strict-origin-when-cross-origin" +# } + +# Do not treat an `ActionController::Parameters` instance +# as equal to an equivalent `Hash` by default. +# Rails.application.config.action_controller.allow_deprecated_parameters_hash_equality = false + +# Active Record Encryption now uses SHA-256 as its hash digest algorithm. Important: If you have +# data encrypted with previous Rails versions, there are two scenarios to consider: +# +# 1. If you have +config.active_support.key_generator_hash_digest_class+ configured as SHA1 (the default +# before Rails 7.0), you need to configure SHA-1 for Active Record Encryption too: +# Rails.application.config.active_record.encryption.hash_digest_class = OpenSSL::Digest::SHA1 +# 2. If you have +config.active_support.key_generator_hash_digest_class+ configured as SHA256 (the new default +# in 7.0), then you need to configure SHA-256 for Active Record Encryption: +# Rails.application.config.active_record.encryption.hash_digest_class = OpenSSL::Digest::SHA256 +# +# If you don't currently have data encrypted with Active Record encryption, you can disable this setting to +# configure the default behavior starting 7.1+: +# Rails.application.config.active_record.encryption.support_sha1_for_non_deterministic_encryption = false + +# No longer run after_commit callbacks on the first of multiple Active Record +# instances to save changes to the same database row within a transaction. +# Instead, run these callbacks on the instance most likely to have internal +# state which matches what was committed to the database, typically the last +# instance to save. +# Rails.application.config.active_record.run_commit_callbacks_on_first_saved_instances_in_transaction = false + +# Configures SQLite with a strict strings mode, which disables double-quoted string literals. +# +# SQLite has some quirks around double-quoted string literals. +# It first tries to consider double-quoted strings as identifier names, but if they don't exist +# it then considers them as string literals. Because of this, typos can silently go unnoticed. +# For example, it is possible to create an index for a non existing column. +# See https://www.sqlite.org/quirks.html#double_quoted_string_literals_are_accepted for more details. +# Rails.application.config.active_record.sqlite3_adapter_strict_strings_by_default = true + +# Disable deprecated singular associations names +# Rails.application.config.active_record.allow_deprecated_singular_associations_name = false + +# Enable the Active Job `BigDecimal` argument serializer, which guarantees +# roundtripping. Without this serializer, some queue adapters may serialize +# `BigDecimal` arguments as simple (non-roundtrippable) strings. +# +# When deploying an application with multiple replicas, old (pre-Rails 7.1) +# replicas will not be able to deserialize `BigDecimal` arguments from this +# serializer. Therefore, this setting should only be enabled after all replicas +# have been successfully upgraded to Rails 7.1. +# Rails.application.config.active_job.use_big_decimal_serializer = true + +# Specify if an `ArgumentError` should be raised if `Rails.cache` `fetch` or +# `write` are given an invalid `expires_at` or `expires_in` time. +# Options are `true`, and `false`. If `false`, the exception will be reported +# as `handled` and logged instead. +# Rails.application.config.active_support.raise_on_invalid_cache_expiration_time = true + +# Specify whether Query Logs will format tags using the SQLCommenter format +# (https://open-telemetry.github.io/opentelemetry-sqlcommenter/), or using the legacy format. +# Options are `:legacy` and `:sqlcommenter`. +# Rails.application.config.active_record.query_log_tags_format = :sqlcommenter + +# Specify the default serializer used by `MessageEncryptor` and `MessageVerifier` +# instances. +# +# The legacy default is `:marshal`, which is a potential vector for +# deserialization attacks in cases where a message signing secret has been +# leaked. +# +# In Rails 7.1, the new default is `:json_allow_marshal` which serializes and +# deserializes with `ActiveSupport::JSON`, but can fall back to deserializing +# with `Marshal` so that legacy messages can still be read. +# +# In Rails 7.2, the default will become `:json` which serializes and +# deserializes with `ActiveSupport::JSON` only. +# +# Alternatively, you can choose `:message_pack` or `:message_pack_allow_marshal`, +# which serialize with `ActiveSupport::MessagePack`. `ActiveSupport::MessagePack` +# can roundtrip some Ruby types that are not supported by JSON, and may provide +# improved performance, but it requires the `msgpack` gem. +# +# For more information, see +# https://guides.rubyonrails.org/v7.1/configuring.html#config-active-support-message-serializer +# +# If you are performing a rolling deploy of a Rails 7.1 upgrade, wherein servers +# that have not yet been upgraded must be able to read messages from upgraded +# servers, first deploy without changing the serializer, then set the serializer +# in a subsequent deploy. +# Rails.application.config.active_support.message_serializer = :json_allow_marshal + +# Enable a performance optimization that serializes message data and metadata +# together. This changes the message format, so messages serialized this way +# cannot be read by older versions of Rails. However, messages that use the old +# format can still be read, regardless of whether this optimization is enabled. +# +# To perform a rolling deploy of a Rails 7.1 upgrade, wherein servers that have +# not yet been upgraded must be able to read messages from upgraded servers, +# leave this optimization off on the first deploy, then enable it on a +# subsequent deploy. +# Rails.application.config.active_support.use_message_serializer_for_metadata = true + +# Set the maximum size for Rails log files. +# +# `config.load_defaults 7.1` does not set this value for environments other than +# development and test. +# +# if Rails.env.local? +# Rails.application.config.log_file_size = 100 * 1024 * 1024 +# end + +# Enable raising on assignment to attr_readonly attributes. The previous +# behavior would allow assignment but silently not persist changes to the +# database. +# Rails.application.config.active_record.raise_on_assign_to_attr_readonly = true + +# Enable validating only parent-related columns for presence when the parent is mandatory. +# The previous behavior was to validate the presence of the parent record, which performed an extra query +# to get the parent every time the child record was updated, even when parent has not changed. +# Rails.application.config.active_record.belongs_to_required_validates_foreign_key = false + +# Enable precompilation of `config.filter_parameters`. Precompilation can +# improve filtering performance, depending on the quantity and types of filters. +# Rails.application.config.precompile_filter_parameters = true + +# Enable before_committed! callbacks on all enrolled records in a transaction. +# The previous behavior was to only run the callbacks on the first copy of a record +# if there were multiple copies of the same record enrolled in the transaction. +# Rails.application.config.active_record.before_committed_on_all_records = true + +# Disable automatic column serialization into YAML. +# To keep the historic behavior, you can set it to `YAML`, however it is +# recommended to explicitly define the serialization method for each column +# rather than to rely on a global default. +# Rails.application.config.active_record.default_column_serializer = nil + +# Enable a performance optimization that serializes Active Record models +# in a faster and more compact way. +# +# To perform a rolling deploy of a Rails 7.1 upgrade, wherein servers that have +# not yet been upgraded must be able to read caches from upgraded servers, +# leave this optimization off on the first deploy, then enable it on a +# subsequent deploy. +# Rails.application.config.active_record.marshalling_format_version = 7.1 + +# Run `after_commit` and `after_*_commit` callbacks in the order they are defined in a model. +# This matches the behaviour of all other callbacks. +# In previous versions of Rails, they ran in the inverse order. +# Rails.application.config.active_record.run_after_transaction_callbacks_in_order_defined = true + +# Whether a `transaction` block is committed or rolled back when exited via `return`, `break` or `throw`. +# +# Rails.application.config.active_record.commit_transaction_on_non_local_return = true + +# Controls when to generate a value for has_secure_token declarations. +# +# Rails.application.config.active_record.generate_secure_token_on = :initialize + +# ** Please read carefully, this must be configured in config/application.rb ** +# Change the format of the cache entry. +# Changing this default means that all new cache entries added to the cache +# will have a different format that is not supported by Rails 7.0 +# applications. +# Only change this value after your application is fully deployed to Rails 7.1 +# and you have no plans to rollback. +# When you're ready to change format, add this to `config/application.rb` (NOT +# this file): +# config.active_support.cache_format_version = 7.1 + +# Configure Action View to use HTML5 standards-compliant sanitizers when they are supported on your +# platform. +# +# `Rails::HTML::Sanitizer.best_supported_vendor` will cause Action View to use HTML5-compliant +# sanitizers if they are supported, else fall back to HTML4 sanitizers. +# +# In previous versions of Rails, Action View always used `Rails::HTML4::Sanitizer` as its vendor. +# +# Rails.application.config.action_view.sanitizer_vendor = Rails::HTML::Sanitizer.best_supported_vendor + +# Configure Action Text to use an HTML5 standards-compliant sanitizer when it is supported on your +# platform. +# +# `Rails::HTML::Sanitizer.best_supported_vendor` will cause Action Text to use HTML5-compliant +# sanitizers if they are supported, else fall back to HTML4 sanitizers. +# +# In previous versions of Rails, Action Text always used `Rails::HTML4::Sanitizer` as its vendor. +# +# Rails.application.config.action_text.sanitizer_vendor = Rails::HTML::Sanitizer.best_supported_vendor + +# Configure the log level used by the DebugExceptions middleware when logging +# uncaught exceptions during requests +# Rails.application.config.action_dispatch.debug_exception_log_level = :error + +# Configure the test helpers in Action View, Action Dispatch, and rails-dom-testing to use HTML5 +# parsers. +# +# Nokogiri::HTML5 isn't supported on JRuby, so JRuby applications must set this to :html4. +# +# In previous versions of Rails, these test helpers always used an HTML4 parser. +# +# Rails.application.config.dom_testing_default_html_version = :html5 diff --git a/config/initializers/permissions_policy.rb b/config/initializers/permissions_policy.rb index 00f64d71b..7db3b9577 100644 --- a/config/initializers/permissions_policy.rb +++ b/config/initializers/permissions_policy.rb @@ -1,11 +1,13 @@ +# Be sure to restart your server when you modify this file. + # Define an application-wide HTTP permissions policy. For further -# information see https://developers.google.com/web/updates/2018/06/feature-policy -# -# Rails.application.config.permissions_policy do |f| -# f.camera :none -# f.gyroscope :none -# f.microphone :none -# f.usb :none -# f.fullscreen :self -# f.payment :self, "https://secure.example.com" +# information see: https://developers.google.com/web/updates/2018/06/feature-policy + +# Rails.application.config.permissions_policy do |policy| +# policy.camera :none +# policy.gyroscope :none +# policy.microphone :none +# policy.usb :none +# policy.fullscreen :self +# policy.payment :self, "https://secure.example.com" # end diff --git a/config/locales/be-Tarask.yml b/config/locales/be-Tarask.yml index db44ea36d..de3a51f61 100644 --- a/config/locales/be-Tarask.yml +++ b/config/locales/be-Tarask.yml @@ -133,6 +133,7 @@ be-Tarask: description: Апісаньне report: category: Абярыце прычыну вашага паведамленьня + details: Калі ласка, падайце больш падрабязныя зьвесткі аб праблеме (абавязкова). user: auth_provider: Пастаўшчык аўтэнтыфікацыі auth_uid: UID аўтэнтыфікацыі @@ -311,10 +312,10 @@ be-Tarask: way: nodes: Вузлы nodes_count: - one: '%{count} пункт' - few: '%{count} пункты' - many: '%{count} пунктаў' - other: '%{count} пунктаў' + one: '%{count} вузел' + few: '%{count} вузлы' + many: '%{count} вузлоў' + other: '%{count} вузлоў' relation: members: Удзельнікі members_count: @@ -446,9 +447,8 @@ be-Tarask: comment_link: Камэнтаваць гэты запіс reply_link: Адаслаць аўтару паведамленьне comment_count: - few: '%{count} камэнтары' one: '%{count} камэнтар' - zero: Няма камэнтароў + few: '%{count} камэнтары' other: '%{count} камэнтароў' edit_link: Рэдагаваць гэты запіс hide_link: Схаваць гэты запіс diff --git a/config/locales/bn.yml b/config/locales/bn.yml index fdf69b13e..62a7f2f0f 100644 --- a/config/locales/bn.yml +++ b/config/locales/bn.yml @@ -605,6 +605,8 @@ bn: applications: create: notice: অ্যাপ্লিকেশন নিবন্ধিত। + scopes: + email: আপনার ইমেইল ঠিকানা দেখুন errors: contact: contact: যোগাযোগ @@ -1843,6 +1845,8 @@ bn: oauth: authorize: allow_write_api: মানচিত্রটি পরিবর্তন করুন + scopes: + openid: ওপেনস্ট্রিটম্যাপ ব্যবহার করে সাইন-ইন করুন oauth_clients: new: title: একটি নতুন আবেদন নিবন্ধন করুন diff --git a/config/locales/br.yml b/config/locales/br.yml index dce891b2c..dec0c2050 100644 --- a/config/locales/br.yml +++ b/config/locales/br.yml @@ -21,8 +21,6 @@ br: time: formats: friendly: '%e %B %Y da %H:%M' - count: - at_least_pattern: '%{count}+' helpers: file: prompt: Dibab ur restr @@ -626,7 +624,13 @@ br: flash: applications: create: - notice: Arload marilhet. + notice: Goulenn marilhet. + scopes: + address: Gwelet ho chomlec'h + email: Gwelet ho chomlec'h postel + openid: Gwiriekaat ho kont + phone: Gwelet ho niverenn bellgomz + profile: Gwelet ho titouroù ho profil errors: contact: contact: darempred @@ -2454,6 +2458,7 @@ br: permissions: missing: N'eo ket bet aotreet an arload ganeoc'h d'ober gan an arc'hwel-mañ scopes: + openid: Kennaskañ gant OpenStreetMap read_prefs: Lenn penndibaboù an implijer write_prefs: Kemmañ ho penndibaboù implijer write_diary: Krouiñ enmonedoù en deizlevr, kemennadennoù ha kavout mignoned @@ -2667,6 +2672,8 @@ br: title: Kont arsavet heading: Kont arsavet support: Skor + automatically_suspended: Hon digarezit, ehanet eo bet ho kont abalamour d'un + obererezh arvarus. auth_failure: connection_failed: C'hwitet eo ar gevreadenn ouzh ur pourchaser dilesa invalid_credentials: Titouroù dilesa direizh diff --git a/config/locales/cs.yml b/config/locales/cs.yml index 494e3db25..0dc00b0ac 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -288,6 +288,7 @@ cs: openid: OpenID google: Google facebook: Facebook + microsoft: Microsoft github: GitHub wikipedia: Wikipedie api: @@ -657,10 +658,36 @@ cs: newer_comments: Novější komentáře older_comments: Starší komentáře doorkeeper: + errors: + messages: + account_selection_required: Autorizační server vyžaduje výběr účtu koncového + uživatele + consent_required: Autorizační server vyžaduje souhlas koncového uživatele + interaction_required: Autorizační server vyžaduje interakci koncového uživatele + login_required: Autorizační server vyžaduje ověření koncového uživatele flash: applications: create: notice: Aplikace zaregistrována. + openid_connect: + errors: + messages: + auth_time_from_resource_owner_not_configured: Selhání z důvodu chybějící + konfigurace Doorkeeper::OpenidConnect.configure.auth_time_from_resource_owner. + reauthenticate_resource_owner_not_configured: Selhání z důvodu chybějící + konfigurace Doorkeeper::OpenidConnect.configure.reauthenticate_resource_owner. + resource_owner_from_access_token_not_configured: Selhání z důvodu chybějící + konfigurace Doorkeeper::OpenidConnect.configure.resource_owner_from_access_token. + select_account_for_resource_owner_not_configured: Selhání z důvodu chybějící + konfigurace Doorkeeper::OpenidConnect.configure.select_account_for_resource_owner. + subject_not_configured: Generování tokenu ID se nezdařilo kvůli chybějící + konfiguraci Doorkeeper::OpenidConnect.configure.subject. + scopes: + address: Vidět vaÅ¡i fyzickou adresu + email: Vidět vaÅ¡i e-mailovou adresu + openid: Ztotožnit váš účet + phone: Vidět vaÅ¡e telefonní číslo + profile: Vidět informace z vaÅ¡eho profilu errors: contact: contact_url_title: Vysvětlení různých komunikačních kanálů @@ -2642,6 +2669,7 @@ cs: permissions: missing: Aplikaci jste nedovolili přístup k této funkci scopes: + openid: Přihlaste se pomocí OpenStreetMap read_prefs: Číst preference uživatele write_prefs: Měnit preference uživatele write_diary: Vytvářet deníkové záznamy, komentovat a navazovat přátelství @@ -3122,6 +3150,7 @@ cs: cyclosm: CyclOSM cycle_map: Cyklomapa transport_map: Dopravní mapa + tracestracktop_topo: Tracestrack Topo hot: Humanitární opnvkarte: ÖPNVKarte layers: @@ -3140,6 +3169,8 @@ cs: andy_allan: Andyho Allana opnvkarte_credit: Dlaždice s laskavým svolením %{memomaps_link} memomaps: MeMoMaps + tracestrack_credit: Dlaždice laskavostí %{tracestrack_link} + tracestrack: Tracestrack hotosm_credit: Styl dlaždic od %{hotosm_link} hostuje %{osm_france_link} hotosm_name: Humanitárního týmu OpenStreetMap site: diff --git a/config/locales/cy.yml b/config/locales/cy.yml index fe807d30c..62294a799 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -11,8 +11,6 @@ cy: time: formats: friendly: '%e %B %Y am %H:%M' - count: - at_least_pattern: '%{count}+' helpers: file: prompt: Dewiswch ffeil diff --git a/config/locales/da.yml b/config/locales/da.yml index 426d6a7e6..1dc7b402a 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -246,6 +246,7 @@ da: openid: OpenID google: Google facebook: Facebook + microsoft: Microsoft github: GitHub wikipedia: Wikipedia api: @@ -261,6 +262,7 @@ da: reopened_at_by_html: Genaktiveret %{when} af %{user} rss: title: OpenStreetMap-bemærkninger + description_all: En liste over rapporterede, kommenterede eller lukkede noter description_area: En liste over bemærkninger, rapporteret, kommenteret pÃ¥ eller lukket i dit omrÃ¥de [(%{min_lat}|%{min_lon}) -- (%{max_lat}|%{max_lon})] description_item: Et RSS-feed for bemærkning %{id} @@ -569,8 +571,8 @@ da: reply_link: Send en besked til forfatteren comment_count: one: '%{count} kommentar' - zero: Ingen kommentarer other: '%{count} kommentarer' + no_comments: Ingen kommentarer edit_link: Rediger dette indlæg hide_link: Skjul dette indlæg unhide_link: Skjul ikke længere dette indlæg @@ -607,10 +609,35 @@ da: newer_comments: Nyere kommentarer older_comments: Ældre kommentarer doorkeeper: + errors: + messages: + account_selection_required: Autorisationsserveren kræver valg af slutbrugerkonto + consent_required: Autorisationsserveren kræver slutbrugerens samtykke + interaction_required: Autorisationsserveren kræver slutbrugerinteraktion + login_required: Autorisationsserveren kræver slutbrugergodkendelse flash: applications: create: notice: Applikation registrerad. + openid_connect: + errors: + messages: + auth_time_from_resource_owner_not_configured: Fejl pÃ¥ grund af at Doorkeeper::OpenidConnect.configure.auth_time_from_resource_owner + mangler konfiguration. + reauthenticate_resource_owner_not_configured: Fejl pÃ¥ grund af at Doorkeeper::OpenidConnect.configure.reauthenticate_resource_owner + mangler konfiguration. + resource_owner_from_access_token_not_configured: Fejl pÃ¥ grund af at Doorkeeper::OpenidConnect.configure.resource_owner_from_access_token + mangler konfiguration. + select_account_for_resource_owner_not_configured: Fejl pÃ¥ grund af at Doorkeeper::OpenidConnect.configure.select_account_for_resource_owner + mangler konfiguration. + subject_not_configured: Generering af ID-Token fejlede pÃ¥ grund af at Doorkeeper::OpenidConnect.configure.subject + mangler konfiguration. + scopes: + address: Se din fysiske adresse + email: Se din e-mailadresse + openid: Verificer din konto + phone: Se dit telefonnummer + profile: Se dine profiloplysninger errors: contact: contact_url_title: Forklaring af forskellige kontaktkanaler @@ -1458,6 +1485,7 @@ da: reports: one: '%{count} rapport' other: '%{count} rapporter' + no_reports: Ingen rapporter report_created_at: Rapporteret første gang %{datetime} last_resolved_at: Sidst løst %{datetime} last_updated_at: Sidst opdateret %{datetime} af %{displayname} @@ -1856,6 +1884,9 @@ da: home location: Hjemmeposition no home location: Du har ikke angivet din hjemmeposition. update home location on click: Opdater hjemmeposition nÃ¥r jeg klikker pÃ¥ kortet? + show: Vis + delete: Slet + undelete: Fortryd sletning update: success: Profil opdateret. failure: Kunne ikke opdatere profil. @@ -1885,8 +1916,8 @@ da: title: Log pÃ¥ med Facebook alt: Log pÃ¥ med en Facebook-konto microsoft: - title: Log pÃ¥ med Windows Live - alt: Log pÃ¥ med en Windows Live-konto + title: Log ind med Microsoft + alt: Log ind med en Microsoft-konto github: title: Log ind med GitHub alt: Log ind med en GitHub-konto @@ -2076,6 +2107,12 @@ da: contributors_nz_new_zealand: New Zealand contributors_nz_linz_data_service: LINZ Data Service contributors_nz_cc_by: CC BY 4.0 + contributors_rs_credit_html: |- + %{serbia}: Indeholder data fra %{rgz_link} og %{open_data_portal} + (offentlig information fra Serbien), 2018. + contributors_rs_serbia: Serbien + contributors_rs_rgz: Den serbiske geodetiske myndighed + contributors_rs_open_data_portal: National Open Data Portal contributors_si_credit_html: '%{slovenia}: Indeholder data fra %{gu_link} og %{mkgp_link} (offentlig information Slovenien).' contributors_si_slovenia: Slovenien @@ -2569,6 +2606,7 @@ da: permissions: missing: Du har ikke givet applikationen adgang til denne facilitet scopes: + openid: Log ind med OpenStreetMap read_prefs: Læse brugerpræferencer write_prefs: Ændre brugeralternativer write_diary: Udgiv brugerblogs, kommenter og fÃ¥ venner @@ -2756,6 +2794,7 @@ da: remove as friend: Fjern som ven add as friend: Tilføj som ven mapper since: 'Kortlægger siden:' + uid: 'Bruger-ID:' ct status: 'VilkÃ¥r for bidragsydere:' ct undecided: Uafklaret ct declined: AfslÃ¥et @@ -2949,7 +2988,9 @@ da: index: title: Bemærkninger indsendt eller kommenteret af %{user} heading: '%{user}s bemærkninger' - subheading_html: Bemærkninger indsendt eller kommenteret af %{user} + subheading_html: Bemærkninger %{submitted} eller %{commented} af %{user} + subheading_submitted: indsendt + subheading_commented: kommenteret pÃ¥ no_notes: Ingen bemærkninger id: Id creator: Oprettet af @@ -3040,6 +3081,7 @@ da: cyclosm: CyclOSM cycle_map: Cykelkort transport_map: Transportkort + tracestracktop_topo: Tracestrack Topo hot: Humanitær opnvkarte: Offentlig transport layers: @@ -3058,6 +3100,8 @@ da: andy_allan: Andy Allan opnvkarte_credit: Kortfliser stillet til rÃ¥dighed af %{memomaps_link} memomaps: MeMoMaps + tracestrack_credit: Kortfliser stillet til rÃ¥dighed af %{tracestrack_link} + tracestrack: Tracestrack hotosm_credit: Kortflise-stil af %{hotosm_link} hostet af %{osm_france_link} hotosm_name: Humanitarian OpenStreetMap Team site: diff --git a/config/locales/de.yml b/config/locales/de.yml index 8eff4d806..541cb08ea 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -685,6 +685,14 @@ de: newer_comments: Neuere Kommentare older_comments: Ältere Kommentare doorkeeper: + errors: + messages: + account_selection_required: Der Autorisierungsserver erfordert die Auswahl + eines Endbenutzerkontos + consent_required: Der Autorisierungsserver erfordert die Zustimmung des Endbenutzers + interaction_required: Der Autorisierungsserver erfordert eine Interaktion + des Endbenutzers + login_required: Der Autorisierungsserver erfordert eine Endbenutzerauthentifizierung flash: applications: create: @@ -1251,7 +1259,7 @@ de: employment_agency: Arbeitsamt energy_supplier: Büro eines Energieversorgers estate_agent: Immobilienhändler - financial: Finanzamt + financial: Finanzdienstleister government: Amt insurance: Versicherungsbüro it: IT-Büro @@ -2118,6 +2126,14 @@ de: credit_2_2: Mache deutlich, dass die Daten unter der Open Database-Lizenz verfügbar sind. credit_3_attribution_guidelines: Richtlinien für Namensnennungen + credit_4_1_html: Um klarzustellen, dass die Daten unter der Open Database + License verfügbar sind, kannst Du auf %{this_copyright_page_link} verlinken. + Alternativ und als Anforderung, wenn Du OSM in einer Datenform verbreitest, + kannst Du die Lizenz(en) direkt benennen und verlinken. In Medien, in denen + Links nicht möglich sind (z. B. gedruckte Werke), empfehlen wir, Leser auf + openstreetmap.org (vielleicht durch das Erweitern von 'OpenStreetMap' auf + diese vollständige Adresse) und auf opendatacommons.org zu verweisen. In + diesem Beispiel erscheint der Hinweis in der Ecke der Karte. attribution_example: alt: Beispiel, wie man auf OpenStreetMap auf einer Webseite hinweist title: Namensnennung-Beispiel @@ -2343,7 +2359,13 @@ de: change_preferences: Einstellungen hier ändern any_questions: title: Fragen? + paragraph_1_html: 'OpenStreetMap bietet verschiedene Ressourcen, um mehr über + das Projekt zu erfahren, Fragen zu stellen und zu beantworten sowie gemeinsam + Themen rund um das Kartieren zu diskutieren und zu dokumentieren. Schau mal + hier: %{help_link}. Planst Du, OpenStreetMap in einer Organisation zu verwenden? + Dann findest Du hier auch das Willkommenspaket: %{welcome_mat_link}.' get_help_here: Hilfe hier erhalten + welcome_mat: Schau Dir das Willkommenspaket an sidebar: search_results: Suchergebnisse close: Schließen @@ -2435,6 +2457,10 @@ de: Hier sind noch eine paar nützliche zusätzliche Informationen. whats_on_the_map: title: Was gehört in die Karte? + on_the_map_html: OpenStreetMap ist ein Ort, um Dinge zu kartieren, die sowohl + %{real_and_current} sind. Hier findest Du Millionen von Gebäuden, Straßen + und anderen Details über Orte. Du kannst diejenigen Merkmale kartieren, + die für Dich interessant sind. basic_terms: title: Grundbegriffe fürs Mapping paragraph_1: OpenStreetMap nutzt ein paar spezifische Begriffe. Hier sind @@ -2454,6 +2480,10 @@ de: fehlt, dich einzuarbeiten, wie man in OSM Daten editiert, so gib einfach einen Hinweis/melde einen Fehler, dann kann sich ein anderer Mapper darum kümmern. + para_2_html: 'Gehe einfach zu %{map_link} und klicke dort auf das Notiz-Symbol: + %{note_icon}. Dadurch wird ein Marker auf der Karte hinzugefügt, den Du + verschieben kannst, indem Du ihn ziehst. Füge Deine Nachricht hinzu, klicke + dann auf Speichern, und andere Mapper werden Deinem Hinweis nachgehen.' the_map: die Karte communities: title: Gemeinschaften @@ -2634,6 +2664,7 @@ de: permissions: missing: Du hast den Anwendungszugriff auf diese Einrichtung nicht zugelassen. scopes: + openid: Melde Dich mit OpenStreetMap an read_prefs: Benutzereinstellungen lesen write_prefs: Benutzereinstellungen verändern write_diary: Tagebucheinträge und Kommentare erstellen und Freunde finden @@ -3124,6 +3155,7 @@ de: cyclosm: CyclOSM cycle_map: Radfahrerkarte transport_map: Verkehrskarte + tracestracktop_topo: Tracestrack Topo hot: Humanitär opnvkarte: ÖPNVKarte layers: @@ -3142,6 +3174,7 @@ de: andy_allan: Andy Allan opnvkarte_credit: Kacheln mit freundlicher Genehmigung von %{memomaps_link} memomaps: MeMoMaps + tracestrack_credit: Kacheln mit freundlicher Genehmigung von %{tracestrack_link} hotosm_credit: Kachelstil von %{hotosm_link}, gehostet von %{osm_france_link} hotosm_name: Humanitäres OpenStreetMap Team site: diff --git a/config/locales/el.yml b/config/locales/el.yml index b570c6a17..07a28c859 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -21,6 +21,7 @@ # Author: Kongr43gpen # Author: Logictheo # Author: Macofe +# Author: McDutchie # Author: Michail Angelos Georgoulas # Author: Mixasgr # Author: NikosLikomitros diff --git a/config/locales/en.yml b/config/locales/en.yml index da346e8e8..cd7d67947 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -559,10 +559,31 @@ en: newer_comments: "Newer Comments" older_comments: "Older Comments" doorkeeper: + errors: + messages: + account_selection_required: "The authorization server requires end-user account selection" + consent_required: "The authorization server requires end-user consent" + interaction_required: "The authorization server requires end-user interaction" + login_required: "The authorization server requires end-user authentication" flash: applications: create: notice: Application Registered. + openid_connect: + errors: + messages: + # Configuration error messages + auth_time_from_resource_owner_not_configured: "Failure due to Doorkeeper::OpenidConnect.configure.auth_time_from_resource_owner missing configuration." + reauthenticate_resource_owner_not_configured: "Failure due to Doorkeeper::OpenidConnect.configure.reauthenticate_resource_owner missing configuration." + resource_owner_from_access_token_not_configured: "Failure due to Doorkeeper::OpenidConnect.configure.resource_owner_from_access_token missing configuration." + select_account_for_resource_owner_not_configured: "Failure due to Doorkeeper::OpenidConnect.configure.select_account_for_resource_owner missing configuration." + subject_not_configured: "ID Token generation failed due to Doorkeeper::OpenidConnect.configure.subject missing configuration." + scopes: + address: "View your physical address" + email: "View your email address" + openid: "Authenticate your account" + phone: "View your phone number" + profile: "View your profile information" errors: contact: contact_url: https://wiki.openstreetmap.org/wiki/Contact @@ -2530,6 +2551,7 @@ en: permissions: missing: "You have not permitted the application access to this facility" scopes: + openid: Sign-in using OpenStreetMap read_prefs: Read user preferences write_prefs: Modify user preferences write_diary: Create diary entries, comments and make friends diff --git a/config/locales/eo.yml b/config/locales/eo.yml index 63341937e..9bd1698e6 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -31,8 +31,6 @@ eo: time: formats: friendly: '%e %B %Y je %H:%M' - count: - at_least_pattern: '%{count}+' helpers: file: prompt: Elektu dosieron @@ -598,10 +596,35 @@ eo: newer_comments: Pli novaj komentoj older_comments: Pli malnovaj komentoj doorkeeper: + errors: + messages: + account_selection_required: La rajtiga servilo postulas elekti konton de uzanto + consent_required: La rajtiga servilo postulas konsenton de uzanto + interaction_required: La rajtiga servilo postulas interagon de uzanton + login_required: La rajtiga servilo postulas rajtigon de uzanto flash: applications: create: notice: Registris aplikaĵon. + openid_connect: + errors: + messages: + auth_time_from_resource_owner_not_configured: Malsukceso pro mankanta agordo + «Doorkeeper::OpenidConnect.configure.auth_time_from_resource_owner». + reauthenticate_resource_owner_not_configured: Malsukceso pro mankanta agordo + «Doorkeeper::OpenidConnect.configure.reauthenticate_resource_owner». + resource_owner_from_access_token_not_configured: Malsukceso pro mankanta + agordo «Doorkeeper::OpenidConnect.configure.resource_owner_from_access_token». + select_account_for_resource_owner_not_configured: Malsukceso pro mankanta + agordo «Doorkeeper::OpenidConnect.configure.select_account_for_resource_owner». + subject_not_configured: Generado de identigil-ĵetono mmalsukcesis pro mankanta + agordo «Doorkeeper::OpenidConnect.configure.subject». + scopes: + address: legi viajn real-mondajn adresojn + email: legi viajn retpoŝtajn adresojn + openid: aÅ­tentigi vian konton + phone: legi vian telefonnumeron + profile: legi informojn de via profilo errors: contact: contact_url_title: klarigo pri diversaj kontakt-kanaloj @@ -2543,12 +2566,13 @@ eo: authorize_failure: title: Rajtiga peto malakceptita denied: Vi malpermesis al aplikaĵo %{app_name} aliron al via konto - invalid: La rajtiga ĵeto ne plu validas. + invalid: La rajtiga ĵetono ne plu validas. revoke: flash: Vi malvalidigis la ĵetonon por %{application} permissions: missing: Vi ne permesis al aplikaĵo aliri al ĉi tiu eblo scopes: + openid: ensaluti uzante OpenStreetMap read_prefs: legi preferojn de uzanto write_prefs: modifi preferojn de uzanto write_diary: afiŝi en taglibro, komenti kaj aldoni amikojn diff --git a/config/locales/es.yml b/config/locales/es.yml index b84e74524..7bde15e21 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -79,6 +79,7 @@ # Author: Pompilos # Author: Remux # Author: Reverse88 +# Author: Robot8A # Author: Rodhos # Author: Rodm23 # Author: Rodney Araujo @@ -99,8 +100,6 @@ es: time: formats: friendly: '%e de %B de %Y a las %H:%M' - count: - at_least_pattern: '%{count}+' helpers: file: prompt: Seleccionar archivo @@ -680,10 +679,39 @@ es: newer_comments: Comentarios más recientes older_comments: Comentarios más antiguos doorkeeper: + errors: + messages: + account_selection_required: El servidor de autorización requiere la selección + de la cuenta del usuario final + consent_required: El servidor de autorización requiere el consentimiento del + usuario final + interaction_required: El servidor de autorización requiere interacción con + el usuario final + login_required: El servidor de autorización requiere la autenticación del + usuario final flash: applications: create: notice: Aplicación registrada. + openid_connect: + errors: + messages: + auth_time_from_resource_owner_not_configured: Fallo debido a la configuración + faltante de Doorkeeper::OpenidConnect.configure.auth_time_from_resource_owner. + reauthenticate_resource_owner_not_configured: Fallo debido a la configuración + faltante de Doorkeeper::OpenidConnect.configure.reauthenticate_resource_owner. + resource_owner_from_access_token_not_configured: Fallo debido a la configuración + faltante de Doorkeeper::OpenidConnect.configure.resource_owner_from_access_token. + select_account_for_resource_owner_not_configured: Fallo debido a la configuración + faltante de Doorkeeper::OpenidConnect.configure.select_account_for_resource_owner. + subject_not_configured: La generación de tokens de identificación falló + debido a la configuración faltante de Doorkeeper::OpenidConnect.configure.subject. + scopes: + address: Ver tu dirección física + email: Ver tu dirección de correo electrónico + openid: Autentica tu cuenta + phone: Ver tu número de teléfono + profile: Ver la información de tu perfil errors: contact: contact_url: https://wiki.openstreetmap.org/wiki/ES:Canales_de_contacto @@ -2200,7 +2228,7 @@ es: 2010-2023. contributors_gb_united_kingdom: Reino Unido contributors_2_html: Para obtener más detalles de estas y otras fuentes que - se han utilizado para ayudar a mejorar OpenStreetMap, consultq el %{contributors_page_link} + se han utilizado para ayudar a mejorar OpenStreetMap, consulta la %{contributors_page_link} en el Wiki de OpenStreemMap. contributors_2_contributors_page: Página de colaboradores contributors_2_contributors_page_url: https://wiki.openstreetmap.org/wiki/ES:Colaboradores @@ -2686,6 +2714,7 @@ es: permissions: missing: No has permitido que la aplicación acceda a esta instalación. scopes: + openid: Iniciar sesión usando OpenStreetMap read_prefs: Leer preferiencias de usuario write_prefs: Modificar las preferencias de usuario write_diary: Crear entradas del diario, comentarios y hacer amigos diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 2a9a4566d..1c879a020 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -7,6 +7,7 @@ # Author: Alno # Author: Amire80 # Author: Antimuonium +# Author: BlueCamille # Author: Boniface # Author: Cantons-de-l'Est # Author: Cquoi @@ -34,6 +35,7 @@ # Author: Gileri # Author: Gomoko # Author: Gravitystorm +# Author: Guilhelma # Author: Hashar # Author: IAlex # Author: JB @@ -100,8 +102,6 @@ fr: formats: friendly: '%e %B %Y à %-Hh%M' blog: '%e %B %Y' - count: - at_least_pattern: '%{count}+' helpers: file: prompt: Choisir un fichier @@ -694,10 +694,25 @@ fr: newer_comments: Commentaires plus récents older_comments: Commentaires plus anciens doorkeeper: + errors: + messages: + account_selection_required: Le serveur d'autorisation nécessite la sélection + du compte de l'utilisateur final + consent_required: Le serveur d'autorisation nécessite le consentement de l'utilisateur + final + interaction_required: Le serveur d'autorisation nécessite une interaction + de l'utilisateur final + login_required: Le serveur d'autorisation nécessite l'authentification de + l'utilisateur final flash: applications: create: notice: Application inscrite. + scopes: + address: Voir votre adresse physique + email: Voir votre adresse e-mail + phone: Voir votre numéro de téléphone + profile: Voir les informations de votre profil errors: contact: contact_url: https://wiki.openstreetmap.org/wiki/FR:Canaux_de_contact @@ -2731,6 +2746,7 @@ fr: permissions: missing: Vous n’avez pas autorisé l’application à accéder à cette fonctionnalité scopes: + openid: Se connecter avec OpenStreetMap read_prefs: Lire les préférences de l’utilisateur write_prefs: Modifier les préférences de l’utilisateur write_diary: Créer des entrées de journal, des commentaires et se faire des diff --git a/config/locales/gl.yml b/config/locales/gl.yml index a05861324..e63fca0b7 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -598,10 +598,39 @@ gl: newer_comments: Comentarios máis recentes older_comments: Comentarios máis vellos doorkeeper: + errors: + messages: + account_selection_required: O servidor de autorización necesita a selección + da conta do usuario final + consent_required: O servidor de autorización necesita o consentimento do usuario + final + interaction_required: O servidor de autorización necesita a interacción do + usuario final + login_required: O servidor de autorización necesita a autenticación do usuario + final flash: applications: create: notice: Aplicación rexistrada. + openid_connect: + errors: + messages: + auth_time_from_resource_owner_not_configured: Fallo debido a que falta a + configuración de Doorkeeper::OpenidConnect.configure.auth_time_from_resource_owner. + reauthenticate_resource_owner_not_configured: Fallo debido a que falta a + configuración de Doorkeeper::OpenidConnect.configure.reauthenticate_resource_owner. + resource_owner_from_access_token_not_configured: Fallo debido a que falta + a configuración de Doorkeeper::OpenidConnect.configure.resource_owner_from_access_token. + select_account_for_resource_owner_not_configured: Fallo debido a que falta + a configuración de Doorkeeper::OpenidConnect.configure.select_account_for_resource_owner. + subject_not_configured: Produciuse un erro na xeración do identificador + debido a que falta a configuración de Doorkeeper::OpenidConnect.configure.subject. + scopes: + address: Consulta o teu enderezo físico + email: Consulta o teu enderezo de correo electrónico + openid: Autentica a túa conta + phone: Consulta o teu número de teléfono + profile: Consulta a túa información privada errors: contact: contact_url_title: Explícanse varias canles de contacto @@ -2597,6 +2626,7 @@ gl: permissions: missing: Non permitiu á aplicación acceder a esta instalación scopes: + openid: Iniciar sesión usando OpenStreetMap read_prefs: Ler preferencias de usuario write_prefs: Modificar preferencias de usuario write_diary: Crear entradas de diario, comentarios e amizades diff --git a/config/locales/he.yml b/config/locales/he.yml index 664f90fcb..e57b223ab 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -637,10 +637,33 @@ he: newer_comments: הערות חדשות older_comments: הערות ישנות doorkeeper: + errors: + messages: + account_selection_required: שרת האימות דורש בחירת חשבון משתמש קצה + consent_required: שרת האימות דורש את הסכמת משתמש הקצה + interaction_required: שרת האימות דורש פעולה הדדית עם משתמש הקצה + login_required: שרת האימות דורש את אימות משתמש הקצה flash: applications: create: notice: היישום נרשם. + openid_connect: + errors: + messages: + auth_time_from_resource_owner_not_configured: |- + כשל עקב הגדרה חסרה של Doorkeeper + ::OpenidConnect.configure.auth_time_from_resource_owner. + reauthenticate_resource_owner_not_configured: כשל עקב הגדרה חסרה של Doorkeeper::OpenidConnect.configure.reauthenticate_resource_owner. + resource_owner_from_access_token_not_configured: כשל עקב הגדרה חסרה של Doorkeeper::OpenidConnect.configure.resource_owner_from_access_token. + select_account_for_resource_owner_not_configured: כשל עקב הגדרה חסרה של + Doorkeeper::OpenidConnect.configure.select_account_for_resource_owner. + subject_not_configured: יצירת אסימון מזהה נכשלה בשל תצורה חסרה של Doorkeeper::OpenidConnect.configure.subject. + scopes: + address: הצגת הכתובת הפיזית שלך + email: הצגת כתובת הדוא״ל שלך + openid: אימות החשבון שלך + phone: הצגת מספר הטלפון שלך + profile: הצגת פרטי הפרופיל שלך errors: contact: contact_url_title: הסבר על מגוון ערוצי התקשורת @@ -2585,6 +2608,7 @@ he: permissions: missing: לא נתת להרשאה גישה למתקן הזה scopes: + openid: כניסה עם OpenStreetMap read_prefs: העדפות קריאה write_prefs: שינוי העדפות משתמש write_diary: ליצור רשומות ביומן, הערות וליצור חברויות @@ -3068,6 +3092,7 @@ he: andy_allan: אנדי אלן opnvkarte_credit: אריחים באדיבות %{memomaps_link} memomaps: ממומאפס + tracestrack_credit: האריחים באדיבות %{tracestrack_link} hotosm_credit: סגנון אריחים מאת %{hotosm_link} מתארח אצל %{osm_france_link} hotosm_name: צוות OpenStreetMap הומניטרי site: diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 242aa3ae4..6846d2c08 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -615,6 +615,12 @@ hu: applications: create: notice: Alkalmazás regisztrálva. + scopes: + address: Tartózkodási cím megtekintése + email: Email cím megtekintése + openid: Hitelesítsd fiókod! + phone: Telefonszám megtekintése + profile: Profiladatok megtekintése errors: contact: contact_url_title: A különféle kapcsolatfelvételi csatornák magyarázata @@ -2493,6 +2499,7 @@ hu: permissions: missing: Nem engedted meg az alkalmazás számára, hogy hozzáférjen ehhez a létesítményhez scopes: + openid: Jelentkezz be az OpenStreetMap használatával! read_prefs: Felhasználói beállítások elolvasása write_prefs: Felhasználói beállítások módosítása write_diary: Naplóbejegyzések és hozzászólások készítése, és ismerősök hozzáadása diff --git a/config/locales/ia.yml b/config/locales/ia.yml index c84719348..784d9ae4c 100644 --- a/config/locales/ia.yml +++ b/config/locales/ia.yml @@ -12,8 +12,6 @@ ia: time: formats: friendly: '%e de %B %Y a %H:%M' - count: - at_least_pattern: '%{count}+' helpers: file: prompt: Selige file @@ -585,10 +583,39 @@ ia: newer_comments: Commentos plus recente older_comments: Commentos plus ancian doorkeeper: + errors: + messages: + account_selection_required: Le servitor de autorisation require le section + de un conto de usator + consent_required: Le servitor de autorisation require le consentimento del + usator + interaction_required: Le servitor de autorisation require un interaction del + usator + login_required: Le servitor de autorisation require le authentication del + usator flash: applications: create: notice: Application registrate. + openid_connect: + errors: + messages: + auth_time_from_resource_owner_not_configured: Fallimento a causa del manco + de un configuration Doorkeeper::OpenidConnect.configure.auth_time_from_resource_owner. + reauthenticate_resource_owner_not_configured: Fallimento a causa del manco + de un configuration Doorkeeper::OpenidConnect.configure.reauthenticate_resource_owner. + resource_owner_from_access_token_not_configured: Fallimento a causa del + manco de un configuration Doorkeeper::OpenidConnect.configure.resource_owner_from_access_token. + select_account_for_resource_owner_not_configured: Fallimento a causa del + manco de un configuration Doorkeeper::OpenidConnect.configure.select_account_for_resource_owner. + subject_not_configured: Le generation del token identificator ha fallite + a causa del manco de un configuration Doorkeeper::OpenidConnect.configure.subject. + scopes: + address: Vider tu adresse physic + email: Vider tu adresse de e-mail + openid: Authenticar tu conto + phone: Vider tu numero de telephono + profile: Vider tu information de profilo errors: contact: contact_url_title: Varie canales de contacto explicate @@ -2576,6 +2603,7 @@ ia: permissions: missing: Tu non ha permittite al application le accesso a iste facilitate scopes: + openid: Aperir session con OpenStreetMap read_prefs: Leger preferentias de usator write_prefs: Modificar preferentias de usator write_diary: Crear entratas de diario, commentos e adder amicos diff --git a/config/locales/it.yml b/config/locales/it.yml index 2600c31f3..f0f8a4c2f 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -640,10 +640,39 @@ it: newer_comments: Commenti più recenti older_comments: Commenti più vecchi doorkeeper: + errors: + messages: + account_selection_required: Il server di autorizzazione richiede la selezione + dell'account dell'utente finale + consent_required: Il server di autorizzazione richiede il consenso dell'utente + finale + interaction_required: Il server di autorizzazione richiede un'interazione + da parte dell'utente finale + login_required: Il server di autorizzazione richiede l'autenticazione dell'utente + finale flash: applications: create: notice: Applicazione registrata. + openid_connect: + errors: + messages: + auth_time_from_resource_owner_not_configured: Errore dovuto alla configurazione + mancante di Doorkeeper::OpenidConnect.configure.auth_time_from_resource_owner. + reauthenticate_resource_owner_not_configured: Errore dovuto alla configurazione + mancante di Doorkeeper::OpenidConnect.configure.reauthenticate_resource_owner. + resource_owner_from_access_token_not_configured: Errore dovuto alla configurazione + mancante di Doorkeeper::OpenidConnect.configure.resource_owner_from_access_token. + select_account_for_resource_owner_not_configured: Errore dovuto alla configurazione + mancante di Doorkeeper::OpenidConnect.configure.select_account_for_resource_owner. + subject_not_configured: La generazione del token ID è fallita a causa della + configurazione mancante di Doorkeeper::OpenidConnect.configure.subject. + scopes: + address: Vedi il tuo indirizzo fisico + email: Vedi il tuo indirizzo e-mail + openid: Autentica la tua utenza + phone: Vedi il tuo numero di telefono + profile: Vedi le informazioni del tuo profilo errors: contact: contact_url_title: Sommario dei vari canali di contatto @@ -2633,6 +2662,7 @@ it: permissions: missing: Non hai autorizzato l'applicazione ad accedere a questa funzione scopes: + openid: Accedi utilizzando OpenStreetMap read_prefs: Leggi preferenze utente write_prefs: Modifica le preferenze utente write_diary: Crea voci del diario, commenti e fai amicizia @@ -3105,6 +3135,7 @@ it: cyclosm: CyclOSM cycle_map: Mappa ciclabile transport_map: Mappa dei trasporti + tracestracktop_topo: TracceTraccia Topo hot: Umanitario opnvkarte: ÖPNVKarte layers: @@ -3124,6 +3155,7 @@ it: opnvkarte_credit: Tasselli per gentile concessione di %{memomaps_link} memomaps: MeMoMaps tracestrack_credit: Tasselli per gentile concessione di %{tracestrack_link} + tracestrack: Tracestrack hotosm_credit: Stile tasselli di %{hotosm_link} ospitato da %{osm_france_link} hotosm_name: La squadra di OpenStreetMap Humanitarian site: diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 3166ddb4a..620465c25 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -217,41 +217,29 @@ ja: datetime: distance_in_words_ago: about_x_hours: - one: 約1時間前 other: 約%{count}時間前 about_x_months: - one: 約1ヶ月前 other: 約%{count}ヶ月前 about_x_years: - one: 約1年前 other: 約%{count}年前 almost_x_years: - one: ほぼ1年前 other: ほぼ%{count}年前 half_a_minute: 30秒前 less_than_x_seconds: - one: 1秒以内 other: '%{count}秒以内' less_than_x_minutes: - one: 1分以内 other: '%{count}分以内' over_x_years: - one: 1年以上前 other: '%{count}年以上前' x_seconds: - one: 1秒前 other: '%{count}秒前' x_minutes: - one: 1分前 other: '%{count}分前' x_days: - one: 1日前 other: '%{count}日前' x_months: - one: 1ヶ月前 other: '%{count}ヶ月前' x_years: - one: 1年前 other: '%{count}年前' printable_name: with_version: '%{id}、第%{version}版' @@ -362,10 +350,8 @@ ja: no_comment: (コメントなし) part_of: 以下の一部 part_of_relations: - one: 1件のリレーション other: '%{count}件のリレーション' part_of_ways: - one: 1件のウェイ other: '%{count}件のウェイ' download_xml: XMLをダウンロード view_history: 履歴を表示 @@ -405,7 +391,6 @@ ja: history_title_html: 'リレーション: %{name} の履歴' members: メンバー members_count: - one: 1名 other: '%{count}名' relation_member: entry_role_html: '%{type} %{name} (%{role} として)' @@ -561,8 +546,6 @@ ja: comment_link: このエントリにコメント reply_link: 筆者にメッセージを送る comment_count: - zero: コメントなし - one: '%{count} コメント' other: '%{count} コメント' no_comments: (コメントなし) edit_link: この記事の編集 @@ -1421,7 +1404,6 @@ ja: last_updated: 最近の更新 link_to_reports: レポートを表示 reports_count: - one: 1件のレポート other: '%{count}件のレポート' reported_item: レポートした項目 states: @@ -1431,8 +1413,6 @@ ja: show: title: '%{status} 問題 #%{issue_id}' reports: - zero: レポート0件 - one: 1件のレポート other: '%{count}件のレポート' no_reports: 報告はありません report_created_at: 最初の通報は%{datetime}です @@ -2117,9 +2097,9 @@ ja: other_groups: title: その他のグループ other_groups_html: |- - 地域支部と同じように公式にグループを設立する必要はありません。 - 実際に多くのグループが非公式な人々の集まりとして、または - コミュニティグループとして非常にうまく存在しています。誰でもこれらを設定または参加できます。 %{communities_wiki_link} で詳細をお読みください。 + 国・地域別協会と同等の公式なグループを設立する必要はありません。 + 実際に多くのグループが非公式な集まりとして、または + コミュニティグループとして非常にうまく存続しています。誰でもこれらを設定または参加できます。 %{communities_wiki_link} で詳細をお読みください。 traces: visibility: private: 非公開 (匿名、点は順不同) @@ -2175,7 +2155,6 @@ ja: trace: pending: 処理中 count_points: - one: 1個の点 other: '%{count}個の点' more: 詳細 trace_details: トレースの詳細表示 @@ -2538,18 +2517,15 @@ ja: time_future_and_until_login_html: 利用者のログイン後%{time}で終了します。 time_past_html: '%{time}に終了しました。' block_duration: - hours: '%{count}時間' + hours: + other: '%{count}時間' days: - one: 1日 other: '%{count}日' weeks: - one: 1週間 other: '%{count}週間' months: - one: 1か月 other: '%{count}か月' years: - one: 1å¹´ other: '%{count}å¹´' blocks_on: title: '%{name} がされたブロック' @@ -2591,7 +2567,7 @@ ja: index: title: '%{user} さんが投稿またはコメントしたメモ' heading: '%{user}さんのメモ' - subheading_html: '%{user}さんが投稿またはコメントしたメモ' + subheading_html: '%{user}さんが%{submitted}または%{commented}したメモ' no_notes: メモなし id: ID creator: 作成者 diff --git a/config/locales/mk.yml b/config/locales/mk.yml index 59f87fb2a..d23dd5845 100644 --- a/config/locales/mk.yml +++ b/config/locales/mk.yml @@ -13,8 +13,6 @@ mk: formats: friendly: '%e %B %Y г. во %H:%M ч.' blog: '%e %B %Y г.' - count: - at_least_pattern: '%{count}+' helpers: file: prompt: Одберете податотека @@ -582,10 +580,36 @@ mk: newer_comments: Понови коментари older_comments: Постари коментари doorkeeper: + errors: + messages: + account_selection_required: Овластувачкиот опслужувач бара избор на сметка + на крајниот корисник + consent_required: Овластувачкиот опслужувач бара согласност од крајниот корисник + interaction_required: Овластувачкиот опслужувач бара дејство од крајниот корисник + login_required: Овластувачкиот опслужувач бара заверка на крајниот корисник flash: applications: create: notice: Прилогот е пријавен. + openid_connect: + errors: + messages: + auth_time_from_resource_owner_not_configured: Не успеа бидејќи не е наместен + Doorkeeper::OpenidConnect.configure.auth_time_from_resource_owner. + reauthenticate_resource_owner_not_configured: Не успеа бидејќи не е наместен + Doorkeeper::OpenidConnect.configure.reauthenticate_resource_owner. + resource_owner_from_access_token_not_configured: Не успеа бидејќи не е наместен + Doorkeeper::OpenidConnect.configure.resource_owner_from_access_token. + select_account_for_resource_owner_not_configured: Не успеа бидејќи не е + наместен Doorkeeper::OpenidConnect.configure.select_account_for_resource_owner. + subject_not_configured: Создавањето на шифрената назнака не успеа бидејќи + не е наместен Doorkeeper::OpenidConnect.configure.subject. + scopes: + address: Ваша физичка адреса + email: Ваша е-поштенска адреса + openid: Заверете ја вашата сметка + phone: Ваш телефонски број + profile: Ваши профилни информации errors: contact: contact_url: https://wiki.openstreetmap.org/wiki/Contact?uselang=mk @@ -2563,6 +2587,7 @@ mk: permissions: missing: Му немате дозволено пристап на прилогот до оваа можност scopes: + openid: Најава со OpenStreetMap read_prefs: Кориснички нагодувања за читање write_prefs: Менување на корисничките нагодувања write_diary: Создавање на дневнички ставки, коментирање и спријателување diff --git a/config/locales/nb.yml b/config/locales/nb.yml index 6d8323aab..8c842cbb3 100644 --- a/config/locales/nb.yml +++ b/config/locales/nb.yml @@ -52,6 +52,7 @@ nb: create: Registrer update: Oppdater oauth2_application: + create: Registrer deg update: Oppdater redaction: create: Lag maskering @@ -127,6 +128,7 @@ nb: doorkeeper/application: name: Navn redirect_uri: Omdirigerings-URI-er + confidential: Konfidensiell søknad? scopes: Tillatelser friend: user: Bruker @@ -564,6 +566,9 @@ nb: success: '%{name} ble fjernet fra dine venner' not_a_friend: '%{name} er ikke en av dine venner.' geocoder: + search: + title: + latlon: Intern search_osm_nominatim: prefix: aerialway: @@ -895,13 +900,14 @@ nb: fitness_station: Treningsstudio garden: Hage golf_course: Golfbane - horse_riding: Ridning + horse_riding: Ridesenter ice_rink: Skøytebane marina: BÃ¥thavn miniature_golf: Minigolf nature_reserve: Naturreservat outdoor_seating: Utendørs sitteplass park: Park + picnic_table: Piknikbord pitch: Sportsarena playground: Lekeplass recreation_ground: RekreasjonsomrÃ¥de @@ -1103,6 +1109,7 @@ nb: car_repair: Bilverksted carpet: Teppebutikk charity: Veldedighetsbutikk + cheese: Ostebutikk chemist: Kjemiker chocolate: Sjokolade clothes: Klesbutikk @@ -1112,6 +1119,8 @@ nb: convenience: Nærbutikk copyshop: Kopieringsbutikk cosmetics: Kosmetikkforretning + craft: Hobbybutikk + curtain: Gardinbutikk deli: Delikatessebutikk department_store: Varehus discount: Tilbudsbutikk @@ -1139,6 +1148,7 @@ nb: kiosk: Kiosk kitchen: Kjøkkenbutikk laundry: Vaskeri + locksmith: LÃ¥sesmed lottery: Lotteri mall: Kjøpesenter massage: Massasjeinstitutt @@ -1163,6 +1173,7 @@ nb: stationery: Papirbutikk supermarket: Supermarked tailor: Skredder + tattoo: Tatoveringsstudio tea: Tehandel ticket: Billettformidler tobacco: Tobakkshandler @@ -1181,7 +1192,7 @@ nb: artwork: Kunstverk attraction: Attraksjon bed_and_breakfast: Bed and Breakfast - cabin: Hytte + cabin: Turisthytte camp_site: Teltplass caravan_site: Campingplass chalet: Fjellhytte diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 02843f1ed..b745bed87 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -641,10 +641,36 @@ nl: newer_comments: Nieuwere reacties older_comments: Oudere reacties doorkeeper: + errors: + messages: + account_selection_required: Voor de autorisatieserver is de selectie van een + eindgebruikersaccount vereist + consent_required: De autorisatieserver vereist toestemming van de eindgebruiker + interaction_required: De autorisatieserver vereist interactie van de eindgebruiker + login_required: De autorisatieserver vereist authenticatie van de eindgebruiker flash: applications: create: notice: Toepassing geregistreerd. + openid_connect: + errors: + messages: + auth_time_from_resource_owner_not_configured: Fout vanwege ontbrekende configuratie + van Doorkeeper::OpenidConnect.configure.auth_time_from_resource_owner. + reauthenticate_resource_owner_not_configured: Fout vanwege ontbrekende configuratie + van Doorkeeper::OpenidConnect.configure.reauthenticate_resource_owner. + resource_owner_from_access_token_not_configured: Fout vanwege ontbrekende + configuratie van Doorkeeper::OpenidConnect.configure.resource_owner_from_access_token. + select_account_for_resource_owner_not_configured: Fout vanwege ontbrekende + configuratie van Doorkeeper::OpenidConnect.configure.auth_time_from_resource_owner. + subject_not_configured: Het genereren van het ID-token is mislukt vanwege + een ontbrekende configuratie van Doorkeeper::OpenidConnect.configure.subject. + scopes: + address: Uw fysieke adres bekijken + email: Uw e-mailadres bekijken + openid: Uw account authenticeren + phone: Uw telefoonnummer bekijken + profile: Uw profielgegevens bekijken errors: contact: contact_url: https://wiki.openstreetmap.org/wiki/NL:Contact_channels @@ -2647,6 +2673,7 @@ nl: permissions: missing: U heeft niet toegestaan dat de toepassing toegang heeft tot dit kenmerk. scopes: + openid: Aanmelden met OpenStreetMap read_prefs: Gebruikersvoorkeuren lezen write_prefs: Gebruikersvoorkeuren wijzigen write_diary: Dagboekberichten schrijven, reacties geven en vrienden maken @@ -3122,6 +3149,7 @@ nl: cyclosm: CyclOSM cycle_map: Fietskaart transport_map: Transportkaart + tracestracktop_topo: Tracestrack Topo hot: Humanitair opnvkarte: ÖPNVKarte layers: @@ -3140,6 +3168,8 @@ nl: andy_allan: Andy Allan opnvkarte_credit: Tegels met dank aan %{memomaps_link} memomaps: MeMoMaps + tracestrack_credit: Tegels met dank aan %{tracestrack_link} + tracestrack: Tracestrack hotosm_credit: Kaartstijl door %{hotosm_link} gehost door %{osm_france_link} hotosm_name: Humanitair OpenStreetMap-team site: diff --git a/config/locales/pl.yml b/config/locales/pl.yml index f622399e8..f32c4267c 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -28,6 +28,7 @@ # Author: Krottyianock # Author: Krzyz23 # Author: Kwiatek 123 +# Author: Luku123 # Author: M4sk1n # Author: Macofe # Author: Maraf24 @@ -319,6 +320,7 @@ pl: reopened_at_by_html: Ponownie aktywowano %{when} przez %{user} rss: title: Uwagi OpenStreetMap + description_all: Lista zgłoszonych, skomentowanych lub zamkniętych uwag description_area: Lista uwag stworzonych, skomentowanych lub zamkniętych w twojej okolicy [(%{min_lat}|%{min_lon}) -- (%{max_lat}|%{max_lon})] description_item: Kanał RSS uwagi %{id} @@ -677,6 +679,12 @@ pl: applications: create: notice: Zarejestrowano aplikację. + scopes: + address: Wyświetl swój adres + email: Zobacz swój adres e-mail + openid: Uwierzytelnij swoje konto + phone: Wyświetl swój numer telefonu + profile: Wyświetl informacje o swoim profilu errors: contact: contact_url: https://wiki.openstreetmap.org/wiki/Pl:Sposoby_komunikacji @@ -2015,9 +2023,11 @@ pl: czy dane w OSM są dokładne i aktualne. community_driven_title: Zarządzany przez społeczność community_driven_osm_blog: Blog OpenStreetMap + community_driven_user_diaries: dzienniki użytkowników community_driven_community_blogs: blogi społecznościowe community_driven_osm_foundation: Fundacja OSM open_data_title: Otwarte dane + open_data_copyright_license: Strona dotycząca praw autorskich i licencji legal_title: Pytania prawne legal_1_1_openstreetmap_foundation: Fundacja OpenStreetMap legal_1_1_terms_of_use: Warunki użytkowania @@ -2124,6 +2134,7 @@ pl: contributors_nz_new_zealand: Nowa Zelandia contributors_nz_linz_data_service: LINZ Data Service contributors_nz_cc_by: CC BY 4.0 + contributors_rs_serbia: Serbia contributors_si_credit_html: '%{slovenia}: Zawiera dane %{gu_link} oraz %{mkgp_link} (informacja publiczna Słowenii).' contributors_si_slovenia: Słowenia @@ -2388,6 +2399,8 @@ pl: można edytować mapę.' editor: edytor node: węzeł + way: Linia + tag: Znacznik rules: title: Zasady! para_1_html: |- @@ -2581,6 +2594,7 @@ pl: permissions: missing: Nie zezwoliłeś aplikacji na dostęp do tej funkcji scopes: + openid: Zaloguj się za pomocą OpenStreetMap read_prefs: Odczytywanie preferencji użytkownika write_prefs: Modyfikowanie preferencji użytkownika write_diary: Tworzenie wpisów w dzienniku, dodawanie komentarzy i nawiązywanie @@ -2768,6 +2782,7 @@ pl: remove as friend: usuń ze znajomych add as friend: dodaj do znajomych mapper since: 'Mapuje od:' + uid: 'Identyfikator użytkownika:' ct status: 'Warunki uczestnictwa:' ct undecided: niezdecydowane ct declined: odrzucone @@ -3064,6 +3079,7 @@ pl: cyclosm: CyclOSM cycle_map: Rowerowa transport_map: Transportu publicznego + tracestracktop_topo: Tracestrack Topo hot: Humanitarna opnvkarte: ÖPNVKarte layers: diff --git a/config/locales/pt.yml b/config/locales/pt.yml index f290f65e4..d2300b8d6 100644 --- a/config/locales/pt.yml +++ b/config/locales/pt.yml @@ -639,6 +639,11 @@ pt: applications: create: notice: Aplicação registada. + scopes: + email: Ver seu endereço de e-mail + openid: Autenticar sua conta + phone: Ver seu número de telefone + profile: Ver suas informações de perfil errors: contact: contact_url: https://wiki.openstreetmap.org/wiki/Pt:Canais_para_contato diff --git a/config/locales/ro.yml b/config/locales/ro.yml index 8d330bf6b..e576a3237 100644 --- a/config/locales/ro.yml +++ b/config/locales/ro.yml @@ -24,8 +24,6 @@ ro: time: formats: friendly: '%e %B %Y la %H:%M' - count: - at_least_pattern: '%{count}+' helpers: file: prompt: Selectează fișier @@ -617,10 +615,36 @@ ro: newer_comments: Comentarii mai noi older_comments: Comentarii mai vechi doorkeeper: + errors: + messages: + account_selection_required: Serverul de autorizare necesită selectarea contului + de utilizator + consent_required: Serverul de autorizare necesită consimțământul utilizatorului + interaction_required: Serverul de autorizare necesită interacțiunea utilizatorului + login_required: Serverul de autorizare necesită autentificarea utilizatorului flash: applications: create: notice: Aplicație înregistrată. + openid_connect: + errors: + messages: + auth_time_from_resource_owner_not_configured: Eroare datorită lipsei configurației + Doorkeeper::OpenidConnect.configure.auth_time_from_resource_owner. + reauthenticate_resource_owner_not_configured: Eroare datorită lipsei configurației + Doorkeeper::OpenidConnect.configure.reauthenticate_resource_owner. + resource_owner_from_access_token_not_configured: Eroare datorită lipsei + configurației Doorkeeper::OpenidConnect.configure.resource_owner_from_access_token. + select_account_for_resource_owner_not_configured: Eroare datorită lipsei + configurației Doorkeeper::OpenidConnect.configure.select_account_for_resource_owner. + subject_not_configured: Generarea codului ID a eșuat din cauza lipsei configurației + Doorkeeper::OpenidConnect.configure.subject. + scopes: + address: Vizualizați adresa dumneavoastră fizică + email: Vizualizați adresa dumneavoastră de e-mail + openid: Autentificați-vă contul + phone: Vizualizați numărul dumneavoastră de telefon + profile: Vizualizați informațiile de profil errors: contact: contact_url_title: Diferite metode de contact explicate @@ -2617,6 +2641,7 @@ ro: permissions: missing: Nu ați permis accesul aplicației la această facilitate scopes: + openid: Conectați-vă folosind OpenStreetMap read_prefs: Citiți preferințele utilizatorului write_prefs: Modificați preferințele utilizatorului write_diary: Creează înregistrări în jurnal, comentarii și fă-ți prieteni diff --git a/config/locales/ru.yml b/config/locales/ru.yml index b3626cb15..7757049b4 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -413,6 +413,8 @@ ru: delete_account: Удалить учётную запись… go_public: heading: Общедоступная правка + only_public_can_edit: С момента перехода на API 0.6, только публичные пользователи + могут редактировать данные карты. find_out_why: узнать почему make_edits_public_button: Сделать все мои правки доступными update: @@ -888,7 +890,7 @@ ru: "yes": Мост building: apartment: Квартира - apartments: Квартиры + apartments: Многоквартирный дом barn: Амбар bungalow: Бунгало cabin: Хижина @@ -2070,6 +2072,9 @@ ru: mapping_link: начать картографирование legal_babble: title_html: Авторские права и лицензирование + introduction_1_html: "OpenStreetMap%{registered_trademark_link} — это %{open_data}, + лицензированные по \n%{odc_odbl_link} (ODbL), разработанной %{osm_foundation_link} + (OSMF)." introduction_1_open_data: открытые данные introduction_2_html: Вы можете свободно копировать, распространять, передавать и дорабатывать наши данные до тех пор, пока вы ссылаетесь на OpenStreetMap @@ -2209,6 +2214,11 @@ ru: отсутствие дороги или вашего адреса, лучший способ для дальнейших действий — вступить в сообщество OpenStreetMap и добавить или восстановить данные самостоятельно. + add_a_note: + instructions_1_html: |- + Просто нажмите %{note_icon} или тот же значок на экране карты. + Это добавит на карту маркер, который вы сможете перемещать + перетаскиванием. Добавьте свое сообщение, затем нажмите «Сохранить», и другие картографы проведут расследование. other_concerns: title: Другие проблемы copyright: страница авторского права @@ -2262,6 +2272,11 @@ ru: change_preferences: Измените свои предпочтения здесь any_questions: title: Остались вопросы? + paragraph_1_html: |- + В OpenStreetMap имеется несколько ресурсов для изучения проекта, вопросов и ответов на них, а также для совместного обсуждения и документирования тем, относящихся к картографированию. + %{help_link}. Вы из организации, которая планирует использовать OpenStreetMap? %{welcome_mat_link}. + get_help_here: Обратитесь за помощью сюда + welcome_mat: Шагните на приветственный коврик sidebar: search_results: Результаты поиска close: Закрыть @@ -2354,12 +2369,27 @@ ru: Вот небольшая инструкция по самым важным вещам, которые необходимо знать. whats_on_the_map: title: Что находится на карте + on_the_map_html: OpenStreetMap — это место для картографирования объектов + (%{real_and_current}); сайт содержит миллионы зданий, дорог и других сведений + о различных местах. Вы можете нанести на карту любые особенности реального + мира, которые вам интересны. + real_and_current: реальных и актуальных + off_the_map_html: Чего здесь %{doesnt}, так это субъективных данных, таких + как рейтинги, исторические или гипотетические характеристики, а также данных + из источников, защищённых авторским правом. Не копируйте карты с онлайн- + или бумажных карт, если у вас нет специального разрешения. + doesnt: нету basic_terms: title: Небольшой словарь картографа paragraph_1: У OpenStreetMap выработался локальный сленг. Вот несколько понятий, - которые стоит иметь ввиду. + которые стоит иметь в виду. an_editor_html: '%{editor} – это программа или веб-сайт, который вы можете использовать для редактирования карты.' + a_node_html: '%{node} — это точка на карте, например ресторан или дерево.' + a_way_html: '%{way} — это линия или область, например дорога, ручей, озеро + или здание.' + a_tag_html: '%{tag} — это часть данных о точке (узле) или пути, например название + ресторана или ограничение скорости на дороге.' editor: редактор node: точка way: линия @@ -2379,6 +2409,10 @@ ru: para_1: Если нужно сделать небольшое уточнение, ради которого слишком долго регистрироваться и изучать правила правки, можно просто добавить заметку на карту. + para_2_html: |- + Просто перейдите к %{map_link} и кликните по значку заметки: %{note_icon}. + Это добавит на карту маркер, который вы можете перемещать перетаскиванием. + Добавьте свое сообщение, затем нажмите «Сохранить» и другие картографы проведут расследование. the_map: карта communities: title: Сообщества diff --git a/config/locales/sc.yml b/config/locales/sc.yml index 8cdab4e5c..4b22cd44f 100644 --- a/config/locales/sc.yml +++ b/config/locales/sc.yml @@ -592,6 +592,14 @@ sc: newer_comments: Cummentos prus noos older_comments: Cummentos prus betzos doorkeeper: + errors: + messages: + account_selection_required: Su serbidore de autorizatzione tenet bisòngiu + de sa seletzione de unu contu de utente finale + consent_required: Su serbidore de autorizatzione tenet bisòngiu de sa seletzione + de s'utente finale + interaction_required: Su serbidore de autorizatzione tenet bisòngiu de s'interatzione + de s'utente finale flash: applications: create: diff --git a/config/locales/sh.yml b/config/locales/sh.yml new file mode 100644 index 000000000..b529925df --- /dev/null +++ b/config/locales/sh.yml @@ -0,0 +1,870 @@ +# Messages for Serbo-Croatian (srpskohrvatski / српскохрватски) +# Exported from translatewiki.net +# Export driver: phpyaml +# Author: Vlad5250 +--- +sh: + time: + formats: + friendly: '%e %B %Y u %H:%M' + helpers: + file: + prompt: Izaberi datoteku + submit: + diary_comment: + create: Komentar + diary_entry: + create: Objavi + update: Podnovi + issue_comment: + create: Dodaj komentar + message: + create: PoÅ¡alji + client_application: + create: Registriraj + update: Podnovi + oauth2_application: + create: Registracija + update: Podnovi + redaction: + create: Napravi redakciju + update: Sačuvaj redakciju + trace: + create: Otpremi + update: Sačuvaj promjene + user_block: + create: Napravi blokadu + update: Podnovi blokadu + activerecord: + errors: + messages: + invalid_email_address: ne izgleda kao važeća adresa e-poÅ¡te + email_address_not_routable: nije povezljiv + models: + acl: Kontrole pristupa + changeset: Set promjena + changeset_tag: Oznaka seta promjena + country: Zemlja + diary_comment: Komentar dnevnika + diary_entry: Unos u dnevniku + friend: Prijatelj + issue: Problem + language: Jezik + message: Poruka + node: Čvor + node_tag: Oznaka čvora + old_node: Stari čvor + old_node_tag: Oznaka starog čvora + old_relation: Stara relacija + old_relation_member: Stari član relacije + old_relation_tag: Oznaka stare relacije + old_way: Stara putanja + old_way_node: Čvor stare putanje + old_way_tag: Oznaka stare putanje + relation: Relacija + relation_member: Član relacije + relation_tag: Oznaka relacije + report: Prijavi + session: Sesija + trace: Trag + tracepoint: Tačka traga + tracetag: Oznaka traga + user: Korisnik + user_preference: Korisničke postavke + user_token: Korisnički žeton + way: Putanja + way_node: Čvor putanje + way_tag: Oznaka putanje + attributes: + client_application: + name: Ime (obavezno) + url: Glavni URL priloga (obavezno) + callback_url: URL za povratni poziv + support_url: URL podrÅ¡ke + allow_read_prefs: čita njihove korisničke postavke + allow_write_prefs: mijenja njihove korisničke postavke + allow_write_diary: pravi dnevničke zapise, komentare i dodaje prijatelje + diary_comment: + body: Tijelo + diary_entry: + user: Korisnik + title: Tema + body: Tijelo + latitude: Geografska Å¡irina + longitude: Geografska dužina + language_code: Jezik + doorkeeper/application: + name: Naziv + redirect_uri: Preusmjeravanje URI-ja + confidential: Povjerljivi prilog? + scopes: Dozvole + friend: + user: Korisnik + friend: Prijatelj + trace: + user: Korisnik + visible: Vidljivo + name: Ime datoteke + size: Veličina + latitude: Geo. Å¡irina + longitude: Geo. dužina + public: Javno + description: Opis + gpx_file: Otpremi GPX datoteku + visibility: Vidljivost + tagstring: Oznake + message: + sender: PoÅ¡iljalac + title: Tema + body: Tijelo + recipient: Primalac + redaction: + title: Naslov + description: Opis + report: + category: Odaberite razlog prijave + details: Navedite viÅ¡e pojedinosti o problemu (obavezno). + user: + auth_provider: Davatelj autentifikacije + email: Imejl + email_confirmation: Potvrda imejla + new_email: Nova imejl adresa + active: Aktivan + display_name: Ime za prikaz + description: Opis profila + home_lat: Geo. Å¡irina + home_lon: Geo. dužina + languages: Željeni jezici + preferred_editor: Željeni uređivač + pass_crypt: Lozinka + pass_crypt_confirmation: Potvrdi lozinku + help: + doorkeeper/application: + confidential: Prilog će se koristiti tamo gdje se tajna klijenta može čuvati + u tajnosti (izvorni mobilni prilozi i prilozi na jednoj stranici nisu povjerljivi) + trace: + tagstring: odvojeno zarezima + user_block: + reason: Razlog zaÅ¡to je korisnik blokiran. Molimo vas da budete Å¡to smireniji + i razumniji, dajući Å¡to viÅ¡e detalja o situaciji, imajući na umu da će poruka + biti javno vidljiva. Imajte na umu da svi korisnici ne razumiju žargon zajednice, + stoga pokuÅ¡ajte koristiti laičke izraze. + needs_view: Da li se korisnik mora prijaviti prije nego se očisti blokada? + user: + new_email: (nikada se ne prikazuje javno) + editor: + default: Podrazumijevano (trenutno %{name}) + id: + description: iD (uređivač u pregledniku) + auth: + providers: + none: Nijedan + openid: OpenID + google: Google + facebook: Facebook + github: GitHub + wikipedia: Wikipedia + api: + notes: + comment: + opened_at_html: Napravljeno %{when} + opened_at_by_html: Napravljeno %{when} korisnikom %{user} + commented_at_html: Podnovljeno %{when} + commented_at_by_html: Podnovljeno %{when} korisnikom %{user} + closed_at_html: RazrijeÅ¡eno %{when} + closed_at_by_html: RazrijeÅ¡eno %{when} korisnikom %{user} + reopened_at_html: Reaktivirano %{when} + reopened_at_by_html: Reaktivirano %{when} korisnikom %{user} + rss: + title: BiljeÅ¡ke OpenStreetMap-a + description_area: Lista biljeÅ¡ki, prijavljenih, iskometiranih ili zatvorenih, + u vaÅ¡em području [(%{min_lat}|%{min_lon}) -- (%{max_lat}|%{max_lon})] + description_item: RSS-tok biljeÅ¡ke %{id} + opened: nova biljeÅ¡ka (blizu %{place}) + commented: novi komentar (blizu %{place}) + closed: zatvorena biljeÅ¡ka (blizu %{place}) + reopened: reaktivirana biljeÅ¡ka (blizu %{place}) + entry: + comment: Komentar + full: Cijela napomena + account: + deletions: + show: + title: IzbriÅ¡i moj račun + warning: Upozorenje! Proces brisanja računa je konačan i ne može se poniÅ¡titi. + delete_account: IzbriÅ¡i račun + delete_introduction: 'Svoj OpenStreetMap račun možete izbrisati uporabom gumba + ispod. Imajte na umu sljedeće detalje:' + delete_profile: Bit će uklonjene informacije o vaÅ¡em profilu, uključujući + vaÅ¡ avatar, opis i kućnu lokaciju. + delete_display_name: Bit će uklonjeno vaÅ¡e ime za prikaz, i moći će ga ponovno + koristiti drugi račun. + retain_caveats: 'Međutim, OpenStreetMap će zadržati neke informacije o vama, + čak i nakon brisanja vaÅ¡eg računa:' + retain_edits: VaÅ¡e izmjene baze podataka karte. + retain_traces: VaÅ¡i otpremljeni tragovi. + retain_diary_entries: VaÅ¡i dnevnički zapisi i komentari. + retain_notes: VaÅ¡e biljeÅ¡ke i komentari na karti (ali skriveni od pogleda). + retain_changeset_discussions: VaÅ¡e rasprave o skupu promjena. + retain_email: VaÅ¡e imejl adrese. + confirm_delete: Da li ste sigurni? + cancel: Otkaži + accounts: + edit: + title: Uredi račun + my settings: Moje postavke + current email address: Trenutna adresa e-poÅ¡te + openid: + link text: Å¡ta je ovo? + public editing: + heading: Javno uređivanje + enabled: Omogućeno. Nije anonimno i mogu se uređivati podaci. + enabled link text: Å¡ta je ovo? + disabled: Onemogućeno i ne mogu se uređivati podaci, sve prethodne izmjene + su anonimne. + disabled link text: zaÅ¡to ne mogu uređivati? + contributor terms: + heading: Uslovi za doprinosioce + agreed: Prihvatili ste nove Uslove za doprinosioce. + not yet agreed: Niste joÅ¡ uvijek prihvatili nove Uslove za doprinosioce. + review link text: Molimo Vas da slijedite ovaj link kada vam bude prikladno + da pregledate i prihvatite nove Uslove za doprinosioce + agreed_with_pd: Također ste proglasili da će vaÅ¡e izmjene biti u javnom vlasniÅ¡tvu. + link text: Å¡ta je ovo? + save changes button: Sačuvaj promjene + delete_account: IzbriÅ¡i račun... + go_public: + heading: Javno uređivanje + currently_not_public: Trenutno su vaÅ¡e izmjene anonimne i ljudi vam ne mogu + slati poruke niti vidjeti vaÅ¡u lokaciju. Da biste prikazali Å¡to ste uredili + i omogućili ljudima da vas kontaktiraju putem veb-stranice, kliknite gumb + ispod. + only_public_can_edit: Od promjene приложникот-ja 0.6, kartografske podatke mogu + samo uređivati javni korisnici. + email_not_revealed: VaÅ¡a imejl adresa neće biti otkrivena drugima. + not_reversible: Ova se radnja ne može poniÅ¡titi i svi novi korisnici sada su + prema zadanim postavkama javni. + make_edits_public_button: Neka sve moje izmjene budu javne + update: + success_confirm_needed: Korisničke informacije su uspjeÅ¡no osvježene. Provjerite + imejl za porukom za potvrdu nove adrese. + success: Korisničke informacije su uspjeÅ¡no osvježene. + browse: + changeset: + join_discussion: Prijavite se za uključivanje u raspravu + discussion: Razgovor + tag_details: + wikidata_link: '%{page} stavka na Wikidata' + wikipedia_link: Članak o %{page} na Wikipediji + wikimedia_commons_link: '%{page} stavka na Wikimedijinoj ostavi' + telephone_link: Nazovi %{phone_number} + query: + title: Informacije o objektima + changesets: + changeset_paging_nav: + next: Sljedeća » + previous: « Prethodna + changeset: + anonymous: Anoniman + no_edits: (nema izmjena) + changesets: + user: Korisnik + comment: Komentar + area: Područje + index: + title: Setovi promjena + title_user: Setovi promjena od %{user} + title_user_link_html: Setovi promjena od %{user_link} + title_friend: Promjene mojih prijatelja + title_nearby: Promjene obližnjih korisnika + diary_entries: + new: + title: Novi zapis u dnevnik + form: + location: Lokacija + use_map_link: Koristi kartu + index: + title: Dnevnici korisnika + title_friends: Dnevnici prijatelja + title_nearby: Dnevnici obližnjih članova + user_title: Dnevnik korisnika %{user} + in_language_title: 'Zapisi u dnevniku na jeziku: %{language}' + new: Novi zapis u dnevnik + new_title: Sročite novi zapis u vaÅ¡ korisnički dnevnik + my_diary: Moj dnevnik + no_entries: Nema zapisa u dnevniku + recent_entries: Nedavni zapisi u dnevnik + older_entries: Stariji zapisi + newer_entries: Noviji zapisi + edit: + title: Uredi zapis u dnevnik + marker_text: Lokacija unosa u dnevnik + show: + title: Dnevnik korisnika %{user} | %{title} + user_title: Dnevnik korisnika %{user} + leave_a_comment: NapiÅ¡i komentar + login_to_leave_a_comment_html: '%{login_link} da bi ostavili komentar' + login: Prijava + no_such_entry: + title: Nema takvog zapisa u dnevnik + heading: Nema zapisa s naznakom %{id} + body: Žao mi je, ne postoji zapis u dnevniku ili komentar s naznakom %{id}. + Provjerite ispravnost upisa, ili link na koji ste kliknuli možda je neispravan. + diary_entry: + posted_by_html: Poslao %{link_user} u %{created} na jeziku %{language_link}. + updated_at_html: Posljednja podnova %{updated}. + comment_link: Komentiraj ovaj zapis + reply_link: PoÅ¡alji poruku autoru + comment_count: + one: '%{count} komentar' + few: '%{count} komentara' + other: '%{count} komentara' + no_comments: Nema komentara + edit_link: Uredi ovaj zapis + hide_link: Sakrij ovaj unos + confirm: Potvrdi + diary_comment: + comment_from_html: Komentar od %{link_user} u %{comment_created_at} + hide_link: Sakrij ovaj komentar + confirm: Potvrdi + location: + location: 'Lokacija:' + view: Prikaži + edit: Uredi + feed: + user: + title: Zapisi dnevnika od korisnika %{user} + description: Nedavni zapisi dnevnika od %{user} + language: + title: 'Zapisi u dnevniku na jeziku: %{language_name}' + description: 'Nedavni zapisi u dnevniku OpenStreetMap korisnika na jeziku: + %{language_name}' + all: + title: Zapisi u dnevniku + description: Nedavni zapisi u dnevnik korisnika OpenStreetMapa + errors: + contact: + contact: kontakt + forbidden: + description: Operacija koju ste tražili na poslužitelju OpenStreetMap dostupna + je samo administratorima (HTTP 403) + internal_server_error: + title: GreÅ¡ka u prilogu + description: Poslužitelj OpenStreetMap naiÅ¡ao je na neočekivano stanje koje + ga je spriječilo da ispuni zahtjev (HTTP 500) + not_found: + title: Datoteka nije pronađena + description: Nije moguće pronaći operaciju za datoteku/direktorij/priložnik + pod im imenom na poslužitelju OpenStreetMap (HTTP 404) + friendships: + make_friend: + heading: Dodati %{user} kao prijatelja? + button: Dodaj kao prijatelja + success: '%{name} je sada vaÅ¡ prijatelj!' + failed: Žao mi je, nije uspjelo dodavanje %{name} kao prijatelja. + already_a_friend: Već ste prijatelj sa %{name}. + limit_exceeded: Nedavno ste se sprijateljili s mnogo korisnika. Molimo sačekajte + neko vrijeme, prije nego Å¡to se viÅ¡e pokuÅ¡ate sprijateljiti. + remove_friend: + heading: Ukloniti %{user} iz prijatelja? + button: Ukloniti prijatelja + success: '%{name} je uklonjen iz prijatelja.' + not_a_friend: '%{name} nije vaÅ¡ prijatelj.' + geocoder: + search_osm_nominatim: + prefix: + aerialway: + cable_car: Žičara + chair_lift: Žičara sa sjediÅ¡tima + drag_lift: Vučnica + gondola: Kabinska žičara + magic_carpet: Magic Carpet Lift + platter: Platter Lift + pylon: Pylon + station: Stanica žičare + t-bar: Sidro + "yes": Žičara + aeroway: + aerodrome: Aerodrom + airstrip: Uzletno/sletna pista + apron: PristaniÅ¡na platforma + gate: Vrata aerodroma + hangar: Hangar + helipad: Heliodrom + holding_position: Držanje položaja + navigationaid: Zrakoplovna navigacijska pomoć + parking_position: Parkirno mjesto + runway: Pista + taxilane: Taxilane + taxiway: Rulna staza + terminal: Aerodromski terminal + windsock: Vjetrobran + amenity: + animal_boarding: Hotel za kućne ljubimce + animal_shelter: Azil za životinje + arts_centre: Umjetnički centar + atm: Bankomat + bank: Banka + bar: Bar + bbq: RoÅ¡tilj + bench: Klupa + bicycle_parking: Biciklistički parking + bicycle_rental: Iznajmljivanje bicikla + bicycle_repair_station: Stanica za popravak bicikla + biergarten: Pivska baÅ¡ta + blood_bank: Banka krvi + boat_rental: Najam brodova + brothel: Bordel + bureau_de_change: Mjenjačnica + bus_station: Autobuska stanica + cafe: Kafe + car_rental: Iznajmljivanje automobila + car_sharing: Carsharing + car_wash: Autopraonica + casino: Kazino + charging_station: Stanica za punjenje + childcare: Vrtić + cinema: Kino + clinic: Klinika + clock: Sat + college: Koledž + community_centre: DruÅ¡tveni centar + conference_centre: Konferencijski centar + courthouse: Sud + crematorium: Krematorij + dentist: Zubar + doctors: Doktor + drinking_water: Pijaća voda + driving_school: AutoÅ¡kola + embassy: Ambasada + events_venue: Lokalita događaja + fast_food: Brza hrana + ferry_terminal: Trajektni terminal + fire_station: Vatrogasna stanica + food_court: Å tandovi za brzu hranu + fountain: Fontana + fuel: Stanica za punjenje + gambling: Kockanje + grave_yard: Groblje + grit_bin: Grit Bin + hospital: Bolnica + hunting_stand: Lovačka čeka + ice_cream: Sladoled + internet_cafe: Internet kafe + kindergarten: Dječiji vrtić + language_school: Å kola jezika + library: Biblioteka + loading_dock: Dock za utovar + love_hotel: Ljubavni hotel + marketplace: Tržnica + mobile_money_agent: Agenta za mobilni novac + monastery: Manastir + money_transfer: Prijevod novca + motorcycle_parking: Parking za motocikle + music_school: Muzička Å¡kola + nightclub: Noćni klub + nursing_home: Starački dom + parking: Parking + parking_entrance: Ulaz u parking + parking_space: Parking prostor + payment_terminal: Terminal za plaćanje + pharmacy: Apoteka + place_of_worship: Bogomolja + police: Policija + post_box: PoÅ¡tanski sandučić + post_office: PoÅ¡ta + prison: Zatvor + pub: Pub + public_bath: Javno kupaliÅ¡te + types: + cities: Gradovi + towns: Manji gradovi + places: Mjesta + results: + no_results: Nema rezultata + more_results: ViÅ¡e rezultata + issues: + index: + search: Pretraga + user_not_found: Korisnik ne postoji + status: Status + last_updated: Posljednja podnova + layouts: + edit: Uredi + history: Historija + export: Izvezi + data: Podaci + export_data: Izvezi podatke + gps_traces: GPS tragovi + gps_traces_tooltip: Upravljanje GPS tragovima + user_diaries: Dnevnici korisnika + intro_header: DobrodoÅ¡ao/la na OpenStreetMap! + intro_text: OpenStreetMap je karta svijeta stvorena od strane ljudi kao Å¡to ste + vi i može se slobodno koristiti pod licencom otvorenog koda. + intro_2_create_account: Napravi korisnički račun + hosting_partners_html: Hosting podržavaju %{ucl}, %{fastly}, %{bytemark} i drugi + %{partners}. + partners_ucl: UCL + partners_fastly: Fastly + partners_bytemark: Bytemark Hosting + partners_partners: partneri + tou: Uslovi koriÅ¡tenja + osm_offline: OpenStreetMap baza podataka je trenutno nedostupna dok se ne zavrÅ¡e + važni radovi na održavanju. + osm_read_only: OpenStreetMap baza podataka je trenutno samo u modu čitanja, dok + se ne sprovedu važni radovi na održavanju baze podataka. + donate: Podržite OpenStreetMap za %{link} Fond održavanja potrebnog hardvera. + help: Pomoć + about: O nama + copyright: Autorska prava + communities: Zajednice + community: Zajednica + community_blogs: Blogovi zajednice + community_blogs_title: Blogovi članova OpenStreetMap zajednice + make_a_donation: + title: Podržite OpenStreetMap novčanom donacijom + text: Donirajte + learn_more: Saznajte viÅ¡e + more: ViÅ¡e + user_mailer: + diary_comment_notification: + subject: '[OpenStreetMap] %{user} je komentirao vaÅ¡ unos u dnevniku' + hi: Pozdrav, %{to_user}, + gpx_success: + subject: '[OpenStreetMap] UspjeÅ¡an uvoz GPX-datoteke' + signup_confirm: + subject: '[OpenStreetMap] DobrodoÅ¡li na OpenStreetMap' + greeting: Zdravo! + created: Neko (nadamo se, Vi) upravo je napravio račun na %{site_url}. + confirm: 'Najprije moramo potvrditi da Vi ste onaj Å¡to postavio je zahtjev, + ako je to istina, molimo Vas da kliknete link ispod da potvrdite VaÅ¡ račun:' + welcome: Nakon Å¡to potvrdite svoj račun, mi ćemo vam dati neke dodatne informacije + kako bi ste počeli. + confirmations: + confirm: + heading: Provjerite svoj imejl! + introduction_1: Poslali smo ti potvrdni imejl. + introduction_2: Potvrdite svoj račun klikom na donji link, pa moći ćete započeti + s crtanjem karte. + press confirm button: Pritisnite potvrdi da bi aktivirali svoj korisnički račun. + button: Potvrdi + success: VaÅ¡ račun je potvrđen. Hvala vam na upisu! + already active: Ovaj račun je već potvrđen. + unknown token: Taj kod za potvrdu je istekao ili ne postoji. + resend_html: Ako trebate da ponovo poÅ¡aljemo potvrdni imejl, %{reconfirm_link}. + confirm_resend: + failure: Korisnik %{name} nije pronađen. + confirm_email: + heading: Potvrda promjene e-adrese + messages: + message_summary: + reply_button: Odgovori + destroy_button: IzbriÅ¡i + new: + title: PoÅ¡alji poruku + send_message_to_html: PoÅ¡alji novu poruku za %{name} + back_to_inbox: Nazad u dolaznu poÅ¡tu + create: + message_sent: Poruka poslana + limit_exceeded: Nedavno ste poslali puno poruke. Molimo sačekajte neko vrijeme, + prije nego pokuÅ¡ate poslati druge. + no_such_message: + title: Nema takve poruke + heading: Nema takve poruke + body: Nažalost, nema poruke s tom naznakom. + outbox: + title: Odlazna poÅ¡ta + to: Za + subject: Tema + date: Datum + no_sent_messages_html: JoÅ¡ uvijek nemate poslanih poruka. ZaÅ¡to ne biste iskontaktirali + s nekim %{people_mapping_nearby_link}? + people_mapping_nearby: ljudima u vaÅ¡oj okolini + profiles: + edit: + title: Uredi profil + save: Podnovi profil + cancel: Otkaži + image: Slika + gravatar: + gravatar: Koristi Gravatar + what_is_gravatar: Å ta je Gravatar? + new image: Dodaj sliku + keep image: Zadrži trenutnu sliku + delete image: Ukloni trenutnu sliku + replace image: Zamijeni trenutnu sliku + image size hint: (kvadratne slike od barem 100x100 piksela su najbolje) + sessions: + new: + title: Prijava + heading: Prijava + email or username: 'Imejl adresa ili korisničko ime:' + password: 'Lozinka:' + openid_html: '%{logo} OpenID:' + remember: Zapamti me + lost password link: Izgubili ste lozinku? + login_button: Prijava + register now: Registrirajte se sada + with external: 'Ili koristite vanjski servis:' + no account: Nemate račun? + auth failure: Žao nam je, ne možemo vas prijaviti s ovim detaljima. + openid_logo_alt: Prijavi se sa OpenID-om + auth_providers: + openid: + title: Prijavi se sa OpenID-om + alt: Prijavi se sa URL-om OpenID-a + suspended_flash: + suspended: Nažalost, vaÅ¡ je račun obustavljen zbog sumnjive aktivnosti. + contact_support_html: Molimo kontaktirajte %{support_link} ako želite razgovarati + o ovome. + support: podrÅ¡ku + shared: + richtext_field: + edit: Uredi + preview: Pregled + site: + about: + next: Sljedeće + used_by_html: '%{name} snabdijeva geografskim podacima tisuće internetskih stranica, + mobilnih priloga i uređaja' + lede_text: OpenStreetMap je izgradila zajednica kartografa koji donose i održavaju + podatke o cestama, stazama, kafićima, željezničkim postajama i joÅ¡ mnogo čemu + drugom diljem cijelog svijeta. + local_knowledge_title: Lokalno znanje + local_knowledge_html: |- + OpenStreetMap pridodaje posebnu važnost lokalnom znanju. Doprinositelji koriste + zračne snimke, GPS-uređaje i vlastite terenske podatke + za provjeru točnosti + i ažurnosti OSM-podataka. + community_driven_title: Vođen zajednicom + community_driven_1_html: |- + Zajednica OpenStreetMapa je raznolika, strastvena i raste svakim danom. + Među naÅ¡im suradnicima su kartografi amateri, GIS profesionalci, inženjeri koji održavaju OSM servere, + humanitarci koji kartiraju područja pogođena + katastrofom i mnogi drugi. + Kako biste saznali viÅ¡e o zajednici, pogledajte %{osm_blog_link}, + %{user_diaries_link}, %{community_blogs_link} i veb-stranicu + %{osm_foundation_link}. + legal_1_1_openstreetmap_foundation: Zadužbina OpenStreetMap + legal_1_1_terms_of_use: Uslovi koriÅ¡tenja + legal_1_1_privacy_policy: Politika privatnosti + partners_title: Partneri + copyright: + foreign: + title: O ovom prijevodu + html: U slučaju sukoba između ove prevedene stranice i %{english_original_link}, + engleska stranica ima prednost + english_link: engleskog originala + native: + title: O ovoj stranici + legal_babble: + contributors_title_html: NaÅ¡i suradnici + contributors_intro_html: |- + NaÅ¡i suradnici su hiljade pojedinaca. Koristimo također + podatke s otvorenom licencom od nacionalnih kartografskih agencija + i drugih izvora, među kojima su: + contributors_at_austria: Austrija + contributors_at_stadt_wien: Stadt Wien + contributors_at_cc_by: CC BY + contributors_at_land_vorarlberg: Land Vorarlberg + contributors_footer_2_html: |- + UvrÅ¡tavanje podataka u OpenStreetMap ne podrazumijeva da se izvorni + davatelj podataka prihvata ili reklamira OpenStreetMap, pruža bilo kakvu garanciju, ili + prihvata bilo kakve obaveze. + infringement_title_html: KrÅ¡enje autorskih prava + infringement_1_html: |- + Suradnike OSM-a podsjećamo da nikada ne staju + podatke s izvora zaÅ¡tićenih autorskim pravima (npr. Google karte ili tiskane karte) bez + izričitog dopuÅ¡tenja od strane nositelja. + index: + js_1: Ili koristite internet preglednik koji ne podržava JavaScript, ili ste + onemogućili taj program. + js_2: OpenStreetMap koristi JavaScript za slippy kartu. + permalink: Trajni link + shortlink: Kratki link + createnote: Dodaj biljeÅ¡ku + license: + copyright: Autorska prava pripadaju OpenStreetMap-u i doprinositeljima, pod + otvorenom licencom + remote_failed: Uređivanje nije uspjelo - provjerite da li je JOSM ili Merkaartor + učitan i da je udaljeni pristup omogućen + edit: + not_public: Niste podesili da promjene vam budu javne. + not_public_description_html: Ne možete uređivati kartu dok to ne uradite. Možete + podesiti izmjene da vam budu javne na svojoj %{user_page}. + user_page_link: korisničkoj stranici + anon_edits_link_text: Otkrijte zaÅ¡to je to slučaj. + id_not_configured: Uređivački program "iD" nije konfiguriran + no_iframe_support: VaÅ¡ preglednik ne podržava "iOkvire" (iframes) sa HTML-om, + a oni su potrebni za ovu mogućnost. + export: + title: Izvoz + area_to_export: Područje za izvoz + manually_select: Ručno izaberi drukčije područje + format_to_export: Format za izvoz + osm_xml_data: OpenStreetMap XML podaci + map_image: Slika karte (prikazuje standardni sloj) + embeddable_html: Ugradivi HTML kod + licence: Licenca + too_large: + advice: 'Ako gornji izvoz podataka ne uspije, molimo pokuÅ¡ajte sa nekim od + izvora navedenih ispod:' + body: 'Područje je preveliko da bi se izvezlo kao XML-podaci. Molimo povećajte + prikaz ili izaberite manju povrÅ¡inu. Možete koristiti jedan od izvora navedenih + ispod za masovno preuzimanje:' + key: + table: + entry: + motorway: Autoput + main_road: Glavna cesta + trunk: Brza cesta + primary: Primarna cesta + secondary: Sekundarna cesta + unclassified: Nerazvrstana cesta + track: Staza + bridleway: Konjička staza + cycleway: Biciklistička staza + cycleway_national: Državna biciklistička staza + cycleway_regional: Regionalna biciklistička staza + cycleway_local: Lokalna biciklistička staza + footway: PjeÅ¡ačka staza + rail: Željeznica + subway: Podzemna željeznica + tram: + - Laka željeznica + - tramvaj + cable: + - Kabinska žičara + - sedežnica + runway: + - Aerodromska pista + - rulna staza + apron: + - Parking za avione + - terminal + admin: Administrativna granica + forest: Å uma + wood: Å ume (prirodne, neodržavane) + golf: Golf teren + park: Park + resident: Stambeno područje + common: + - Travnjaci + - livada + retail: Maloprodajno područje + industrial: Industrijsko područje + commercial: Poslovno područje + heathland: VriÅ¡tina + lake: + - Jezero + - rezervoar + farm: Farma + brownfield: GradiliÅ¡te + cemetery: Groblje + allotments: Vrtovi + pitch: Sportski teren + centre: Sportski centar + reserve: Rezervat prirode + military: Vojno područje + school: + - Å kola + - univerzitet + building: Značajna zgrada + station: Željeznička stanica + summit: + - Vrh + - vrh + welcome: + title: DobrodoÅ¡li! + introduction: DobrodoÅ¡li u OpenStreetMap — slobodnu i uredljivu kartu svijeta. + Sada kada ste se prijavili, spremni ste za početak rada. Evo kratkog vodiča + s najvažnijim stvarima koje je potrebno znati. + whats_on_the_map: + title: Å to ova karta sadrži + on_the_map_html: Na OpenStreetMap-u se mapiraju najrazčičitije %{real_and_current} + stvari — milijune objekata i zgrada, cesta i drugih detalja o mjestima. + Možete mapirati sve značajke stvarnog svijeta koje su vam zanimljive. + real_and_current: realne i trenutne + off_the_map_html: Ono Å¡to ovdje %{doesnt} uključuje su prosudbe i procjene, + povijesne (viÅ¡e ne postojeće) značajke, nagađanja i podaci iz izvora zaÅ¡tićenih + autorskim pravima. Nemojte kopirati i crtati s internetskih karata ili karata + iz knjiga i atlasa, osim ako nemate posebno dopuÅ¡tenje. + doesnt: ne + basic_terms: + title: Osnovni pojmovi za mapiranje + editor: uređivač + application: + settings_menu: + account_settings: PodeÅ¡avanja računa + oauth1_settings: OAuth 1 postavke + oauth2_applications: OAuth 2 prilozi + oauth2_authorizations: OAuth 2 ovlaÅ¡tenja + oauth: + authorize: + title: Autorizujte pristup svom računu + request_access_html: IzvrÅ¡nik %{app_name} zahtjeva pristup vaÅ¡em korisničkom + računu, %{user}. Odlučite se da li želite da izvrÅ¡nik ima sljedeće mogućnosti. + Možete odabrati koliko joj pristupa želite dopustiti. + allow_to: 'Dozvoli klijentskoj aplikaciji da:' + allow_read_prefs: vam čita korisnička podeÅ¡avanja. + allow_write_prefs: mijenja vaÅ¡a korisnička podeÅ¡avanja. + allow_write_diary: pravi unose u dnevniku, komentariÅ¡e i dodaje prijatelje. + allow_write_api: mijenja kartu. + allow_read_gpx: vam čita vaÅ¡e privatne GPS tragove. + allow_write_gpx: otprema GPS tragove. + allow_write_notes: mijenja biljeÅ¡ke. + grant_access: Dozvoli pristup + authorize_success: + title: Zahtjev za autorizaciju dopuÅ¡ten + allowed_html: Dali ste izvrÅ¡niku %{app_name} pristup svom računu. + verification: Kod za potvrdu je %{code}. + authorize_failure: + title: Zahtjev za autorizaciju neuspjeÅ¡an + denied: Odbili ste izvrÅ¡niku %{app_name} pristup svom računu. + invalid: Autorizacijski žeton nije važeći. + revoke: + flash: Opozvali ste žeton za %{application} + permissions: + missing: Niste dopustili pristup priloga ovom objektu + scopes: + read_prefs: Korisnička podeÅ¡avanja čitanja + write_prefs: Promjena korisničkih postavki + write_diary: Pravljenje unosa u dnevniku, komentiranje i dodavanje prijatelja + write_api: Promjena karte + read_gpx: Čitanje privatnih GPS tragova + write_gpx: Otpremanje GPS tragova + write_notes: Promjena biljeÅ¡ki + read_email: Čitanje korisničke imejl adrese + skip_authorization: Automatsko odobravanje priloga + oauth_clients: + new: + title: Registriraj novi prilog + edit: + title: Uredi svoj prilog + show: + title: OAuth detalji za %{app_name} + key: 'Ključ potroÅ¡ača:' + secret: 'Tajna potroÅ¡ača:' + users: + new: + title: Prijava + javascripts: + directions: + instructions: + exit_counts: + first: "1." + second: "2." + third: "3." + fourth: "4." + fifth: "5." + sixth: "6." + seventh: "7." + eighth: "8." + ninth: "9." + tenth: "10." + time: Vrijeme + query: + node: Čvor + way: Put + relation: Relacija +... diff --git a/config/locales/skr-arab.yml b/config/locales/skr-arab.yml index ebf024269..4fba080b7 100644 --- a/config/locales/skr-arab.yml +++ b/config/locales/skr-arab.yml @@ -314,6 +314,9 @@ skr-arab: comment: رائے newer_comments: نویں رائے older_comments: پراݨی رائے + doorkeeper: + scopes: + email: آپݨاں ای میل پتہ ݙیکھو errors: contact: contact: رابطہ diff --git a/config/locales/sl.yml b/config/locales/sl.yml index 24f1925ea..f55b5ffef 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -24,8 +24,6 @@ sl: formats: friendly: '%e. %B %Y ob %H:%M' blog: '%e %B %Y' - count: - at_least_pattern: '%{count}+' helpers: file: prompt: Izberi datoteko @@ -627,10 +625,37 @@ sl: newer_comments: NovejÅ¡i komentarji older_comments: StarejÅ¡i komentarji doorkeeper: + errors: + messages: + account_selection_required: Avtorizacijski strežnik zahteva izbiro računa + končnega uporabnika + consent_required: Avtorizacijski strežnik zahteva soglasje končnega uporabnika + interaction_required: Avtorizacijski strežnik zahteva avtentikacijo končnega + uporabnika + login_required: Avtorizacijski strežnik zahteva avtentikacijo končnega uporabnika flash: applications: create: notice: Aplikacija registrirana. + openid_connect: + errors: + messages: + auth_time_from_resource_owner_not_configured: Napaka zaradi manjkajoče konfiguracije + Doorkeeper::OpenidConnect.configure.auth_time_from_resource_owner. + reauthenticate_resource_owner_not_configured: Napaka zaradi manjkajoče konfiguracije + Doorkeeper::OpenidConnect.configure.reauthenticate_resource_owner. + resource_owner_from_access_token_not_configured: Napaka zaradi manjkajoče + konfiguracije Doorkeeper::OpenidConnect.configure.resource_owner_from_access_token. + select_account_for_resource_owner_not_configured: Napaka zaradi manjkajoče + konfiguracije Doorkeeper::OpenidConnect.configure.select_account_for_resource_owner. + subject_not_configured: Generiranje ID-žetona ni uspelo, ker Doorkeeper::OpenidConnect.configure.subject + manjka konfiguracija. + scopes: + address: Ogled vaÅ¡ega fizičnega naslova + email: Ogled vaÅ¡ega e-poÅ¡tnega naslova + openid: Preverite pristnost svojega računa + phone: Ogled vaÅ¡e telefonske Å¡tevilke + profile: Ogled vaÅ¡ih profilnih podatkov errors: contact: contact_url_title: Razloženi so različni kontaktni kanali @@ -2637,6 +2662,7 @@ sl: permissions: missing: Aplikaciji niste dovolili dostopa do te funkcije scopes: + openid: Vstop z uporabo OpenStreetMap read_prefs: Branje uporabniÅ¡kih prilagoditev write_prefs: Spreminjanje uporabniÅ¡kih nastavitev write_diary: Ustvarjajte dnevniÅ¡ke zapise, komentarje in sklepajte prijateljstva diff --git a/config/locales/sv.yml b/config/locales/sv.yml index b6f09dd73..81f99e13a 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -41,6 +41,7 @@ # Author: Sendelbach # Author: Sertion # Author: Shirayuki +# Author: Stefan2255 # Author: Technic2 # Author: The real emj # Author: Tor.klingberg @@ -260,6 +261,7 @@ sv: openid: OpenID google: Google facebook: Facebook + microsoft: Microsoft github: GitHub wikipedia: Wikipedia api: @@ -275,6 +277,7 @@ sv: reopened_at_by_html: Återaktiverades för %{when} av %{user} rss: title: OpenStreetMap-anteckningar + description_all: En lista över rapporterade, kommenterade eller stängda anteckningar description_area: En lista med anteckningar som rapporterats, kommenterats eller avklarats i närheten av ditt omrÃ¥de [(%{min_lat}|%{min_lon}) -- (%{max_lat}|%{max_lon})] description_item: Ett rss-flöde för anteckning %{id} @@ -339,6 +342,10 @@ sv: delete_account: Radera konto... go_public: heading: Offentlig redigering + currently_not_public: För närvarande är dina redigeringar anonyma och andra + kan inte skicka meddelanden till dig eller se din plats. För att visa vad + du redigerade och tillÃ¥ta andra att kontakta dig via webbplatsen, klicka pÃ¥ + knappen nedan. find_out_why: ta reda pÃ¥ varför make_edits_public_button: Gör alla mina redigeringar offentliga update: @@ -365,8 +372,8 @@ sv: one: '%{count} relation' other: '%{count} relationer' part_of_ways: - one: 1 sätt - other: '%{count} sätt' + one: '%{count} sträcka' + other: '%{count} sträckor' download_xml: Ladda ner XML view_history: Visa historik view_details: Visa detaljer @@ -400,7 +407,7 @@ sv: history_title_html: 'Sträckhistorik: %{name}' nodes: Noder nodes_count: - one: 1 nod + one: '%{count} nod' other: '%{count} noder' also_part_of_html: one: del av sträcka %{related_ways} @@ -574,9 +581,9 @@ sv: comment_link: Kommentera detta inlägg reply_link: Skicka ett meddelande till skribenten comment_count: - zero: Inga kommentarer one: '%{count} kommentar' other: '%{count} kommentarer' + no_comments: Inga kommentarer edit_link: Redigera detta inlägg hide_link: Dölj detta inlägg unhide_link: Dölj inte detta inlägg @@ -613,12 +620,38 @@ sv: newer_comments: Nyare kommentarer older_comments: Äldre kommentarer doorkeeper: + errors: + messages: + account_selection_required: Auktoriseringsservern kräver val av slutanvändarkonto + consent_required: Auktoriseringsservern kräver slutanvändarens samtycke + interaction_required: Auktoriseringsservern kräver interaktion med slutanvändaren + login_required: Auktoriseringsservern kräver slutanvändarautentisering flash: applications: create: notice: Applikation registrerad. + openid_connect: + errors: + messages: + auth_time_from_resource_owner_not_configured: Fel pÃ¥ grund av att Doorkeeper::OpenidConnect.configure.auth_time_from_resource_owner + saknar konfiguration. + reauthenticate_resource_owner_not_configured: Fel pÃ¥ grund av att Doorkeeper::OpenidConnect.configure.reauthenticate_resource_owner + saknar konfiguration. + resource_owner_from_access_token_not_configured: Fel pÃ¥ grund av att Doorkeeper::OpenidConnect.configure.resource_owner_from_access_token + saknar konfiguration. + select_account_for_resource_owner_not_configured: Fel pÃ¥ grund av att Doorkeeper::OpenidConnect.configure.auth_time_from_resource_owner + saknar konfiguration. + subject_not_configured: Generering av ID-token misslyckades pÃ¥ grund av + att Doorkeeper::OpenidConnect.configure.subject saknade konfiguration. + scopes: + address: Se din fysiska adress + email: Visa din e-postadress + openid: Autentisera ditt konto + phone: Visa ditt telefonnummer + profile: Visa din profilinformation errors: contact: + contact_url_title: Olika kontaktkanaler förklaras contact: kontakta forbidden: title: Förbjudet @@ -1025,7 +1058,7 @@ sv: fitness_station: Gym garden: TrädgÃ¥rd golf_course: Golfbana - horse_riding: Ridning + horse_riding: Ridcenter ice_rink: Isrink marina: Marina miniature_golf: Minigolf @@ -1450,9 +1483,9 @@ sv: show: title: '%{status} Ärende nr %{issue_id}' reports: - zero: Inga rapporter - one: 1 rapport + one: '%{count} rapport' other: '%{count} rapporter' + no_reports: Inga rapporter report_created_at: Rapporterades först %{datetime} last_resolved_at: Löstes senast %{datetime} last_updated_at: Uppdaterades senast %{datetime} av %{displayname} @@ -1846,6 +1879,8 @@ sv: no home location: Du har inte angivit nÃ¥gon hemposition. update home location on click: Uppdatera hemposition när jag klickar pÃ¥ kartan? show: Visa + delete: Radera + undelete: Ångra radera update: success: Profil uppdaterad. failure: Kunde inte uppdatera profilen. @@ -1899,6 +1934,7 @@ sv: support: supporten shared: markdown_help: + heading_html: Analyserad med %{kramdown_link} headings: Rubriker heading: Rubrik subheading: Underrubrik @@ -1917,6 +1953,7 @@ sv: site: about: next: Nästa + heading_html: '%{copyright}OpenStreetMap %{br} bidragsgivare' used_by_html: '%{name} förser tusentals webbsidor, mobilappar, appar och fysiska apparater med kartdata' lede_text: OpenStreetMap är byggt av en gemenskap av kartografer som bidrar @@ -1927,12 +1964,35 @@ sv: flygbilder, GPS-enheter och lÃ¥gteknologiska fältkartor för att kontrollera att OSM är korrekt och uppdaterad. community_driven_title: Gemenskapsdriven + community_driven_1_html: |- + OpenStreetMaps community är mÃ¥ngsidigt, passionerat och växer varje dag. + VÃ¥ra bidragsgivare inkluderar entusiaster som kartlägger, GIS-proffs, ingenjörer + som driver OSM-servrarna, humanitärer som kartlägger katastrofdrabbade omrÃ¥den, + och mÃ¥nga fler. + För att lära dig mer om communityn, se webbplatserna %{osm_blog_link}, + %, %{user_diaries_link}, %{community_blogs_link} och + %{osm_foundation_link}. community_driven_osm_blog: OpenStreetMaps blogg + community_driven_user_diaries: användardagböcker community_driven_community_blogs: gemenskapsbloggar + community_driven_osm_foundation: OSM-Stiftelsen open_data_title: Öppna data + open_data_open_data: öppen data + open_data_copyright_license: Upphovsrätt och licenssida legal_title: Juridik + legal_1_1_html: |- + Den här webbplatsen och mÃ¥nga andra relaterade tjänster drivs formellt av + %{openstreetmap_foundation_link} (OSMF) + pÃ¥ uppdrag av gemenskapen. Användning av alla OSMF-drivna tjänster omfattas + av vÃ¥ra %{terms_of_use_link}, %{aup_link} och vÃ¥r %{privacy_policy_link}. + legal_1_1_openstreetmap_foundation: OpenStreetMap-stiftelsen legal_1_1_terms_of_use: Användarvillkor + legal_1_1_aup: Riktlinjer för tillÃ¥ten användning legal_1_1_privacy_policy: Integritetspolicy + legal_2_1_contact_the_osmf: kontakta OSMF + legal_2_2_html: OpenStreetMap, förstoringsglas-logotypen och State of the Map + är %{registered_trademarks_link}. + legal_2_2_registered_trademarks: varmärken registrerade av OSMF partners_title: Partners copyright: foreign: @@ -1949,32 +2009,92 @@ sv: mapping_link: börja kartlägga legal_babble: title_html: Upphovsrätt och licens + introduction_1_html: |- + OpenStreetMap%{registered_trademark_link} är %{open_data}, licensierad under + %{odc_odbl_link} (ODbL) av %{osm_foundation_link} (OSMF). + introduction_1_open_data: öppna data + introduction_1_osm_foundation: OpenStreetMap-stiftelsen + introduction_2_legal_code: juridiska texten + introduction_3_html: VÃ¥r dokumentation är licensierad under licensen %{creative_commons_link} + (CC BY-SA 2.0). credit_title_html: Hur du anger OpenStreetMap som källa credit_1_html: 'När du använder OpenStreetMap-data, mÃ¥ste du göra dessa tvÃ¥ saker:' + credit_2_2: Gör klart att uppgifterna är tillgängliga under Öppen Database + Licensen. + credit_3_html: |- + För upphovsrättsmeddelandet har vi olika krav pÃ¥ hur detta ska visas, beroende pÃ¥ hur du använder vÃ¥r data. Exempelvis gäller olika + regler för hur upphovsrättsmeddelandet ska visas beroende pÃ¥ om du har + skapat en bläddringsbar karta, en utskriven karta eller en statisk bild. Fullständig information om + -kraven finns i %{attribution_guidelines_link}. + credit_4_1_html: "För att tydliggöra att data är tillgänglig under Öppen\nDatabase + Licensen kan du länka till %{this_copyright_page_link}.\nAlternativt, och + som ett krav om du distribuerar OSM i en\ndataform kan du namn och länk + direkt till licensen/licenserna. I media\ndär länkar inte är möjliga (t.ex. + tryckta verk) föreslÃ¥r vi att du\ndirigerar dina läsare till openstreetmap.org + (kanske genom att utöka\n'OpenStreetMap' till denna fullständiga adress) + och till opendatacommons.org. \nI det här exemplet visas upphovsrättsinformation + i kartans hörn." + credit_4_1_this_copyright_page: denna upphovsrättssida attribution_example: alt: Exempel pÃ¥ hur en webbsida kan ange OpenStreetMap som källa title: Exempel pÃ¥ attribuering. more_title_html: Mer information + more_1_1_osmf_licence_page: OSMF-licenssida + more_2_1_html: |- + Även om OpenStreetMap är öppen data kan vi inte tillhandahÃ¥lla ett + gratis kart-API för tredje part. + Se vÃ¥ra %{api_usage_policy_link}, %{tile_usage_policy_link} och %{nominatim_usage_policy_link}. contributors_title_html: VÃ¥ra bidragsgivare contributors_intro_html: |- VÃ¥ra bidragsgivare är tusentals individer. Vi inkluderar ocksÃ¥ öppna data frÃ¥n nationella karttjänster, bland annat frÃ¥n: + contributors_at_credit_html: |- + %{austria}: InnehÃ¥ller data frÃ¥n %{stadt_wien_link} (under %{cc_by_link}), %{land_vorarlberg_link} + och Tyrolen (under %{cc_by_at_with_amendments_link}). contributors_at_austria: Österrike + contributors_at_stadt_wien: Staden Wien contributors_at_cc_by: CC BY + contributors_at_land_vorarlberg: Förbundsland Vorarlberg contributors_au_australia: Australien contributors_ca_canada: Kanada contributors_fi_finland: Finland + contributors_fi_nlsfi_license: NLSFI-licens + contributors_fr_credit_html: |- + %{france}: InnehÃ¥ller data hämtade frÃ¥n + Direction Générale des Impôts. contributors_fr_france: Frankrike + contributors_nl_credit_html: '%{netherlands}: InnehÃ¥ller © AND data, + 2007 (%{and_link}).' contributors_nl_netherlands: Nederländerna + contributors_nz_credit_html: |- + %{new_zealand}: InnehÃ¥ller data hämtade frÃ¥n %{linz_data_service_link} + och licensierade för Ã¥teranvändning under %{cc_by_link}. contributors_nz_new_zealand: Nya Zeeland + contributors_nz_linz_data_service: LINZ Data Tjänst contributors_nz_cc_by: CC BY 4.0 + contributors_rs_credit_html: |- + %{serbia}: InnehÃ¥ller data frÃ¥n %{rgz_link} och %{open_data_portal} + (offentlig information om Serbien), 2018. + contributors_rs_serbia: Serbien contributors_si_slovenia: Slovenien + contributors_si_mkgp: Ministeriet för Jordbruk, Skogsbruk och Livsmedel + contributors_es_credit_html: |- + %{spain}: InnehÃ¥ller data hämtade frÃ¥n + Spanish National Geographic Institute (%{ign_link}) och + National Cartographic System (%{scne_link}) + licensierad för Ã¥teranvändning under %{cc_by_link}. contributors_es_spain: Spanien contributors_es_cc_by: CC BY 4.0 + contributors_za_credit_html: '%{south_africa}: InnehÃ¥ller data frÃ¥n %{ngi_link}, + statens upphovsrätt förbehÃ¥lls.' contributors_za_south_africa: Sydafrika contributors_gb_united_kingdom: Storbritannien + contributors_2_html: |- + För ytterligare information om dessa och andra källor som har använts + för att förbättra OpenStreetMap, se %{contributors_page_link} pÃ¥ OpenStreetMap Wiki. + contributors_2_contributors_page: Bidragsgivaresidan contributors_footer_2_html: "Införandet av uppgifter i OpenStreetMap innebär inte att den ursprungliga \ndatagivaren stödjer OpenStreetMap, \nger nÃ¥gon som helst garanti eller \ntar pÃ¥ sig nÃ¥got ansvar." @@ -1983,6 +2103,18 @@ sv: Bidragsgivare till OSM pÃ¥minns om att aldrig lägga till data frÃ¥n upphovsrättsskyddade källor (t.ex. Google Maps och tryckta kartor) utan uttryckligt tillstÃ¥nd frÃ¥n upphovsrättsinnehavarna. + infringement_2_1_html: |- + Om du anser att upphovsrättsskyddat material har lagts till pÃ¥ ett olämpligt sätt + i OpenStreetMap-databasen eller den här webbplatsen, vänligen se vÃ¥r %{takedown_procedure_link} eller registrera direkt pÃ¥ vÃ¥r + %{online_filing_page_link}. + infringement_2_1_takedown_procedure: borttagningsförfarande + infringement_2_1_online_filing_page: on-line registreringssida + trademarks_title: Varumärken + trademarks_1_1_html: |- + OpenStreetMap, förstoringsglasets logotyp och State of the Map är registrerade varumärken som tillhör + OpenStreetMap Foundation. Om du har frÃ¥gor om din användning av märkena, se vÃ¥r + %{trademark_policy_link}. + trademarks_1_1_trademark_policy: Varumärkespolicy index: js_1: Du använder antingen en webbläsare som inte stöder JavaScript, eller sÃ¥ har du inaktiverat JavaScript. @@ -2013,6 +2145,7 @@ sv: map_image: Kartbild (visar vanliga lager) embeddable_html: Inbäddad HTML licence: Licens + licence_details_html: OpenStreetMap-data licensieras under %{odbl_link} (ODbL). too_large: advice: 'Om ovanstÃ¥ende export misslyckas, vänligen överväg att använda en av de källor som anges nedan:' @@ -2053,8 +2186,18 @@ sv: explanation_html: Om du har hittat ett problem med vÃ¥r kartdata, till exempel att en väg eller din adress saknas, är den bästa lösningen att gÃ¥ med i OpenStreetMap-gemenskapen och själv lägga till eller reparera datan. + add_a_note: + instructions_1_html: |- + Klicka bara pÃ¥ %{note_icon} eller samma ikon pÃ¥ kartvisningen. + Detta lägger till en markör pÃ¥ kartan som du kan flytta + genom att dra. Lägg till ditt meddelande och klicka sedan pÃ¥ spara, sÃ¥ kommer andra kartläggare att undersöka det. other_concerns: title: Andra farhÃ¥gor + concerns_html: |- + Om du är betänkligheter kring hur vÃ¥r data används eller om innehÃ¥llet, kontakta vÃ¥r + %{copyright_link} för mer juridisk information, eller kontakta lämplig %{working_group_link}. + copyright: upphovsrättssida + working_group: OSMF arbetsgrupp help: title: FÃ¥ hjälp introduction: OpenStreetMap har flera resurser som hjälper dig att lära dig @@ -2097,10 +2240,19 @@ sv: removed: Din standardredigerare pÃ¥ OpenStreetMat är Potlatch. PÃ¥ grund av att Adobe Flash Player har dragits tillbaka, kan inte Potlatch längre användas i webbläsaren. + desktop_application_html: Du kan fortfarande använda Potlatch av %{download_link}. + download: ladda ner skrivbordsapplikationen för Mac och Windows + id_editor_html: Eller sÃ¥ kan du ange din standardredigerare till iD, vilket + kör din webbläsare som Potlatch tidigare gjorde. %{change_preferences_link}. change_preferences: Ändra dina inställningar här any_questions: title: NÃ¥gra frÃ¥gor? + paragraph_1_html: |- + OpenStreetMap har flera resurser för att lära sig mer om projektet, ställa och svara pÃ¥ + frÃ¥gor och för att gemensamt diskutera och dokumentera kartläggningsämnen. + %{help_link}. Tillhör du en i en organisation som har planerar för OpenStreetMap? %{welcome_mat_link}. get_help_here: Skaffa hjälp här + welcome_mat: Kolla in välkomstmattan sidebar: search_results: Sökresultat close: Stäng @@ -2192,14 +2344,38 @@ sv: saker. Här är en snabb genomgÃ¥ng av de viktigaste sakerna du behöver veta. whats_on_the_map: title: Vad finns pÃ¥ kartan + on_the_map_html: |- + OpenStreetMap är en plats för att kartlägga saker som är bÃ¥de %{real_and_current} - + det inkluderar miljontals byggnader, vägar och andra detaljer om platser. Du kan kartlägga + vilka verkliga landmärken som är intressanta för dig. + real_and_current: konkret och aktuellt + off_the_map_html: "Vad det %{doesnt} innehÃ¥ller är \nkänsliga data som betyg, + historiska eller\nhypotetiska egenskaper och data frÃ¥n upphovsrättsskyddade + källor. Om du inte har särskilt tillstÃ¥nd, kopiera inte frÃ¥n online- eller + papperskartor." + doesnt: inte basic_terms: title: Grundläggande termer för kartering paragraph_1: OpenStreetMap har en del egen jargong. Här är nÃ¥gra begrepp som kan vara bra att förstÃ¥. + an_editor_html: En %{editor} är ett program eller en webbplats som du kan + använda för att redigera kartan. + a_node_html: En %{node} är en punkt pÃ¥ kartan, som en enda restaurang eller + ett träd. + a_way_html: En %{way} är en linje eller ett omrÃ¥de, som en väg, bäck, sjö + eller byggnad. + a_tag_html: En %{tag} är bit data om en nod eller väg, som en restaurangs + namn eller en vägs hastighetsgräns. editor: redigerare node: nod + way: sträcka rules: title: Regler! + para_1_html: |- + OpenStreetMap har fÃ¥ formella regler men vi förväntar oss att alla deltagare samarbetar + med, och kommunicerar med, gemenskapen. Om du funderar pÃ¥ + nÃ¥gra andra aktiviteter än att redigera för hand, läs och följ riktlinjerna pÃ¥ + %{imports_link} och %{automated_edits_link}. imports: Importer automated_edits: Automatiserade redigeringar start_mapping: Börja kartlägga @@ -2214,8 +2390,23 @@ sv: the_map: kartan communities: title: Gemenskaper + lede_text: "Människor frÃ¥n hela världen bidrar till eller använder OpenStreetMap.\nMedan + mÃ¥nga deltar som individer har andra bildat gemenskaper.\nDessa grupper finns + i en mängd olika storlekar och representerar geografier frÃ¥n smÃ¥ städer till + stora regioner med flera länder. \nDe kan ocksÃ¥ vara formella eller informella." + local_chapters: + title: Lokalavdelningar + about_text: |- + Lokala avdelningar är grupper pÃ¥ lands- eller regionnivÃ¥ som har tagit det formella steget att + etablera icke-vinstdrivande juridiska personer. De representerar omrÃ¥dets karta och kartläggare när de har att göra med lokala myndigheter, näringsliv och media. De har ocksÃ¥ bildat en anslutning + till OpenStreetMap Foundation (OSMF), vilket ger dem en länk till det juridiska och upphovsrättsliga styrande organet. + list_text: 'Följande gemenskaper är formellt etablerade som lokala avdelningar:' other_groups: title: Andra grupper + other_groups_html: |- + Det finns inget behov av att formellt bilda en grupp i samma utsträckning som de lokala avdelningarna. + MÃ¥nga grupper existerar faktiskt mycket framgÃ¥ngsrikt som en informell sammankomst av människor eller som en gemenskapsgrupp. Vem som helst kan ställa in eller gÃ¥ med i dessa. Läs mer pÃ¥ %{communities_wiki_link}. + communities_wiki: Gemenskapswikisida traces: visibility: private: Privat (spÃ¥ret delas anonymt och utan ordning) @@ -2298,6 +2489,8 @@ sv: description: Bläddra bland nyligen uppladdade GPS-spÃ¥r tagged_with: ' taggad med %{tags}' empty_title: Inget här ännu + empty_upload_html: '%{upload_link} eller läs mer om GPS-spÃ¥rning pÃ¥ %{wiki_link}.' + upload_new: Ladda upp ett nytt spÃ¥r wiki_page: wikisida upload_trace: Ladda upp GPS-spÃ¥r all_traces: Alla spÃ¥r @@ -2370,6 +2563,7 @@ sv: permissions: missing: Du har inte gett applikationen Ã¥tkomst till den här faciliteten scopes: + openid: Logga in med OpenStreetMap read_prefs: Läs användaralternativ write_prefs: Ändra användaralternativ write_diary: Skapa dagboksinlägg, kommentarer och hitta vänner. @@ -2474,8 +2668,16 @@ sv: title: Registrera no_auto_account_create: Tyvärr kan vi för närvarande inte kan skapa ett konto Ã¥t dig automatiskt. + please_contact_support_html: Kontakta %{support_link} för att ordna att ett + konto ska skapas - vi kommer att försöka ta itu med begäran sÃ¥ fort som möjligt. + support: support about: header: Fri och redigerbar + paragraph_1: Till skillnad frÃ¥n andra kartor är OpenStreetMap helt skapad + av människor som du, och det är gratis för alla att fixa, uppdatera, ladda + ner och använda. + paragraph_2: Registrera dig för att börja bidra. Vi skickar ett e-postmeddelande + för att bekräfta ditt konto. display name description: Ditt offentligt visade användarnamn. Du kan ändra detta senare i alternativ. external auth: 'Tredjepartsautentisering:' @@ -2485,7 +2687,10 @@ sv: continue: Registrera terms accepted: Tack för att du accepterat de nya villkoren för bidrag till kartan! + email_confirmation_help_html: Din adress visas inte offentligt, se vÃ¥r %{privacy_policy_link} + för mer information. privacy_policy: integritetspolicy + privacy_policy_title: OSMFs integritetspolicy inklusive avsnitt om e-postadresser terms: title: Villkor för deltagare heading: Villkor för deltagare @@ -2502,6 +2707,10 @@ sv: consider_pd: Utöver ovan nämnda avtal, anser jag att mina bidrag är inom allmän egendom. consider_pd_why: vad är det här? + guidance_info_html: 'Information som hjälper dig att förstÃ¥ dessa termer: en + %{readable_summary_link} och nÃ¥gra %{informal_translations_link}' + readable_summary: mänskligt läsbar sammanfattning + informal_translations: informella översättningar continue: |2- Fortsätt @@ -2545,6 +2754,7 @@ sv: remove as friend: Ta bort vän add as friend: Lägg till vän mapper since: 'Karterar sedan:' + uid: 'Användar id:' ct status: 'Användarvillkor:' ct undecided: Ej bestämda ct declined: Avböjda @@ -2569,6 +2779,7 @@ sv: activate_user: Aktivera denna användare confirm_user: Bekräfta denna användare unconfirm_user: Häv denna användares bekräftelse + unsuspend_user: Avaktivera denna användare hide_user: Dölj denna användare unhide_user: Sluta dölja användare delete_user: Radera denna användare @@ -2593,6 +2804,8 @@ sv: support: support automatically_suspended: Tyvärr, ditt konto har stängts av automatiskt pÃ¥ grund av misstänkt aktivitet. + contact_support_html: Detta beslut kommer att granskas av en administratör inom + kort, eller sÃ¥ kan du kontakta %{support_link} om du vill diskutera detta. auth_failure: connection_failed: Anslutning till autentiseringsleverantören misslyckades invalid_credentials: Ogiltiga autentiseringsuppgifter @@ -2735,7 +2948,9 @@ sv: index: title: Anteckningar skapade eller kommenterade av %{user} heading: '%{user}s anteckningar' - subheading_html: Anteckningar skapade eller kommenterade av %{user} + subheading_html: Anteckningar %{submitted} eller %{commented} av %{user} + subheading_submitted: skickade + subheading_commented: kommenterade no_notes: Inga anteckningar id: Id creator: Skapare @@ -2769,6 +2984,8 @@ sv: tas bort kan du %{link}. other_problems_resolve: För alla andra problem med anteckningen, lös det själv med en kommentar. + other_problems_resolved: För alla andra problem, är en lösning tillräcklig. + disappear_date_html: Denna lösta anteckning försvinner frÃ¥n kartan om %{disappear_in}. new: title: Ny anteckning intro: Upptäckt ett misstag eller nÃ¥got som saknas? LÃ¥t andra karterare veta @@ -2835,8 +3052,10 @@ sv: openstreetmap_contributors: OpenStreetMap-bidragsgivare make_a_donation: Gör en donation website_and_api_terms: Webbplats och API-villkor + osm_france: OpenStreetMap Frankrike andy_allan: Andy Allan memomaps: MeMoMaps + hotosm_name: Humanitärt OpenStreetMap-team site: edit_tooltip: Redigera kartan edit_disabled_tooltip: Zooma in för att redigera kartan @@ -2864,6 +3083,9 @@ sv: graphhopper_bicycle: Cykel (GraphHopper) graphhopper_car: Bil (GraphHopper) graphhopper_foot: GÃ¥ende (GraphHopper) + fossgis_valhalla_bicycle: Cykel (Valhalla) + fossgis_valhalla_car: Bil (Valhalla) + fossgis_valhalla_foot: Till fots (Valhalla) descend: Fallande directions: Vägbeskrivning distance: AvstÃ¥nd diff --git a/config/locales/tr.yml b/config/locales/tr.yml index 301b5d8cd..637e0b9ff 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -627,10 +627,37 @@ tr: newer_comments: Daha Yeni Yorumlar older_comments: Daha Eski Yorumlar doorkeeper: + errors: + messages: + account_selection_required: Yetkilendirme sunucusu son kullanıcı hesabı seçimini + gerektiriyor + consent_required: Yetkilendirme sunucusu son kullanıcının onayını gerektiriyor + interaction_required: Yetkilendirme sunucusu son kullanıcı etkileşimini gerektiriyor + login_required: Yetkilendirme sunucusu son kullanıcı kimlik doğrulamasını + gerektiriyor flash: applications: create: notice: Uygulama Kayıtlı. + openid_connect: + errors: + messages: + auth_time_from_resource_owner_not_configured: Doorkeeper::OpenidConnect.configure.auth_time_from_resource_owner + eksik yapılandırmasından kaynaklanan hata. + reauthenticate_resource_owner_not_configured: Doorkeeper::OpenidConnect.configure.reauthenticate_resource_owner + eksik yapılandırmasından kaynaklanan hata. + resource_owner_from_access_token_not_configured: Doorkeeper::OpenidConnect.configure.resource_owner_from_access_token + eksik yapılandırmasından kaynaklanan hata. + select_account_for_resource_owner_not_configured: Doorkeeper::OpenidConnect.configure.select_account_for_resource_owner + eksik yapılandırmasından kaynaklanan hata. + subject_not_configured: Kimlik Belirteci oluşturma, Doorkeeper::OpenidConnect.configure.subject + eksik yapılandırması nedeniyle başarısız oldu. + scopes: + address: Fiziksel adresinizi görüntüleyin + email: E-posta adresinizi görüntüleyin + openid: Hesabınızı doğrulayın + phone: Telefon numaranızı görüntüleyin + profile: Profil bilgilerinizi görüntüleyin errors: contact: contact_url_title: Çeşitli iletişim kanalları açıklandı @@ -2616,6 +2643,7 @@ tr: permissions: missing: Uygulamanın bu özelliğe erişimine izin vermediniz scopes: + openid: OpenStreetMap'i kullanarak oturum açın read_prefs: Kullanıcı tercihlerini oku write_prefs: Kullanıcı tercihlerini değiştir write_diary: Günlük girdiler, yorumlar oluştur ve arkadaşlar edin @@ -3094,6 +3122,7 @@ tr: cyclosm: CyclOSM cycle_map: Bisiklet Haritası transport_map: Ulaşım Haritası + tracestracktop_topo: Tracestrack Topo hot: Ä°nsancıl opnvkarte: ÖPNVKarte layers: @@ -3113,6 +3142,8 @@ tr: andy_allan: Andy Allan opnvkarte_credit: Döşemeler, %{memomaps_link} katkılarıyla memomaps: MeMo Haritaları + tracestrack_credit: Döşemeler, %{tracestrack_link} katkılarıyla + tracestrack: Tracestrack hotosm_credit: '%{osm_france_link} tarafından barındırılan %{hotosm_link} döşeme tarzı' hotosm_name: Ä°nsani OpenStreetMap Ekibi diff --git a/config/locales/uk.yml b/config/locales/uk.yml index 326c4a77b..1047854f3 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -40,6 +40,7 @@ # Author: Shirayuki # Author: SteveR # Author: TomH +# Author: Vil4ckc # Author: Vlad5250 # Author: Ypryima # Author: Yurkoy @@ -51,9 +52,7 @@ uk: time: formats: - friendly: '%e %B %Y о %H:%M' - count: - at_least_pattern: '%{count}+' + friendly: '%e %B %Y в %H:%M' helpers: file: prompt: Обрати файл @@ -95,7 +94,7 @@ uk: diary_comment: Коментарі щоденника diary_entry: Запис щоденника friend: Друг - issue: Звернення + issue: Звіт language: Мова message: Повідомлення node: Точка @@ -663,10 +662,36 @@ uk: newer_comments: Нові коментарі older_comments: Старіші коментарі doorkeeper: + errors: + messages: + account_selection_required: Сервер авторизації вимагає вибору облікового запису + кінцевого користувача + consent_required: Сервер авторизації вимагає згоди кінцевого користувача + interaction_required: Сервер авторизації вимагає взаємодії з кінцевим користувачем + login_required: Сервер авторизації вимагає автентифікації кінцевого користувача flash: applications: create: notice: Запит зареєстровано. + openid_connect: + errors: + messages: + auth_time_from_resource_owner_not_configured: Помилка через відсутність + конфігурації Doorkeeper::OpenidConnect.configure.auth_time_from_resource_owner. + reauthenticate_resource_owner_not_configured: Помилка через відсутність + конфігурації Doorkeeper::OpenidConnect.configure.reauthenticate_resource_owner. + resource_owner_from_access_token_not_configured: Помилка через відсутність + конфігурації Doorkeeper::OpenidConnect.configure.resource_owner_from_access_token. + select_account_for_resource_owner_not_configured: Помилка через відсутність + конфігурації Doorkeeper::OpenidConnect.configure.select_account_for_resource_owner. + subject_not_configured: Не вдалося створити маркер ідентифікатора через + відсутність конфігурації Doorkeeper::OpenidConnect.configure.subject. + scopes: + address: Перегляньте свою фізичну адресу + email: Перегляньте адресу електронної пошти + openid: Автентифікуйте свій обліковий запис + phone: Перегляньте свій номер телефону + profile: Перегляньте інформацію зі свого профілю errors: contact: contact_url_title: Тут ви можете знайти інформацію про відповідні канали спілкування @@ -2662,6 +2687,7 @@ uk: permissions: missing: Ви не дозволили програмі отримати доступ до цієї функції scopes: + openid: Вхід за допомогою OpenStreetMap read_prefs: Отримувати налаштування write_prefs: Змінювати налаштування write_diary: Створювати записи у щоденнику, коментарі та надсилати запити на @@ -2832,7 +2858,7 @@ uk: heading: Учасника %{user} не існує. body: Вибачте, учасника %{user} не існує. Будь ласка, перевірте правильність вводу. Можливо, ви перейшли з помилкового посилання. - deleted: вилучено + deleted: '''Профіль вилучено''' show: my diary: Мій щоденник my edits: Мої редагування diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index dca30d8e8..5506dbd9c 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -63,6 +63,7 @@ # Author: Wong128cn # Author: Wuqianye # Author: Xiaomingyan +# Author: Xyb # Author: Yfdyh000 # Author: Zazzzz # Author: Zfshuo @@ -87,8 +88,6 @@ zh-CN: formats: friendly: '%Yå¹´%B%e日 %H:%M' blog: '%Yå¹´%B%e日' - count: - at_least_pattern: '%{count}+' helpers: file: prompt: 选择文件 @@ -164,7 +163,7 @@ zh-CN: callback_url: 回调 URL support_url: 支持 URL allow_read_prefs: 读取其用户设置 - allow_write_prefs: 修改其用户首选项 + allow_write_prefs: 修改其用户偏好 allow_write_diary: 创建日记文章、评论并结交朋友。 allow_write_api: 修改地图 allow_read_gpx: 读取他们的私人GPS轨迹 @@ -288,7 +287,7 @@ zh-CN: auth: providers: none: 无 - openid: 开放式身份验证 + openid: 开放式身份验证(OpenID) google: 谷歌 facebook: 脸书 microsoft: 微软 @@ -310,7 +309,7 @@ zh-CN: description_all: 已报告、评论或关闭的注记列表 description_area: 在您的区域 [(%{min_lat}|%{min_lon}) -- (%{max_lat}|%{max_lon})] 报告、评论或关闭的注记列表 - description_item: 注记 %{id} 的简易信息聚合馈送 + description_item: 注记 %{id} 的简易信息聚合馈送(RSS) opened: 新注记(靠近 %{place}) commented: 新评论(靠近 %{place}) closed: 关闭的注记(靠近 %{place}) @@ -326,7 +325,7 @@ zh-CN: delete_account: 删除账户 delete_introduction: 您可以通过下方的按钮删除您的OpenStreetMap账户。请注意如下细节: delete_profile: 您的个人简介,包括您的头像、介绍和家的位置,都将被移除。 - delete_display_name: 您显示的用户名将被移除,并且可以被其他账户复用。 + delete_display_name: 您的用户名将被移除,并且可以被其他账户重复使用。 retain_caveats: 然而,部分关于您的信息仍将被保留在OpenStreetMap里,即使在您的账户被删除后: retain_edits: 您对地图数据库的编辑,如果有,将被保留。 retain_traces: 您上传的轨迹,如果有,将被保留。 @@ -368,7 +367,7 @@ zh-CN: not_reversible: 此操作无法撤消,所有新用户现在默认都是公开的。 make_edits_public_button: 公开我所有的编辑 update: - success_confirm_needed: 成功更新用户信息。 查看您的邮箱以确认您的新邮箱地址。 + success_confirm_needed: 成功更新用户信息。查看您邮箱中的通知以确认您的新邮箱地址。 success: 成功更新用户信息。 destroy: success: 账户已删除。 @@ -406,8 +405,8 @@ zh-CN: relation: 关系 (%{count}) relation_paginated: 关系 (%{x}-%{y},共 %{count}) comment: 评论(%{count}) - hidden_comment_by_html: 隐藏来自 %{user} %{time_ago} 的评论 - comment_by_html: 来自 %{user} %{time_ago} 的评论 + hidden_comment_by_html: '%{user} 于 %{time_ago} 的隐藏评论' + comment_by_html: '%{user} 于 %{time_ago} 的评论' changesetxml: 变更集 XML osmchangexml: osmChange XML feed: @@ -415,7 +414,7 @@ zh-CN: title_comment: 变更集 %{id} - %{comment} join_discussion: 登录以加入讨论 discussion: 讨论 - still_open: 变更集依然有效——一旦变更集关闭将打开讨论。 + still_open: 变更集依然开放——一旦变更集关闭讨论将开放。 node: title_html: 节点:%{name} history_title_html: 节点历史:%{name} @@ -423,8 +422,7 @@ zh-CN: title_html: 路径:%{name} history_title_html: 路径历史:%{name} nodes: 节点 - nodes_count: - other: '%{count}个节点' + nodes_count: '%{count}个节点' also_part_of_html: one: 属于路径 %{related_ways} other: 属于路径 %{related_ways} @@ -463,14 +461,14 @@ zh-CN: changeset: 变更集 note: 注记 redacted: - redaction: 编辑 %{id} - message_html: 该 %{type} 版本 %{version} 无法显示,因为其已被编辑。详情请见%{redaction_link}。 + redaction: 删改 %{id} + message_html: 该%{type}版本 %{version} 无法显示,因为其已被删改。详情请见%{redaction_link}。 type: node: 节点 way: 路径 relation: 关系 start_rjs: - feature_warning: 正在载入 %{num_features} 个要素,这可能使您的浏览器变慢或失去响应。您确定想要显示该数据吗? + feature_warning: 正在加载 %{num_features} 个要素,这可能会使您的浏览器变慢或无响应。确定要显示此数据吗? load_data: 加载数据 loading: 加载中… tag_details: @@ -515,7 +513,7 @@ zh-CN: empty_user: 无该用户的变更集。 no_more: 未找到更多变更集。 no_more_area: 该区域内没有更多变更集。 - no_more_user: 无该用户的更多修改集合。 + no_more_user: 该用户无更多变更集。 load_more: 加载更多 timeout: sorry: 抱歉,您所请求的变更集列表检索时间过长。 @@ -529,7 +527,7 @@ zh-CN: title_all: OpenStreetMap 变更集讨论 title_particular: 'OpenStreetMap 变更集 #%{changeset_id} 讨论' timeout: - sorry: 抱歉,您所请求的变更集评论时间区间过长。 + sorry: 抱歉,您请求的变更集评论列表检索时间过长。 dashboards: contact: km away: '%{count}千米外' @@ -580,10 +578,10 @@ zh-CN: login: 登录 no_such_entry: title: 没有这篇日记文章 - heading: 没有文章ID为:%{id} + heading: 没有ID为 %{id} 的文章 body: 对不起,没有 id 为 %{id} 的日记文章或评论。请检查您的拼写,或是您可能点击了错误的链接。 diary_entry: - posted_by_html: '%{link_user}在%{created}用%{language_link}发布' + posted_by_html: '%{link_user} 于 %{created} 以 %{language_link} 发布' updated_at_html: 最后一次更新于%{updated}。 comment_link: 评论该文章 reply_link: 向作者发送消息 @@ -591,13 +589,13 @@ zh-CN: one: '%{count} 个评论' other: '%{count} 个评论' no_comments: 没有评论 - edit_link: 编辑该文章 - hide_link: 隐藏该文章 - unhide_link: 取消隐藏此项目 + edit_link: 编辑此文章 + hide_link: 隐藏此文章 + unhide_link: 取消隐藏此文章 confirm: 确认 report: 举报此文章 diary_comment: - comment_from_html: '%{link_user}在%{comment_created_at}的评论' + comment_from_html: '%{link_user} 于 %{comment_created_at} 的评论' hide_link: 隐藏此评论 unhide_link: 显示此评论 confirm: 确认 @@ -611,8 +609,8 @@ zh-CN: title: '%{user} 的 OpenStreetMap 日记文章' description: '%{user} 最近的 OpenStreetMap 日记文章' language: - title: '%{language_name} OpenStreetMap 日记文章' - description: 最近的 %{language_name} OpenStreetMap 用户日记文章 + title: 以 %{language_name} 书写的 OpenStreetMap 日记文章 + description: 最近的以 %{language_name} 书写的 OpenStreetMap 用户日记文章 all: title: OpenStreetMap 日记文章 description: 最近的 OpenStreetMap 用户日记文章 @@ -627,10 +625,35 @@ zh-CN: newer_comments: 较新评论 older_comments: 较旧评论 doorkeeper: + errors: + messages: + account_selection_required: 授权服务器需要最终用户帐户选择 + consent_required: 授权服务器需要最终用户同意 + interaction_required: 授权服务器需要最终用户交互 + login_required: 授权服务器需要最终用户身份验证 flash: applications: create: notice: 应用程序已注册。 + openid_connect: + errors: + messages: + auth_time_from_resource_owner_not_configured: 由于 Doorkeeper::OpenidConnect.configure.auth_time_from_resource_owner + 缺少配置而失败。 + reauthenticate_resource_owner_not_configured: 由于 Doorkeeper::OpenidConnect.configure.reauthenticate_resource_owner + 缺少配置而失败。 + resource_owner_from_access_token_not_configured: 由于 Doorkeeper::OpenidConnect.configure.resource_owner_from_access_token + 缺少配置而失败。 + select_account_for_resource_owner_not_configured: 由于 Doorkeeper::OpenidConnect.configure.select_account_for_resource_owner + 缺少配置而失败。 + subject_not_configured: 由于 Doorkeeper::OpenidConnect.configure.subject 缺少配置,ID + 令牌生成失败。 + scopes: + address: 查看您的实际地址 + email: 查看您的电子邮件地址 + openid: 验证您的帐户 + phone: 查看您的电话号码 + profile: 查看您的个人资料信息 errors: contact: contact_url: http://wiki.openstreetmap.org/wiki/Contact @@ -646,7 +669,7 @@ zh-CN: description: OpenStreetMap 服务器遇到意外情况,无法满足请求(HTTP 500) not_found: title: 文件未找到 - description: 在 OpenStreetMap 服务器上找不到该名称的文件/目录/API 操作(HTTP 404) + description: 在 OpenStreetMap 服务器上找不到该名称的文件、目录或API 操作(HTTP 404) friendships: make_friend: heading: 添加 %{user} 为朋友? @@ -677,7 +700,7 @@ zh-CN: pylon: 桥塔 station: 索道站 t-bar: T字形电梯 - "yes": 航空 + "yes": 空中通道 aeroway: aerodrome: 飞机场 airstrip: 飞机跑道 @@ -689,7 +712,7 @@ zh-CN: navigationaid: 航空导航辅助 parking_position: 停车位置 runway: 飞机跑道 - taxilane: 滑行道 + taxilane: 机坪滑行道 taxiway: 滑行道 terminal: 机场航站楼 windsock: 风向袋 @@ -710,7 +733,7 @@ zh-CN: boat_rental: 租船处 brothel: 妓院 bureau_de_change: 外汇兑换点 - bus_station: 公共汽车枢纽 + bus_station: 公交场站 cafe: 咖啡厅 car_rental: 汽车租赁 car_sharing: 汽车共享 @@ -749,8 +772,8 @@ zh-CN: language_school: 语言学校 library: 图书馆 loading_dock: 装卸码头 - love_hotel: 爱情旅馆 - marketplace: 商场 + love_hotel: 情侣旅馆 + marketplace: 市场 mobile_money_agent: 移动货币代理 monastery: 修道院 money_transfer: 汇款处 @@ -797,7 +820,7 @@ zh-CN: waste_basket: 垃圾桶 waste_disposal: 废物处理 waste_dump_site: 垃圾倾倒场 - watering_place: 动物饮水处 + watering_place: 饮水处 water_point: 引水点 weighbridge: 地磅 "yes": 便利设施 @@ -824,15 +847,15 @@ zh-CN: cabin: 小屋 chapel: 教堂 church: 教堂建筑 - civic: 公共建筑 + civic: 市政服务建筑 college: 学院建筑 commercial: 商业建筑物 construction: 在建建筑 detached: 独立式住宅 dormitory: 宿舍 duplex: 双拼住宅 - farm: 农场屋 - farm_auxiliary: 辅助农场建筑 + farm: 农舍 + farm_auxiliary: 辅助农舍 garage: 车库 garages: 车库 greenhouse: 温室 @@ -852,7 +875,7 @@ zh-CN: roof: 屋顶 ruins: 损毁建筑 school: 学校建筑物 - semidetached_house: 双拼住宅 + semidetached_house: 半独立式住宅 service: 服务建筑 shed: 棚 stable: 马厩 @@ -1710,7 +1733,7 @@ zh-CN: new_messages: '%{count} 条新消息' old_messages: '%{count} 条旧消息' from: 发件人 - subject: 主题 + subject: 标题 date: 日期 no_messages_yet_html: 您还没有消息,何不联系一些%{people_mapping_nearby_link}? people_mapping_nearby: 在附近绘制地图的人 @@ -1738,7 +1761,7 @@ zh-CN: one: 您有 %{count} 条已发送信息 other: 您有 %{count} 条已发送信息 to: 收件人 - subject: 主题 + subject: 标题 date: 日期 no_sent_messages_html: 您尚未发送信息。何不联系一些%{people_mapping_nearby_link}? people_mapping_nearby: 在附近绘制地图的人 @@ -2418,6 +2441,7 @@ zh-CN: permissions: missing: 您未给予应用访问此装置的权限 scopes: + openid: 使用 OpenStreetMap 登录 read_prefs: 阅读用户首选项 write_prefs: 修改用户首选项 write_diary: 创建日记、评论和交朋友 @@ -2991,7 +3015,7 @@ zh-CN: heading: 编辑修订 title: 编辑修订 index: - empty: 无可显示的修订。 + empty: 无删改可显示。 heading: 修订列表 title: 修订列表 new: diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 6ffdfedbb..b6f631b5a 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -593,10 +593,34 @@ zh-TW: newer_comments: 較新的評論 older_comments: 較舊的評論 doorkeeper: + errors: + messages: + account_selection_required: 授權伺服器需要終端使用者選擇 + consent_required: 授權伺服器需要終端使用者同意 + interaction_required: 授權伺服器需要終端使用者互動 + login_required: 授權伺服器需要終端使用者身份驗證 flash: applications: create: notice: 應用程式已註冊。 + openid_connect: + errors: + messages: + auth_time_from_resource_owner_not_configured: 因 Doorkeeper::OpenidConnect.configure.auth_time_from_resource_owner + 缺少設置導致失敗。 + reauthenticate_resource_owner_not_configured: 因 Doorkeeper::OpenidConnect.configure.reauthenticate_resource_owner + 缺少設置導致失敗。 + resource_owner_from_access_token_not_configured: 因 Doorkeeper::OpenidConnect.configure.resource_owner_from_access_token + 缺少設置導致失敗。 + select_account_for_resource_owner_not_configured: 因 Doorkeeper::OpenidConnect.configure.select_account_for_resource_owner 缺少設置導致失敗。 + subject_not_configured: 因 Doorkeeper::OpenidConnect.configure.subject 缺少配置,產生 + ID 權杖失敗。 + scopes: + address: 查看您的實際地址 + email: 查看您的電子郵件位址 + openid: 驗證您的帳號 + phone: 查看您的電話號碼 + profile: 查看您的個人資訊 errors: contact: contact_url_title: 各種聯絡管道說明 @@ -2396,6 +2420,7 @@ zh-TW: permissions: missing: 您尚未允許應用程式來訪問此設施 scopes: + openid: 使用 OpenStreetMap 登入 read_prefs: 讀取使用者偏好設定 write_prefs: 修改使用者偏好設定 write_diary: 建立日記、評論和加入好友 diff --git a/config/routes.rb b/config/routes.rb index 404e7b0a3..43c43a793 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -5,6 +5,8 @@ OpenStreetMap::Application.routes.draw do :authorized_applications => "oauth2_authorized_applications" end + use_doorkeeper_openid_connect :scope => "oauth2" if Settings.key?(:doorkeeper_signing_key) + # API namespace :api do get "capabilities" => "capabilities#show" # Deprecated, remove when 0.6 support is removed diff --git a/config/settings.yml b/config/settings.yml index 214f8a284..cffd3bd31 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -154,3 +154,8 @@ smtp_password: null #signup_ip_max_burst: #signup_email_per_day: #signup_email_max_burst: +# Private key for signing id_tokens +#doorkeeper_signing_key: | +# -----BEGIN PRIVATE KEY----- +# ... +# -----END PRIVATE KEY----- diff --git a/config/settings/test.yml b/config/settings/test.yml index 5f0025925..0cfa74cd7 100644 --- a/config/settings/test.yml +++ b/config/settings/test.yml @@ -22,3 +22,33 @@ trace_icon_storage: "test" # Lower some rate limits for testing max_changeset_comments_per_hour: 30 moderator_changeset_comments_per_hour: 60 +# Private key for signing id_tokens +doorkeeper_signing_key: | + -----BEGIN PRIVATE KEY----- + MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDA4pSRHIicerJQ + BvIy9lGJ6ZQA7SAGVM8QeNMBaQftS+ROMY+6CFCJ0kiwb9oDdtFNyo3gpgmlULMC + q0C96r0UllKnTSkHSntkKM0wy3TX0pa8QBaJbbcOXU13xu5cR7ffvtn2kQX8RZc9 + eZtE/bSybNBDSiS4mbP31cSQ71EYsbfD3UiWOpOTbc6Xlw9kCkUjwXk36Jnim7gF + 1kFjD3Vq94ij4OVNxcFp+btrfhq2tsiXa9IPBlt1xTetHwj5HrxseDu2qNQNgPxY + ivFAA3t4BuIuou1HjAdzfqp7Ylsr2b7qx+w+Y9TqhH6AcKd0i1qxh6bYnJezH9JU + BjlJvJMhAgMBAAECggEAAID2/gldiqRqunkc1n48iJ2CufKPRAT3r3rT+OvNzf8F + 6csJAuWKVE8ndR0trBb6L/eooYloJWA4aiLes0BIMyQQs4go5HB7hwTw7ZYycsKF + i0NS676iHO2odKN2iZN/CvIO1AKH9KM35GdgvPA5XG1FU/pUbeOqNn+pQ5mkaWnt + kt+ndBpJQDPSS7nTY8g2BCh97SJSbxEPAccAqNLSvKQED4QVygC63jYZNPDxkJWI + guzNn4wv1AfM0DU4W5fI0UtNSxcWSsefWBJTOKO/uQr/XJglxVh6uKof1dnBZiJD + KU6/+bR1cXoKQ05HAcEcf/mtjJGwnze41p1EI22gYQKBgQDB+VZJwvxlME1MgEGJ + WFPPKiQspKjS0kgbfBw7Iny+mYM6YLpQyF0NFNRloALW2rHH2QLNSerHMlytZUAd + 1SluQZ4We6P3hLDi2J3p37lkIdBXhjJi8gdoEfQ1YVcCbPGbR2ZVwYms7BP3yiQY + ZLcHLUKPKG6hOZztY1gBYqoKqQKBgQD+kBtR8krdJHPEU3m+d/6NWlGk4KZgCFx5 + ouN/aHtxE6Ge+mUwbrJun/oVrFjbX7ySYTYYb6SdKUrchyKfJL4Z89WHGwrFTV1/ + 6J2ShXmoeUeic1TS4btcnFmZyCXlADk1eyHZm9wtkwd5e2lBfdRxzErKC42lWdaQ + rreP2nZHuQKBgQCiNbVgB6vznrn1kIe9qFylsJMBtkzryCe+vEILfaKd7VhdOEh2 + h6ew6ctYlL/rFoV3H1YFgJvSKp5v7mz4xapY5oyiNpD+yzr06LrdulaZkuFcX//A + 2K8y61iyTw1pHNvKw6Gjcy6DqgRkwej/cTHR0ZqIhwJE1x4RMnOE7RJPyQKBgQCM + SLYFjtSa0b/KbYYl5NKu6xsbFYIaYgE0NwPP7rA4PG1QwwSIkDhcpmSXFQdSvYuZ + z2CUTtIUmfDbXs1BjmoEu07syYZB/MSN/I75c/z7TvqfF5ejLyqlerQV/yqC7ICa + bGTXGwFXTDNOSyhSIxm0LLT6ayt/9+Y6jU4zRFzyYQKBgGiScevkv/XNz9MXswJ+ + 2bEIJNIJn0wIeuopifcDQrOTeCK+037t1AQ3lxMXisJABwG1jfw7WTjF3zz4dSUX + cK1+/2V+OkM/0nXjxPwPj7LiOediUyZNUn48r29uGOL1S83PSUdyST207CP6mZjc + K8aJmnGsVEAcWPzbpNh14q/c + -----END PRIVATE KEY----- diff --git a/config/wiki_pages.yml b/config/wiki_pages.yml index cfab9da87..c7c32cda9 100644 --- a/config/wiki_pages.yml +++ b/config/wiki_pages.yml @@ -46,6 +46,7 @@ ca: contact:facebook: Ca:Key:contact:facebook created_by: Ca:Key:created by facebook: Ca:Key:facebook + foot: Ca:Key:foot lgbtq: Ca:Key:lgbtq name: Ca:Key:name name:ca: Ca:Key:name:ca @@ -782,7 +783,6 @@ cs: shoulder: Cs:Key:shoulder sides: Cs:Key:sides sidewalk: Cs:Key:sidewalk - site_type: Cs:Key:site type size: Cs:Key:size ski: Cs:Key:ski smokefree: Cs:Key:smokefree @@ -1058,6 +1058,7 @@ cs: amenity=parking: Cs:Tag:amenity=parking amenity=parking_entrance: Cs:Tag:amenity=parking entrance amenity=parking_space: Cs:Tag:amenity=parking space + amenity=payment_terminal: Cs:Tag:amenity=payment terminal amenity=pharmacy: Cs:Tag:amenity=pharmacy amenity=photo_booth: Cs:Tag:amenity=photo booth amenity=place_of_worship: Cs:Tag:amenity=place of worship @@ -2086,7 +2087,6 @@ cs: shop=hearing_aids: Cs:Tag:shop=hearing aids shop=herbalist: Cs:Tag:shop=herbalist shop=hifi: Cs:Tag:shop=hifi - shop=household: Cs:Tag:shop=household shop=houseware: Cs:Tag:shop=houseware shop=hunting: Cs:Tag:shop=hunting shop=ice_cream: Cs:Tag:shop=ice cream @@ -2361,9 +2361,10 @@ da: key: access: Da:Key:access amenity: Da:Key:amenity + cycleway: Da:Key:cycleway diet:vegan: Da:Key:diet:vegan fee: Da:Key:fee - lane_markings: DA:Key:lane markings + lane_markings: Da:Key:lane markings lit: Da:Key:lit man_made: Da:Key:man made maxheight: Da:Key:maxheight @@ -2383,7 +2384,11 @@ da: highway=track: Da:Tag:highway=track highway=unclassified: Da:Tag:highway=unclassified landuse=cemetery: Da:Tag:landuse=cemetery + landuse=forest: Da:Tag:landuse=forest leisure=dog_park: Da:Tag:leisure=dog park + natural=grassland: Da:Tag:natural=grassland + natural=heath: Da:Tag:natural=heath + natural=wood: Da:Tag:natural=wood noexit=yes: Da:Tag:noexit=yes place=hamlet: Da:Tag:place=hamlet place=town: Da:Tag:place=town @@ -2393,6 +2398,7 @@ da: shop=charity: Da:Tag:shop=charity de: key: + 4wd_only: DE:Key:4wd only AlpinRes_ID: DE:Key:AlpinRes ID Animal: DE:Key:Animal Annotations: DE:Key:Annotations @@ -2446,10 +2452,12 @@ de: attraction: DE:Key:attraction atv:repair: DE:Key:atv:repair authentication: DE:Key:authentication + authentication:*: DE:Key:authentication:* automated: DE:Key:automated automatic_door: DE:Key:automatic door backcountry: DE:Key:backcountry backrest: DE:Key:backrest + backup_generator: DE:Key:backup generator backward: DE:Key:backward bakehouse: DE:Key:bakehouse barrier: DE:Key:barrier @@ -2530,7 +2538,9 @@ de: collection_times: DE:Key:collection times colour: DE:Key:colour comment: DE:Key:comment + communication:*: DE:Key:communication:* communication:amateur_radio:repeater: DE:Key:communication:amateur radio:repeater + communication:amateur_radio:sota: DE:Key:communication:amateur radio:sota communication:bos: DE:Key:communication:bos communication:microwave: DE:Key:communication:microwave communication:mobile_phone: DE:Key:communication:mobile phone @@ -2541,6 +2551,7 @@ de: company: DE:Key:company conditional: DE:Key:conditional construction: DE:Key:construction + construction:*: DE:Key:construction:* contact: DE:Key:contact 'contact:': 'DE:Key:contact:' contact:*: DE:Key:contact:* @@ -2664,6 +2675,7 @@ de: fax: DE:Key:fax fee: DE:Key:fee fence_type: DE:Key:fence type + fenced: DE:Key:fenced ferry: DE:Key:ferry ferry:cable: DE:Key:ferry:cable fetish: DE:Key:fetish @@ -2696,11 +2708,17 @@ de: gauge: DE:Key:gauge generator:method: DE:Key:generator:method generator:output: DE:Key:generator:output + generator:output:*: DE:Key:generator:output:* generator:output:biogas: DE:Key:generator:output:biogas + generator:output:cold_air: DE:Key:generator:output:cold air + generator:output:cold_water: DE:Key:generator:output:cold water + generator:output:compressed_air: DE:Key:generator:output:compressed air generator:output:electricity: DE:Key:generator:output:electricity generator:output:heat: DE:Key:generator:output:heat + generator:output:hot_air: DE:Key:generator:output:hot air generator:output:hot_water: DE:Key:generator:output:hot water generator:output:steam: DE:Key:generator:output:steam + generator:output:vacuum: DE:Key:generator:output:vacuum generator:place: DE:Key:generator:place generator:plant: DE:Key:generator:plant generator:source: DE:Key:generator:source @@ -2710,6 +2728,7 @@ de: geological: DE:Key:geological golf: DE:Key:golf golf:course: DE:Key:golf:course + golf:par: DE:Key:golf:par goods: DE:Key:goods government: DE:Key:government grades: DE:Key:grades @@ -2756,6 +2775,7 @@ de: intermittent: DE:Key:intermittent internet_access: DE:Key:internet access internet_access:fee: DE:Key:internet access:fee + internet_access:ssid: DE:Key:internet access:ssid interval: DE:Key:interval is_in: DE:Key:is in is_in:continent: DE:Key:is in:continent @@ -2936,6 +2956,7 @@ de: output passing_places: DE:Key:passing places payment: DE:Key:payment + payment:*: DE:Key:payment:* permanent_camping: DE:Key:permanent camping phone: DE:Key:phone pilgrimage: DE:Key:pilgrimage @@ -2946,9 +2967,25 @@ de: plant: DE:Key:plant plant:method: DE:Key:plant:method plant:output: DE:Key:plant:output + plant:output:*: DE:Key:plant:output:* + plant:output:biogas: DE:Key:plant:output:biogas + plant:output:cold_air: DE:Key:plant:output:cold air + plant:output:cold_water: DE:Key:plant:output:cold water + plant:output:compressed_air: DE:Key:plant:output:compressed air plant:output:electricity: DE:Key:plant:output:electricity + plant:output:hot_air: DE:Key:plant:output:hot air plant:output:hot_water: DE:Key:plant:output:hot water + plant:output:steam: DE:Key:plant:output:steam + plant:output:vacuum: DE:Key:plant:output:vacuum plant:source: DE:Key:plant:source + platform:width: DE:Key:platform:width + platform_lift: DE:Key:platform lift + platform_lift:maxlength:physical: DE:Key:platform lift:maxlength:physical + platform_lift:maxweight: DE:Key:platform lift:maxweight + platform_lift:maxwidth:physical: DE:Key:platform lift:maxwidth:physical + platform_lift:portable: DE:Key:platform lift:portable + platform_lift:seat: DE:Key:platform lift:seat + platform_lift:supervised: DE:Key:platform lift:supervised playground: DE:Key:playground 'playground:': 'DE:Key:playground:' playground:*: DE:Key:playground:* @@ -2964,6 +3001,7 @@ de: produce: DE:Key:produce product: DE:Key:product proposed: DE:Key:proposed + proposed:*: DE:Key:proposed:* protect_class: DE:Key:protect class protected: DE:Key:protected protection_title: DE:Key:protection title @@ -2985,6 +3023,11 @@ de: railway:tilting: DE:Key:railway:tilting railway:track_ref: DE:Key:railway:track ref ramp: DE:Key:ramp + ramp:portable: DE:Key:ramp:portable + ramp:portable:length: DE:Key:ramp:portable:length + ramp:portable:maxweight: DE:Key:ramp:portable:maxweight + ramp:portable:maxwidth:physical: DE:Key:ramp:portable:maxwidth:physical + ramp:portable:supervised: DE:Key:ramp:portable:supervised 'razed:': 'DE:Key:razed:' razed:*: DE:Key:razed:* rcn_ref: DE:Key:rcn ref @@ -2992,6 +3035,7 @@ de: recycling_type: DE:Key:recycling type ref: DE:Key:ref ref:IFOPT: DE:Key:ref:IFOPT + ref:WDPA: DE:Key:ref:WDPA ref:bufa: DE:Key:ref:bufa ref:fgkz: DE:Key:ref:fgkz ref:mobil-parken.de: DE:Key:ref:mobil-parken.de @@ -3041,8 +3085,10 @@ de: service:bicycle:rental: DE:Key:service:bicycle:rental service:bicycle:repair: DE:Key:service:bicycle:repair service:vehicle: DE:Key:service:vehicle + 'service:vehicle:': 'DE:Key:service:vehicle:' service:vehicle:*: DE:Key:service:vehicle:* service_times: DE:Key:service times + service_times:wheelchair: DE:Key:service times:wheelchair settlement_type: DE:Key:settlement type shelter: DE:Key:shelter shelter_type: DE:Key:shelter type @@ -3059,6 +3105,7 @@ de: social_facility: DE:Key:social facility social_facility:for: DE:Key:social facility:for socket: DE:Key:socket + socket:*: DE:Key:socket:* source: DE:Key:source source:maxspeed: DE:Key:source:maxspeed species: DE:Key:species @@ -3263,6 +3310,7 @@ de: amenity=bicycle_parking: DE:Tag:amenity=bicycle parking amenity=bicycle_rental: DE:Tag:amenity=bicycle rental amenity=bicycle_repair_station: DE:Tag:amenity=bicycle repair station + amenity=bicycle_wash: DE:Tag:amenity=bicycle wash amenity=biergarten: DE:Tag:amenity=biergarten amenity=boat_rental: DE:Tag:amenity=boat rental amenity=boat_storage: DE:Tag:amenity=boat storage @@ -3417,6 +3465,7 @@ de: archaeological_site=roman_villa: DE:Tag:archaeological site=roman villa archaeological_site=settlement: DE:Tag:archaeological site=settlement archaeological_site=tumulus: DE:Tag:archaeological site=tumulus + artwork_type=architecture: DE:Tag:artwork type=architecture artwork_type=bust: DE:Tag:artwork type=bust artwork_type=mural: DE:Tag:artwork type=mural artwork_type=sculpture: DE:Tag:artwork type=sculpture @@ -3486,6 +3535,7 @@ de: bicycle_road=yes: DE:Tag:bicycle road=yes biosphärenwirt=yes: DE:Tag:biosphärenwirt=yes boundary=administrative: DE:Tag:boundary=administrative + boundary=low_emission_zone: DE:Tag:boundary=low emission zone boundary=marker: DE:Tag:boundary=marker boundary=national_park: DE:Tag:boundary=national park boundary=postal_code: DE:Tag:boundary=postal code @@ -3621,12 +3671,15 @@ de: communication=line: DE:Tag:communication=line community_centre=community_hall: DE:Tag:community centre=community hall community_centre=cultural_centre: DE:Tag:community centre=cultural centre + community_centre=family_centre: DE:Tag:community centre=family centre + community_centre=parish_hall: DE:Tag:community centre=parish hall community_centre=village_hall: DE:Tag:community centre=village hall community_centre=youth_centre: DE:Tag:community centre=youth centre company=construction: DE:Tag:company=construction company=industrial_climbing: DE:Tag:company=industrial climbing company=logistics: DE:Tag:company=logistics company=transport: DE:Tag:company=transport + construction=minor: DE:Tag:construction=minor construction=yes: DE:Tag:construction=yes consulate=consulate_general: DE:Tag:consulate=consulate general consulate=honorary_consul: DE:Tag:consulate=honorary consul @@ -3762,6 +3815,7 @@ de: defensive=keep: DE:Tag:defensive=keep defensive_works=bastion: DE:Tag:defensive works=bastion defensive_works=battery: DE:Tag:defensive works=battery + dennert_fir_tree=yes: DE:Tag:dennert fir tree=yes denotation=natural_monument: DE:Tag:denotation=natural monument diplomatic=ambassadors_residence: DE:Tag:diplomatic=ambassadors residence diplomatic=consulate: DE:Tag:diplomatic=consulate @@ -3790,6 +3844,7 @@ de: emergency=aed: DE:Tag:emergency=aed emergency=ambulance_station: DE:Tag:emergency=ambulance station emergency=assembly_point: DE:Tag:emergency=assembly point + emergency=control_centre: DE:Tag:emergency=control centre emergency=defibrillator: DE:Tag:emergency=defibrillator emergency=designated: DE:Tag:emergency=designated emergency=drinking_water: DE:Tag:emergency=drinking water @@ -3829,6 +3884,7 @@ de: entrance=yes: DE:Tag:entrance=yes fast_food=cafeteria: DE:Tag:fast food=cafeteria fence_type=railing: DE:Tag:fence type=railing + fire_class=*: DE:Tag:fire class=* foot=designated: DE:Tag:foot=designated foot=yes: DE:Tag:foot=yes footway=crossing: DE:Tag:footway=crossing @@ -3854,6 +3910,7 @@ de: generator:method=water-pumped-storage: DE:Tag:generator:method=water-pumped-storage generator:method=water-storage: DE:Tag:generator:method=water-storage generator:method=wind_turbine: DE:Tag:generator:method=wind turbine + generator:source=battery: DE:Tag:generator:source=battery generator:source=biofuel: DE:Tag:generator:source=biofuel generator:source=biogas: DE:Tag:generator:source=biogas generator:source=biomass: DE:Tag:generator:source=biomass @@ -3889,6 +3946,7 @@ de: geological=moraine: DE:Tag:geological=moraine geological=outcrop: DE:Tag:geological=outcrop geological=palaeontological_site: DE:Tag:geological=palaeontological site + geological=rock_glacier: DE:Tag:geological=rock glacier geological=volcanic_caldera_rim: DE:Tag:geological=volcanic caldera rim geological=volcanic_lava_field: DE:Tag:geological=volcanic lava field geological=volcanic_vent: DE:Tag:geological=volcanic vent @@ -3937,6 +3995,7 @@ de: hazard=slippery: DE:Tag:hazard=slippery hazmat:water=permissive: DE:Tag:hazmat:water=permissive healthcare:speciality=allergology: DE:Tag:healthcare:speciality=allergology + healthcare:speciality=anaesthetics: DE:Tag:healthcare:speciality=anaesthetics healthcare:speciality=dermatology: DE:Tag:healthcare:speciality=dermatology healthcare:speciality=general: DE:Tag:healthcare:speciality=general healthcare:speciality=gynaecology: DE:Tag:healthcare:speciality=gynaecology @@ -3947,6 +4006,7 @@ de: healthcare:speciality=paediatric_surgery: DE:Tag:healthcare:speciality=paediatric surgery healthcare:speciality=paediatrics: DE:Tag:healthcare:speciality=paediatrics + healthcare:speciality=psychiatry: DE:Tag:healthcare:speciality=psychiatry healthcare:speciality=vaccination: DE:Tag:healthcare:speciality=vaccination healthcare=alternative: DE:Tag:healthcare=alternative healthcare=audiologist: DE:Tag:healthcare=audiologist @@ -3965,6 +4025,7 @@ de: healthcare=midwife: DE:Tag:healthcare=midwife healthcare=occupational_therapist: DE:Tag:healthcare=occupational therapist healthcare=physiotherapist: DE:Tag:healthcare=physiotherapist + healthcare=podiatrist: DE:Tag:healthcare=podiatrist healthcare=rehabilitation: DE:Tag:healthcare=rehabilitation healthcare=sample_collection: DE:Tag:healthcare=sample collection healthcare=speech_therapist: DE:Tag:healthcare=speech therapist @@ -4220,6 +4281,7 @@ de: line=bay: DE:Tag:line=bay line=busbar: DE:Tag:line=busbar location:transition=yes: DE:Tag:location:transition=yes + location=roof: DE:Tag:location=roof location=underground: DE:Tag:location=underground lottery=yes: DE:Tag:lottery=yes man_made=MDF: DE:Tag:man made=MDF @@ -4234,7 +4296,9 @@ de: man_made=cairn: DE:Tag:man made=cairn man_made=carpet_hanger: DE:Tag:man made=carpet hanger man_made=cellar_entrance: DE:Tag:man made=cellar entrance + man_made=charge_point: DE:Tag:man made=charge point man_made=chimney: DE:Tag:man made=chimney + man_made=clarifier: DE:Tag:man made=clarifier man_made=clearcut: DE:Tag:man made=clearcut man_made=column: DE:Tag:man made=column man_made=communications_tower: DE:Tag:man made=communications tower @@ -4274,6 +4338,7 @@ de: man_made=obelisk: DE:Tag:man made=obelisk man_made=observatory: DE:Tag:man made=observatory man_made=offshore_platform: DE:Tag:man made=offshore platform + man_made=oxidation_ditch: DE:Tag:man made=oxidation ditch man_made=petroleum_well: DE:Tag:man made=petroleum well man_made=pier: DE:Tag:man made=pier man_made=pipeline: DE:Tag:man made=pipeline @@ -4441,6 +4506,7 @@ de: office=charity: DE:Tag:office=charity office=company: DE:Tag:office=company office=consulting: DE:Tag:office=consulting + office=cooperative: DE:Tag:office=cooperative office=diplomatic: DE:Tag:office=diplomatic office=educational_institution: DE:Tag:office=educational institution office=employment_agency: DE:Tag:office=employment agency @@ -4494,7 +4560,7 @@ de: operator=stadtmobil: DE:Tag:operator=stadtmobil operator=teilAuto: DE:Tag:operator=teilAuto orchard=meadow_orchard: DE:Tag:orchard=meadow orchard - park_ride: DE:Tag:park ride + park_ride=hov: DE:Tag:park ride=hov parking:lane:hgv=on_street: DE:Tag:parking:lane:hgv=on street parking=lane: DE:Tag:parking=lane parking=multi-storey: DE:Tag:parking=multi-storey @@ -4503,9 +4569,11 @@ de: parking=underground: DE:Tag:parking=underground pipeline=marker: DE:Tag:pipeline=marker pipeline=substation: DE:Tag:pipeline=substation + pipeline=surge_tank: DE:Tag:pipeline=surge tank pipeline=valve: DE:Tag:pipeline=valve piste:type=downhill: DE:Tag:piste:type=downhill piste:type=nordic: DE:Tag:piste:type=nordic + piste:type=sled: DE:Tag:piste:type=sled place=archipelago: DE:Tag:place=archipelago place=city: DE:Tag:place=city place=city_block: DE:Tag:place=city block @@ -4528,6 +4596,11 @@ de: place=town: DE:Tag:place=town place=village: DE:Tag:place=village placement=transition: DE:Tag:placement=transition + plant:method=anaerobic_digestion: DE:Tag:plant:method=anaerobic digestion + plant:method=gasification: DE:Tag:plant:method=gasification + plant:method=run-of-the-river: DE:Tag:plant:method=run-of-the-river + plant:method=thermal: DE:Tag:plant:method=thermal + plant:method=water-pumped-storage: DE:Tag:plant:method=water-pumped-storage plant:method=water-storage: DE:Tag:plant:method=water-storage plant:source=battery: DE:Tag:plant:source=battery plant:source=biomass: DE:Tag:plant:source=biomass @@ -4745,6 +4818,7 @@ de: shop=equestrian: DE:Tag:shop=equestrian shop=erotic: DE:Tag:shop=erotic shop=fabric: DE:Tag:shop=fabric + shop=fan: DE:Tag:shop=fan shop=farm: DE:Tag:shop=farm shop=fashion: DE:Tag:shop=fashion shop=fashion_accessories: DE:Tag:shop=fashion accessories @@ -4814,6 +4888,7 @@ de: shop=photo: DE:Tag:shop=photo shop=plant_hire: DE:Tag:shop=plant hire shop=pottery: DE:Tag:shop=pottery + shop=power_tools: DE:Tag:shop=power tools shop=radiotechnics: DE:Tag:shop=radiotechnics shop=religion: DE:Tag:shop=religion shop=repair: DE:Tag:shop=repair @@ -5003,6 +5078,7 @@ de: tomb=pyramid: DE:Tag:tomb=pyramid tomb=rock-cut: DE:Tag:tomb=rock-cut tomb=sarcophagus: DE:Tag:tomb=sarcophagus + tomb=table: DE:Tag:tomb=table tomb=tumulus: DE:Tag:tomb=tumulus tomb=vault: DE:Tag:tomb=vault tomb=war_grave: DE:Tag:tomb=war grave @@ -5159,6 +5235,7 @@ de: transformer=distribution: DE:Tag:transformer=distribution tunnel=building_passage: DE:Tag:tunnel=building passage tunnel=culvert: DE:Tag:tunnel=culvert + type=associatedStreet: DE:Tag:type=associatedStreet type=destination_sign: DE:Tag:type=destination sign type=enforcement: DE:Tag:type=enforcement type=waterway: DE:Tag:type=waterway @@ -5170,8 +5247,8 @@ de: usage=tailrace: DE:Tag:usage=tailrace usage=tourism: DE:Tag:usage=tourism usage=transmission: DE:Tag:usage=transmission + utility=power: DE:Tag:utility=power vehicle=no: DE:Tag:vehicle=no - vending: DE:Tag:vending vending=SIM_cards: DE:Tag:vending=SIM cards vending=admission_tickets: DE:Tag:vending=admission tickets vending=animal_feed: DE:Tag:vending=animal feed @@ -5208,6 +5285,7 @@ de: vending=ice_cubes: DE:Tag:vending=ice cubes vending=ink_cartridges: DE:Tag:vending=ink cartridges vending=laundry_detergent: DE:Tag:vending=laundry detergent + vending=lottery: DE:Tag:vending=lottery vending=milk: DE:Tag:vending=milk vending=newspapers: DE:Tag:vending=newspapers vending=parcel_mail_in: DE:Tag:vending=parcel mail in @@ -5435,6 +5513,7 @@ en: active_traffic_management: Key:active traffic management actuator: Key:actuator addr: Key:addr + 'addr:': 'Key:addr:' addr:*: Key:addr:* addr:TW:dataset: Key:addr:TW:dataset addr:alternatenumber: Key:addr:alternatenumber @@ -5464,6 +5543,7 @@ en: addr:flats: Key:addr:flats addr:floor: Key:addr:floor addr:full: Key:addr:full + addr:ghanapostgps: Key:addr:ghanapostgps addr:hamlet: Key:addr:hamlet addr:hamlet:de: Key:addr:hamlet:de addr:hamlet:it: Key:addr:hamlet:it @@ -5473,6 +5553,7 @@ en: addr:housenumber:ar: Key:addr:housenumber:ar addr:inclusion: Key:addr:inclusion addr:interpolation: Key:addr:interpolation + addr:khasra: Key:addr:khasra addr:milestone: Key:addr:milestone addr:neighborhood: Key:addr:neighborhood addr:neighbourhood: Key:addr:neighbourhood @@ -5491,7 +5572,9 @@ en: addr:province:en: Key:addr:province:en addr:province:ur: Key:addr:province:ur addr:provisionalnumber: Key:addr:provisionalnumber + addr:quarter: Key:addr:quarter addr:region: Key:addr:region + addr:room: Key:addr:room addr:sector: Key:addr:sector addr:source: Key:addr:source addr:staircase: Key:addr:staircase @@ -5511,9 +5594,12 @@ en: addr:subdistrict:ar: Key:addr:subdistrict:ar addr:subdistrict:en: Key:addr:subdistrict:en addr:suburb: Key:addr:suburb + addr:subward: Key:addr:subward addr:town: Key:addr:town addr:type: Key:addr:type addr:unit: Key:addr:unit + addr:village: Key:addr:village + addr:ward: Key:addr:ward address: Key:address admin_level: Key:admin level admin_title: Key:admin title @@ -5614,6 +5700,7 @@ en: atv:repair: Key:atv:repair atv:sales: Key:atv:sales authentication: Key:authentication + authentication:*: Key:authentication:* authentication:app: Key:authentication:app authentication:disc: Key:authentication:disc authentication:membership_card: Key:authentication:membership card @@ -5658,20 +5745,24 @@ en: bell_tower: Key:bell tower bench: Key:bench bench:type: Key:bench:type + bettundbike: Key:bettundbike bicycle: Key:bicycle bicycle:backward: Key:bicycle:backward bicycle:both: Key:bicycle:both bicycle:class:mtb: Key:bicycle:class:mtb bicycle:class:mtb:technical: Key:bicycle:class:mtb:technical bicycle:conditional: Key:bicycle:conditional + bicycle:description: Key:bicycle:description bicycle:designated:type: Key:bicycle:designated:type bicycle:forward: Key:bicycle:forward bicycle:left: Key:bicycle:left bicycle:oneway: Key:bicycle:oneway + bicycle:physical: Key:bicycle:physical bicycle:right: Key:bicycle:right bicycle:type: Key:bicycle:type bicycle_bypass: Key:bicycle bypass bicycle_parking: Key:bicycle parking + bike_friend: Key:bike friend bike_ride: Key:bike ride bin: Key:bin biosphärenwirt: Key:biosphärenwirt @@ -5683,6 +5774,7 @@ en: bollard: Key:bollard booking: Key:booking books: Key:books + boot_scraper: Key:boot scraper booth: Key:booth border_type: Key:border type bot: Key:bot @@ -5742,6 +5834,7 @@ en: building:condition: Key:building:condition building:cullis:height: Key:building:cullis:height building:design: Key:building:design + building:earthquake-resistant: Key:building:earthquake-resistant building:facade:colour: Key:building:facade:colour building:fireproof: Key:building:fireproof building:flats: Key:building:flats @@ -5758,6 +5851,7 @@ en: building:part: Key:building:part building:place: Key:building:place building:prefabricated: Key:building:prefabricated + building:quake-resistant: Key:building:quake-resistant building:roof:colour: Key:building:roof:colour building:ruian:type: Key:building:ruian:type building:soft_storey: Key:building:soft storey @@ -5770,7 +5864,6 @@ en: building:walls: Key:building:walls bulk_purchase: Key:bulk purchase bunker_type: Key:bunker type - bunker_type=bomb_shelter: Key:bunker type=bomb shelter buried:wikidata: Key:buried:wikidata buried:wikipedia: Key:buried:wikipedia bus: Key:bus @@ -5786,7 +5879,6 @@ en: butcher: Key:butcher button_operated: Key:button operated bygningsnr: Key:bygningsnr - cabin:rental: Key:cabin:rental cabins: Key:cabins cable_number: Key:cable number cables: Key:cables @@ -5808,18 +5900,21 @@ en: capacity:cabins: Key:capacity:cabins capacity:charging: Key:capacity:charging capacity:disabled: Key:capacity:disabled + capacity:long: Key:capacity:long capacity:men: Key:capacity:men capacity:motorcycle: Key:capacity:motorcycle capacity:parent: Key:capacity:parent capacity:persons: Key:capacity:persons capacity:rooms: Key:capacity:rooms capacity:seats: Key:capacity:seats + capacity:standard: Key:capacity:standard capacity:tents: Key:capacity:tents capacity:truck: Key:capacity:truck capacity:women: Key:capacity:women capital: Key:capital capital_city: Key:capital city car_parts: Key:car parts + car_repair: Key:car repair car_wash: Key:car wash caravan: Key:caravan caravans: Key:caravans @@ -5895,7 +5990,6 @@ en: coach: Key:coach coastline:survey_quality: Key:coastline:survey quality cocktails: Key:cocktails - coffee: Key:coffee collection_times: Key:collection times collection_times:signed: Key:collection times:signed collector: Key:collector @@ -5919,6 +6013,8 @@ en: communication:amateur_radio:repeater:power: Key:communication:amateur radio:repeater:power communication:amateur_radio:repeater:shift: Key:communication:amateur radio:repeater:shift communication:amateur_radio:repeater:toneburst: Key:communication:amateur radio:repeater:toneburst + communication:amateur_radio:sota: Key:communication:amateur radio:sota + communication:amateur_radio:wca: Key:communication:amateur radio:wca communication:bos: Key:communication:bos communication:gsm-r: Key:communication:gsm-r communication:microwave: Key:communication:microwave @@ -5941,9 +6037,10 @@ en: construction: Key:construction 'construction:': 'Key:construction:' construction:*: Key:construction:* + construction:building: Key:construction:building + construction:highway: Key:construction:highway construction:website: Key:construction:website construction_date: Key:construction date - construction_end_expected: Key:construction end expected construction_start_expected: Key:construction start expected consulate: Key:consulate consulting: Key:consulting @@ -5990,10 +6087,12 @@ en: conveying: Key:conveying cooker: Key:cooker cooling:method: Key:cooling:method + corbett: Key:corbett corners: Key:corners cosmha: Key:cosmha counselling: Key:counselling counselling_type:*: Key:counselling type:* + count: Key:count country: Key:country couplings: Key:couplings courts: Key:courts @@ -6014,6 +6113,7 @@ en: crossing:on_demand: Key:crossing:on demand crossing:saltire: Key:crossing:saltire crossing:signals: Key:crossing:signals + crossing:whistle: Key:crossing:whistle crossing_ref: Key:crossing ref cruising: Key:cruising cs_dir:backward: Key:cs dir:backward @@ -6024,6 +6124,7 @@ en: currency:*: Key:currency:* currency:BTC: Key:currency:BTC currency:CAD: Key:currency:CAD + currency:CHF: Key:currency:CHF currency:EUR: Key:currency:EUR currency:GBP: Key:currency:GBP currency:PLN: Key:currency:PLN @@ -6037,6 +6138,7 @@ en: curve:name: Key:curve:name curve:ref: Key:curve:ref curves: Key:curves + customers: Key:customers cutting: Key:cutting cyclability: Key:cyclability cycle: Key:cycle @@ -6055,16 +6157,21 @@ en: cycleway:foot: Key:cycleway:foot cycleway:lane: Key:cycleway:lane cycleway:left: Key:cycleway:left + cycleway:left:buffer: Key:cycleway:left:buffer cycleway:left:lane: Key:cycleway:left:lane cycleway:left:oneway: Key:cycleway:left:oneway + cycleway:left:separation: Key:cycleway:left:separation cycleway:left=backward: Key:cycleway:left=backward cycleway:oneway: Key:cycleway:oneway cycleway:right: Key:cycleway:right + cycleway:right:buffer: Key:cycleway:right:buffer cycleway:right:lane: Key:cycleway:right:lane cycleway:right:oneway: Key:cycleway:right:oneway + cycleway:right:separation: Key:cycleway:right:separation cycleway:right:surface: Key:cycleway:right:surface cycleway:right=forward: Key:cycleway:right=forward cycleway:segregated: Key:cycleway:segregated + cycleway:separation: Key:cycleway:separation cycleway:surface: Key:cycleway:surface cycleway:width: Key:cycleway:width cycling_width: Key:cycling width @@ -6077,6 +6184,7 @@ en: damage:type: Key:damage:type dance:style: Key:dance:style dance:teaching: Key:dance:teaching + dark_store: Key:dark store date: Key:date de:amtlicher_gemeindeschluessel: Key:de:amtlicher gemeindeschluessel de:regionalschluessel: Key:de:regionalschluessel @@ -6116,8 +6224,7 @@ en: descent: Key:descent description: Key:description description:ar: Key:description:ar - description:restrictions: Key:description:restrictions - descriptions:restrictions: Key:descriptions:restrictions + description:bicycle: Key:description:bicycle design: Key:design design:ref: Key:design:ref designation: Key:designation @@ -6202,6 +6309,7 @@ en: diet:halal: Key:diet:halal diet:kosher: Key:diet:kosher diet:lactose_free: Key:diet:lactose free + diet:sugar_free: Key:diet:sugar free diet:vegan: Key:diet:vegan diet:vegetarian: Key:diet:vegetarian dinner: Key:dinner @@ -6215,8 +6323,13 @@ en: diplomatic:services:non-immigrant_visas: Key:diplomatic:services:non-immigrant visas direction: Key:direction + direction_*: Key:direction * + direction_*:symbol: Key:direction *:symbol direction_east: Key:direction east direction_north: Key:direction north + direction_north:ref: Key:direction north:ref + direction_north:route: Key:direction north:route + direction_north:symbol: Key:direction north:symbol direction_northeast: Key:direction northeast direction_northwest: Key:direction northwest direction_south: Key:direction south @@ -6233,6 +6346,11 @@ en: display: Key:display display_surface: Key:display surface disputed_by: Key:disputed by + dist: Key:dist + dist:blue: Key:dist:blue + dist:red: Key:dist:red + dist:white: Key:dist:white + dist:yellow: Key:dist:yellow distance: Key:distance disused: Key:disused 'disused:': 'Key:disused:' @@ -6252,7 +6370,9 @@ en: dock:height: Key:dock:height dock:width: Key:dock:width dog: Key:dog + dog_washing: Key:dog washing dominant_taxon: Key:dominant taxon + donald: Key:donald donation:compensation: Key:donation:compensation donation:compensation:payment: Key:donation:compensation:payment donation:compensation:vouchers: Key:donation:compensation:vouchers @@ -6263,7 +6383,6 @@ en: draft: Key:draft draisine: Key:draisine dress_code: Key:dress code - drink: Key:drink drink:*: Key:drink:* drink:afri-cola: Key:drink:afri-cola drink:beer: Key:drink:beer @@ -6298,6 +6417,7 @@ en: earthquake:damage: Key:earthquake:damage easy_overtaking: Key:easy overtaking education: Key:education + education_program: Key:education program educational: Key:educational ekatte: Key:ekatte ele: Key:ele @@ -6356,6 +6476,7 @@ en: exit_to: Key:exit to expected_rcn_route_relations: Key:expected rcn route relations expressway: Key:expressway + extinguishing:medium: Key:extinguishing:medium facebook: Key:facebook faces: Key:faces fair_trade: Key:fair trade @@ -6367,6 +6488,7 @@ en: fax: Key:fax fcc:registration_number: Key:fcc:registration number fcc:unique_system_identifier: Key:fcc:unique system identifier + fcode: Key:fcode fdep:landuse_code: Key:fdep:landuse code fee: Key:fee fee:conditional: Key:fee:conditional @@ -6389,6 +6511,7 @@ en: fine: Key:fine fire: Key:fire fire_boundary: Key:fire boundary + fire_class: Key:fire class fire_hydrant: Key:fire hydrant fire_hydrant:diameter: Key:fire hydrant:diameter fire_hydrant:diameter:signed: Key:fire hydrant:diameter:signed @@ -6424,9 +6547,12 @@ en: flow_rate: Key:flow rate food: Key:food food:*: Key:food:* + food:hot_dog: Key:food:hot dog + food:pizza: Key:food:pizza foot: Key:foot foot:backward: Key:foot:backward foot:forward: Key:foot:forward + foot_traffic: Key:foot traffic footway: Key:footway footway:surface: Key:footway:surface for: Key:for @@ -6504,6 +6630,7 @@ en: gender_segregated: Key:gender segregated generator:method: Key:generator:method generator:output: Key:generator:output + generator:output:*: Key:generator:output:* generator:output:biogas: Key:generator:output:biogas generator:output:cold_air: Key:generator:output:cold air generator:output:cold_water: Key:generator:output:cold water @@ -6518,7 +6645,9 @@ en: generator:place: Key:generator:place generator:plant: Key:generator:plant generator:solar:modules: Key:generator:solar:modules + generator:solar:tracking: Key:generator:solar:tracking generator:source: Key:generator:source + generator:storage: Key:generator:storage generator:type: Key:generator:type genus: Key:genus genus:ar: Key:genus:ar @@ -6536,7 +6665,6 @@ en: glacier:part: Key:glacier:part glacier:type: Key:glacier:type glideslope: Key:glideslope - gluten_free: Key:gluten free gnis:fcode: Key:gnis:fcode gnis:feature_id: Key:gnis:feature id gnis:ftype: Key:gnis:ftype @@ -6544,22 +6672,32 @@ en: gnis:import_uuid: Key:gnis:import uuid golf: Key:golf golf:course: Key:golf:course + golf:par: Key:golf:par golf_cart: Key:golf cart goods: Key:goods government: Key:government grades: Key:grades + graham: Key:graham grape_variety: Key:grape variety grassland: Key:grassland grate: Key:grate green_roof: Key:green roof gritting: Key:gritting group_only: Key:group only + gtfs:feed: Key:gtfs:feed + gtfs:name: Key:gtfs:name + gtfs:release_date: Key:gtfs:release date + gtfs:route_id: Key:gtfs:route id + gtfs:shape_id: Key:gtfs:shape id gtfs:stop_id: Key:gtfs:stop id + gtfs:trip_id: Key:gtfs:trip id + gtfs:trip_id:sample: Key:gtfs:trip id:sample guest_house: Key:guest house guide: Key:guide guide_type: Key:guide type guidepost: Key:guidepost guidepost:hiking: Key:guidepost:hiking + guidepost_shape: Key:guidepost shape gun_emplacement_type: Key:gun emplacement type gun_turret: Key:gun turret gvr:code: Key:gvr:code @@ -6615,6 +6753,7 @@ en: highchair: Key:highchair highspeed: Key:highspeed highway: Key:highway + highway:CN: Key:highway:CN highway:category: Key:highway:category highway:category:pl: Key:highway:category:pl highway:class:pl: Key:highway:class:pl @@ -6763,6 +6902,7 @@ en: lacounty:ain: Key:lacounty:ain lacounty:bld_id: Key:lacounty:bld id ladder: Key:ladder + lamp_flames: Key:lamp flames lamp_model: Key:lamp model lamp_mount: Key:lamp mount lamp_type: Key:lamp type @@ -6770,6 +6910,7 @@ en: landfill:waste: Key:landfill:waste landform: Key:landform landmark: Key:landmark + landslide: Key:landslide landuse: Key:landuse lane_markings: Key:lane markings lanes: Key:lanes @@ -6781,6 +6922,7 @@ en: lanes:psv:backward: Key:lanes:psv:backward lanes:psv:forward: Key:lanes:psv:forward language: Key:language + language:*: Key:language:* language:LL: Key:language:LL language:ar: Key:language:ar language:arc: Key:language:arc @@ -6804,6 +6946,8 @@ en: language:syc: Key:language:syc language:ug: Key:language:ug language:ur: Key:language:ur + lat: Key:lat + latitude: Key:latitude lawyer: Key:lawyer layer: Key:layer lcn: Key:lcn @@ -6816,6 +6960,7 @@ en: length: Key:length level: Key:level level:ref: Key:level:ref + levels: Key:levels lgbt: Key:lgbt lgbtq: Key:lgbtq lhv: Key:lhv @@ -6826,6 +6971,7 @@ en: light_rail: Key:light rail lighting:perceived: Key:lighting:perceived line: Key:line + line_arrangement: Key:line arrangement line_attachement: Key:line attachement line_attachment: Key:line attachment line_management: Key:line management @@ -6833,6 +6979,7 @@ en: lit: Key:lit lit:perceived: Key:lit:perceived lit_by_led: Key:lit by led + livestock: Key:livestock living_street: Key:living street loading_gauge: Key:loading gauge loc_name: Key:loc name @@ -6854,6 +7001,7 @@ en: localwiki: Key:localwiki location: Key:location lock: Key:lock + lock:height: Key:lock:height lock_name: Key:lock name lock_ref: Key:lock ref lockable: Key:lockable @@ -6861,7 +7009,9 @@ en: locked:conditional: Key:locked:conditional locker: Key:locker logainm:*: Key:logainm:* + logistics: Key:logistics lojic:bgnum: Key:lojic:bgnum + lon: Key:lon long_name: Key:long name long_name:ar: Key:long name:ar long_name:arc: Key:long name:arc @@ -6876,6 +7026,7 @@ en: long_name:sr: Key:long name:sr long_name:syc: Key:long name:syc long_name:ur: Key:long name:ur + longitude: Key:longitude lottery: Key:lottery love_locks: Key:love locks lpn_ref: Key:lpn ref @@ -6894,12 +7045,14 @@ en: managed: Key:managed manhole: Key:manhole manmade: Key:manmade + manual: Key:manual manufacturer: Key:manufacturer manufacturer:wikidata: Key:manufacturer:wikidata map_size: Key:map size map_type: Key:map type mapillary: Key:mapillary mapper: Key:mapper + marilyn: Key:marilyn maritime: Key:maritime marker: Key:marker mass_times: Key:mass times @@ -6939,7 +7092,6 @@ en: maxspeed:night: Key:maxspeed:night maxspeed:practical: Key:maxspeed:practical maxspeed:psv:conditional: Key:maxspeed:psv:conditional - maxspeed:seasonal:winter: Key:maxspeed:seasonal:winter maxspeed:source: Key:maxspeed:source maxspeed:tilting: Key:maxspeed:tilting maxspeed:trailer: Key:maxspeed:trailer @@ -6986,7 +7138,6 @@ en: min_distance: Key:min distance min_height: Key:min height min_level: Key:min level - minage: Key:minage mindistance: Key:mindistance mineshaft_type: Key:mineshaft type minibus: Key:minibus @@ -7060,6 +7211,8 @@ en: mtb:scale:uphill: Key:mtb:scale:uphill mtb:type: Key:mtb:type mtb_scale: Key:mtb scale + munro: Key:munro + munro_number: Key:munro number museum: Key:museum museum:subject:wikidata: Key:museum:subject:wikidata museum_type: Key:museum type @@ -7073,6 +7226,7 @@ en: name:af: Key:name:af name:ak: Key:name:ak name:aln: Key:name:aln + name:alq: Key:name:alq name:alt: Key:name:alt name:am: Key:name:am name:an: Key:name:an @@ -7096,6 +7250,7 @@ en: name:bg: Key:name:bg name:bh: Key:name:bh name:bi: Key:name:bi + name:bjn: Key:name:bjn name:bm: Key:name:bm name:bn: Key:name:bn name:bn-Arab: Key:name:bn-Arab @@ -7112,22 +7267,27 @@ en: name:ceb: Key:name:ceb name:ch: Key:name:ch name:chm: Key:name:chm + name:chp: Key:name:chp name:chr: Key:name:chr name:chy: Key:name:chy name:ckb: Key:name:ckb + name:clc: Key:name:clc name:co: Key:name:co + name:cr: Key:name:cr name:cs: Key:name:cs name:csb: Key:name:csb name:cu: Key:name:cu name:cv: Key:name:cv name:cy: Key:name:cy name:da: Key:name:da + name:dak: Key:name:dak name:de: Key:name:de name:dsb: Key:name:dsb name:dv: Key:name:dv name:dyu: Key:name:dyu name:dz: Key:name:dz name:ee: Key:name:ee + name:egl: Key:name:egl name:el: Key:name:el name:en: Key:name:en name:eo: Key:name:eo @@ -7146,6 +7306,7 @@ en: name:fur: Key:name:fur name:fy: Key:name:fy name:ga: Key:name:ga + name:gag: Key:name:gag name:gcf: Key:name:gcf name:gd: Key:name:gd name:gem: Key:name:gem @@ -7234,6 +7395,7 @@ en: name:lez: Key:name:lez name:lg: Key:name:lg name:li: Key:name:li + name:lld: Key:name:lld name:lmo: Key:name:lmo name:ln: Key:name:ln name:lo: Key:name:lo @@ -7242,12 +7404,15 @@ en: name:lv: Key:name:lv name:mdf: Key:name:mdf name:mg: Key:name:mg + name:mhn: Key:name:mhn name:mhr: Key:name:mhr name:mi: Key:name:mi + name:mic: Key:name:mic name:min: Key:name:min name:mk: Key:name:mk name:ml: Key:name:ml name:mn: Key:name:mn + name:moe: Key:name:moe name:mos: Key:name:mos name:mr: Key:name:mr name:ms: Key:name:ms @@ -7268,9 +7433,11 @@ en: name:nl: Key:name:nl name:nn: Key:name:nn name:no: Key:name:no + name:non: Key:name:non name:nov: Key:name:nov name:nso: Key:name:nso name:oc: Key:name:oc + name:oj: Key:name:oj name:om: Key:name:om name:or: Key:name:or name:ota: Key:name:ota @@ -7287,6 +7454,7 @@ en: name:pih: Key:name:pih name:pjt: Key:name:pjt name:pl: Key:name:pl + name:pms: Key:name:pms name:pnb: Key:name:pnb name:pnt: Key:name:pnt name:prefix: Key:name:prefix @@ -7307,6 +7475,7 @@ en: name:rm: Key:name:rm name:rn: Key:name:rn name:ro: Key:name:ro + name:rrm: Key:name:rrm name:ru: Key:name:ru name:ru:word_stress: Key:name:ru:word stress name:rue: Key:name:rue @@ -7328,9 +7497,11 @@ en: name:sl: Key:name:sl name:sm: Key:name:sm name:sma: Key:name:sma + name:sms: Key:name:sms name:sn: Key:name:sn name:so: Key:name:so name:sq: Key:name:sq + name:squ: Key:name:squ name:sr: Key:name:sr name:sr-Latn: Key:name:sr-Latn name:ss: Key:name:ss @@ -7365,6 +7536,7 @@ en: name:uk: Key:name:uk name:ur: Key:name:ur name:uz: Key:name:uz + name:vep: Key:name:vep name:vi: Key:name:vi name:vi-Hani: Key:name:vi-Hani name:vls: Key:name:vls @@ -7420,7 +7592,6 @@ en: nat_ref:ar: Key:nat ref:ar nat_ref:fr: Key:nat ref:fr natural: Key:natural - naturbase: Key:naturbase naturbase:iid: Key:naturbase:iid navibot:categorize: Key:navibot:categorize navibot:connect: Key:navibot:connect @@ -7441,13 +7612,15 @@ en: network:wikidata: Key:network:wikidata network:wikipedia: Key:network:wikipedia nev: Key:nev + new_donald: Key:new donald newspaper_tubes: Key:newspaper tubes next_check_date: Key:next check date nhd:com_id: Key:nhd:com id nhd:fcode: Key:nhd:fcode nhd:ftype: Key:nhd:ftype + nhd:gnis_id: Key:nhd:gnis id nhd:reach_code: Key:nhd:reach code - no: Key:no + nickname: Key:nickname no-barnehage:nsrid: Key:no-barnehage:nsrid 'no:': 'Key:no:' no:*: Key:no:* @@ -7462,7 +7635,6 @@ en: not:*: Key:not:* not:brand:wikidata: Key:not:brand:wikidata not:name: Key:not:name - not:nccod: Key:not:nccod not:wikidata: Key:not:wikidata not_accepted_import:leisure: Key:not accepted import:leisure not_served_by: Key:not served by @@ -7477,8 +7649,8 @@ en: note:name: Key:note:name note:pilotage: Key:note:pilotage note:project_page: Key:note:project page - notes: Key:notes nuclear_explosion:country: Key:nuclear explosion:country + nuclear_explosion:crater_diameter: Key:nuclear explosion:crater diameter nuclear_explosion:hole: Key:nuclear explosion:hole nudism: Key:nudism nudism:conditional: Key:nudism:conditional @@ -7547,6 +7719,7 @@ en: old_name:fr: Key:old name:fr old_name:gr: Key:old name:gr old_name:grc: Key:old name:grc + old_name:it: Key:old name:it old_name:ko: Key:old name:ko old_name:ks: Key:old name:ks old_name:ku-Arab: Key:old name:ku-Arab @@ -7611,6 +7784,7 @@ en: operator:en: Key:operator:en operator:es: Key:operator:es operator:fr: Key:operator:fr + operator:guid: Key:operator:guid operator:phone: Key:operator:phone operator:ru: Key:operator:ru operator:short: Key:operator:short @@ -7656,6 +7830,7 @@ en: owner: Key:owner owner:wikidata: Key:owner:wikidata ownership: Key:ownership + panoramax: Key:panoramax par: Key:par parcel_locker:type: Key:parcel locker:type parcel_mail_in: Key:parcel mail in @@ -7684,7 +7859,6 @@ en: output passenger_lines: Key:passenger lines passing_places: Key:passing places - paved: Key:paved paved:date: Key:paved:date paving_stones:colour: Key:paving stones:colour payment: Key:payment @@ -7699,8 +7873,10 @@ en: payment:blik: Key:payment:blik payment:cards: Key:payment:cards payment:cash: Key:payment:cash + payment:cash:machine: Key:payment:cash:machine payment:cb: Key:payment:cb payment:cheque: Key:payment:cheque + payment:china_t-union: Key:payment:china t-union payment:clipper: Key:payment:clipper payment:coins: Key:payment:coins payment:coins:denominations: Key:payment:coins:denominations @@ -7762,6 +7938,7 @@ en: payment:wire_transfer: Key:payment:wire transfer pcode: Key:pcode pedagogy: Key:pedagogy + period: Key:period permanent_camping: Key:permanent camping person:date_of_birth: Key:person:date of birth person:date_of_death: Key:person:date of death @@ -7769,6 +7946,7 @@ en: pets: Key:pets phoenixbikeguide: Key:phoenixbikeguide phone: Key:phone + phone:NL: Key:phone:NL phone:mnemonic: Key:phone:mnemonic photograph: Key:photograph photography: Key:photography @@ -7796,14 +7974,17 @@ en: placement:forward: Key:placement:forward placement:start: Key:placement:start planned: Key:planned + planned:*: Key:planned:* plant: Key:plant plant:method: Key:plant:method plant:output: Key:plant:output + plant:output:*: Key:plant:output:* plant:output:biogas: Key:plant:output:biogas plant:output:cold_air: Key:plant:output:cold air plant:output:cold_water: Key:plant:output:cold water plant:output:compressed_air: Key:plant:output:compressed air plant:output:electricity: Key:plant:output:electricity + plant:output:gas: Key:plant:output:gas plant:output:heat: Key:plant:output:heat plant:output:hot_air: Key:plant:output:hot air plant:output:hot_water: Key:plant:output:hot water @@ -7813,6 +7994,14 @@ en: plant:storage: Key:plant:storage plant:type: Key:plant:type plant_community: Key:plant community + platform:width: Key:platform:width + platform_lift: Key:platform lift + platform_lift:maxlength:physical: Key:platform lift:maxlength:physical + platform_lift:maxweight: Key:platform lift:maxweight + platform_lift:maxwidth:physical: Key:platform lift:maxwidth:physical + platform_lift:portable: Key:platform lift:portable + platform_lift:seat: Key:platform lift:seat + platform_lift:supervised: Key:platform lift:supervised platforms: Key:platforms playability: Key:playability playground: Key:playground @@ -7822,6 +8011,7 @@ en: pmfsefin:idedif: Key:pmfsefin:idedif point: Key:point pole: Key:pole + poles: Key:poles police: Key:police political_division: Key:political division political_party: Key:political party @@ -7856,6 +8046,7 @@ en: produce: Key:produce product: Key:product project:eurosha_2012: Key:project:eurosha 2012 + prominence: Key:prominence proposed: Key:proposed proposed:*: Key:proposed:* proposed:highway: Key:proposed:highway @@ -7890,11 +8081,13 @@ en: radio_transponder:signal_frequency: Key:radio transponder:signal frequency railing: Key:railing railway: Key:railway + railway:asfa: Key:railway:asfa railway:atb: Key:railway:atb railway:etcs: Key:railway:etcs railway:kvb: Key:railway:kvb railway:lzb: Key:railway:lzb railway:position: Key:railway:position + railway:position:exact: Key:railway:position:exact railway:preserved: Key:railway:preserved railway:ref: Key:railway:ref railway:scmt: Key:railway:scmt @@ -7911,6 +8104,11 @@ en: ramp: Key:ramp ramp:bicycle: Key:ramp:bicycle ramp:luggage: Key:ramp:luggage + ramp:portable: Key:ramp:portable + ramp:portable:length: Key:ramp:portable:length + ramp:portable:maxweight: Key:ramp:portable:maxweight + ramp:portable:maxwidth:physical: Key:ramp:portable:maxwidth:physical + ramp:portable:supervised: Key:ramp:portable:supervised ramp:stroller: Key:ramp:stroller ramp:wheelchair: Key:ramp:wheelchair ramsar: Key:ramsar @@ -7929,6 +8127,7 @@ en: recreation_ground: Key:recreation ground recycling:PET: Key:recycling:PET recycling:fire_extinguishers: Key:recycling:fire extinguishers + recycling:green_waste: Key:recycling:green waste recycling:pet_drink_bottles: Key:recycling:pet drink bottles recycling:plastic_bottle_caps: Key:recycling:plastic bottle caps recycling:plastic_bottle_tops: Key:recycling:plastic bottle tops @@ -7939,8 +8138,6 @@ en: red_turn:right:bicycle: Key:red turn:right:bicycle red_turn:straight: Key:red turn:straight red_turn:straight:bicycle: Key:red turn:straight:bicycle - red_turn:straight:left: Key:red turn:straight:left - red_turn:straight:right: Key:red turn:straight:right rednap:latitud: Key:rednap:latitud reef: Key:reef ref: Key:ref @@ -7963,6 +8160,7 @@ en: ref:FR:CEF: Key:ref:FR:CEF ref:FR:CRTA: Key:ref:FR:CRTA ref:FR:DREAL: Key:ref:FR:DREAL + ref:FR:Enedis: Key:ref:FR:Enedis ref:FR:FANTOIR:left: Key:ref:FR:FANTOIR:left ref:FR:FANTOIR:right: Key:ref:FR:FANTOIR:right ref:FR:FINESS: Key:ref:FR:FINESS @@ -7989,6 +8187,7 @@ en: ref:FR:gdo: Key:ref:FR:gdo ref:FR:museofile: Key:ref:FR:museofile ref:FR:prix-carburants: Key:ref:FR:prix-carburants + ref:GB:imher: Key:ref:GB:imher ref:GB:mpan: Key:ref:GB:mpan ref:GB:nhle: Key:ref:GB:nhle ref:GB:nhs_ods: Key:ref:GB:nhs ods @@ -7997,6 +8196,7 @@ en: ref:GB:wpd_site: Key:ref:GB:wpd site ref:HMDB: Key:ref:HMDB ref:HU:edid: Key:ref:HU:edid + ref:HU:om: Key:ref:HU:om ref:HU:vatin: Key:ref:HU:vatin ref:IE:census2015: Key:ref:IE:census2015 ref:IE:lenehan: Key:ref:IE:lenehan @@ -8035,11 +8235,17 @@ en: 'ref:US-TX:': 'Key:ref:US-TX:' ref:US-TX:*: Key:ref:US-TX:* ref:US-TX:thc: Key:ref:US-TX:thc + ref:US:CIF: Key:ref:US:CIF ref:US:EIA: Key:ref:US:EIA ref:US:EPA: Key:ref:US:EPA ref:US:MA:SARIS: Key:ref:US:MA:SARIS + ref:US:MSHA: Key:ref:US:MSHA + ref:US:NID: Key:ref:US:NID + ref:US:UT:DEQ:DERRID: Key:ref:US:UT:DEQ:DERRID ref:UrbIS: Key:ref:UrbIS + ref:VE:UBIGEO: Key:ref:VE:UBIGEO ref:WDPA: Key:ref:WDPA + ref:alp: Key:ref:alp ref:ar: Key:ref:ar ref:arc: Key:ref:arc ref:at:bda: Key:ref:at:bda @@ -8149,6 +8355,7 @@ en: ref:temples.ru: Key:ref:temples.ru ref:thc: Key:ref:thc ref:udir_nsr: Key:ref:udir nsr + ref:us:nid: Key:ref:us:nid ref:us:ny:swis: Key:ref:us:ny:swis ref:vatin: Key:ref:vatin ref:vatin:hu: Key:ref:vatin:hu @@ -8203,6 +8410,7 @@ en: reusable_packaging:accept: Key:reusable packaging:accept reusable_packaging:offer: Key:reusable packaging:offer revert:id: Key:revert:id + review: Key:review review_requested: Key:review requested rfr: Key:rfr rhn_ref: Key:rhn ref @@ -8248,9 +8456,11 @@ en: rpn_ref: Key:rpn ref rtc_rate: Key:rtc rate rtsa_scale: Key:rtsa scale + rubber_tires: Key:rubber tires ruined: Key:ruined 'ruined:': 'Key:ruined:' ruined:*: Key:ruined:* + ruined:building: Key:ruined:building ruins: Key:ruins 'ruins:': 'Key:ruins:' ruins:*: Key:ruins:* @@ -8287,6 +8497,7 @@ en: school:trust:name: Key:school:trust:name school:trust:type: Key:school:trust:type school:type: Key:school:type + school_bus: Key:school bus scout: Key:scout screen: Key:screen scuba_diving:courses: Key:scuba diving:courses @@ -8490,6 +8701,7 @@ en: sells:tobacco: Key:sells:tobacco service: Key:service service:bicycle: Key:service:bicycle + 'service:bicycle:': 'Key:service:bicycle:' service:bicycle:*: Key:service:bicycle:* service:bicycle:Bicycle_Sales_and_Service: Key:service:bicycle:Bicycle Sales and Service @@ -8501,10 +8713,12 @@ en: service:bicycle:rental: Key:service:bicycle:rental service:bicycle:repair: Key:service:bicycle:repair service:bicycle:retail: Key:service:bicycle:retail + service:bicycle:sales: Key:service:bicycle:sales service:bicycle:second_hand: Key:service:bicycle:second hand service:bicycle:spare_parts: Key:service:bicycle:spare parts service:electricity: Key:service:electricity service:vehicle: Key:service:vehicle + 'service:vehicle:': 'Key:service:vehicle:' service:vehicle:*: Key:service:vehicle:* service:vehicle:Car_sales: Key:service:vehicle:Car sales service:vehicle:Sale: Key:service:vehicle:Sale @@ -8564,10 +8778,12 @@ en: service:vehicle:windshields: Key:service:vehicle:windshields service_branch: Key:service branch service_times: Key:service times + service_times:wheelchair: Key:service times:wheelchair settlement:origin: Key:settlement:origin settlement_type: Key:settlement type seveso: Key:seveso shade: Key:shade + shape: Key:shape share_taxi: Key:share taxi shelter: Key:shelter shelter_type: Key:shelter type @@ -8617,7 +8833,6 @@ en: siren:purpose: Key:siren:purpose siren:type: Key:siren:type site: Key:site - site_type: Key:site type size: Key:size ski: Key:ski sl_realtime: Key:sl realtime @@ -8637,8 +8852,13 @@ en: social_facility: Key:social facility social_facility:for: Key:social facility:for socket: Key:socket + socket:*: Key:socket:* socket:chademo: Key:socket:chademo socket:schuko: Key:socket:schuko + socket:sev1011_t13: Key:socket:sev1011 t13 + socket:sev1011_t15: Key:socket:sev1011 t15 + socket:sev1011_t23: Key:socket:sev1011 t23 + socket:sev1011_t25: Key:socket:sev1011 t25 socket:type1: Key:socket:type1 socket:type2: Key:socket:type2 socket:type2:output: Key:socket:type2:output @@ -8760,6 +8980,7 @@ en: source_ref:url: Key:source ref:url source_type_imagery: Key:source type imagery spacing: Key:spacing + specialized_education: Key:specialized education species: Key:species species:FR: Key:species:FR species:ar: Key:species:ar @@ -8796,7 +9017,6 @@ en: step:contrast: Key:step:contrast step_count: Key:step count steps: Key:steps - stile: Key:stile stilts: Key:stilts stone_type: Key:stone type stop: Key:stop @@ -8828,6 +9048,7 @@ en: surface:grade: Key:surface:grade surface:middle: Key:surface:middle surface:note: Key:surface:note + surface_survey: Key:surface survey surveillance: Key:surveillance surveillance:type: Key:surveillance:type surveillance:zone: Key:surveillance:zone @@ -8983,6 +9204,9 @@ en: trolley:deposit: Key:trolley:deposit trolley_wire: Key:trolley wire trolleybus: Key:trolleybus + trolleybus_class:length: Key:trolleybus class:length + truck:parts: Key:truck:parts + truck:sales: Key:truck:sales truck_wash: Key:truck wash ts_calle: Key:ts calle ts_codigo: Key:ts codigo @@ -9023,8 +9247,10 @@ en: unit: Key:unit unsigned: Key:unsigned unsigned_ref: Key:unsigned ref + urban: Key:urban url: Key:url url:bathing_water: Key:url:bathing water + url:imher: Key:url:imher url:registered_building: Key:url:registered building url:restrictions: Key:url:restrictions us:ny:swis: Key:us:ny:swis @@ -9035,7 +9261,6 @@ en: vaccination: Key:vaccination vacuum_cleaner: Key:vacuum cleaner validate:ants:yellow: Key:validate:ants:yellow - validate:no_name: Key:validate:no name valley: Key:valley valve: Key:valve vegan: Key:vegan @@ -9046,6 +9271,7 @@ en: vehicle:wikipedia: Key:vehicle:wikipedia vending: Key:vending verge: Key:verge + vessel: Key:vessel vhf: Key:vhf via: Key:via via_ferrata_scale: Key:via ferrata scale @@ -9062,6 +9288,8 @@ en: walkup_window: Key:walkup window wall: Key:wall wall:material: Key:wall:material + ward: Key:ward + warehouse: Key:warehouse 'was:': 'Key:was:' was:*: Key:was:* was:amenity: Key:was:amenity @@ -9078,6 +9306,7 @@ en: waterway: Key:waterway weather_protection: Key:weather protection website: Key:website + 'website:': 'Key:website:' website:*: Key:website:* website:booking: Key:website:booking website:map: Key:website:map @@ -9092,6 +9321,7 @@ en: wholesale: Key:wholesale width: Key:width width:carriageway: Key:width:carriageway + width:effective: Key:width:effective wifi: Key:wifi wiki:symbol: Key:wiki:symbol wikidata: Key:wikidata @@ -9175,7 +9405,6 @@ en: abandoned:railway=station: Tag:abandoned:railway=station abandoned=yes: Tag:abandoned=yes abutters=retail: Tag:abutters=retail - access=adherents: Tag:access=adherents access=agricultural: Tag:access=agricultural access=bdouble: Tag:access=bdouble access=customers: Tag:access=customers @@ -9323,6 +9552,7 @@ en: amenity=bicycle_rental: Tag:amenity=bicycle rental amenity=bicycle_repair_station: Tag:amenity=bicycle repair station amenity=bicycle_trailer_sharing: Tag:amenity=bicycle trailer sharing + amenity=bicycle_wash: Tag:amenity=bicycle wash amenity=biergarten: Tag:amenity=biergarten amenity=bike_parking: Tag:amenity=bike parking amenity=binoculars: Tag:amenity=binoculars @@ -9448,6 +9678,7 @@ en: amenity=jobcentre: Tag:amenity=jobcentre amenity=juice_bar: Tag:amenity=juice bar amenity=karaoke_box: Tag:amenity=karaoke box + amenity=kick-scooter_parking: Tag:amenity=kick-scooter parking amenity=kick-scooter_rental: Tag:amenity=kick-scooter rental amenity=kindergarten: Tag:amenity=kindergarten amenity=kiosk: Tag:amenity=kiosk @@ -9455,6 +9686,7 @@ en: amenity=kneipp_water_cure: Tag:amenity=kneipp water cure amenity=language_school: Tag:amenity=language school amenity=lavoir: Tag:amenity=lavoir + amenity=left_luggage: Tag:amenity=left luggage amenity=letter_box: Tag:amenity=letter box amenity=library: Tag:amenity=library amenity=library_dropoff: Tag:amenity=library dropoff @@ -9593,6 +9825,7 @@ en: amenity=veterinary: Tag:amenity=veterinary amenity=veterinary_pharmacy: Tag:amenity=veterinary pharmacy amenity=vivarium: Tag:amenity=vivarium + amenity=warehouse: Tag:amenity=warehouse amenity=washing_machine: Tag:amenity=washing machine amenity=waste_basket: Tag:amenity=waste basket amenity=waste_disposal: Tag:amenity=waste disposal @@ -9615,7 +9848,9 @@ en: animated=trivision_blades: Tag:animated=trivision blades animated=winding_posters: Tag:animated=winding posters anthropogenic=yes: Tag:anthropogenic=yes + aquaculture=fish: Tag:aquaculture=fish aquaculture=seaweed: Tag:aquaculture=seaweed + archaeological_site=amphitheatre: Tag:archaeological site=amphitheatre archaeological_site=baths: Tag:archaeological site=baths archaeological_site=city: Tag:archaeological site=city archaeological_site=cliff_dwelling: Tag:archaeological site=cliff dwelling @@ -9721,6 +9956,7 @@ en: barrier=czech_hedgehog: Tag:barrier=czech hedgehog barrier=debris: Tag:barrier=debris barrier=ditch: Tag:barrier=ditch + barrier=dug-in_tyres: Tag:barrier=dug-in tyres barrier=embankment: Tag:barrier=embankment barrier=entrance: Tag:barrier=entrance barrier=fence: Tag:barrier=fence @@ -9765,6 +10001,8 @@ en: barrier=wall: Tag:barrier=wall barrier=wedge: Tag:barrier=wedge barrier=wicket_gate: Tag:barrier=wicket gate + barrier=wire_fence: Tag:barrier=wire fence + barrier=wood_fence: Tag:barrier=wood fence barrier=yes: Tag:barrier=yes baseball=softball: Tag:baseball=softball basin=aeration: Tag:basin=aeration @@ -9775,6 +10013,7 @@ en: basin=infiltration: Tag:basin=infiltration basin=retention: Tag:basin=retention basin=settling: Tag:basin=settling + basin=stormwater: Tag:basin=stormwater basin=water_regeneration: Tag:basin=water regeneration bath:type=foot_bath: Tag:bath:type=foot bath bath:type=hammam: Tag:bath:type=hammam @@ -9797,11 +10036,11 @@ en: beacon:type=VOR: Tag:beacon:type=VOR beacon:type=VORTAC: Tag:beacon:type=VORTAC beauty=spa: Tag:beauty=spa + bench=wave_lounger: Tag:bench=wave lounger bicycle:backward=optional_sidepath: Tag:bicycle:backward=optional sidepath bicycle:backward=use_sidepath: Tag:bicycle:backward=use sidepath bicycle:forward=optional_sidepath: Tag:bicycle:forward=optional sidepath bicycle:forward=use_sidepath: Tag:bicycle:forward=use sidepath - bicycle:type=logistics: Tag:bicycle:type=logistics bicycle=designated: Tag:bicycle=designated bicycle=dismount: Tag:bicycle=dismount bicycle=no: Tag:bicycle=no @@ -9910,13 +10149,16 @@ en: bridge=cantilever: Tag:bridge=cantilever bridge=covered: Tag:bridge=covered bridge=drawbridge: Tag:bridge=drawbridge + bridge=log_bridge: Tag:bridge=log bridge bridge=movable: Tag:bridge=movable bridge=simple_brunnel: Tag:bridge=simple brunnel bridge=trestle: Tag:bridge=trestle bridge=viaduct: Tag:bridge=viaduct building:part=balcony: Tag:building:part=balcony + building:part=corridor: Tag:building:part=corridor building:part=porch: Tag:building:part=porch building:use=stable: Tag:building:use=stable + building:use=warehouse: Tag:building:use=warehouse building=*: Tag:building=* building=Y: Tag:building=Y building=abandoned: Tag:building=abandoned @@ -9951,7 +10193,9 @@ en: building=construction: Tag:building=construction building=container: Tag:building=container building=convent: Tag:building=convent + building=corridor: Tag:building=corridor building=cowshed: Tag:building=cowshed + building=damaged: Tag:building=damaged building=data_center: Tag:building=data center building=data_centre: Tag:building=data centre building=demountable: Tag:building=demountable @@ -9967,6 +10211,7 @@ en: building=farm_auxiliary: Tag:building=farm auxiliary building=fire_lookout: Tag:building=fire lookout building=fire_station: Tag:building=fire station + building=fixme: Tag:building=fixme building=font: Tag:building=font building=fort: Tag:building=fort building=funeral_hall: Tag:building=funeral hall @@ -10003,6 +10248,7 @@ en: building=mosque: Tag:building=mosque building=museum: Tag:building=museum building=office: Tag:building=office + building=other: Tag:building=other building=outbuilding: Tag:building=outbuilding building=pagoda: Tag:building=pagoda building=palace: Tag:building=palace @@ -10051,6 +10297,7 @@ en: building=tent: Tag:building=tent building=terrace: Tag:building=terrace building=toilets: Tag:building=toilets + building=tower: Tag:building=tower building=townhall: Tag:building=townhall building=train_station: Tag:building=train station building=transformer_tower: Tag:building=transformer tower @@ -10063,11 +10310,13 @@ en: building=unidentified: Tag:building=unidentified building=university: Tag:building=university building=unknown: Tag:building=unknown + building=venta: Tag:building=venta building=warehouse: Tag:building=warehouse building=water_tower: Tag:building=water tower building=wayside_shrine: Tag:building=wayside shrine building=windmill: Tag:building=windmill building=yes: Tag:building=yes + bunker_type=bomb_shelter: Tag:bunker type=bomb shelter bunker_type=gun_emplacement: Tag:bunker type=gun emplacement bunker_type=hardened_aircraft_shelter: Tag:bunker type=hardened aircraft shelter bunker_type=munitions: Tag:bunker type=munitions @@ -10104,6 +10353,7 @@ en: camra=yes: Tag:camra=yes canal=qanat: Tag:canal=qanat canoe=portage: Tag:canoe=portage + canoe=put_in: Tag:canoe=put in capital=4: Tag:capital=4 capital=5: Tag:capital=5 capital=6: Tag:capital=6 @@ -10130,6 +10380,7 @@ en: cemetery=grave: Tag:cemetery=grave cemetery=sector: Tag:cemetery=sector cemetery=war_cemetery: Tag:cemetery=war cemetery + cemetery=wood: Tag:cemetery=wood center_turn_lane=yes: Tag:center turn lane=yes china_class=cun: Tag:china class=cun clothes=fashion: Tag:clothes=fashion @@ -10149,6 +10400,7 @@ en: club=amateur_radio: Tag:club=amateur radio club=art: Tag:club=art club=automobile: Tag:club=automobile + club=baduk: Tag:club=baduk club=bicycle: Tag:club=bicycle club=cadet: Tag:club=cadet club=card_games: Tag:club=card games @@ -10178,6 +10430,7 @@ en: coastline:survey_quality=inadequate: Tag:coastline:survey quality=inadequate coastline=bogus: Tag:coastline=bogus collection_times:signed=no: Tag:collection times:signed=no + communication:radio=fm: Tag:communication:radio=fm communication:television=dvb-t: Tag:communication:television=dvb-t communication:television=dvb-t2: Tag:communication:television=dvb-t2 communication=line: Tag:communication=line @@ -10245,6 +10498,7 @@ en: cooling:method=air_cooling: Tag:cooling:method=air cooling cooling:method=dry_cooling: Tag:cooling:method=dry cooling cooling:method=mechanical_draft: Tag:cooling:method=mechanical draft + cooperative=agricultural: Tag:cooperative=agricultural covered=no: Tag:covered=no covered=yes: Tag:covered=yes craft=agricultural_engines: Tag:craft=agricultural engines @@ -10259,6 +10513,7 @@ en: craft=brewery: Tag:craft=brewery craft=builder: Tag:craft=builder craft=cabinet_maker: Tag:craft=cabinet maker + craft=candlemaker: Tag:craft=candlemaker craft=car_painter: Tag:craft=car painter craft=car_repair: Tag:craft=car repair craft=carpenter: Tag:craft=carpenter @@ -10311,6 +10566,7 @@ en: craft=paperhanger: Tag:craft=paperhanger craft=parquet_layer: Tag:craft=parquet layer craft=paver: Tag:craft=paver + craft=pest_control: Tag:craft=pest control craft=photographer: Tag:craft=photographer craft=photographic_laboratory: Tag:craft=photographic laboratory craft=piano_tuner: Tag:craft=piano tuner @@ -10336,6 +10592,7 @@ en: craft=sun_protection: Tag:craft=sun protection craft=sweep: Tag:craft=sweep craft=tailor: Tag:craft=tailor + craft=tatami: Tag:craft=tatami craft=tiler: Tag:craft=tiler craft=tinsmith: Tag:craft=tinsmith craft=toolmaker: Tag:craft=toolmaker @@ -10380,6 +10637,9 @@ en: crop=sunflower: Tag:crop=sunflower crop=tea: Tag:crop=tea crop=wheat: Tag:crop=wheat + crossing:whistle=optional: Tag:crossing:whistle=optional + crossing:whistle=wayside: Tag:crossing:whistle=wayside + crossing:whistle=yes: Tag:crossing:whistle=yes crossing=informal: Tag:crossing=informal crossing=marked: Tag:crossing=marked crossing=no: Tag:crossing=no @@ -10391,6 +10651,7 @@ en: crossing_ref=delineated: Tag:crossing ref=delineated crossing_ref=zebra: Tag:crossing ref=zebra cuisine=american: Tag:cuisine=american + cuisine=arepa: Tag:cuisine=arepa cuisine=asian: Tag:cuisine=asian cuisine=açaí: Tag:cuisine=açaí cuisine=bagel: Tag:cuisine=bagel @@ -10424,6 +10685,7 @@ en: cuisine=gyros: Tag:cuisine=gyros cuisine=hot_dog: Tag:cuisine=hot dog cuisine=hot_pot: Tag:cuisine=hot pot + cuisine=hotdog: Tag:cuisine=hotdog cuisine=hotpot: Tag:cuisine=hotpot cuisine=ice_cream: Tag:cuisine=ice cream cuisine=indian: Tag:cuisine=indian @@ -10444,13 +10706,16 @@ en: cuisine=ramen: Tag:cuisine=ramen cuisine=regional: Tag:cuisine=regional cuisine=sandwich: Tag:cuisine=sandwich + cuisine=sausage: Tag:cuisine=sausage cuisine=seafood: Tag:cuisine=seafood cuisine=soup: Tag:cuisine=soup cuisine=spanish: Tag:cuisine=spanish + cuisine=steak: Tag:cuisine=steak cuisine=steak_house: Tag:cuisine=steak house cuisine=strudel: Tag:cuisine=strudel cuisine=sushi: Tag:cuisine=sushi cuisine=tapas: Tag:cuisine=tapas + cuisine=tea: Tag:cuisine=tea cuisine=tea_house: Tag:cuisine=tea house cuisine=tea_shop: Tag:cuisine=tea shop cuisine=teahouse: Tag:cuisine=teahouse @@ -10460,7 +10725,9 @@ en: cuisine=vietnamese: Tag:cuisine=vietnamese cuisine=waffle: Tag:cuisine=waffle cuisine=wings: Tag:cuisine=wings + culvert=box: Tag:culvert=box culvert=inverted_siphon: Tag:culvert=inverted siphon + culvert=pipe: Tag:culvert=pipe curve=hairpin: Tag:curve=hairpin curve=loop: Tag:curve=loop curves=extended: Tag:curves=extended @@ -10533,6 +10800,7 @@ en: delivery=shipment: Tag:delivery=shipment demolished=yes: Tag:demolished=yes dennert_fir_tree=yes: Tag:dennert fir tree=yes + denomination=catholic: Tag:denomination=catholic denomination=iglesia_filipina_independiente: Tag:denomination=iglesia filipina independiente denomination=jodo_shinshu: Tag:denomination=jodo shinshu @@ -10550,6 +10818,7 @@ en: denotation=landmark: Tag:denotation=landmark denotation=natural_monument: Tag:denotation=natural monument denotation=urban: Tag:denotation=urban + denotation=windbreak: Tag:denotation=windbreak designation=barangay: Tag:designation=barangay designation=byway_open_to_all_traffic: Tag:designation=byway open to all traffic designation=civil_parish: Tag:designation=civil parish @@ -10559,6 +10828,7 @@ en: designation=public_footpath: Tag:designation=public footpath designation=quiet_lane: Tag:designation=quiet lane designation=restricted_byway: Tag:designation=restricted byway + designation=shared_path: Tag:designation=shared path destroyed=yes: Tag:destroyed=yes diet:kosher=only: Tag:diet:kosher=only diet:kosher=yes: Tag:diet:kosher=yes @@ -10589,15 +10859,16 @@ en: dog=designated: Tag:dog=designated dog=leashed: Tag:dog=leashed dog=no: Tag:dog=no + dog=outside: Tag:dog=outside dog=unleashed: Tag:dog=unleashed dog=yes: Tag:dog=yes + drink=beer: Tag:drink=beer driveway=pipestem: Tag:driveway=pipestem dual_carriageway=no: Tag:dual carriageway=no dual_carriageway=yes: Tag:dual carriageway=yes education=centre: Tag:education=centre education=exercise_area: Tag:education=exercise area education=school: Tag:education=school - education_program=specialized_education: Tag:education program=specialized education electrified=4th_rail: Tag:electrified=4th rail electrified=contact_line: Tag:electrified=contact line electrified=rail: Tag:electrified=rail @@ -10622,6 +10893,7 @@ en: emergency=assembly_point: Tag:emergency=assembly point emergency=bleed_control_kit: Tag:emergency=bleed control kit emergency=coast_guard: Tag:emergency=coast guard + emergency=control_centre: Tag:emergency=control centre emergency=defibrilator: Tag:emergency=defibrilator emergency=defibrillator: Tag:emergency=defibrillator emergency=designated: Tag:emergency=designated @@ -10661,6 +10933,7 @@ en: emergency=mountain_rescue: Tag:emergency=mountain rescue emergency=phone: Tag:emergency=phone emergency=rescue_box: Tag:emergency=rescue box + emergency=rescue_buoy: Tag:emergency=rescue buoy emergency=ses_station: Tag:emergency=ses station emergency=shower: Tag:emergency=shower emergency=siamese: Tag:emergency=siamese @@ -10670,6 +10943,7 @@ en: emergency=sprinkler_connection: Tag:emergency=sprinkler connection emergency=standpipe: Tag:emergency=standpipe emergency=suction_point: Tag:emergency=suction point + emergency=throw_bag: Tag:emergency=throw bag emergency=water_rescue: Tag:emergency=water rescue emergency=water_rescue_station: Tag:emergency=water rescue station emergency=water_tank: Tag:emergency=water tank @@ -10708,6 +10982,7 @@ en: fire_mains=dry: Tag:fire mains=dry fire_mains=wet: Tag:fire mains=wet fire_mains=yes: Tag:fire mains=yes + fire_path=yes: Tag:fire path=yes fire_service_inlet=underground: Tag:fire service inlet=underground fire_service_inlet=wall: Tag:fire service inlet=wall fire_sprinkler=dry: Tag:fire sprinkler=dry @@ -10717,6 +10992,7 @@ en: fixme=Position_estimated: Tag:fixme=Position estimated fixme=name: Tag:fixme=name fixme=position_estimated: Tag:fixme=position estimated + fixme=verify_name: Tag:fixme=verify name flag:type=advertising: Tag:flag:type=advertising flag:type=athletic: Tag:flag:type=athletic flag:type=governmental: Tag:flag:type=governmental @@ -10759,6 +11035,7 @@ en: fortification_type=hill_fort: Tag:fortification type=hill fort fortification_type=limes: Tag:fortification type=limes fortification_type=motte: Tag:fortification type=motte + fortification_type=pa: Tag:fortification type=pa fortification_type=ring_ditch: Tag:fortification type=ring ditch fortification_type=ringfort: Tag:fortification type=ringfort fortification_type=sconce: Tag:fortification type=sconce @@ -10789,6 +11066,17 @@ en: generator:method=wind_turbine: Tag:generator:method=wind turbine generator:plant=intermediate: Tag:generator:plant=intermediate generator:plant=output: Tag:generator:plant=output + generator:solar:tracking=alt-azimuth: Tag:generator:solar:tracking=alt-azimuth + generator:solar:tracking=dual_axis: Tag:generator:solar:tracking=dual axis + generator:solar:tracking=horizontal: Tag:generator:solar:tracking=horizontal + generator:solar:tracking=horizontal_tilted: Tag:generator:solar:tracking=horizontal + tilted + generator:solar:tracking=no: Tag:generator:solar:tracking=no + generator:solar:tracking=single_axis: Tag:generator:solar:tracking=single axis + generator:solar:tracking=tilted: Tag:generator:solar:tracking=tilted + generator:solar:tracking=tip-tilt: Tag:generator:solar:tracking=tip-tilt + generator:solar:tracking=vertical: Tag:generator:solar:tracking=vertical + generator:solar:tracking=yes: Tag:generator:solar:tracking=yes generator:source=battery: Tag:generator:source=battery generator:source=biofuel: Tag:generator:source=biofuel generator:source=biogas: Tag:generator:source=biogas @@ -10807,6 +11095,7 @@ en: generator:source=waste: Tag:generator:source=waste generator:source=wave: Tag:generator:source=wave generator:source=wind: Tag:generator:source=wind + generator:type=PWR: Tag:generator:type=PWR generator:type=boiler: Tag:generator:type=boiler generator:type=combined_cycle: Tag:generator:type=combined cycle generator:type=francis_turbine: Tag:generator:type=francis turbine @@ -10815,6 +11104,7 @@ en: generator:type=horizontal_axis: Tag:generator:type=horizontal axis generator:type=hydrodynamic_screw: Tag:generator:type=hydrodynamic screw generator:type=kaplan_turbine: Tag:generator:type=kaplan turbine + generator:type=lithium_ion: Tag:generator:type=lithium ion generator:type=pelton_turbine: Tag:generator:type=pelton turbine generator:type=reciprocating_engine: Tag:generator:type=reciprocating engine generator:type=solar_photovoltaic_panel: Tag:generator:type=solar photovoltaic @@ -10823,18 +11113,26 @@ en: generator:type=steam_generator: Tag:generator:type=steam generator generator:type=steam_turbine: Tag:generator:type=steam turbine generator:type=vertical_axis: Tag:generator:type=vertical axis + generator:type=water_wheel: Tag:generator:type=water wheel generator:type=zuppinger_water_wheel: Tag:generator:type=zuppinger water wheel genus=Acer: Tag:genus=Acer + geological=columnar_jointing: Tag:geological=columnar jointing geological=fault: Tag:geological=fault + geological=giants_kettle: Tag:geological=giants kettle + geological=glacial_erratic: Tag:geological=glacial erratic + geological=hoodoo: Tag:geological=hoodoo geological=meteor_crater: Tag:geological=meteor crater geological=moraine: Tag:geological=moraine geological=outcrop: Tag:geological=outcrop geological=palaeontological_site: Tag:geological=palaeontological site + geological=rock_glacier: Tag:geological=rock glacier geological=volcanic_caldera: Tag:geological=volcanic caldera geological=volcanic_caldera_rim: Tag:geological=volcanic caldera rim geological=volcanic_lava_field: Tag:geological=volcanic lava field + geological=volcanic_lava_flow: Tag:geological=volcanic lava flow geological=volcanic_vent: Tag:geological=volcanic vent glacier:type=mountain: Tag:glacier:type=mountain + glacier:type=rock: Tag:glacier:type=rock glideslope=yes: Tag:glideslope=yes golf=bunker: Tag:golf=bunker golf=cartpath: Tag:golf=cartpath @@ -10867,6 +11165,7 @@ en: government=healthcare: Tag:government=healthcare government=heritage: Tag:government=heritage government=it: Tag:government=it + government=justice: Tag:government=justice government=legislative: Tag:government=legislative government=ministry: Tag:government=ministry government=parliament: Tag:government=parliament @@ -10920,6 +11219,8 @@ en: hazard=electricity: Tag:hazard=electricity hazard=emergency_vehicles: Tag:hazard=emergency vehicles hazard=falling_rocks: Tag:hazard=falling rocks + hazard=flood: Tag:hazard=flood + hazard=flooding: Tag:hazard=flooding hazard=fog: Tag:hazard=fog hazard=frail_pedestrians: Tag:hazard=frail pedestrians hazard=frost_heave: Tag:hazard=frost heave @@ -10943,6 +11244,7 @@ en: hazard=school_zone: Tag:hazard=school zone hazard=shooting_range: Tag:hazard=shooting range hazard=side_winds: Tag:hazard=side winds + hazard=silver_zone: Tag:hazard=silver zone hazard=slippery: Tag:hazard=slippery hazard=traffic_signals: Tag:hazard=traffic signals hazard=turn: Tag:hazard=turn @@ -10973,6 +11275,7 @@ en: healthcare:speciality=cardiothoracic_surgery: Tag:healthcare:speciality=cardiothoracic surgery healthcare:speciality=child_psychiatry: Tag:healthcare:speciality=child psychiatry + healthcare:speciality=chiropractic: Tag:healthcare:speciality=chiropractic healthcare:speciality=clinical_pathology: Tag:healthcare:speciality=clinical pathology healthcare:speciality=community: Tag:healthcare:speciality=community healthcare:speciality=dental_oral_maxillo_facial_surgery: Tag:healthcare:speciality=dental @@ -11184,11 +11487,15 @@ en: historic=fort: Tag:historic=fort historic=gallows: Tag:historic=gallows historic=heritage: Tag:historic=heritage + historic=high_cross: Tag:historic=high cross historic=highwater_mark: Tag:historic=highwater mark historic=hollow_way: Tag:historic=hollow way historic=house: Tag:historic=house historic=locomotive: Tag:historic=locomotive historic=manor: Tag:historic=manor + historic=market_cross: Tag:historic=market cross + historic=martello_tower: Tag:historic=martello tower + historic=mass_path: Tag:historic=mass path historic=memorial: Tag:historic=memorial historic=meteor_crater: Tag:historic=meteor crater historic=milestone: Tag:historic=milestone @@ -11197,6 +11504,7 @@ en: historic=missile: Tag:historic=missile historic=monastery: Tag:historic=monastery historic=monument: Tag:historic=monument + historic=mosque: Tag:historic=mosque historic=ogham_stone: Tag:historic=ogham stone historic=optical_telegraph: Tag:historic=optical telegraph historic=pa: Tag:historic=pa @@ -11209,8 +11517,11 @@ en: historic=rune_stone: Tag:historic=rune stone historic=shieling: Tag:historic=shieling historic=ship: Tag:historic=ship + historic=stećak: Tag:historic=stećak + historic=stećak_necropolis: Tag:historic=stećak necropolis historic=stone: Tag:historic=stone historic=tank: Tag:historic=tank + historic=temple: Tag:historic=temple historic=tomb: Tag:historic=tomb historic=tower: Tag:historic=tower historic=tree_shrine: Tag:historic=tree shrine @@ -11421,6 +11732,7 @@ en: landuse=military: Tag:landuse=military landuse=observatory: Tag:landuse=observatory landuse=orchard: Tag:landuse=orchard + landuse=paddy: Tag:landuse=paddy landuse=peat_cutting: Tag:landuse=peat cutting landuse=plant_nursery: Tag:landuse=plant nursery landuse=plantation: Tag:landuse=plantation @@ -11458,6 +11770,7 @@ en: landuse=yes: Tag:landuse=yes lane=buffered: Tag:lane=buffered lane_markings=no: Tag:lane markings=no + lawyer=bailiff: Tag:lawyer=bailiff lawyer=notary: Tag:lawyer=notary leaf_cycle=deciduous: Tag:leaf cycle=deciduous leaf_cycle=evergreen: Tag:leaf cycle=evergreen @@ -11487,7 +11800,6 @@ en: leisure=club: Tag:leisure=club leisure=club_house: Tag:leisure=club house leisure=common: Tag:leisure=common - leisure=cricket_nets: Tag:leisure=cricket nets leisure=dance: Tag:leisure=dance leisure=dancing: Tag:leisure=dancing leisure=disc_golf_course: Tag:leisure=disc golf course @@ -11566,6 +11878,14 @@ en: line=bay: Tag:line=bay line=busbar: Tag:line=busbar line=substation: Tag:line=substation + line_arrangement=delta: Tag:line arrangement=delta + line_arrangement=horizontal: Tag:line arrangement=horizontal + line_arrangement=semi_horizontal: Tag:line arrangement=semi horizontal + line_arrangement=semi_vertical: Tag:line arrangement=semi vertical + line_arrangement=square: Tag:line arrangement=square + line_arrangement=triangular: Tag:line arrangement=triangular + line_arrangement=unarranged: Tag:line arrangement=unarranged + line_arrangement=vertical: Tag:line arrangement=vertical line_attachment=anchor: Tag:line attachment=anchor line_attachment=pin: Tag:line attachment=pin line_attachment=pulley: Tag:line attachment=pulley @@ -11593,12 +11913,14 @@ en: location=underground: Tag:location=underground location=underwater: Tag:location=underwater logistics=goods_distribution: Tag:logistics=goods distribution + logistics=railway: Tag:logistics=railway logistics=spaceflight: Tag:logistics=spaceflight lottery=yes: Tag:lottery=yes maintenance=gritting: Tag:maintenance=gritting man_made=MDF: Tag:man made=MDF man_made=adit: Tag:man made=adit man_made=advertising: Tag:man made=advertising + man_made=aircraft: Tag:man made=aircraft man_made=animal_trap: Tag:man made=animal trap man_made=antenna: Tag:man made=antenna man_made=archimedes_screw: Tag:man made=archimedes screw @@ -11607,6 +11929,7 @@ en: man_made=basin: Tag:man made=basin man_made=beacon: Tag:man made=beacon man_made=beehive: Tag:man made=beehive + man_made=bell: Tag:man made=bell man_made=bioreactor: Tag:man made=bioreactor man_made=bioswale: Tag:man made=bioswale man_made=bird_feeder: Tag:man made=bird feeder @@ -11625,6 +11948,7 @@ en: man_made=chute_block: Tag:man made=chute block man_made=clarifier: Tag:man made=clarifier man_made=clearcut: Tag:man made=clearcut + man_made=clothes_line: Tag:man made=clothes line man_made=column: Tag:man made=column man_made=communications_tower: Tag:man made=communications tower man_made=compass_rose: Tag:man made=compass rose @@ -11633,7 +11957,6 @@ en: man_made=cooling_tower: Tag:man made=cooling tower man_made=courtyard: Tag:man made=courtyard man_made=crane: Tag:man made=crane - man_made=cricket_nets: Tag:man made=cricket nets man_made=cross: Tag:man made=cross man_made=cut_line: Tag:man made=cut line man_made=cutline: Tag:man made=cutline @@ -11642,6 +11965,7 @@ en: man_made=dolphin: Tag:man made=dolphin man_made=dovecote: Tag:man made=dovecote man_made=drinking_fountain: Tag:man made=drinking fountain + man_made=duck_decoy: Tag:man made=duck decoy man_made=dyke: Tag:man made=dyke man_made=embankment: Tag:man made=embankment man_made=excavation: Tag:man made=excavation @@ -11650,6 +11974,7 @@ en: man_made=flare: Tag:man made=flare man_made=floating_storage: Tag:man made=floating storage man_made=footwear_decontamination: Tag:man made=footwear decontamination + man_made=foundation: Tag:man made=foundation man_made=frost_fan: Tag:man made=frost fan man_made=fuel_column: Tag:man made=fuel column man_made=fuel_pump: Tag:man made=fuel pump @@ -11678,6 +12003,7 @@ en: man_made=launch_pad: Tag:man made=launch pad man_made=levee: Tag:man made=levee man_made=lighthouse: Tag:man made=lighthouse + man_made=loudspeaker: Tag:man made=loudspeaker man_made=manhole: Tag:man made=manhole man_made=mast: Tag:man made=mast man_made=maypole: Tag:man made=maypole @@ -11698,6 +12024,7 @@ en: man_made=outfall: Tag:man made=outfall man_made=oxidation_ditch: Tag:man made=oxidation ditch man_made=paifang: Tag:man made=paifang + man_made=pavement_light: Tag:man made=pavement light man_made=petroleum_well: Tag:man made=petroleum well man_made=pier: Tag:man made=pier man_made=pillar: Tag:man made=pillar @@ -11713,10 +12040,13 @@ en: man_made=qanat: Tag:man made=qanat man_made=quay: Tag:man made=quay man_made=reservoir_covered: Tag:man made=reservoir covered + man_made=ruins: Tag:man made=ruins man_made=satellite_dish: Tag:man made=satellite dish man_made=school_sentry: Tag:man made=school sentry man_made=septic_tank: Tag:man made=septic tank man_made=sewage: Tag:man made=sewage + man_made=sewer_vent: Tag:man made=sewer vent + man_made=sign: Tag:man made=sign man_made=silo: Tag:man made=silo man_made=ski_jump: Tag:man made=ski jump man_made=slurry_basin: Tag:man made=slurry basin @@ -11725,6 +12055,7 @@ en: man_made=snow_net: Tag:man made=snow net man_made=spoil_heap: Tag:man made=spoil heap man_made=spring_box: Tag:man made=spring box + man_made=stećak: Tag:man made=stećak man_made=storage_tank: Tag:man made=storage tank man_made=street_cabinet: Tag:man made=street cabinet man_made=stupa: Tag:man made=stupa @@ -11746,6 +12077,7 @@ en: man_made=utility_pole: Tag:man made=utility pole man_made=ventilation_shaft: Tag:man made=ventilation shaft man_made=video_wall: Tag:man made=video wall + man_made=warehouse: Tag:man made=warehouse man_made=wastewater_basin: Tag:man made=wastewater basin man_made=wastewater_plant: Tag:man made=wastewater plant man_made=water_tank: Tag:man made=water tank @@ -11760,6 +12092,7 @@ en: man_made=windmill: Tag:man made=windmill man_made=windpump: Tag:man made=windpump man_made=works: Tag:man made=works + man_made_aircraft: Tag:man made aircraft manhole=drain: Tag:manhole=drain manhole=telecom: Tag:manhole=telecom map_type=topo: Tag:map type=topo @@ -11775,7 +12108,11 @@ en: material=epoxy: Tag:material=epoxy material=paving_stones: Tag:material=paving stones maxheight=default: Tag:maxheight=default + maxspeed:type=GB:motorway: Tag:maxspeed:type=GB:motorway + maxspeed:type=GB:nsl_dual: Tag:maxspeed:type=GB:nsl dual maxspeed:type=GB:nsl_restricted: Tag:maxspeed:type=GB:nsl restricted + maxspeed:type=GB:nsl_single: Tag:maxspeed:type=GB:nsl single + maxspeed:type=GB:zone20: Tag:maxspeed:type=GB:zone20 maxspeed:type=NL:living_street: Tag:maxspeed:type=NL:living street maxspeed:type=NL:motorroad: Tag:maxspeed:type=NL:motorroad maxspeed:type=NL:motorway: Tag:maxspeed:type=NL:motorway @@ -11783,16 +12120,19 @@ en: maxspeed:type=NL:urban: Tag:maxspeed:type=NL:urban maxspeed:type=PL:rural: Tag:maxspeed:type=PL:rural maxspeed:type=PL:urban: Tag:maxspeed:type=PL:urban + maxspeed:type=sign: Tag:maxspeed:type=sign maxspeed=implicit: Tag:maxspeed=implicit maxweight:signed=no: Tag:maxweight:signed=no meadow=paddock: Tag:meadow=paddock meadow=pasture: Tag:meadow=pasture mechanical_coupling=nodding_donkey: Tag:mechanical coupling=nodding donkey mechanical_driver=combustion_engine: Tag:mechanical driver=combustion engine + mechanical_driver=cylinder: Tag:mechanical driver=cylinder mechanical_driver=electric_motor: Tag:mechanical driver=electric motor mechanical_driver=manual: Tag:mechanical driver=manual mechanical_driver=reciprocating_solenoid: Tag:mechanical driver=reciprocating solenoid + mechanical_driver=turbine: Tag:mechanical driver=turbine medical=aed: Tag:medical=aed medical_system:western=yes: Tag:medical system:western=yes megalith_type=alignment: Tag:megalith type=alignment @@ -11822,6 +12162,7 @@ en: memorial=cross: Tag:memorial=cross memorial=flood_mark: Tag:memorial=flood mark memorial=ghost_bike: Tag:memorial=ghost bike + memorial=immortality_tower: Tag:memorial=immortality tower memorial=khachkar: Tag:memorial=khachkar memorial=obelisk: Tag:memorial=obelisk memorial=plaque: Tag:memorial=plaque @@ -11862,6 +12203,7 @@ en: military_service=marines: Tag:military service=marines military_service=navy: Tag:military service=navy mofa=use_sidepath: Tag:mofa=use sidepath + monument=statue: Tag:monument=statue mooring=commercial: Tag:mooring=commercial mooring=cruise: Tag:mooring=cruise mooring=declaration: Tag:mooring=declaration @@ -11874,6 +12216,7 @@ en: mooring=visitor: Tag:mooring=visitor moped=use_sidepath: Tag:moped=use sidepath motor_vehicle=agricultural: Tag:motor vehicle=agricultural + motor_vehicle=delivery: Tag:motor vehicle=delivery motor_vehicle=destination: Tag:motor vehicle=destination motor_vehicle=forestry: Tag:motor vehicle=forestry motor_vehicle=no: Tag:motor vehicle=no @@ -11933,6 +12276,7 @@ en: natural=beach: Tag:natural=beach natural=bedrock: Tag:natural=bedrock natural=birds_nest: Tag:natural=birds nest + natural=blockfield: Tag:natural=blockfield natural=blowhole: Tag:natural=blowhole natural=caldera: Tag:natural=caldera natural=cape: Tag:natural=cape @@ -12076,6 +12420,7 @@ en: network=US:AZ:Loop: Tag:network=US:AZ:Loop network=US:AZ:Maricopa: Tag:network=US:AZ:Maricopa network=US:AZ:Mohave: Tag:network=US:AZ:Mohave + network=US:AZ:Scenic: Tag:network=US:AZ:Scenic network=US:BIA: Tag:network=US:BIA network=US:CA: Tag:network=US:CA network=US:CA:CR: Tag:network=US:CA:CR @@ -12230,6 +12575,7 @@ en: network=US:OH:STA: Tag:network=US:OH:STA network=US:OH:SUM: Tag:network=US:OH:SUM network=US:OH:SUM:Bath: Tag:network=US:OH:SUM:Bath + network=US:OH:TRU: Tag:network=US:OH:TRU network=US:OH:TUS: Tag:network=US:OH:TUS network=US:OH:UNI: Tag:network=US:OH:UNI network=US:OH:VIN: Tag:network=US:OH:VIN @@ -12242,6 +12588,7 @@ en: network=US:OH:WYA: Tag:network=US:OH:WYA network=US:OK: Tag:network=US:OK network=US:OR: Tag:network=US:OR + network=US:OR:Named: Tag:network=US:OR:Named network=US:PA: Tag:network=US:PA network=US:PA:Turnpike: Tag:network=US:PA:Turnpike network=US:RI: Tag:network=US:RI @@ -12368,6 +12715,7 @@ en: office=harbour_master: Tag:office=harbour master office=healthcare: Tag:office=healthcare office=highway: Tag:office=highway + office=information: Tag:office=information office=insurance: Tag:office=insurance office=interior_design: Tag:office=interior design office=international_organization: Tag:office=international organization @@ -12467,6 +12815,7 @@ en: park_ride=hov: Tag:park ride=hov parking:both=street_side: Tag:parking:both=street side parking:lane:hgv=on_street: Tag:parking:lane:hgv=on street + parking:left=lane: Tag:parking:left=lane parking:left=street_side: Tag:parking:left=street side parking:orientation=perpendicular: Tag:parking:orientation=perpendicular parking:right=street_side: Tag:parking:right=street side @@ -12477,6 +12826,7 @@ en: parking=street_side: Tag:parking=street side parking=surface: Tag:parking=surface parking=underground: Tag:parking=underground + parking_space=charging: Tag:parking space=charging parking_space=disabled: Tag:parking space=disabled passenger=international: Tag:passenger=international passenger=local: Tag:passenger=local @@ -12502,6 +12852,7 @@ en: piste:type=nordic: Tag:piste:type=nordic piste:type=ski_jump: Tag:piste:type=ski jump piste:type=ski_jump_landing: Tag:piste:type=ski jump landing + piste:type=sled: Tag:piste:type=sled place=allotments: Tag:place=allotments place=archipelago: Tag:place=archipelago place=borough: Tag:place=borough @@ -12521,6 +12872,7 @@ en: place=neighbourhood: Tag:place=neighbourhood place=ocean: Tag:place=ocean place=plot: Tag:place=plot + place=polder: Tag:place=polder place=province: Tag:place=province place=quarter: Tag:place=quarter place=region: Tag:place=region @@ -12536,9 +12888,13 @@ en: place_of_worship=holy_well: Tag:place of worship=holy well place_of_worship=lourdes_grotto: Tag:place of worship=lourdes grotto place_of_worship=mass_rock: Tag:place of worship=mass rock + place_of_worship=musalla: Tag:place of worship=musalla placement=right_of:1: Tag:placement=right of:1 placement=transition: Tag:placement=transition + plant:method=anaerobic_digestion: Tag:plant:method=anaerobic digestion + plant:method=barrage: Tag:plant:method=barrage plant:method=combustion: Tag:plant:method=combustion + plant:method=fission: Tag:plant:method=fission plant:method=gasification: Tag:plant:method=gasification plant:method=lithium-ion: Tag:plant:method=lithium-ion plant:method=photovoltaic: Tag:plant:method=photovoltaic @@ -12546,19 +12902,26 @@ en: plant:method=thermal: Tag:plant:method=thermal plant:method=water-pumped-storage: Tag:plant:method=water-pumped-storage plant:method=water-storage: Tag:plant:method=water-storage + plant:method=wind_turbine: Tag:plant:method=wind turbine plant:source=battery: Tag:plant:source=battery + plant:source=biogas: Tag:plant:source=biogas plant:source=biomass: Tag:plant:source=biomass plant:source=coal: Tag:plant:source=coal + plant:source=diesel: Tag:plant:source=diesel + plant:source=flywheel: Tag:plant:source=flywheel plant:source=gas: Tag:plant:source=gas plant:source=geothermal: Tag:plant:source=geothermal plant:source=hydro: Tag:plant:source=hydro plant:source=nuclear: Tag:plant:source=nuclear plant:source=oil: Tag:plant:source=oil plant:source=solar: Tag:plant:source=solar + plant:source=tidal: Tag:plant:source=tidal plant:source=waste: Tag:plant:source=waste plant:source=wind: Tag:plant:source=wind plant:type=combined_cycle: Tag:plant:type=combined cycle plant:type=gas_turbine: Tag:plant:type=gas turbine + plant:type=lithium_ion: Tag:plant:type=lithium ion + plant:type=reciprocating_engine: Tag:plant:type=reciprocating engine plant:type=solar_photovoltaic_panel: Tag:plant:type=solar photovoltaic panel plant:type=steam_turbine: Tag:plant:type=steam turbine playground=balancebeam: Tag:playground=balancebeam @@ -12593,6 +12956,7 @@ en: police=yes: Tag:police=yes political_division=NL:kamerkieskring: Tag:political division=NL:kamerkieskring political_division=NL:statenkieskring: Tag:political division=NL:statenkieskring + political_division=TR:TBMM: Tag:political division=TR:TBMM political_division=congressional_district: Tag:political division=congressional district political_division=euro_const: Tag:political division=euro const @@ -12634,6 +12998,7 @@ en: priority=regional: Tag:priority=regional prison_camp=concentration_camp: Tag:prison camp=concentration camp prison_camp=extermination_camp: Tag:prison camp=extermination camp + private=government: Tag:private=government private=members: Tag:private=members private=students: Tag:private=students product=beer: Tag:product=beer @@ -12655,6 +13020,7 @@ en: protect_class=1b: Tag:protect class=1b protect_class=2: Tag:protect class=2 protect_class=21: Tag:protect class=21 + protect_class=22: Tag:protect class=22 protect_class=3: Tag:protect class=3 protect_class=4: Tag:protect class=4 protect_class=5: Tag:protect class=5 @@ -12712,6 +13078,7 @@ en: railway=abandoned: Tag:railway=abandoned railway=border: Tag:railway=border railway=buffer_stop: Tag:railway=buffer stop + railway=construction: Tag:railway=construction railway=crossing: Tag:railway=crossing railway=crossing_box: Tag:railway=crossing box railway=crossing_controller: Tag:railway=crossing controller @@ -12776,6 +13143,7 @@ en: religion=none: Tag:religion=none religion=pagan: Tag:religion=pagan religion=self-realization_fellowship: Tag:religion=self-realization fellowship + religion=shamanic: Tag:religion=shamanic religion=shinto: Tag:religion=shinto religion=sikh: Tag:religion=sikh religion=taoist: Tag:religion=taoist @@ -12809,12 +13177,14 @@ en: resource=coal: Tag:resource=coal resource=gravel: Tag:resource=gravel resource=sand: Tag:resource=sand + restriction:bicycle=stop: Tag:restriction:bicycle=stop restriction=no_right_turn_on_red: Tag:restriction=no right turn on red retaining_wall=flood_wall: Tag:retaining wall=flood wall road_marking=solid_stop_line: Tag:road marking=solid stop line roller_coaster=station: Tag:roller coaster=station roller_coaster=support: Tag:roller coaster=support roller_coaster=track: Tag:roller coaster=track + roof:shape=butterfly: Tag:roof:shape=butterfly roof:shape=cone: Tag:roof:shape=cone roof:shape=crosspitched: Tag:roof:shape=crosspitched roof:shape=dome: Tag:roof:shape=dome @@ -12824,7 +13194,10 @@ en: roof:shape=gambrel: Tag:roof:shape=gambrel roof:shape=half-hipped: Tag:roof:shape=half-hipped roof:shape=half_hipped: Tag:roof:shape=half hipped + roof:shape=hip-and-gable: Tag:roof:shape=hip-and-gable roof:shape=hipped: Tag:roof:shape=hipped + roof:shape=hipped-and-gable: Tag:roof:shape=hipped-and-gable + roof:shape=hipped-and-gabled: Tag:roof:shape=hipped-and-gabled roof:shape=mansard: Tag:roof:shape=mansard roof:shape=many: Tag:roof:shape=many roof:shape=onion: Tag:roof:shape=onion @@ -12879,6 +13252,8 @@ en: route=worship: Tag:route=worship rugby=league: Tag:rugby=league rugby=union: Tag:rugby=union + ruins=mosque: Tag:ruins=mosque + ruins=temple: Tag:ruins=temple runway=displaced_threshold: Tag:runway=displaced threshold sailing:tours=yes: Tag:sailing:tours=yes school:gender=female: Tag:school:gender=female @@ -13067,27 +13442,17 @@ en: seamark:fog_signal=yes: Tag:seamark:fog signal=yes seamark:harbour:category=fishing: Tag:seamark:harbour:category=fishing seamark:harbour:category=marina: Tag:seamark:harbour:category=marina - seamark:landmark:category=cairn: Tag:seamark:landmark:category=cairn seamark:landmark:category=cemetery: Tag:seamark:landmark:category=cemetery - seamark:landmark:category=chimney: Tag:seamark:landmark:category=chimney seamark:landmark:category=column: Tag:seamark:landmark:category=column - seamark:landmark:category=cross: Tag:seamark:landmark:category=cross - seamark:landmark:category=dish_aerial: Tag:seamark:landmark:category=dish aerial seamark:landmark:category=dome: Tag:seamark:landmark:category=dome - seamark:landmark:category=flagstaff: Tag:seamark:landmark:category=flagstaff seamark:landmark:category=flare_stack: Tag:seamark:landmark:category=flare stack - seamark:landmark:category=mast: Tag:seamark:landmark:category=mast seamark:landmark:category=memorial: Tag:seamark:landmark:category=memorial seamark:landmark:category=minaret: Tag:seamark:landmark:category=minaret - seamark:landmark:category=monument: Tag:seamark:landmark:category=monument seamark:landmark:category=obelisk: Tag:seamark:landmark:category=obelisk seamark:landmark:category=radar_scanner: Tag:seamark:landmark:category=radar scanner - seamark:landmark:category=spire: Tag:seamark:landmark:category=spire seamark:landmark:category=statue: Tag:seamark:landmark:category=statue - seamark:landmark:category=tower: Tag:seamark:landmark:category=tower seamark:landmark:category=windmill: Tag:seamark:landmark:category=windmill seamark:landmark:category=windmotor: Tag:seamark:landmark:category=windmotor - seamark:landmark:category=windsock: Tag:seamark:landmark:category=windsock seamark:landmark:conspicuity=conspicuous: Tag:seamark:landmark:conspicuity=conspicuous seamark:landmark:function=buddhist_temple: Tag:seamark:landmark:function=buddhist temple @@ -13362,7 +13727,9 @@ en: shelter_type=pavilion: Tag:shelter type=pavilion shelter_type=picnic_shelter: Tag:shelter type=picnic shelter shelter_type=public_transport: Tag:shelter type=public transport + shelter_type=rock_shelter: Tag:shelter type=rock shelter shelter_type=shopping_cart: Tag:shelter type=shopping cart + shelter_type=sun_shelter: Tag:shelter type=sun shelter shelter_type=weather_shelter: Tag:shelter type=weather shelter shelter_type=wetterpilz: Tag:shelter type=wetterpilz shelter_type=wildlife_hide: Tag:shelter type=wildlife hide @@ -13422,6 +13789,7 @@ en: shop=cheese: Tag:shop=cheese shop=chemist: Tag:shop=chemist shop=chocolate: Tag:shop=chocolate + shop=christmas: Tag:shop=christmas shop=clothes: Tag:shop=clothes shop=coffee: Tag:shop=coffee shop=collector: Tag:shop=collector @@ -13446,6 +13814,7 @@ en: shop=doors: Tag:shop=doors shop=dry_cleaning: Tag:shop=dry cleaning shop=e-cigarette: Tag:shop=e-cigarette + shop=eggs: Tag:shop=eggs shop=electrical: Tag:shop=electrical shop=electronics: Tag:shop=electronics shop=energy: Tag:shop=energy @@ -13455,11 +13824,11 @@ en: shop=estate_agent: Tag:shop=estate agent shop=fabric: Tag:shop=fabric shop=fabrics: Tag:shop=fabrics + shop=fan: Tag:shop=fan shop=farm: Tag:shop=farm shop=fashion: Tag:shop=fashion shop=fashion_accessories: Tag:shop=fashion accessories shop=fast_food: Tag:shop=fast food - shop=firearms: Tag:shop=firearms shop=fireplace: Tag:shop=fireplace shop=fireworks: Tag:shop=fireworks shop=fish: Tag:shop=fish @@ -13528,10 +13897,12 @@ en: shop=kiosk: Tag:shop=kiosk shop=kitchen: Tag:shop=kitchen shop=kitchenware: Tag:shop=kitchenware + shop=knives: Tag:shop=knives shop=lamps: Tag:shop=lamps shop=laundromat: Tag:shop=laundromat shop=laundry: Tag:shop=laundry shop=leather: Tag:shop=leather + shop=leatherworking: Tag:shop=leatherworking shop=lighting: Tag:shop=lighting shop=locksmith: Tag:shop=locksmith shop=lottery: Tag:shop=lottery @@ -13566,6 +13937,7 @@ en: shop=office_supplies: Tag:shop=office supplies shop=optician: Tag:shop=optician shop=organic: Tag:shop=organic + shop=orthopedics: Tag:shop=orthopedics shop=outdoor: Tag:shop=outdoor shop=outdoor_power_equipment: Tag:shop=outdoor power equipment shop=outpost: Tag:shop=outpost @@ -13574,6 +13946,7 @@ en: shop=pasta: Tag:shop=pasta shop=pastry: Tag:shop=pastry shop=pawnbroker: Tag:shop=pawnbroker + shop=peanut_butter: Tag:shop=peanut butter shop=perfume: Tag:shop=perfume shop=perfumery: Tag:shop=perfumery shop=pest_control: Tag:shop=pest control @@ -13587,6 +13960,7 @@ en: shop=plant_hire: Tag:shop=plant hire shop=pottery: Tag:shop=pottery shop=power_tools: Tag:shop=power tools + shop=preserving_glassware: Tag:shop=preserving glassware shop=printer_ink: Tag:shop=printer ink shop=printing: Tag:shop=printing shop=psychic: Tag:shop=psychic @@ -13599,7 +13973,9 @@ en: shop=repair: Tag:shop=repair shop=rice: Tag:shop=rice shop=robot: Tag:shop=robot + shop=safety_equipment: Tag:shop=safety equipment shop=salon: Tag:shop=salon + shop=sauna: Tag:shop=sauna shop=scooter: Tag:shop=scooter shop=scuba_diving: Tag:shop=scuba diving shop=seafood: Tag:shop=seafood @@ -13613,6 +13989,7 @@ en: shop=shopping_centre: Tag:shop=shopping centre shop=skate: Tag:shop=skate shop=ski: Tag:shop=ski + shop=smartshop: Tag:shop=smartshop shop=snack: Tag:shop=snack shop=snowmobile: Tag:shop=snowmobile shop=solarium: Tag:shop=solarium @@ -13657,6 +14034,7 @@ en: shop=video_games: Tag:shop=video games shop=watches: Tag:shop=watches shop=water: Tag:shop=water + shop=water_filters: Tag:shop=water filters shop=water_sports: Tag:shop=water sports shop=weapons: Tag:shop=weapons shop=wellness: Tag:shop=wellness @@ -13708,10 +14086,13 @@ en: site_type=roman_villa: Tag:site type=roman villa site_type=settlement: Tag:site type=settlement site_type=tumulus: Tag:site type=tumulus + social_facility:for=disabled: Tag:social facility:for=disabled social_facility:for=homeless: Tag:social facility:for=homeless + social_facility:for=senior: Tag:social facility:for=senior social_facility=ambulatory_care: Tag:social facility=ambulatory care social_facility=assisted_living: Tag:social facility=assisted living social_facility=clothing_bank: Tag:social facility=clothing bank + social_facility=dairy_kitchen: Tag:social facility=dairy kitchen social_facility=day_care: Tag:social facility=day care social_facility=food_bank: Tag:social facility=food bank social_facility=group_home: Tag:social facility=group home @@ -13726,6 +14107,7 @@ en: source:addr:postcode=Isle_of_Man_Government_Planning_Applications: Tag:source:addr:postcode=Isle of Man Government Planning Applications source:addr=GURS: Tag:source:addr=GURS + source:addr=ЕГРН: Tag:source:addr=ЕГРН source:ele=barometric: Tag:source:ele=barometric source:geometry=ACT2016: Tag:source:geometry=ACT2016 source:geometry=ACTMapiRoads: Tag:source:geometry=ACTMapiRoads @@ -13742,10 +14124,14 @@ en: source:maxspeed=BE-VLG:urban: Tag:source:maxspeed=BE-VLG:urban source:maxspeed=BE-WAL:rural: Tag:source:maxspeed=BE-WAL:rural source:maxspeed=BE-WAL:urban: Tag:source:maxspeed=BE-WAL:urban + source:maxspeed=RU:urban: Tag:source:maxspeed=RU:urban source:maxspeed=implicit: Tag:source:maxspeed=implicit + source:maxspeed=sign: Tag:source:maxspeed=sign source:name=LPI_NSW_Base_Map: Tag:source:name=LPI NSW Base Map source:name=NPWS_Estate: Tag:source:name=NPWS Estate source:name=NSW_LPI_Base_Map: Tag:source:name=NSW LPI Base Map + source:population=IBGE_2010: Tag:source:population=IBGE 2010 + source:population=IBGE_2022: Tag:source:population=IBGE 2022 source:position=NPWS_Estate: Tag:source:position=NPWS Estate source=ACT2016: Tag:source=ACT2016 source=ACT2017: Tag:source=ACT2017 @@ -13758,6 +14144,7 @@ en: source=Google: Tag:source=Google source=Google,_2010-01-21: Tag:source=Google, 2010-01-21 source=HiRes_aerial_imagery: Tag:source=HiRes aerial imagery + source=IBGE: Tag:source=IBGE source=Isle_of_Man_Government_1:25000_map_(2007): Tag:source=Isle of Man Government 1:25000 map (2007) source=Isle_of_Man_Government_aerial_imagery_(2001): Tag:source=Isle of Man Government @@ -13798,6 +14185,7 @@ en: sport=badminton: Tag:sport=badminton sport=balle_pelote: Tag:sport=balle pelote sport=bandy: Tag:sport=bandy + sport=barre: Tag:sport=barre sport=base: Tag:sport=base sport=baseball: Tag:sport=baseball sport=basketball: Tag:sport=basketball @@ -13935,6 +14323,7 @@ en: sport=taekwondo: Tag:sport=taekwondo sport=team_handball: Tag:sport=team handball sport=tennis: Tag:sport=tennis + sport=teqball: Tag:sport=teqball sport=tetherball: Tag:sport=tetherball sport=toboggan: Tag:sport=toboggan sport=touch_football: Tag:sport=touch football @@ -13960,6 +14349,7 @@ en: station=monorail: Tag:station=monorail station=subway: Tag:station=subway statue=animal: Tag:statue=animal + statue=buddha: Tag:statue=buddha statue=equestrian: Tag:statue=equestrian statue=virgin: Tag:statue=virgin stile=stepover: Tag:stile=stepover @@ -14041,6 +14431,7 @@ en: surface=rubber: Tag:surface=rubber surface=sand: Tag:surface=sand surface=sett: Tag:surface=sett + surface=shells: Tag:surface=shells surface=snow: Tag:surface=snow surface=soil: Tag:surface=soil surface=stepping_stones: Tag:surface=stepping stones @@ -14074,6 +14465,7 @@ en: switch=disconnector: Tag:switch=disconnector switch=earthing: Tag:switch=earthing switch=mechanical: Tag:switch=mechanical + symbol=Knafelčeva_markacija: Tag:symbol=Knafelčeva markacija tactile_paving=incorrect: Tag:tactile paving=incorrect tactile_paving=no: Tag:tactile paving=no tactile_paving=partial: Tag:tactile paving=partial @@ -14165,6 +14557,7 @@ en: tower:type=anchor: Tag:tower:type=anchor tower:type=bell_tower: Tag:tower:type=bell tower tower:type=bridge: Tag:tower:type=bridge + tower:type=clock: Tag:tower:type=clock tower:type=communication: Tag:tower:type=communication tower:type=cooling: Tag:tower:type=cooling tower:type=defensive: Tag:tower:type=defensive @@ -14187,6 +14580,8 @@ en: tower:type=suspension: Tag:tower:type=suspension tower:type=transposing: Tag:tower:type=transposing tower:type=watchtower: Tag:tower:type=watchtower + townhall:type=barangay: Tag:townhall:type=barangay + townhall:type=town: Tag:townhall:type=town trade=agricultural_supplies: Tag:trade=agricultural supplies trade=building_supplies: Tag:trade=building supplies trade=timber: Tag:trade=timber @@ -14312,6 +14707,7 @@ en: traffic_sign=NL:G11: Tag:traffic sign=NL:G11 traffic_sign=NL:G12a: Tag:traffic sign=NL:G12a traffic_sign=NL:G13: Tag:traffic sign=NL:G13 + traffic_sign=NL:G7: Tag:traffic sign=NL:G7 traffic_sign=NL:L51: Tag:traffic sign=NL:L51 traffic_sign=PL:A-1: Tag:traffic sign=PL:A-1 traffic_sign=PL:A-2: Tag:traffic sign=PL:A-2 @@ -14480,6 +14876,7 @@ en: vending=ice_cubes: Tag:vending=ice cubes vending=ink_cartridges: Tag:vending=ink cartridges vending=laundry_detergent: Tag:vending=laundry detergent + vending=lottery: Tag:vending=lottery vending=milk: Tag:vending=milk vending=news_papers: Tag:vending=news papers vending=newspapers: Tag:vending=newspapers @@ -14537,6 +14934,7 @@ en: water=dock: Tag:water=dock water=drain: Tag:water=drain water=fish_pass: Tag:water=fish pass + water=fishpond: Tag:water=fishpond water=harbour: Tag:water=harbour water=intermittent: Tag:water=intermittent water=kolk: Tag:water=kolk @@ -14556,6 +14954,7 @@ en: water=swale: Tag:water=swale water=tidal: Tag:water=tidal water=wastewater: Tag:water=wastewater + water_source=groundwater: Tag:water source=groundwater water_source=main: Tag:water source=main water_source=river: Tag:water source=river waterway=artificial: Tag:waterway=artificial @@ -14586,7 +14985,6 @@ en: waterway=rapids: Tag:waterway=rapids waterway=river: Tag:waterway=river waterway=riverbank: Tag:waterway=riverbank - waterway=riverbed: Tag:waterway=riverbed waterway=sanitary_dump_station: Tag:waterway=sanitary dump station waterway=seaway: Tag:waterway=seaway waterway=security_lock: Tag:waterway=security lock @@ -14604,6 +15002,7 @@ en: waterway=weir: Tag:waterway=weir weather_control=launchpad: Tag:weather control=launchpad wetland=bog: Tag:wetland=bog + wetland=dambo: Tag:wetland=dambo wetland=fen: Tag:wetland=fen wetland=mangrove: Tag:wetland=mangrove wetland=marsh: Tag:wetland=marsh @@ -14676,8 +15075,6 @@ es: abandoned:railway: ES:Key:abandoned:railway abutters: ES:Key:abutters access: ES:Key:access - access:lhv: ES:Key:access:lhv - access:roadtrain: ES:Key:access:roadtrain addr: ES:Key:addr addr:*: ES:Key:addr:* addr:city: ES:Key:addr:city @@ -14727,7 +15124,7 @@ es: bench: ES:Key:bench bicycle: ES:Key:bicycle bicycle_parking: ES:Key:bicycle parking - bicycle_road: ES:Key:bicycle road + bin: ES:Key:bin board:title: ES:Key:board:title boat: ES:Key:boat bollard: ES:Key:bollard @@ -14855,6 +15252,7 @@ es: 'disused:': 'ES:Key:disused:' disused:*: ES:Key:disused:* disused:railway: ES:Key:disused:railway + divipola: ES:Key:divipola drain: ES:Key:drain drinking_water: ES:Key:drinking water drive_in: ES:Key:drive in @@ -15035,10 +15433,12 @@ es: name:es: ES:Key:name:es name:etymology: ES:Key:name:etymology name:etymology:wikidata: ES:Key:name:etymology:wikidata + name:eu-x-gaceria: ES:Key:name:eu-x-gaceria name:hop: ES:Key:name:hop name:left: ES:Key:name:left name:mtp: ES:Key:name:mtp name:right: ES:Key:name:right + name:signed: ES:Key:name:signed narrow: ES:Key:narrow nat_name: ES:Key:nat name nat_ref: ES:Key:nat ref @@ -15116,6 +15516,7 @@ es: recycling_type: ES:Key:recycling type ref: ES:Key:ref ref:bic: ES:Key:ref:bic + ref:codcat: ES:Key:ref:codcat ref:color: ES:Key:ref:color ref:colour: ES:Key:ref:colour ref:ine: ES:Key:ref:ine @@ -15163,7 +15564,6 @@ es: short_name: ES:Key:short name shoulder: ES:Key:shoulder sidewalk: ES:Key:sidewalk - site_type: ES:Key:site type ski: ES:Key:ski smoothness: ES:Key:smoothness social_facility: ES:Key:social facility @@ -15492,6 +15892,7 @@ es: amenity=stool: ES:Tag:amenity=stool amenity=stripclub: ES:Tag:amenity=stripclub amenity=studio: ES:Tag:amenity=studio + amenity=surf_school: ES:Tag:amenity=surf school amenity=swingerclub: ES:Tag:amenity=swingerclub amenity=table: ES:Tag:amenity=table amenity=taxi: ES:Tag:amenity=taxi @@ -15535,6 +15936,7 @@ es: area=yes: ES:Tag:area=yes artwork_type=graffiti: ES:Tag:artwork type=graffiti artwork_type=sculpture: ES:Tag:artwork type=sculpture + artwork_type=statue: ES:Tag:artwork type=statue atm=yes: ES:Tag:atm=yes attraction=roller_coaster: ES:Tag:attraction=roller coaster attraction=water_slide: ES:Tag:attraction=water slide @@ -15595,6 +15997,7 @@ es: bicycle=no: ES:Tag:bicycle=no bicycle=use_sidepath: ES:Tag:bicycle=use sidepath bicycle=yes: ES:Tag:bicycle=yes + bicycle_road=yes: ES:Tag:bicycle road=yes border_type=baseline: ES:Tag:border type=baseline border_type=contiguous: ES:Tag:border type=contiguous border_type=eez: ES:Tag:border type=eez @@ -15657,6 +16060,7 @@ es: building=construction: ES:Tag:building=construction building=container: ES:Tag:building=container building=cowshed: ES:Tag:building=cowshed + building=data_center: ES:Tag:building=data center building=detached: ES:Tag:building=detached building=digester: ES:Tag:building=digester building=dormitory: ES:Tag:building=dormitory @@ -15894,6 +16298,7 @@ es: cuisine=greek: ES:Tag:cuisine=greek cuisine=grill: ES:Tag:cuisine=grill cuisine=gyro: ES:Tag:cuisine=gyro + cuisine=gyros: ES:Tag:cuisine=gyros cuisine=hot_dog: ES:Tag:cuisine=hot dog cuisine=hot_pot: ES:Tag:cuisine=hot pot cuisine=ice_cream: ES:Tag:cuisine=ice cream @@ -16184,6 +16589,7 @@ es: historic=gallows: ES:Tag:historic=gallows historic=heritage: ES:Tag:historic=heritage historic=highwater_mark: ES:Tag:historic=highwater mark + historic=house: ES:Tag:historic=house historic=locomotive: ES:Tag:historic=locomotive historic=manor: ES:Tag:historic=manor historic=memorial: ES:Tag:historic=memorial @@ -16235,6 +16641,7 @@ es: information=office: ES:Tag:information=office information=tactile_map: ES:Tag:information=tactile map information=visitor_centre: ES:Tag:information=visitor centre + insurance=health: ES:Tag:insurance=health internet_access=no: ES:Tag:internet access=no internet_access=wlan: ES:Tag:internet access=wlan internet_access=yes: ES:Tag:internet access=yes @@ -16291,6 +16698,7 @@ es: landuse=village_green: ES:Tag:landuse=village green landuse=vineyard: ES:Tag:landuse=vineyard landuse=winter_sports: ES:Tag:landuse=winter sports + lawyer=notary: ES:Tag:lawyer=notary leaf_cycle=deciduous: ES:Tag:leaf cycle=deciduous leaf_cycle=evergreen: ES:Tag:leaf cycle=evergreen leaf_cycle=mixed: ES:Tag:leaf cycle=mixed @@ -16379,6 +16787,7 @@ es: man_made=groyne: ES:Tag:man made=groyne man_made=guard_stone: ES:Tag:man made=guard stone man_made=ice_house: ES:Tag:man made=ice house + man_made=insect_hotel: ES:Tag:man made=insect hotel man_made=kiln: ES:Tag:man made=kiln man_made=lighthouse: ES:Tag:man made=lighthouse man_made=manhole: ES:Tag:man made=manhole @@ -16397,6 +16806,7 @@ es: man_made=pump: ES:Tag:man made=pump man_made=pumping_rig: ES:Tag:man made=pumping rig man_made=pumping_station: ES:Tag:man made=pumping station + man_made=quay: ES:Tag:man made=quay man_made=reservoir_covered: ES:Tag:man made=reservoir covered man_made=silo: ES:Tag:man made=silo man_made=snow_fence: ES:Tag:man made=snow fence @@ -16455,6 +16865,7 @@ es: military=trench: ES:Tag:military=trench mooring=guest: ES:Tag:mooring=guest mountain_pass=yes: ES:Tag:mountain pass=yes + name:signed=no: ES:Tag:name:signed=no name=Dollarama: ES:Tag:name=Dollarama name=Herfy: ES:Tag:name=Herfy name=The_Church_of_Jesus_Christ_of_Latter-day_Saints: ES:Tag:name=The Church of @@ -16608,6 +17019,7 @@ es: parking=underground: ES:Tag:parking=underground passenger=yes: ES:Tag:passenger=yes passing_places=yes: ES:Tag:passing places=yes + physically_present=no: ES:Tag:physically present=no place=allotments: ES:Tag:place=allotments place=archipelago: ES:Tag:place=archipelago place=borough: ES:Tag:place=borough @@ -17392,6 +17804,7 @@ es: wetland=reedbed: ES:Tag:wetland=reedbed wetland=tidalflat: ES:Tag:wetland=tidalflat wetland=wet_meadow: ES:Tag:wetland=wet meadow + winter_road=yes: ES:Tag:winter road=yes worship=stations_of_the_cross: ES:Tag:worship=stations of the cross zoo=falconry: ES:Tag:zoo=falconry et: @@ -17527,6 +17940,7 @@ fi: amenity=bureau_de_change: Fi:Tag:amenity=bureau de change amenity=car_rental: Fi:Tag:amenity=car rental amenity=car_sharing: Fi:Tag:amenity=car sharing + amenity=car_wash: Fi:Tag:amenity=car wash amenity=carpet_washing: Fi:Tag:amenity=carpet washing amenity=cinema: Fi:Tag:amenity=cinema amenity=courthouse: Fi:Tag:amenity=courthouse @@ -17549,6 +17963,8 @@ fi: building=church: Fi:Tag:building=church building=garage: Fi:Tag:building=garage building=garages: Fi:Tag:building=garages + hazard=curve: Fi:Tag:hazard=curve + hazard=curves: Fi:Tag:hazard=curves highway=crossing: Fi:Tag:highway=crossing highway=footway: Fi:Tag:highway=footway highway=give_way: Fi:Tag:highway=give way @@ -17609,6 +18025,7 @@ fr: aeroway: FR:Key:aeroway agrarian: FR:Key:agrarian agricultural: FR:Key:agricultural + air_conditioning: FR:Key:air conditioning alt_name: FR:Key:alt name amenity: FR:Key:amenity animal: FR:Key:animal @@ -17619,8 +18036,10 @@ fr: armrest: FR:Key:armrest artist_name: FR:Key:artist name artwork_type: FR:Key:artwork type + assembly_point:tornado: FR:Key:assembly point:tornado attraction: FR:Key:attraction authentication: FR:Key:authentication + authentication:*: FR:Key:authentication:* avalanche_transceiver: FR:Key:avalanche transceiver backcountry: FR:Key:backcountry backrest: FR:Key:backrest @@ -17658,6 +18077,7 @@ fr: bulk_purchase: FR:Key:bulk purchase bus: FR:Key:bus busway: FR:Key:busway + cables: FR:Key:cables cafe: FR:Key:cafe camera:direction: FR:Key:camera:direction camp_site: FR:Key:camp site @@ -17711,6 +18131,7 @@ fr: crossing:markings: FR:Key:crossing:markings cuisine: FR:Key:cuisine currency: FR:Key:currency + currency:XLT: FR:Key:currency:XLT cutting: FR:Key:cutting cycle_barrier: FR:Key:cycle barrier cycle_barrier:installation: FR:Key:cycle barrier:installation @@ -17775,6 +18196,7 @@ fr: female: FR:Key:female fence_type: FR:Key:fence type fire_path: FR:Key:fire path + fishing: FR:Key:fishing fixme: FR:Key:fixme floating: FR:Key:floating flood_prone: FR:Key:flood prone @@ -17835,6 +18257,7 @@ fr: intermittent: FR:Key:intermittent internet_access:ssid: FR:Key:internet access:ssid interval: FR:Key:interval + isced:level: FR:Key:isced:level junction: FR:Key:junction kerb: FR:Key:kerb kindergarten:FR: FR:Key:kindergarten:FR @@ -17852,6 +18275,7 @@ fr: level: FR:Key:level lgbtq: FR:Key:lgbtq lifeguard: FR:Key:lifeguard + line_arrangement: FR:Key:line arrangement line_attachment: FR:Key:line attachment line_management: FR:Key:line management lit: FR:Key:lit @@ -17940,6 +18364,7 @@ fr: overtaking:hgv: FR:Key:overtaking:hgv owner: FR:Key:owner par: FR:Key:par + parish: FR:Key:parish park_ride: FR:Key:park ride parking: FR:Key:parking parking_space: FR:Key:parking space @@ -17948,6 +18373,7 @@ fr: payment:MoyenDePaiement: FR:Key:payment:MoyenDePaiement payment:credit_cards: FR:Key:payment:credit cards payment:foo: FR:Key:payment:foo + pedagogy: FR:Key:pedagogy permanent: FR:Key:permanent phone: FR:Key:phone pilgrimage: FR:Key:pilgrimage @@ -18157,12 +18583,14 @@ fr: windings: FR:Key:windings windings:auto: FR:Key:windings:auto winter_service: FR:Key:winter service + wires: FR:Key:wires xmas:feature: FR:Key:xmas:feature zero_waste: FR:Key:zero waste zone:maxspeed: FR:Key:zone:maxspeed zoo: FR:Key:zoo tag: FIXME=Position_estimated: FR:Tag:FIXME=Position estimated + Man_made=video_wall: FR:Tag:Man made=video wall abandoned:amenity=prison_camp: FR:Tag:abandoned:amenity=prison camp abandoned=yes: FR:Tag:abandoned=yes access=customers: FR:Tag:access=customers @@ -18203,6 +18631,7 @@ fr: amenity=animal_shelter: FR:Tag:amenity=animal shelter amenity=arts_centre: FR:Tag:amenity=arts centre amenity=atm: FR:Tag:amenity=atm + amenity=baby_hatch: FR:Tag:amenity=baby hatch amenity=baking_oven: FR:Tag:amenity=baking oven amenity=bank: FR:Tag:amenity=bank amenity=bar: FR:Tag:amenity=bar @@ -18252,6 +18681,7 @@ fr: amenity=events_venue: FR:Tag:amenity=events venue amenity=fast_food: FR:Tag:amenity=fast food amenity=feeding_place: FR:Tag:amenity=feeding place + amenity=ferry_terminal: FR:Tag:amenity=ferry terminal amenity=fire_hydrant: FR:Tag:amenity=fire hydrant amenity=fire_station: FR:Tag:amenity=fire station amenity=food_court: FR:Tag:amenity=food court @@ -18275,11 +18705,13 @@ fr: amenity=library: FR:Tag:amenity=library amenity=library_dropoff: FR:Tag:amenity=library dropoff amenity=loading_dock: FR:Tag:amenity=loading dock + amenity=locker: FR:Tag:amenity=locker amenity=lounger: FR:Tag:amenity=lounger amenity=love_hotel: FR:Tag:amenity=love hotel amenity=mailroom: FR:Tag:amenity=mailroom amenity=marae: FR:Tag:amenity=marae amenity=marketplace: FR:Tag:amenity=marketplace + amenity=mist_spraying_cooler: FR:Tag:amenity=mist spraying cooler amenity=monastery: FR:Tag:amenity=monastery amenity=mortuary: FR:Tag:amenity=mortuary amenity=motorcycle_parking: FR:Tag:amenity=motorcycle parking @@ -18346,6 +18778,7 @@ fr: artwork_type=sculpture: FR:Tag:artwork type=sculpture atm=yes: FR:Tag:atm=yes attraction=animal: FR:Tag:attraction=animal + attraction=water_slide: FR:Tag:attraction=water slide barrier=bar: FR:Tag:barrier=bar barrier=barrier_board: FR:Tag:barrier=barrier board barrier=block: FR:Tag:barrier=block @@ -18396,6 +18829,7 @@ fr: bicycle=dismount: FR:Tag:bicycle=dismount bicycle=use_sidepath: FR:Tag:bicycle=use sidepath bicycle_road=yes: FR:Tag:bicycle road=yes + boules=petanque: FR:Tag:boules=petanque boundary=administrative: FR:Tag:boundary=administrative boundary=religious_administration: FR:Tag:boundary=religious administration boundary=special_economic_zone: FR:Tag:boundary=special economic zone @@ -18450,6 +18884,7 @@ fr: building=sports_hall: FR:Tag:building=sports hall building=stable: FR:Tag:building=stable building=stadium: FR:Tag:building=stadium + building=static_caravan: FR:Tag:building=static caravan building=stilt_house: FR:Tag:building=stilt house building=sty: FR:Tag:building=sty building=tent: FR:Tag:building=tent @@ -18575,6 +19010,7 @@ fr: emergency=air_rescue_service: FR:Tag:emergency=air rescue service emergency=ambulance_station: FR:Tag:emergency=ambulance station emergency=assembly_point: FR:Tag:emergency=assembly point + emergency=control_centre: FR:Tag:emergency=control centre emergency=defibrillator: FR:Tag:emergency=defibrillator emergency=dry_riser_inlet: FR:Tag:emergency=dry riser inlet emergency=emergency_ward_entrance: FR:Tag:emergency=emergency ward entrance @@ -18802,6 +19238,7 @@ fr: line_management=termination: FR:Tag:line management=termination line_management=transition: FR:Tag:line management=transition line_management=transpose: FR:Tag:line management=transpose + location=overground: FR:Tag:location=overground location=underground: FR:Tag:location=underground man_made=adit: FR:Tag:man made=adit man_made=architecture_line: FR:Tag:man made=architecture line @@ -18828,6 +19265,7 @@ fr: man_made=mineshaft: FR:Tag:man made=mineshaft man_made=monitoring_station: FR:Tag:man made=monitoring station man_made=nesting_site: FR:Tag:man made=nesting site + man_made=outfall: FR:Tag:man made=outfall man_made=petroleum_well: FR:Tag:man made=petroleum well man_made=pier: FR:Tag:man made=pier man_made=planter: FR:Tag:man made=planter @@ -18842,6 +19280,7 @@ fr: man_made=tower: FR:Tag:man made=tower man_made=utility_pole: FR:Tag:man made=utility pole man_made=ventilation_shaft: FR:Tag:man made=ventilation shaft + man_made=video_wall: FR:Tag:man made=video wall man_made=wastewater_plant: FR:Tag:man made=wastewater plant man_made=water_tap: FR:Tag:man made=water tap man_made=water_tower: FR:Tag:man made=water tower @@ -18851,7 +19290,6 @@ fr: man_made=wildlife_crossing: FR:Tag:man made=wildlife crossing man_made=windmill: FR:Tag:man made=windmill man_made=windpump: FR:Tag:man made=windpump - man_made_chimney: FR:Tag:man made chimney marker=aerial: FR:Tag:marker=aerial marker=ground: FR:Tag:marker=ground marker=pedestal: FR:Tag:marker=pedestal @@ -18859,7 +19297,10 @@ fr: marker=post: FR:Tag:marker=post marker=stone: FR:Tag:marker=stone material=concrete: FR:Tag:material=concrete + mechanical_driver=combustion_engine: FR:Tag:mechanical driver=combustion engine mechanical_driver=manual: FR:Tag:mechanical driver=manual + mechanical_driver=reciprocating_solenoid: FR:Tag:mechanical driver=reciprocating + solenoid medical=aed: FR:Tag:medical=aed megalith_type=menhir: FR:Tag:megalith type=menhir memorial=ghost_bike: FR:Tag:memorial=ghost bike @@ -18870,6 +19311,7 @@ fr: natural=anthill: FR:Tag:natural=anthill natural=bare_rock: FR:Tag:natural=bare rock natural=beach: FR:Tag:natural=beach + natural=blockfield: FR:Tag:natural=blockfield natural=cave_entrance: FR:Tag:natural=cave entrance natural=cliff: FR:Tag:natural=cliff natural=coastline: FR:Tag:natural=coastline @@ -18921,6 +19363,7 @@ fr: office=supervised_injection_site: FR:Tag:office=supervised injection site office=surveyor: FR:Tag:office=surveyor office=travel_agent: FR:Tag:office=travel agent + oneway=yes: FR:Tag:oneway=yes opening_hours:signed=no: FR:Tag:opening hours:signed=no operator=EDF: FR:Tag:operator=EDF operator=ERDF: FR:Tag:operator=ERDF @@ -18947,13 +19390,19 @@ fr: pipeline=valve: FR:Tag:pipeline=valve piste:type=nordic: FR:Tag:piste:type=nordic place=city: FR:Tag:place=city + place=country: FR:Tag:place=country + place=county: FR:Tag:place=county + place=district: FR:Tag:place=district place=hamlet: FR:Tag:place=hamlet place=island: FR:Tag:place=island place=isolated_dwelling: FR:Tag:place=isolated dwelling place=locality: FR:Tag:place=locality place=municipality: FR:Tag:place=municipality place=neighbourhood: FR:Tag:place=neighbourhood + place=province: FR:Tag:place=province + place=region: FR:Tag:place=region place=square: FR:Tag:place=square + place=state: FR:Tag:place=state place=suburb: FR:Tag:place=suburb place=town: FR:Tag:place=town place=village: FR:Tag:place=village @@ -19011,6 +19460,7 @@ fr: railway=platform_section: FR:Tag:railway=platform section railway=preserved: FR:Tag:railway=preserved railway=rail: FR:Tag:railway=rail + railway=signal: FR:Tag:railway=signal railway=station: FR:Tag:railway=station railway=subway: FR:Tag:railway=subway railway=subway_entrance: FR:Tag:railway=subway entrance @@ -19138,6 +19588,7 @@ fr: shop=sewing: FR:Tag:shop=sewing shop=shoes: FR:Tag:shop=shoes shop=stationery: FR:Tag:shop=stationery + shop=storage_rental: FR:Tag:shop=storage rental shop=street_vendor: FR:Tag:shop=street vendor shop=supermarket: FR:Tag:shop=supermarket shop=tattoo: FR:Tag:shop=tattoo @@ -19168,6 +19619,7 @@ fr: sport=hockey: FR:Tag:sport=hockey sport=horse_racing: FR:Tag:sport=horse racing sport=motocross: FR:Tag:sport=motocross + sport=pelota: FR:Tag:sport=pelota sport=rugby_league: FR:Tag:sport=rugby league sport=rugby_union: FR:Tag:sport=rugby union sport=sailing: FR:Tag:sport=sailing @@ -19290,6 +19742,7 @@ fr: vending=sweets: FR:Tag:vending=sweets vending=water: FR:Tag:vending=water wall=no: FR:Tag:wall=no + wall=noise_barrier: FR:Tag:wall=noise barrier waste=cigarettes: FR:Tag:waste=cigarettes waste=dog_excrement: FR:Tag:waste=dog excrement water=pond: FR:Tag:water=pond @@ -19328,7 +19781,7 @@ gcf: key: club: Gcf:Key:club name: Gcf:Key:name - name:gcf: GCF:Key:name:gcf + name:gcf: Gcf:Key:name:gcf name:ht: Gcf:Key:name:ht tag: amenity=bench: Gcf:Tag:amenity=bench @@ -19339,6 +19792,7 @@ gcf: amenity=ice_cream: Gcf:Tag:amenity=ice cream amenity=lounger: Gcf:Tag:amenity=lounger amenity=love_hotel: Gcf:Tag:amenity=love hotel + amenity=prison: Gcf:Tag:amenity=prison amenity=smoking_area: Gcf:Tag:amenity=smoking area amenity=telephone: Gcf:Tag:amenity=telephone amenity=toilets: Gcf:Tag:amenity=toilets @@ -19503,6 +19957,7 @@ hu: place: Hu:Key:place railway: Hu:Key:railway ref:HU:edid: Hu:Key:ref:HU:edid + ref:HU:om: Hu:Key:ref:HU:om shop: Hu:Key:shop smoothness: Hu:Key:smoothness surface: Hu:Key:surface @@ -19562,6 +20017,7 @@ it: barrier: IT:Key:barrier basin: IT:Key:basin beauty: IT:Key:beauty + bell_tower: IT:Key:bell tower bicycle: IT:Key:bicycle bicycle_parking: IT:Key:bicycle parking books: IT:Key:books @@ -19644,6 +20100,7 @@ it: maxheight: IT:Key:maxheight maxlength: IT:Key:maxlength maxspeed: IT:Key:maxspeed + maxstay: IT:Key:maxstay maxweight: IT:Key:maxweight maxwidth: IT:Key:maxwidth military: IT:Key:military @@ -19756,6 +20213,7 @@ it: amenity=animal_breeding: IT:Tag:amenity=animal breeding amenity=animal_shelter: IT:Tag:amenity=animal shelter amenity=atm: IT:Tag:amenity=atm + amenity=baby_hatch: IT:Tag:amenity=baby hatch amenity=bank: IT:Tag:amenity=bank amenity=bar: IT:Tag:amenity=bar amenity=bbq: IT:Tag:amenity=bbq @@ -19842,6 +20300,7 @@ it: barrier=toll_booth: IT:Tag:barrier=toll booth barrier=turnstile: IT:Tag:barrier=turnstile barrier=wall: IT:Tag:barrier=wall + barrier=yes: IT:Tag:barrier=yes bicycle_road=yes: IT:Tag:bicycle road=yes bridge=boardwalk: IT:Tag:bridge=boardwalk building=bridge: IT:Tag:building=bridge @@ -19979,6 +20438,7 @@ it: landuse=construction: IT:Tag:landuse=construction landuse=flowerbed: IT:Tag:landuse=flowerbed landuse=greenhouse_horticulture: IT:Tag:landuse=greenhouse horticulture + landuse=residential: IT:Tag:landuse=residential landuse=retail: IT:Tag:landuse=retail landuse=salt_pond: IT:Tag:landuse=salt pond leisure=beach_resort: IT:Tag:leisure=beach resort @@ -19997,6 +20457,7 @@ it: man_made=goods_conveyor: IT:Tag:man made=goods conveyor man_made=mast: IT:Tag:man made=mast man_made=works: IT:Tag:man made=works + meadow=pasture: IT:Tag:meadow=pasture memorial=stolperstein: IT:Tag:memorial=stolperstein natural=bare_rock: IT:Tag:natural=bare rock natural=cape: IT:Tag:natural=cape @@ -20143,6 +20604,7 @@ ja: access:lanes: JA:Key:access:lanes addr: JA:Key:addr addr:*: JA:Key:addr:* + addr:block_number: JA:Key:addr:block number addr:city: JA:Key:addr:city addr:country: JA:Key:addr:country addr:county: JA:Key:addr:county @@ -20175,6 +20637,7 @@ ja: alt_name: JA:Key:alt name amenity: JA:Key:amenity animated: JA:Key:animated + aquaculture: JA:Key:aquaculture archaeological_site: JA:Key:archaeological site architect: JA:Key:architect area: JA:Key:area @@ -20233,6 +20696,7 @@ ja: building: JA:Key:building building:architecture: JA:Key:building:architecture building:colour: JA:Key:building:colour + building:earthquake-resistant: JA:Key:building:earthquake-resistant building:fireproof: JA:Key:building:fireproof building:flats: JA:Key:building:flats building:levels: JA:Key:building:levels @@ -20241,6 +20705,7 @@ ja: building:min_level: JA:Key:building:min level building:part: JA:Key:building:part building:parts: JA:Key:building:parts + building:quake-resistant: JA:Key:building:quake-resistant building:units: JA:Key:building:units building:use: JA:Key:building:use bulk_purchase: JA:Key:bulk purchase @@ -20254,8 +20719,11 @@ ja: camp_type: JA:Key:camp type capacity: JA:Key:capacity capacity:disabled: JA:Key:capacity:disabled + capacity:long: JA:Key:capacity:long + capacity:standard: JA:Key:capacity:standard capital: JA:Key:capital car_wash: JA:Key:car wash + carpenter: JA:Key:carpenter carriage: JA:Key:carriage castle_type: JA:Key:castle type cave:name: JA:Key:cave:name @@ -20272,6 +20740,7 @@ ja: comment: JA:Key:comment communication:mobile_phone: JA:Key:communication:mobile phone community_centre: JA:Key:community centre + community_centre:for: JA:Key:community centre:for condition: JA:Key:condition conditional: JA:Key:conditional construction: JA:Key:construction @@ -20438,6 +20907,7 @@ ja: happy_hours: JA:Key:happy hours harbour: JA:Key:harbour harbour:category: JA:Key:harbour:category + hazard: JA:Key:hazard hazard_prone: JA:Key:hazard prone hazmat: JA:Key:hazmat healthcare: JA:Key:healthcare @@ -20529,6 +20999,7 @@ ja: manhole: JA:Key:manhole manufacturer: JA:Key:manufacturer mapillary: JA:Key:mapillary + marker: JA:Key:marker massage: JA:Key:massage material: JA:Key:material max_age: JA:Key:max age @@ -20775,6 +21246,7 @@ ja: tank: JA:Key:tank taxi: JA:Key:taxi taxon: JA:Key:taxon + telecom: JA:Key:telecom tenant: JA:Key:tenant tents: JA:Key:tents theatre:type: JA:Key:theatre:type @@ -20832,6 +21304,7 @@ ja: water_source: JA:Key:water source waterway: JA:Key:waterway website: JA:Key:website + website:*: JA:Key:website:* wetland: JA:Key:wetland wheelchair: JA:Key:wheelchair wholesale: JA:Key:wholesale @@ -20990,6 +21463,7 @@ ja: amenity=game_feeding: JA:Tag:amenity=game feeding amenity=grave_yard: JA:Tag:amenity=grave yard amenity=grit_bin: JA:Tag:amenity=grit bin + amenity=hookah_lounge: JA:Tag:amenity=hookah lounge amenity=hospital: JA:Tag:amenity=hospital amenity=hunting_stand: JA:Tag:amenity=hunting stand amenity=ice_cream: JA:Tag:amenity=ice cream @@ -21128,6 +21602,7 @@ ja: boundary=administrative: JA:Tag:boundary=administrative boundary=civil: JA:Tag:boundary=civil boundary=economic: JA:Tag:boundary=economic + boundary=hazard: JA:Tag:boundary=hazard boundary=historic: JA:Tag:boundary=historic boundary=local_authority: JA:Tag:boundary=local authority boundary=maritime: JA:Tag:boundary=maritime @@ -21163,6 +21638,7 @@ ja: bridge=trestle: JA:Tag:bridge=trestle bridge=viaduct: JA:Tag:bridge=viaduct building=apartments: JA:Tag:building=apartments + building=bakehouse: JA:Tag:building=bakehouse building=barn: JA:Tag:building=barn building=bridge: JA:Tag:building=bridge building=bungalow: JA:Tag:building=bungalow @@ -21183,6 +21659,7 @@ ja: building=entrance: JA:Tag:building=entrance building=farm: JA:Tag:building=farm building=farm_auxiliary: JA:Tag:building=farm auxiliary + building=fire_lookout: JA:Tag:building=fire lookout building=garage: JA:Tag:building=garage building=garages: JA:Tag:building=garages building=greenhouse: JA:Tag:building=greenhouse @@ -21256,6 +21733,7 @@ ja: craft=handicraft: JA:Tag:craft=handicraft craft=hvac: JA:Tag:craft=hvac craft=insulation: JA:Tag:craft=insulation + craft=interior_decorator: JA:Tag:craft=interior decorator craft=jeweller: JA:Tag:craft=jeweller craft=joiner: JA:Tag:craft=joiner craft=key_cutter: JA:Tag:craft=key cutter @@ -21298,6 +21776,7 @@ ja: cuisine=dessert: JA:Tag:cuisine=dessert cuisine=dumpling: JA:Tag:cuisine=dumpling cuisine=japanese: JA:Tag:cuisine=japanese + cuisine=regional: JA:Tag:cuisine=regional cuisine=sushi: JA:Tag:cuisine=sushi cycle_network=JP:prefectural: JA:Tag:cycle network=JP:prefectural cycleway:both=no: JA:Tag:cycleway:both=no @@ -21327,6 +21806,7 @@ ja: emergency=fire_extinguisher: JA:Tag:emergency=fire extinguisher emergency=fire_hose: JA:Tag:emergency=fire hose emergency=fire_hydrant: JA:Tag:emergency=fire hydrant + emergency=fire_lookout: JA:Tag:emergency=fire lookout emergency=fire_service_inlet: JA:Tag:emergency=fire service inlet emergency=fire_water_pond: JA:Tag:emergency=fire water pond emergency=landing_site: JA:Tag:emergency=landing site @@ -21401,6 +21881,7 @@ ja: government=prosecutor: JA:Tag:government=prosecutor government=register_office: JA:Tag:government=register office government=tax: JA:Tag:government=tax + government=transportation: JA:Tag:government=transportation guidepost=simple: JA:Tag:guidepost=simple healthcare:speciality=gynaecology: JA:Tag:healthcare:speciality=gynaecology healthcare=blood_donation: JA:Tag:healthcare=blood donation @@ -21549,6 +22030,7 @@ ja: landuse=meadow: JA:Tag:landuse=meadow landuse=military: JA:Tag:landuse=military landuse=orchard: JA:Tag:landuse=orchard + landuse=paddy: JA:Tag:landuse=paddy landuse=peat_cutting: JA:Tag:landuse=peat cutting landuse=plant_nursery: JA:Tag:landuse=plant nursery landuse=port: JA:Tag:landuse=port @@ -21668,6 +22150,7 @@ ja: man_made=power_hydro: JA:Tag:man made=power hydro man_made=pumping_station: JA:Tag:man made=pumping station man_made=reservoir_covered: JA:Tag:man made=reservoir covered + man_made=satellite_dish: JA:Tag:man made=satellite dish man_made=silo: JA:Tag:man made=silo man_made=snow_fence: JA:Tag:man made=snow fence man_made=snow_net: JA:Tag:man made=snow net @@ -21783,11 +22266,14 @@ ja: office=charity: JA:Tag:office=charity office=company: JA:Tag:office=company office=construction_company: JA:Tag:office=construction company + office=cooperative: JA:Tag:office=cooperative office=courier: JA:Tag:office=courier office=diplomatic: JA:Tag:office=diplomatic office=educational_institution: JA:Tag:office=educational institution office=employment_agency: JA:Tag:office=employment agency office=estate_agent: JA:Tag:office=estate agent + office=financial: JA:Tag:office=financial + office=financial_advisor: JA:Tag:office=financial advisor office=geodesist: JA:Tag:office=geodesist office=government: JA:Tag:office=government office=insurance: JA:Tag:office=insurance @@ -21807,6 +22293,7 @@ ja: office=surveyor: JA:Tag:office=surveyor office=tax_advisor: JA:Tag:office=tax advisor office=telecommunication: JA:Tag:office=telecommunication + office=therapist: JA:Tag:office=therapist office=tutoring: JA:Tag:office=tutoring oneway=alternating: JA:Tag:oneway=alternating oneway=reversible: JA:Tag:oneway=reversible @@ -21834,6 +22321,8 @@ ja: place=town: JA:Tag:place=town place=village: JA:Tag:place=village plant:method=photovoltaic: JA:Tag:plant:method=photovoltaic + plant:method=thermal: JA:Tag:plant:method=thermal + plant:source=solar: JA:Tag:plant:source=solar police=academy: JA:Tag:police=academy post_office=post_partner: JA:Tag:post office=post partner power=catenary_mast: JA:Tag:power=catenary mast @@ -21925,6 +22414,7 @@ ja: service=spur: JA:Tag:service=spur service=yard: JA:Tag:service=yard shelter_type=gazebo: JA:Tag:shelter type=gazebo + shop=agrarian: JA:Tag:shop=agrarian shop=alcohol: JA:Tag:shop=alcohol shop=anime: JA:Tag:shop=anime shop=antiques: JA:Tag:shop=antiques @@ -21982,6 +22472,7 @@ ja: shop=fireplace: JA:Tag:shop=fireplace shop=fishing: JA:Tag:shop=fishing shop=fishmonger: JA:Tag:shop=fishmonger + shop=flooring: JA:Tag:shop=flooring shop=florist: JA:Tag:shop=florist shop=frame: JA:Tag:shop=frame shop=frozen_food: JA:Tag:shop=frozen food @@ -21999,6 +22490,7 @@ ja: shop=gold_buyer: JA:Tag:shop=gold buyer shop=golf: JA:Tag:shop=golf shop=greengrocer: JA:Tag:shop=greengrocer + shop=grocery: JA:Tag:shop=grocery shop=hairdresser: JA:Tag:shop=hairdresser shop=hardware: JA:Tag:shop=hardware shop=health: JA:Tag:shop=health @@ -22132,6 +22624,8 @@ ja: station=subway: JA:Tag:station=subway street_vendor=yes: JA:Tag:street vendor=yes surface=asphalt: JA:Tag:surface=asphalt + telescope:type=optical: JA:Tag:telescope:type=optical + telescope:type=radio: JA:Tag:telescope:type=radio theatre:type=concert_hall: JA:Tag:theatre:type=concert hall tourism=alpine_hut: JA:Tag:tourism=alpine hut tourism=apartment: JA:Tag:tourism=apartment @@ -22176,6 +22670,8 @@ ja: type=public_transport: JA:Tag:type=public transport type=waterway: JA:Tag:type=waterway usage=irrigation: JA:Tag:usage=irrigation + usage=test: JA:Tag:usage=test + usage=transportation: JA:Tag:usage=transportation utility=chemical: JA:Tag:utility=chemical utility=street_lighting: JA:Tag:utility=street lighting vehicle=destination: JA:Tag:vehicle=destination @@ -22220,6 +22716,7 @@ ja: waterway=offshore_field: JA:Tag:waterway=offshore field waterway=river: JA:Tag:waterway=river waterway=seaway: JA:Tag:waterway=seaway + waterway=sluice_gate: JA:Tag:waterway=sluice gate waterway=stream: JA:Tag:waterway=stream waterway=turning_point: JA:Tag:waterway=turning point waterway=water_point: JA:Tag:waterway=water point @@ -22245,40 +22742,54 @@ ko: amenity: Ko:Key:amenity architect: Ko:Key:architect artist_name: Ko:Key:artist name + attraction: Ko:Key:attraction attribution: Ko:Key:attribution automatic_door: Ko:Key:automatic door books: Ko:Key:books + brand: Ko:Key:brand brand:wikidata: Ko:Key:brand:wikidata brand:wikipedia: Ko:Key:brand:wikipedia building: Ko:Key:building + building:earthquake-resistant: Ko:Key:building:earthquake-resistant building:levels: Ko:Key:building:levels - bunker_type=bomb_shelter: Ko:Key:bunker type=bomb shelter + building:quake-resistant: Ko:Key:building:quake-resistant + bus_bay: Ko:Key:bus bay + busway: Ko:Key:busway contact:facebook: Ko:Key:contact:facebook contact:twitter: Ko:Key:contact:twitter + covered: Ko:Key:covered crossing: Ko:Key:crossing cuisine: Ko:Key:cuisine denotation: Ko:Key:denotation + diet:vegan: Ko:Key:diet:vegan drink: Ko:Key:drink drive_through: Ko:Key:drive through ele: Ko:Key:ele emergency: Ko:Key:emergency + fire_mains: Ko:Key:fire mains fuel: Ko:Key:fuel healthcare: Ko:Key:healthcare heritage: Ko:Key:heritage highway: Ko:Key:highway historic: Ko:Key:historic + indoor: Ko:Key:indoor intermittent: Ko:Key:intermittent + junction: Ko:Key:junction landuse: Ko:Key:landuse + lanes:psv: Ko:Key:lanes:psv leisure: Ko:Key:leisure level: Ko:Key:level line: Ko:Key:line local_ref: Ko:Key:local ref name: Ko:Key:name name:ja: Ko:Key:name:ja + name:ko: Ko:Key:name:ko operator:type: Ko:Key:operator:type reservation: Ko:Key:reservation residential: Ko:Key:residential + review_requested: Ko:Key:review requested roundtrip: Ko:Key:roundtrip + route_ref: Ko:Key:route ref self_service: Ko:Key:self service shop: Ko:Key:shop smoothness: Ko:Key:smoothness @@ -22287,11 +22798,16 @@ ko: toll: Ko:Key:toll townhall:type: Ko:Key:townhall:type tracktype: Ko:Key:tracktype + traffic_sign: Ko:Key:traffic sign traffic_signals: Ko:Key:traffic signals traffic_signals:floor_vibration: Ko:Key:traffic signals:floor vibration traffic_signals:sound: Ko:Key:traffic signals:sound + trolley:deposit: Ko:Key:trolley:deposit tunnel: Ko:Key:tunnel turn: Ko:Key:turn + was:amenity: Ko:Key:was:amenity + water: Ko:Key:water + waterway: Ko:Key:waterway website: Ko:Key:website wheelchair: Ko:Key:wheelchair wikipedia: Ko:Key:wikipedia @@ -22336,6 +22852,7 @@ ko: amenity=food_court: Ko:Tag:amenity=food court amenity=fountain: Ko:Tag:amenity=fountain amenity=fuel: Ko:Tag:amenity=fuel + amenity=grave_yard: Ko:Tag:amenity=grave yard amenity=grit_bin: Ko:Tag:amenity=grit bin amenity=hospital: Ko:Tag:amenity=hospital amenity=ice_cream: Ko:Tag:amenity=ice cream @@ -22357,6 +22874,7 @@ ko: amenity=public_bookcase: Ko:Tag:amenity=public bookcase amenity=restaurant: Ko:Tag:amenity=restaurant amenity=school: Ko:Tag:amenity=school + amenity=shelter: Ko:Tag:amenity=shelter amenity=social_centre: Ko:Tag:amenity=social centre amenity=social_facility: Ko:Tag:amenity=social facility amenity=studio: Ko:Tag:amenity=studio @@ -22373,16 +22891,28 @@ ko: building=bakehouse: Ko:Tag:building=bakehouse building=cabin: Ko:Tag:building=cabin building=gatehouse: Ko:Tag:building=gatehouse + building=greenhouse: Ko:Tag:building=greenhouse + building=house: Ko:Tag:building=house building=parking: Ko:Tag:building=parking building=shrine: Ko:Tag:building=shrine + bunker_type=bomb_shelter: Ko:Tag:bunker type=bomb shelter + cemetery=grave: Ko:Tag:cemetery=grave content=fuel: Ko:Tag:content=fuel craft=tailor: Ko:Tag:craft=tailor + crop=rice: Ko:Tag:crop=rice crossing=traffic_signals: Ko:Tag:crossing=traffic signals cuisine=korean: Ko:Tag:cuisine=korean + fire_mains=dry: Ko:Tag:fire mains=dry + fire_mains=wet: Ko:Tag:fire mains=wet ford=stepping_stones: Ko:Tag:ford=stepping stones + geological=columnar_jointing: Ko:Tag:geological=columnar jointing + hazard=school_zone: Ko:Tag:hazard=school zone + hazard=silver_zone: Ko:Tag:hazard=silver zone healthcare=blood_donation: Ko:Tag:healthcare=blood donation healthcare=laboratory: Ko:Tag:healthcare=laboratory highway=bus_stop: Ko:Tag:highway=bus stop + highway=busway: Ko:Tag:highway=busway + highway=corridor: Ko:Tag:highway=corridor highway=elevator: Ko:Tag:highway=elevator highway=motorway: Ko:Tag:highway=motorway highway=motorway_link: Ko:Tag:highway=motorway link @@ -22396,37 +22926,63 @@ ko: highway=toll_gantry: Ko:Tag:highway=toll gantry highway=track: Ko:Tag:highway=track highway=traffic_signals: Ko:Tag:highway=traffic signals + highway=trailhead: Ko:Tag:highway=trailhead highway=trunk: Ko:Tag:highway=trunk + highway=unclassified: Ko:Tag:highway=unclassified historic=archaeological_site: Ko:Tag:historic=archaeological site + historic=boundary_stone: Ko:Tag:historic=boundary stone junction=yes: Ko:Tag:junction=yes landuse=allotments: Ko:Tag:landuse=allotments + landuse=cemetery: Ko:Tag:landuse=cemetery landuse=commercial: Ko:Tag:landuse=commercial landuse=construction: Ko:Tag:landuse=construction landuse=education: Ko:Tag:landuse=education landuse=farmland: Ko:Tag:landuse=farmland landuse=farmyard: Ko:Tag:landuse=farmyard landuse=forest: Ko:Tag:landuse=forest + landuse=greenery: Ko:Tag:landuse=greenery + landuse=greenhouse_horticulture: Ko:Tag:landuse=greenhouse horticulture landuse=industrial: Ko:Tag:landuse=industrial + landuse=meadow: Ko:Tag:landuse=meadow + landuse=paddy: Ko:Tag:landuse=paddy landuse=residential: Ko:Tag:landuse=residential landuse=retail: Ko:Tag:landuse=retail + landuse=shrubs: Ko:Tag:landuse=shrubs landuse=traffic_island: Ko:Tag:landuse=traffic island leisure=disc_golf_course: Ko:Tag:leisure=disc golf course leisure=garden: Ko:Tag:leisure=garden + leisure=park: Ko:Tag:leisure=park man_made=hongsalmun: Ko:Tag:man made=hongsalmun man_made=iljumun: Ko:Tag:man made=iljumun man_made=mast: Ko:Tag:man made=mast + man_made=planter: Ko:Tag:man made=planter + man_made=sign: Ko:Tag:man made=sign man_made=surveillance: Ko:Tag:man made=surveillance + megalith_type=dolmen: Ko:Tag:megalith type=dolmen military=range: Ko:Tag:military=range + natural=blockfield: Ko:Tag:natural=blockfield natural=grassland: Ko:Tag:natural=grassland + natural=scree: Ko:Tag:natural=scree natural=spring: Ko:Tag:natural=spring natural=tree: Ko:Tag:natural=tree + natural=wetland: Ko:Tag:natural=wetland noname=yes: Ko:Tag:noname=yes + office=cooperative: Ko:Tag:office=cooperative office=coworking: Ko:Tag:office=coworking + parking=underground: Ko:Tag:parking=underground place=hamlet: Ko:Tag:place=hamlet place=town: Ko:Tag:place=town place=village: Ko:Tag:place=village + public_transport=platform: Ko:Tag:public transport=platform public_transport=stop_area: Ko:Tag:public transport=stop area railway=rail: Ko:Tag:railway=rail + religion=shamanic: Ko:Tag:religion=shamanic + roof:shape=hip-and-gable: Ko:Tag:roof:shape=hip-and-gable + roof:shape=hipped-and-gable: Ko:Tag:roof:shape=hipped-and-gable + roof:shape=hipped-and-gabled: Ko:Tag:roof:shape=hipped-and-gabled + route=foot: Ko:Tag:route=foot + service=driveway: Ko:Tag:service=driveway + shelter_type=public_transport: Ko:Tag:shelter type=public transport shop=baby_goods: Ko:Tag:shop=baby goods shop=bag: Ko:Tag:shop=bag shop=bakery: Ko:Tag:shop=bakery @@ -22461,10 +23017,14 @@ ko: shop=wine: Ko:Tag:shop=wine sport=martial_arts: Ko:Tag:sport=martial arts sport=taekwondo: Ko:Tag:sport=taekwondo + surface=mud: Ko:Tag:surface=mud toll=yes: Ko:Tag:toll=yes tourism=attraction: Ko:Tag:tourism=attraction traffic_calming=island: Ko:Tag:traffic calming=island waterway=ditch: Ko:Tag:waterway=ditch + waterway=drain: Ko:Tag:waterway=drain + waterway=tidal_channel: Ko:Tag:waterway=tidal channel + wetland=bog: Ko:Tag:wetland=bog lt: key: cycleway: Lt:Key:cycleway @@ -22524,12 +23084,14 @@ nl: leaf_cycle: NL:Key:leaf cycle leisure: NL:Key:leisure man_made: NL:Key:man made + mdb_id: NL:Key:mdb id military: NL:Key:military name: NL:Key:name natural: NL:Key:natural network: NL:Key:network network:type: NL:Key:network:type office: NL:Key:office + oneway: NL:Key:oneway place: NL:Key:place playground: NL:Key:playground population: NL:Key:population @@ -22553,6 +23115,7 @@ nl: wheelchair: NL:Key:wheelchair xmas:feature: NL:Key:xmas:feature tag: + amenity=baby_hatch: NL:Tag:amenity=baby hatch amenity=bank: NL:Tag:amenity=bank amenity=bench: NL:Tag:amenity=bench amenity=bicycle_parking: NL:Tag:amenity=bicycle parking @@ -22566,6 +23129,7 @@ nl: amenity=vending_machine: NL:Tag:amenity=vending machine amenity=waste_basket: NL:Tag:amenity=waste basket barrier=bollard: NL:Tag:barrier=bollard + barrier=cattle_grid: NL:Tag:barrier=cattle grid barrier=fence: NL:Tag:barrier=fence barrier=hedge: NL:Tag:barrier=hedge barrier=sump_buster: NL:Tag:barrier=sump buster @@ -22739,6 +23303,7 @@ pl: aerialway: Pl:Key:aerialway aerialway:drag_lift: Pl:Key:aerialway:drag lift aeroway: Pl:Key:aeroway + after_school: Pl:Key:after school agrarian: Pl:Key:agrarian agricultural: Pl:Key:agricultural alt_name: Pl:Key:alt name @@ -22799,6 +23364,7 @@ pl: cargo: Pl:Key:cargo castle_type: Pl:Key:castle type cemetery: Pl:Key:cemetery + charge: Pl:Key:charge check_date: Pl:Key:check date church:type: Pl:Key:church:type circuits: Pl:Key:circuits @@ -22873,6 +23439,7 @@ pl: end_date: Pl:Key:end date entrance: Pl:Key:entrance est_width: Pl:Key:est width + faces: Pl:Key:faces fair_trade: Pl:Key:fair trade farmyard: Pl:Key:farmyard fast_food: Pl:Key:fast food @@ -23008,12 +23575,14 @@ pl: moved: Pl:Key:moved name: Pl:Key:name name:etymology: Pl:Key:name:etymology + name:rue: Pl:Key:name:rue nat_ref: Pl:Key:nat ref natural: Pl:Key:natural network: Pl:Key:network non_existent_levels: Pl:Key:non existent levels note: Pl:Key:note nudism: Pl:Key:nudism + nursery: Pl:Key:nursery office: Pl:Key:office old_addr:housenumber: Pl:Key:old addr:housenumber old_name: Pl:Key:old name @@ -23045,6 +23614,7 @@ pl: population: Pl:Key:population post_box:type: Pl:Key:post box:type power: Pl:Key:power + preschool: Pl:Key:preschool pressure: Pl:Key:pressure priority: Pl:Key:priority produce: Pl:Key:produce @@ -23056,6 +23626,7 @@ pl: pump: Pl:Key:pump railway: Pl:Key:railway railway:area: Pl:Key:railway:area + railway:position: Pl:Key:railway:position ramp: Pl:Key:ramp razed: Pl:Key:razed 'razed:': 'Pl:Key:razed:' @@ -23075,6 +23646,7 @@ pl: reservation: Pl:Key:reservation residential: Pl:Key:residential resource: Pl:Key:resource + river:waterway_distance: Pl:Key:river:waterway distance roof:colour: Pl:Key:roof:colour roof:direction: Pl:Key:roof:direction roof:material: Pl:Key:roof:material @@ -23101,7 +23673,6 @@ pl: shower: Pl:Key:shower shrine: Pl:Key:shrine sidewalk: Pl:Key:sidewalk - site_type: Pl:Key:site type size: Pl:Key:size smokefree: Pl:Key:smokefree smoking: Pl:Key:smoking @@ -23530,6 +24101,7 @@ pl: bunker_type=gun_emplacement: Pl:Tag:bunker type=gun emplacement bunker_type=technical: Pl:Tag:bunker type=technical busway=lane: Pl:Tag:busway=lane + canoe=put_in: Pl:Tag:canoe=put in castle_type=castrum: Pl:Tag:castle type=castrum castle_type=defensive: Pl:Tag:castle type=defensive castle_type=fortress: Pl:Tag:castle type=fortress @@ -23598,6 +24170,7 @@ pl: cycleway=opposite_track: Pl:Tag:cycleway=opposite track cycleway=share_busway: Pl:Tag:cycleway=share busway cycleway=track: Pl:Tag:cycleway=track + diplomatic=consulate: Pl:Tag:diplomatic=consulate emergency=ambulance_station: Pl:Tag:emergency=ambulance station emergency=defibrillator: Pl:Tag:emergency=defibrillator emergency=emergency_ward_entrance: Pl:Tag:emergency=emergency ward entrance @@ -24029,6 +24602,7 @@ pl: office=charity: Pl:Tag:office=charity office=company: Pl:Tag:office=company office=courier: Pl:Tag:office=courier + office=diplomatic: Pl:Tag:office=diplomatic office=educational_institution: Pl:Tag:office=educational institution office=employment_agency: Pl:Tag:office=employment agency office=energy_supplier: Pl:Tag:office=energy supplier @@ -24255,6 +24829,7 @@ pl: shop=fishmonger: Pl:Tag:shop=fishmonger shop=flooring: Pl:Tag:shop=flooring shop=florist: Pl:Tag:shop=florist + shop=food: Pl:Tag:shop=food shop=frame: Pl:Tag:shop=frame shop=frozen_food: Pl:Tag:shop=frozen food shop=fuel: Pl:Tag:shop=fuel @@ -24267,6 +24842,7 @@ pl: shop=gift: Pl:Tag:shop=gift shop=golf: Pl:Tag:shop=golf shop=greengrocer: Pl:Tag:shop=greengrocer + shop=grocery: Pl:Tag:shop=grocery shop=haberdashery: Pl:Tag:shop=haberdashery shop=hairdresser: Pl:Tag:shop=hairdresser shop=hairdresser_supply: Pl:Tag:shop=hairdresser supply @@ -24317,6 +24893,7 @@ pl: shop=pet: Pl:Tag:shop=pet shop=pet_grooming: Pl:Tag:shop=pet grooming shop=photo: Pl:Tag:shop=photo + shop=photo_studio: Pl:Tag:shop=photo studio shop=pottery: Pl:Tag:shop=pottery shop=power_tools: Pl:Tag:shop=power tools shop=printer_ink: Pl:Tag:shop=printer ink @@ -24386,10 +24963,13 @@ pl: sport=aikido: Pl:Tag:sport=aikido sport=american_football: Pl:Tag:sport=american football sport=calisthenics: Pl:Tag:sport=calisthenics + sport=canoe: Pl:Tag:sport=canoe sport=climbing: Pl:Tag:sport=climbing sport=equestrian: Pl:Tag:sport=equestrian sport=ice_hockey: Pl:Tag:sport=ice hockey sport=soccer: Pl:Tag:sport=soccer + sport=table_soccer: Pl:Tag:sport=table soccer + sport=teqball: Pl:Tag:sport=teqball sport=weightlifting: Pl:Tag:sport=weightlifting surface=asphalt: Pl:Tag:surface=asphalt surface=concrete:lanes: Pl:Tag:surface=concrete:lanes @@ -24432,11 +25012,10 @@ pl: traffic_calming=island: Pl:Tag:traffic calming=island traffic_calming=table: Pl:Tag:traffic calming=table traffic_sign=PL:D-42: Pl:Tag:traffic sign=PL:D-42 - traffic_sign=PL:D-43: PL:Tag:traffic sign=PL:D-43 + traffic_sign=PL:D-43: Pl:Tag:traffic sign=PL:D-43 traffic_sign=city_limit: Pl:Tag:traffic sign=city limit tunnel=culvert: Pl:Tag:tunnel=culvert type=public_transport: Pl:Tag:type=public transport - vending: Pl:Tag:vending vending=admission_tickets: Pl:Tag:vending=admission tickets vending=bottle_return: Pl:Tag:vending=bottle return vending=candles: Pl:Tag:vending=candles @@ -24526,7 +25105,6 @@ pnb: name:pnb: Pnb:Key:name:pnb proposal: key: - gluten_free: Proposal:Key:gluten free gtfs:feed: Proposal:Key:gtfs:feed gtfs:name: Proposal:Key:gtfs:name gtfs:release_date: Proposal:Key:gtfs:release date @@ -24534,6 +25112,7 @@ proposal: gtfs:shape_id: Proposal:Key:gtfs:shape id gtfs:trip_id: Proposal:Key:gtfs:trip id gtfs:trip_id:sample: Proposal:Key:gtfs:trip id:sample + logistics: Proposal:Key:logistics operator:guid: Proposal:Key:operator:guid tag: boundary=economic: Proposal:Tag:boundary=economic @@ -24928,6 +25507,7 @@ pt: building=church: Pt:Tag:building=church building=commercial: Pt:Tag:building=commercial building=conservatory: Pt:Tag:building=conservatory + building=guardhouse: Pt:Tag:building=guardhouse building=house: Pt:Tag:building=house building=residential: Pt:Tag:building=residential building=roof: Pt:Tag:building=roof @@ -26164,9 +26744,8 @@ ru: abutters: RU:Key:abutters access: RU:Key:access access:lanes: RU:Key:access:lanes - access:lhv: RU:Key:access:lhv - access:roadtrain: RU:Key:access:roadtrain addr: RU:Key:addr + 'addr:': 'RU:Key:addr:' addr:*: RU:Key:addr:* addr:block: RU:Key:addr:block addr:city: RU:Key:addr:city @@ -26187,6 +26766,7 @@ ru: addr:postcode: RU:Key:addr:postcode addr:province: RU:Key:addr:province addr:region: RU:Key:addr:region + addr:sector: RU:Key:addr:sector addr:state: RU:Key:addr:state addr:street: RU:Key:addr:street addr:streetnumber: RU:Key:addr:streetnumber @@ -26210,6 +26790,7 @@ ru: area: RU:Key:area area:aeroway: RU:Key:area:aeroway area:highway: RU:Key:area:highway + armrest: RU:Key:armrest artist_name: RU:Key:artist name artwork_type: RU:Key:artwork type assisted_trail: RU:Key:assisted trail @@ -26279,6 +26860,7 @@ ru: building:parts: RU:Key:building:parts building:place: RU:Key:building:place building:prefabricated: RU:Key:building:prefabricated + building:quake-resistant: RU:Key:building:quake-resistant building:ruian:type: RU:Key:building:ruian:type building:soft_storey: RU:Key:building:soft storey building:structure: RU:Key:building:structure @@ -26326,6 +26908,7 @@ ru: check_date:opening_hours: RU:Key:check date:opening hours checkpoint: RU:Key:checkpoint church:type: RU:Key:church:type + circumference: RU:Key:circumference city_limit: RU:Key:city limit class:bicycle: RU:Key:class:bicycle clli: RU:Key:clli @@ -26335,6 +26918,7 @@ ru: comment: RU:Key:comment communication:bos: RU:Key:communication:bos community_centre: RU:Key:community centre + community_centre:for: RU:Key:community centre:for company: RU:Key:company compressed_air: RU:Key:compressed air condo: RU:Key:condo @@ -26375,9 +26959,11 @@ ru: cycleway:foot: RU:Key:cycleway:foot cycleway:lane: RU:Key:cycleway:lane cycleway:left: RU:Key:cycleway:left + cycleway:left:buffer: RU:Key:cycleway:left:buffer cycleway:left:lane: RU:Key:cycleway:left:lane cycleway:left:oneway: RU:Key:cycleway:left:oneway cycleway:right: RU:Key:cycleway:right + cycleway:right:buffer: RU:Key:cycleway:right:buffer cycleway:right:lane: RU:Key:cycleway:right:lane cycleway:right:oneway: RU:Key:cycleway:right:oneway cycleway:right:surface: RU:Key:cycleway:right:surface @@ -26400,6 +26986,7 @@ ru: diplomatic: RU:Key:diplomatic direction: RU:Key:direction dispensing: RU:Key:dispensing + dist: RU:Key:dist disused: RU:Key:disused 'disused:': 'RU:Key:disused:' disused:*: RU:Key:disused:* @@ -26473,6 +27060,7 @@ ru: generator:source: RU:Key:generator:source genus: RU:Key:genus glideslope: RU:Key:glideslope + golf:par: RU:Key:golf:par government: RU:Key:government grades: RU:Key:grades grassland: RU:Key:grassland @@ -26487,6 +27075,7 @@ ru: hazard: RU:Key:hazard hazard:animal: RU:Key:hazard:animal hazmat: RU:Key:hazmat + health_facility:CD: RU:Key:health facility:CD healthcare: RU:Key:healthcare height: RU:Key:height heritage: RU:Key:heritage @@ -26514,6 +27103,7 @@ ru: int_name: RU:Key:int name intermittent: RU:Key:intermittent internet_access: RU:Key:internet access + irrigation: RU:Key:irrigation is_in: RU:Key:is in isced:level: RU:Key:isced:level isced:level:1997: RU:Key:isced:level:1997 @@ -26522,6 +27112,7 @@ ru: junction: RU:Key:junction karaoke: RU:Key:karaoke kerb: RU:Key:kerb + kneipp_water_cure: RU:Key:kneipp water cure kons:inscription_date: RU:Key:kons:inscription date ladder: RU:Key:ladder lamp_mount: RU:Key:lamp mount @@ -26539,6 +27130,7 @@ ru: level: RU:Key:level level:ref: RU:Key:level:ref license_classes: RU:Key:license classes + listed_status: RU:Key:listed status lit: RU:Key:lit living_street: RU:Key:living street loc_name: RU:Key:loc name @@ -26612,6 +27204,7 @@ ru: name:ru: RU:Key:name:ru name:ru:word_stress: RU:Key:name:ru:word stress name:vi-Hani: RU:Key:name:vi-Hani + narrow: RU:Key:narrow nat_name: RU:Key:nat name nat_ref: RU:Key:nat ref natural: RU:Key:natural @@ -26620,6 +27213,7 @@ ru: ncn_milepost: RU:Key:ncn milepost ncn_ref: RU:Key:ncn ref network: RU:Key:network + newspaper_tubes: RU:Key:newspaper tubes next_check_date: RU:Key:next check date no_overtaking: RU:Key:no overtaking noaddress: RU:Key:noaddress @@ -26646,6 +27240,7 @@ ru: operator:wikipedia: RU:Key:operator:wikipedia orientation: RU:Key:orientation origin: RU:Key:origin + oven: RU:Key:oven overtaking: RU:Key:overtaking owner: RU:Key:owner ownership: RU:Key:ownership @@ -26667,6 +27262,7 @@ ru: phone: RU:Key:phone picnic_table: RU:Key:picnic table pipeline: RU:Key:pipeline + piste:grooming: RU:Key:piste:grooming piste:type: RU:Key:piste:type place: RU:Key:place place:CN: RU:Key:place:CN @@ -26705,6 +27301,7 @@ ru: recycling_type: RU:Key:recycling type ref: RU:Key:ref ref:BLfD: RU:Key:ref:BLfD + ref:GB:imher: RU:Key:ref:GB:imher ref:GB:nhle: RU:Key:ref:GB:nhle ref:IE:niah: RU:Key:ref:IE:niah ref:RS:nkd: RU:Key:ref:RS:nkd @@ -26722,6 +27319,7 @@ ru: reg_ref: RU:Key:reg ref region:type: RU:Key:region:type religion: RU:Key:religion + removed:building: RU:Key:removed:building rental: RU:Key:rental research: RU:Key:research reservation: RU:Key:reservation @@ -26729,6 +27327,8 @@ ru: residential: RU:Key:residential resort: RU:Key:resort resource: RU:Key:resource + restaurant: RU:Key:restaurant + retreat: RU:Key:retreat review_requested: RU:Key:review requested rhn_ref: RU:Key:rhn ref right: RU:Key:right @@ -26745,6 +27345,7 @@ ru: ruined: RU:Key:ruined 'ruined:': 'RU:Key:ruined:' ruined:*: RU:Key:ruined:* + ruined:building: RU:Key:ruined:building ruins: RU:Key:ruins rungs: RU:Key:rungs sac_scale: RU:Key:sac scale @@ -26754,6 +27355,7 @@ ru: sauna: RU:Key:sauna school: RU:Key:school school:type: RU:Key:school:type + school_bus: RU:Key:school bus scout: RU:Key:scout scuba_diving:rental: RU:Key:scuba diving:rental sculpture_type: RU:Key:sculpture type @@ -26783,6 +27385,8 @@ ru: smoothness: RU:Key:smoothness snowplowing: RU:Key:snowplowing social_facility: RU:Key:social facility + social_facility:for: RU:Key:social facility:for + socket: RU:Key:socket sorting_name: RU:Key:sorting name source: RU:Key:source source:addr: RU:Key:source:addr @@ -26796,6 +27400,7 @@ ru: statue: RU:Key:statue step_count: RU:Key:step count stove: RU:Key:stove + studio: RU:Key:studio substance: RU:Key:substance supervised: RU:Key:supervised surface: RU:Key:surface @@ -26816,11 +27421,13 @@ ru: terrace: RU:Key:terrace theatre:genre: RU:Key:theatre:genre theatre:type: RU:Key:theatre:type + tidal: RU:Key:tidal todo: RU:Key:todo toilets: RU:Key:toilets toilets:wheelchair: RU:Key:toilets:wheelchair toll: RU:Key:toll tourism: RU:Key:tourism + tourist_bus: RU:Key:tourist bus tower:type: RU:Key:tower:type townhall:type: RU:Key:townhall:type tracktype: RU:Key:tracktype @@ -26980,9 +27587,11 @@ ru: amenity=bicycle_rental: RU:Tag:amenity=bicycle rental amenity=bicycle_repair_station: RU:Tag:amenity=bicycle repair station amenity=bicycle_trailer_sharing: RU:Tag:amenity=bicycle trailer sharing + amenity=bicycle_wash: RU:Tag:amenity=bicycle wash amenity=biergarten: RU:Tag:amenity=biergarten amenity=binoculars: RU:Tag:amenity=binoculars amenity=bird_bath: RU:Tag:amenity=bird bath + amenity=blood_bank: RU:Tag:amenity=blood bank amenity=boat_rental: RU:Tag:amenity=boat rental amenity=boat_sharing: RU:Tag:amenity=boat sharing amenity=boat_storage: RU:Tag:amenity=boat storage @@ -26992,6 +27601,8 @@ ru: amenity=bureau_de_change: RU:Tag:amenity=bureau de change amenity=bus_station: RU:Tag:amenity=bus station amenity=cafe: RU:Tag:amenity=cafe + amenity=canteen: RU:Tag:amenity=canteen + amenity=car_pooling: RU:Tag:amenity=car pooling amenity=car_rental: RU:Tag:amenity=car rental amenity=car_sharing: RU:Tag:amenity=car sharing amenity=car_wash: RU:Tag:amenity=car wash @@ -27011,13 +27622,18 @@ ru: amenity=community_centre: RU:Tag:amenity=community centre amenity=compressed_air: RU:Tag:amenity=compressed air amenity=concert_hall: RU:Tag:amenity=concert hall + amenity=conference_centre: RU:Tag:amenity=conference centre + amenity=convention_centre: RU:Tag:amenity=convention centre amenity=courthouse: RU:Tag:amenity=courthouse amenity=coworking_space: RU:Tag:amenity=coworking space amenity=crematorium: RU:Tag:amenity=crematorium + amenity=crypt: RU:Tag:amenity=crypt amenity=customs: RU:Tag:amenity=customs amenity=dancing_school: RU:Tag:amenity=dancing school amenity=dentist: RU:Tag:amenity=dentist amenity=device_charging_station: RU:Tag:amenity=device charging station + amenity=dive_centre: RU:Tag:amenity=dive centre + amenity=doctor: RU:Tag:amenity=doctor amenity=doctors: RU:Tag:amenity=doctors amenity=dog_bin: RU:Tag:amenity=dog bin amenity=dog_parking: RU:Tag:amenity=dog parking @@ -27028,23 +27644,32 @@ ru: amenity=drinking_water: RU:Tag:amenity=drinking water amenity=driver_training: RU:Tag:amenity=driver training amenity=driving_school: RU:Tag:amenity=driving school + amenity=dryer: RU:Tag:amenity=dryer amenity=education: RU:Tag:amenity=education amenity=embassy: RU:Tag:amenity=embassy + amenity=emergency_service: RU:Tag:amenity=emergency service + amenity=events_centre: RU:Tag:amenity=events centre amenity=events_venue: RU:Tag:amenity=events venue + amenity=exhibition_centre: RU:Tag:amenity=exhibition centre amenity=fast_food: RU:Tag:amenity=fast food amenity=feeding_place: RU:Tag:amenity=feeding place amenity=ferry_terminal: RU:Tag:amenity=ferry terminal + amenity=festival_grounds: RU:Tag:amenity=festival grounds amenity=financial_advice: RU:Tag:amenity=financial advice amenity=fire_station: RU:Tag:amenity=fire station amenity=first_aid_school: RU:Tag:amenity=first aid school amenity=fish_spa: RU:Tag:amenity=fish spa amenity=food_court: RU:Tag:amenity=food court + amenity=food_sharing: RU:Tag:amenity=food sharing + amenity=foot_shower: RU:Tag:amenity=foot shower amenity=fountain: RU:Tag:amenity=fountain + amenity=freeshop: RU:Tag:amenity=freeshop amenity=fridge: RU:Tag:amenity=fridge amenity=fuel: RU:Tag:amenity=fuel amenity=funeral_hall: RU:Tag:amenity=funeral hall amenity=gambling: RU:Tag:amenity=gambling amenity=game_feeding: RU:Tag:amenity=game feeding + amenity=give_box: RU:Tag:amenity=give box amenity=grave_yard: RU:Tag:amenity=grave yard amenity=grit_bin: RU:Tag:amenity=grit bin amenity=harbourmaster: RU:Tag:amenity=harbourmaster @@ -27055,23 +27680,30 @@ ru: amenity=hospital: RU:Tag:amenity=hospital amenity=hunting_stand: RU:Tag:amenity=hunting stand amenity=ice_cream: RU:Tag:amenity=ice cream + amenity=internet_cafe: RU:Tag:amenity=internet cafe + amenity=juice_bar: RU:Tag:amenity=juice bar amenity=karaoke_box: RU:Tag:amenity=karaoke box + amenity=kick-scooter_parking: RU:Tag:amenity=kick-scooter parking amenity=kick-scooter_rental: RU:Tag:amenity=kick-scooter rental amenity=kindergarten: RU:Tag:amenity=kindergarten amenity=kitchen: RU:Tag:amenity=kitchen amenity=kneipp_water_cure: RU:Tag:amenity=kneipp water cure amenity=language_school: RU:Tag:amenity=language school + amenity=lavoir: RU:Tag:amenity=lavoir amenity=letter_box: RU:Tag:amenity=letter box amenity=library: RU:Tag:amenity=library amenity=library_dropoff: RU:Tag:amenity=library dropoff amenity=loading_dock: RU:Tag:amenity=loading dock amenity=locker: RU:Tag:amenity=locker amenity=lost_property_office: RU:Tag:amenity=lost property office + amenity=lounger: RU:Tag:amenity=lounger amenity=love_hotel: RU:Tag:amenity=love hotel + amenity=mailroom: RU:Tag:amenity=mailroom amenity=marae: RU:Tag:amenity=marae amenity=marketplace: RU:Tag:amenity=marketplace amenity=mist_spraying_cooler: RU:Tag:amenity=mist spraying cooler amenity=mobile_library: RU:Tag:amenity=mobile library + amenity=mobile_money_agent: RU:Tag:amenity=mobile money agent amenity=monastery: RU:Tag:amenity=monastery amenity=money_transfer: RU:Tag:amenity=money transfer amenity=mortuary: RU:Tag:amenity=mortuary @@ -27079,6 +27711,7 @@ ru: amenity=motorcycle_rental: RU:Tag:amenity=motorcycle rental amenity=motorcycle_taxi: RU:Tag:amenity=motorcycle taxi amenity=music_school: RU:Tag:amenity=music school + amenity=music_venue: RU:Tag:amenity=music venue amenity=nightclub: RU:Tag:amenity=nightclub amenity=nursery: RU:Tag:amenity=nursery amenity=nursing_home: RU:Tag:amenity=nursing home @@ -27091,11 +27724,13 @@ ru: amenity=payment_terminal: RU:Tag:amenity=payment terminal amenity=pharmacy: RU:Tag:amenity=pharmacy amenity=photo_booth: RU:Tag:amenity=photo booth + amenity=place_of_mourning: RU:Tag:amenity=place of mourning amenity=place_of_worship: RU:Tag:amenity=place of worship amenity=planetarium: RU:Tag:amenity=planetarium amenity=police: RU:Tag:amenity=police amenity=polling_station: RU:Tag:amenity=polling station amenity=post_box: RU:Tag:amenity=post box + amenity=post_depot: RU:Tag:amenity=post depot amenity=post_office: RU:Tag:amenity=post office amenity=prep_school: RU:Tag:amenity=prep school amenity=preschool: RU:Tag:amenity=preschool @@ -27106,7 +27741,9 @@ ru: amenity=public_bookcase: RU:Tag:amenity=public bookcase amenity=public_building: RU:Tag:amenity=public building amenity=ranger_station: RU:Tag:amenity=ranger station + amenity=reception_desk: RU:Tag:amenity=reception desk amenity=recycling: RU:Tag:amenity=recycling + amenity=refugee_site: RU:Tag:amenity=refugee site amenity=register_office: RU:Tag:amenity=register office amenity=rescue_station: RU:Tag:amenity=rescue station amenity=research_institute: RU:Tag:amenity=research institute @@ -27120,8 +27757,11 @@ ru: amenity=shelter: RU:Tag:amenity=shelter amenity=shop: RU:Tag:amenity=shop amenity=shower: RU:Tag:amenity=shower + amenity=ski_rental: RU:Tag:amenity=ski rental amenity=ski_school: RU:Tag:amenity=ski school amenity=smoking_area: RU:Tag:amenity=smoking area + amenity=social_centre: RU:Tag:amenity=social centre + amenity=social_club: RU:Tag:amenity=social club amenity=social_facility: RU:Tag:amenity=social facility amenity=stables: RU:Tag:amenity=stables amenity=stage: RU:Tag:amenity=stage @@ -27137,6 +27777,7 @@ ru: amenity=television: RU:Tag:amenity=television amenity=theatre: RU:Tag:amenity=theatre amenity=ticket_validator: RU:Tag:amenity=ticket validator + amenity=toilet: RU:Tag:amenity=toilet amenity=toilets: RU:Tag:amenity=toilets amenity=tourist_bus_parking: RU:Tag:amenity=tourist bus parking amenity=townhall: RU:Tag:amenity=townhall @@ -27162,12 +27803,14 @@ ru: amenity=water_point: RU:Tag:amenity=water point amenity=watering_place: RU:Tag:amenity=watering place amenity=weighbridge: RU:Tag:amenity=weighbridge + amenity=whirlpool: RU:Tag:amenity=whirlpool amenity=workshop: RU:Tag:amenity=workshop animal=horse_walker: RU:Tag:animal=horse walker animal=school: RU:Tag:animal=school animated=trivision_blades: RU:Tag:animated=trivision blades animated=winding_posters: RU:Tag:animated=winding posters anthropogenic=yes: RU:Tag:anthropogenic=yes + aquaculture=fish: RU:Tag:aquaculture=fish aquaculture=seaweed: RU:Tag:aquaculture=seaweed archaeological_site=fortification: RU:Tag:archaeological site=fortification archaeological_site=grave_field: RU:Tag:archaeological site=grave field @@ -27195,6 +27838,7 @@ ru: attraction=train: RU:Tag:attraction=train attraction=water_slide: RU:Tag:attraction=water slide baby_hatch=yes: RU:Tag:baby hatch=yes + barrier=avalanche_protection: RU:Tag:barrier=avalanche protection barrier=block: RU:Tag:barrier=block barrier=bollard: RU:Tag:barrier=bollard barrier=border_control: RU:Tag:barrier=border control @@ -27209,6 +27853,7 @@ ru: barrier=czech_hedgehog: RU:Tag:barrier=czech hedgehog barrier=debris: RU:Tag:barrier=debris barrier=ditch: RU:Tag:barrier=ditch + barrier=dug-in_tyres: RU:Tag:barrier=dug-in tyres barrier=entrance: RU:Tag:barrier=entrance barrier=fence: RU:Tag:barrier=fence barrier=full-height_turnstile: RU:Tag:barrier=full-height turnstile @@ -27235,6 +27880,7 @@ ru: barrier=tank_trap: RU:Tag:barrier=tank trap barrier=toll_booth: RU:Tag:barrier=toll booth barrier=turnstile: RU:Tag:barrier=turnstile + barrier=tyres: RU:Tag:barrier=tyres barrier=wall: RU:Tag:barrier=wall barrier=wicket_gate: RU:Tag:barrier=wicket gate barrier=yes: RU:Tag:barrier=yes @@ -27264,6 +27910,7 @@ ru: beacon:type=TACAN: RU:Tag:beacon:type=TACAN beacon:type=VOR: RU:Tag:beacon:type=VOR beacon:type=VORTAC: RU:Tag:beacon:type=VORTAC + bench=wave_lounger: RU:Tag:bench=wave lounger bicycle:backward=use_sidepath: RU:Tag:bicycle:backward=use sidepath bicycle:forward=use_sidepath: RU:Tag:bicycle:forward=use sidepath bicycle=designated: RU:Tag:bicycle=designated @@ -27356,6 +28003,7 @@ ru: building=container: RU:Tag:building=container building=convent: RU:Tag:building=convent building=cowshed: RU:Tag:building=cowshed + building=damaged: RU:Tag:building=damaged building=data_center: RU:Tag:building=data center building=demountable: RU:Tag:building=demountable building=detached: RU:Tag:building=detached @@ -27368,6 +28016,7 @@ ru: building=farm_auxiliary: RU:Tag:building=farm auxiliary building=fire_lookout: RU:Tag:building=fire lookout building=fire_station: RU:Tag:building=fire station + building=fixme: RU:Tag:building=fixme building=font: RU:Tag:building=font building=fort: RU:Tag:building=fort building=funeral_hall: RU:Tag:building=funeral hall @@ -27400,6 +28049,7 @@ ru: building=mosque: RU:Tag:building=mosque building=museum: RU:Tag:building=museum building=office: RU:Tag:building=office + building=other: RU:Tag:building=other building=outbuilding: RU:Tag:building=outbuilding building=palace: RU:Tag:building=palace building=parking: RU:Tag:building=parking @@ -27438,6 +28088,7 @@ ru: building=tent: RU:Tag:building=tent building=terrace: RU:Tag:building=terrace building=toilets: RU:Tag:building=toilets + building=tower: RU:Tag:building=tower building=train_station: RU:Tag:building=train station building=transformer_tower: RU:Tag:building=transformer tower building=transportation: RU:Tag:building=transportation @@ -27454,6 +28105,7 @@ ru: building=wayside_shrine: RU:Tag:building=wayside shrine building=windmill: RU:Tag:building=windmill building=yes: RU:Tag:building=yes + bunker_type=nuclear: RU:Tag:bunker type=nuclear bunker_type=pillbox: RU:Tag:bunker type=pillbox busway=lane: RU:Tag:busway=lane cafe=time-cafe: RU:Tag:cafe=time-cafe @@ -27463,6 +28115,7 @@ ru: camp_site=deluxe: RU:Tag:camp site=deluxe camp_site=serviced: RU:Tag:camp site=serviced camp_site=standard: RU:Tag:camp site=standard + canoe=put_in: RU:Tag:canoe=put in capital=4: RU:Tag:capital=4 capital=5: RU:Tag:capital=5 capital=6: RU:Tag:capital=6 @@ -27480,6 +28133,7 @@ ru: cemetery=grave: RU:Tag:cemetery=grave cemetery=sector: RU:Tag:cemetery=sector cemetery=war_cemetery: RU:Tag:cemetery=war cemetery + cemetery=wood: RU:Tag:cemetery=wood clothes=motorcycle: RU:Tag:clothes=motorcycle clothes=swimwear: RU:Tag:clothes=swimwear clothes=vintage: RU:Tag:clothes=vintage @@ -27497,6 +28151,13 @@ ru: club=social: RU:Tag:club=social club=sport: RU:Tag:club=sport club=student: RU:Tag:club=student + community_centre=club_home: RU:Tag:community centre=club home + community_centre=community_hall: RU:Tag:community centre=community hall + community_centre=cultural_centre: RU:Tag:community centre=cultural centre + community_centre=family_centre: RU:Tag:community centre=family centre + community_centre=parish_hall: RU:Tag:community centre=parish hall + community_centre=village_hall: RU:Tag:community centre=village hall + community_centre=youth_centre: RU:Tag:community centre=youth centre company=aerospace: RU:Tag:company=aerospace company=catalog: RU:Tag:company=catalog company=construction: RU:Tag:company=construction @@ -27510,8 +28171,10 @@ ru: construction=apartments: RU:Tag:construction=apartments content=sewage: RU:Tag:content=sewage content=slurry: RU:Tag:content=slurry + content=wastewater: RU:Tag:content=wastewater content=water: RU:Tag:content=water covered=no: RU:Tag:covered=no + covered=yes: RU:Tag:covered=yes craft=agricultural_engines: RU:Tag:craft=agricultural engines craft=bakery: RU:Tag:craft=bakery craft=basket_maker: RU:Tag:craft=basket maker @@ -27538,9 +28201,15 @@ ru: craft=tailor: RU:Tag:craft=tailor craft=window_construction: RU:Tag:craft=window construction craft=winery: RU:Tag:craft=winery + crematorium=pet: RU:Tag:crematorium=pet crop=grape: RU:Tag:crop=grape crop=hop: RU:Tag:crop=hop + crossing=traffic_signals: RU:Tag:crossing=traffic signals + crossing=uncontrolled: RU:Tag:crossing=uncontrolled cuisine=kebab: RU:Tag:cuisine=kebab + culvert=box: RU:Tag:culvert=box + culvert=inverted_siphon: RU:Tag:culvert=inverted siphon + culvert=pipe: RU:Tag:culvert=pipe cycle_network=EuroVelo: RU:Tag:cycle network=EuroVelo cycle_network=JP:prefectural: RU:Tag:cycle network=JP:prefectural cycle_network=US: RU:Tag:cycle network=US @@ -27579,12 +28248,14 @@ ru: defensive=bergfried: RU:Tag:defensive=bergfried defensive=donjon: RU:Tag:defensive=donjon defensive=keep: RU:Tag:defensive=keep + denomination=catholic: RU:Tag:denomination=catholic diplomatic=consulate_general: RU:Tag:diplomatic=consulate general disused:landuse=landfill: RU:Tag:disused:landuse=landfill disused:landuse=quarry: RU:Tag:disused:landuse=quarry dog=designated: RU:Tag:dog=designated dog=leashed: RU:Tag:dog=leashed dog=no: RU:Tag:dog=no + dog=outside: RU:Tag:dog=outside dog=unleashed: RU:Tag:dog=unleashed dog=yes: RU:Tag:dog=yes drain=disperse: RU:Tag:drain=disperse @@ -27624,6 +28295,7 @@ ru: fortification_type=hill_fort: RU:Tag:fortification type=hill fort fortification_type=limes: RU:Tag:fortification type=limes fortification_type=motte: RU:Tag:fortification type=motte + fortification_type=pa: RU:Tag:fortification type=pa fortification_type=ring_ditch: RU:Tag:fortification type=ring ditch fortification_type=ringfort: RU:Tag:fortification type=ringfort fortification_type=sconce: RU:Tag:fortification type=sconce @@ -27657,6 +28329,7 @@ ru: government=healthcare: RU:Tag:government=healthcare government=heritage: RU:Tag:government=heritage government=it: RU:Tag:government=it + government=justice: RU:Tag:government=justice government=legislative: RU:Tag:government=legislative government=ministry: RU:Tag:government=ministry government=parliament: RU:Tag:government=parliament @@ -27680,10 +28353,12 @@ ru: hazard=turn: RU:Tag:hazard=turn health_facility:type=office: RU:Tag:health facility:type=office healthcare:speciality=abortion: RU:Tag:healthcare:speciality=abortion + healthcare=blood_bank: RU:Tag:healthcare=blood bank healthcare=blood_donation: RU:Tag:healthcare=blood donation healthcare=doctor: RU:Tag:healthcare=doctor healthcare=laboratory: RU:Tag:healthcare=laboratory healthcare=nurse: RU:Tag:healthcare=nurse + healthcare=podiatrist: RU:Tag:healthcare=podiatrist healthcare=sample_collection: RU:Tag:healthcare=sample collection healthcare=vaccination_centre: RU:Tag:healthcare=vaccination centre heritage:operator=BLfD: RU:Tag:heritage:operator=BLfD @@ -27840,6 +28515,7 @@ ru: information=tactile_model: RU:Tag:information=tactile model information=terminal: RU:Tag:information=terminal information=visitor_centre: RU:Tag:information=visitor centre + irrigation=yes: RU:Tag:irrigation=yes junction=circular: RU:Tag:junction=circular junction=roundabout: RU:Tag:junction=roundabout landcover=grass: RU:Tag:landcover=grass @@ -27887,6 +28563,7 @@ ru: landuse=military: RU:Tag:landuse=military landuse=observatory: RU:Tag:landuse=observatory landuse=orchard: RU:Tag:landuse=orchard + landuse=paddy: RU:Tag:landuse=paddy landuse=peat_cutting: RU:Tag:landuse=peat cutting landuse=plant_nursery: RU:Tag:landuse=plant nursery landuse=plantation: RU:Tag:landuse=plantation @@ -28039,6 +28716,7 @@ ru: man_made=gas_well: RU:Tag:man made=gas well man_made=geoglyph: RU:Tag:man made=geoglyph man_made=guard_stone: RU:Tag:man made=guard stone + man_made=insect_hotel: RU:Tag:man made=insect hotel man_made=launch_pad: RU:Tag:man made=launch pad man_made=lighthouse: RU:Tag:man made=lighthouse man_made=mast: RU:Tag:man made=mast @@ -28098,9 +28776,12 @@ ru: military=naval_base: RU:Tag:military=naval base military=training_area: RU:Tag:military=training area military=trench: RU:Tag:military=trench + monument=statue: RU:Tag:monument=statue motor_vehicle=agricultural: RU:Tag:motor vehicle=agricultural + motor_vehicle=delivery: RU:Tag:motor vehicle=delivery motor_vehicle=forestry: RU:Tag:motor vehicle=forestry motor_vehicle=no: RU:Tag:motor vehicle=no + motor_vehicle=private: RU:Tag:motor vehicle=private motorcycle=no: RU:Tag:motorcycle=no motorcycle=yes: RU:Tag:motorcycle=yes museum=aerospace: RU:Tag:museum=aerospace @@ -28135,6 +28816,7 @@ ru: natural=grassland: RU:Tag:natural=grassland natural=gully: RU:Tag:natural=gully natural=heath: RU:Tag:natural=heath + natural=hill: RU:Tag:natural=hill natural=hot_spring: RU:Tag:natural=hot spring natural=meteor_crater: RU:Tag:natural=meteor crater natural=mud: RU:Tag:natural=mud @@ -28151,6 +28833,7 @@ ru: natural=stone: RU:Tag:natural=stone natural=tree: RU:Tag:natural=tree natural=tree_row: RU:Tag:natural=tree row + natural=tree_stump: RU:Tag:natural=tree stump natural=tundra: RU:Tag:natural=tundra natural=valley: RU:Tag:natural=valley natural=volcano: RU:Tag:natural=volcano @@ -28259,6 +28942,7 @@ ru: parking=street_side: RU:Tag:parking=street side parking=surface: RU:Tag:parking=surface parking=underground: RU:Tag:parking=underground + parking_space=charging: RU:Tag:parking space=charging parking_space=disabled: RU:Tag:parking space=disabled path=desire: RU:Tag:path=desire path=sidewalk: RU:Tag:path=sidewalk @@ -28266,6 +28950,7 @@ ru: pipeline=substation: RU:Tag:pipeline=substation pipeline=surge_tank: RU:Tag:pipeline=surge tank pipeline=valve: RU:Tag:pipeline=valve + piste:type=sled: RU:Tag:piste:type=sled place=allotments: RU:Tag:place=allotments place=archipelago: RU:Tag:place=archipelago place=borough: RU:Tag:place=borough @@ -28285,6 +28970,7 @@ ru: place=neighbourhood: RU:Tag:place=neighbourhood place=ocean: RU:Tag:place=ocean place=plot: RU:Tag:place=plot + place=polder: RU:Tag:place=polder place=province: RU:Tag:place=province place=quarter: RU:Tag:place=quarter place=region: RU:Tag:place=region @@ -28295,6 +28981,7 @@ ru: place=suburb: RU:Tag:place=suburb place=town: RU:Tag:place=town place=village: RU:Tag:place=village + place_of_mourning=yes: RU:Tag:place of mourning=yes playground=balancebeam: RU:Tag:playground=balancebeam playground=bridge: RU:Tag:playground=bridge playground=climbingframe: RU:Tag:playground=climbingframe @@ -28326,6 +29013,7 @@ ru: power=substation: RU:Tag:power=substation power=tower: RU:Tag:power=tower power=transformer: RU:Tag:power=transformer + prison_camp=concentration_camp: RU:Tag:prison camp=concentration camp product=beer: RU:Tag:product=beer product=bricks: RU:Tag:product=bricks product=concrete: RU:Tag:product=concrete @@ -28338,6 +29026,7 @@ ru: product=rice: RU:Tag:product=rice product=steel: RU:Tag:product=steel product=sugar: RU:Tag:product=sugar + protect_class=22: RU:Tag:protect class=22 public_transport=platform: RU:Tag:public transport=platform public_transport=station: RU:Tag:public transport=station public_transport=stop_area: RU:Tag:public transport=stop area @@ -28370,6 +29059,7 @@ ru: recycling_type=centre: RU:Tag:recycling type=centre recycling_type=container: RU:Tag:recycling type=container religion=pagan: RU:Tag:religion=pagan + religion=shamanic: RU:Tag:religion=shamanic religion=zoroastrian: RU:Tag:religion=zoroastrian rental=boat: RU:Tag:rental=boat rental=clothes: RU:Tag:rental=clothes @@ -28400,8 +29090,10 @@ ru: route=hiking: RU:Tag:route=hiking route=horse: RU:Tag:route=horse route=mtb: RU:Tag:route=mtb + route=piste: RU:Tag:route=piste route=railway: RU:Tag:route=railway route=share_taxi: RU:Tag:route=share taxi + route=ski: RU:Tag:route=ski route=tracks: RU:Tag:route=tracks route=train: RU:Tag:route=train route=tram: RU:Tag:route=tram @@ -28422,12 +29114,19 @@ ru: service=parts: RU:Tag:service=parts service=repair: RU:Tag:service=repair service=tyres: RU:Tag:service=tyres + shelter_type=Wetterpilz: RU:Tag:shelter type=Wetterpilz shelter_type=basic_hut: RU:Tag:shelter type=basic hut + shelter_type=changing_rooms: RU:Tag:shelter type=changing rooms shelter_type=field_shelter: RU:Tag:shelter type=field shelter shelter_type=gazebo: RU:Tag:shelter type=gazebo shelter_type=lean_to: RU:Tag:shelter type=lean to shelter_type=pavilion: RU:Tag:shelter type=pavilion + shelter_type=picnic_shelter: RU:Tag:shelter type=picnic shelter shelter_type=public_transport: RU:Tag:shelter type=public transport + shelter_type=rock_shelter: RU:Tag:shelter type=rock shelter + shelter_type=sun_shelter: RU:Tag:shelter type=sun shelter + shelter_type=weather_shelter: RU:Tag:shelter type=weather shelter + shelter_type=wetterpilz: RU:Tag:shelter type=wetterpilz shop=3d_printing: RU:Tag:shop=3d printing shop=agrarian: RU:Tag:shop=agrarian shop=alcohol: RU:Tag:shop=alcohol @@ -28533,6 +29232,7 @@ ru: shop=radiotechnics: RU:Tag:shop=radiotechnics shop=religion: RU:Tag:shop=religion shop=rental: RU:Tag:shop=rental + shop=safety_equipment: RU:Tag:shop=safety equipment shop=seafood: RU:Tag:shop=seafood shop=second_hand: RU:Tag:shop=second hand shop=security: RU:Tag:shop=security @@ -28565,9 +29265,14 @@ ru: signpost=forestry_compartment: RU:Tag:signpost=forestry compartment sinkhole=bluehole: RU:Tag:sinkhole=bluehole site_type=fortification: RU:Tag:site type=fortification + social_facility:for=disabled: RU:Tag:social facility:for=disabled social_facility:for=homeless: RU:Tag:social facility:for=homeless + social_facility:for=senior: RU:Tag:social facility:for=senior social_facility=ambulatory_care: RU:Tag:social facility=ambulatory care + social_facility=dairy_kitchen: RU:Tag:social facility=dairy kitchen social_facility=group_home: RU:Tag:social facility=group home + source:addr=ЕГРН: RU:Tag:source:addr=ЕГРН + source:maxspeed=sign: RU:Tag:source:maxspeed=sign sport=archery: RU:Tag:sport=archery sport=cycling: RU:Tag:sport=cycling sport=dog_racing: RU:Tag:sport=dog racing @@ -28589,7 +29294,10 @@ ru: statue=animal: RU:Tag:statue=animal statue=equestrian: RU:Tag:statue=equestrian statue=virgin: RU:Tag:statue=virgin + studio=audio: RU:Tag:studio=audio studio=radio: RU:Tag:studio=radio + studio=television: RU:Tag:studio=television + studio=video: RU:Tag:studio=video substance=CNG: RU:Tag:substance=CNG substance=gas: RU:Tag:substance=gas substance=oil: RU:Tag:substance=oil @@ -28670,6 +29378,8 @@ ru: tower:type=launch_tower: RU:Tag:tower:type=launch tower tower:type=lighting: RU:Tag:tower:type=lighting tower:type=lightning_protection: RU:Tag:tower:type=lightning protection + townhall:type=barangay: RU:Tag:townhall:type=barangay + townhall:type=town: RU:Tag:townhall:type=town trade=agricultural_supplies: RU:Tag:trade=agricultural supplies trade=building_supplies: RU:Tag:trade=building supplies trade=timber: RU:Tag:trade=timber @@ -28679,6 +29389,7 @@ ru: traffic_calming=table: RU:Tag:traffic calming=table traffic_sign=NL:L51: RU:Tag:traffic sign=NL:L51 traffic_sign=city_limit: RU:Tag:traffic sign=city limit + traffic_signals=continuous_green: RU:Tag:traffic signals=continuous green trailer:type=motorcycle: RU:Tag:trailer:type=motorcycle training=art: RU:Tag:training=art training=aviation: RU:Tag:training=aviation @@ -28698,6 +29409,7 @@ ru: usage=flowline: RU:Tag:usage=flowline usage=gathering: RU:Tag:usage=gathering usage=injection: RU:Tag:usage=injection + usage=irrigation: RU:Tag:usage=irrigation usage=penstock: RU:Tag:usage=penstock usage=spillway: RU:Tag:usage=spillway vehicle=no: RU:Tag:vehicle=no @@ -28738,6 +29450,7 @@ ru: vending=ice_cubes: RU:Tag:vending=ice cubes vending=ink_cartridges: RU:Tag:vending=ink cartridges vending=laundry_detergent: RU:Tag:vending=laundry detergent + vending=lottery: RU:Tag:vending=lottery vending=milk: RU:Tag:vending=milk vending=newspapers: RU:Tag:vending=newspapers vending=parcel_mail_in: RU:Tag:vending=parcel mail in @@ -28791,6 +29504,7 @@ ru: water=stream_pool: RU:Tag:water=stream pool water=tidal: RU:Tag:water=tidal water=wastewater: RU:Tag:water=wastewater + water_source=groundwater: RU:Tag:water source=groundwater water_source=main: RU:Tag:water source=main water_source=river: RU:Tag:water source=river waterway=boatyard: RU:Tag:waterway=boatyard @@ -28864,6 +29578,7 @@ sv: amenity=place_of_worship: Sv:Tag:amenity=place of worship amenity=recycling: Sv:Tag:amenity=recycling amenity=townhall: Sv:Tag:amenity=townhall + barrier=hampshire_gate: Sv:Tag:barrier=hampshire gate highway=path: Sv:Tag:highway=path highway=rest_area: Sv:Tag:highway=rest area highway=track: Sv:Tag:highway=track @@ -28928,6 +29643,7 @@ uk: addr:postbox: Uk:Key:addr:postbox addr:postcode: Uk:Key:addr:postcode addr:province: Uk:Key:addr:province + addr:room: Uk:Key:addr:room addr:state: Uk:Key:addr:state addr:street: Uk:Key:addr:street addr:subdistrict: Uk:Key:addr:subdistrict @@ -29064,6 +29780,7 @@ uk: short_name:ru: Uk:Key:short name:ru sidewalk: Uk:Key:sidewalk smoothness: Uk:Key:smoothness + social_facility:for: Uk:Key:social facility:for sorting_name: Uk:Key:sorting name source: Uk:Key:source source:addr: Uk:Key:source:addr @@ -29072,6 +29789,7 @@ uk: surface: Uk:Key:surface tracktype: Uk:Key:tracktype traffic_sign: Uk:Key:traffic sign + traffic_signals: Uk:Key:traffic signals tunnel: Uk:Key:tunnel turn: Uk:Key:turn type: Uk:Key:type @@ -29099,34 +29817,211 @@ uk: aeroway=runway: Uk:Tag:aeroway=runway aeroway=terminal: Uk:Tag:aeroway=terminal allotments=plot: Uk:Tag:allotments=plot + amenity=animal_boarding: Uk:Tag:amenity=animal boarding + amenity=animal_breeding: Uk:Tag:amenity=animal breeding + amenity=animal_shelter: Uk:Tag:amenity=animal shelter + amenity=animal_training: Uk:Tag:amenity=animal training + amenity=archive: Uk:Tag:amenity=archive + amenity=arts_centre: Uk:Tag:amenity=arts centre amenity=atm: Uk:Tag:amenity=atm + amenity=baby_hatch: Uk:Tag:amenity=baby hatch + amenity=baking_oven: Uk:Tag:amenity=baking oven amenity=bank: Uk:Tag:amenity=bank + amenity=bar: Uk:Tag:amenity=bar + amenity=bbq: Uk:Tag:amenity=bbq + amenity=bear_box: Uk:Tag:amenity=bear box amenity=bench: Uk:Tag:amenity=bench + amenity=bicycle_library: Uk:Tag:amenity=bicycle library amenity=bicycle_parking: Uk:Tag:amenity=bicycle parking amenity=bicycle_rental: Uk:Tag:amenity=bicycle rental + amenity=bicycle_repair_station: Uk:Tag:amenity=bicycle repair station + amenity=bicycle_trailer_sharing: Uk:Tag:amenity=bicycle trailer sharing + amenity=biergarten: Uk:Tag:amenity=biergarten + amenity=bird_bath: Uk:Tag:amenity=bird bath + amenity=blood_bank: Uk:Tag:amenity=blood bank + amenity=boat_rental: Uk:Tag:amenity=boat rental + amenity=boat_sharing: Uk:Tag:amenity=boat sharing + amenity=boat_storage: Uk:Tag:amenity=boat storage + amenity=brothel: Uk:Tag:amenity=brothel + amenity=bureau_de_change: Uk:Tag:amenity=bureau de change + amenity=bus_station: Uk:Tag:amenity=bus station + amenity=cafe: Uk:Tag:amenity=cafe + amenity=canteen: Uk:Tag:amenity=canteen + amenity=car_pooling: Uk:Tag:amenity=car pooling + amenity=car_rental: Uk:Tag:amenity=car rental + amenity=car_sharing: Uk:Tag:amenity=car sharing + amenity=car_wash: Uk:Tag:amenity=car wash + amenity=carpet_washing: Uk:Tag:amenity=carpet washing + amenity=casino: Uk:Tag:amenity=casino + amenity=chair: Uk:Tag:amenity=chair + amenity=charging_station: Uk:Tag:amenity=charging station + amenity=childcare: Uk:Tag:amenity=childcare + amenity=cinema: Uk:Tag:amenity=cinema amenity=clinic: Uk:Tag:amenity=clinic + amenity=cloakroom: Uk:Tag:amenity=cloakroom + amenity=clock: Uk:Tag:amenity=clock + amenity=clothes_dryer: Uk:Tag:amenity=clothes dryer + amenity=clubhouse: Uk:Tag:amenity=clubhouse + amenity=coast_guard: Uk:Tag:amenity=coast guard + amenity=coast_radar_station: Uk:Tag:amenity=coast radar station + amenity=college: Uk:Tag:amenity=college + amenity=community_centre: Uk:Tag:amenity=community centre + amenity=compressed_air: Uk:Tag:amenity=compressed air + amenity=concert_hall: Uk:Tag:amenity=concert hall + amenity=conference_centre: Uk:Tag:amenity=conference centre + amenity=courthouse: Uk:Tag:amenity=courthouse + amenity=coworking_space: Uk:Tag:amenity=coworking space + amenity=crematorium: Uk:Tag:amenity=crematorium + amenity=crypt: Uk:Tag:amenity=crypt + amenity=dancing_school: Uk:Tag:amenity=dancing school amenity=dentist: Uk:Tag:amenity=dentist + amenity=device_charging_station: Uk:Tag:amenity=device charging station + amenity=dive_centre: Uk:Tag:amenity=dive centre + amenity=doctors: Uk:Tag:amenity=doctors + amenity=dog_parking: Uk:Tag:amenity=dog parking + amenity=dog_toilet: Uk:Tag:amenity=dog toilet + amenity=dojo: Uk:Tag:amenity=dojo + amenity=dormitory: Uk:Tag:amenity=dormitory + amenity=dressing_room: Uk:Tag:amenity=dressing room amenity=drinking_water: Uk:Tag:amenity=drinking water + amenity=driver_training: Uk:Tag:amenity=driver training amenity=driving_school: Uk:Tag:amenity=driving school + amenity=dryer: Uk:Tag:amenity=dryer + amenity=emergency_service: Uk:Tag:amenity=emergency service + amenity=events_centre: Uk:Tag:amenity=events centre + amenity=events_venue: Uk:Tag:amenity=events venue + amenity=exhibition_centre: Uk:Tag:amenity=exhibition centre + amenity=fast_food: Uk:Tag:amenity=fast food + amenity=feeding_place: Uk:Tag:amenity=feeding place + amenity=ferry_terminal: Uk:Tag:amenity=ferry terminal + amenity=fire_station: Uk:Tag:amenity=fire station + amenity=first_aid_school: Uk:Tag:amenity=first aid school + amenity=fish_spa: Uk:Tag:amenity=fish spa + amenity=food_court: Uk:Tag:amenity=food court + amenity=food_sharing: Uk:Tag:amenity=food sharing amenity=fountain: Uk:Tag:amenity=fountain + amenity=freeshop: Uk:Tag:amenity=freeshop + amenity=fridge: Uk:Tag:amenity=fridge amenity=fuel: Uk:Tag:amenity=fuel + amenity=funeral_hall: Uk:Tag:amenity=funeral hall + amenity=gambling: Uk:Tag:amenity=gambling + amenity=game_feeding: Uk:Tag:amenity=game feeding + amenity=give_box: Uk:Tag:amenity=give box amenity=grave_yard: Uk:Tag:amenity=grave yard + amenity=grit_bin: Uk:Tag:amenity=grit bin + amenity=health_post: Uk:Tag:amenity=health post amenity=hitching_post: Uk:Tag:amenity=hitching post + amenity=hookah_lounge: Uk:Tag:amenity=hookah lounge amenity=hospital: Uk:Tag:amenity=hospital + amenity=hunting_stand: Uk:Tag:amenity=hunting stand + amenity=ice_cream: Uk:Tag:amenity=ice cream + amenity=internet_cafe: Uk:Tag:amenity=internet cafe + amenity=juice_bar: Uk:Tag:amenity=juice bar + amenity=karaoke_box: Uk:Tag:amenity=karaoke box amenity=kindergarten: Uk:Tag:amenity=kindergarten amenity=kiosk: Uk:Tag:amenity=kiosk + amenity=kitchen: Uk:Tag:amenity=kitchen + amenity=kneipp_water_cure: Uk:Tag:amenity=kneipp water cure + amenity=language_school: Uk:Tag:amenity=language school + amenity=lavoir: Uk:Tag:amenity=lavoir + amenity=letter_box: Uk:Tag:amenity=letter box + amenity=library: Uk:Tag:amenity=library + amenity=library_dropoff: Uk:Tag:amenity=library dropoff + amenity=loading_dock: Uk:Tag:amenity=loading dock + amenity=locker: Uk:Tag:amenity=locker + amenity=lounger: Uk:Tag:amenity=lounger + amenity=love_hotel: Uk:Tag:amenity=love hotel + amenity=luggage_locker: Uk:Tag:amenity=luggage locker + amenity=mailroom: Uk:Tag:amenity=mailroom + amenity=marae: Uk:Tag:amenity=marae + amenity=marketplace: Uk:Tag:amenity=marketplace + amenity=microwave: Uk:Tag:amenity=microwave + amenity=mist_spraying_cooler: Uk:Tag:amenity=mist spraying cooler + amenity=mobile_library: Uk:Tag:amenity=mobile library + amenity=mobile_money_agent: Uk:Tag:amenity=mobile money agent + amenity=monastery: Uk:Tag:amenity=monastery + amenity=money_transfer: Uk:Tag:amenity=money transfer + amenity=mortuary: Uk:Tag:amenity=mortuary + amenity=motorcycle_parking: Uk:Tag:amenity=motorcycle parking + amenity=motorcycle_rental: Uk:Tag:amenity=motorcycle rental + amenity=motorcycle_taxi: Uk:Tag:amenity=motorcycle taxi amenity=music_school: Uk:Tag:amenity=music school + amenity=music_venue: Uk:Tag:amenity=music venue + amenity=nightclub: Uk:Tag:amenity=nightclub + amenity=nursing_home: Uk:Tag:amenity=nursing home + amenity=osmica: Uk:Tag:amenity=osmica amenity=parcel_locker: Uk:Tag:amenity=parcel locker amenity=park: Uk:Tag:amenity=park amenity=parking: Uk:Tag:amenity=parking + amenity=parking_entrance: Uk:Tag:amenity=parking entrance + amenity=parking_space: Uk:Tag:amenity=parking space + amenity=payment_centre: Uk:Tag:amenity=payment centre amenity=payment_terminal: Uk:Tag:amenity=payment terminal amenity=pharmacy: Uk:Tag:amenity=pharmacy + amenity=photo_booth: Uk:Tag:amenity=photo booth + amenity=piano: Uk:Tag:amenity=piano + amenity=place_of_mourning: Uk:Tag:amenity=place of mourning amenity=place_of_worship: Uk:Tag:amenity=place of worship + amenity=planetarium: Uk:Tag:amenity=planetarium + amenity=police: Uk:Tag:amenity=police + amenity=polling_station: Uk:Tag:amenity=polling station + amenity=post_box: Uk:Tag:amenity=post box + amenity=post_depot: Uk:Tag:amenity=post depot amenity=post_office: Uk:Tag:amenity=post office + amenity=prep_school: Uk:Tag:amenity=prep school + amenity=printer: Uk:Tag:amenity=printer + amenity=prison: Uk:Tag:amenity=prison + amenity=prison_camp: Uk:Tag:amenity=prison camp + amenity=pub: Uk:Tag:amenity=pub + amenity=public_bath: Uk:Tag:amenity=public bath + amenity=public_bookcase: Uk:Tag:amenity=public bookcase + amenity=public_building: Uk:Tag:amenity=public building + amenity=ranger_station: Uk:Tag:amenity=ranger station + amenity=reception_desk: Uk:Tag:amenity=reception desk + amenity=recycling: Uk:Tag:amenity=recycling + amenity=refugee_site: Uk:Tag:amenity=refugee site + amenity=relay_box: Uk:Tag:amenity=relay box + amenity=rescue_station: Uk:Tag:amenity=rescue station + amenity=research_institute: Uk:Tag:amenity=research institute + amenity=restaurant: Uk:Tag:amenity=restaurant + amenity=retirement_home: Uk:Tag:amenity=retirement home + amenity=rv_storage: Uk:Tag:amenity=rv storage + amenity=sailing_school: Uk:Tag:amenity=sailing school + amenity=sanatorium: Uk:Tag:amenity=sanatorium + amenity=sanitary_dump_station: Uk:Tag:amenity=sanitary dump station amenity=school: Uk:Tag:amenity=school + amenity=scooter_rental: Uk:Tag:amenity=scooter rental + amenity=seat: Uk:Tag:amenity=seat + amenity=security_booth: Uk:Tag:amenity=security booth amenity=shelter: Uk:Tag:amenity=shelter + amenity=shower: Uk:Tag:amenity=shower + amenity=ski_rental: Uk:Tag:amenity=ski rental + amenity=ski_school: Uk:Tag:amenity=ski school + amenity=smoking_area: Uk:Tag:amenity=smoking area + amenity=snow_removal_station: Uk:Tag:amenity=snow removal station + amenity=social_centre: Uk:Tag:amenity=social centre + amenity=social_club: Uk:Tag:amenity=social club + amenity=social_facility: Uk:Tag:amenity=social facility + amenity=stripclub: Uk:Tag:amenity=stripclub + amenity=studio: Uk:Tag:amenity=studio + amenity=swingerclub: Uk:Tag:amenity=swingerclub + amenity=taxi: Uk:Tag:amenity=taxi + amenity=telephone: Uk:Tag:amenity=telephone amenity=theatre: Uk:Tag:amenity=theatre + amenity=toilets: Uk:Tag:amenity=toilets + amenity=townhall: Uk:Tag:amenity=townhall + amenity=toy_library: Uk:Tag:amenity=toy library + amenity=traffic_park: Uk:Tag:amenity=traffic park + amenity=training: Uk:Tag:amenity=training amenity=university: Uk:Tag:amenity=university + amenity=vehicle_inspection: Uk:Tag:amenity=vehicle inspection + amenity=vending_machine: Uk:Tag:amenity=vending machine + amenity=veterinary: Uk:Tag:amenity=veterinary + amenity=waste_basket: Uk:Tag:amenity=waste basket + amenity=waste_disposal: Uk:Tag:amenity=waste disposal + amenity=waste_transfer_station: Uk:Tag:amenity=waste transfer station + amenity=water_point: Uk:Tag:amenity=water point + amenity=watering_place: Uk:Tag:amenity=watering place barrier=debris: Uk:Tag:barrier=debris barrier=entrance: Uk:Tag:barrier=entrance barrier=gate: Uk:Tag:barrier=gate @@ -29142,24 +30037,96 @@ uk: boundary=historic: Uk:Tag:boundary=historic boundary=political: Uk:Tag:boundary=political boundary=postal_code: Uk:Tag:boundary=postal code + building=apartments: Uk:Tag:building=apartments + building=bakehouse: Uk:Tag:building=bakehouse building=barn: Uk:Tag:building=barn + building=barracks: Uk:Tag:building=barracks + building=beach_hut: Uk:Tag:building=beach hut + building=bridge: Uk:Tag:building=bridge + building=bungalow: Uk:Tag:building=bungalow + building=bunker: Uk:Tag:building=bunker building=cabin: Uk:Tag:building=cabin + building=carport: Uk:Tag:building=carport + building=castle: Uk:Tag:building=castle + building=cathedral: Uk:Tag:building=cathedral + building=chapel: Uk:Tag:building=chapel building=church: Uk:Tag:building=church + building=civic: Uk:Tag:building=civic + building=college: Uk:Tag:building=college building=commercial: Uk:Tag:building=commercial + building=conservatory: Uk:Tag:building=conservatory + building=construction: Uk:Tag:building=construction + building=container: Uk:Tag:building=container building=cowshed: Uk:Tag:building=cowshed building=detached: Uk:Tag:building=detached + building=digester: Uk:Tag:building=digester building=dormitory: Uk:Tag:building=dormitory building=farm: Uk:Tag:building=farm building=farm_auxiliary: Uk:Tag:building=farm auxiliary + building=fire_station: Uk:Tag:building=fire station + building=garage: Uk:Tag:building=garage + building=garages: Uk:Tag:building=garages + building=gatehouse: Uk:Tag:building=gatehouse + building=ger: Uk:Tag:building=ger + building=government: Uk:Tag:building=government building=grandstand: Uk:Tag:building=grandstand building=greenhouse: Uk:Tag:building=greenhouse + building=hangar: Uk:Tag:building=hangar building=hospital: Uk:Tag:building=hospital building=hotel: Uk:Tag:building=hotel + building=house: Uk:Tag:building=house building=houseboat: Uk:Tag:building=houseboat + building=hut: Uk:Tag:building=hut + building=industrial: Uk:Tag:building=industrial + building=kindergarten: Uk:Tag:building=kindergarten + building=kingdom_hall: Uk:Tag:building=kingdom hall + building=kiosk: Uk:Tag:building=kiosk + building=livestock: Uk:Tag:building=livestock + building=military: Uk:Tag:building=military + building=monastery: Uk:Tag:building=monastery + building=mosque: Uk:Tag:building=mosque + building=museum: Uk:Tag:building=museum + building=office: Uk:Tag:building=office + building=parking: Uk:Tag:building=parking + building=pavilion: Uk:Tag:building=pavilion + building=presbytery: Uk:Tag:building=presbytery + building=public: Uk:Tag:building=public + building=religious: Uk:Tag:building=religious building=residential: Uk:Tag:building=residential + building=retail: Uk:Tag:building=retail + building=riding_hall: Uk:Tag:building=riding hall + building=roof: Uk:Tag:building=roof building=roundhouse: Uk:Tag:building=roundhouse + building=ruins: Uk:Tag:building=ruins + building=school: Uk:Tag:building=school building=semidetached_house: Uk:Tag:building=semidetached house + building=service: Uk:Tag:building=service + building=shed: Uk:Tag:building=shed + building=shrine: Uk:Tag:building=shrine + building=silo: Uk:Tag:building=silo + building=slurry_tank: Uk:Tag:building=slurry tank + building=sports_hall: Uk:Tag:building=sports hall building=stable: Uk:Tag:building=stable + building=stadium: Uk:Tag:building=stadium + building=static_caravan: Uk:Tag:building=static caravan + building=stilt_house: Uk:Tag:building=stilt house + building=storage_tank: Uk:Tag:building=storage tank + building=sty: Uk:Tag:building=sty + building=supermarket: Uk:Tag:building=supermarket + building=synagogue: Uk:Tag:building=synagogue + building=temple: Uk:Tag:building=temple + building=tent: Uk:Tag:building=tent + building=terrace: Uk:Tag:building=terrace + building=toilets: Uk:Tag:building=toilets + building=tower: Uk:Tag:building=tower + building=train_station: Uk:Tag:building=train station + building=transformer_tower: Uk:Tag:building=transformer tower + building=transportation: Uk:Tag:building=transportation + building=tree_house: Uk:Tag:building=tree house + building=university: Uk:Tag:building=university + building=warehouse: Uk:Tag:building=warehouse + building=water_tower: Uk:Tag:building=water tower + building=yes: Uk:Tag:building=yes cemetery=grave: Uk:Tag:cemetery=grave cemetery=sector: Uk:Tag:cemetery=sector craft=agricultural_engines: Uk:Tag:craft=agricultural engines @@ -29175,6 +30142,11 @@ uk: craft=sewing: Uk:Tag:craft=sewing craft=stonemason: Uk:Tag:craft=stonemason craft=tailor: Uk:Tag:craft=tailor + crossing=traffic_signals: Uk:Tag:crossing=traffic signals + crossing=uncontrolled: Uk:Tag:crossing=uncontrolled + crossing=unmarked: Uk:Tag:crossing=unmarked + cuisine=ukrainian: Uk:Tag:cuisine=ukrainian + emergency=assembly_point: Uk:Tag:emergency=assembly point emergency=fire_hydrant: Uk:Tag:emergency=fire hydrant emergency=fire_water_pond: Uk:Tag:emergency=fire water pond emergency=suction_point: Uk:Tag:emergency=suction point @@ -29199,6 +30171,7 @@ uk: highway=busway: Uk:Tag:highway=busway highway=construction: Uk:Tag:highway=construction highway=corridor: Uk:Tag:highway=corridor + highway=crossing: Uk:Tag:highway=crossing highway=cycleway: Uk:Tag:highway=cycleway highway=escape: Uk:Tag:highway=escape highway=footway: Uk:Tag:highway=footway @@ -29221,6 +30194,7 @@ uk: highway=tertiary: Uk:Tag:highway=tertiary highway=track: Uk:Tag:highway=track highway=traffic_mirror: Uk:Tag:highway=traffic mirror + highway=traffic_signals: Uk:Tag:highway=traffic signals highway=trunk: Uk:Tag:highway=trunk highway=turning_circle: Uk:Tag:highway=turning circle highway=unclassified: Uk:Tag:highway=unclassified @@ -29313,6 +30287,7 @@ uk: office=telecommunication: Uk:Tag:office=telecommunication office=travel_agent: Uk:Tag:office=travel agent oneway=alternating: Uk:Tag:oneway=alternating + opening_hours=24/7: Uk:Tag:opening hours=24/7 place=archipelago: Uk:Tag:place=archipelago place=borough: Uk:Tag:place=borough place=city: Uk:Tag:place=city @@ -29341,6 +30316,7 @@ uk: place=town: Uk:Tag:place=town place=village: Uk:Tag:place=village police=offices: Uk:Tag:police=offices + post_office=post_partner: Uk:Tag:post office=post partner product=food: Uk:Tag:product=food pump=powered: Uk:Tag:pump=powered railway=abandoned: Uk:Tag:railway=abandoned @@ -29354,6 +30330,7 @@ uk: railway=tram: Uk:Tag:railway=tram railway=water_crane: Uk:Tag:railway=water crane religion=christian: Uk:Tag:religion=christian + request_stop=yes: Uk:Tag:request stop=yes residential=apartments: Uk:Tag:residential=apartments residential=rural: Uk:Tag:residential=rural residential=single_family: Uk:Tag:residential=single family @@ -29370,6 +30347,7 @@ uk: shop=optician: Uk:Tag:shop=optician shop=second_hand: Uk:Tag:shop=second hand shop=sewing: Uk:Tag:shop=sewing + shop=variety_store: Uk:Tag:shop=variety store sport=Swimming: Uk:Tag:sport=Swimming sport=multi: Uk:Tag:sport=multi sport=parachuting: Uk:Tag:sport=parachuting @@ -29457,6 +30435,7 @@ zh-hans: key: abutters: Zh-hans:Key:abutters access: Zh-hans:Key:access + admin_level: Zh-hans:Key:admin level amenity: Zh-hans:Key:amenity attraction: Zh-hans:Key:attraction building: Zh-hans:Key:building @@ -29546,7 +30525,9 @@ zh-hans: bridge:structure=humpback: Zh-hans:Tag:bridge:structure=humpback building=apartments: Zh-hans:Tag:building=apartments building=detached: Zh-hans:Tag:building=detached + building=hospital: Zh-hans:Tag:building=hospital building=office: Zh-hans:Tag:building=office + building=school: Zh-hans:Tag:building=school building=service: Zh-hans:Tag:building=service cemetery=grave: Zh-hans:Tag:cemetery=grave crossing=traffic_signals: Zh-hans:Tag:crossing=traffic signals @@ -29594,6 +30575,7 @@ zh-hans: landuse=greenhouse_horticulture: Zh-hans:Tag:landuse=greenhouse horticulture landuse=industrial: Zh-hans:Tag:landuse=industrial landuse=military: Zh-hans:Tag:landuse=military + landuse=paddy: Zh-hans:Tag:landuse=paddy landuse=residential: Zh-hans:Tag:landuse=residential landuse=retail: Zh-hans:Tag:landuse=retail leisure=nature_reserve: Zh-hans:Tag:leisure=nature reserve @@ -29727,6 +30709,7 @@ zh-hant: highway=unclassified: Zh-hant:Tag:highway=unclassified historic=aircraft: Zh-hant:Tag:historic=aircraft landuse=cemetery: Zh-hant:Tag:landuse=cemetery + landuse=paddy: Zh-hant:Tag:landuse=paddy leisure=adult_gaming_centre: Zh-hant:Tag:leisure=adult gaming centre leisure=firepit: Zh-hant:Tag:leisure=firepit leisure=fitness_centre: Zh-hant:Tag:leisure=fitness centre diff --git a/db/migrate/20230830115219_create_doorkeeper_openid_connect_tables.rb b/db/migrate/20230830115219_create_doorkeeper_openid_connect_tables.rb new file mode 100644 index 000000000..4924e158d --- /dev/null +++ b/db/migrate/20230830115219_create_doorkeeper_openid_connect_tables.rb @@ -0,0 +1,18 @@ +class CreateDoorkeeperOpenidConnectTables < ActiveRecord::Migration[7.0] + def change + create_table :oauth_openid_requests do |t| + t.references :access_grant, :null => false, :index => true + t.string :nonce, :null => false + end + + # Avoid validating foreign keys doe to possible deadlock + # create a separate migration instead, as suggested by db:migrate + + add_foreign_key( + :oauth_openid_requests, + :oauth_access_grants, + :column => :access_grant_id, + :on_delete => :cascade, :validate => false + ) + end +end diff --git a/db/migrate/20230830115220_validate_create_doorkeeper_openid_connect_tables.rb b/db/migrate/20230830115220_validate_create_doorkeeper_openid_connect_tables.rb new file mode 100644 index 000000000..0596cbeb1 --- /dev/null +++ b/db/migrate/20230830115220_validate_create_doorkeeper_openid_connect_tables.rb @@ -0,0 +1,6 @@ +class ValidateCreateDoorkeeperOpenidConnectTables < ActiveRecord::Migration[7.0] + # Validate foreign key created by CreateDoorkeeperOpenidConnectTables + def change + validate_foreign_key :oauth_openid_requests, :oauth_access_grants + end +end diff --git a/db/migrate/20231007141103_add_primary_key_to_changeset_tags.rb b/db/migrate/20231007141103_add_primary_key_to_changeset_tags.rb new file mode 100644 index 000000000..6f0186576 --- /dev/null +++ b/db/migrate/20231007141103_add_primary_key_to_changeset_tags.rb @@ -0,0 +1,13 @@ +class AddPrimaryKeyToChangesetTags < ActiveRecord::Migration[7.0] + disable_ddl_transaction! + + def up + add_primary_key :changeset_tags, [:changeset_id, :k], :algorithm => :concurrently + remove_index :changeset_tags, [:changeset_id] + end + + def down + add_index :changeset_tags, [:changeset_id], :algorithm => :concurrently + remove_primary_key :changeset_tags + end +end diff --git a/db/structure.sql b/db/structure.sql index 1874e6461..467d5143c 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -1152,6 +1152,36 @@ CREATE SEQUENCE public.oauth_nonces_id_seq ALTER SEQUENCE public.oauth_nonces_id_seq OWNED BY public.oauth_nonces.id; +-- +-- Name: oauth_openid_requests; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.oauth_openid_requests ( + id bigint NOT NULL, + access_grant_id bigint NOT NULL, + nonce character varying NOT NULL +); + + +-- +-- Name: oauth_openid_requests_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE public.oauth_openid_requests_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: oauth_openid_requests_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE public.oauth_openid_requests_id_seq OWNED BY public.oauth_openid_requests.id; + + -- -- Name: oauth_tokens; Type: TABLE; Schema: public; Owner: - -- @@ -1704,6 +1734,13 @@ ALTER TABLE ONLY public.oauth_applications ALTER COLUMN id SET DEFAULT nextval(' ALTER TABLE ONLY public.oauth_nonces ALTER COLUMN id SET DEFAULT nextval('public.oauth_nonces_id_seq'::regclass); +-- +-- Name: oauth_openid_requests id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.oauth_openid_requests ALTER COLUMN id SET DEFAULT nextval('public.oauth_openid_requests_id_seq'::regclass); + + -- -- Name: oauth_tokens id; Type: DEFAULT; Schema: public; Owner: - -- @@ -1801,6 +1838,14 @@ ALTER TABLE ONLY public.changeset_comments ADD CONSTRAINT changeset_comments_pkey PRIMARY KEY (id); +-- +-- Name: changeset_tags changeset_tags_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.changeset_tags + ADD CONSTRAINT changeset_tags_pkey PRIMARY KEY (changeset_id, k); + + -- -- Name: changesets changesets_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- @@ -2033,6 +2078,14 @@ ALTER TABLE ONLY public.oauth_nonces ADD CONSTRAINT oauth_nonces_pkey PRIMARY KEY (id); +-- +-- Name: oauth_openid_requests oauth_openid_requests_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.oauth_openid_requests + ADD CONSTRAINT oauth_openid_requests_pkey PRIMARY KEY (id); + + -- -- Name: oauth_tokens oauth_tokens_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- @@ -2160,13 +2213,6 @@ ALTER TABLE ONLY public.ways CREATE INDEX acls_k_idx ON public.acls USING btree (k); --- --- Name: changeset_tags_id_idx; Type: INDEX; Schema: public; Owner: - --- - -CREATE INDEX changeset_tags_id_idx ON public.changeset_tags USING btree (changeset_id); - - -- -- Name: changesets_bbox_idx; Type: INDEX; Schema: public; Owner: - -- @@ -2573,6 +2619,13 @@ CREATE UNIQUE INDEX index_oauth_applications_on_uid ON public.oauth_applications CREATE UNIQUE INDEX index_oauth_nonces_on_nonce_and_timestamp ON public.oauth_nonces USING btree (nonce, "timestamp"); +-- +-- Name: index_oauth_openid_requests_on_access_grant_id; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX index_oauth_openid_requests_on_access_grant_id ON public.oauth_openid_requests USING btree (access_grant_id); + + -- -- Name: index_oauth_tokens_on_token; Type: INDEX; Schema: public; Owner: - -- @@ -2989,6 +3042,14 @@ ALTER TABLE ONLY public.oauth_access_tokens ADD CONSTRAINT fk_rails_732cb83ab7 FOREIGN KEY (application_id) REFERENCES public.oauth_applications(id) NOT VALID; +-- +-- Name: oauth_openid_requests fk_rails_77114b3b09; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.oauth_openid_requests + ADD CONSTRAINT fk_rails_77114b3b09 FOREIGN KEY (access_grant_id) REFERENCES public.oauth_access_grants(id) ON DELETE CASCADE; + + -- -- Name: active_storage_variant_records fk_rails_993965df05; Type: FK CONSTRAINT; Schema: public; Owner: - -- @@ -3332,119 +3393,122 @@ ALTER TABLE ONLY public.ways SET search_path TO "$user", public; INSERT INTO "schema_migrations" (version) VALUES -('1'), -('10'), -('11'), -('12'), -('13'), -('14'), -('15'), -('16'), -('17'), -('18'), -('19'), -('2'), -('20'), -('20100513171259'), -('20100516124737'), -('20100910084426'), -('20101114011429'), -('20110322001319'), -('20110508145337'), -('20110521142405'), -('20110925112722'), -('20111116184519'), -('20111212183945'), -('20120123184321'), -('20120208122334'), -('20120208194454'), -('20120214210114'), -('20120219161649'), -('20120318201948'), -('20120328090602'), -('20120404205604'), -('20120808231205'), -('20121005195010'), -('20121012044047'), -('20121119165817'), -('20121202155309'), -('20121203124841'), -('20130328184137'), -('20131212124700'), -('20140115192822'), -('20140117185510'), -('20140210003018'), -('20140507110937'), -('20140519141742'), -('20150110152606'), -('20150111192335'), -('20150222101847'), -('20150818224516'), -('20160822153055'), -('20161002153425'), -('20161011010929'), -('20170222134109'), -('20180204153242'), -('20181020114000'), -('20181031113522'), -('20190518115041'), -('20190623093642'), -('20190702193519'), -('20190716173946'), -('20191120140058'), -('20201004105659'), -('20201006213836'), -('20201006220807'), -('20201214144017'), -('20210510083027'), -('20210510083028'), -('20210511104518'), -('20211216185316'), -('20220201183346'), -('20220223140543'), -('20230816135800'), -('20230825162137'), -('21'), -('22'), -('23'), -('24'), -('25'), -('26'), -('27'), -('28'), -('29'), -('3'), -('30'), -('31'), -('32'), -('33'), -('34'), -('35'), -('36'), -('37'), -('38'), -('39'), -('4'), -('40'), -('41'), -('42'), -('43'), -('44'), -('45'), -('46'), -('47'), -('48'), -('49'), -('5'), -('50'), -('51'), -('52'), -('53'), -('54'), -('55'), -('56'), -('57'), -('6'), -('7'), +('9'), ('8'), -('9'); +('7'), +('6'), +('57'), +('56'), +('55'), +('54'), +('53'), +('52'), +('51'), +('50'), +('5'), +('49'), +('48'), +('47'), +('46'), +('45'), +('44'), +('43'), +('42'), +('41'), +('40'), +('4'), +('39'), +('38'), +('37'), +('36'), +('35'), +('34'), +('33'), +('32'), +('31'), +('30'), +('3'), +('29'), +('28'), +('27'), +('26'), +('25'), +('24'), +('23'), +('22'), +('21'), +('20231007141103'), +('20230830115220'), +('20230830115219'), +('20230825162137'), +('20230816135800'), +('20220223140543'), +('20220201183346'), +('20211216185316'), +('20210511104518'), +('20210510083028'), +('20210510083027'), +('20201214144017'), +('20201006220807'), +('20201006213836'), +('20201004105659'), +('20191120140058'), +('20190716173946'), +('20190702193519'), +('20190623093642'), +('20190518115041'), +('20181031113522'), +('20181020114000'), +('20180204153242'), +('20170222134109'), +('20161011010929'), +('20161002153425'), +('20160822153055'), +('20150818224516'), +('20150222101847'), +('20150111192335'), +('20150110152606'), +('20140519141742'), +('20140507110937'), +('20140210003018'), +('20140117185510'), +('20140115192822'), +('20131212124700'), +('20130328184137'), +('20121203124841'), +('20121202155309'), +('20121119165817'), +('20121012044047'), +('20121005195010'), +('20120808231205'), +('20120404205604'), +('20120328090602'), +('20120318201948'), +('20120219161649'), +('20120214210114'), +('20120208194454'), +('20120208122334'), +('20120123184321'), +('20111212183945'), +('20111116184519'), +('20110925112722'), +('20110521142405'), +('20110508145337'), +('20110322001319'), +('20101114011429'), +('20100910084426'), +('20100516124737'), +('20100513171259'), +('20'), +('2'), +('19'), +('18'), +('17'), +('16'), +('15'), +('14'), +('13'), +('12'), +('11'), +('10'), +('1'); diff --git a/lib/oauth.rb b/lib/oauth.rb index 7ff2ba8b4..0456c0873 100644 --- a/lib/oauth.rb +++ b/lib/oauth.rb @@ -1,6 +1,7 @@ module Oauth SCOPES = %w[read_prefs write_prefs write_diary write_api read_gpx write_gpx write_notes].freeze PRIVILEGED_SCOPES = %w[read_email skip_authorization].freeze + OAUTH2_SCOPES = %w[openid].freeze class Scope attr_reader :name @@ -14,9 +15,10 @@ module Oauth end end - def self.scopes(privileged: false) + def self.scopes(oauth2: false, privileged: false) scopes = SCOPES scopes += PRIVILEGED_SCOPES if privileged + scopes += OAUTH2_SCOPES if oauth2 scopes.collect { |s| Scope.new(s) } end end diff --git a/lib/rich_text.rb b/lib/rich_text.rb index a0c4d9c8d..56d358bd8 100644 --- a/lib/rich_text.rb +++ b/lib/rich_text.rb @@ -15,7 +15,7 @@ module RichText include ActionView::Helpers::TextHelper include ActionView::Helpers::OutputSafetyHelper - def sanitize(text) + def sanitize(text, _options = {}) Sanitize.clean(text, Sanitize::Config::OSM).html_safe end end diff --git a/lib/tasks/auto_annotate_models.rake b/lib/tasks/auto_annotate_models.rake index 70bc391a0..103e7fcc9 100644 --- a/lib/tasks/auto_annotate_models.rake +++ b/lib/tasks/auto_annotate_models.rake @@ -1,7 +1,7 @@ # NOTE: only doing this in development as some production environments (Heroku) # NOTE: are sensitive to local FS writes, and besides -- it's just not proper # NOTE: to have a dev-mode tool do its thing in production. -if Rails.env.development? +if Rails.env.development? || Rails.env.test? task :set_annotation_options => :environment do # You can override any of these by setting an environment variable of the # same name. diff --git a/script/vagrant/setup/provision.sh b/script/vagrant/setup/provision.sh index d34c46008..f19234a8e 100644 --- a/script/vagrant/setup/provision.sh +++ b/script/vagrant/setup/provision.sh @@ -19,7 +19,7 @@ apt-get upgrade -y apt-get install -y ruby ruby-dev ruby-bundler \ libxml2-dev libxslt1-dev nodejs npm \ build-essential git-core \ - postgresql postgresql-contrib libpq-dev libvips-dev \ + postgresql postgresql-contrib libpq-dev libvips-dev libyaml-dev \ libsasl2-dev libffi-dev libgd-dev libarchive-dev libbz2-dev npm install --global yarn diff --git a/test/controllers/api/changesets_controller_test.rb b/test/controllers/api/changesets_controller_test.rb index b4bc4a5ab..802e006e1 100644 --- a/test/controllers/api/changesets_controller_test.rb +++ b/test/controllers/api/changesets_controller_test.rb @@ -134,12 +134,14 @@ module Api def test_create_wrong_method auth_header = basic_authorization_header create(:user).email, "test" - assert_raise ActionController::RoutingError do - get changeset_create_path, :headers => auth_header - end - assert_raise ActionController::RoutingError do - post changeset_create_path, :headers => auth_header - end + + get changeset_create_path, :headers => auth_header + assert_response :not_found + assert_template "rescues/routing_error" + + post changeset_create_path, :headers => auth_header + assert_response :not_found + assert_template "rescues/routing_error" end ## @@ -361,13 +363,13 @@ module Api auth_header = basic_authorization_header user.email, "test" - assert_raise ActionController::RoutingError do - get changeset_close_path(changeset), :headers => auth_header - end + get changeset_close_path(changeset), :headers => auth_header + assert_response :not_found + assert_template "rescues/routing_error" - assert_raise ActionController::RoutingError do - post changeset_close_path(changeset), :headers => auth_header - end + post changeset_close_path(changeset), :headers => auth_header + assert_response :not_found + assert_template "rescues/routing_error" end ## diff --git a/test/controllers/api/nodes_controller_test.rb b/test/controllers/api/nodes_controller_test.rb index 9e680dd06..2d827a077 100644 --- a/test/controllers/api/nodes_controller_test.rb +++ b/test/controllers/api/nodes_controller_test.rb @@ -138,7 +138,7 @@ module Api xml = "" put node_create_path, :params => xml, :headers => auth_header assert_response :bad_request, "node upload did not return bad_request status" - assert_equal ["NodeTag ", " v: is too long (maximum is 255 characters) (\"#{'x' * 256}\")"], @response.body.split(/[0-9]+,foo:/) + assert_match(/ v: is too long \(maximum is 255 characters\) /, @response.body) end def test_show diff --git a/test/controllers/api/traces_controller_test.rb b/test/controllers/api/traces_controller_test.rb index 468af852b..b26782a3f 100644 --- a/test/controllers/api/traces_controller_test.rb +++ b/test/controllers/api/traces_controller_test.rb @@ -194,7 +194,7 @@ module Api # Now authenticated create(:user_preference, :user => user, :k => "gps.trace.visibility", :v => "identifiable") - assert_not_equal "trackable", user.preferences.where(:k => "gps.trace.visibility").first.v + assert_not_equal "trackable", user.preferences.find_by(:k => "gps.trace.visibility").v auth_header = basic_authorization_header user.display_name, "test" post gpx_create_path, :params => { :file => file, :description => "New Trace", :tags => "new,trace", :visibility => "trackable" }, :headers => auth_header assert_response :success @@ -206,13 +206,13 @@ module Api assert_not trace.inserted assert_equal File.new(fixture).read, trace.file.blob.download trace.destroy - assert_equal "trackable", user.preferences.where(:k => "gps.trace.visibility").first.v + assert_equal "trackable", user.preferences.find_by(:k => "gps.trace.visibility").v # Rewind the file file.rewind # Now authenticated, with the legacy public flag - assert_not_equal "public", user.preferences.where(:k => "gps.trace.visibility").first.v + assert_not_equal "public", user.preferences.find_by(:k => "gps.trace.visibility").v auth_header = basic_authorization_header user.display_name, "test" post gpx_create_path, :params => { :file => file, :description => "New Trace", :tags => "new,trace", :public => 1 }, :headers => auth_header assert_response :success @@ -224,14 +224,14 @@ module Api assert_not trace.inserted assert_equal File.new(fixture).read, trace.file.blob.download trace.destroy - assert_equal "public", user.preferences.where(:k => "gps.trace.visibility").first.v + assert_equal "public", user.preferences.find_by(:k => "gps.trace.visibility").v # Rewind the file file.rewind # Now authenticated, with the legacy private flag second_user = create(:user) - assert_nil second_user.preferences.where(:k => "gps.trace.visibility").first + assert_nil second_user.preferences.find_by(:k => "gps.trace.visibility") auth_header = basic_authorization_header second_user.display_name, "test" post gpx_create_path, :params => { :file => file, :description => "New Trace", :tags => "new,trace", :public => 0 }, :headers => auth_header assert_response :success @@ -243,7 +243,7 @@ module Api assert_not trace.inserted assert_equal File.new(fixture).read, trace.file.blob.download trace.destroy - assert_equal "private", second_user.preferences.where(:k => "gps.trace.visibility").first.v + assert_equal "private", second_user.preferences.find_by(:k => "gps.trace.visibility").v end # Check updating a trace through the api diff --git a/test/controllers/diary_entries_controller_test.rb b/test/controllers/diary_entries_controller_test.rb index b505d9cdb..b47446878 100644 --- a/test/controllers/diary_entries_controller_test.rb +++ b/test/controllers/diary_entries_controller_test.rb @@ -135,7 +135,7 @@ class DiaryEntriesControllerTest < ActionDispatch::IntegrationTest assert_select "input[name=commit][type=submit][value=Publish]", :count => 1 assert_select "input[name=commit][type=submit][value=Edit]", :count => 1 assert_select "input[name=commit][type=submit][value=Preview]", :count => 1 - assert_select "input", :count => 7 + assert_select "input", :count => 6 end end end @@ -164,7 +164,7 @@ class DiaryEntriesControllerTest < ActionDispatch::IntegrationTest assert_response :success assert_template :new - assert_nil UserPreference.where(:user => user, :k => "diary.default_language").first + assert_nil UserPreference.find_by(:user => user, :k => "diary.default_language") end def test_create @@ -189,7 +189,7 @@ class DiaryEntriesControllerTest < ActionDispatch::IntegrationTest # checks if user was subscribed assert_equal 1, entry.subscribers.length - assert_equal "en", UserPreference.where(:user => user, :k => "diary.default_language").first.v + assert_equal "en", UserPreference.find_by(:user => user, :k => "diary.default_language").v end def test_create_german @@ -216,7 +216,7 @@ class DiaryEntriesControllerTest < ActionDispatch::IntegrationTest # checks if user was subscribed assert_equal 1, entry.subscribers.length - assert_equal "de", UserPreference.where(:user => user, :k => "diary.default_language").first.v + assert_equal "de", UserPreference.find_by(:user => user, :k => "diary.default_language").v end def test_new_spammy @@ -294,7 +294,7 @@ class DiaryEntriesControllerTest < ActionDispatch::IntegrationTest assert_select "input[name=commit][type=submit][value=Update]", :count => 1 assert_select "input[name=commit][type=submit][value=Edit]", :count => 1 assert_select "input[name=commit][type=submit][value=Preview]", :count => 1 - assert_select "input", :count => 8 + assert_select "input", :count => 7 end end @@ -695,9 +695,9 @@ class DiaryEntriesControllerTest < ActionDispatch::IntegrationTest assert_template :show # Try a non-integer ID - assert_raise ActionController::RoutingError do - get "/user/#{CGI.escape(user.display_name)}/diary/#{diary_entry.id})" - end + get "/user/#{CGI.escape(user.display_name)}/diary/#{diary_entry.id})" + assert_response :not_found + assert_template "rescues/routing_error" # Try a deleted entry diary_entry_deleted = create(:diary_entry, :user => user, :visible => false) diff --git a/test/controllers/friendships_controller_test.rb b/test/controllers/friendships_controller_test.rb index 6273caaf2..19de4ae8e 100644 --- a/test/controllers/friendships_controller_test.rb +++ b/test/controllers/friendships_controller_test.rb @@ -28,7 +28,7 @@ class FriendshipsControllerTest < ActionDispatch::IntegrationTest friend = create(:user) # Check that the users aren't already friends - assert_nil Friendship.where(:befriender => user, :befriendee => friend).first + assert_nil Friendship.find_by(:befriender => user, :befriendee => friend) # When not logged in a GET should ask us to login get make_friend_path(friend) @@ -37,7 +37,7 @@ class FriendshipsControllerTest < ActionDispatch::IntegrationTest # When not logged in a POST should error post make_friend_path(friend) assert_response :forbidden - assert_nil Friendship.where(:befriender => user, :befriendee => friend).first + assert_nil Friendship.find_by(:befriender => user, :befriendee => friend) session_for(user) @@ -49,7 +49,7 @@ class FriendshipsControllerTest < ActionDispatch::IntegrationTest assert_select "input[type='hidden'][name='referer']", 0 assert_select "input[type='submit']", 1 end - assert_nil Friendship.where(:befriender => user, :befriendee => friend).first + assert_nil Friendship.find_by(:befriender => user, :befriendee => friend) # When logged in a POST should add the friendship assert_difference "ActionMailer::Base.deliveries.size", 1 do @@ -59,7 +59,7 @@ class FriendshipsControllerTest < ActionDispatch::IntegrationTest end assert_redirected_to user_path(friend) assert_match(/is now your friend/, flash[:notice]) - assert Friendship.where(:befriender => user, :befriendee => friend).first + assert Friendship.find_by(:befriender => user, :befriendee => friend) email = ActionMailer::Base.deliveries.first assert_equal 1, email.to.count assert_equal friend.email, email.to.first @@ -73,7 +73,7 @@ class FriendshipsControllerTest < ActionDispatch::IntegrationTest end assert_redirected_to user_path(friend) assert_match(/You are already friends with/, flash[:warning]) - assert Friendship.where(:befriender => user, :befriendee => friend).first + assert Friendship.find_by(:befriender => user, :befriendee => friend) end def test_make_friend_with_referer @@ -83,7 +83,7 @@ class FriendshipsControllerTest < ActionDispatch::IntegrationTest session_for(user) # Check that the users aren't already friends - assert_nil Friendship.where(:befriender => user, :befriendee => friend).first + assert_nil Friendship.find_by(:befriender => user, :befriendee => friend) # The GET should preserve any referer get make_friend_path(friend), :params => { :referer => "/test" } @@ -93,7 +93,7 @@ class FriendshipsControllerTest < ActionDispatch::IntegrationTest assert_select "input[type='hidden'][name='referer'][value='/test']", 1 assert_select "input[type='submit']", 1 end - assert_nil Friendship.where(:befriender => user, :befriendee => friend).first + assert_nil Friendship.find_by(:befriender => user, :befriendee => friend) # When logged in a POST should add the friendship and refer us assert_difference "ActionMailer::Base.deliveries.size", 1 do @@ -103,7 +103,7 @@ class FriendshipsControllerTest < ActionDispatch::IntegrationTest end assert_redirected_to "/test" assert_match(/is now your friend/, flash[:notice]) - assert Friendship.where(:befriender => user, :befriendee => friend).first + assert Friendship.find_by(:befriender => user, :befriendee => friend) email = ActionMailer::Base.deliveries.first assert_equal 1, email.to.count assert_equal friend.email, email.to.first @@ -125,7 +125,7 @@ class FriendshipsControllerTest < ActionDispatch::IntegrationTest create(:friendship, :befriender => user, :befriendee => friend) # Check that the users are friends - assert Friendship.where(:befriender => user, :befriendee => friend).first + assert Friendship.find_by(:befriender => user, :befriendee => friend) # When not logged in a GET should ask us to login get remove_friend_path(friend) @@ -134,7 +134,7 @@ class FriendshipsControllerTest < ActionDispatch::IntegrationTest # When not logged in a POST should error post remove_friend_path, :params => { :display_name => friend.display_name } assert_response :forbidden - assert Friendship.where(:befriender => user, :befriendee => friend).first + assert Friendship.find_by(:befriender => user, :befriendee => friend) session_for(user) @@ -146,19 +146,19 @@ class FriendshipsControllerTest < ActionDispatch::IntegrationTest assert_select "input[type='hidden'][name='referer']", 0 assert_select "input[type='submit']", 1 end - assert Friendship.where(:befriender => user, :befriendee => friend).first + assert Friendship.find_by(:befriender => user, :befriendee => friend) # When logged in a POST should remove the friendship post remove_friend_path(friend) assert_redirected_to user_path(friend) assert_match(/was removed from your friends/, flash[:notice]) - assert_nil Friendship.where(:befriender => user, :befriendee => friend).first + assert_nil Friendship.find_by(:befriender => user, :befriendee => friend) # A second POST should report that the friendship does not exist post remove_friend_path(friend) assert_redirected_to user_path(friend) assert_match(/is not one of your friends/, flash[:error]) - assert_nil Friendship.where(:befriender => user, :befriendee => friend).first + assert_nil Friendship.find_by(:befriender => user, :befriendee => friend) end def test_remove_friend_with_referer @@ -169,7 +169,7 @@ class FriendshipsControllerTest < ActionDispatch::IntegrationTest session_for(user) # Check that the users are friends - assert Friendship.where(:befriender => user, :befriendee => friend).first + assert Friendship.find_by(:befriender => user, :befriendee => friend) # The GET should preserve any referer get remove_friend_path(friend), :params => { :referer => "/test" } @@ -179,13 +179,13 @@ class FriendshipsControllerTest < ActionDispatch::IntegrationTest assert_select "input[type='hidden'][name='referer'][value='/test']", 1 assert_select "input[type='submit']", 1 end - assert Friendship.where(:befriender => user, :befriendee => friend).first + assert Friendship.find_by(:befriender => user, :befriendee => friend) # When logged in a POST should remove the friendship and refer post remove_friend_path(friend), :params => { :referer => "/test" } assert_redirected_to "/test" assert_match(/was removed from your friends/, flash[:notice]) - assert_nil Friendship.where(:befriender => user, :befriendee => friend).first + assert_nil Friendship.find_by(:befriender => user, :befriendee => friend) end def test_remove_friend_unknown_user diff --git a/test/controllers/geocoder_controller_test.rb b/test/controllers/geocoder_controller_test.rb index dd740e570..d62eb35b7 100644 --- a/test/controllers/geocoder_controller_test.rb +++ b/test/controllers/geocoder_controller_test.rb @@ -415,6 +415,6 @@ class GeocoderControllerTest < ActionDispatch::IntegrationTest assert_response :success assert_template :error assert_template :layout => nil - assert_select "p.search_results_error", error + assert_select ".alert.alert-danger", error end end diff --git a/test/controllers/traces_controller_test.rb b/test/controllers/traces_controller_test.rb index fe3ecdea6..595284bb6 100644 --- a/test/controllers/traces_controller_test.rb +++ b/test/controllers/traces_controller_test.rb @@ -658,7 +658,7 @@ class TracesControllerTest < ActionDispatch::IntegrationTest # Now authenticated create(:user_preference, :user => user, :k => "gps.trace.visibility", :v => "identifiable") - assert_not_equal "trackable", user.preferences.where(:k => "gps.trace.visibility").first.v + assert_not_equal "trackable", user.preferences.find_by(:k => "gps.trace.visibility").v session_for(user) post traces_path, :params => { :trace => { :gpx_file => file, :description => "New Trace", :tagstring => "new,trace", :visibility => "trackable" } } assert_response :redirect @@ -672,7 +672,7 @@ class TracesControllerTest < ActionDispatch::IntegrationTest assert_not trace.inserted assert_equal File.new(fixture).read, trace.file.blob.download trace.destroy - assert_equal "trackable", user.preferences.where(:k => "gps.trace.visibility").first.v + assert_equal "trackable", user.preferences.find_by(:k => "gps.trace.visibility").v end # Test creating a trace with validation errors @@ -684,7 +684,7 @@ class TracesControllerTest < ActionDispatch::IntegrationTest # Now authenticated create(:user_preference, :user => user, :k => "gps.trace.visibility", :v => "identifiable") - assert_not_equal "trackable", user.preferences.where(:k => "gps.trace.visibility").first.v + assert_not_equal "trackable", user.preferences.find_by(:k => "gps.trace.visibility").v session_for(user) post traces_path, :params => { :trace => { :gpx_file => file, :description => "", :tagstring => "new,trace", :visibility => "trackable" } } assert_template :new diff --git a/test/helpers/geocoder_helper_test.rb b/test/helpers/geocoder_helper_test.rb index e7ef18065..1be1b72a5 100644 --- a/test/helpers/geocoder_helper_test.rb +++ b/test/helpers/geocoder_helper_test.rb @@ -3,21 +3,21 @@ require "test_helper" class GeocoderHelperTest < ActionView::TestCase def test_result_to_html html = result_to_html(:lat => 1.23, :lon => 4.56, :zoom => 16, :name => "Name") - assert_dom_equal 'Name', html + assert_dom_equal 'Name', html html = result_to_html(:lat => 1.23, :lon => 4.56, :zoom => 16, :prefix => "Prefix", :name => "Name") - assert_dom_equal 'Prefix Name', html + assert_dom_equal 'Prefix Name', html html = result_to_html(:lat => 1.23, :lon => 4.56, :zoom => 16, :name => "Name", :suffix => "Suffix") - assert_dom_equal 'Name Suffix', html + assert_dom_equal 'Name Suffix', html html = result_to_html(:lat => 1.23, :lon => 4.56, :zoom => 16, :prefix => "Prefix", :name => "Name", :suffix => "Suffix") - assert_dom_equal 'Prefix Name Suffix', html + assert_dom_equal 'Prefix Name Suffix', html html = result_to_html(:type => "node", :id => 123456, :name => "Name") - assert_dom_equal 'Name', html + assert_dom_equal 'Name', html html = result_to_html(:min_lat => 1.23, :max_lat => 4.56, :min_lon => -1.23, :max_lon => 2.34, :name => "Name") - assert_dom_equal 'NameName - This user is a moderator - HTML assert_dom_equal expected, icon end @@ -26,10 +23,7 @@ class UserRolesHelperTest < ActionView::TestCase icon = role_icon(user, "moderator") expected = <<~HTML.delete("\n") - - Grant moderator access - HTML assert_dom_equal expected, icon @@ -38,10 +32,7 @@ class UserRolesHelperTest < ActionView::TestCase icon = role_icon(moderator_user, "moderator") expected = <<~HTML.delete("\n") - - Revoke moderator access - HTML assert_dom_equal expected, icon @@ -55,23 +46,14 @@ class UserRolesHelperTest < ActionView::TestCase icons = role_icons(create(:moderator_user)) expected = <<~HTML.delete("\n") - - This user is a moderator - HTML assert_dom_equal expected, icons icons = role_icons(create(:super_user)) expected = <<~HTML.delete("\n") - - This user is an administrator - - - This user is a moderator - HTML assert_dom_equal expected, icons end @@ -83,16 +65,10 @@ class UserRolesHelperTest < ActionView::TestCase icons = role_icons(user) expected = <<~HTML.delete("\n") - - Grant administrator access - - - - + Grant moderator access - HTML assert_dom_equal expected, icons @@ -101,16 +77,10 @@ class UserRolesHelperTest < ActionView::TestCase icons = role_icons(moderator_user) expected = <<~HTML.delete("\n") - - Grant administrator access - - - - + Revoke moderator access - HTML assert_dom_equal expected, icons @@ -119,16 +89,10 @@ class UserRolesHelperTest < ActionView::TestCase icons = role_icons(super_user) expected = <<~HTML.delete("\n") - - Revoke administrator access - - - - + Revoke moderator access - HTML assert_dom_equal expected, icons diff --git a/test/integration/oauth2_test.rb b/test/integration/oauth2_test.rb index 81f12f7cb..fd6b42fec 100644 --- a/test/integration/oauth2_test.rb +++ b/test/integration/oauth2_test.rb @@ -1,4 +1,5 @@ require "test_helper" +require "jwt" class OAuth2Test < ActionDispatch::IntegrationTest def test_oauth2 @@ -12,7 +13,8 @@ class OAuth2Test < ActionDispatch::IntegrationTest token = request_token(client, code) - test_token(token, user, client) + assert_equal "read_prefs", token["scope"] + test_token(token["access_token"], user, client) end def test_oauth2_oob @@ -30,7 +32,8 @@ class OAuth2Test < ActionDispatch::IntegrationTest token = request_token(client, code) - test_token(token, user, client) + assert_equal "read_prefs", token["scope"] + test_token(token["access_token"], user, client) end def test_oauth2_pkce_plain @@ -46,7 +49,8 @@ class OAuth2Test < ActionDispatch::IntegrationTest token = request_token(client, code, verifier) - test_token(token, user, client) + assert_equal "read_prefs", token["scope"] + test_token(token["access_token"], user, client) end def test_oauth2_pkce_s256 @@ -62,16 +66,95 @@ class OAuth2Test < ActionDispatch::IntegrationTest token = request_token(client, code, verifier) - test_token(token, user, client) + assert_equal "read_prefs", token["scope"] + test_token(token["access_token"], user, client) + end + + def test_openid_connect + user = create(:user) + client = create(:oauth_application, :redirect_uri => "https://some.web.app.example.org/callback", :scopes => "openid read_prefs") + state = SecureRandom.urlsafe_base64(16) + verifier = SecureRandom.urlsafe_base64(48) + challenge = Base64.urlsafe_encode64(Digest::SHA256.digest(verifier), :padding => false) + + authorize_client(user, client, :state => state, :code_challenge => challenge, :code_challenge_method => "S256", :scope => "openid read_prefs") + assert_response :redirect + code = validate_redirect(client, state) + + token = request_token(client, code, verifier) + + assert_equal "openid read_prefs", token["scope"] + + access_token = token["access_token"] + assert_not_nil access_token + + id_token = token["id_token"] + assert_not_nil id_token + + data, _headers = JWT.decode id_token, nil, true, { + :algorithm => [Doorkeeper::OpenidConnect.signing_algorithm.to_s], + :verify_iss => true, + :iss => "#{Settings.server_protocol}://#{Settings.server_url}", + :verify_sub => true, + :sub => user.id, + :verify_aud => true, + :aud => client.uid + } do |headers, _payload| + kid = headers["kid"] + get oauth_discovery_keys_path + keys = response.parsed_body["keys"] + jwk = keys&.detect { |e| e["kid"] == kid } + jwk && JWT::JWK::RSA.import(jwk).public_key + end + + assert_equal user.id.to_s, data["sub"] + assert_not data.key?("preferred_username") + + get oauth_userinfo_path + assert_response :unauthorized + + auth_header = bearer_authorization_header(access_token) + get oauth_userinfo_path, :headers => auth_header + assert_response :success + + userinfo = response.parsed_body + + assert_not_nil userinfo + assert_equal user.id.to_s, userinfo["sub"] + assert_equal user.display_name, userinfo["preferred_username"] + end + + def test_openid_discovery + get oauth_discovery_provider_path + assert_response :success + openid_config = response.parsed_body + + assert_equal "#{Settings.server_protocol}://#{Settings.server_url}", openid_config["issuer"] + + assert_equal oauth_authorization_path, URI(openid_config["authorization_endpoint"]).path + assert_equal oauth_token_path, URI(openid_config["token_endpoint"]).path + assert_equal oauth_userinfo_path, URI(openid_config["userinfo_endpoint"]).path + assert_equal oauth_discovery_keys_path, URI(openid_config["jwks_uri"]).path + end + + def test_openid_key + get oauth_discovery_keys_path + assert_response :success + key_info = response.parsed_body + assert key_info.key?("keys") + assert_equal 1, key_info["keys"].size + assert_equal Doorkeeper::OpenidConnect.signing_key.kid, key_info["keys"][0]["kid"] end private def authorize_client(user, client, options = {}) - options = options.merge(:client_id => client.uid, - :redirect_uri => client.redirect_uri, - :response_type => "code", - :scope => "read_prefs") + options = { + :client_id => client.uid, + :redirect_uri => client.redirect_uri, + :response_type => "code", + :scope => "read_prefs" + }.merge(options) get oauth_authorization_path(options) assert_response :redirect @@ -135,9 +218,8 @@ class OAuth2Test < ActionDispatch::IntegrationTest assert_response :success token = response.parsed_body assert_equal "Bearer", token["token_type"] - assert_equal "read_prefs", token["scope"] - token["access_token"] + token end def test_token(token, user, client) diff --git a/test/integration/user_diaries_test.rb b/test/integration/user_diaries_test.rb index 57a98823b..7188afd7a 100644 --- a/test/integration/user_diaries_test.rb +++ b/test/integration/user_diaries_test.rb @@ -15,19 +15,7 @@ class UserDiariesTest < ActionDispatch::IntegrationTest # We can now login post "/login", :params => { "username" => user.email, "password" => "test", :referer => "/diary/new" } assert_response :redirect - - # Check that there is some payload alerting the user to the redirect - # and allowing them to get to the page they are being directed to - assert_select "html:root" do - assert_select "body" do - assert_select "a[href='http://www.example.com/diary/new']" - end - end - # Required due to a bug in the rails testing framework - # http://markmail.org/message/wnslvi5xv5moqg7g - @html_document = nil follow_redirect! - assert_response :success assert_template "diary_entries/new" diff --git a/test/models/node_test.rb b/test/models/node_test.rb index 2e6108234..ee0a77649 100644 --- a/test/models/node_test.rb +++ b/test/models/node_test.rb @@ -87,7 +87,7 @@ class NodeTest < ActiveSupport::TestCase assert_equal node_template.timestamp.to_i, node.timestamp.to_i assert_equal(1, OldNode.where(:node_id => node_template.id).count) - old_node = OldNode.where(:node_id => node_template.id).first + old_node = OldNode.find_by(:node_id => node_template.id, :version => 1) assert_not_nil old_node assert_equal node_template.latitude, old_node.latitude assert_equal node_template.longitude, old_node.longitude @@ -120,7 +120,7 @@ class NodeTest < ActiveSupport::TestCase # assert_equal node_template.tags, node.tags assert_equal(2, OldNode.where(:node_id => node_template.id).count) - old_node = OldNode.where(:node_id => node_template.id, :version => 2).first + old_node = OldNode.find_by(:node_id => node_template.id, :version => 2) assert_not_nil old_node assert_equal node_template.latitude, old_node.latitude assert_equal node_template.longitude, old_node.longitude @@ -149,7 +149,7 @@ class NodeTest < ActiveSupport::TestCase # assert_equal node_template.tags, node.tags assert_equal(2, OldNode.where(:node_id => node_template.id).count) - old_node = OldNode.where(:node_id => node_template.id, :version => 2).first + old_node = OldNode.find_by(:node_id => node_template.id, :version => 2) assert_not_nil old_node assert_equal node_template.latitude, old_node.latitude assert_equal node_template.longitude, old_node.longitude diff --git a/test/models/trace_test.rb b/test/models/trace_test.rb index 66107771a..af219db43 100644 --- a/test/models/trace_test.rb +++ b/test/models/trace_test.rb @@ -202,7 +202,7 @@ class TraceTest < ActiveSupport::TestCase # Check that the tile has been set prior to the bulk import # i.e. that the callbacks have been run correctly - assert_equal 3221331576, Tracepoint.where(:trace => trace).first.tile + assert_equal 3221331576, Tracepoint.find_by(:trace => trace).tile end def test_import_creates_icon diff --git a/yarn.lock b/yarn.lock index bde99b23e..4f16353a5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -34,17 +34,17 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.50.0": - version "8.50.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.50.0.tgz#9e93b850f0f3fa35f5fa59adfd03adae8488e484" - integrity sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ== +"@eslint/js@8.52.0": + version "8.52.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.52.0.tgz#78fe5f117840f69dc4a353adf9b9cd926353378c" + integrity sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA== -"@humanwhocodes/config-array@^0.11.11": - version "0.11.11" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.11.tgz#88a04c570dbbc7dd943e4712429c3df09bc32844" - integrity sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA== +"@humanwhocodes/config-array@^0.11.13": + version "0.11.13" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" + integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== dependencies: - "@humanwhocodes/object-schema" "^1.2.1" + "@humanwhocodes/object-schema" "^2.0.1" debug "^4.1.1" minimatch "^3.0.5" @@ -53,10 +53,10 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@humanwhocodes/object-schema@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" + integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -79,6 +79,11 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@ungap/structured-clone@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" @@ -224,17 +229,18 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== eslint@^8.0.0: - version "8.50.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.50.0.tgz#2ae6015fee0240fcd3f83e1e25df0287f487d6b2" - integrity sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg== + version "8.52.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.52.0.tgz#d0cd4a1fac06427a61ef9242b9353f36ea7062fc" + integrity sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" "@eslint/eslintrc" "^2.1.2" - "@eslint/js" "8.50.0" - "@humanwhocodes/config-array" "^0.11.11" + "@eslint/js" "8.52.0" + "@humanwhocodes/config-array" "^0.11.13" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" + "@ungap/structured-clone" "^1.2.0" ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2"
<%= t "site.index.license.license_url" %><%= t "site.index.license.project_url" %><%= t "site.index.license.license_url" %><%= t "site.index.license.project_url" %>
<%= t "site.index.license.copyright" %>