]> git.openstreetmap.org Git - rails.git/commitdiff
Merge remote-tracking branch 'upstream/pull/4272'
authorTom Hughes <tom@compton.nu>
Sun, 25 Feb 2024 13:40:11 +0000 (13:40 +0000)
committerTom Hughes <tom@compton.nu>
Sun, 25 Feb 2024 13:40:11 +0000 (13:40 +0000)
449 files changed:
.github/workflows/lint.yml
.github/workflows/tests.yml
.rubocop_todo.yml
CONFIGURE.md
Gemfile
Gemfile.lock
INSTALL.md
app/abilities/ability.rb
app/abilities/api_ability.rb
app/abilities/api_capability.rb
app/assets/images/key/cyclemap/beach.png [new file with mode: 0644]
app/assets/images/key/cyclemap/bicycle_parking.png
app/assets/images/key/cyclemap/bicycle_parking_small.svg [new file with mode: 0644]
app/assets/images/key/cyclemap/bicycle_rental.png [new file with mode: 0644]
app/assets/images/key/cyclemap/bicycle_rental_small.svg [new file with mode: 0644]
app/assets/images/key/cyclemap/common.png [deleted file]
app/assets/images/key/cyclemap/cycleway.png [deleted file]
app/assets/images/key/cyclemap/cycleway_local.png [deleted file]
app/assets/images/key/cyclemap/cycleway_local13.png [deleted file]
app/assets/images/key/cyclemap/cycleway_national.png [deleted file]
app/assets/images/key/cyclemap/cycleway_national13.png [deleted file]
app/assets/images/key/cyclemap/cycleway_regional.png [deleted file]
app/assets/images/key/cyclemap/cycleway_regional13.png [deleted file]
app/assets/images/key/cyclemap/footway.png [deleted file]
app/assets/images/key/cyclemap/forest.png [deleted file]
app/assets/images/key/cyclemap/lake.png [deleted file]
app/assets/images/key/cyclemap/motorway.png [deleted file]
app/assets/images/key/cyclemap/motorway12.png [deleted file]
app/assets/images/key/cyclemap/primary.png [deleted file]
app/assets/images/key/cyclemap/primary12.png [deleted file]
app/assets/images/key/cyclemap/rail.png [deleted file]
app/assets/images/key/cyclemap/rail14.png [deleted file]
app/assets/images/key/cyclemap/secondary.png [deleted file]
app/assets/images/key/cyclemap/secondary12.png [deleted file]
app/assets/images/key/cyclemap/track.png [deleted file]
app/assets/images/key/cyclemap/trunk.png [deleted file]
app/assets/images/key/cyclemap/trunk12.png [deleted file]
app/assets/images/key/mapnik/admin.png [deleted file]
app/assets/images/key/mapnik/allotments.png [deleted file]
app/assets/images/key/mapnik/apron.png [deleted file]
app/assets/images/key/mapnik/bridge.png [deleted file]
app/assets/images/key/mapnik/bridleway.png [deleted file]
app/assets/images/key/mapnik/brownfield.png [deleted file]
app/assets/images/key/mapnik/building.png [deleted file]
app/assets/images/key/mapnik/capital4.svg [new file with mode: 0644]
app/assets/images/key/mapnik/capital7.svg [new file with mode: 0644]
app/assets/images/key/mapnik/cemetery.png [deleted file]
app/assets/images/key/mapnik/centre.png [deleted file]
app/assets/images/key/mapnik/city4.svg [new file with mode: 0644]
app/assets/images/key/mapnik/city6.svg [new file with mode: 0644]
app/assets/images/key/mapnik/commercial.png [deleted file]
app/assets/images/key/mapnik/common.png [deleted file]
app/assets/images/key/mapnik/cycleway.png [deleted file]
app/assets/images/key/mapnik/farm.png [deleted file]
app/assets/images/key/mapnik/footway.png [deleted file]
app/assets/images/key/mapnik/forest.png [deleted file]
app/assets/images/key/mapnik/golf.png [deleted file]
app/assets/images/key/mapnik/heathland.png [deleted file]
app/assets/images/key/mapnik/industrial.png [deleted file]
app/assets/images/key/mapnik/intermittent_water.svg [new file with mode: 0644]
app/assets/images/key/mapnik/lake.png [deleted file]
app/assets/images/key/mapnik/mainroad.png [deleted file]
app/assets/images/key/mapnik/mainroad12.png [deleted file]
app/assets/images/key/mapnik/mainroad12.svg [new file with mode: 0644]
app/assets/images/key/mapnik/mainroad15.svg [new file with mode: 0644]
app/assets/images/key/mapnik/mainroad7.png [deleted file]
app/assets/images/key/mapnik/mainroad8.svg [new file with mode: 0644]
app/assets/images/key/mapnik/mainroad9.png [deleted file]
app/assets/images/key/mapnik/mainroad9.svg [new file with mode: 0644]
app/assets/images/key/mapnik/military.png [deleted file]
app/assets/images/key/mapnik/military.svg [new file with mode: 0644]
app/assets/images/key/mapnik/motorway.png [deleted file]
app/assets/images/key/mapnik/park.png [deleted file]
app/assets/images/key/mapnik/pitch.png [deleted file]
app/assets/images/key/mapnik/rail.png [deleted file]
app/assets/images/key/mapnik/rail13.png [deleted file]
app/assets/images/key/mapnik/reef.png [new file with mode: 0644]
app/assets/images/key/mapnik/reserve.png [deleted file]
app/assets/images/key/mapnik/reserve.svg [new file with mode: 0644]
app/assets/images/key/mapnik/resident.png [deleted file]
app/assets/images/key/mapnik/retail.png [deleted file]
app/assets/images/key/mapnik/runway.png [deleted file]
app/assets/images/key/mapnik/runway11.svg [new file with mode: 0644]
app/assets/images/key/mapnik/runway12.svg [new file with mode: 0644]
app/assets/images/key/mapnik/runway13.svg [new file with mode: 0644]
app/assets/images/key/mapnik/runway14.svg [new file with mode: 0644]
app/assets/images/key/mapnik/school.png [deleted file]
app/assets/images/key/mapnik/school.svg [new file with mode: 0644]
app/assets/images/key/mapnik/station.png [deleted file]
app/assets/images/key/mapnik/subway.png [deleted file]
app/assets/images/key/mapnik/summit.png [deleted file]
app/assets/images/key/mapnik/summit.svg [new file with mode: 0644]
app/assets/images/key/mapnik/track.png [deleted file]
app/assets/images/key/mapnik/tram.png [deleted file]
app/assets/images/key/mapnik/tunnel.png [deleted file]
app/assets/images/key/mapnik/unclassified.png [deleted file]
app/assets/images/key/mapnik/unclassified13.png [deleted file]
app/assets/images/key/mapnik/wetland.png [new file with mode: 0644]
app/assets/images/key/mapnik/wood.png [deleted file]
app/assets/images/key/opnvkarte/bus_stop13.svg [new file with mode: 0644]
app/assets/images/key/opnvkarte/bus_stop15.svg [new file with mode: 0644]
app/assets/images/key/opnvkarte/rail17.svg [new file with mode: 0644]
app/assets/images/key/opnvkarte/stop13.svg [new file with mode: 0644]
app/assets/images/key/opnvkarte/stop15.svg [new file with mode: 0644]
app/assets/images/sprite.png [deleted file]
app/assets/images/sprite.svg
app/assets/javascripts/application.js
app/assets/javascripts/index.js
app/assets/javascripts/index/changeset.js
app/assets/javascripts/index/directions/fossgis_valhalla.js
app/assets/javascripts/index/export.js
app/assets/javascripts/index/history.js
app/assets/javascripts/index/note.js
app/assets/javascripts/leaflet.key.js
app/assets/javascripts/leaflet.map.js
app/assets/javascripts/leaflet.share.js
app/assets/javascripts/messages.js
app/assets/javascripts/osm.js.erb
app/assets/stylesheets/browse.scss
app/assets/stylesheets/common.scss
app/assets/stylesheets/print-rtl.rtlcss.scss [moved from app/assets/stylesheets/print-rtl.r2.scss with 100% similarity]
app/assets/stylesheets/screen-rtl.rtlcss.scss [moved from app/assets/stylesheets/screen-rtl.r2.scss with 100% similarity]
app/controllers/accounts_controller.rb
app/controllers/api/changesets_controller.rb
app/controllers/api/notes_controller.rb
app/controllers/api/traces_controller.rb
app/controllers/api_controller.rb
app/controllers/application_controller.rb
app/controllers/changesets_controller.rb
app/controllers/concerns/session_methods.rb
app/controllers/concerns/user_methods.rb
app/controllers/confirmations_controller.rb
app/controllers/diary_entries_controller.rb
app/controllers/messages_controller.rb
app/controllers/oauth_clients_controller.rb
app/controllers/old_nodes_controller.rb [new file with mode: 0644]
app/controllers/old_relations_controller.rb [new file with mode: 0644]
app/controllers/old_ways_controller.rb [new file with mode: 0644]
app/controllers/passwords_controller.rb
app/controllers/sessions_controller.rb
app/controllers/site_controller.rb
app/controllers/traces_controller.rb
app/controllers/user_blocks_controller.rb
app/controllers/user_mutes_controller.rb [new file with mode: 0644]
app/controllers/users_controller.rb
app/helpers/authorization_helper.rb [new file with mode: 0644]
app/helpers/browse_helper.rb
app/helpers/browse_tags_helper.rb
app/helpers/svg_helper.rb [new file with mode: 0644]
app/mailers/user_mailer.rb
app/models/acl.rb
app/models/changeset.rb
app/models/language.rb
app/models/message.rb
app/models/trace.rb
app/models/user.rb
app/models/user_mute.rb [new file with mode: 0644]
app/models/user_token.rb
app/validators/normalized_uniqueness_validator.rb [new file with mode: 0644]
app/validators/width_validator.rb [new file with mode: 0644]
app/views/account/deletions/show.html.erb
app/views/api/changesets/changeset.xml.builder
app/views/api/changesets/changesets.xml.builder
app/views/application/_settings_menu.html.erb
app/views/browse/_common_details.html.erb
app/views/browse/_containing_relation.html.erb
app/views/browse/_node.html.erb
app/views/browse/_relation.html.erb
app/views/browse/_relation_member.html.erb
app/views/browse/_tag_details.html.erb
app/views/browse/_way.html.erb
app/views/browse/changeset.html.erb
app/views/browse/feature.html.erb
app/views/browse/history.html.erb
app/views/changesets/_heading.html.erb [new file with mode: 0644]
app/views/changesets/index.atom.builder
app/views/changesets/no_such_entry.html.erb [new file with mode: 0644]
app/views/changesets/subscribe.html.erb [new file with mode: 0644]
app/views/changesets/unsubscribe.html.erb [new file with mode: 0644]
app/views/diary_entries/_diary_comment.html.erb
app/views/diary_entries/_diary_entry.html.erb
app/views/diary_entries/_diary_entry_heading.html.erb [new file with mode: 0644]
app/views/diary_entries/index.html.erb
app/views/diary_entries/show.html.erb
app/views/diary_entries/subscribe.html.erb [new file with mode: 0644]
app/views/diary_entries/unsubscribe.html.erb [new file with mode: 0644]
app/views/issues/_comments.html.erb
app/views/issues/_reports.html.erb
app/views/issues/show.html.erb
app/views/layouts/_header.html.erb
app/views/layouts/map.html.erb
app/views/messages/_heading.html.erb [new file with mode: 0644]
app/views/messages/_inbox_count.html.erb [moved from app/views/messages/_message_count.html.erb with 91% similarity]
app/views/messages/_message_summary.html.erb
app/views/messages/_messages_table.html.erb [new file with mode: 0644]
app/views/messages/_muted_count.html.erb [new file with mode: 0644]
app/views/messages/_outbox_count.html.erb [new file with mode: 0644]
app/views/messages/destroy.json.jbuilder
app/views/messages/inbox.html.erb
app/views/messages/mark.json.jbuilder
app/views/messages/muted.html.erb [new file with mode: 0644]
app/views/messages/outbox.html.erb
app/views/messages/show.html.erb
app/views/notes/show.html.erb
app/views/oauth2_applications/_application.html.erb
app/views/oauth2_authorizations/new.html.erb
app/views/oauth2_authorized_applications/_application.html.erb
app/views/oauth2_authorized_applications/index.html.erb
app/views/oauth_clients/index.html.erb
app/views/old_nodes/not_found.html.erb [new file with mode: 0644]
app/views/old_nodes/show.html.erb [new file with mode: 0644]
app/views/old_relations/not_found.html.erb [new file with mode: 0644]
app/views/old_relations/show.html.erb [new file with mode: 0644]
app/views/old_ways/not_found.html.erb [new file with mode: 0644]
app/views/old_ways/show.html.erb [new file with mode: 0644]
app/views/passwords/edit.html.erb [moved from app/views/passwords/reset_password.html.erb with 74% similarity]
app/views/passwords/new.html.erb [moved from app/views/passwords/lost_password.html.erb with 100% similarity]
app/views/sessions/new.html.erb
app/views/shared/_markdown_help.html.erb
app/views/shared/_pagination.html.erb
app/views/site/help.html.erb
app/views/site/key.html.erb
app/views/site/welcome.html.erb
app/views/user_blocks/revoke_all.html.erb [new file with mode: 0644]
app/views/user_mailer/_gpx_description.html.erb
app/views/user_mailer/changeset_comment_notification.html.erb
app/views/user_mailer/changeset_comment_notification.text.erb
app/views/user_mailer/diary_comment_notification.html.erb
app/views/user_mailer/diary_comment_notification.text.erb
app/views/user_mailer/gpx_success.html.erb
app/views/user_mutes/index.html.erb [new file with mode: 0644]
app/views/users/show.html.erb
config/application.rb
config/environments/test.rb
config/initializers/config.rb
config/initializers/cors.rb
config/initializers/oauth.rb
config/initializers/r2.rb [deleted file]
config/initializers/rtlcss.rb [new file with mode: 0644]
config/initializers/secure_headers.rb
config/key.yml
config/locales/af.yml
config/locales/aln.yml
config/locales/ar.yml
config/locales/arz.yml
config/locales/ast.yml
config/locales/az.yml
config/locales/ba.yml
config/locales/be-Tarask.yml
config/locales/be.yml
config/locales/bg.yml
config/locales/bn.yml
config/locales/br.yml
config/locales/bs.yml
config/locales/ca.yml
config/locales/ce.yml
config/locales/cs.yml
config/locales/cy.yml
config/locales/da.yml
config/locales/de.yml
config/locales/diq.yml
config/locales/dsb.yml
config/locales/el.yml
config/locales/en-GB.yml
config/locales/en.yml
config/locales/eo.yml
config/locales/es.yml
config/locales/et.yml
config/locales/eu.yml
config/locales/fa.yml
config/locales/fi.yml
config/locales/fit.yml
config/locales/fr.yml
config/locales/fur.yml
config/locales/fy.yml
config/locales/ga.yml
config/locales/gcf.yml
config/locales/gd.yml
config/locales/gl.yml
config/locales/gsw.yml
config/locales/he.yml
config/locales/hi.yml
config/locales/hr.yml
config/locales/hsb.yml
config/locales/hu.yml
config/locales/ia.yml
config/locales/id.yml
config/locales/is.yml
config/locales/it.yml
config/locales/ja.yml
config/locales/ka.yml
config/locales/kab.yml
config/locales/kk-cyrl.yml
config/locales/km.yml
config/locales/kn.yml
config/locales/ko.yml
config/locales/ksh.yml
config/locales/ku-Latn.yml
config/locales/lb.yml
config/locales/lt.yml
config/locales/lv.yml
config/locales/mk.yml
config/locales/mo.yml
config/locales/mr.yml
config/locales/ms.yml
config/locales/my.yml
config/locales/nb.yml
config/locales/nds.yml
config/locales/ne.yml
config/locales/nl.yml
config/locales/nn.yml
config/locales/nqo.yml
config/locales/oc.yml
config/locales/pa.yml
config/locales/pl.yml
config/locales/pnb.yml
config/locales/ps.yml
config/locales/pt-PT.yml
config/locales/pt.yml
config/locales/ro.yml
config/locales/ru.yml
config/locales/sat.yml
config/locales/sc.yml
config/locales/scn.yml
config/locales/sco.yml
config/locales/sh.yml
config/locales/sk.yml
config/locales/skr-arab.yml
config/locales/sl.yml
config/locales/sq.yml
config/locales/sr-Latn.yml
config/locales/sr.yml
config/locales/sv.yml
config/locales/ta.yml
config/locales/te.yml
config/locales/th.yml
config/locales/tl.yml
config/locales/tr.yml
config/locales/tt.yml
config/locales/uk.yml
config/locales/vi.yml
config/locales/xmf.yml
config/locales/yo.yml
config/locales/zh-CN.yml
config/locales/zh-HK.yml
config/locales/zh-TW.yml
config/openlayers.cfg [deleted file]
config/routes.rb
config/settings.yml
config/settings/test.yml
db/migrate/20120208122334_merge_acl_address_and_mask.rb
db/migrate/20231010201451_create_user_mutes.rb [new file with mode: 0644]
db/migrate/20231010203028_add_muted_flag_to_messages.rb [new file with mode: 0644]
db/migrate/20231117170422_add_closed_at_index_to_changesets.rb [new file with mode: 0644]
db/migrate/20231206141457_alter_sequences_bigint.rb [new file with mode: 0644]
db/migrate/20231213182102_add_canonical_user_index.rb [new file with mode: 0644]
db/migrate/20240117185445_drop_lowercase_user_index.rb [new file with mode: 0644]
db/structure.sql
lib/gpx.rb
lib/oauth.rb
lib/osm.rb
script/deliver-message
script/normalise-structure
test/abilities/api_abilities_test.rb
test/application_system_test_case.rb
test/controllers/accounts_controller_test.rb
test/controllers/api/changesets_controller_test.rb
test/controllers/api/notes_controller_test.rb
test/controllers/api/old_nodes_controller_test.rb
test/controllers/api/old_relations_controller_test.rb
test/controllers/api/old_ways_controller_test.rb
test/controllers/browse_controller_test.rb
test/controllers/changesets_controller_test.rb
test/controllers/confirmations_controller_test.rb
test/controllers/diary_entries_controller_test.rb
test/controllers/messages_controller_test.rb
test/controllers/notes_controller_test.rb
test/controllers/oauth2_authorizations_controller_test.rb
test/controllers/oauth_clients_controller_test.rb
test/controllers/old_nodes_controller_test.rb [new file with mode: 0644]
test/controllers/old_relations_controller_test.rb [new file with mode: 0644]
test/controllers/old_ways_controller_test.rb [new file with mode: 0644]
test/controllers/passwords_controller_test.rb
test/controllers/sessions_controller_test.rb
test/controllers/user_blocks_controller_test.rb
test/controllers/user_mutes_controller_test.rb [new file with mode: 0644]
test/controllers/users_controller_test.rb
test/factories/messages.rb
test/factories/notes.rb
test/factories/user_mute.rb [new file with mode: 0644]
test/helpers/asset_helper_test.rb
test/helpers/browse_helper_test.rb
test/helpers/browse_tags_helper_test.rb
test/helpers/svg_helper_test.rb [new file with mode: 0644]
test/integration/user_changeset_comments_test.rb [deleted file]
test/integration/user_creation_test.rb
test/lib/bounding_box_test.rb
test/lib/i18n_test.rb
test/mailers/user_mailer_test.rb
test/models/acl_test.rb
test/models/changeset_comment_test.rb
test/models/changeset_tag_test.rb
test/models/changeset_test.rb
test/models/client_application_test.rb
test/models/issue_test.rb
test/models/language_test.rb
test/models/message_test.rb
test/models/node_tag_test.rb
test/models/note_comment_test.rb
test/models/note_test.rb
test/models/oauth_token_test.rb
test/models/old_node_tag_test.rb
test/models/old_relation_tag_test.rb
test/models/old_way_tag_test.rb
test/models/redaction_test.rb
test/models/relation_member_test.rb
test/models/relation_tag_test.rb
test/models/relation_test.rb
test/models/report_test.rb
test/models/request_token_test.rb
test/models/trace_test.rb
test/models/tracepoint_test.rb
test/models/user_mute_test.rb [new file with mode: 0644]
test/models/user_preference_test.rb
test/models/user_test.rb
test/models/way_tag_test.rb
test/system/account_deletion_test.rb
test/system/changeset_comments_test.rb [new file with mode: 0644]
test/system/confirmation_resend_test.rb
test/system/diary_entry_test.rb
test/system/issues_test.rb
test/system/messages_test.rb [new file with mode: 0644]
test/system/note_comments_test.rb
test/system/oauth2_test.rb [new file with mode: 0644]
test/system/preferences_test.rb
test/system/report_diary_comment_test.rb
test/system/report_diary_entry_test.rb
test/system/report_note_test.rb
test/system/report_user_test.rb
test/system/user_blocks_test.rb [new file with mode: 0644]
test/system/user_logout_test.rb
test/system/user_muting_test.rb [new file with mode: 0644]
test/system/user_signup_test.rb
test/system/user_status_change_test.rb
test/system/view_communities_test.rb
test/test_helper.rb
test/validators/characters_validator_test.rb
test/validators/whitespace_validator_test.rb
yarn.lock

index 2050aaf3f264f416a41f58fa2cfeb4167eb8a7dc..9fc1320141d9f50d0ac19a5940bc48fdbe9dd87f 100644 (file)
@@ -19,6 +19,7 @@ jobs:
       uses: ruby/setup-ruby@v1
       with:
         ruby-version: ${{ env.ruby }}
+        rubygems: 3.4.10
         bundler-cache: true
     - name: Run rubocop
       run: bundle exec rubocop --format fuubar
@@ -32,6 +33,7 @@ jobs:
       uses: ruby/setup-ruby@v1
       with:
         ruby-version: ${{ env.ruby }}
+        rubygems: 3.4.10
         bundler-cache: true
     - name: Run erblint
       run: bundle exec erblint .
@@ -45,9 +47,10 @@ jobs:
       uses: ruby/setup-ruby@v1
       with:
         ruby-version: ${{ env.ruby }}
+        rubygems: 3.4.10
         bundler-cache: true
     - name: Cache node modules
-      uses: actions/cache@v3
+      uses: actions/cache@v4
       with:
         path: node_modules
         key: yarn-${{ env.os }}-${{ hashFiles('yarn.lock') }}
@@ -69,6 +72,7 @@ jobs:
       uses: ruby/setup-ruby@v1
       with:
         ruby-version: ${{ env.ruby }}
+        rubygems: 3.4.10
         bundler-cache: true
     - name: Run brakeman
       run: bundle exec brakeman -q
@@ -84,6 +88,7 @@ jobs:
       uses: ruby/setup-ruby@v1
       with:
         ruby-version: ${{ env.ruby }}
+        rubygems: 3.4.10
         bundler-cache: true
     - name: Setup database
       run: |
index 3ee6129e113799a8818f455694e55266df9c6792..bfe456076df761798ec9a1e15e6674691b9f0e06 100644 (file)
@@ -11,7 +11,7 @@ jobs:
     strategy:
       matrix:
         ubuntu: [20.04, 22.04]
-        ruby: ['3.0', '3.1']
+        ruby: ['3.0', '3.1', '3.2']
     runs-on: ubuntu-${{ matrix.ubuntu }}
     env:
       RAILS_ENV: test
@@ -23,9 +23,10 @@ jobs:
       uses: ruby/setup-ruby@v1
       with:
         ruby-version: ${{ matrix.ruby }}
+        rubygems: 3.4.10
         bundler-cache: true
     - name: Cache node modules
-      uses: actions/cache@v3
+      uses: actions/cache@v4
       with:
         path: node_modules
         key: yarn-ubuntu-${{ matrix.ubuntu }}-${{ hashFiles('yarn.lock') }}
index e3407c6dc0111d811f1b34377429a46d63a2d14a..fdc7c35a5343242903305b93d5ec5ab9ff4b2ecf 100644 (file)
@@ -14,6 +14,11 @@ require:
   - rubocop-rails
   - rubocop-rake
 
+# Offense count: 11
+# Configuration parameters: Include, MaxAmount
+FactoryBot/ExcessiveCreateList:
+  MaxAmount: 200
+
 # Offense count: 557
 # This cop supports safe autocorrection (--autocorrect).
 # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns.
@@ -61,12 +66,12 @@ Metrics/BlockNesting:
 # Offense count: 26
 # Configuration parameters: CountComments, CountAsOne.
 Metrics/ClassLength:
-  Max: 286
+  Max: 314
 
 # Offense count: 59
 # Configuration parameters: AllowedMethods, AllowedPatterns.
 Metrics/CyclomaticComplexity:
-  Max: 26
+  Max: 29
 
 # Offense count: 753
 # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
@@ -81,7 +86,7 @@ Metrics/ParameterLists:
 # Offense count: 56
 # Configuration parameters: AllowedMethods, AllowedPatterns.
 Metrics/PerceivedComplexity:
-  Max: 29
+  Max: 30
 
 # Offense count: 2394
 # This cop supports safe autocorrection (--autocorrect).
index 3bf0724fc3f95b4b3831c0c50592c6226b67883e..dcc8ae2ac1d20a5001ae568a2dbf17b18735ab48 100644 (file)
@@ -47,8 +47,6 @@ $ bundle exec rails console
 => #[ ... ]
 >> user.roles.create(:role => "moderator", :granter_id => user.id)
 => #[ ... ]
->> user.save!
-=> true
 >> quit
 ```
 
@@ -63,7 +61,7 @@ For iD, do the following:
 
 * Go to "[OAuth 2 applications](http://localhost:3000/oauth2/applications)" on the My settings page.
 * Click on "Register new application".
-* Unless you have set up alternatives, use Name: "Local iD" and Main Application URL: "http://localhost:3000"
+* Unless you have set up alternatives, use Name: "Local iD" and Redirect URIs: "http://localhost:3000"
 * Check boxes for the following Permissions
   * 'Read user preferences'
   * 'Modify user preferences'
diff --git a/Gemfile b/Gemfile
index f9f12d64e9b31de332cc38b5e04aea420249eaf5..832b96c9ac9df43df595a969888cacb29ed57715 100644 (file)
--- a/Gemfile
+++ b/Gemfile
@@ -26,8 +26,8 @@ gem "jbuilder", "~> 2.7"
 # Reduces boot times through caching; required in config/boot.rb
 gem "bootsnap", ">= 1.4.2", :require => false
 
-# Use R2 for RTL conversion
-gem "r2", "~> 0.2.7"
+# Use rtlcss for RTL conversion
+gem "rtlcss"
 
 # Use autoprefixer to generate CSS prefixes
 gem "autoprefixer-rails"
@@ -41,6 +41,9 @@ gem "argon2"
 # Support brotli compression for assets
 gem "sprockets-exporters_pack"
 
+# Restore File.exists? for oauth gem
+gem "file_exists"
+
 # Load rails plugins
 gem "actionpack-page_caching", ">= 1.2.0"
 gem "activerecord-import"
@@ -133,6 +136,9 @@ gem "aws-sdk-s3"
 # Used to resize user images
 gem "image_processing"
 
+# Used to validate widths
+gem "unicode-display_width"
+
 # Gems useful for development
 group :development do
   gem "better_errors"
@@ -151,6 +157,7 @@ group :test do
   gem "factory_bot_rails"
   gem "jwt"
   gem "minitest", "~> 5.1"
+  gem "minitest-focus", :require => false
   gem "puma", "~> 5.6"
   gem "rails-controller-testing"
   gem "rubocop"
index c313665c43485cc8c98aec8360aecd94565490dc..234090689e738af6a641bbffbed76b5759bc72ca 100644 (file)
@@ -3,35 +3,35 @@ GEM
   specs:
     aasm (5.5.0)
       concurrent-ruby (~> 1.0)
-    actioncable (7.1.2)
-      actionpack (= 7.1.2)
-      activesupport (= 7.1.2)
+    actioncable (7.1.3.2)
+      actionpack (= 7.1.3.2)
+      activesupport (= 7.1.3.2)
       nio4r (~> 2.0)
       websocket-driver (>= 0.6.1)
       zeitwerk (~> 2.6)
-    actionmailbox (7.1.2)
-      actionpack (= 7.1.2)
-      activejob (= 7.1.2)
-      activerecord (= 7.1.2)
-      activestorage (= 7.1.2)
-      activesupport (= 7.1.2)
+    actionmailbox (7.1.3.2)
+      actionpack (= 7.1.3.2)
+      activejob (= 7.1.3.2)
+      activerecord (= 7.1.3.2)
+      activestorage (= 7.1.3.2)
+      activesupport (= 7.1.3.2)
       mail (>= 2.7.1)
       net-imap
       net-pop
       net-smtp
-    actionmailer (7.1.2)
-      actionpack (= 7.1.2)
-      actionview (= 7.1.2)
-      activejob (= 7.1.2)
-      activesupport (= 7.1.2)
+    actionmailer (7.1.3.2)
+      actionpack (= 7.1.3.2)
+      actionview (= 7.1.3.2)
+      activejob (= 7.1.3.2)
+      activesupport (= 7.1.3.2)
       mail (~> 2.5, >= 2.5.4)
       net-imap
       net-pop
       net-smtp
       rails-dom-testing (~> 2.2)
-    actionpack (7.1.2)
-      actionview (= 7.1.2)
-      activesupport (= 7.1.2)
+    actionpack (7.1.3.2)
+      actionview (= 7.1.3.2)
+      activesupport (= 7.1.3.2)
       nokogiri (>= 1.8.5)
       racc
       rack (>= 2.2.4)
@@ -41,39 +41,39 @@ GEM
       rails-html-sanitizer (~> 1.6)
     actionpack-page_caching (1.2.4)
       actionpack (>= 4.0.0)
-    actiontext (7.1.2)
-      actionpack (= 7.1.2)
-      activerecord (= 7.1.2)
-      activestorage (= 7.1.2)
-      activesupport (= 7.1.2)
+    actiontext (7.1.3.2)
+      actionpack (= 7.1.3.2)
+      activerecord (= 7.1.3.2)
+      activestorage (= 7.1.3.2)
+      activesupport (= 7.1.3.2)
       globalid (>= 0.6.0)
       nokogiri (>= 1.8.5)
-    actionview (7.1.2)
-      activesupport (= 7.1.2)
+    actionview (7.1.3.2)
+      activesupport (= 7.1.3.2)
       builder (~> 3.1)
       erubi (~> 1.11)
       rails-dom-testing (~> 2.2)
       rails-html-sanitizer (~> 1.6)
     active_record_union (1.3.0)
       activerecord (>= 4.0)
-    activejob (7.1.2)
-      activesupport (= 7.1.2)
+    activejob (7.1.3.2)
+      activesupport (= 7.1.3.2)
       globalid (>= 0.3.6)
-    activemodel (7.1.2)
-      activesupport (= 7.1.2)
-    activerecord (7.1.2)
-      activemodel (= 7.1.2)
-      activesupport (= 7.1.2)
+    activemodel (7.1.3.2)
+      activesupport (= 7.1.3.2)
+    activerecord (7.1.3.2)
+      activemodel (= 7.1.3.2)
+      activesupport (= 7.1.3.2)
       timeout (>= 0.4.0)
-    activerecord-import (1.5.0)
+    activerecord-import (1.5.1)
       activerecord (>= 4.2)
-    activestorage (7.1.2)
-      actionpack (= 7.1.2)
-      activejob (= 7.1.2)
-      activerecord (= 7.1.2)
-      activesupport (= 7.1.2)
+    activestorage (7.1.3.2)
+      actionpack (= 7.1.3.2)
+      activejob (= 7.1.3.2)
+      activerecord (= 7.1.3.2)
+      activesupport (= 7.1.3.2)
       marcel (~> 1.0)
-    activesupport (7.1.2)
+    activesupport (7.1.3.2)
       base64
       bigdecimal
       concurrent-ruby (~> 1.0, >= 1.0.2)
@@ -83,7 +83,7 @@ GEM
       minitest (>= 5.1)
       mutex_m
       tzinfo (~> 2.0)
-    addressable (2.8.5)
+    addressable (2.8.6)
       public_suffix (>= 2.0.2, < 6.0)
     annotate (3.2.0)
       activerecord (>= 3.2, < 8.0)
@@ -92,23 +92,24 @@ GEM
       ffi (~> 1.15)
       ffi-compiler (~> 1.0)
     ast (2.4.2)
-    autoprefixer-rails (10.4.15.0)
+    autoprefixer-rails (10.4.16.0)
       execjs (~> 2)
-    aws-eventstream (1.2.0)
-    aws-partitions (1.849.0)
-    aws-sdk-core (3.186.0)
-      aws-eventstream (~> 1, >= 1.0.2)
+    aws-eventstream (1.3.0)
+    aws-partitions (1.894.0)
+    aws-sdk-core (3.191.2)
+      aws-eventstream (~> 1, >= 1.3.0)
       aws-partitions (~> 1, >= 1.651.0)
-      aws-sigv4 (~> 1.5)
+      aws-sigv4 (~> 1.8)
+      base64
       jmespath (~> 1, >= 1.6.1)
-    aws-sdk-kms (1.72.0)
-      aws-sdk-core (~> 3, >= 3.184.0)
+    aws-sdk-kms (1.77.0)
+      aws-sdk-core (~> 3, >= 3.191.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-s3 (1.136.0)
-      aws-sdk-core (~> 3, >= 3.181.0)
+    aws-sdk-s3 (1.143.0)
+      aws-sdk-core (~> 3, >= 3.191.0)
       aws-sdk-kms (~> 1)
-      aws-sigv4 (~> 1.6)
-    aws-sigv4 (1.6.1)
+      aws-sigv4 (~> 1.8)
+    aws-sigv4 (1.8.0)
       aws-eventstream (~> 1, >= 1.0.2)
     base64 (0.2.0)
     better_errors (2.10.1)
@@ -122,10 +123,10 @@ GEM
       erubi (~> 1.4)
       parser (>= 2.4)
       smart_properties
-    bigdecimal (3.1.4)
+    bigdecimal (3.1.6)
     binding_of_caller (1.0.0)
       debug_inspector (>= 0.0.1)
-    bootsnap (1.17.0)
+    bootsnap (1.18.3)
       msgpack (~> 1.2)
     bootstrap (5.3.2)
       autoprefixer-rails (>= 9.1.0)
@@ -133,8 +134,9 @@ GEM
     bootstrap_form (5.4.0)
       actionpack (>= 6.1)
       activemodel (>= 6.1)
-    brakeman (6.0.1)
-    brotli (0.4.0)
+    brakeman (6.1.2)
+      racc
+    brotli (0.5.0)
     browser (5.3.1)
     builder (3.2.4)
     bzip2-ffi (1.1.1)
@@ -142,24 +144,25 @@ GEM
     cancancan (3.5.0)
     canonical-rails (0.2.15)
       actionview (>= 4.1, <= 7.2)
-    capybara (3.39.2)
+    capybara (3.40.0)
       addressable
       matrix
       mini_mime (>= 0.1.3)
-      nokogiri (~> 1.8)
+      nokogiri (~> 1.11)
       rack (>= 1.6.0)
       rack-test (>= 0.6.3)
       regexp_parser (>= 1.5, < 3.0)
       xpath (~> 3.2)
-    concurrent-ruby (1.2.2)
-    config (5.0.0)
+    concurrent-ruby (1.2.3)
+    config (5.1.0)
       deep_merge (~> 1.2, >= 1.2.1)
       dry-validation (~> 1.0, >= 1.0.0)
     connection_pool (2.4.1)
-    crack (0.4.5)
+    crack (1.0.0)
+      bigdecimal
       rexml
     crass (1.0.6)
-    dalli (3.2.6)
+    dalli (3.2.8)
     dartsass-ruby (3.0.2)
       sass-embedded (~> 1.54, < 1.67)
     dartsass-sprockets (3.0.0)
@@ -169,7 +172,7 @@ GEM
       sprockets-rails
       tilt
     date (3.3.4)
-    debug_inspector (1.1.0)
+    debug_inspector (1.2.0)
     deep_merge (1.2.2)
     delayed_job (4.1.11)
       activesupport (>= 3.0, < 8.0)
@@ -177,7 +180,7 @@ GEM
       activerecord (>= 3.0, < 8.0)
       delayed_job (>= 3.0, < 5)
     docile (1.4.0)
-    doorkeeper (5.6.6)
+    doorkeeper (5.6.9)
       railties (>= 5)
     doorkeeper-i18n (5.2.7)
       doorkeeper (>= 5.2)
@@ -206,7 +209,8 @@ GEM
       dry-logic (>= 1.4, < 2)
       dry-types (>= 1.7, < 2)
       zeitwerk (~> 2.6)
-    dry-types (1.7.1)
+    dry-types (1.7.2)
+      bigdecimal (~> 3.0)
       concurrent-ruby (~> 1.0)
       dry-core (~> 1.0)
       dry-inflector (~> 1.0)
@@ -228,33 +232,33 @@ GEM
     erubi (1.12.0)
     execjs (2.9.1)
     exifr (1.4.0)
-    factory_bot (6.2.1)
+    factory_bot (6.4.6)
       activesupport (>= 5.0.0)
-    factory_bot_rails (6.2.0)
-      factory_bot (~> 6.2.0)
+    factory_bot_rails (6.4.3)
+      factory_bot (~> 6.4)
       railties (>= 5.0.0)
-    faraday (2.7.11)
-      base64
-      faraday-net_http (>= 2.0, < 3.1)
-      ruby2_keywords (>= 0.0.4)
-    faraday-net_http (3.0.2)
+    faraday (2.9.0)
+      faraday-net_http (>= 2.0, < 3.2)
+    faraday-net_http (3.1.0)
+      net-http
     ffi (1.16.3)
     ffi-compiler (1.0.1)
       ffi (>= 1.0.0)
       rake
-    ffi-libarchive (1.1.13)
+    ffi-libarchive (1.1.14)
       ffi (~> 1.0)
-    frozen_record (0.27.0)
+    file_exists (0.2.0)
+    frozen_record (0.27.1)
       activemodel
     fspath (3.1.2)
     gd2-ffij (0.4.0)
       ffi (>= 1.0.0)
     globalid (1.2.1)
       activesupport (>= 6.1)
-    google-protobuf (3.25.0)
-    hashdiff (1.0.1)
+    google-protobuf (3.25.3)
+    hashdiff (1.1.0)
     hashie (5.0.0)
-    highline (2.1.0)
+    highline (3.0.1)
     htmlentities (4.3.4)
     http_accept_language (2.1.1)
     i18n (1.14.1)
@@ -285,12 +289,12 @@ GEM
     image_processing (1.12.2)
       mini_magick (>= 4.9.5, < 5)
       ruby-vips (>= 2.0.17, < 3)
-    image_size (3.3.0)
+    image_size (3.4.0)
     in_threads (1.6.0)
-    io-console (0.6.0)
-    irb (1.9.0)
+    io-console (0.7.2)
+    irb (1.11.2)
       rdoc
-      reline (>= 0.3.8)
+      reline (>= 0.4.2)
     jbuilder (2.11.5)
       actionview (>= 5.0.0)
       activesupport (>= 5.0.0)
@@ -299,13 +303,15 @@ GEM
       rails-dom-testing (>= 1, < 3)
       railties (>= 4.2.0)
       thor (>= 0.14, < 2.0)
-    json (2.6.3)
-    jwt (2.7.1)
+    json (2.7.1)
+    jwt (2.8.0)
+      base64
     kgio (2.11.4)
     kramdown (2.4.0)
       rexml
     language_server-protocol (3.17.0.3)
-    libxml-ruby (4.1.2)
+    libv8-node (18.16.0.0)
+    libxml-ruby (5.0.2)
     listen (3.8.0)
       rb-fsevent (~> 0.10, >= 0.10.3)
       rb-inotify (~> 0.9, >= 0.9.10)
@@ -326,22 +332,28 @@ GEM
     mini_magick (4.12.0)
     mini_mime (1.1.5)
     mini_portile2 (2.8.5)
-    minitest (5.20.0)
+    mini_racer (0.8.0)
+      libv8-node (~> 18.16.0.0)
+    minitest (5.22.2)
+    minitest-focus (1.4.0)
+      minitest (>= 4, < 6)
     msgpack (1.7.2)
     multi_json (1.15.0)
     multi_xml (0.6.0)
     mutex_m (0.2.0)
-    net-imap (0.4.5)
+    net-http (0.4.1)
+      uri
+    net-imap (0.4.10)
       date
       net-protocol
     net-pop (0.1.2)
       net-protocol
     net-protocol (0.2.2)
       timeout
-    net-smtp (0.4.0)
+    net-smtp (0.4.0.1)
       net-protocol
-    nio4r (2.5.9)
-    nokogiri (1.15.4)
+    nio4r (2.7.0)
+    nokogiri (1.16.2)
       mini_portile2 (~> 2.8.2)
       racc (~> 1.4)
     oauth (0.4.7)
@@ -374,7 +386,8 @@ GEM
     omniauth-mediawiki (0.0.4)
       jwt (~> 2.0)
       omniauth-oauth (~> 1.0)
-    omniauth-microsoft_graph (1.2.0)
+    omniauth-microsoft_graph (2.0.0)
+      jwt (~> 2.0)
       omniauth (~> 2.0)
       omniauth-oauth2 (~> 1.8.0)
     omniauth-oauth (1.2.0)
@@ -390,30 +403,30 @@ GEM
       actionpack (>= 4.2)
       omniauth (~> 2.0)
     openstreetmap-deadlock_retry (1.3.1)
-    parallel (1.23.0)
-    parser (3.2.2.4)
+    parallel (1.24.0)
+    parser (3.3.0.5)
       ast (~> 2.4.1)
       racc
-    pg (1.5.4)
+    pg (1.5.5)
     popper_js (2.11.8)
     progress (3.6.0)
-    psych (5.1.1.1)
+    psych (5.1.2)
       stringio
-    public_suffix (5.0.3)
-    puma (5.6.7)
+    public_suffix (5.0.4)
+    puma (5.6.8)
       nio4r (~> 2.0)
     quad_tile (1.0.1)
-    r2 (0.2.8)
     racc (1.7.3)
-    rack (2.2.8)
+    rack (2.2.8.1)
     rack-cors (2.0.1)
       rack (>= 2.0.0)
     rack-openid (1.4.2)
       rack (>= 1.1.0)
       ruby-openid (>= 2.1.8)
-    rack-protection (3.1.0)
+    rack-protection (3.2.0)
+      base64 (>= 0.1.0)
       rack (~> 2.2, >= 2.2.4)
-    rack-session (1.0.1)
+    rack-session (1.0.2)
       rack (< 3)
     rack-test (2.1.0)
       rack (>= 1.3)
@@ -421,20 +434,20 @@ GEM
     rackup (1.0.0)
       rack (< 3)
       webrick
-    rails (7.1.2)
-      actioncable (= 7.1.2)
-      actionmailbox (= 7.1.2)
-      actionmailer (= 7.1.2)
-      actionpack (= 7.1.2)
-      actiontext (= 7.1.2)
-      actionview (= 7.1.2)
-      activejob (= 7.1.2)
-      activemodel (= 7.1.2)
-      activerecord (= 7.1.2)
-      activestorage (= 7.1.2)
-      activesupport (= 7.1.2)
+    rails (7.1.3.2)
+      actioncable (= 7.1.3.2)
+      actionmailbox (= 7.1.3.2)
+      actionmailer (= 7.1.3.2)
+      actionpack (= 7.1.3.2)
+      actiontext (= 7.1.3.2)
+      actionview (= 7.1.3.2)
+      activejob (= 7.1.3.2)
+      activemodel (= 7.1.3.2)
+      activerecord (= 7.1.3.2)
+      activestorage (= 7.1.3.2)
+      activesupport (= 7.1.3.2)
       bundler (>= 1.15.0)
-      railties (= 7.1.2)
+      railties (= 7.1.3.2)
     rails-controller-testing (1.0.5)
       actionpack (>= 5.0.1.rc1)
       actionview (>= 5.0.1.rc1)
@@ -449,9 +462,9 @@ GEM
     rails-i18n (7.0.8)
       i18n (>= 0.7, < 2)
       railties (>= 6.0.0, < 8)
-    railties (7.1.2)
-      actionpack (= 7.1.2)
-      activesupport (= 7.1.2)
+    railties (7.1.3.2)
+      actionpack (= 7.1.3.2)
+      activesupport (= 7.1.3.2)
       irb
       rackup (>= 1.0.0)
       rake (>= 12.2)
@@ -462,43 +475,47 @@ GEM
     rb-fsevent (0.11.2)
     rb-inotify (0.10.1)
       ffi (~> 1.0)
-    rdoc (6.6.0)
+    rdoc (6.6.2)
       psych (>= 4.0.0)
-    regexp_parser (2.8.2)
-    reline (0.4.0)
+    regexp_parser (2.9.0)
+    reline (0.4.2)
       io-console (~> 0.5)
-    request_store (1.5.1)
+    request_store (1.6.0)
       rack (>= 1.4)
     rexml (3.2.6)
     rinku (2.0.6)
     rotp (6.3.0)
     rouge (4.2.0)
-    rubocop (1.57.2)
+    rtlcss (0.2.1)
+      mini_racer (>= 0.6.3)
+    rubocop (1.60.2)
       json (~> 2.3)
       language_server-protocol (>= 3.17.0)
       parallel (~> 1.10)
-      parser (>= 3.2.2.4)
+      parser (>= 3.3.0.2)
       rainbow (>= 2.2.2, < 4.0)
       regexp_parser (>= 1.8, < 3.0)
       rexml (>= 3.2.5, < 4.0)
-      rubocop-ast (>= 1.28.1, < 2.0)
+      rubocop-ast (>= 1.30.0, < 2.0)
       ruby-progressbar (~> 1.7)
       unicode-display_width (>= 2.4.0, < 3.0)
     rubocop-ast (1.30.0)
       parser (>= 3.2.1.0)
-    rubocop-capybara (2.19.0)
+    rubocop-capybara (2.20.0)
+      rubocop (~> 1.41)
+    rubocop-factory_bot (2.25.1)
       rubocop (~> 1.41)
-    rubocop-factory_bot (2.24.0)
-      rubocop (~> 1.33)
-    rubocop-minitest (0.33.0)
+    rubocop-minitest (0.34.5)
       rubocop (>= 1.39, < 2.0)
-    rubocop-performance (1.19.1)
-      rubocop (>= 1.7.0, < 2.0)
-      rubocop-ast (>= 0.4.0)
-    rubocop-rails (2.22.1)
+      rubocop-ast (>= 1.30.0, < 2.0)
+    rubocop-performance (1.20.2)
+      rubocop (>= 1.48.1, < 2.0)
+      rubocop-ast (>= 1.30.0, < 2.0)
+    rubocop-rails (2.23.1)
       activesupport (>= 4.2.0)
       rack (>= 1.1)
       rubocop (>= 1.33.0, < 2.0)
+      rubocop-ast (>= 1.30.0, < 2.0)
     rubocop-rake (0.6.0)
       rubocop (~> 1.0)
     ruby-openid (2.9.2)
@@ -514,7 +531,8 @@ GEM
       google-protobuf (~> 3.23)
       rake (>= 13.0.0)
     secure_headers (6.5.0)
-    selenium-webdriver (4.15.0)
+    selenium-webdriver (4.18.1)
+      base64 (~> 0.2)
       rexml (~> 3.2, >= 3.2.5)
       rubyzip (>= 1.2.2, < 3.0)
       websocket (~> 1.0)
@@ -539,12 +557,12 @@ GEM
       actionpack (>= 5.2)
       activesupport (>= 5.2)
       sprockets (>= 3.0.0)
-    stringio (3.0.9)
-    strong_migrations (1.6.4)
+    stringio (3.1.0)
+    strong_migrations (1.7.0)
       activerecord (>= 5.2)
     terminal-table (3.0.2)
       unicode-display_width (>= 1.1.1, < 3)
-    terser (1.1.19)
+    terser (1.2.0)
       execjs (>= 0.3.0, < 3)
     thor (1.3.0)
     tilt (2.3.0)
@@ -552,11 +570,12 @@ GEM
     tzinfo (2.0.6)
       concurrent-ruby (~> 1.0)
     unicode-display_width (2.5.0)
+    uri (0.13.0)
     validates_email_format_of (1.7.2)
       i18n
     vendorer (0.2.0)
     version_gem (1.1.3)
-    webmock (3.19.1)
+    webmock (3.21.2)
       addressable (>= 2.8.0)
       crack (>= 0.3.2)
       hashdiff (>= 0.4.0, < 2.0.0)
@@ -567,7 +586,7 @@ GEM
     websocket-extensions (0.1.5)
     xpath (3.2.0)
       nokogiri (~> 1.8)
-    zeitwerk (2.6.12)
+    zeitwerk (2.6.13)
 
 PLATFORMS
   ruby
@@ -605,6 +624,7 @@ DEPENDENCIES
   factory_bot_rails
   faraday
   ffi-libarchive
+  file_exists
   frozen_record
   gd2-ffij (>= 0.4.0)
   htmlentities
@@ -625,6 +645,7 @@ DEPENDENCIES
   marcel
   maxminddb
   minitest (~> 5.1)
+  minitest-focus
   oauth-plugin (>= 0.5.1)
   omniauth (~> 2.0.2)
   omniauth-facebook
@@ -638,7 +659,6 @@ DEPENDENCIES
   pg
   puma (~> 5.6)
   quad_tile (~> 1.0.1)
-  r2 (~> 0.2.7)
   rack-cors
   rack-uri_sanitizer
   rails (~> 7.1.0)
@@ -646,6 +666,7 @@ DEPENDENCIES
   rails-i18n (~> 7.0.0)
   rinku (>= 2.0.6)
   rotp
+  rtlcss
   rubocop
   rubocop-capybara
   rubocop-factory_bot
@@ -662,6 +683,7 @@ DEPENDENCIES
   sprockets-exporters_pack
   strong_migrations
   terser
+  unicode-display_width
   validates_email_format_of (>= 1.5.1)
   vendorer
   webmock
index 59e924b9b86da2280fc2cfb4d6cb94abad782984..63aad6f1a267bd1a60c82f47fbd7e7e768ddcdfc 100644 (file)
@@ -23,7 +23,7 @@ of packages required before you can get the various gems installed.
 ## Minimum requirements
 
 * Ruby 3.0+
-* PostgreSQL 9.1+
+* PostgreSQL 13+
 * Bundler (see note below about [developer Ruby setup](#rbenv))
 * Javascript Runtime
 
@@ -226,11 +226,11 @@ After installing this software, you may need to carry out some [configuration st
 
 # Ruby development install and versions<a name="rbenv"></a> (optional)
 
-For simplicity, this document explains how to install all the website dependencies as "system" dependencies. While this is simpler, and usually faster, you might want more control over the process or the ability to install multiple different versions of software alongside eachother. For many developers, [`rbenv`](https://github.com/rbenv/rbenv) is the easiest way to manage multiple different Ruby versions on the same computer - with the added advantage that the installs are all in your home directory, so you don't need administrator permissions.
+For simplicity, this document explains how to install all the website dependencies as "system" dependencies. While this is simpler, and usually faster, you might want more control over the process or the ability to install multiple different versions of software alongside each other. For many developers, [`rbenv`](https://github.com/rbenv/rbenv) is the easiest way to manage multiple different Ruby versions on the same computer - with the added advantage that the installs are all in your home directory, so you don't need administrator permissions.
 
 If you choose to install Ruby and Bundler via `rbenv`, then you do not need to install the system libraries for Ruby:
 
-* For Ubuntu, you do not need to install the following packages: `ruby3.0 libruby3.0 ruby3.0-dev bundler`,
+* For Ubuntu, you do not need to install the following packages: `ruby ruby-dev ruby-bundler`,
 * For Fedora, you do not need to install the following packages: `ruby ruby-devel rubygem-rdoc rubygem-bundler rubygems`
 * For MacOSX, you do not need to `brew install ruby` - but make sure you've installed a version of Ruby using `rbenv` before running `gem install bundler`!
 
index cdf28bd4fb234e1e1801b5d569fbdc982963a608..5e0e835d4da514438040ca07aff3f3d09affb8a6 100644 (file)
@@ -6,6 +6,9 @@ class Ability
   def initialize(user)
     can [:relation, :relation_history, :way, :way_history, :node, :node_history,
          :changeset, :query], :browse
+    can [:show], OldNode
+    can [:show], OldWay
+    can [:show], OldRelation
     can [:show, :new], Note
     can :search, :direction
     can [:index, :permalink, :edit, :help, :fixthemap, :offline, :export, :about, :communities, :preview, :copyright, :key, :id], :site
@@ -19,18 +22,12 @@ class Ability
       can [:confirm, :confirm_resend, :confirm_email], :confirmation
       can [:index, :rss, :show, :comments], DiaryEntry
       can [:index], Note
-      can [:lost_password, :reset_password], :password
+      can [:new, :create, :edit, :update], :password
       can [:index, :show], Redaction
       can [:new, :create, :destroy], :session
       can [:index, :show, :data, :georss, :picture, :icon], Trace
       can [:terms, :new, :create, :save, :suspended, :show, :auth_success, :auth_failure], User
       can [:index, :show, :blocks_on, :blocks_by], UserBlock
-      can [:index, :show], Node
-      can [:index, :show, :full, :ways_for_node], Way
-      can [:index, :show, :full, :relations_for_node, :relations_for_way, :relations_for_relation], Relation
-      can [:history, :version], OldNode
-      can [:history, :version], OldWay
-      can [:history, :version], OldRelation
     end
 
     if user&.active?
@@ -39,6 +36,7 @@ class Ability
       can [:show], :deletion
 
       if Settings.status != "database_offline"
+        can [:subscribe, :unsubscribe], Changeset
         can [:index, :new, :create, :show, :edit, :update, :destroy], ClientApplication
         can [:index, :new, :create, :show, :edit, :update, :destroy], :oauth2_application
         can [:index, :destroy], :oauth2_authorized_application
@@ -47,20 +45,21 @@ class Ability
         can [:show], :dashboard
         can [:new, :create, :edit, :update, :comment, :subscribe, :unsubscribe], DiaryEntry
         can [:make_friend, :remove_friend], Friendship
-        can [:new, :create, :reply, :show, :inbox, :outbox, :mark, :destroy], Message
+        can [:new, :create, :reply, :show, :inbox, :outbox, :muted, :mark, :unmute, :destroy], Message
         can [:close, :reopen], Note
         can [:show, :edit, :update], :preference
         can [:edit, :update], :profile
         can [:new, :create], Report
         can [:mine, :new, :create, :edit, :update, :destroy], Trace
         can [:account, :go_public], User
+        can [:index, :create, :destroy], UserMute
 
         if user.moderator?
           can [:hide, :unhide, :hidecomment, :unhidecomment], DiaryEntry
           can [:index, :show, :resolve, :ignore, :reopen], Issue
           can :create, IssueComment
           can [:new, :create, :edit, :update, :destroy], Redaction
-          can [:new, :edit, :create, :update, :revoke], UserBlock
+          can [:new, :edit, :create, :update, :revoke, :revoke_all], UserBlock
         end
 
         if user.administrator?
index fe39f5eb5aa2475a4d1c56fa9456e9a8842d117a..0eae46f824294aab6a703987cc80a3d2091c9768 100644 (file)
@@ -5,14 +5,13 @@ class ApiAbility
 
   def initialize(user)
     can :show, :capability
-    can :index, :change
     can :index, :map
     can :show, :permission
     can :show, :version
 
     if Settings.status != "database_offline"
       can [:show, :download, :query], Changeset
-      can [:index, :create, :comment, :feed, :show, :search], Note
+      can [:index, :create, :feed, :show, :search], Note
       can :index, Tracepoint
       can [:index, :show], User
       can [:index, :show], Node
@@ -22,17 +21,9 @@ class ApiAbility
       can [:history, :version], OldWay
       can [:history, :version], OldRelation
       can [:show], UserBlock
-    end
-
-    if user&.active?
-      can :welcome, :site
-      can [:revoke, :authorize], :oauth
 
-      if Settings.status != "database_offline"
-        can [:index, :new, :create, :show, :edit, :update, :destroy], ClientApplication
-        can [:new, :create, :reply, :show, :inbox, :outbox, :mark, :destroy], Message
-        can [:close, :reopen], Note
-        can [:new, :create], Report
+      if user&.active?
+        can [:comment, :close, :reopen], Note
         can [:create, :show, :update, :destroy, :data], Trace
         can [:details, :gpx_files], User
         can [:index, :show, :update, :update_all, :destroy], UserPreference
index 8c52327cfe488cc0d4e0710d85c48625dd7a166d..95d7ab9ab92d2145b90f11373a69416aacc9f959 100644 (file)
@@ -32,9 +32,9 @@ class ApiCapability
           can [:destroy, :restore], ChangesetComment if scope?(token, :write_api)
           can :destroy, Note if scope?(token, :write_notes)
           if user&.terms_agreed?
-            can :redact, OldNode if scope?(token, :write_api)
-            can :redact, OldWay if scope?(token, :write_api)
-            can :redact, OldRelation if scope?(token, :write_api)
+            can :redact, OldNode if scope?(token, :write_api) || scope?(token, :write_redactions)
+            can :redact, OldWay if scope?(token, :write_api) || scope?(token, :write_redactions)
+            can :redact, OldRelation if scope?(token, :write_api) || scope?(token, :write_redactions)
           end
         end
       end
diff --git a/app/assets/images/key/cyclemap/beach.png b/app/assets/images/key/cyclemap/beach.png
new file mode 100644 (file)
index 0000000..256732b
Binary files /dev/null and b/app/assets/images/key/cyclemap/beach.png differ
index c900a449546dcf75d3463b6edacb66db22c4b8e1..e5a781d139fa3f4053413ffa2820a34ffd361781 100644 (file)
Binary files a/app/assets/images/key/cyclemap/bicycle_parking.png and b/app/assets/images/key/cyclemap/bicycle_parking.png differ
diff --git a/app/assets/images/key/cyclemap/bicycle_parking_small.svg b/app/assets/images/key/cyclemap/bicycle_parking_small.svg
new file mode 100644 (file)
index 0000000..753fab7
--- /dev/null
@@ -0,0 +1,3 @@
+<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8'>
+<rect x='.5' y='.5' width='7' height='7' rx='2' fill='#0087ff' stroke='#fefefe' />
+</svg>
diff --git a/app/assets/images/key/cyclemap/bicycle_rental.png b/app/assets/images/key/cyclemap/bicycle_rental.png
new file mode 100644 (file)
index 0000000..190e527
Binary files /dev/null and b/app/assets/images/key/cyclemap/bicycle_rental.png differ
diff --git a/app/assets/images/key/cyclemap/bicycle_rental_small.svg b/app/assets/images/key/cyclemap/bicycle_rental_small.svg
new file mode 100644 (file)
index 0000000..fa0399c
--- /dev/null
@@ -0,0 +1,3 @@
+<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8'>
+<rect x='.5' y='.5' width='7' height='7' rx='2' fill='#fbe500' stroke='#fefefe' />
+</svg>
diff --git a/app/assets/images/key/cyclemap/common.png b/app/assets/images/key/cyclemap/common.png
deleted file mode 100644 (file)
index 7c10815..0000000
Binary files a/app/assets/images/key/cyclemap/common.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/cycleway.png b/app/assets/images/key/cyclemap/cycleway.png
deleted file mode 100644 (file)
index 13bed4a..0000000
Binary files a/app/assets/images/key/cyclemap/cycleway.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/cycleway_local.png b/app/assets/images/key/cyclemap/cycleway_local.png
deleted file mode 100644 (file)
index 2a29331..0000000
Binary files a/app/assets/images/key/cyclemap/cycleway_local.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/cycleway_local13.png b/app/assets/images/key/cyclemap/cycleway_local13.png
deleted file mode 100644 (file)
index 3f2c535..0000000
Binary files a/app/assets/images/key/cyclemap/cycleway_local13.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/cycleway_national.png b/app/assets/images/key/cyclemap/cycleway_national.png
deleted file mode 100644 (file)
index 0f5455f..0000000
Binary files a/app/assets/images/key/cyclemap/cycleway_national.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/cycleway_national13.png b/app/assets/images/key/cyclemap/cycleway_national13.png
deleted file mode 100644 (file)
index 252b07a..0000000
Binary files a/app/assets/images/key/cyclemap/cycleway_national13.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/cycleway_regional.png b/app/assets/images/key/cyclemap/cycleway_regional.png
deleted file mode 100644 (file)
index 9224999..0000000
Binary files a/app/assets/images/key/cyclemap/cycleway_regional.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/cycleway_regional13.png b/app/assets/images/key/cyclemap/cycleway_regional13.png
deleted file mode 100644 (file)
index 5195704..0000000
Binary files a/app/assets/images/key/cyclemap/cycleway_regional13.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/footway.png b/app/assets/images/key/cyclemap/footway.png
deleted file mode 100644 (file)
index c78756f..0000000
Binary files a/app/assets/images/key/cyclemap/footway.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/forest.png b/app/assets/images/key/cyclemap/forest.png
deleted file mode 100644 (file)
index a7ebe8e..0000000
Binary files a/app/assets/images/key/cyclemap/forest.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/lake.png b/app/assets/images/key/cyclemap/lake.png
deleted file mode 100644 (file)
index 918d496..0000000
Binary files a/app/assets/images/key/cyclemap/lake.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/motorway.png b/app/assets/images/key/cyclemap/motorway.png
deleted file mode 100644 (file)
index 296f176..0000000
Binary files a/app/assets/images/key/cyclemap/motorway.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/motorway12.png b/app/assets/images/key/cyclemap/motorway12.png
deleted file mode 100644 (file)
index 749493a..0000000
Binary files a/app/assets/images/key/cyclemap/motorway12.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/primary.png b/app/assets/images/key/cyclemap/primary.png
deleted file mode 100644 (file)
index 78ae0e4..0000000
Binary files a/app/assets/images/key/cyclemap/primary.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/primary12.png b/app/assets/images/key/cyclemap/primary12.png
deleted file mode 100644 (file)
index fed37d0..0000000
Binary files a/app/assets/images/key/cyclemap/primary12.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/rail.png b/app/assets/images/key/cyclemap/rail.png
deleted file mode 100644 (file)
index 0abf0c1..0000000
Binary files a/app/assets/images/key/cyclemap/rail.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/rail14.png b/app/assets/images/key/cyclemap/rail14.png
deleted file mode 100644 (file)
index 957f17c..0000000
Binary files a/app/assets/images/key/cyclemap/rail14.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/secondary.png b/app/assets/images/key/cyclemap/secondary.png
deleted file mode 100644 (file)
index 7928b18..0000000
Binary files a/app/assets/images/key/cyclemap/secondary.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/secondary12.png b/app/assets/images/key/cyclemap/secondary12.png
deleted file mode 100644 (file)
index cde0085..0000000
Binary files a/app/assets/images/key/cyclemap/secondary12.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/track.png b/app/assets/images/key/cyclemap/track.png
deleted file mode 100644 (file)
index f294edc..0000000
Binary files a/app/assets/images/key/cyclemap/track.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/trunk.png b/app/assets/images/key/cyclemap/trunk.png
deleted file mode 100644 (file)
index d312a65..0000000
Binary files a/app/assets/images/key/cyclemap/trunk.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/trunk12.png b/app/assets/images/key/cyclemap/trunk12.png
deleted file mode 100644 (file)
index 51230a0..0000000
Binary files a/app/assets/images/key/cyclemap/trunk12.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/admin.png b/app/assets/images/key/mapnik/admin.png
deleted file mode 100644 (file)
index 0cae058..0000000
Binary files a/app/assets/images/key/mapnik/admin.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/allotments.png b/app/assets/images/key/mapnik/allotments.png
deleted file mode 100644 (file)
index e397718..0000000
Binary files a/app/assets/images/key/mapnik/allotments.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/apron.png b/app/assets/images/key/mapnik/apron.png
deleted file mode 100644 (file)
index bcea5e3..0000000
Binary files a/app/assets/images/key/mapnik/apron.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/bridge.png b/app/assets/images/key/mapnik/bridge.png
deleted file mode 100644 (file)
index d388d7b..0000000
Binary files a/app/assets/images/key/mapnik/bridge.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/bridleway.png b/app/assets/images/key/mapnik/bridleway.png
deleted file mode 100644 (file)
index 9aec1ad..0000000
Binary files a/app/assets/images/key/mapnik/bridleway.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/brownfield.png b/app/assets/images/key/mapnik/brownfield.png
deleted file mode 100644 (file)
index c0a1279..0000000
Binary files a/app/assets/images/key/mapnik/brownfield.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/building.png b/app/assets/images/key/mapnik/building.png
deleted file mode 100644 (file)
index bc074fe..0000000
Binary files a/app/assets/images/key/mapnik/building.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/capital4.svg b/app/assets/images/key/mapnik/capital4.svg
new file mode 100644 (file)
index 0000000..712c904
--- /dev/null
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="6" height="6" viewBox="-3 -3 6 6">
+<circle r="2.5" fill="#fdfdfc" stroke="#222" />
+<circle r="1" fill="#222" />
+</svg>
diff --git a/app/assets/images/key/mapnik/capital7.svg b/app/assets/images/key/mapnik/capital7.svg
new file mode 100644 (file)
index 0000000..69011cf
--- /dev/null
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="-4 -4 8 8">
+<circle r="3.5" fill="#fdfdfc" stroke="#222" />
+<circle r="1.5" fill="#222" />
+</svg>
diff --git a/app/assets/images/key/mapnik/cemetery.png b/app/assets/images/key/mapnik/cemetery.png
deleted file mode 100644 (file)
index f88f47d..0000000
Binary files a/app/assets/images/key/mapnik/cemetery.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/centre.png b/app/assets/images/key/mapnik/centre.png
deleted file mode 100644 (file)
index a1c4522..0000000
Binary files a/app/assets/images/key/mapnik/centre.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/city4.svg b/app/assets/images/key/mapnik/city4.svg
new file mode 100644 (file)
index 0000000..542236c
--- /dev/null
@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="4" height="4" viewBox="-2 -2 4 4">
+<circle r="1.75" fill="#fdfdfc" stroke="#575749" stroke-width="0.5" />
+</svg>
diff --git a/app/assets/images/key/mapnik/city6.svg b/app/assets/images/key/mapnik/city6.svg
new file mode 100644 (file)
index 0000000..40fc3ae
--- /dev/null
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="17" height="6" viewBox="0 -3 17 6">
+<circle cx="3" r="2.6" fill="#f9f9f7" stroke="#6f6f5b" stroke-width="0.8" />
+<circle cx="14" r="1.75" fill="#fdfdfc" stroke="#424236" stroke-width="0.5" />
+</svg>
diff --git a/app/assets/images/key/mapnik/commercial.png b/app/assets/images/key/mapnik/commercial.png
deleted file mode 100644 (file)
index 7a2ca5e..0000000
Binary files a/app/assets/images/key/mapnik/commercial.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/common.png b/app/assets/images/key/mapnik/common.png
deleted file mode 100644 (file)
index c1422e7..0000000
Binary files a/app/assets/images/key/mapnik/common.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/cycleway.png b/app/assets/images/key/mapnik/cycleway.png
deleted file mode 100644 (file)
index a1a16f1..0000000
Binary files a/app/assets/images/key/mapnik/cycleway.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/farm.png b/app/assets/images/key/mapnik/farm.png
deleted file mode 100644 (file)
index e63e571..0000000
Binary files a/app/assets/images/key/mapnik/farm.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/footway.png b/app/assets/images/key/mapnik/footway.png
deleted file mode 100644 (file)
index 4486119..0000000
Binary files a/app/assets/images/key/mapnik/footway.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/forest.png b/app/assets/images/key/mapnik/forest.png
deleted file mode 100644 (file)
index 5b341c6..0000000
Binary files a/app/assets/images/key/mapnik/forest.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/golf.png b/app/assets/images/key/mapnik/golf.png
deleted file mode 100644 (file)
index 11a6230..0000000
Binary files a/app/assets/images/key/mapnik/golf.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/heathland.png b/app/assets/images/key/mapnik/heathland.png
deleted file mode 100644 (file)
index d48f969..0000000
Binary files a/app/assets/images/key/mapnik/heathland.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/industrial.png b/app/assets/images/key/mapnik/industrial.png
deleted file mode 100644 (file)
index c5ac802..0000000
Binary files a/app/assets/images/key/mapnik/industrial.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/intermittent_water.svg b/app/assets/images/key/mapnik/intermittent_water.svg
new file mode 100644 (file)
index 0000000..ab728ce
--- /dev/null
@@ -0,0 +1,8 @@
+<svg xmlns='http://www.w3.org/2000/svg' width='26' height='10'>
+<defs>
+<pattern id='stripes' width='8' height='4' patternUnits='userSpaceOnUse'>
+<line x2='8' y1='1' y2='1' stroke='#aad3df' stroke-width='2' />
+</pattern>
+</defs>
+<rect width='100%' height='100%' fill='url(#stripes)' />
+</svg>
diff --git a/app/assets/images/key/mapnik/lake.png b/app/assets/images/key/mapnik/lake.png
deleted file mode 100644 (file)
index 3f16b54..0000000
Binary files a/app/assets/images/key/mapnik/lake.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/mainroad.png b/app/assets/images/key/mapnik/mainroad.png
deleted file mode 100644 (file)
index 269959b..0000000
Binary files a/app/assets/images/key/mapnik/mainroad.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/mainroad12.png b/app/assets/images/key/mapnik/mainroad12.png
deleted file mode 100644 (file)
index c289a3f..0000000
Binary files a/app/assets/images/key/mapnik/mainroad12.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/mainroad12.svg b/app/assets/images/key/mapnik/mainroad12.svg
new file mode 100644 (file)
index 0000000..6bf11d9
--- /dev/null
@@ -0,0 +1,5 @@
+<svg xmlns='http://www.w3.org/2000/svg' width='52' height='17' stroke-width='0.5'>
+<rect x='-1' y='0.5' width='54' height='4' fill='#f9b29c' stroke='#c84e2f' />
+<rect x='-1' y='6.5' width='54' height='4' fill='#fcd6a4' stroke='#a06b00' />
+<rect x='-1' y='12.5' width='54' height='4' fill='#f7fabf' stroke='#707d05' />
+</svg>
diff --git a/app/assets/images/key/mapnik/mainroad15.svg b/app/assets/images/key/mapnik/mainroad15.svg
new file mode 100644 (file)
index 0000000..96796b8
--- /dev/null
@@ -0,0 +1,5 @@
+<svg xmlns='http://www.w3.org/2000/svg' width='52' height='32'>
+<rect x='-1' y='0.5' width='54' height='9' fill='#f9b29c' stroke='#c84e2f' />
+<rect x='-1' y='11.5' width='54' height='9' fill='#fcd6a4' stroke='#a06b00' />
+<rect x='-1' y='22.5' width='54' height='9' fill='#f7fabf' stroke='#707d05' />
+</svg>
diff --git a/app/assets/images/key/mapnik/mainroad7.png b/app/assets/images/key/mapnik/mainroad7.png
deleted file mode 100644 (file)
index 05b4dac..0000000
Binary files a/app/assets/images/key/mapnik/mainroad7.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/mainroad8.svg b/app/assets/images/key/mapnik/mainroad8.svg
new file mode 100644 (file)
index 0000000..ab5ab3f
--- /dev/null
@@ -0,0 +1,4 @@
+<svg xmlns='http://www.w3.org/2000/svg' width='52' height='7' stroke-width='1.5'>
+<path d='M0,1.5 H52' stroke='#f6967a' />
+<path d='M0,5.5 H52' stroke='#f4c37d' />
+</svg>
diff --git a/app/assets/images/key/mapnik/mainroad9.png b/app/assets/images/key/mapnik/mainroad9.png
deleted file mode 100644 (file)
index 334f8fc..0000000
Binary files a/app/assets/images/key/mapnik/mainroad9.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/mainroad9.svg b/app/assets/images/key/mapnik/mainroad9.svg
new file mode 100644 (file)
index 0000000..75195d9
--- /dev/null
@@ -0,0 +1,5 @@
+<svg xmlns='http://www.w3.org/2000/svg' width='52' height='9'>
+<path d='M0,1 H52' stroke='#f6967a' stroke-width='2' />
+<path d='M0,5 H52' stroke='#f4c37d' stroke-width='2' />
+<path d='M0,8.5 H52' stroke='#bbb' />
+</svg>
diff --git a/app/assets/images/key/mapnik/military.png b/app/assets/images/key/mapnik/military.png
deleted file mode 100644 (file)
index 73c82d4..0000000
Binary files a/app/assets/images/key/mapnik/military.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/military.svg b/app/assets/images/key/mapnik/military.svg
new file mode 100644 (file)
index 0000000..7a6872d
--- /dev/null
@@ -0,0 +1,9 @@
+<svg xmlns='http://www.w3.org/2000/svg' width='26' height='10'>
+<defs>
+<pattern id='hatch' width='8' height='8' patternUnits='userSpaceOnUse'>
+<rect width='8' height='8' fill='#ff555514' />
+<line x1='8' y2='8' stroke='#ff555544' />
+</pattern>
+</defs>
+<rect x='.5' y='.5' width='25' height='9' fill='url(#hatch)' stroke='#ff555544' />
+</svg>
diff --git a/app/assets/images/key/mapnik/motorway.png b/app/assets/images/key/mapnik/motorway.png
deleted file mode 100644 (file)
index 484fc9d..0000000
Binary files a/app/assets/images/key/mapnik/motorway.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/park.png b/app/assets/images/key/mapnik/park.png
deleted file mode 100644 (file)
index 149795a..0000000
Binary files a/app/assets/images/key/mapnik/park.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/pitch.png b/app/assets/images/key/mapnik/pitch.png
deleted file mode 100644 (file)
index 98177f6..0000000
Binary files a/app/assets/images/key/mapnik/pitch.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/rail.png b/app/assets/images/key/mapnik/rail.png
deleted file mode 100644 (file)
index 0abf0c1..0000000
Binary files a/app/assets/images/key/mapnik/rail.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/rail13.png b/app/assets/images/key/mapnik/rail13.png
deleted file mode 100644 (file)
index 957f17c..0000000
Binary files a/app/assets/images/key/mapnik/rail13.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/reef.png b/app/assets/images/key/mapnik/reef.png
new file mode 100644 (file)
index 0000000..713ac86
Binary files /dev/null and b/app/assets/images/key/mapnik/reef.png differ
diff --git a/app/assets/images/key/mapnik/reserve.png b/app/assets/images/key/mapnik/reserve.png
deleted file mode 100644 (file)
index 5e3a79f..0000000
Binary files a/app/assets/images/key/mapnik/reserve.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/reserve.svg b/app/assets/images/key/mapnik/reserve.svg
new file mode 100644 (file)
index 0000000..5a53f0a
--- /dev/null
@@ -0,0 +1,4 @@
+<svg xmlns='http://www.w3.org/2000/svg' width='26' height='10'>
+<rect x='1' y='1' width='24' height='8' fill='none' stroke='#008000' stroke-width='2' opacity='.15' />
+<rect x='2' y='2' width='22' height='6' fill='none' stroke='#008000' stroke-width='4' opacity='.15' />
+</svg>
diff --git a/app/assets/images/key/mapnik/resident.png b/app/assets/images/key/mapnik/resident.png
deleted file mode 100644 (file)
index 6ee3c4d..0000000
Binary files a/app/assets/images/key/mapnik/resident.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/retail.png b/app/assets/images/key/mapnik/retail.png
deleted file mode 100644 (file)
index 2167992..0000000
Binary files a/app/assets/images/key/mapnik/retail.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/runway.png b/app/assets/images/key/mapnik/runway.png
deleted file mode 100644 (file)
index c656728..0000000
Binary files a/app/assets/images/key/mapnik/runway.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/runway11.svg b/app/assets/images/key/mapnik/runway11.svg
new file mode 100644 (file)
index 0000000..088893c
--- /dev/null
@@ -0,0 +1,4 @@
+<svg xmlns='http://www.w3.org/2000/svg' width='52' height='3'>
+<line x2='50%' y1='50%' y2='50%' stroke='#bbc' stroke-width='2' />
+<line x1='50%' x2='100%' y1='50%' y2='50%' stroke='#bbc' />
+</svg>
diff --git a/app/assets/images/key/mapnik/runway12.svg b/app/assets/images/key/mapnik/runway12.svg
new file mode 100644 (file)
index 0000000..205a18e
--- /dev/null
@@ -0,0 +1,4 @@
+<svg xmlns='http://www.w3.org/2000/svg' width='52' height='5'>
+<line x2='50%' y1='50%' y2='50%' stroke='#bbc' stroke-width='4' />
+<line x1='50%' x2='100%' y1='50%' y2='50%' stroke='#bbc' />
+</svg>
diff --git a/app/assets/images/key/mapnik/runway13.svg b/app/assets/images/key/mapnik/runway13.svg
new file mode 100644 (file)
index 0000000..e4d7127
--- /dev/null
@@ -0,0 +1,4 @@
+<svg xmlns='http://www.w3.org/2000/svg' width='52' height='6'>
+<line x2='50%' y1='50%' y2='50%' stroke='#bbc' stroke-width='6' />
+<line x1='50%' x2='100%' y1='50%' y2='50%' stroke='#bbc' stroke-width='2' />
+</svg>
diff --git a/app/assets/images/key/mapnik/runway14.svg b/app/assets/images/key/mapnik/runway14.svg
new file mode 100644 (file)
index 0000000..dc9958d
--- /dev/null
@@ -0,0 +1,4 @@
+<svg xmlns='http://www.w3.org/2000/svg' width='52' height='12'>
+<line x2='50%' y1='50%' y2='50%' stroke='#bbc' stroke-width='12' />
+<line x1='50%' x2='100%' y1='50%' y2='50%' stroke='#bbc' stroke-width='4' />
+</svg>
diff --git a/app/assets/images/key/mapnik/school.png b/app/assets/images/key/mapnik/school.png
deleted file mode 100644 (file)
index 50f30a2..0000000
Binary files a/app/assets/images/key/mapnik/school.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/school.svg b/app/assets/images/key/mapnik/school.svg
new file mode 100644 (file)
index 0000000..b7600bf
--- /dev/null
@@ -0,0 +1,3 @@
+<svg xmlns='http://www.w3.org/2000/svg' width='26' height='10'>
+<rect x='.5' y='.5' width='25' height='9' fill='#ffffe5' stroke='#fdfdb2' />
+</svg>
diff --git a/app/assets/images/key/mapnik/station.png b/app/assets/images/key/mapnik/station.png
deleted file mode 100644 (file)
index 6c36e3c..0000000
Binary files a/app/assets/images/key/mapnik/station.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/subway.png b/app/assets/images/key/mapnik/subway.png
deleted file mode 100644 (file)
index cb42ee2..0000000
Binary files a/app/assets/images/key/mapnik/subway.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/summit.png b/app/assets/images/key/mapnik/summit.png
deleted file mode 100644 (file)
index 9dbfcd3..0000000
Binary files a/app/assets/images/key/mapnik/summit.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/summit.svg b/app/assets/images/key/mapnik/summit.svg
new file mode 100644 (file)
index 0000000..e9c831c
--- /dev/null
@@ -0,0 +1,3 @@
+<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8'>
+<path d='M4,1 0,8 8,8 z' fill='#d08f55' />
+</svg>
diff --git a/app/assets/images/key/mapnik/track.png b/app/assets/images/key/mapnik/track.png
deleted file mode 100644 (file)
index f294edc..0000000
Binary files a/app/assets/images/key/mapnik/track.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/tram.png b/app/assets/images/key/mapnik/tram.png
deleted file mode 100644 (file)
index 1c64b28..0000000
Binary files a/app/assets/images/key/mapnik/tram.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/tunnel.png b/app/assets/images/key/mapnik/tunnel.png
deleted file mode 100644 (file)
index 4c52ff4..0000000
Binary files a/app/assets/images/key/mapnik/tunnel.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/unclassified.png b/app/assets/images/key/mapnik/unclassified.png
deleted file mode 100644 (file)
index 3cdfb2d..0000000
Binary files a/app/assets/images/key/mapnik/unclassified.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/unclassified13.png b/app/assets/images/key/mapnik/unclassified13.png
deleted file mode 100644 (file)
index 1a87924..0000000
Binary files a/app/assets/images/key/mapnik/unclassified13.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/wetland.png b/app/assets/images/key/mapnik/wetland.png
new file mode 100644 (file)
index 0000000..d13748b
Binary files /dev/null and b/app/assets/images/key/mapnik/wetland.png differ
diff --git a/app/assets/images/key/mapnik/wood.png b/app/assets/images/key/mapnik/wood.png
deleted file mode 100644 (file)
index 2413cda..0000000
Binary files a/app/assets/images/key/mapnik/wood.png and /dev/null differ
diff --git a/app/assets/images/key/opnvkarte/bus_stop13.svg b/app/assets/images/key/opnvkarte/bus_stop13.svg
new file mode 100644 (file)
index 0000000..ae4ffee
--- /dev/null
@@ -0,0 +1,3 @@
+<svg xmlns='http://www.w3.org/2000/svg' width='5' height='5'>
+<circle cx='2.5' cy='2.5' r='2.15' stroke='black' fill='#ffffff' />
+</svg>
diff --git a/app/assets/images/key/opnvkarte/bus_stop15.svg b/app/assets/images/key/opnvkarte/bus_stop15.svg
new file mode 100644 (file)
index 0000000..a259919
--- /dev/null
@@ -0,0 +1,3 @@
+<svg xmlns='http://www.w3.org/2000/svg' width='9' height='9'>
+<circle cx='4.5' cy='4.5' r='4' stroke='black' fill='#ffffff' />
+</svg>
diff --git a/app/assets/images/key/opnvkarte/rail17.svg b/app/assets/images/key/opnvkarte/rail17.svg
new file mode 100644 (file)
index 0000000..8cada29
--- /dev/null
@@ -0,0 +1,9 @@
+<svg xmlns='http://www.w3.org/2000/svg' width='52' height='12' stroke='#999999' stroke-dashoffset='-1'>
+  <g stroke-dasharray='2 4'>
+    <line x2='100%' y1='1' y2='1' stroke-width='2' />
+    <line x2='100%' y1='6' y2='6' stroke-width='4' />
+    <line x2='100%' y1='11' y2='11' stroke-width='2' />
+  </g>
+  <line x2='100%' y1='2.5' y2='2.5' stroke-width='1' />
+  <line x2='100%' y1='9.5' y2='9.5' stroke-width='1' />
+</svg>
diff --git a/app/assets/images/key/opnvkarte/stop13.svg b/app/assets/images/key/opnvkarte/stop13.svg
new file mode 100644 (file)
index 0000000..cfe65b3
--- /dev/null
@@ -0,0 +1,3 @@
+<svg xmlns='http://www.w3.org/2000/svg' width='5' height='5'>
+<circle cx='2.5' cy='2.5' r='2.15' stroke='black' fill='#e23148' />
+</svg>
diff --git a/app/assets/images/key/opnvkarte/stop15.svg b/app/assets/images/key/opnvkarte/stop15.svg
new file mode 100644 (file)
index 0000000..3ae6267
--- /dev/null
@@ -0,0 +1,3 @@
+<svg xmlns='http://www.w3.org/2000/svg' width='9' height='9'>
+<circle cx='4.5' cy='4.5' r='4' stroke='black' fill='#e23148' />
+</svg>
diff --git a/app/assets/images/sprite.png b/app/assets/images/sprite.png
deleted file mode 100644 (file)
index e256170..0000000
Binary files a/app/assets/images/sprite.png and /dev/null differ
index 382bc41fd079fefd47fb75ca0340f6d6ddfe9db5..ae2e03c6beb72886bb1c37dbfa222b665379296a 100644 (file)
@@ -1,68 +1,62 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0" y="0" width="300" height="200" viewBox="0, 0, 300, 200">
-  <g id="background">
-    <path d="M0,0 L300,0 L300,200 L0,200 z" fill="#B3B3B3" id="rect6890" display="none"/>
-  </g>
-  <g id="Layer_1">
-    <g id="query">
-      <text transform="matrix(1, 0, 0, 1, 276.165, 12.5)" id="tspan3023">
-        <tspan x="-3.665" y="6.012" font-family="Helvetica, sans-serif" font-weight="Bold" font-size="12" fill="#FFFFFF">?</tspan>
-      </text>
-      <path d="M263,1 C263,1 272,8 272,8 C270.944,8.587 269.888,9.173 268.832,9.76 L271.863,16.375 C272.209,17.128 271.878,18.018 271.125,18.364 C270.372,18.709 269.482,18.378 269.136,17.625 L266.201,11.221 C265.134,11.814 264.067,12.407 263,13 L263,1 z" fill="#FFFFFF"/>
-    </g>
-    <g id="add-note-grey">
-      <path d="M242,31 L242,24 L243,23 L253,23 L254,24 L254,31 L253,32 L250,32 L248,35 L246,32 L243,32 z" fill="#CCCCCC" id="path3386"/>
-      <path d="M257,33 L257,35 L259,35 L259,37 L257,37 L257,39 L255,39 L255,37 L253,37 L253,35 L255,35 L255,33 L257,33 z" fill="#CCCCCC"/>
-    </g>
-    <g id="add-note">
-      <path d="M257,12 L257,14 L259,14 L259,16 L257,16 L257,18 L255,18 L255,16 L253,16 L253,14 L255,14 L255,12 L257,12 z" fill="#FFFFFF"/>
-      <path d="M242,11 L242,4 L243,3 L253,3 L254,4 L254,11 L253,12 L250,12 L248,15 L246,12 L243,12 z" fill="#FFFFFF" id="path11741"/>
-    </g>
-    <g id="check-green">
-      <path d="M224,28 L226,28 L229,31 L233.773,25 L236,25 L236,27 L231,33 L230,34 L228,34 L227,33 L224,30 z" fill="#70CD8F" id="path3361-4"/>
-    </g>
-    <g id="check">
-      <path d="M224,8 L226,8 L229,11 L233.773,5 L236,5 L236,7 L231,13 L230,14 L228,14 L227,13 L224,10 z" fill="#222222" id="path10883"/>
-    </g>
-    <g id="close-grey">
-      <path d="M205.938,25.156 L204.938,26.156 L204.938,27.156 L207.938,30.156 L204.938,33.156 L204.938,34.156 L205.938,35.156 L206.938,35.156 L209.938,32.156 L212.938,35.156 L213.938,35.156 L214.938,34.156 L214.938,33.156 L211.938,30.156 L214.938,27.156 L214.938,26.156 L213.938,25.156 L212.938,25.156 L209.938,28.156 L206.938,25.156 L205.938,25.156 z" fill="#999999" id="path3059"/>
-    </g>
-    <g id="close">
-      <path d="M206,5 L205,6 L205,7 L208,10 L205,13 L205,14 L206,15 L207,15 L210,12 L213,15 L214,15 L215,14 L215,13 L212,10 L215,7 L215,6 L214,5 L213,5 L210,8 L207,5 L206,5 z" fill="#CCCCCC" id="path10879"/>
-    </g>
-    <g id="link">
-      <path d="M185,6 L183,8 L183,12 L185,14 L187,14 L185,12 L185,8 L190,8 L190,11 L192,11 L192,8 L190,6 L187,6 L185,6 z M192,6 L194,8 L194,12 L189,12 L189,9 L187,9 L187,12 L189,14 L194,14 L196,12 L196,8 L194,6 L192,6 z" fill="#0000FF" id="path4118"/>
-    </g>
-    <g id="clipboard">
-      <path d="M170,1 L169,2 L169,3 L168,3 L167,4 L167,6 L174,6 L174,4 L173,3 L172,3 L172,2 L171,1 L170,1 z M165,4 L164,5 L164,16 L165,17 L176,17 L177,16 L177,5 L176,4 L175,4 L175,5 L175,7 L175,15 L166,15 L166,7 L166,5 L166,4 L165,4 z M168,8 L168,9 L173,9 L173,8 L168,8 z M168,10 L168,11 L173,11 L173,10 L168,10 z M168,12 L168,13 L171,13 L171,12 L168,12 z" fill="#FFFFFF" id="path6924"/>
-    </g>
-    <g id="export">
-      <path d="M155,2 L154,3 L154,5 L152,5 C146,5 146,12 146,12 C146,12 148,8 152,8 C152.667,8 153.333,8 154,8 L154,10 L155,11 L159,6.5 L155,2 z M142,6 L141,7 L141,16 L142,17 L152,17 L153,16 L153,14 L153,11 L153,10 L152,10 C151.68,10 151.34,10.073 151,10.188 L151,13 L151,15 L145.438,15 C145.139,15.069 144.829,15.069 144.531,15 L143,15 L143,13.375 C142.967,13.168 142.967,12.957 143,12.75 L143,10 L143,8 L144.531,8 C144.875,7.331 145.323,6.652 145.875,6 L145,6 L142,6 z" fill="#FFFFFF" id="path6920"/>
-    </g>
-    <g id="info">
-      <path d="M129,3 L128,4 L128,6 L129,7 L131,7 L132,6 L132,4 L131,3 z M129,9 L128,10 L128,16 L129,17 L131,17 L132,16 L132,10 L131,9 z" fill="#FFFFFF" id="path6912"/>
-    </g>
-    <g id="layers">
-      <path d="M109.5,3 L103,6 L103,7 L109.5,10 L110.5,10 L117,7 L117,6 L110.5,3 L109.5,3 z M104.094,9.5 L103,10 L103,11 L109.5,14 L110.5,14 L117,11 L117,10 L115.906,9.5 L110.5,12 L109.5,12 L104.094,9.5 z M104.094,13.5 L103,14 L103,15 L109.5,18 L110.5,18 L117,15 L117,14 L115.906,13.5 L110.5,16 L109.5,16 L104.094,13.5 z" fill="#FFFFFF" id="path6922"/>
-    </g>
-    <g id="locate-green">
-      <path d="M84,30 L84,28 L94,24 L96,24 L96,26 L92,36 L90,36 L90,30 z" fill="#70CD8F" id="path6918-2"/>
-    </g>
-    <g id="locate">
-      <path d="M84,10 L84,8 L94,4 L96,4 L96,6 L92,16 L90,16 L90,10 z" fill="#FFFFFF" id="path6918"/>
-    </g>
-    <g id="minus">
-      <path d="M65,8 L76,8 L77,9 L77,10 L76,11 L65,11 L64,10 L64,9 z" fill="#FFFFFF" id="path6916"/>
-    </g>
-    <g id="plus">
-      <path d="M57,9 L56,8 L52,8 L52,4 L51,3 L50,3 L49,4 L49,8 L45,8 L44,9 L44,10 L45,11 L49,11 L49,15 L50,16 L51,16 L52,15 L52,11 L56,11 L57,10 L57,9 z" fill="#FFFFFF" id="path6914"/>
-    </g>
-    <g id="heart">
-      <path d="M24,8 C24,6.172 25,4 27.75,4 C29.578,4 30.5,6 30.5,6 C30.5,6 31.422,4 33.25,4 C36,4 37,6.172 37,8 C37,13 30.5,16 30.5,16 C30.5,16 24,13 24,8 z" fill="#000000" id="path3843"/>
-    </g>
-    <g id="search">
-      <path d="M11.5,3 C14.538,3 17,5.462 17,8.5 C17,11.538 14.538,14 11.5,14 C10.494,14 9.561,13.722 8.75,13.25 L5,17 L4,17 L3,16 L3,15 L6.75,11.25 C6.278,10.439 6,9.506 6,8.5 C6,5.462 8.462,3 11.5,3 z M12,5 L11,5 L9,6 L8,8 L8,9 L9,11 L11,12 L12,12 L14,11 L15,9 L15,8 L14,6 L12,5 z" fill="#999999" id="path10739"/>
-    </g>
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="300" height="200">
+  <g id="query">
+    <text transform="matrix(1, 0, 0, 1, 276.165, 12.5)">
+      <tspan x="-3.665" y="6.012" font-family="Helvetica, sans-serif" font-weight="Bold" font-size="12" fill="#FFFFFF">?</tspan>
+    </text>
+    <path d="M263,1 C263,1 272,8 272,8 C270.944,8.587 269.888,9.173 268.832,9.76 L271.863,16.375 C272.209,17.128 271.878,18.018 271.125,18.364 C270.372,18.709 269.482,18.378 269.136,17.625 L266.201,11.221 C265.134,11.814 264.067,12.407 263,13 L263,1 z" fill="#FFFFFF"/>
+  </g>
+  <g id="add-note-grey">
+    <path d="M242,31 L242,24 L243,23 L253,23 L254,24 L254,31 L253,32 L250,32 L248,35 L246,32 L243,32 z" fill="#CCCCCC"/>
+    <path d="M257,33 L257,35 L259,35 L259,37 L257,37 L257,39 L255,39 L255,37 L253,37 L253,35 L255,35 L255,33 L257,33 z" fill="#CCCCCC"/>
+  </g>
+  <g id="add-note">
+    <path d="M257,12 L257,14 L259,14 L259,16 L257,16 L257,18 L255,18 L255,16 L253,16 L253,14 L255,14 L255,12 L257,12 z" fill="#FFFFFF"/>
+    <path d="M242,11 L242,4 L243,3 L253,3 L254,4 L254,11 L253,12 L250,12 L248,15 L246,12 L243,12 z" fill="#FFFFFF"/>
+  </g>
+  <g id="check-green">
+    <path d="M224,28 L226,28 L229,31 L233.773,25 L236,25 L236,27 L231,33 L230,34 L228,34 L227,33 L224,30 z" fill="#70CD8F"/>
+  </g>
+  <g id="check">
+    <path d="M224,8 L226,8 L229,11 L233.773,5 L236,5 L236,7 L231,13 L230,14 L228,14 L227,13 L224,10 z" fill="#222222"/>
+  </g>
+  <g id="close-grey">
+    <path d="M205.938,25.156 L204.938,26.156 L204.938,27.156 L207.938,30.156 L204.938,33.156 L204.938,34.156 L205.938,35.156 L206.938,35.156 L209.938,32.156 L212.938,35.156 L213.938,35.156 L214.938,34.156 L214.938,33.156 L211.938,30.156 L214.938,27.156 L214.938,26.156 L213.938,25.156 L212.938,25.156 L209.938,28.156 L206.938,25.156 L205.938,25.156 z" fill="#999999"/>
+  </g>
+  <g id="close">
+    <path d="M206,5 L205,6 L205,7 L208,10 L205,13 L205,14 L206,15 L207,15 L210,12 L213,15 L214,15 L215,14 L215,13 L212,10 L215,7 L215,6 L214,5 L213,5 L210,8 L207,5 L206,5 z" fill="#CCCCCC"/>
+  </g>
+  <g id="link">
+    <path d="M185,6 L183,8 L183,12 L185,14 L187,14 L185,12 L185,8 L190,8 L190,11 L192,11 L192,8 L190,6 L187,6 L185,6 z M192,6 L194,8 L194,12 L189,12 L189,9 L187,9 L187,12 L189,14 L194,14 L196,12 L196,8 L194,6 L192,6 z" fill="#0000FF"/>
+  </g>
+  <g id="clipboard">
+    <path d="M170,1 L169,2 L169,3 L168,3 L167,4 L167,6 L174,6 L174,4 L173,3 L172,3 L172,2 L171,1 L170,1 z M165,4 L164,5 L164,16 L165,17 L176,17 L177,16 L177,5 L176,4 L175,4 L175,5 L175,7 L175,15 L166,15 L166,7 L166,5 L166,4 L165,4 z M168,8 L168,9 L173,9 L173,8 L168,8 z M168,10 L168,11 L173,11 L173,10 L168,10 z M168,12 L168,13 L171,13 L171,12 L168,12 z" fill="#FFFFFF"/>
+  </g>
+  <g id="export">
+    <path d="M155,2 L154,3 L154,5 L152,5 C146,5 146,12 146,12 C146,12 148,8 152,8 C152.667,8 153.333,8 154,8 L154,10 L155,11 L159,6.5 L155,2 z M142,6 L141,7 L141,16 L142,17 L152,17 L153,16 L153,14 L153,11 L153,10 L152,10 C151.68,10 151.34,10.073 151,10.188 L151,13 L151,15 L145.438,15 C145.139,15.069 144.829,15.069 144.531,15 L143,15 L143,13.375 C142.967,13.168 142.967,12.957 143,12.75 L143,10 L143,8 L144.531,8 C144.875,7.331 145.323,6.652 145.875,6 L145,6 L142,6 z" fill="#FFFFFF"/>
+  </g>
+  <g id="info">
+    <path d="M129,3 L128,4 L128,6 L129,7 L131,7 L132,6 L132,4 L131,3 z M129,9 L128,10 L128,16 L129,17 L131,17 L132,16 L132,10 L131,9 z" fill="#FFFFFF"/>
+  </g>
+  <g id="layers">
+    <path d="M109.5,3 L103,6 L103,7 L109.5,10 L110.5,10 L117,7 L117,6 L110.5,3 L109.5,3 z M104.094,9.5 L103,10 L103,11 L109.5,14 L110.5,14 L117,11 L117,10 L115.906,9.5 L110.5,12 L109.5,12 L104.094,9.5 z M104.094,13.5 L103,14 L103,15 L109.5,18 L110.5,18 L117,15 L117,14 L115.906,13.5 L110.5,16 L109.5,16 L104.094,13.5 z" fill="#FFFFFF"/>
+  </g>
+  <g id="locate-green">
+    <path d="M84,30 L84,28 L94,24 L96,24 L96,26 L92,36 L90,36 L90,30 z" fill="#70CD8F"/>
+  </g>
+  <g id="locate">
+    <path d="M84,10 L84,8 L94,4 L96,4 L96,6 L92,16 L90,16 L90,10 z" fill="#FFFFFF"/>
+  </g>
+  <g id="minus">
+    <path d="M65,8 L76,8 L77,9 L77,10 L76,11 L65,11 L64,10 L64,9 z" fill="#FFFFFF"/>
+  </g>
+  <g id="plus">
+    <path d="M57,9 L56,8 L52,8 L52,4 L51,3 L50,3 L49,4 L49,8 L45,8 L44,9 L44,10 L45,11 L49,11 L49,15 L50,16 L51,16 L52,15 L52,11 L56,11 L57,10 L57,9 z" fill="#FFFFFF"/>
+  </g>
+  <g id="heart">
+    <path d="M24,8 C24,6.172 25,4 27.75,4 C29.578,4 30.5,6 30.5,6 C30.5,6 31.422,4 33.25,4 C36,4 37,6.172 37,8 C37,13 30.5,16 30.5,16 C30.5,16 24,13 24,8 z" fill="#000000"/>
+  </g>
+  <g id="search">
+    <path d="M11.5,3 C14.538,3 17,5.462 17,8.5 C17,11.538 14.538,14 11.5,14 C10.494,14 9.561,13.722 8.75,13.25 L5,17 L4,17 L3,16 L3,15 L6.75,11.25 C6.278,10.439 6,9.506 6,8.5 C6,5.462 8.462,3 11.5,3 z M12,5 L11,5 L9,6 L8,8 L8,9 L9,11 L11,12 L12,12 L14,11 L15,9 L15,8 L14,6 L12,5 z" fill="#999999"/>
   </g>
 </svg>
index af67244bcb706604ed139f4758bb3bef504970b3..0bfff869ebcc87186c1aec12c4a0ff75949a923f 100644 (file)
@@ -103,6 +103,8 @@ $(document).ready(function () {
 
     $("body").removeClass("compact-nav");
 
+    $("header").removeClass("text-nowrap");
+
     updateHeader();
 
     $(window).resize(updateHeader);
index e45d28321c859c52ff06a50a2893cec8e35f0920..8ffa05c53e41ebcf88b58acd19e77f36950cf334 100644 (file)
@@ -346,10 +346,6 @@ $(document).ready(function () {
           });
         }
       });
-
-      $(".colour-preview-box").each(function () {
-        $(this).css("background-color", $(this).data("colour"));
-      });
     }
 
     page.unload = function () {
@@ -359,6 +355,16 @@ $(document).ready(function () {
     return page;
   };
 
+  OSM.OldBrowse = function () {
+    var page = {};
+
+    page.pushstate = page.popstate = function (path) {
+      OSM.loadSidebarContent(path);
+    };
+
+    return page;
+  };
+
   var history = OSM.History(map);
 
   OSM.router = OSM.Router(map, {
@@ -373,8 +379,11 @@ $(document).ready(function () {
     "/user/:display_name/history": history,
     "/note/:id": OSM.Note(map),
     "/node/:id(/history)": OSM.Browse(map, "node"),
+    "/node/:id/history/:version": OSM.OldBrowse(),
     "/way/:id(/history)": OSM.Browse(map, "way"),
+    "/way/:id/history/:version": OSM.OldBrowse(),
     "/relation/:id(/history)": OSM.Browse(map, "relation"),
+    "/relation/:id/history/:version": OSM.OldBrowse(),
     "/changeset/:id": OSM.Changeset(map),
     "/query": OSM.Query(map)
   });
index c6e77bc71f2f9af2f8a69d194e3975598251f5a2..75a1f7b4dfa770463867cf7fafafbaf05babb1e3 100644 (file)
@@ -26,14 +26,14 @@ OSM.Changeset = function (map) {
     });
   }
 
-  function updateChangeset(form, method, url, include_data) {
+  function updateChangeset(method, url, include_data) {
     var data;
 
-    $(form).find("#comment-error").prop("hidden", true);
-    $(form).find("input[type=submit]").prop("disabled", true);
+    content.find("#comment-error").prop("hidden", true);
+    content.find("button[data-method][data-url]").prop("disabled", true);
 
     if (include_data) {
-      data = { text: $(form.text).val() };
+      data = { text: content.find("textarea").val() };
     } else {
       data = {};
     }
@@ -47,24 +47,21 @@ OSM.Changeset = function (map) {
         OSM.loadSidebarContent(window.location.pathname, page.load);
       },
       error: function (xhr) {
-        $(form).find("#comment-error").text(xhr.responseText);
-        $(form).find("#comment-error").prop("hidden", false);
-        $(form).find("input[type=submit]").prop("disabled", false);
+        content.find("button[data-method][data-url]").prop("disabled", false);
+        content.find("#comment-error")
+          .text(xhr.responseText)
+          .prop("hidden", false)
+          .get(0).scrollIntoView({ block: "nearest" });
       }
     });
   }
 
   function initialize() {
-    content.find("input[name=comment]").on("click", function (e) {
+    content.find("button[data-method][data-url]").on("click", function (e) {
       e.preventDefault();
       var data = $(e.target).data();
-      updateChangeset(e.target.form, data.method, data.url, true);
-    });
-
-    content.find(".action-button").on("click", function (e) {
-      e.preventDefault();
-      var data = $(e.target).data();
-      updateChangeset(e.target.form, data.method, data.url);
+      var include_data = e.target.name === "comment";
+      updateChangeset(data.method, data.url, include_data);
     });
 
     content.find("textarea").on("input", function (e) {
index 0bf6a3a8d169813f869bf6dbc2050ed86914e8a1..d44dbd12b80a1b59cae19cea44c6336ecc2108bb 100644 (file)
@@ -53,7 +53,7 @@ function FOSSGISValhallaEngine(id, costing) {
         data: {
           json: JSON.stringify({
             locations: points.map(function (p) {
-              return { lat: p.lat, lon: p.lng };
+              return { lat: p.lat, lon: p.lng, radius: 5 };
             }),
             costing: costing,
             directions_options: {
index b9050d8a12a01a95f5678841fc57c31c6aad8d10..a953920f895d8fe62cefafdd3927f90f040ea62d 100644 (file)
@@ -58,7 +58,6 @@ OSM.Export = function (map) {
   }
 
   page.pushstate = page.popstate = function (path) {
-    $("#export_tab").addClass("current");
     OSM.loadSidebarContent(path, page.load);
   };
 
@@ -79,8 +78,6 @@ OSM.Export = function (map) {
     map
       .removeLayer(locationFilter)
       .off("moveend", update);
-
-    $("#export_tab").removeClass("current");
   };
 
   return page;
index e8d912685f0aae2b73808ed2b339947043838ccf..c6ba0c2edc9831853eedfec9f533531d71d5f341 100644 (file)
@@ -146,7 +146,6 @@ OSM.History = function (map) {
   }
 
   page.pushstate = page.popstate = function (path) {
-    $("#history_tab").addClass("current");
     OSM.loadSidebarContent(path, page.load);
   };
 
@@ -165,8 +164,6 @@ OSM.History = function (map) {
   page.unload = function () {
     map.removeLayer(group);
     map.off("moveend", update);
-
-    $("#history_tab").removeClass("current");
   };
 
   return page;
index e7790c904b111804f7332b46cc7a81bffcee654e..15fedb1d113b52bbd8d402427af3d38c8c7f23ed 100644 (file)
@@ -52,20 +52,18 @@ OSM.Note = function (map) {
           OSM.loadSidebarContent(path, function () {
             initialize(path, id, moveToNote);
           });
+        },
+        error: function (xhr) {
+          $(form).find("#comment-error")
+            .text(xhr.responseText)
+            .prop("hidden", false);
+          updateButtons(form);
         }
       });
     });
 
     content.find("textarea").on("input", function (e) {
-      var form = e.target.form;
-
-      if ($(e.target).val() === "") {
-        $(form.close).val($(form.close).data("defaultActionText"));
-        $(form.comment).prop("disabled", true);
-      } else {
-        $(form.close).val($(form.close).data("commentActionText"));
-        $(form.comment).prop("disabled", false);
-      }
+      updateButtons(e.target.form);
     });
 
     content.find("textarea").val("").trigger("input");
@@ -84,6 +82,17 @@ OSM.Note = function (map) {
     if (callback) callback();
   }
 
+  function updateButtons(form) {
+    $(form).find("input[type=submit]").prop("disabled", false);
+    if ($(form.text).val() === "") {
+      $(form.close).val($(form.close).data("defaultActionText"));
+      $(form.comment).prop("disabled", true);
+    } else {
+      $(form.close).val($(form.close).data("commentActionText"));
+      $(form.comment).prop("disabled", false);
+    }
+  }
+
   function moveToNote() {
     var data = $(".details").data();
     if (!data) return;
index 6a3400d348831ab48ff53b5f1a2f9e991307f52b..088d0f9d3ea0fcf71cd36f10dd44090f8df35745 100644 (file)
@@ -24,7 +24,7 @@ L.OSM.key = function (options) {
     }
 
     function updateButton() {
-      var disabled = ["mapnik", "cyclemap"].indexOf(map.getMapBaseLayerId()) === -1;
+      var disabled = OSM.LAYERS_WITH_MAP_KEY.indexOf(map.getMapBaseLayerId()) === -1;
       button
         .toggleClass("disabled", disabled)
         .attr("data-bs-original-title",
@@ -39,11 +39,11 @@ L.OSM.key = function (options) {
 
       $(".mapkey-table-entry").each(function () {
         var data = $(this).data();
-        if (layer === data.layer && zoom >= data.zoomMin && zoom <= data.zoomMax) {
-          $(this).show();
-        } else {
-          $(this).hide();
-        }
+        $(this).toggle(
+          layer === data.layer &&
+          (!data.zoomMin || zoom >= data.zoomMin) &&
+          (!data.zoomMax || zoom <= data.zoomMax)
+        );
       });
     }
   };
index e1e0e64fde0b58433a7cd204d570e50410c3ba27..d221ae208eba4880a707d8c82d9c9763961b9bd7 100644 (file)
@@ -58,13 +58,6 @@ L.OSM.Map = L.Map.extend({
     }).prop("outerHTML");
     var tracestrack = I18n.t("javascripts.map.tracestrack_credit", { tracestrack_link: tracestrack_link });
 
-    var memomaps_link = $("<a>", {
-      href: "https://memomaps.de/",
-      target: "_blank",
-      text: I18n.t("javascripts.map.memomaps")
-    }).prop("outerHTML");
-    var memomaps = I18n.t("javascripts.map.opnvkarte_credit", { memomaps_link: memomaps_link });
-
     var hotosm_link = $("<a>", {
       href: "https://www.hotosm.org/",
       target: "_blank",
@@ -116,13 +109,6 @@ L.OSM.Map = L.Map.extend({
       }));
     }
 
-    this.baseLayers.push(new L.OSM.OPNVKarte({
-      attribution: copyright + ". " + memomaps + ". " + terms,
-      code: "O",
-      keyid: "opnvkarte",
-      name: I18n.t("javascripts.map.base.opnvkarte")
-    }));
-
     this.baseLayers.push(new L.OSM.HOT({
       attribution: copyright + ". " + hotosm + ". " + terms,
       code: "H",
index c096a92fcf725b4d2ce3e2d144416cfcdfe726fc..eb351fa026ac6aa3f85f66461155e2ade36e4dc1 100644 (file)
@@ -46,10 +46,13 @@ L.OSM.share = function (options) {
         .text(I18n.t("javascripts.share.short_link")))
       .append($("<a class='btn btn-primary'>")
         .attr("for", "embed_html")
+        .attr("id", "embed_link")
+        .attr("data-bs-title", I18n.t("javascripts.site.embed_html_disabled"))
         .attr("href", "#")
         .text(I18n.t("javascripts.share.embed")))
       .on("click", "a", function (e) {
         e.preventDefault();
+        if (!$(this).hasClass("btn-primary")) return;
         var id = "#" + $(this).attr("for");
         $(this).siblings("a")
           .removeClass("active");
@@ -309,6 +312,7 @@ L.OSM.share = function (options) {
     }
 
     function update() {
+      var canEmbed = map.getMapBaseLayerId() !== "tracestracktopo";
       var bounds = map.getBounds();
 
       $("#link_marker")
@@ -334,6 +338,14 @@ L.OSM.share = function (options) {
         params.marker = latLng.lat + "," + latLng.lng;
       }
 
+      $("#embed_link")
+        .toggleClass("btn-primary", canEmbed)
+        .toggleClass("btn-secondary", !canEmbed)
+        .tooltip(canEmbed ? "disable" : "enable");
+      if (!canEmbed && $("#embed_link").hasClass("active")) {
+        $("#long_link").click();
+      }
+
       $("#embed_html").val(
         "<iframe width=\"425\" height=\"350\" src=\"" +
           escapeHTML(OSM.SERVER_PROTOCOL + "://" + OSM.SERVER_URL + "/export/embed.html?" + $.param(params)) +
index 5accc1a6036fb94ec958eaf8f5c803832ecf3c09..cc86da05ea38365abaaa39a75f7dd25f94007dc6 100644 (file)
@@ -22,6 +22,8 @@ $(document).ready(function () {
     $(".user-button").before(data.inboxanchor);
 
     $("#inbox-count").replaceWith(data.inbox_count);
+    $("#outbox-count").replaceWith(data.outbox_count);
+    $("#muted-count").replaceWith(data.muted_count);
   }
 
   function updateReadState(target, isRead) {
index 0a0f5c67a7c5a9df678e3cb1e7168f46f90434ee..2e33438dbdef6bc9c821e8c217ed41415d05eb08 100644 (file)
@@ -1,5 +1,6 @@
 //= depend_on settings.yml
 //= depend_on settings.local.yml
+//= depend_on key.yml
 //= require qs/dist/qs
 
 OSM = {
@@ -29,6 +30,8 @@ OSM = {
   TRACESTRACK_KEY:         <%= Settings.tracestrack_key.to_json %>,
 <% end %>
 
+  LAYERS_WITH_MAP_KEY:     <%= YAML.load_file(Rails.root.join("config/key.yml")).keys.to_json %>,
+
   MARKER_GREEN:            <%= image_path("marker-green.png").to_json %>,
   MARKER_RED:              <%= image_path("marker-red.png").to_json %>,
 
index 7c6f4b36507dbf0eb7e4dca1c44592d2a3a74738..fe398bc5abf1d8c883811c6ff5bb78ca91e7de37 100644 (file)
     margin-left: 25px;
   }
 
-  /* Deleted objects */
-
-  .deleted { text-decoration: line-through; }
-
   /* Nodes (and ways as areas) */
 
   .aeroway.aerodrome::before { content: image-url('browse/aerodrome.p.16.png'); }
index a2b723ccb361bb2d83dcd1bb869bd791fe4985fe..35c5ba845f0d0085b135d4efead8af8f71e89fa7 100644 (file)
@@ -2,34 +2,6 @@
 @import "bootstrap";
 @import "rails_bootstrap_forms";
 
-/* Bootstrap + r2 fixes */
-
-:root[dir=rtl] {
-  .bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow {
-    /* no-r2 */
-    right: unset !important;
-    left: calc(-1 * var(--bs-tooltip-arrow-height)) !important;
-
-    &::before {
-      /* no-r2 */
-      left: unset !important;
-      right: -1px !important;
-    }
-  }
-
-  .bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow {
-    /* no-r2 */
-    left: unset !important;
-    right: calc(-1 * var(--bs-tooltip-arrow-height)) !important;
-
-    &::before {
-      /* no-r2 */
-      right: unset !important;
-      left: -1px !important;
-    }
-  }
-}
-
 /* Styles common to large and small screens */
 
 /* Default rules for the body of every page */
@@ -65,29 +37,28 @@ time[title] {
   vertical-align: top;
   width: 20px;
   height: 20px;
-  background: transparent image-url("sprite.png") no-repeat 0 0;
-  background-image: image-url("sprite.svg");
+  background: transparent image-url("sprite.svg") no-repeat 0 0;
   text-indent: -9999px;
   overflow: hidden;
 }
 
-.icon.search      { /* no-r2 */ background-position: 0 0; }
-.icon.donate      { /* no-r2 */ background-position: -20px 0; }
-.icon.zoomin      { /* no-r2 */ background-position: -40px 0; }
-.icon.zoomout     { /* no-r2 */ background-position: -60px 0; }
-.icon.geolocate   { /* no-r2 */ background-position: -80px 0; }
-.active .icon.geolocate   { /* no-r2 */ background-position: -80px -20px; }
-.icon.layers      { /* no-r2 */ background-position: -100px 0; }
-.icon.key         { /* no-r2 */ background-position: -120px 0; }
-.icon.share       { /* no-r2 */ background-position: -140px 0; }
-.icon.clipboard   { /* no-r2 */ background-position: -160px 0; }
-.icon.link        { /* no-r2 */ background-position: -180px 0; }
-.icon.close       { /* no-r2 */ background-position: -200px 0; }
-.icon.close:hover { /* no-r2 */ background-position: -200px -20px; }
-.icon.check       { /* no-r2 */ background-position: -220px 0; }
-.icon.note        { /* no-r2 */ background-position: -240px 0; }
-.icon.note.grey   { /* no-r2 */ background-position: -240px -20px; }
-.icon.query       { /* no-r2 */ background-position: -260px 0; }
+.icon.search      { /*rtl:ignore*/ background-position: 0 0; }
+.icon.donate      { /*rtl:ignore*/ background-position: -20px 0; }
+.icon.zoomin      { /*rtl:ignore*/ background-position: -40px 0; }
+.icon.zoomout     { /*rtl:ignore*/ background-position: -60px 0; }
+.icon.geolocate   { /*rtl:ignore*/ background-position: -80px 0; }
+.active .icon.geolocate   { /*rtl:ignore*/ background-position: -80px -20px; }
+.icon.layers      { /*rtl:ignore*/ background-position: -100px 0; }
+.icon.key         { /*rtl:ignore*/ background-position: -120px 0; }
+.icon.share       { /*rtl:ignore*/ background-position: -140px 0; }
+.icon.clipboard   { /*rtl:ignore*/ background-position: -160px 0; }
+.icon.link        { /*rtl:ignore*/ background-position: -180px 0; }
+.icon.close       { /*rtl:ignore*/ background-position: -200px 0; }
+.icon.close:hover { /*rtl:ignore*/ background-position: -200px -20px; }
+.icon.check       { /*rtl:ignore*/ background-position: -220px 0; }
+.icon.note        { /*rtl:ignore*/ background-position: -240px 0; }
+.icon.note.grey   { /*rtl:ignore*/ background-position: -240px -20px; }
+.icon.query       { /*rtl:ignore*/ background-position: -260px 0; }
 
 /* Utility for de-emphasizing content */
 
@@ -105,7 +76,9 @@ time[title] {
 
 #menu-icon {
   display: none;
-  float: right;
+  position: absolute;
+  top: 0;
+  right: 0;
   background: image-url("menu-icon.png") no-repeat;
   background-size: 30px 30px;
   width: 30px;
@@ -129,10 +102,6 @@ header {
     padding: $lineheight * 0.5;
   }
 
-  h1, nav.primary {
-    float: left;
-  }
-
   img.logo {
     margin-top: -2px;
   }
@@ -146,8 +115,11 @@ header {
   .btn {
     font-size: 14px;
   }
-}
 
+  nav.primary {
+    margin-right: auto;
+  }
+}
 
 nav.primary {
   & > .btn-group .btn-outline-primary {
@@ -182,9 +154,6 @@ nav.primary {
 }
 
 nav.secondary {
-  position: absolute;
-  right: 0;
-
   .nav-link {
     padding: 0.2rem;
     color: $darkgrey;
@@ -226,15 +195,8 @@ body.small-nav {
     display: block;
   }
 
-  nav.primary,
-  nav.secondary {
-    float: none !important;
-    position: relative;
-    display: block;
-    clear: both;
-  }
-
   header {
+    flex-direction: column;
     height: auto;
     min-height: $headerHeight;
     background: #fff;
@@ -255,28 +217,9 @@ body.small-nav {
   }
 
   nav.primary {
+    margin-right: 0;
     padding: 0;
 
-    ul, li {
-      border: none;
-      border-radius: 0;
-      width: 100%;
-    }
-
-    ul {
-      border-top: 1px solid #eee;
-      li {
-        border-bottom: 1px solid #eee;
-        border-right: none;
-        > a {
-          border-radius: 0;
-          width: 100%;
-          text-align: center;
-          font-size: 15px;
-        }
-      }
-    }
-
     .btn-group {
       width: 100%;
       padding: 10px;
@@ -615,16 +558,6 @@ header .search_forms,
   display: none;
 }
 
-/* Rules for the map key which appears in the popout sidebar */
-
-#mapkey {
- .mapkey-table-key img {
-    display: block;
-    margin-left: auto;
-    margin-right: auto;
-  }
-}
-
 /* Rules for search sidebar */
 
 #sidebar .search_results_entry {
@@ -708,17 +641,6 @@ tr.turn:hover {
     tr:last-child th, tr:last-child td {
       border-bottom: 0;
     }
-
-    .colour-preview-box {
-      width: 14px;
-      height: 14px;
-      // add color via inline css on element: background-color: <tag value>;
-    }
-  }
-
-  span.action-button:hover {
-    cursor: pointer;
-    text-decoration: underline;
   }
 
   .note-description {
@@ -753,6 +675,12 @@ tr.turn:hover {
   }
 }
 
+/* Force LTR/RTL alignment for placeholder text */
+
+.form-control::placeholder {
+  text-align: left;
+}
+
 /* Rules for export sidebar */
 
 .export_form {
@@ -775,11 +703,11 @@ tr.turn:hover {
     #maxlat { margin-top: -1px; }
     #minlon {
       float: left;
-      /* no-r2 */ margin-left: -1px;
+      /*rtl:ignore*/ margin-left: -1px;
     }
     #maxlon {
       float: right;
-      /* no-r2 */ margin-right: -1px;
+      /*rtl:ignore*/ margin-right: -1px;
     }
     #minlat { margin-bottom: -1px; }
   }
@@ -890,14 +818,11 @@ tr.turn:hover {
     height: 400px;
     display: none;
   }
-  .comments {
-    max-width: 740px;
+  .diary-comment .col-auto {
+    width: 62px;
   }
-  .diary-comment {
-    border-top: 1px dashed $grey;
-    &:first-child {
-      border-top: 1px solid $grey;
-    }
+  .diary-comment .col {
+    max-width: 690px;
   }
 }
 
@@ -961,10 +886,9 @@ img.user_thumbnail {
 }
 
 img.user_thumbnail_tiny {
-  width: auto;
-  height: auto;
-  max-width: 25px;
-  max-height: 25px;
+  width: 25px;
+  height: 25px;
+  object-fit: contain;
 }
 
 /* General styles for action lists / subnavs */
@@ -1044,7 +968,7 @@ div.secondary-actions {
   }
 
   .sprite.x {
-    /* no-r2 */ background-position: -50px 0;
+    /*rtl:ignore*/ background-position: -50px 0;
   }
 
   .sprite.term {
@@ -1053,27 +977,27 @@ div.secondary-actions {
   }
 
   .sprite.node {
-    /* no-r2 */ background-position: -100px 0;
+    /*rtl:ignore*/ background-position: -100px 0;
   }
 
   .sprite.way {
-    /* no-r2 */ background-position: -150px 0;
+    /*rtl:ignore*/ background-position: -150px 0;
   }
 
   .sprite.tag {
-    /* no-r2 */ background-position: -200px 0;
+    /*rtl:ignore*/ background-position: -200px 0;
   }
 
   .sprite.editor {
-    /* no-r2 */ background-position: -250px 0;
+    /*rtl:ignore*/ background-position: -250px 0;
   }
 
   .sprite.question {
-    /* no-r2 */ background-position: -300px 0;
+    /*rtl:ignore*/ background-position: -300px 0;
   }
 
   .sprite.rules {
-    /* no-r2 */ background-position: -350px 0;
+    /*rtl:ignore*/ background-position: -350px 0;
   }
 
   .icon.note {
@@ -1124,27 +1048,27 @@ div.secondary-actions {
     background: 40px 40px image-url('about/sprite.png') no-repeat;
 
     &.local {
-      /* no-r2 */
+      /*rtl:ignore*/
       background-position: 0px 0px;
     }
     &.community {
-      /* no-r2 */
+      /*rtl:ignore*/
       background-position: 0px -40px;
     }
     &.open {
-      /* no-r2 */
+      /*rtl:ignore*/
       background-position: 0px -80px;
     }
     &.partners {
-      /* no-r2 */
+      /*rtl:ignore*/
       background-position: 0px -120px;
     }
     &.infringement {
-      /* no-r2 */
+      /*rtl:ignore*/
       background-position: 0px -160px;
     }
     &.legal {
-      /* no-r2 */
+      /*rtl:ignore*/
       background-position: -45px -160px;
     }
   }
index 63da1293ff731ecfe85d0430f9c6f0f1819a2008..db972101088b2a958fa0f3ffe25798fec41f1bbf 100644 (file)
@@ -53,12 +53,16 @@ class AccountsController < ApplicationController
   end
 
   def destroy
-    current_user.soft_destroy!
+    if current_user.deletion_allowed?
+      current_user.soft_destroy!
 
-    session.delete(:user)
-    session_expires_automatically
+      session.delete(:user)
+      session_expires_automatically
 
-    flash[:notice] = t ".success"
-    redirect_to root_path
+      flash[:notice] = t ".success"
+      redirect_to root_path
+    else
+      head :bad_request
+    end
   end
 end
index 9bdf0f2bd3b075a5a5eb09e5755bfa76ee224bde..b4e864f187d4e76d3552186ec6e3e94631f4b528 100644 (file)
@@ -44,7 +44,7 @@ module Api
       cs.save_with_tags!
 
       # Subscribe user to changeset comments
-      cs.subscribers << current_user
+      cs.subscribe(current_user)
 
       render :plain => cs.id.to_s
     end
@@ -233,10 +233,10 @@ module Api
 
       # Find the changeset and check it is valid
       changeset = Changeset.find(id)
-      raise OSM::APIChangesetAlreadySubscribedError, changeset if changeset.subscribers.exists?(current_user.id)
+      raise OSM::APIChangesetAlreadySubscribedError, changeset if changeset.subscribed?(current_user)
 
       # Add the subscriber
-      changeset.subscribers << current_user
+      changeset.subscribe(current_user)
 
       # Return a copy of the updated changeset
       @changeset = changeset
@@ -259,10 +259,10 @@ module Api
 
       # Find the changeset and check it is valid
       changeset = Changeset.find(id)
-      raise OSM::APIChangesetNotSubscribedError, changeset unless changeset.subscribers.exists?(current_user.id)
+      raise OSM::APIChangesetNotSubscribedError, changeset unless changeset.subscribed?(current_user)
 
       # Remove the subscriber
-      changeset.subscribers.delete(current_user)
+      changeset.unsubscribe(current_user)
 
       # Return a copy of the updated changeset
       @changeset = changeset
@@ -283,7 +283,6 @@ module Api
     ##
     # if a bounding box was specified do some sanity checks.
     # restrict changesets to those enclosed by a bounding box
-    # we need to return both the changesets and the bounding box
     def conditions_bbox(changesets, bbox)
       if bbox
         bbox.check_boundaries
index 95466781f84c8bd97a8fef6c6bea1332d26f6388..8a0a82c40150687063fbf0720b5114c409c73725 100644 (file)
@@ -138,9 +138,6 @@ module Api
     ##
     # Add a comment to an existing note
     def comment
-      # Check the ACLs
-      raise OSM::APIAccessDenied if current_user.nil? && Acl.no_note_comment(request.remote_ip)
-
       # Check the arguments are sane
       raise OSM::APIBadUserInput, "No id was given" unless params[:id]
       raise OSM::APIBadUserInput, "No text was given" if params[:text].blank?
@@ -389,8 +386,14 @@ module Api
     def add_comment(note, text, event, notify: true)
       attributes = { :visible => true, :event => event, :body => text }
 
-      if current_user
-        attributes[:author_id] = current_user.id
+      if doorkeeper_token || current_token
+        author = current_user if scope_enabled?(:write_notes)
+      else
+        author = current_user
+      end
+
+      if author
+        attributes[:author_id] = author.id
       else
         attributes[:author_ip] = request.remote_ip
       end
index b66aead38e1506e3afe3390da38c28853ace81e6..956bcde6e82dccabb23e022919d0d87673e74ec3 100644 (file)
@@ -35,7 +35,7 @@ module Api
         trace = do_create(params[:file], tags, description, visibility)
 
         if trace.id
-          TraceImporterJob.perform_later(trace)
+          trace.schedule_import
           render :plain => trace.id.to_s
         elsif trace.valid?
           head :internal_server_error
@@ -66,7 +66,7 @@ module Api
       if trace.user == current_user
         trace.visible = false
         trace.save!
-        TraceDestroyerJob.perform_later(trace)
+        trace.schedule_destruction
 
         head :ok
       else
index 7e1b06a8dd3bbde8f7cc6c7bbc538e205e65937d..75db7f73bc757ff600bb59b0d9608c4ccdadaebd 100644 (file)
@@ -177,7 +177,7 @@ class ApiController < ApplicationController
   ##
   # wrap an api call in a timeout
   def api_call_timeout(&block)
-    Timeout.timeout(Settings.api_timeout, Timeout::Error, &block)
+    Timeout.timeout(Settings.api_timeout, &block)
   rescue ActionView::Template::Error => e
     e = e.cause
 
index c830d4bcd37bbce3177e80dd295cb4067bae8299..0a7df0994c9fc23f5c452ed2bb62dfc291b88aa6 100644 (file)
@@ -199,7 +199,7 @@ class ApplicationController < ActionController::Base
   ##
   # wrap a web page in a timeout
   def web_timeout(&block)
-    Timeout.timeout(Settings.web_timeout, Timeout::Error, &block)
+    Timeout.timeout(Settings.web_timeout, &block)
   rescue ActionView::Template::Error => e
     e = e.cause
 
index fef4d85eb51273596dfe81ccfc0cad88ba81c19f..5eb14629ae231a4f6fb4d62386edc14f9a15e827 100644 (file)
@@ -9,6 +9,7 @@ class ChangesetsController < ApplicationController
   before_action :authorize_web
   before_action :set_locale
   before_action -> { check_database_readable(:need_api => true) }, :only => [:index, :feed]
+  before_action :check_database_writable, :only => [:subscribe, :unsubscribe]
 
   authorize_resource
 
@@ -74,6 +75,34 @@ class ChangesetsController < ApplicationController
     index
   end
 
+  ##
+  # subscribe to a changeset
+  def subscribe
+    @changeset = Changeset.find(params[:id])
+
+    if request.post?
+      @changeset.subscribe(current_user) unless @changeset.subscribed?(current_user)
+
+      redirect_to changeset_path(@changeset)
+    end
+  rescue ActiveRecord::RecordNotFound
+    render :action => "no_such_entry", :status => :not_found
+  end
+
+  ##
+  # unsubscribe from a changeset
+  def unsubscribe
+    @changeset = Changeset.find(params[:id])
+
+    if request.post?
+      @changeset.unsubscribe(current_user)
+
+      redirect_to changeset_path(@changeset)
+    end
+  rescue ActiveRecord::RecordNotFound
+    render :action => "no_such_entry", :status => :not_found
+  end
+
   private
 
   #------------------------------------------------------------
@@ -83,7 +112,6 @@ class ChangesetsController < ApplicationController
   ##
   # if a bounding box was specified do some sanity checks.
   # restrict changesets to those enclosed by a bounding box
-  # we need to return both the changesets and the bounding box
   def conditions_bbox(changesets, bbox)
     if bbox
       bbox.check_boundaries
index fca851eeb1e7b113ca38b9afbad9541bea7bc116..cebe932fc9862fae21c1cfdb13d93ffa82b4cd46 100644 (file)
@@ -62,9 +62,10 @@ module SessionMethods
   ##
   #
   def unconfirmed_login(user)
-    session[:token] = user.tokens.create.token
+    session[:pending_user] = user.id
 
-    redirect_to :controller => "confirmations", :action => "confirm", :display_name => user.display_name
+    redirect_to :controller => "confirmations", :action => "confirm",
+                :display_name => user.display_name, :referer => session[:referer]
 
     session.delete(:remember_me)
     session.delete(:referer)
index eb7d389881eba94f5f8fad65dd197f94eaa9c92d..8cba09827225a31b8ba291dfb9cb41fb30baa38d 100644 (file)
@@ -51,7 +51,7 @@ module UserMethods
           flash[:notice] = t "accounts.update.success_confirm_needed"
 
           begin
-            UserMailer.email_confirm(user, user.tokens.create).deliver_later
+            UserMailer.email_confirm(user, user.generate_token_for(:new_email)).deliver_later
           rescue StandardError
             # Ignore errors sending email
           end
index 65f5605710a5726e9de02355368c5a976ea19e37..48b8dabf2d9ec770b460d8c3f8ee025a4958c892 100644 (file)
@@ -15,41 +15,37 @@ class ConfirmationsController < ApplicationController
 
   def confirm
     if request.post?
-      token = UserToken.find_by(:token => params[:confirm_string])
-      if token&.user&.active?
-        flash[:error] = t(".already active")
-        redirect_to login_path
-      elsif !token || token.expired?
+      token = params[:confirm_string]
+
+      user = User.find_by_token_for(:new_user, token) ||
+             UserToken.unexpired.find_by(:token => token)&.user
+
+      if !user
         flash[:error] = t(".unknown token")
         redirect_to :action => "confirm"
-      elsif !token.user.visible?
-        render_unknown_user token.user.display_name
+      elsif user.active?
+        flash[:error] = t(".already active")
+        redirect_to login_path
+      elsif !user.visible?
+        render_unknown_user user.display_name
       else
-        user = token.user
         user.activate
         user.email_valid = true
         flash[:notice] = gravatar_status_message(user) if gravatar_enable(user)
         user.save!
-        referer = safe_referer(token.referer) if token.referer
-        token.destroy
+        referer = safe_referer(params[:referer]) if params[:referer]
+        UserToken.delete_by(:token => token)
 
-        if session[:token]
-          token = UserToken.find_by(:token => session[:token])
-          session.delete(:token)
-        else
-          token = nil
-        end
-
-        if token.nil? || token.user != user
-          flash[:notice] = t(".success")
-          redirect_to login_path(:referer => referer)
-        else
-          token.destroy
+        pending_user = session.delete(:pending_user)
 
+        if user.id == pending_user
           session[:user] = user.id
           session[:fingerprint] = user.fingerprint
 
           redirect_to referer || welcome_path
+        else
+          flash[:notice] = t(".success")
+          redirect_to login_path(:referer => referer)
         end
       end
     else
@@ -61,12 +57,11 @@ class ConfirmationsController < ApplicationController
 
   def confirm_resend
     user = User.visible.find_by(:display_name => params[:display_name])
-    token = UserToken.find_by(:token => session[:token])
 
-    if user.nil? || token.nil? || token.user != user
+    if user.nil? || user.id != session[:pending_user]
       flash[:error] = t ".failure", :name => params[:display_name]
     else
-      UserMailer.signup_confirm(user, user.tokens.create).deliver_later
+      UserMailer.signup_confirm(user, user.generate_token_for(:new_user)).deliver_later
       flash[:notice] = { :partial => "confirmations/resend_success_flash", :locals => { :email => user.email, :sender => Settings.email_from } }
     end
 
@@ -75,9 +70,12 @@ class ConfirmationsController < ApplicationController
 
   def confirm_email
     if request.post?
-      token = UserToken.find_by(:token => params[:confirm_string])
-      if token&.user&.new_email?
-        self.current_user = token.user
+      token = params[:confirm_string]
+
+      self.current_user = User.find_by_token_for(:new_email, token) ||
+                          UserToken.unexpired.find_by(:token => params[:confirm_string])&.user
+
+      if current_user&.new_email?
         current_user.email = current_user.new_email
         current_user.new_email = nil
         current_user.email_valid = true
@@ -94,7 +92,7 @@ class ConfirmationsController < ApplicationController
         current_user.tokens.delete_all
         session[:user] = current_user.id
         session[:fingerprint] = current_user.fingerprint
-      elsif token
+      elsif current_user
         flash[:error] = t ".failure"
       else
         flash[:error] = t ".unknown_token"
index 6db32797adffe5c582a381f8000781ae4090e97e..1a3d648f460a4f089ca362ac00c9ac88efc7915e 100644 (file)
@@ -47,6 +47,8 @@ class DiaryEntriesController < ApplicationController
         @title = t ".in_language_title", :language => Language.find(params[:language]).english_name
         entries = entries.where(:language_code => params[:language])
       else
+        candidate_codes = preferred_languages.flat_map(&:candidates).uniq.map(&:to_s)
+        @languages = Language.where(:code => candidate_codes).in_order_of(:code, candidate_codes)
         @title = t ".title"
       end
     end
@@ -155,21 +157,25 @@ class DiaryEntriesController < ApplicationController
   end
 
   def subscribe
-    diary_entry = DiaryEntry.find(params[:id])
+    @diary_entry = DiaryEntry.find(params[:id])
 
-    diary_entry.subscriptions.create(:user => current_user) unless diary_entry.subscribers.exists?(current_user.id)
+    if request.post?
+      @diary_entry.subscriptions.create(:user => current_user) unless @diary_entry.subscribers.exists?(current_user.id)
 
-    redirect_to diary_entry_path(diary_entry.user, diary_entry)
+      redirect_to diary_entry_path(@diary_entry.user, @diary_entry)
+    end
   rescue ActiveRecord::RecordNotFound
     render :action => "no_such_entry", :status => :not_found
   end
 
   def unsubscribe
-    diary_entry = DiaryEntry.find(params[:id])
+    @diary_entry = DiaryEntry.find(params[:id])
 
-    diary_entry.subscriptions.where(:user => current_user).delete_all if diary_entry.subscribers.exists?(current_user.id)
+    if request.post?
+      @diary_entry.subscriptions.where(:user => current_user).delete_all if @diary_entry.subscribers.exists?(current_user.id)
 
-    redirect_to diary_entry_path(diary_entry.user, diary_entry)
+      redirect_to diary_entry_path(@diary_entry.user, @diary_entry)
+    end
   rescue ActiveRecord::RecordNotFound
     render :action => "no_such_entry", :status => :not_found
   end
index adb53b43ba3842d8cd0b3faf5aaa898abde4b213..2ca86fc028dca2dbe9af4c0a8ec14b71665c3ca9 100644 (file)
@@ -47,7 +47,7 @@ class MessagesController < ApplicationController
       render :action => "new"
     elsif @message.save
       flash[:notice] = t ".message_sent"
-      UserMailer.message_notification(@message).deliver_later
+      UserMailer.message_notification(@message).deliver_later if @message.notify_recipient?
       redirect_to :action => :inbox
     else
       @title = t "messages.new.title"
@@ -107,6 +107,13 @@ class MessagesController < ApplicationController
     @title = t ".title"
   end
 
+  # Display the list of muted messages received by the user.
+  def muted
+    @title = t ".title"
+
+    redirect_to inbox_messages_path if current_user.muted_messages.none?
+  end
+
   # Set the message as being read or unread.
   def mark
     @message = Message.where(:recipient => current_user).or(Message.where(:sender => current_user)).find(params[:message_id])
@@ -127,6 +134,23 @@ class MessagesController < ApplicationController
     render :action => "no_such_message", :status => :not_found
   end
 
+  # Moves message into Inbox by unsetting the muted-flag
+  def unmute
+    message = current_user.muted_messages.find(params[:message_id])
+
+    if message.unmute
+      flash[:notice] = t(".notice")
+    else
+      flash[:error] = t(".error")
+    end
+
+    if current_user.muted_messages.none?
+      redirect_to inbox_messages_path
+    else
+      redirect_to muted_messages_path
+    end
+  end
+
   private
 
   ##
index 44dacde6d72a4ce3a19eb7732eedea58d7c13f7d..42b0921f1f62eedfa6c162cc6b0de5ea613e13fd 100644 (file)
@@ -19,7 +19,12 @@ class OauthClientsController < ApplicationController
   end
 
   def new
-    @client_application = ClientApplication.new
+    if Settings.oauth_10_registration
+      @client_application = ClientApplication.new
+    else
+      flash[:error] = t ".disabled"
+      redirect_to :action => "index"
+    end
   end
 
   def edit
diff --git a/app/controllers/old_nodes_controller.rb b/app/controllers/old_nodes_controller.rb
new file mode 100644 (file)
index 0000000..a5b9cf5
--- /dev/null
@@ -0,0 +1,19 @@
+class OldNodesController < ApplicationController
+  layout :map_layout
+
+  before_action :authorize_web
+  before_action :set_locale
+  before_action -> { check_database_readable(:need_api => true) }
+  before_action :require_oauth
+
+  authorize_resource
+
+  around_action :web_timeout
+
+  def show
+    @type = "node"
+    @feature = OldNode.preload(:old_tags, :changeset => [:changeset_tags, :user]).find([params[:id], params[:version]])
+  rescue ActiveRecord::RecordNotFound
+    render :action => "not_found", :status => :not_found
+  end
+end
diff --git a/app/controllers/old_relations_controller.rb b/app/controllers/old_relations_controller.rb
new file mode 100644 (file)
index 0000000..9dda820
--- /dev/null
@@ -0,0 +1,19 @@
+class OldRelationsController < ApplicationController
+  layout :map_layout
+
+  before_action :authorize_web
+  before_action :set_locale
+  before_action -> { check_database_readable(:need_api => true) }
+  before_action :require_oauth
+
+  authorize_resource
+
+  around_action :web_timeout
+
+  def show
+    @type = "relation"
+    @feature = OldRelation.preload(:old_tags, :changeset => [:changeset_tags, :user], :old_members => :member).find([params[:id], params[:version]])
+  rescue ActiveRecord::RecordNotFound
+    render :action => "not_found", :status => :not_found
+  end
+end
diff --git a/app/controllers/old_ways_controller.rb b/app/controllers/old_ways_controller.rb
new file mode 100644 (file)
index 0000000..d18121e
--- /dev/null
@@ -0,0 +1,19 @@
+class OldWaysController < ApplicationController
+  layout :map_layout
+
+  before_action :authorize_web
+  before_action :set_locale
+  before_action -> { check_database_readable(:need_api => true) }
+  before_action :require_oauth
+
+  authorize_resource
+
+  around_action :web_timeout
+
+  def show
+    @type = "way"
+    @feature = OldWay.preload(:old_tags, :changeset => [:changeset_tags, :user], :old_nodes => { :node => [:node_tags, :ways] }).find([params[:id], params[:version]])
+  rescue ActiveRecord::RecordNotFound
+    render :action => "not_found", :status => :not_found
+  end
+end
index 08df9f7a4bbeed964c17af62ccc7c4a5263c5cfb..8025fd700977d35f82ba267c2dd9136dee2d80a4 100644 (file)
@@ -9,40 +9,54 @@ class PasswordsController < ApplicationController
 
   authorize_resource :class => false
 
-  before_action :check_database_writable, :only => [:lost_password, :reset_password]
+  before_action :check_database_writable
 
-  def lost_password
+  def new
     @title = t ".title"
+  end
 
-    if request.post?
-      user = User.visible.find_by(:email => params[:email])
-
-      if user.nil?
-        users = User.visible.where("LOWER(email) = LOWER(?)", params[:email])
+  def edit
+    @title = t ".title"
 
-        user = users.first if users.count == 1
-      end
+    if params[:token]
+      self.current_user = User.find_by_token_for(:password_reset, params[:token]) ||
+                          UserToken.unexpired.find_by(:token => params[:token])&.user
 
-      if user
-        token = user.tokens.create
-        UserMailer.lost_password(user, token).deliver_later
-        flash[:notice] = t ".notice email on way"
-        redirect_to login_path
-      else
-        flash.now[:error] = t ".notice email cannot find"
+      if current_user.nil?
+        flash[:error] = t ".flash token bad"
+        redirect_to :action => "new"
       end
+    else
+      head :bad_request
     end
   end
 
-  def reset_password
-    @title = t ".title"
+  def create
+    user = User.visible.find_by(:email => params[:email])
 
-    if params[:token]
-      token = UserToken.find_by(:token => params[:token])
+    if user.nil?
+      users = User.visible.where("LOWER(email) = LOWER(?)", params[:email])
 
-      if token
-        self.current_user = token.user
+      user = users.first if users.count == 1
+    end
+
+    if user
+      token = user.generate_token_for(:password_reset)
+      UserMailer.lost_password(user, token).deliver_later
+      flash[:notice] = t ".notice email on way"
+      redirect_to login_path
+    else
+      flash.now[:error] = t ".notice email cannot find"
+      render :new
+    end
+  end
+
+  def update
+    if params[:token]
+      self.current_user = User.find_by_token_for(:password_reset, params[:token]) ||
+                          UserToken.unexpired.find_by(:token => params[:token])&.user
 
+      if current_user
         if params[:user]
           current_user.pass_crypt = params[:user][:pass_crypt]
           current_user.pass_crypt_confirmation = params[:user][:pass_crypt_confirmation]
@@ -50,15 +64,17 @@ class PasswordsController < ApplicationController
           current_user.email_valid = true
 
           if current_user.save
-            token.destroy
+            UserToken.delete_by(:token => params[:token])
             session[:fingerprint] = current_user.fingerprint
             flash[:notice] = t ".flash changed"
             successful_login(current_user)
+          else
+            render :edit
           end
         end
       else
         flash[:error] = t ".flash token bad"
-        redirect_to :action => "lost_password"
+        redirect_to :action => "new"
       end
     else
       head :bad_request
index ba2858ce4392f8fda4745ad90f5f27af7c90f4dd..e57ffc06aac0617b65100bc5fe1dab3b9ecbda2e 100644 (file)
@@ -20,19 +20,14 @@ class SessionsController < ApplicationController
   def create
     session[:remember_me] ||= params[:remember_me]
     session[:referer] = safe_referer(params[:referer]) if params[:referer]
-    password_authentication(params[:username], params[:password])
+    password_authentication(params[:username].strip, params[:password])
   end
 
   def destroy
     @title = t ".title"
 
     if request.post?
-      if session[:token]
-        token = UserToken.find_by(:token => session[:token])
-        token&.destroy
-        session.delete(:token)
-      end
-
+      session.delete(:pending_user)
       session.delete(:user)
       session_expires_automatically
 
index 5fb8aa111183455586693a2f601024e40e674d55..3d830c63f7fab352aa47b893a7c3fdfa0d9a9e07 100644 (file)
@@ -48,6 +48,15 @@ class SiteController < ApplicationController
 
   def key
     expires_in 7.days, :public => true
+    @key = YAML.load_file(Rails.root.join("config/key.yml"))
+    @key.each_value do |layer_data|
+      layer_data.each do |entry|
+        entry["name"] = Array(entry["name"])
+      end
+      layer_data.each_cons(2) do |entry, next_entry|
+        entry["max_zoom"] = next_entry["min_zoom"] - 1 if entry["name"] == next_entry["name"] && !entry["max_zoom"] && next_entry["min_zoom"]
+      end
+    end
     render :layout => false
   end
 
index 242f8113c2783430b8b67cffadc34b0b71e95ac1..df6337147566538b89d9fa7b3c76f36b127ce182 100644 (file)
@@ -126,7 +126,7 @@ class TracesController < ApplicationController
         flash[:notice] = t ".trace_uploaded"
         flash[:warning] = t ".traces_waiting", :count => current_user.traces.where(:inserted => false).count if current_user.traces.where(:inserted => false).count > 4
 
-        TraceImporterJob.perform_later(@trace)
+        @trace.schedule_import
         redirect_to :action => :index, :display_name => current_user.display_name
       else
         flash[:error] = t(".upload_failed") if @trace.valid?
@@ -176,7 +176,7 @@ class TracesController < ApplicationController
       trace.visible = false
       trace.save
       flash[:notice] = t ".scheduled_for_deletion"
-      TraceDestroyerJob.perform_later(trace)
+      trace.schedule_destruction
       redirect_to :action => :index, :display_name => trace.user.display_name
     end
   rescue ActiveRecord::RecordNotFound
index 546c8233c65a4d5f4eeb42d97cc76dc0558c1d28..07d0bc43c0bf2e64138a24ad2b0af41cbcf9bb2b 100644 (file)
@@ -8,11 +8,11 @@ class UserBlocksController < ApplicationController
 
   authorize_resource
 
-  before_action :lookup_user, :only => [:new, :create, :blocks_on, :blocks_by]
+  before_action :lookup_user, :only => [:new, :create, :revoke_all, :blocks_on, :blocks_by]
   before_action :lookup_user_block, :only => [:show, :edit, :update, :revoke]
   before_action :require_valid_params, :only => [:create, :update]
   before_action :check_database_readable
-  before_action :check_database_writable, :only => [:create, :update, :revoke]
+  before_action :check_database_writable, :only => [:create, :update, :revoke, :revoke_all]
 
   def index
     @params = params.permit
@@ -39,11 +39,13 @@ class UserBlocksController < ApplicationController
 
   def create
     if @valid_params
+      now = Time.now.utc
       @user_block = UserBlock.new(
         :user => @user,
         :creator => current_user,
         :reason => params[:user_block][:reason],
-        :ends_at => Time.now.utc + @block_period.hours,
+        :created_at => now,
+        :ends_at => now + @block_period.hours,
         :needs_view => params[:user_block][:needs_view]
       )
 
@@ -87,6 +89,16 @@ class UserBlocksController < ApplicationController
     end
   end
 
+  ##
+  # revokes all active blocks
+  def revoke_all
+    if request.post? && params[:confirm]
+      @user.blocks.active.each { |block| block.revoke!(current_user) }
+      flash[:notice] = t ".flash"
+      redirect_to user_blocks_on_path(@user)
+    end
+  end
+
   ##
   # shows a list of all the blocks on the given user
   def blocks_on
diff --git a/app/controllers/user_mutes_controller.rb b/app/controllers/user_mutes_controller.rb
new file mode 100644 (file)
index 0000000..2068ab6
--- /dev/null
@@ -0,0 +1,45 @@
+class UserMutesController < ApplicationController
+  include UserMethods
+
+  layout "site"
+
+  before_action :authorize_web
+  before_action :set_locale
+
+  authorize_resource
+
+  before_action :lookup_user, :only => [:create, :destroy]
+  before_action :check_database_readable
+  before_action :check_database_writable, :only => [:create, :destroy]
+
+  def index
+    @muted_users = current_user.muted_users
+    @title = t ".title"
+
+    redirect_to edit_account_path unless @muted_users.any?
+  end
+
+  def create
+    user_mute = current_user.mutes.build(:subject => @user)
+
+    if user_mute.save
+      flash[:notice] = t(".notice", :name => user_mute.subject.display_name)
+    else
+      flash[:error] = t(".error", :name => user_mute.subject.display_name, :full_message => user_mute.errors.full_messages.to_sentence.humanize)
+    end
+
+    redirect_back_or_to user_mutes_path(current_user)
+  end
+
+  def destroy
+    user_mute = current_user.mutes.find_by!(:subject => @user)
+
+    if user_mute.destroy
+      flash[:notice] = t(".notice", :name => user_mute.subject.display_name)
+    else
+      flash[:error] = t(".error")
+    end
+
+    redirect_back_or_to user_mutes_path(current_user)
+  end
+end
index 36c9f4e2288f06185726045826ae82ed9d927bb0..fbf49ecbe6835cb1ba99ce52193d96c2f835a8e3 100644 (file)
@@ -104,11 +104,11 @@ class UsersController < ApplicationController
         render :action => "new"
       elsif current_user.auth_provider.present?
         # Verify external authenticator before moving on
-        session[:new_user] = current_user.attributes.slice("email", "display_name", "pass_crypt")
+        session[:new_user] = current_user.slice("email", "display_name", "pass_crypt", "pass_crypt_confirmation")
         redirect_to auth_url(current_user.auth_provider, current_user.auth_uid), :status => :temporary_redirect
       else
         # Save the user record
-        session[:new_user] = current_user.attributes.slice("email", "display_name", "pass_crypt")
+        session[:new_user] = current_user.slice("email", "display_name", "pass_crypt", "pass_crypt_confirmation")
         redirect_to :action => :terms
       end
     end
@@ -197,26 +197,14 @@ class UsersController < ApplicationController
 
           flash[:matomo_goal] = Settings.matomo["goals"]["signup"] if defined?(Settings.matomo)
 
-          referer = welcome_path
-
-          begin
-            uri = URI(session[:referer])
-            %r{map=(.*)/(.*)/(.*)}.match(uri.fragment) do |m|
-              editor = Rack::Utils.parse_query(uri.query).slice("editor")
-              referer = welcome_path({ "zoom" => m[1],
-                                       "lat" => m[2],
-                                       "lon" => m[3] }.merge(editor))
-            end
-          rescue StandardError
-            # Use default
-          end
+          referer = welcome_path(welcome_options)
 
           if current_user.status == "active"
             session[:referer] = referer
             successful_login(current_user)
           else
-            session[:token] = current_user.tokens.create.token
-            UserMailer.signup_confirm(current_user, current_user.tokens.create(:referer => referer)).deliver_later
+            session[:pending_user] = current_user.id
+            UserMailer.signup_confirm(current_user, current_user.generate_token_for(:new_user), referer).deliver_later
             redirect_to :controller => :confirmations, :action => :confirm, :display_name => current_user.display_name
           end
         else
@@ -259,7 +247,7 @@ class UsersController < ApplicationController
                      when "openid"
                        uid.match(%r{https://www.google.com/accounts/o8/id?(.*)}) ||
                        uid.match(%r{https://me.yahoo.com/(.*)})
-                     when "google", "facebook", "microsoft"
+                     when "google", "facebook", "microsoft", "github", "wikipedia"
                        true
                      else
                        false
@@ -321,6 +309,21 @@ class UsersController < ApplicationController
 
   private
 
+  def welcome_options
+    uri = URI(session[:referer]) if session[:referer].present?
+
+    return { "oauth_return_url" => uri&.to_s } if uri&.path == oauth_authorization_path
+
+    begin
+      %r{map=(.*)/(.*)/(.*)}.match(uri.fragment) do |m|
+        editor = Rack::Utils.parse_query(uri.query).slice("editor")
+        return { "zoom" => m[1], "lat" => m[2], "lon" => m[3] }.merge(editor)
+      end
+    rescue StandardError
+      # Use default
+    end
+  end
+
   ##
   # ensure that there is a "user" instance variable
   def lookup_user_by_name
@@ -352,6 +355,8 @@ class UsersController < ApplicationController
                    domain_mx_servers(domain)
                  end
 
+    return true if Acl.allow_account_creation(request.remote_ip, :domain => domain, :mx => mx_servers)
+
     blocked = Acl.no_account_creation(request.remote_ip, :domain => domain, :mx => mx_servers)
 
     blocked ||= SIGNUP_IP_LIMITER && !SIGNUP_IP_LIMITER.allow?(request.remote_ip)
diff --git a/app/helpers/authorization_helper.rb b/app/helpers/authorization_helper.rb
new file mode 100644 (file)
index 0000000..11c8c29
--- /dev/null
@@ -0,0 +1,13 @@
+module AuthorizationHelper
+  include ActionView::Helpers::TranslationHelper
+
+  def authorization_scope(scope)
+    html = []
+    html << t("oauth.scopes.#{scope}")
+    if Oauth::MODERATOR_SCOPES.include? scope
+      html << " "
+      html << image_tag("roles/moderator.png", :srcset => image_path("roles/moderator.svg", :class => "align-text-bottom"), :size => "20x20")
+    end
+    safe_join(html)
+  end
+end
index be32737a4e090e8b750c81ab333871101730e34b..67b3c7cf77fcdb2ed07b1d23a02babdcf513c47e 100644 (file)
@@ -1,12 +1,25 @@
 module BrowseHelper
-  def printable_name(object, version: false)
+  def element_single_current_link(type, object, url)
+    link_to url, { :class => element_class(type, object), :title => element_title(object), :rel => (link_follow(object) if type == "node") } do
+      element_strikethrough object do
+        printable_element_name object
+      end
+    end
+  end
+
+  def element_list_item(type, object, &block)
+    tag.li :class => element_class(type, object), :title => element_title(object) do
+      element_strikethrough object, &block
+    end
+  end
+
+  def printable_element_name(object)
     id = if object.id.is_a?(Array)
            object.id[0]
          else
            object.id
          end
-    name = t "printable_name.with_id", :id => id.to_s
-    name = t "printable_name.with_version", :id => name, :version => object.version.to_s if version
+    name = id.to_s
 
     # don't look at object tags if redacted, so as to avoid giving
     # away redacted version tag information.
@@ -27,20 +40,25 @@ module BrowseHelper
     name
   end
 
-  def link_class(type, object)
-    classes = [type]
+  def printable_element_version(object)
+    t "printable_name.version", :version => object.version
+  end
 
-    if object.redacted?
-      classes << "deleted"
+  def element_strikethrough(object, &block)
+    if object.redacted? || !object.visible?
+      tag.s(&block)
     else
-      classes += icon_tags(object).flatten.map { |t| h(t) }
-      classes << "deleted" unless object.visible?
+      yield
     end
+  end
 
+  def element_class(type, object)
+    classes = [type]
+    classes += icon_tags(object).flatten.map { |t| h(t) } unless object.redacted?
     classes.join(" ")
   end
 
-  def link_title(object)
+  def element_title(object)
     if object.redacted?
       ""
     else
index 014b8262d050b947de09416b15a8020191f0bb26..bbe4c63b14722793db32e963bb0d5449686695de 100644 (file)
@@ -1,7 +1,7 @@
 module BrowseTagsHelper
   # https://wiki.openstreetmap.org/wiki/Key:wikipedia#Secondary_Wikipedia_links
   # https://wiki.openstreetmap.org/wiki/Key:wikidata#Secondary_Wikidata_links
-  SECONDARY_WIKI_PREFIXES = "architect|artist|brand|flag|genus|name:etymology|network|operator|species|subject".freeze
+  SECONDARY_WIKI_PREFIXES = "architect|artist|brand|buried|flag|genus|name:etymology|network|operator|species|subject".freeze
 
   def format_key(key)
     if url = wiki_link("key", key)
@@ -34,9 +34,13 @@ module BrowseTagsHelper
       end
       safe_join(phones, "; ")
     elsif colour_value = colour_preview(key, value)
-      tag.span("", :class => "colour-preview-box float-end m-1 border border-dark border-opacity-10", :"data-colour" => colour_value, :title => t("browse.tag_details.colour_preview", :colour_value => colour_value)) + colour_value
+      svg = tag.svg :width => 14, :height => 14, :class => "float-end m-1" do
+        concat tag.title t("browse.tag_details.colour_preview", :colour_value => colour_value)
+        concat tag.rect :x => 0.5, :y => 0.5, :width => 13, :height => 13, :fill => colour_value, :stroke => "#2222"
+      end
+      svg + colour_value
     else
-      safe_join(value.split(";").map { |x| linkify(h(x)) }, ";")
+      safe_join(value.split(";", -1).map { |x| linkify(h(x)) }, ";")
     end
   end
 
diff --git a/app/helpers/svg_helper.rb b/app/helpers/svg_helper.rb
new file mode 100644 (file)
index 0000000..62b39bf
--- /dev/null
@@ -0,0 +1,59 @@
+module SvgHelper
+  def previous_page_svg_tag(**options)
+    adjacent_page_svg_tag(dir == "rtl" ? 1 : -1, **options)
+  end
+
+  def next_page_svg_tag(**options)
+    adjacent_page_svg_tag(dir == "rtl" ? -1 : 1, **options)
+  end
+
+  def key_svg_tag(**options)
+    border_width = options["border"] ? (options["border-width"] || 1) : 0
+    rect_attrs = {
+      :width => "100%",
+      :height => "100%",
+      :fill => options["fill"] || "none"
+    }
+    if border_width.positive?
+      rect_attrs[:x] = rect_attrs[:y] = format("%g", 0.5 * border_width)
+      rect_attrs[:width] = options["width"] - border_width
+      rect_attrs[:height] = options["height"] - border_width
+    end
+    svg_attrs = options.slice("width", "height", "opacity", :class)
+
+    tag.svg(**svg_attrs) do
+      horizontal = "H#{options['width']}"
+      concat tag.rect(**rect_attrs, **stroke_attrs(options, "border")) if options["fill"] || options["border"]
+      if options["line"]
+        y_middle = format("%g", 0.5 * options["height"])
+        concat tag.path(:d => "M0,#{y_middle} #{horizontal}", **stroke_attrs(options, "line"))
+      end
+      if options["casing"]
+        casing_width = options["casing-width"] || 1
+        y_top = format("%g", 0.5 * casing_width)
+        y_bottom = format("%g", options["height"] - (0.5 * casing_width))
+        concat tag.path(:d => "M0,#{y_top} #{horizontal} M0,#{y_bottom} #{horizontal}", **stroke_attrs(options, "casing"))
+      end
+    end
+  end
+
+  private
+
+  # returns "<" shape if side == -1; ">" if side == 1
+  def adjacent_page_svg_tag(side, **options)
+    count = options[:count] || 1
+    height = options[:height] || 15
+    pad = 2
+    segment = (0.5 * height) - pad
+    width = (segment + (2 * count * pad)).ceil
+    angled_line_data = "l#{side * segment},#{segment} l#{-side * segment},#{segment}"
+    path_data = Array.new(count) { |i| "M#{side * ((2 * i) + 1) * pad},#{pad} #{angled_line_data}" }.join(" ")
+    path_tag = tag.path :d => path_data, :fill => "none", :stroke => "currentColor", :"stroke-width" => 1.5
+    view_box = "#{-width} 0 #{width} #{height}" if side.negative?
+    tag.svg path_tag, :width => width, :height => height, :viewBox => view_box, :class => options[:class]
+  end
+
+  def stroke_attrs(attrs, prefix)
+    attrs.select { |key| key.start_with?(prefix) }.transform_keys { |key| key.delete_prefix(prefix).prepend("stroke") }
+  end
+end
index 89f8dfdbf781e66bb20533f2de5db71112e3ff85..33abc66f9102f7fcf5a62c299d34a8ce5a019f24 100644 (file)
@@ -10,11 +10,12 @@ class UserMailer < ApplicationMailer
   before_action :set_shared_template_vars
   before_action :attach_project_logo
 
-  def signup_confirm(user, token)
+  def signup_confirm(user, token, referer = nil)
     with_recipient_locale user do
       @url = url_for(:controller => "confirmations", :action => "confirm",
                      :display_name => user.display_name,
-                     :confirm_string => token.token)
+                     :confirm_string => token,
+                     :referer => referer)
 
       mail :to => user.email,
            :subject => t(".subject")
@@ -25,7 +26,7 @@ class UserMailer < ApplicationMailer
     with_recipient_locale user do
       @address = user.new_email
       @url = url_for(:controller => "confirmations", :action => "confirm_email",
-                     :confirm_string => token.token)
+                     :confirm_string => token)
 
       mail :to => user.new_email,
            :subject => t(".subject")
@@ -34,8 +35,7 @@ class UserMailer < ApplicationMailer
 
   def lost_password(user, token)
     with_recipient_locale user do
-      @url = url_for(:controller => "passwords", :action => "reset_password",
-                     :token => token.token)
+      @url = user_reset_password_url(:token => token)
 
       mail :to => user.email,
            :subject => t(".subject")
@@ -45,11 +45,13 @@ class UserMailer < ApplicationMailer
   def gpx_success(trace, possible_points)
     with_recipient_locale trace.user do
       @to_user = trace.user.display_name
+      @trace_url = show_trace_url(trace.user, trace)
       @trace_name = trace.name
       @trace_points = trace.size
       @trace_description = trace.description
       @trace_tags = trace.tags
       @possible_points = possible_points
+      @my_traces_url = url_for(:controller => "traces", :action => "mine")
 
       mail :to => trace.user.email,
            :subject => t(".subject")
@@ -96,12 +98,21 @@ class UserMailer < ApplicationMailer
       @readurl = diary_entry_url(comment.diary_entry.user, comment.diary_entry, :anchor => "comment#{comment.id}")
       @commenturl = diary_entry_url(comment.diary_entry.user, comment.diary_entry, :anchor => "newcomment")
       @replyurl = new_message_url(comment.user, :message => { :title => "Re: #{comment.diary_entry.title}" })
+      @unsubscribeurl = diary_entry_unsubscribe_url(comment.diary_entry.user, comment.diary_entry)
       @author = @from_user
 
       attach_user_avatar(comment.user)
 
       set_references("diary", comment.diary_entry)
 
+      set_list_headers(
+        "#{comment.diary_entry.id}.diary.www.openstreetmap.org",
+        t(".description", :id => comment.diary_entry.id),
+        :archive => @readurl,
+        :subscribe => diary_entry_subscribe_url(comment.diary_entry.user, comment.diary_entry),
+        :unsubscribe => @unsubscribeurl
+      )
+
       mail :from => from_address(comment.user.display_name, "c", comment.id, comment.notification_token(recipient.id), recipient.id),
            :to => recipient.email,
            :subject => t(".subject", :user => comment.user.display_name)
@@ -140,6 +151,12 @@ class UserMailer < ApplicationMailer
 
       set_references("note", comment.note)
 
+      set_list_headers(
+        "#{comment.note.id}.note.www.openstreetmap.org",
+        t(".description", :id => comment.note.id),
+        :archive => @noteurl
+      )
+
       subject = if @owner
                   t(".#{@event}.subject_own", :commenter => @commenter)
                 else
@@ -160,6 +177,7 @@ class UserMailer < ApplicationMailer
       @changeset_comment = comment.changeset.tags["comment"].presence
       @time = comment.created_at
       @changeset_author = comment.changeset.user.display_name
+      @unsubscribe_url = changeset_unsubscribe_url(comment.changeset)
       @author = @commenter
 
       subject = if @owner
@@ -172,6 +190,14 @@ class UserMailer < ApplicationMailer
 
       set_references("changeset", comment.changeset)
 
+      set_list_headers(
+        "#{comment.changeset.id}.changeset.www.openstreetmap.org",
+        t(".description", :id => comment.changeset.id),
+        :subscribe => changeset_subscribe_url(comment.changeset),
+        :unsubscribe => @unsubscribe_url,
+        :archive => @changeset_url
+      )
+
       mail :to => recipient.email, :subject => subject
     end
   end
@@ -244,4 +270,11 @@ class UserMailer < ApplicationMailer
     headers["In-Reply-To"] = ref
     headers["References"] = ref
   end
+
+  def set_list_headers(id, description, options = {})
+    headers["List-ID"] = "#{description} <#{id}>"
+    headers["List-Archive"] = "<#{options[:archive]}>" if options[:archive]
+    headers["List-Subscribe"] = "<#{options[:subscribe]}>" if options[:subscribe]
+    headers["List-Unsubscribe"] = "<#{options[:unsubscribe]}>" if options[:unsubscribe]
+  end
 end
index a65c3a35ad68977fe1a1da5f6296c280006145a0..aa503f40c539647dfb9d66aea990b57e6f8c76c6 100644 (file)
@@ -41,6 +41,10 @@ class Acl < ApplicationRecord
     match(address, options).exists?(:k => "no_account_creation")
   end
 
+  def self.allow_account_creation(address, options = {})
+    match(address, options).exists?(:k => "allow_account_creation")
+  end
+
   def self.no_note_comment(address, domain = nil)
     match(address, :domain => domain).exists?(:k => "no_note_comment")
   end
index ce09438245844be0ff4ba241818973cdf26b5bab..abb494de64af3333a761431d2191d9b92afa9759 100644 (file)
 #
 # Indexes
 #
-#  changesets_bbox_idx                (min_lat,max_lat,min_lon,max_lon) USING gist
-#  changesets_closed_at_idx           (closed_at)
-#  changesets_created_at_idx          (created_at)
-#  changesets_user_id_created_at_idx  (user_id,created_at)
-#  changesets_user_id_id_idx          (user_id,id)
+#  changesets_bbox_idx                        (min_lat,max_lat,min_lon,max_lon) USING gist
+#  changesets_closed_at_idx                   (closed_at)
+#  changesets_created_at_idx                  (created_at)
+#  changesets_user_id_created_at_idx          (user_id,created_at)
+#  changesets_user_id_id_idx                  (user_id,id)
+#  index_changesets_on_user_id_and_closed_at  (user_id,closed_at)
 #
 # Foreign Keys
 #
@@ -71,7 +72,7 @@ class Changeset < ApplicationRecord
     # note that this may not be a hard limit - due to timing changes and
     # concurrency it is possible that some changesets may be slightly
     # longer than strictly allowed or have slightly more changes in them.
-    ((closed_at > Time.now.utc) && (num_changes <= MAX_ELEMENTS))
+    (closed_at > Time.now.utc) && (num_changes <= MAX_ELEMENTS)
   end
 
   def set_closed_time_now
@@ -212,4 +213,16 @@ class Changeset < ApplicationRecord
 
     save_with_tags!
   end
+
+  def subscribe(user)
+    subscribers << user
+  end
+
+  def unsubscribe(user)
+    subscribers.delete(user)
+  end
+
+  def subscribed?(user)
+    subscribers.exists?(user.id)
+  end
 end
index 8d3e4583fad137db074ed85614a27becdaeaf759..f1d40feeab109fc341c9aae48fa1ea184e63d494 100644 (file)
@@ -26,7 +26,7 @@ class Language < ApplicationRecord
 
   def name
     name = english_name
-    name += " (#{native_name})" unless native_name.nil?
+    name += " (#{native_name})" unless native_name.nil? || native_name == english_name
     name
   end
 end
index 7c12769d3a3e39f081caeb16dd0417a858a0ddc2..665e2d721376b897738691c73cf4a62c0bc3bd4b 100644 (file)
@@ -12,6 +12,7 @@
 #  to_user_visible   :boolean          default(TRUE), not null
 #  from_user_visible :boolean          default(TRUE), not null
 #  body_format       :enum             default("markdown"), not null
+#  muted             :boolean          default(FALSE), not null
 #
 # Indexes
 #
@@ -32,6 +33,10 @@ class Message < ApplicationRecord
   validates :body, :sent_on, :presence => true
   validates :title, :body, :characters => true
 
+  scope :muted, -> { where(:muted => true) }
+
+  before_create :set_muted
+
   def self.from_mail(mail, from, to)
     if mail.multipart?
       if mail.text_part
@@ -65,4 +70,18 @@ class Message < ApplicationRecord
     sha256 << id.to_s
     Base64.urlsafe_encode64(sha256.digest)[0, 8]
   end
+
+  def notify_recipient?
+    !muted?
+  end
+
+  def unmute
+    update(:muted => false)
+  end
+
+  private
+
+  def set_muted
+    self.muted ||= UserMute.active?(:owner => recipient, :subject => sender)
+  end
 end
index 2411fb9b7a3c56c2f2adc57787a6194f83058c51..818cc363b8629595bed5a4d842033f708598f14c 100644 (file)
@@ -202,7 +202,7 @@ class Trace < ApplicationRecord
     logger.info("GPX Import importing #{name} (#{id}) from #{user.email}")
 
     file.open do |file|
-      gpx = GPX::File.new(file.path)
+      gpx = GPX::File.new(file.path, :maximum_points => Settings.max_trace_size)
 
       f_lat = 0
       f_lon = 0
@@ -267,6 +267,14 @@ class Trace < ApplicationRecord
     end
   end
 
+  def schedule_import
+    TraceImporterJob.new(self).enqueue(:priority => user.traces.where(:inserted => false).count)
+  end
+
+  def schedule_destruction
+    TraceDestroyerJob.perform_later(self)
+  end
+
   private
 
   def content_type(file)
index 7571dd9dc5c8011f4615ebf970b6f0daa377adc9..125e5e97372c87c539540b682e805f5909d0611f 100644 (file)
 #
 # Indexes
 #
-#  users_auth_idx                (auth_provider,auth_uid) UNIQUE
-#  users_display_name_idx        (display_name) UNIQUE
-#  users_display_name_lower_idx  (lower((display_name)::text))
-#  users_email_idx               (email) UNIQUE
-#  users_email_lower_idx         (lower((email)::text))
-#  users_home_idx                (home_tile)
+#  users_auth_idx                    (auth_provider,auth_uid) UNIQUE
+#  users_display_name_canonical_idx  (lower(NORMALIZE(display_name, NFKC)))
+#  users_display_name_idx            (display_name) UNIQUE
+#  users_email_idx                   (email) UNIQUE
+#  users_email_lower_idx             (lower((email)::text))
+#  users_home_idx                    (home_tile)
 #
 
 class User < ApplicationRecord
@@ -51,9 +51,10 @@ class User < ApplicationRecord
   has_many :diary_comments, -> { order(:created_at => :desc) }, :inverse_of => :user
   has_many :diary_entry_subscriptions, :class_name => "DiaryEntrySubscription"
   has_many :diary_subscriptions, :through => :diary_entry_subscriptions, :source => :diary_entry
-  has_many :messages, -> { where(:to_user_visible => true).order(:sent_on => :desc).preload(:sender, :recipient) }, :foreign_key => :to_user_id
-  has_many :new_messages, -> { where(:to_user_visible => true, :message_read => false).order(:sent_on => :desc) }, :class_name => "Message", :foreign_key => :to_user_id
+  has_many :messages, -> { where(:to_user_visible => true, :muted => false).order(:sent_on => :desc).preload(:sender, :recipient) }, :foreign_key => :to_user_id
+  has_many :new_messages, -> { where(:to_user_visible => true, :muted => false, :message_read => false).order(:sent_on => :desc) }, :class_name => "Message", :foreign_key => :to_user_id
   has_many :sent_messages, -> { where(:from_user_visible => true).order(:sent_on => :desc).preload(:sender, :recipient) }, :class_name => "Message", :foreign_key => :from_user_id
+  has_many :muted_messages, -> { where(:to_user_visible => true, :muted => true).order(:sent_on => :desc).preload(:sender, :recipient) }, :class_name => "Message", :foreign_key => :to_user_id
   has_many :friendships, -> { joins(:befriendee).where(:users => { :status => %w[active confirmed] }) }
   has_many :friends, :through => :friendships, :source => :befriendee
   has_many :tokens, :class_name => "UserToken", :dependent => :destroy
@@ -75,6 +76,9 @@ class User < ApplicationRecord
   has_many :blocks_created, :class_name => "UserBlock", :foreign_key => :creator_id, :inverse_of => :creator
   has_many :blocks_revoked, :class_name => "UserBlock", :foreign_key => :revoker_id, :inverse_of => :revoker
 
+  has_many :mutes, -> { order(:created_at => :desc) }, :class_name => "UserMute", :foreign_key => :owner_id, :inverse_of => :owner
+  has_many :muted_users, :through => :mutes, :source => :subject
+
   has_many :roles, :class_name => "UserRole"
 
   has_many :issues, :class_name => "Issue", :foreign_key => :reported_user_id, :inverse_of => :reported_user
@@ -91,10 +95,12 @@ class User < ApplicationRecord
   validates :display_name, :presence => true, :length => 3..255,
                            :exclusion => %w[new terms save confirm confirm-email go_public reset-password forgot-password suspended]
   validates :display_name, :if => proc { |u| u.display_name_changed? },
-                           :uniqueness => { :case_sensitive => false }
+                           :normalized_uniqueness => { :case_sensitive => false }
   validates :display_name, :if => proc { |u| u.display_name_changed? },
                            :characters => { :url_safe => true },
-                           :whitespace => { :leading => false, :trailing => false }
+                           :whitespace => { :leading => false, :trailing => false },
+                           :width => { :minimum => 3 }
+  validate :display_name_cannot_be_user_id_with_other_id, :if => proc { |u| u.display_name_changed? }
   validates :email, :presence => true, :confirmation => true, :characters => true
   validates :email, :if => proc { |u| u.email_changed? },
                     :uniqueness => { :case_sensitive => false }
@@ -115,11 +121,28 @@ class User < ApplicationRecord
 
   alias_attribute :created_at, :creation_time
 
-  after_initialize :encrypt_password
   before_save :encrypt_password
   before_save :update_tile
   after_save :spam_check
 
+  generates_token_for :new_user, :expires_in => 1.week do
+    fingerprint
+  end
+
+  generates_token_for :new_email, :expires_in => 1.week do
+    fingerprint
+  end
+
+  generates_token_for :password_reset, :expires_in => 1.week do
+    fingerprint
+  end
+
+  def display_name_cannot_be_user_id_with_other_id
+    display_name&.match(/^user_(\d+)$/i) do |m|
+      errors.add :display_name, I18n.t("activerecord.errors.messages.display_name_is_user_n") unless m[1].to_i == id
+    end
+  end
+
   def to_param
     display_name
   end
@@ -129,7 +152,7 @@ class User < ApplicationRecord
       user = find_by("email = ? OR display_name = ?", options[:username].strip, options[:username])
 
       if user.nil?
-        users = where("LOWER(email) = LOWER(?) OR LOWER(display_name) = LOWER(?)", options[:username].strip, options[:username])
+        users = where("LOWER(email) = LOWER(?) OR LOWER(NORMALIZE(display_name, NFKC)) = LOWER(NORMALIZE(?, NFKC))", options[:username].strip, options[:username])
 
         user = users.first if users.count == 1
       end
@@ -419,6 +442,18 @@ class User < ApplicationRecord
     end
   end
 
+  def deletion_allowed_at
+    unless Settings.user_account_deletion_delay.nil?
+      last_changeset = changesets.reorder(:closed_at => :desc).first
+      return last_changeset.closed_at.utc + Settings.user_account_deletion_delay.hours if last_changeset
+    end
+    creation_time.utc
+  end
+
+  def deletion_allowed?
+    deletion_allowed_at <= Time.now.utc
+  end
+
   private
 
   def encrypt_password
diff --git a/app/models/user_mute.rb b/app/models/user_mute.rb
new file mode 100644 (file)
index 0000000..9bee39b
--- /dev/null
@@ -0,0 +1,34 @@
+# == Schema Information
+#
+# Table name: user_mutes
+#
+#  id         :bigint(8)        not null, primary key
+#  owner_id   :bigint(8)        not null
+#  subject_id :bigint(8)        not null
+#  created_at :datetime         not null
+#  updated_at :datetime         not null
+#
+# Indexes
+#
+#  index_user_mutes_on_owner_id_and_subject_id  (owner_id,subject_id) UNIQUE
+#
+# Foreign Keys
+#
+#  fk_rails_...  (owner_id => users.id)
+#  fk_rails_...  (subject_id => users.id)
+#
+class UserMute < ApplicationRecord
+  belongs_to :owner, :class_name => "User"
+  belongs_to :subject, :class_name => "User"
+
+  validates :subject, :uniqueness => { :scope => :owner_id, :message => :is_already_muted }
+
+  def self.active?(owner:, subject:)
+    !subject.administrator? &&
+      !subject.moderator? &&
+      exists?(
+        :owner => owner,
+        :subject => subject
+      )
+  end
+end
index f927563a948694b80197a2cdf1523f9f9ec126e4..fbd276a6f32d3c70cef8b4ead629e4a377369722 100644 (file)
@@ -21,6 +21,8 @@
 class UserToken < ApplicationRecord
   belongs_to :user
 
+  scope :unexpired, -> { where("expiry >= now()") }
+
   after_initialize :set_defaults
 
   def expired?
diff --git a/app/validators/normalized_uniqueness_validator.rb b/app/validators/normalized_uniqueness_validator.rb
new file mode 100644 (file)
index 0000000..eb3600c
--- /dev/null
@@ -0,0 +1,18 @@
+class NormalizedUniquenessValidator < ActiveModel::EachValidator
+  def validate_each(record, attribute, value)
+    relation = if options.fetch(:case_sensitive, true)
+                 record.class.where("NORMALIZE(#{attribute}, NFKC) = NORMALIZE(?, NFKC)", value)
+               else
+                 record.class.where("LOWER(NORMALIZE(#{attribute}, NFKC)) = LOWER(NORMALIZE(?, NFKC))", value)
+               end
+
+    relation = relation.where.not(record.class.primary_key => [record.id_in_database]) if record.persisted?
+
+    if relation.exists?
+      error_options = options.except(:case_sensitive)
+      error_options[:value] = value
+
+      record.errors.add(attribute, :taken, **error_options)
+    end
+  end
+end
diff --git a/app/validators/width_validator.rb b/app/validators/width_validator.rb
new file mode 100644 (file)
index 0000000..a3a4d41
--- /dev/null
@@ -0,0 +1,11 @@
+class WidthValidator < ActiveModel::Validations::LengthValidator
+  module WidthAsLength
+    def length
+      Unicode::DisplayWidth.of(to_s)
+    end
+  end
+
+  def validate_each(record, attribute, value)
+    super(record, attribute, value.extend(WidthAsLength))
+  end
+end
index ddc8216772878300b3348b5ff55fd4f6608dbcc0..0ed4d663f03315944f9f7d5b1df1e82a81042f7e 100644 (file)
   <li><%= t ".retain_email" %></li>
 </ul>
 
-<%= link_to t(".delete_account"), account_path, { :method => :delete, :class => "btn btn-danger", :data => { :confirm => t(".confirm_delete") } } %>
+<% if current_user.deletion_allowed? %>
+  <%= link_to t(".delete_account"), account_path, { :method => :delete, :class => "btn btn-danger", :data => { :confirm => t(".confirm_delete") } } %>
+<% else %>
+  <div class="alert alert-warning">
+    <%= t ".recent_editing_html", :time => friendly_date(current_user.deletion_allowed_at) %>
+  </div>
+  <button class="btn btn-secondary" disabled><%= t(".delete_account") %></button>
+<% end %>
+
 <%= link_to t(".cancel"), edit_account_path, :class => "btn btn-link" %>
index cedfc81ea5ce34310cac041136bf9d5a39030f4f..b53061d4c347695c0d449d7d509e90792f683bbe 100644 (file)
@@ -1,7 +1,5 @@
 xml.instruct! :xml, :version => "1.0"
 
-# basic attributes
-
 xml.osm(OSM::API.new.xml_root_attributes) do |osm|
   osm << render(@changeset)
 end
index c68a76da3bcf5da5746f2f28e7a61d9dc4b42cfb..5ff7e262044032609666cd2deeada933bb917fb6 100644 (file)
@@ -1,7 +1,5 @@
 xml.instruct! :xml, :version => "1.0"
 
-# basic attributes
-
 xml.osm(OSM::API.new.xml_root_attributes) do |osm|
   @changesets.each do |changeset|
     osm << render(changeset)
index 9ce9755a2c5f3e452e016f2ce0fb6e6551250c40..8477a11a05af10c542e3b9dd17433be9904d3f64 100644 (file)
     <li class="nav-item">
       <%= link_to t(".oauth2_authorizations"), oauth_authorized_applications_path, :class => "nav-link #{'active' if controller_name == 'oauth2_authorized_applications'}" %>
     </li>
+    <% if current_user.muted_users.any? %>
+      <li class="nav-item">
+        <%= link_to t(".muted_users"), user_mutes_path, :class => "nav-link #{'active' if controller_name == 'user_mutes'}" %>
+      </li>
+    <% end %>
   </ul>
 <% end %>
index 4726799e7342966a5c018d1fe93fbaba4f225825..7d3f8e829c672d3bc0c05ebc1acaf178cfda4e73 100644 (file)
@@ -1,6 +1,6 @@
 <h4>
   <%= t "browse.version" %>
-  #<%= common_details.version %>
+  #<%= link_to_unless_current common_details.version, :controller => "old_#{@type.pluralize}", :action => :show, :version => common_details.version %>
 </h4>
 
 <p class="fst-italic">
@@ -19,7 +19,7 @@
   </li>
   <li>
     <%= t "browse.in_changeset" %>
-    #<%= link_to common_details.changeset_id, :action => :changeset, :id => common_details.changeset_id %>
+    #<%= link_to common_details.changeset_id, changeset_path(common_details.changeset) %>
   </li>
 
   <% if @type == "node" and common_details.visible? %>
@@ -33,4 +33,4 @@
   <% end %>
 </ul>
 
-<%= render :partial => "tag_details", :object => common_details.tags %>
+<%= render :partial => "browse/tag_details", :object => common_details.tags %>
index 06220a97ddb9267b471e2aaea31a86273b0a5463..2547ff7aa6a7cbcae116c43300b68bfc3c30c045 100644 (file)
@@ -1,4 +1,4 @@
-<li><%= linked_name = link_to printable_name(containing_relation.relation), :action => "relation", :id => containing_relation.relation.id.to_s
+<li><%= linked_name = link_to printable_element_name(containing_relation.relation), :action => "relation", :id => containing_relation.relation.id.to_s
         if containing_relation.member_role.blank?
           t ".entry_html", :relation_name => linked_name
         else
index 152223ae751089822fec7a32395fc9e203af6132..6c6c1fdf32a32b12bd09ebfade54e2524b8e708e 100644 (file)
@@ -8,7 +8,7 @@
   </div>
 <% else %>
   <div class="browse-section browse-node">
-    <%= render :partial => "common_details", :object => node %>
+    <%= render :partial => "browse/common_details", :object => node %>
 
     <% unless node.ways.empty? and node.containing_relation_members.empty? %>
       <h4><%= t "browse.part_of" %></h4>
@@ -17,7 +17,7 @@
           <summary><%= t "browse.part_of_ways", :count => node.ways.uniq.count %></summary>
           <ul class="list-unstyled">
             <% node.ways.uniq.each do |way| %>
-              <li><%= link_to printable_name(way), { :action => "way", :id => way.id.to_s }, { :class => link_class("way", way), :title => link_title(way) } %></li>
+              <li><%= element_single_current_link "way", way, way_path(way) %></li>
             <% end %>
           </ul>
         </details>
@@ -26,7 +26,7 @@
         <details <%= "open" if node.containing_relation_members.count < 10 %>>
           <summary><%= t "browse.part_of_relations", :count => node.containing_relation_members.uniq.count %></summary>
           <ul class="list-unstyled">
-            <%= render :partial => "containing_relation", :collection => node.containing_relation_members.uniq %>
+            <%= render :partial => "browse/containing_relation", :collection => node.containing_relation_members.uniq %>
           </ul>
         </details>
       <% end %>
index 8db40c8c74a954fc797eb9889eb6feac429a93a8..c513ea6d1eba6fd666dfea5c017e268341ec4513 100644 (file)
@@ -8,7 +8,7 @@
   </div>
 <% else %>
   <div class="browse-section browse-relation">
-    <%= render :partial => "common_details", :object => relation %>
+    <%= render :partial => "browse/common_details", :object => relation %>
 
     <% unless relation.containing_relation_members.empty? %>
       <h4><%= t "browse.part_of" %></h4>
@@ -25,7 +25,7 @@
       <details <%= "open" if relation.relation_members.count < 10 %>>
         <summary><%= t ".members_count", :count => relation.relation_members.count %></summary>
         <ul class="list-unstyled">
-          <%= render :partial => "relation_member", :collection => relation.relation_members %>
+          <%= render :partial => "browse/relation_member", :collection => relation.relation_members %>
         </ul>
       </details>
     <% end %>
index 5c96dadaf84d9a31e97cc61c112dcb52ebdf4ad5..16842f56922c97d9bd03f25ee6aa0a3936ffb283 100644 (file)
@@ -1,10 +1,9 @@
-<% member_class = link_class(relation_member.member_type.downcase, relation_member.member)
-   linked_name = link_to printable_name(relation_member.member), { :action => relation_member.member_type.downcase, :id => relation_member.member_id.to_s }, { :title => link_title(relation_member.member), :rel => link_follow(relation_member.member) }
+<% linked_name = link_to printable_element_name(relation_member.member), { :controller => :browse, :action => relation_member.member_type.downcase, :id => relation_member.member_id.to_s }, { :rel => link_follow(relation_member.member) }
    type_str = t ".type.#{relation_member.member_type.downcase}" %>
-<li class="<%= member_class %>">
+<%= element_list_item relation_member.member_type.downcase, relation_member.member do %>
   <%= if relation_member.member_role.blank?
         t ".entry_html", :type => type_str, :name => linked_name
       else
         t ".entry_role_html", :type => type_str, :name => linked_name, :role => relation_member.member_role
       end %>
-</li>
+<% end %>
index 9129ddaf5d23df457700f7adb63615340a1ca70f..cc08fe16af7fb76de94d39e6b86d10c2ce9e3f5c 100644 (file)
@@ -2,7 +2,7 @@
   <h4><%= t ".tags" %></h4>
   <div class='mb-3 border border-grey rounded overflow-hidden'>
     <table class='mb-0 browse-tag-list table align-middle text-break'>
-      <%= render :partial => "tag", :collection => tag_details.sort %>
+      <%= render :partial => "browse/tag", :collection => tag_details.sort %>
     </table>
   </div>
 <% end %>
index 4fdcd035ecf5c75296f624d124557531683ce952..7197298aca6a5501acd0644d429b020eab4f8169 100644 (file)
@@ -8,7 +8,7 @@
   </div>
 <% else %>
   <div class="browse-section browse-way">
-    <%= render :partial => "common_details", :object => way %>
+    <%= render :partial => "browse/common_details", :object => way %>
 
     <% unless way.containing_relation_members.empty? %>
       <h4><%= t "browse.part_of" %></h4>
         <ul class="list-unstyled">
           <% way.way_nodes.each do |wn| %>
             <li>
-              <%= link_to printable_name(wn.node), { :action => "node", :id => wn.node_id.to_s }, { :class => link_class("node", wn.node), :title => link_title(wn.node), :rel => link_follow(wn.node) } %>
+              <%= element_single_current_link "node", wn.node, node_path(wn.node) %>
               <% related_ways = wn.node.ways.reject { |w| w.id == wn.way_id } %>
               <% if related_ways.size > 0 then %>
-                (<%= t ".also_part_of_html", :count => related_ways.size, :related_ways => to_sentence(related_ways.map { |w| link_to(printable_name(w), { :action => "way", :id => w.id.to_s }, { :class => link_class("way", w), :title => link_title(w) }) }) %>)
+                (<%= t ".also_part_of_html",
+                       :count => related_ways.size,
+                       :related_ways => to_sentence(related_ways.map { |w| element_single_current_link "way", w, way_path(w) }) %>)
               <% end %>
             </li>
           <% end %>
index 9225192e1144fd50a154ac9611f5d7c8901e8204..db6b9c966e924a55db0840975df655281b611299 100644 (file)
     <% if current_user %>
       <div class="col-auto">
         <% if @changeset.subscribers.exists?(current_user.id) %>
-          <button class="action-button btn btn-sm btn-primary" name="unsubscribe" data-method="POST" data-url="<%= changeset_unsubscribe_url(@changeset) %>"><%= t("javascripts.changesets.show.unsubscribe") %></button>
+          <button class="btn btn-sm btn-primary" name="unsubscribe" data-method="POST" data-url="<%= api_changeset_unsubscribe_url(@changeset) %>"><%= t("javascripts.changesets.show.unsubscribe") %></button>
         <% else %>
-          <button class="action-button btn btn-sm btn-primary" name="subscribe" data-method="POST" data-url="<%= changeset_subscribe_url(@changeset) %>"><%= t("javascripts.changesets.show.subscribe") %></button>
+          <button class="btn btn-sm btn-primary" name="subscribe" data-method="POST" data-url="<%= api_changeset_subscribe_url(@changeset) %>"><%= t("javascripts.changesets.show.subscribe") %></button>
         <% end %>
       </div>
     <% end %>
   </div>
 
   <% if @comments.length > 0 %>
-    <div class='changeset-comments'>
-      <form action="#">
-        <ul class="list-unstyled">
-          <% @comments.each do |comment| %>
-            <% if comment.visible %>
-              <li id="c<%= comment.id %>">
-                <small class='text-muted'>
-                  <%= t(".comment_by_html",
-                        :time_ago => friendly_date_ago(comment.created_at),
-                        :user => link_to(comment.author.display_name, user_path(comment.author))) %>
-                  <% if current_user and current_user.moderator? %>
-                    — <span class="action-button" data-comment-id="<%= comment.id %>" data-method="POST" data-url="<%= changeset_comment_hide_url(comment.id) %>"><%= t("javascripts.changesets.show.hide_comment") %></span>
-                  <% end %>
-                </small>
-                <div class="mx-2">
-                  <%= comment.body.to_html %>
-                </div>
-              </li>
-            <% elsif current_user and current_user.moderator? %>
-              <li id="c<%= comment.id %>">
-                <small class='text-muted'>
-                  <%= t(".hidden_comment_by_html",
-                        :time_ago => friendly_date_ago(comment.created_at),
-                        :user => link_to(comment.author.display_name, user_path(comment.author))) %>
-                  — <span class="action-button text-muted" data-comment-id="<%= comment.id %>" data-method="POST" data-url="<%= changeset_comment_unhide_url(comment.id) %>"><%= t("javascripts.changesets.show.unhide_comment") %></span>
-                 </small>
-                <div class="mx-2">
-                  <%= comment.body.to_html %>
-                </div>
-              </li>
+    <ul class="list-unstyled">
+      <% @comments.each do |comment| %>
+        <% next unless comment.visible || current_user&.moderator? %>
+        <li id="c<%= comment.id %>">
+          <small class='text-muted'>
+            <%= t comment.visible ? ".comment_by_html" : ".hidden_comment_by_html",
+                  :time_ago => friendly_date_ago(comment.created_at),
+                  :user => link_to(comment.author.display_name, user_path(comment.author)) %>
+            <% if current_user&.moderator? %>
+              —
+              <%= tag.button t("javascripts.changesets.show.#{comment.visible ? 'hide' : 'unhide'}_comment"),
+                             :class => "btn btn-sm small btn-link link-secondary p-0 align-baseline",
+                             :data => { :method => "POST",
+                                        :url => comment.visible ? changeset_comment_hide_url(comment) : changeset_comment_unhide_url(comment) } %>
             <% end %>
-          <% end %>
-        </ul>
-      </form>
-    </div>
+          </small>
+          <div class="mx-2">
+            <%= comment.body.to_html %>
+          </div>
+        </li>
+      <% end %>
+    </ul>
   <% end %>
 
   <% unless current_user %>
-    <p class="notice">
+    <p>
       <%= link_to(t(".join_discussion"), login_path(:referer => request.fullpath)) %>
     </p>
   <% end %>
         <div id="comment-error" class="alert alert-danger p-2 mb-3" hidden>
         </div>
         <div>
-          <input type="submit" name="comment" value="<%= t("javascripts.changesets.show.comment") %>" data-changeset-id="<%= @changeset.id %>" data-method="POST" data-url="<%= changeset_comment_url(@changeset) %>" disabled="1" class="btn btn-sm btn-primary" />
+          <button name="comment" data-method="POST" data-url="<%= changeset_comment_url(@changeset) %>" disabled class="btn btn-sm btn-primary"><%= t("javascripts.changesets.show.comment") %></button>
         </div>
       </form>
     <% else %>
-      <p class="notice">
+      <p>
         <%= t(".still_open") %>
       </p>
     <% end %>
     <%= render :partial => "paging_nav", :locals => { :type => "way", :pages => @way_pages } %>
     <ul class="list-unstyled">
       <% @ways.each do |way| %>
-        <li><%= link_to printable_name(way, :version => true), { :action => "way", :id => way.way_id.to_s }, { :class => link_class("way", way), :title => link_title(way) } %></li>
+        <%= element_list_item "way", way do %>
+          <%= t "printable_name.current_and_old_links_html",
+                :current_link => link_to(printable_element_name(way), way_path(way.way_id)),
+                :old_link => link_to(printable_element_version(way), old_way_path(way.way_id, way.version)) %>
+        <% end %>
       <% end %>
     </ul>
   <% end %>
     <%= render :partial => "paging_nav", :locals => { :type => "relation", :pages => @relation_pages } %>
     <ul class="list-unstyled">
       <% @relations.each do |relation| %>
-        <li><%= link_to printable_name(relation, :version => true), { :action => "relation", :id => relation.relation_id.to_s }, { :class => link_class("relation", relation), :title => link_title(relation) } %></li>
+        <%= element_list_item "relation", relation do %>
+          <%= t "printable_name.current_and_old_links_html",
+                :current_link => link_to(printable_element_name(relation), relation_path(relation.relation_id)),
+                :old_link => link_to(printable_element_version(relation), old_relation_path(relation.relation_id, relation.version)) %>
+        <% end %>
       <% end %>
     </ul>
   <% end %>
     <%= render :partial => "paging_nav", :locals => { :type => "node", :pages => @node_pages } %>
     <ul class="list-unstyled">
       <% @nodes.each do |node| %>
-        <li><%= link_to printable_name(node, :version => true), { :action => "node", :id => node.node_id.to_s }, { :class => link_class("node", node), :title => link_title(node), :rel => link_follow(node) } %></li>
+        <%= element_list_item "node", node do %>
+          <%= t "printable_name.current_and_old_links_html",
+                :current_link => link_to(printable_element_name(node), node_path(node.node_id), { :rel => link_follow(node) }),
+                :old_link => link_to(printable_element_version(node), old_node_path(node.node_id, node.version), { :rel => link_follow(node) }) %>
+        <% end %>
       <% end %>
     </ul>
   <% end %>
 </div>
 
+<div class='secondary-actions'>
+  <%= link_to(t(".changesetxml"), :controller => "api/changesets", :action => "show") %>
+  &middot;
+  <%= link_to(t(".osmchangexml"), :controller => "api/changesets", :action => "download") %>
+</div>
+
 <% if @next_by_user || @prev_by_user %>
   <div class='secondary-actions'>
     <% if @prev_by_user %>
-      <%= link_to "<< #{@prev_by_user.id}", :id => @prev_by_user.id %>
+      <%= link_to({ :id => @prev_by_user.id }, :class => "icon-link") do %>
+        <%= previous_page_svg_tag :height => 11 %>
+        <%= @prev_by_user.id %>
+      <% end %>
       &middot;
     <% end %>
     <%= user = (@prev_by_user || @next_by_user).user.display_name
         link_to tag.bdi(user), :controller => "changesets", :action => "index", :display_name => user %>
     <% if @next_by_user %>
       &middot;
-      <%= link_to "#{@next_by_user.id} >>", :id => @next_by_user.id %>
+      <%= link_to({ :id => @next_by_user.id }, :class => "icon-link") do %>
+        <%= @next_by_user.id %>
+        <%= next_page_svg_tag :height => 11 %>
+      <% end %>
     <% end %>
   </div>
 <% end %>
-
-<div class='secondary-actions'>
-  <%= link_to(t(".changesetxml"), :controller => "api/changesets", :action => "show") %>
-  &middot;
-  <%= link_to(t(".osmchangexml"), :controller => "api/changesets", :action => "download") %>
-</div>
index 86b9020a209e7b7823bb92361c7d63f666e8d644..cd333d3bfd1dbbcd1e301158274b40dfb7de3844 100644 (file)
@@ -1,13 +1,28 @@
-<% set_title(t("browse.#{@type}.title_html", :name => printable_name(@feature))) %>
+<% set_title(t("browse.#{@type}.title_html", :name => printable_element_name(@feature))) %>
 
-<%= render "sidebar_header", :title => t("browse.#{@type}.title_html", :name => printable_name(@feature)) %>
+<%= render "sidebar_header", :title => t("browse.#{@type}.title_html", :name => printable_element_name(@feature)) %>
 
 <%= render :partial => @type, :object => @feature %>
 
-<div class='secondary-actions'>
-  <% if @feature.visible? %>
+<% if @feature.visible? %>
+  <div class='secondary-actions'>
     <%= link_to(t("browse.download_xml"), :controller => "api/#{@type.pluralize}", :action => :show) %>
+  </div>
+<% end %>
+<div class='secondary-actions'>
+  <% if @feature.version > 1 %>
+    <%= link_to({ :controller => "old_#{@type.pluralize}", :action => :show, :version => 1 }, :class => "icon-link") do %>
+      <%= previous_page_svg_tag :height => 11, :count => 2 %>
+      <%= "#{t('browse.version')} #1" %>
+    <% end %>
+    &middot;
+  <% end %>
+    <%= link_to t("browse.view_history"), :action => "#{@type}_history" %>
+  <% if @feature.version > 1 %>
     &middot;
+    <%= link_to({ :controller => "old_#{@type.pluralize}", :action => :show, :version => @feature.version }, :class => "icon-link") do %>
+      <%= "#{t('browse.version')} ##{@feature.version}" %>
+      <%= next_page_svg_tag :height => 11, :count => 2 %>
+    <% end %>
   <% end %>
-  <%= link_to(t("browse.view_history"), :action => "#{@type}_history") %>
 </div>
index ebf8bcb30ec524c9e44260c1ff52b74109b67720..bf11e8f1e20dec49bc014934701d99a82328af88 100644 (file)
@@ -1,8 +1,8 @@
-<% set_title(t("browse.#{@type}.history_title_html", :name => printable_name(@feature))) %>
+<% set_title(t("browse.#{@type}.history_title_html", :name => printable_element_name(@feature))) %>
 
-<%= render "sidebar_header", :title => t("browse.#{@type}.history_title_html", :name => printable_name(@feature)) %>
+<%= render "sidebar_header", :title => t("browse.#{@type}.history_title_html", :name => printable_element_name(@feature)) %>
 
-<%= render :partial => @type, :collection => @feature.send("old_#{@type}s").reverse %>
+<%= render :partial => @type, :collection => @feature.send(:"old_#{@type}s").reverse %>
 
 <div class='secondary-actions'>
   <%= link_to(t("browse.download_xml"), :controller => "api/old_#{@type.pluralize}", :action => "history") %>
diff --git a/app/views/changesets/_heading.html.erb b/app/views/changesets/_heading.html.erb
new file mode 100644 (file)
index 0000000..33bc716
--- /dev/null
@@ -0,0 +1,15 @@
+<% title = changeset.tags["comment"].to_s.presence || t(".title", :id => changeset.id) -%>
+<div class='mb-3'>
+  <div class="row">
+    <div class="col-auto">
+      <%= user_thumbnail changeset.user %>
+    </div>
+    <div class="col">
+      <h2><%= link_to title, changeset_path(changeset) %></h2>
+    </div>
+  </div>
+
+  <small class='text-muted'>
+    <%= t(".created_by_html", :link_user => link_to(changeset.user.display_name, user_path(changeset.user)), :created => l(changeset.created_at, :format => :blog)) %>
+  </small>
+</div>
index a1af72b911d4917ab4862feb504c099d5106e62d..521dffe5f1aa5e3b0217014bf8503d284118fc3f 100644 (file)
@@ -25,9 +25,9 @@ atom_feed(:language => I18n.locale, :schema_date => 2009,
                  :type => "application/osmChange+xml"
 
       if !changeset.tags.empty? && changeset.tags.key?("comment")
-        entry.title t("browse.changeset.feed.title_comment", :id => changeset.id, :comment => changeset.tags["comment"]), :type => "html"
+        entry.title t(".feed.title_comment", :id => changeset.id, :comment => changeset.tags["comment"])
       else
-        entry.title t("browse.changeset.feed.title", :id => changeset.id)
+        entry.title t(".feed.title", :id => changeset.id)
       end
 
       if changeset.user.data_public?
diff --git a/app/views/changesets/no_such_entry.html.erb b/app/views/changesets/no_such_entry.html.erb
new file mode 100644 (file)
index 0000000..da7d185
--- /dev/null
@@ -0,0 +1,5 @@
+<% content_for :heading do %>
+  <h1><%= t ".heading", :id => h(params[:id]) %></h1>
+<% end %>
+
+<p><%= t ".body", :id => h(params[:id]) %></p>
diff --git a/app/views/changesets/subscribe.html.erb b/app/views/changesets/subscribe.html.erb
new file mode 100644 (file)
index 0000000..6a65e5f
--- /dev/null
@@ -0,0 +1,12 @@
+<% content_for :heading do %>
+  <h1><%= t ".heading" %></h1>
+<% end %>
+
+<%= render :partial => "heading", :object => @changeset, :as => "changeset" %>
+
+<%= bootstrap_form_tag do |f| %>
+  <% if params[:referer] -%>
+  <%= f.hidden_field :referer, :value => params[:referer] %>
+  <% end -%>
+  <%= f.primary t(".button") %>
+<% end %>
diff --git a/app/views/changesets/unsubscribe.html.erb b/app/views/changesets/unsubscribe.html.erb
new file mode 100644 (file)
index 0000000..6a65e5f
--- /dev/null
@@ -0,0 +1,12 @@
+<% content_for :heading do %>
+  <h1><%= t ".heading" %></h1>
+<% end %>
+
+<%= render :partial => "heading", :object => @changeset, :as => "changeset" %>
+
+<%= bootstrap_form_tag do |f| %>
+  <% if params[:referer] -%>
+  <%= f.hidden_field :referer, :value => params[:referer] %>
+  <% end -%>
+  <%= f.primary t(".button") %>
+<% end %>
index 238f4d43c8549a02e4e7a8f2fcbbe4d08f66e733..04e01157460ac38cf82ac54f30b2fd771a17f758 100644 (file)
@@ -1,5 +1,5 @@
-<div class="row diary-comment py-3<%= " text-muted bg-danger bg-opacity-10" unless diary_comment.visible? %>">
-  <div class="col-auto">
+<div class="row diary-comment border-bottom py-3<%= " text-muted bg-danger bg-opacity-10" unless diary_comment.visible? %>">
+  <div class="col-auto pe-0 text-center">
     <%= user_thumbnail diary_comment.user %>
   </div>
   <div class="col">
index f69c7e552c3bf80f0adff79febae210093eb2a47..8bd4dc57fd652b78c6dc2a9d70abd332f1f1e537 100644 (file)
@@ -1,26 +1,5 @@
 <article class='diary_post border-top border-grey py-3<%= " text-muted px-3 bg-danger bg-opacity-10" unless diary_entry.visible %> user_<%= diary_entry.user.id %>'>
-  <div class='mb-3'>
-    <% if @user %>
-      <h2><%= link_to diary_entry.title, diary_entry_path(diary_entry.user, diary_entry) %></h2>
-    <% else %>
-      <div class="row">
-        <div class="col-auto">
-          <%= user_thumbnail diary_entry.user %>
-        </div>
-        <div class="col">
-          <h2><%= link_to diary_entry.title, diary_entry_path(diary_entry.user, diary_entry) %></h2>
-        </div>
-      </div>
-    <% end %>
-
-    <small class='text-muted'>
-      <%= t(".posted_by_html", :link_user => (link_to diary_entry.user.display_name, user_path(diary_entry.user)), :created => l(diary_entry.created_at, :format => :blog), :language_link => (link_to diary_entry.language.name, :controller => "diary_entries", :action => "index", :display_name => nil, :language => diary_entry.language_code)) %>
-      <% if (l(diary_entry.updated_at, :format => :blog) != l(diary_entry.created_at, :format => :blog)) %>
-        <%= t(".updated_at_html", :updated => l(diary_entry.updated_at, :format => :blog)) %>
-      <% end %>
-    </small>
-
-  </div>
+  <%= render :partial => "diary_entry_heading", :object => diary_entry, :as => "diary_entry" %>
 
   <div class="richtext text-break" xml:lang="<%= diary_entry.language_code %>" lang="<%= diary_entry.language_code %>">
     <%= diary_entry.body.to_html %>
diff --git a/app/views/diary_entries/_diary_entry_heading.html.erb b/app/views/diary_entries/_diary_entry_heading.html.erb
new file mode 100644 (file)
index 0000000..ef924ff
--- /dev/null
@@ -0,0 +1,21 @@
+<div class='mb-3'>
+  <% if @user %>
+    <h2><%= link_to diary_entry.title, diary_entry_path(diary_entry.user, diary_entry) %></h2>
+  <% else %>
+    <div class="row">
+      <div class="col-auto">
+        <%= user_thumbnail diary_entry.user %>
+      </div>
+      <div class="col">
+        <h2><%= link_to diary_entry.title, diary_entry_path(diary_entry.user, diary_entry) %></h2>
+      </div>
+    </div>
+  <% end %>
+
+  <small class='text-muted'>
+    <%= t("diary_entries.diary_entry.posted_by_html", :link_user => (link_to diary_entry.user.display_name, user_path(diary_entry.user)), :created => l(diary_entry.created_at, :format => :blog), :language_link => (link_to diary_entry.language.name, :controller => "diary_entries", :action => "index", :display_name => nil, :language => diary_entry.language_code)) %>
+    <% if (l(diary_entry.updated_at, :format => :blog) != l(diary_entry.created_at, :format => :blog)) %>
+      <%= t("diary_entries.diary_entry.updated_at_html", :updated => l(diary_entry.updated_at, :format => :blog)) %>
+    <% end %>
+  </small>
+</div>
index e464b99b4829d40758fcd7912d1b805c8393de64..78ac0dcf869976bf05d4a020172e1e2c0202b90e 100644 (file)
         <ul class="clearfix">
           <% unless params[:friends] or params[:nearby] -%>
             <li><%= rss_link_to :action => "rss", :language => params[:language] %></li>
-            <% end -%>
+          <% end -%>
 
-            <% if @user && @user == current_user || !@user && current_user %>
-              <li><%= link_to image_tag("new.png", :class => "small_icon") + t(".new"), new_diary_entry_path, :title => t(".new_title") %></li>
-            <% end %>
+          <% @languages&.each do |language| %>
+            <li><%= link_to t(".in_language_title", :language => language.name), :action => "index", :language => language.code %></li>
+          <% end %>
 
-            <% if !@user && current_user %>
-              <li><%= link_to t(".my_diary"), :controller => "diary_entries", :action => "index", :display_name => current_user.display_name %></li>
-            <% end %>
+          <% if !@user && current_user %>
+            <li><%= link_to t(".my_diary"), :controller => "diary_entries", :action => "index", :display_name => current_user.display_name %></li>
+          <% end %>
+
+          <% if @user && @user == current_user || !@user && current_user %>
+            <li><%= link_to image_tag("new.png", :class => "small_icon") + t(".new"), new_diary_entry_path, :title => t(".new_title") %></li>
+          <% end %>
         </ul>
       </nav>
     </div>
index 5bfdfa17b3205dfd49648ace8b04d78ab388b81b..63ab89b8f376006a7a52f348648dbd19da5811f9 100644 (file)
 
 <%= render @entry %>
 
-<div id="comments" class="comments">
-<%= render :partial => "diary_comment", :collection => @comments %>
-</div>
+<div id="comments" class="comments mb-3 overflow-hidden">
+  <div class="row border-bottom border-grey">
+    <h2 class="col"><%= t(".discussion") %></h2>
 
-<hr>
+    <% if current_user %>
+      <div class="col-auto">
+        <% if @entry.subscribers.exists?(current_user.id) %>
+          <%= link_to t("javascripts.changesets.show.unsubscribe"), diary_entry_unsubscribe_path(:display_name => @entry.user.display_name, :id => @entry.id), :method => :post, :class => "btn btn-sm btn-primary" %>
+        <% else %>
+          <%= link_to t("javascripts.changesets.show.subscribe"), diary_entry_subscribe_path(:display_name => @entry.user.display_name, :id => @entry.id), :method => :post, :class => "btn btn-sm btn-primary" %>
+        <% end %>
+      </div>
+    <% end %>
+  </div>
+
+  <%= render :partial => "diary_comment", :collection => @comments %>
+</div>
 
 <div>
   <% if current_user %>
     <%= bootstrap_form_for @entry.comments.new, :url => { :action => "comment" } do |f| %>
       <%= f.richtext_field :body, :cols => 80, :rows => 20, :hide_label => true %>
       <%= f.primary %>
-      <% if @entry.subscribers.exists?(current_user.id) %>
-        <%= link_to t("javascripts.changesets.show.unsubscribe"), diary_entry_unsubscribe_path(:display_name => @entry.user.display_name, :id => @entry.id), :method => :post, :class => "btn btn-light" %>
-      <% else %>
-        <%= link_to t("javascripts.changesets.show.subscribe"), diary_entry_subscribe_path(:display_name => @entry.user.display_name, :id => @entry.id), :method => :post, :class => "btn btn-light" %>
-      <% end %>
     <% end %>
   <% else %>
     <h3 id="newcomment"><%= t(".login_to_leave_a_comment_html", :login_link => link_to(t(".login"), login_path(:referer => request.fullpath))) %></h3>
diff --git a/app/views/diary_entries/subscribe.html.erb b/app/views/diary_entries/subscribe.html.erb
new file mode 100644 (file)
index 0000000..e18be2b
--- /dev/null
@@ -0,0 +1,12 @@
+<% content_for :heading do %>
+  <h1><%= t ".heading", :user => @diary_entry.user.display_name %></h1>
+<% end %>
+
+<%= render :partial => "diary_entry_heading", :object => @diary_entry, :as => "diary_entry" %>
+
+<%= bootstrap_form_tag do |f| %>
+  <% if params[:referer] -%>
+  <%= f.hidden_field :referer, :value => params[:referer] %>
+  <% end -%>
+  <%= f.primary t(".button") %>
+<% end %>
diff --git a/app/views/diary_entries/unsubscribe.html.erb b/app/views/diary_entries/unsubscribe.html.erb
new file mode 100644 (file)
index 0000000..e18be2b
--- /dev/null
@@ -0,0 +1,12 @@
+<% content_for :heading do %>
+  <h1><%= t ".heading", :user => @diary_entry.user.display_name %></h1>
+<% end %>
+
+<%= render :partial => "diary_entry_heading", :object => @diary_entry, :as => "diary_entry" %>
+
+<%= bootstrap_form_tag do |f| %>
+  <% if params[:referer] -%>
+  <%= f.hidden_field :referer, :value => params[:referer] %>
+  <% end -%>
+  <%= f.primary t(".button") %>
+<% end %>
index 9c5695e0a88558c794a21ce94bb01aefb05e392a..7776d9ee398a89077a3899b1bbe9a79d83ece820 100644 (file)
@@ -7,7 +7,8 @@
       <div class="col">
         <p class="text-muted">
           <%= t ".comment_from_html", :user_link => link_to(comment.user.display_name, user_path(comment.user)),
-                                      :comment_created_at => l(comment.created_at.to_datetime, :format => :friendly) %>
+                                      :comment_created_at => tag.time(l(comment.created_at.to_datetime, :format => :friendly),
+                                                                      :datetime => comment.created_at.xmlschema) %>
         </p>
         <div class="richtext text-break"><%= comment.body.to_html %></div>
       </div>
index d11bca0a9d9c2a10174556276cdb242a0fbabd35..9ef28f1c29007c06664aed58894350b90fcc0081 100644 (file)
@@ -7,7 +7,8 @@
       <p class="text-muted">
         <%= t ".reported_by_html", :category => report.category,
                                    :user => link_to(report.user.display_name, user_path(report.user)),
-                                   :updated_at => l(report.updated_at.to_datetime, :format => :friendly) %>
+                                   :updated_at => tag.time(l(report.updated_at.to_datetime, :format => :friendly),
+                                                           :datetime => report.updated_at.xmlschema) %>
       </p>
       <div class="richtext text-break"><%= report.details.to_html %></div>
     </div>
index 62bd501b74afb2bba2a5aeb59331b9eb43f383e2..e2099f8e6878cab075faf7657940676d408bfb42 100644 (file)
@@ -9,9 +9,20 @@
     <% else %>
       | <%= t ".no_reports" %>
     <% end %>
-    | <%= t ".report_created_at", :datetime => l(@issue.created_at.to_datetime, :format => :friendly) %>
-    <%= " | #{t('.last_resolved_at', :datetime => l(@issue.resolved_at.to_datetime, :format => :friendly))}" if @issue.resolved_at? %>
-    <%= " | #{t('.last_updated_at', :datetime => l(@issue.updated_at.to_datetime, :format => :friendly), :displayname => @issue.user_updated.display_name)}" if @issue.user_updated %>
+      | <%= t ".report_created_at_html",
+              :datetime => tag.time(l(@issue.created_at.to_datetime, :format => :friendly),
+                                    :datetime => @issue.created_at.xmlschema) %>
+    <% if @issue.resolved_at? %>
+      | <%= t ".last_resolved_at_html",
+              :datetime => tag.time(l(@issue.resolved_at.to_datetime, :format => :friendly),
+                                    :datetime => @issue.resolved_at.xmlschema) %>
+    <% end %>
+    <% if @issue.user_updated %>
+      | <%= t ".last_updated_at_html",
+              :datetime => tag.time(l(@issue.updated_at.to_datetime, :format => :friendly),
+                                    :datetime => @issue.updated_at.xmlschema),
+              :displayname => link_to(@issue.user_updated.display_name, user_path(@issue.user_updated)) %>
+    <% end %>
   </small>
 </p>
 <nav class="secondary-actions">
index fb5c018392364bb4e5f945c4d7d6f36c2de5afcb..e9ded0f75c7f68cda1aec81000512bbf5e9c4d01 100644 (file)
@@ -1,4 +1,4 @@
-<header class="closed clearfix">
+<header class="d-flex text-nowrap closed">
   <h1 class="m-0 fw-semibold">
     <a href="<%= root_path %>" class="text-black text-decoration-none geolink">
       <%= image_tag "osm_logo.png", :srcset => image_path("osm_logo.svg"), :alt => t("layouts.logo.alt_text"), :width => 30, :height => 30, :class => "logo" %>
@@ -9,7 +9,7 @@
   <nav class='primary'>
     <%= content_for :header %>
     <div class="btn-group">
-      <div id="edit_tab" class="btn-group <%= current_page_class(edit_path) %>">
+      <div id="edit_tab" class="btn-group">
         <%= link_to t("layouts.edit"),
                     edit_path,
                     :class => "btn btn-outline-primary geolink editlink",
@@ -27,8 +27,8 @@
           <% end %>
         </ul>
       </div>
-      <%= link_to t("layouts.history"), history_path, :class => "btn btn-outline-primary geolink flex-grow-1 current_page_class(history_path)", :id => "history_tab" %>
-      <%= link_to t("layouts.export"), export_path, :class => "btn btn-outline-primary geolink current_page_class(export_path)", :id => "export_tab" %>
+      <%= link_to t("layouts.history"), history_path, :class => "btn btn-outline-primary geolink flex-grow-1", :id => "history_tab" %>
+      <%= link_to t("layouts.export"), export_path, :class => "btn btn-outline-primary geolink", :id => "export_tab" %>
     </div>
   </nav>
   <nav class='secondary'>
@@ -80,7 +80,7 @@
       </li>
     </ul>
     <% if current_user && current_user.id %>
-      <div class='d-inline-flex dropdown user-menu logged-in clearfix'>
+      <div class='d-inline-flex dropdown user-menu logged-in'>
         <button class='dropdown-toggle btn btn-outline-secondary border-grey bg-white text-secondary px-2 py-1 flex-grow-1' type='button' data-bs-toggle='dropdown'>
           <%= user_thumbnail_tiny(current_user, :width => 25, :height => 25, :class => "user_thumbnail_tiny rounded-1") %>
           <%= render :partial => "layouts/inbox" %>
index 55066f25f227e1bee738d23f7763c0895d1d298e..f6a7473a4f6f777d3977a4c4026a19de0efbb12d 100644 (file)
                                        :bytemark => link_to(t("layouts.partners_bytemark"), "https://www.bytemark.co.uk"),
                                        :partners => link_to(t("layouts.partners_partners"), "https://hardware.openstreetmap.org/thanks/") %>
         </p>
-        <div class="d-flex mx-n1">
-          <div class="w-50 px-1">
-            <a class="btn btn-primary w-100" href="<%= about_path %>"><%= t("layouts.learn_more") %></a>
-          </div>
-          <div class="w-50 px-1">
-            <a class="btn btn-primary w-100" href="<%= user_new_path %>"><%= t("layouts.start_mapping") %></a>
-          </div>
+        <div class="d-flex gap-2">
+          <a class="btn btn-primary w-100 d-flex align-items-center justify-content-center" href="<%= about_path %>"><%= t("layouts.learn_more") %></a>
+          <a class="btn btn-primary w-100 d-flex align-items-center justify-content-center" href="<%= user_new_path %>"><%= t("layouts.start_mapping") %></a>
         </div>
       </div>
     <% end %>
diff --git a/app/views/messages/_heading.html.erb b/app/views/messages/_heading.html.erb
new file mode 100644 (file)
index 0000000..90995ed
--- /dev/null
@@ -0,0 +1,18 @@
+<% content_for :heading_class, "pb-0" %>
+
+<% content_for :heading do %>
+  <h1><%= t("users.show.my messages") %></h1>
+  <ul class="nav nav-tabs">
+    <% { ".my_inbox" => inbox_messages_path, ".my_outbox" => outbox_messages_path, ".muted_messages" => muted_messages_path }.each do |i18n_key, path| %>
+    <% next if path == muted_messages_path && current_user.muted_messages.none? %>
+
+    <li class="nav-item">
+      <% if path == active_link_path %>
+        <a class="nav-link active"><%= t(i18n_key) %></a>
+      <% else %>
+        <%= link_to t(i18n_key), path, :class => "nav-link" %>
+      <% end %>
+    </li>
+    <% end %>
+  </ul>
+<% end %>
similarity index 91%
rename from app/views/messages/_message_count.html.erb
rename to app/views/messages/_inbox_count.html.erb
index 33a3b52f3917c400cb1bedbe16e44de4692e66ba..86bb2c474d8bf005e290ce7a5e80a47d3d31ad3d 100644 (file)
@@ -1,7 +1,7 @@
-<p id="inbox-count">
+<h4 id="inbox-count">
 <%= t "messages.inbox.messages",
       :new_messages => t("messages.inbox.new_messages",
                          :count => current_user.new_messages.size),
       :old_messages => t("messages.inbox.old_messages",
                          :count => current_user.messages.size - current_user.new_messages.size) %>
-</p>
+</h4>
index b2a1bc26868e82de84ee3cac44a0357c313a36b2..4a552e83e05479a7d6df58d9cd0f23311c3742ef 100644 (file)
@@ -6,5 +6,8 @@
     <%= button_to t(".unread_button"), message_mark_path(message_summary, :mark => "unread"), :remote => true, :class => "btn btn-sm btn-primary", :form => { :class => "inbox-mark-unread", :hidden => !message_summary.message_read? } %>
     <%= button_to t(".read_button"), message_mark_path(message_summary, :mark => "read"), :remote => true, :class => "btn btn-sm btn-primary", :form => { :class => "inbox-mark-read", :hidden => message_summary.message_read? } %>
     <%= button_to t(".destroy_button"), message_path(message_summary, :referer => request.fullpath), :method => :delete, :remote => true, :class => "btn btn-sm btn-danger", :form_class => "inbox-destroy" %>
+    <% if message_summary.muted? %>
+      <%= button_to t(".unmute_button"), message_unmute_path(message_summary), :method => :patch, :class => "btn btn-sm btn-secondary" %>
+    <% end %>
   </td>
 </tr>
diff --git a/app/views/messages/_messages_table.html.erb b/app/views/messages/_messages_table.html.erb
new file mode 100644 (file)
index 0000000..2e33962
--- /dev/null
@@ -0,0 +1,13 @@
+<table class="table table-sm align-middle">
+  <thead>
+    <tr>
+      <% columns.each do |column| %>
+      <th><%= t ".#{column}" %></th>
+      <% end %>
+      <th class="d-flex justify-content-end"><%= t ".actions" %></th>
+    </tr>
+  </thead>
+  <tbody>
+    <%= render :partial => inner_partial, :collection => messages %>
+  </tbody>
+</table>
diff --git a/app/views/messages/_muted_count.html.erb b/app/views/messages/_muted_count.html.erb
new file mode 100644 (file)
index 0000000..207973d
--- /dev/null
@@ -0,0 +1,3 @@
+<h4 id="muted-count">
+<%= t "messages.muted.messages", :count => current_user.muted_messages.size %>
+</h4>
diff --git a/app/views/messages/_outbox_count.html.erb b/app/views/messages/_outbox_count.html.erb
new file mode 100644 (file)
index 0000000..5b27f1d
--- /dev/null
@@ -0,0 +1,3 @@
+<h4 id="outbox-count">
+<%= t "messages.outbox.messages", :count => current_user.sent_messages.size %>
+</h4>
index 3403ac888e27210467629afc2dba0532c98e4c64..65bfd6a6b70a97d9c5e06107d0ee076ea4e86931 100644 (file)
@@ -1,2 +1,4 @@
 json.inboxanchor render(:partial => "layouts/inbox")
-json.inbox_count render(:partial => "message_count")
+json.inbox_count render(:partial => "inbox_count")
+json.outbox_count render(:partial => "outbox_count")
+json.muted_count render(:partial => "muted_count")
index 54089c34a65ba6cea80c625b0ed7b362b0e7cdcd..4d6be787b93fa5866404c8fc5721afe505382a12 100644 (file)
@@ -2,35 +2,12 @@
   <%= javascript_include_tag "messages" %>
 <% end %>
 
-<% content_for :heading_class, "pb-0" %>
+<%= render :partial => "heading", :locals => { :active_link_path => inbox_messages_path } %>
 
-<% content_for :heading do %>
-  <h1><%= t("users.show.my messages") %></h1>
-  <ul class="nav nav-tabs">
-    <li class="nav-item">
-      <a class="nav-link active"><%= t ".my_inbox" %></a>
-    </li>
-    <li class="nav-item">
-      <%= link_to t(".my_outbox"), outbox_messages_path, :class => "nav-link" %>
-    </li>
-  </ul>
-<% end %>
-
-  <h4><%= render :partial => "message_count" %></h4>
+<%= render :partial => "inbox_count" %>
 
 <% if current_user.messages.size > 0 %>
-  <table class="table table-sm align-middle">
-    <thead>
-      <tr>
-        <th><%= t ".from" %></th>
-        <th><%= t ".subject" %></th>
-        <th><%= t ".date" %></th>
-      </tr>
-    </thead>
-    <tbody>
-        <%= render :partial => "message_summary", :collection => current_user.messages %>
-    </tbody>
-  </table>
+  <%= render :partial => "messages_table", :locals => { :columns => %w[from subject date], :messages => current_user.messages, :inner_partial => "message_summary" } %>
 <% else %>
   <div><%= t(".no_messages_yet_html", :people_mapping_nearby_link => link_to(t(".people_mapping_nearby"), user_path(current_user))) %></div>
 <% end %>
index 3403ac888e27210467629afc2dba0532c98e4c64..65bfd6a6b70a97d9c5e06107d0ee076ea4e86931 100644 (file)
@@ -1,2 +1,4 @@
 json.inboxanchor render(:partial => "layouts/inbox")
-json.inbox_count render(:partial => "message_count")
+json.inbox_count render(:partial => "inbox_count")
+json.outbox_count render(:partial => "outbox_count")
+json.muted_count render(:partial => "muted_count")
diff --git a/app/views/messages/muted.html.erb b/app/views/messages/muted.html.erb
new file mode 100644 (file)
index 0000000..8e97abc
--- /dev/null
@@ -0,0 +1,9 @@
+<% content_for :head do %>
+  <%= javascript_include_tag "messages" %>
+<% end %>
+
+<%= render :partial => "heading", :locals => { :active_link_path => muted_messages_path } %>
+
+<%= render :partial => "muted_count" %>
+
+<%= render :partial => "messages_table", :locals => { :columns => %w[from subject date], :messages => current_user.muted_messages, :inner_partial => "message_summary" } %>
index e246f9292ebb8afaf0161e306b55fb812176f379..65fbaf3261c818aa79613e6b6a3c6b546b69a9b3 100644 (file)
@@ -2,36 +2,12 @@
   <%= javascript_include_tag "messages" %>
 <% end %>
 
-<% content_for :heading_class, "pb-0" %>
+<%= render :partial => "heading", :locals => { :active_link_path => outbox_messages_path } %>
 
-<% content_for :heading do %>
-  <h1><%= t("users.show.my messages") %></h1>
-
-  <ul class="nav nav-tabs">
-    <li class="nav-item">
-      <%= link_to t(".my_inbox"), inbox_messages_path, :class => "nav-link" %>
-    </li>
-    <li class="nav-item">
-      <a class="nav-link active"><%= t ".my_outbox" %></a>
-    </li>
-  </ul>
-<% end %>
-
-<h4><%= t ".messages", :count => current_user.sent_messages.size %></h4>
+<%= render :partial => "outbox_count" %>
 
 <% if current_user.sent_messages.size > 0 %>
-  <table class="table table-sm align-middle">
-    <thead>
-      <tr>
-        <th><%= t ".to" %></th>
-        <th><%= t ".subject" %></th>
-        <th><%= t ".date" %></th>
-      </tr>
-    </thead>
-    <tbody>
-      <%= render :partial => "sent_message_summary", :collection => current_user.sent_messages %>
-    </tbody>
-  </table>
+  <%= render :partial => "messages_table", :locals => { :columns => %w[to subject date], :messages => current_user.sent_messages, :inner_partial => "sent_message_summary" } %>
 <% else %>
   <div class="messages"><%= t(".no_sent_messages_html", :people_mapping_nearby_link => link_to(t(".people_mapping_nearby"), user_path(current_user))) %></div>
 <% end %>
index 4761aac60d95d4cd5de4dfa4f1481f85248e5a7f..f0742280f76e410cc5ebcdc8ab9c9830d7b5e32b 100644 (file)
@@ -22,9 +22,8 @@
     <%= link_to t(".reply_button"), message_reply_path(@message), :class => "btn btn-primary" %>
     <%= link_to t(".unread_button"), message_mark_path(@message, :mark => "unread"), :method => "post", :class => "btn btn-primary" %>
     <%= link_to t(".destroy_button"), message_path(@message), :method => "delete", :class => "btn btn-danger" %>
-    <%= link_to t(".back"), inbox_messages_path, :class => "btn btn-link" %>
   <% else %>
     <%= link_to t(".destroy_button"), message_path(@message), :method => "delete", :class => "btn btn-danger" %>
-    <%= link_to t(".back"), outbox_messages_path, :class => "btn btn-link" %>
   <% end %>
+  <%= link_to t(".back"), :back, :class => "btn btn-link" %>
 </div>
index fda8946b6b18378ce483c53c0bf267963d5f3df2..a7baccf856dec921056d6c40fd8da7a8c75ff685 100644 (file)
@@ -49,6 +49,8 @@
         <div class="mb-3">
           <textarea class="form-control" name="text" cols="40" rows="5" maxlength="2000"></textarea>
         </div>
+        <div id="comment-error" class="alert alert-danger p-2 mb-3" hidden>
+        </div>
         <div class="btn-wrapper">
           <% if current_user.moderator? -%>
             <%= submit_tag t(".hide"), :name => "hide", :class => "btn btn-light",
                                                    :url => comment_api_note_url(@note, "json") } %>
         </div>
       </form>
+    <% else -%>
+      <p>
+        <%= link_to t(".log_in_to_comment"), login_path(:referer => request.fullpath) %>
+      </p>
     <% end -%>
   <% else %>
     <form class="mb-3" action="#">
       <input type="hidden" name="text" value="" autocomplete="off">
+      <div id="comment-error" class="alert alert-danger p-2 mb-3" hidden>
+      </div>
       <div class="btn-wrapper">
         <% if @note.status != "hidden" and current_user and current_user.moderator? -%>
           <input type="submit" name="hide" value="<%= t(".hide") %>" class="btn btn-light" data-method="DELETE" data-url="<%= api_note_url(@note, "json") %>">
index 564fa81ebf33ad83ce07f55b2d8af173de932466..57e852182941301acd09cb75543270dc149a406b 100644 (file)
@@ -10,7 +10,7 @@
   <td class="align-middle">
     <ul class="list-unstyled mb-0">
       <% application.scopes.each do |scope| -%>
-        <li><%= t "oauth.scopes.#{scope}" %> <code class="text-muted">(<%= scope %>)</code></li>
+        <li><%= authorization_scope(scope) %> <code class="text-muted">(<%= scope %>)</code></li>
       <% end -%>
     </ul>
   </td>
index ac9c7c6c598404131f12fc790444d43b6b21fa36..8720bf05a6461bee51d96a9ec83ccc154e5dde24 100644 (file)
@@ -6,7 +6,7 @@
 
 <ul>
   <% @pre_auth.scopes.each do |scope| -%>
-    <li><%= t "oauth.scopes.#{scope}" %></li>
+    <li><%= authorization_scope(scope) %></li>
   <% end -%>
 </ul>
 
index 8abbb26ed8bb46e83e7830d7d2c97f3f979a96b8..4209b8ff919acb36cc5e1bddd98bb3d707fc92ee 100644 (file)
@@ -5,10 +5,13 @@
   <td class="align-middle">
     <ul class="list-unstyled mb-0">
       <% application.authorized_scopes_for(current_user).each do |scope| -%>
-        <li><%= t "oauth.scopes.#{scope}" %></li>
+        <li><%= authorization_scope(scope) %></li>
       <% end -%>
     </ul>
   </td>
+  <td class="align-middle">
+    <%= friendly_date_ago(application.authorized_tokens.where(:resource_owner_id => current_user).maximum(:created_at)) %>
+  </td>
   <td class="align-middle text-end">
     <%= link_to t(".revoke"), oauth_authorized_application_path(application), { :method => :delete, :class => "btn btn-outline-danger", :data => { :confirm => t(".confirm_revoke") } } %>
   </td>
index 2d3ad00bdea337b269b3609298ebb0c7d92065ab..59d692393257b4617f7fbcc2f40b500fe743edd5 100644 (file)
@@ -10,6 +10,7 @@
       <tr>
         <th><%= t ".application" %></th>
         <th><%= t ".permissions" %></th>
+        <th><%= t ".last_authorized" %></th>
         <th></th>
       </tr>
     </thead>
index a08b3c0ffb4e3a5749cdb6e16218ec21a183ac16..b4c2558cfebe816f88d0c8aa592d9adb107049a3 100644 (file)
@@ -42,4 +42,6 @@
   <% end %>
 </ul>
 <% end %>
+<% if Settings.oauth_10_registration -%>
 <%= link_to t(".register_new"), { :action => :new }, :class => "btn btn-outline-primary" %>
+<% end -%>
diff --git a/app/views/old_nodes/not_found.html.erb b/app/views/old_nodes/not_found.html.erb
new file mode 100644 (file)
index 0000000..1ee5d9d
--- /dev/null
@@ -0,0 +1,7 @@
+<% set_title(t("browse.not_found.title")) %>
+
+<%= render "sidebar_header", :title => t("browse.not_found.title") %>
+
+<div>
+  <p><%= t ".sorry", :id => params[:id], :version => params[:version] %></p>
+</div>
diff --git a/app/views/old_nodes/show.html.erb b/app/views/old_nodes/show.html.erb
new file mode 100644 (file)
index 0000000..90be6b7
--- /dev/null
@@ -0,0 +1,31 @@
+<% set_title t("browse.node.title_html", :name => printable_element_name(@feature)) %>
+
+<%= render "sidebar_header", :title => t("browse.node.title_html", :name => printable_element_name(@feature)) %>
+
+<%= render :partial => "browse/node", :object => @feature %>
+
+<div class='secondary-actions'>
+  <% unless @feature.redacted? %>
+    <%= link_to t("browse.download_xml"), node_version_path(*@feature.id) %>
+    &middot;
+  <% end %>
+  <%= link_to t("browse.view_details"), node_path(@feature.node_id) %>
+</div>
+
+<div class='secondary-actions'>
+  <% if @feature.version > 1 %>
+    <%= link_to old_node_path(@feature.node_id, @feature.version - 1), :class => "icon-link" do %>
+      <%= previous_page_svg_tag :height => 11 %>
+      <%= "#{t('browse.version')} ##{@feature.version - 1}" %>
+    <% end %>
+    &middot;
+  <% end %>
+  <%= link_to t("browse.view_history"), node_history_path(@feature.node_id) %>
+  <% if @feature.version < @feature.current_node.version %>
+    &middot;
+    <%= link_to old_node_path(@feature.node_id, @feature.version + 1), :class => "icon-link" do %>
+      <%= "#{t('browse.version')} ##{@feature.version + 1}" %>
+      <%= next_page_svg_tag :height => 11 %>
+    <% end %>
+  <% end %>
+</div>
diff --git a/app/views/old_relations/not_found.html.erb b/app/views/old_relations/not_found.html.erb
new file mode 100644 (file)
index 0000000..1ee5d9d
--- /dev/null
@@ -0,0 +1,7 @@
+<% set_title(t("browse.not_found.title")) %>
+
+<%= render "sidebar_header", :title => t("browse.not_found.title") %>
+
+<div>
+  <p><%= t ".sorry", :id => params[:id], :version => params[:version] %></p>
+</div>
diff --git a/app/views/old_relations/show.html.erb b/app/views/old_relations/show.html.erb
new file mode 100644 (file)
index 0000000..42e80e6
--- /dev/null
@@ -0,0 +1,31 @@
+<% set_title t("browse.relation.title_html", :name => printable_element_name(@feature)) %>
+
+<%= render "sidebar_header", :title => t("browse.relation.title_html", :name => printable_element_name(@feature)) %>
+
+<%= render :partial => "browse/relation", :object => @feature %>
+
+<div class='secondary-actions'>
+  <% unless @feature.redacted? %>
+    <%= link_to t("browse.download_xml"), relation_version_path(*@feature.id) %>
+    &middot;
+  <% end %>
+  <%= link_to t("browse.view_details"), relation_path(@feature.relation_id) %>
+</div>
+
+<div class='secondary-actions'>
+  <% if @feature.version > 1 %>
+    <%= link_to old_relation_path(@feature.relation_id, @feature.version - 1), :class => "icon-link" do %>
+      <%= previous_page_svg_tag :height => 11 %>
+      <%= "#{t('browse.version')} ##{@feature.version - 1}" %>
+    <% end %>
+    &middot;
+  <% end %>
+  <%= link_to t("browse.view_history"), relation_history_path(@feature.relation_id) %>
+  <% if @feature.version < @feature.current_relation.version %>
+    &middot;
+    <%= link_to old_relation_path(@feature.relation_id, @feature.version + 1), :class => "icon-link" do %>
+      <%= "#{t('browse.version')} ##{@feature.version + 1}" %>
+      <%= next_page_svg_tag :height => 11 %>
+    <% end %>
+  <% end %>
+</div>
diff --git a/app/views/old_ways/not_found.html.erb b/app/views/old_ways/not_found.html.erb
new file mode 100644 (file)
index 0000000..1ee5d9d
--- /dev/null
@@ -0,0 +1,7 @@
+<% set_title(t("browse.not_found.title")) %>
+
+<%= render "sidebar_header", :title => t("browse.not_found.title") %>
+
+<div>
+  <p><%= t ".sorry", :id => params[:id], :version => params[:version] %></p>
+</div>
diff --git a/app/views/old_ways/show.html.erb b/app/views/old_ways/show.html.erb
new file mode 100644 (file)
index 0000000..b16c6b2
--- /dev/null
@@ -0,0 +1,31 @@
+<% set_title t("browse.way.title_html", :name => printable_element_name(@feature)) %>
+
+<%= render "sidebar_header", :title => t("browse.way.title_html", :name => printable_element_name(@feature)) %>
+
+<%= render :partial => "browse/way", :object => @feature %>
+
+<div class='secondary-actions'>
+  <% unless @feature.redacted? %>
+    <%= link_to t("browse.download_xml"), way_version_path(*@feature.id) %>
+    &middot;
+  <% end %>
+  <%= link_to t("browse.view_details"), way_path(@feature.way_id) %>
+</div>
+
+<div class='secondary-actions'>
+  <% if @feature.version > 1 %>
+    <%= link_to old_way_path(@feature.way_id, @feature.version - 1), :class => "icon-link" do %>
+      <%= previous_page_svg_tag :height => 11 %>
+      <%= "#{t('browse.version')} ##{@feature.version - 1}" %>
+    <% end %>
+    &middot;
+  <% end %>
+  <%= link_to t("browse.view_history"), way_history_path(@feature.way_id) %>
+  <% if @feature.version < @feature.current_way.version %>
+    &middot;
+    <%= link_to old_way_path(@feature.way_id, @feature.version + 1), :class => "icon-link" do %>
+      <%= "#{t('browse.version')} ##{@feature.version + 1}" %>
+      <%= next_page_svg_tag :height => 11 %>
+    <% end %>
+  <% end %>
+</div>
similarity index 74%
rename from app/views/passwords/reset_password.html.erb
rename to app/views/passwords/edit.html.erb
index 99f07cab6d6bff7dda0ac74e11e6545a85c43ae2..ae7900ece84adb9d71ef0ab4327b190ddd696df2 100644 (file)
@@ -2,7 +2,7 @@
   <h1><%= t ".heading", :user => current_user.display_name %></h1>
 <% end %>
 
-<%= bootstrap_form_for current_user, :url => { :action => "reset_password" }, :html => { :method => :post } do |f| %>
+<%= bootstrap_form_for current_user, :url => { :action => "update" }, :html => { :method => :post } do |f| %>
   <%= f.hidden_field :token, :name => "token", :value => params[:token] %>
   <%= f.password_field :pass_crypt, :value => "" %>
   <%= f.password_field :pass_crypt_confirmation, :value => "" %>
index 03755730bdd411fd7c3f027041d0855917b46776..f15430efa554627f3b9a9dcf708818a40b6ee656 100644 (file)
@@ -13,7 +13,7 @@
     <%= hidden_field_tag("referer", h(params[:referer]), :autocomplete => "off") %>
 
     <%= f.text_field :username, :label => t(".email or username"), :tabindex => 1, :value => params[:username] %>
-    <%= f.password_field :password, :label => t(".password"), :tabindex => 2, :value => "", :help => link_to(t(".lost password link"), :controller => "passwords", :action => "lost_password") %>
+    <%= f.password_field :password, :label => t(".password"), :tabindex => 2, :value => "", :help => link_to(t(".lost password link"), user_forgot_password_path) %>
     <%= f.form_group do %>
       <%= f.check_box :remember_me, { :label => t(".remember"), :tabindex => 3, :checked => (params[:remember_me] == "yes") }, "yes" %>
     <% end %>
@@ -40,7 +40,7 @@
         <div id='login_openid_url' class="mb-3">
           <label for='openid_url' class="form-label"><%= t ".openid_html", :logo => openid_logo %></label>
           <%= hidden_field_tag("referer", params[:referer], :autocomplete => "off") %>
-          <%= text_field_tag("openid_url", "", :tabindex => 3, :autocomplete => "on", :class => "openid_url form-control") %>
+          <%= text_field_tag("openid_url", "", :tabindex => 5, :autocomplete => "on", :class => "openid_url form-control") %>
           <span class="form-text text-muted">(<a href="<%= t "accounts.edit.openid.link" %>" target="_new"><%= t "accounts.edit.openid.link text" %></a>)</span>
         </div>
 
index 9097c9d9174c162b55cfddea5f37bc95e2fb6bf7..d2576bfcc959d81580cac5730f3159d039104fa6 100644 (file)
@@ -18,4 +18,7 @@
 
   <dt><%= t ".image" %></dt>
   <dd>![<%= t ".alt" %>](<%= t ".url" %>)</dd>
+
+  <dt><%= t ".codeblock" %></dt>
+  <dd>~~~<br><%= t ".codeblock" %><br>~~~</dd>
 </dl>
index fbb9dcf43321ccfc11abbdbd4771732942c451be..3a60003626725b7c7ae8a88fc40f159c293d8089 100644 (file)
@@ -1,22 +1,31 @@
 <nav>
+  <% link_class = "page-link d-flex align-items-center gap-2 text-center" %>
   <ul class="pagination">
+    <% newer_link_content = capture do %>
+      <%= previous_page_svg_tag :class => "flex-shrink-0 d-none d-sm-block" %>
+      <%= t(newer_key) %>
+    <% end %>
     <% if newer_id -%>
-      <li class="page-item">
-        <%= link_to t(newer_key), @params.merge(:before => nil, :after => newer_id), :class => "page-link" %>
+      <li class="page-item d-flex">
+        <%= link_to newer_link_content, @params.merge(:before => nil, :after => newer_id), :class => link_class %>
       </li>
     <% else -%>
-      <li class="page-item disabled">
-        <span class="page-link"><%= t(newer_key) %></span>
+      <li class="page-item d-flex disabled">
+        <%= tag.span newer_link_content, :class => link_class %>
       </li>
     <% end -%>
 
+    <% older_link_content = capture do %>
+      <%= t(older_key) %>
+      <%= next_page_svg_tag :class => "flex-shrink-0 d-none d-sm-block" %>
+    <% end %>
     <% if older_id -%>
-      <li class="page-item">
-        <%= link_to t(older_key), @params.merge(:before => older_id, :after => nil), :class => "page-link" %>
+      <li class="page-item d-flex">
+        <%= link_to older_link_content, @params.merge(:before => older_id, :after => nil), :class => link_class %>
       </li>
     <% else -%>
-      <li class="page-item disabled">
-        <span class="page-link"><%= t(older_key) %></span>
+      <li class="page-item d-flex disabled">
+        <%= tag.span older_link_content, :class => link_class %>
       </li>
     <% end -%>
   </ul>
index ade1e9437d71b929272b38728c7e984e1621bbb8..b180eb1a58cd980f5316317444acb1a9941e9b16 100644 (file)
@@ -4,28 +4,21 @@
 
 <p class='introduction'><%= t ".introduction" %></p>
 
-<% sites = %w[beginners_guide help mailing_lists community irc switch2osm welcomemat wiki] %>
+<% sites = %w[beginners_guide community mailing_lists irc switch2osm welcomemat wiki] %>
 <% sites.prepend("welcome") if current_user %>
 
 <div class="row row-cols-sm-3 g-4 mb-3">
   <% sites.each do |site| %>
     <div class="col">
       <div class='<%= site %> help-item card h-100'>
+        <h6 class='card-header'>
+          <a href='<%= t ".#{site}.url" %>' class='stretched-link'>
+            <%= t ".#{site}.title" %>
+          </a>
+        </h6>
         <div class='card-body'>
-          <h6 class='card-title'>
-            <a href='<%= t ".#{site}.url" %>'>
-              <%= t ".#{site}.title" %>
-            </a>
-          </h6>
           <p class='card-text'><%= t ".#{site}.description" %></p>
         </div>
-        <div class="card-footer">
-          <small>
-            <a href='<%= t ".#{site}.url" %>'>
-              <%= t ".#{site}.url" %>
-            </a>
-          </small>
-        </div>
       </div>
     </div>
   <% end %>
index 949121d96f2f64aae1b325d473bbde2f59baa6db..82105097e7b409eaffc16f7e1a9bb8f5e25f2784 100644 (file)
@@ -1,15 +1,19 @@
 <div id="mapkey">
-  <table class="table table-sm table-borderless mapkey-table mb-0">
-    <% YAML.load_file(Rails.root.join("config/key.yml")).each do |name,data| %>
-      <% data.each do |entry| %>
-        <tr class="mapkey-table-entry" data-layer="<%= name %>" data-zoom-min="<%= entry["min_zoom"] %>" data-zoom-max="<%= entry["max_zoom"] %>">
-          <td class="mapkey-table-key align-middle">
-            <%= image_tag "key/#{name}/#{entry['image']}" %>
+  <table class="table table-sm table-borderless mb-0 align-middle">
+    <% @key.each do |layer_name, layer_data| %>
+      <% layer_data.each do |entry| %>
+        <%= tag.tr :class => "mapkey-table-entry", :data => { :layer => layer_name, :zoom_min => entry["min_zoom"], :zoom_max => entry["max_zoom"] } do %>
+          <td>
+            <% if entry["image"] %>
+              <%= image_tag "key/#{layer_name}/#{entry['image']}", :class => "d-block mx-auto" %>
+            <% else %>
+              <%= key_svg_tag :class => "d-block mx-auto", **entry %>
+            <% end %>
           </td>
-          <td class="mapkey-table-value">
-            <%= Array(t(".table.entry.#{entry['name']}")).to_sentence %>
+          <td>
+            <%= entry["name"].map { |feature_name| t ".table.entry.#{feature_name}" }.join(" · ") %>
           </td>
-        </tr>
+        <% end %>
       <% end %>
     <% end %>
   </table>
index b05620f599efbbc74ed6f32603d4c2e77d312f45..8ec32ea9c86e8446f870b9f3506ccec2158cf17a 100644 (file)
 </div>
 
 <div class='clearfix text-center'>
-  <p class="display-5"><a href="<%= edit_path %>" class="button start-mapping"><%= t ".start_mapping" %></a></p>
+  <p class="display-5">
+<% if params[:oauth_return_url] %>
+  <a class="btn btn-primary" href="<%= params[:oauth_return_url] %>"><%= t ".continue_authorization" %></a>
+<% else %>
+  <a class="button btn btn-primary start-mapping" href="<%= edit_path %>"><%= t ".start_mapping" %></a>
+<% end %>
+  </p>
 </div>
 
 <div class='alert alert-primary'>
diff --git a/app/views/user_blocks/revoke_all.html.erb b/app/views/user_blocks/revoke_all.html.erb
new file mode 100644 (file)
index 0000000..7fef69b
--- /dev/null
@@ -0,0 +1,27 @@
+<% @title = t ".title",
+              :block_on => @user.display_name %>
+
+<% content_for :heading do %>
+  <h1><%= t ".heading_html",
+            :block_on => link_to(@user.display_name,
+                                 user_path(@user)) %></h1>
+<% end %>
+
+<% unless @user.blocks.active.empty? %>
+
+  <%= bootstrap_form_for :revoke_all, :url => { :action => "revoke_all" } do |f| %>
+    <div class="mb-3">
+      <div class="form-check">
+        <%= check_box_tag "confirm", "yes", false, { :class => "form-check-input" } %>
+        <%= label_tag "confirm", t(".confirm",
+                                   :active_blocks => t(".active_blocks",
+                                                       :count => @user.blocks.active.count)), { :class => "form-check-label" } %>
+      </div>
+    </div>
+
+    <%= f.primary t(".revoke") %>
+  <% end %>
+
+<% else %>
+<p><%= t ".empty", :name => @user.display_name %></p>
+<% end %>
index 50fcd69600ff05d966de48f29318df88619113ae..85b4c7cae1c0e9f198a69d75128e722f42a09dac 100644 (file)
@@ -1,7 +1,8 @@
 <% trace_name = tag.strong(@trace_name) %>
+<% trace_name = link_to(trace_name, @trace_url) if @trace_url %>
 <% trace_description = tag.em(@trace_description) %>
 <% if @trace_tags.length > 0 %>
-  <% tags = @trace_tags.map(&:tag).join(" ") %>
+  <% tags = safe_join @trace_tags.map { |trace_tag| tag.em trace_tag.tag }, ", " %>
   <%= t ".description_with_tags_html", :trace_name => trace_name, :trace_description => trace_description, :tags => tags %>
 <% else %>
   <%= t ".description_with_no_tags_html", :trace_name => trace_name, :trace_description => trace_description %>
index 95c5cdc5bc3f718b6106f45f544b7bf23a998ab6..efba71eb651d47a865a9b99059fbb347e8881fe2 100644 (file)
@@ -24,6 +24,6 @@
 
 <% content_for :footer do %>
   <p>
-    <%= t ".unsubscribe_html", :url => link_to(@changeset_url, @changeset_url, :style => "color: #222") %>
+    <%= t ".unsubscribe_html", :url => link_to(@unsubscribe_url, @unsubscribe_url) %>
   </p>
 <% end %>
index ce9c0099a1948da7e0c44e7b49a445157d53b916..8c0727583a717552655460944dd7389b64aca07a 100644 (file)
@@ -17,4 +17,4 @@
 
 <%= t '.details', :url => @changeset_url %>
 
-<%= t '.unsubscribe', :url => @changeset_url %>
+<%= t '.unsubscribe', :url => @unsubscribe_url %>
index 7f9368fe33b038bb25c2e185c7f07d2b8fb917ef..dab4510edb9467538558ce6dec62da05b1c7b4a6 100644 (file)
@@ -15,4 +15,7 @@
            :commenturl => link_to(@commenturl, @commenturl) + tag.br,
            :replyurl => link_to(@replyurl, @replyurl) %>
   </p>
+  <p><%= t ".footer_unsubscribe_html",
+           :unsubscribeurl => link_to(@unsubscribeurl, @unsubscribeurl) %>
+  </p>
 <% end %>
index cbf9ddaa056d271432de8e8fc38a9cae3c942d88..13aa460f1f8fec9a01682541f6cf2a239465026d 100644 (file)
@@ -7,3 +7,5 @@
 ==
 
 <%= t '.footer', :readurl => @readurl, :commenturl => @commenturl, :replyurl => @replyurl %>
+
+<%= t '.footer_unsubscribe', :unsubscribeurl => @unsubscribeurl %>
index ad60408bd8c2d68663a7d39ce37e0bc1ab58d2d1..4354db20afa708ca0e8753577e54bb83acf3cabd 100644 (file)
@@ -4,3 +4,7 @@
   <%= render :partial => "gpx_description" %>
   <%= t(".loaded", :trace_points => @trace_points, :count => @possible_points) %>
 </p>
+
+<p>
+  <%= t ".all_your_traces_html", :url => link_to(@my_traces_url, @my_traces_url) %>
+</p>
diff --git a/app/views/user_mutes/index.html.erb b/app/views/user_mutes/index.html.erb
new file mode 100644 (file)
index 0000000..cf9e7ed
--- /dev/null
@@ -0,0 +1,38 @@
+<% content_for :heading do %>
+  <h1><%= t ".my_muted_users" %></h1>
+<% end %>
+
+<%= render :partial => "settings_menu" %>
+
+<h4>
+  <%= t ".you_have_muted_n_users", :count => @muted_users.size %>
+</h4>
+<p>
+  <%= t ".user_mute_explainer" %>
+  <em><%= t ".user_mute_admins_and_moderators" %></em>
+</p>
+
+<% if @muted_users.any? %>
+  <table class="table">
+    <thead>
+      <tr>
+        <th><%= t ".table.thead.muted_user" %></th>
+        <th class="d-flex justify-content-end"><%= t ".table.thead.actions" %></th>
+      </tr>
+    </thead>
+    <tbody>
+      <% @muted_users.each do |user| %>
+        <tr>
+          <td>
+            <%= user_thumbnail_tiny user %>
+            <%= link_to user.display_name, user_path(user) %>
+          </td>
+          <td class="text-nowrap text-end">
+            <%= link_to t(".table.tbody.unmute"), user_mute_path(user), :method => :delete, :class => "btn btn-sm btn-primary" %>
+            <%= link_to t(".table.tbody.send_message"), new_message_path(user), :class => "btn btn-sm btn-secondary" %>
+          </td>
+        </tr>
+      <% end %>
+    </tbody>
+  </table>
+<% end %>
index 81fda926b7a081b333add6d07f6d3aaa87989668..253945b9b6d2529d1cbc344453c257f924dcdd7f 100644 (file)
               </li>
             <% end %>
 
+            <% if can?(:revoke_all, UserBlock) and @user.blocks.active.exists? %>
+              <li>
+                <%= link_to t(".revoke_all_blocks"), revoke_all_user_blocks_path(@user) %>
+              </li>
+            <% end %>
+
             <% if can?(:create, UserBlock) %>
               <li>
                 <%= link_to t(".create_block"), new_user_block_path(@user) %>
                 <%= report_link(t(".report"), @user) %>
               </li>
             <% end %>
+
+            <% if current_user and UserMute.exists?(owner: current_user, subject: @user) %>
+              <li>
+              <%= link_to t(".destroy_mute"), user_mute_path(@user), :method => :delete %>
+              </li>
+            <% elsif current_user %>
+              <li>
+              <%= link_to t(".create_mute"), user_mute_path(@user), :method => :post, :title => t("user_mutes.index.user_mute_explainer") %>
+              </li>
+            <% end %>
           </ul>
         </nav>
       <% end %>
index e568c854052cb177b6f3cf69537ed47df17bbb6a..4517e8adfb611d8d073041274321212ff95bf6e1 100644 (file)
@@ -35,6 +35,8 @@ module OpenStreetMap
     # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
     # the I18n.default_locale when a translation cannot be found).
     config.i18n.fallbacks = true
+    # Enables custom error message formats
+    config.active_model.i18n_customize_full_message = true
 
     # Use logstash for logging if required
     if Settings.key?(:logstash_path)
index 08d3236bfd21dc6a328d8acdbf9320f1053b7273..80871151fa501761b7a6e6e938a5fc38f3f88653 100644 (file)
@@ -67,4 +67,7 @@ Rails.application.configure do
 
   # Use the test adapter for ActiveJob during testing.
   config.active_job.queue_adapter = :test
+
+  # Allow FactoryBot to set primary key attributes
+  config.factory_bot.reject_primary_key_attributes = false
 end
index c1cc522a5e13b24eef5b2bae373c512d403b82f6..f36e6ac1ac4f0686dc401f928c552fe1695478b4 100644 (file)
@@ -79,6 +79,7 @@ Config.setup do |config|
     required(:max_number_of_relation_members).filled(:int?)
     required(:max_issues_count).filled(:int?)
     required(:api_timeout).filled(:int?)
+    required(:user_account_deletion_delay).maybe(:number?)
     required(:imagery_blacklist).maybe(:array?)
     required(:status).filled(:str?, :included_in? => ALLOWED_STATUS)
     required(:avatar_storage).filled(:str?)
index 7421bd3346868dc96b580ad14e6fe1dee61b701e..fdbf11a2ce05cacaaffcdd4a90a822518be92e81 100644 (file)
@@ -6,7 +6,7 @@
 module OpenStreetMap
   class Cors < Rack::Cors
     def call(env)
-      status, headers, body = super env
+      status, headers, body = super(env)
       headers["Cache-Control"] = "no-cache" if headers["Access-Control-Allow-Origin"]
       [status, headers, body]
     end
index 57b89564ffc239bef207abf47fe0abadfe9d51b0..fbe4ad219161a6c87d58c872a98aced64b1acdfd 100644 (file)
@@ -40,12 +40,12 @@ module OpenStreetMap
     def render(options = {})
       text = options.delete(:text)
       if text
-        super options.merge(:plain => text)
+        super(options.merge(:plain => text))
       elsif options.delete(:nothing)
         status = options.delete(:status) || :ok
         head status, options
       else
-        super options
+        super(options)
       end
     end
 
@@ -61,7 +61,7 @@ module OpenStreetMap
           end
         end
 
-        super controller
+        super(controller)
       end
     end
   end
diff --git a/config/initializers/r2.rb b/config/initializers/r2.rb
deleted file mode 100644 (file)
index 4f951b3..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-require "r2"
-
-class R2ScssProcessor < SassC::Rails::ScssTemplate
-  def self.call(input)
-    output = super(input)
-    data = R2.r2(output[:data])
-    output.delete(:map)
-    output.merge(:data => data)
-  end
-end
-
-Rails.application.config.assets.configure do |env|
-  env.register_mime_type "text/r2+scss", :extensions => [".r2.scss"]
-  env.register_transformer "text/r2+scss", "text/css", R2ScssProcessor
-  env.register_preprocessor "text/r2+scss", Sprockets::DirectiveProcessor.new(:comments => ["//", ["/*", "*/"]])
-end
diff --git a/config/initializers/rtlcss.rb b/config/initializers/rtlcss.rb
new file mode 100644 (file)
index 0000000..11e4e0d
--- /dev/null
@@ -0,0 +1,16 @@
+require "rtlcss"
+
+class RtlcssSCSSProcessor < SassC::Rails::ScssTemplate
+  def self.call(input)
+    output = super(input)
+    data = Rtlcss.flip_css(output[:data])
+    output.delete(:map)
+    output.merge(:data => data)
+  end
+end
+
+Rails.application.config.assets.configure do |env|
+  env.register_mime_type "text/rtlcss+scss", :extensions => [".rtlcss.scss"]
+  env.register_transformer "text/rtlcss+scss", "text/css", RtlcssSCSSProcessor
+  env.register_preprocessor "text/rtlcss+scss", Sprockets::DirectiveProcessor.new(:comments => ["//", ["/*", "*/"]])
+end
index 778b5b827aff877439565a0a322ddc1809f28678..60f155139f72f2c5310843fafeed24d707b1fe8f 100644 (file)
@@ -7,7 +7,7 @@ csp_policy = {
   :form_action => %w['self'],
   :frame_ancestors => %w['self'],
   :frame_src => %w['self'],
-  :img_src => %w['self' data: www.gravatar.com *.wp.com tile.openstreetmap.org *.tile.openstreetmap.org *.tile.thunderforest.com tileserver.memomaps.de tile.tracestrack.com *.openstreetmap.fr],
+  :img_src => %w['self' data: www.gravatar.com *.wp.com tile.openstreetmap.org *.tile.openstreetmap.org *.tile.thunderforest.com tile.tracestrack.com *.openstreetmap.fr],
   :manifest_src => %w['self'],
   :media_src => %w['none'],
   :object_src => %w['self'],
index 4446fbe6ec84d87af801d8ccbff931010b70b85f..a78dbb282b482a28db3f4fd81fea6ec9430c3612 100644 (file)
 mapnik:
-  - { min_zoom: 0, max_zoom: 19, name: motorway, image: motorway.png }
-  - { min_zoom: 0, max_zoom: 6, name: main_road, image: mainroad.png }
-  - { min_zoom: 7, max_zoom: 8, name: main_road, image: mainroad7.png }
-  - { min_zoom: 9, max_zoom: 11, name: main_road, image: mainroad9.png }
-  - { min_zoom: 12, max_zoom: 19, name: main_road, image: mainroad12.png }
-  - { min_zoom: 13, max_zoom: 19, name: track, image: track.png }
-  - { min_zoom: 13, max_zoom: 19, name: bridleway, image: bridleway.png }
-  - { min_zoom: 13, max_zoom: 19, name: cycleway, image: cycleway.png }
-  - { min_zoom: 13, max_zoom: 19, name: footway, image: footway.png }
-  - { min_zoom: 8, max_zoom: 12, name: rail, image: rail.png }
-  - { min_zoom: 13, max_zoom: 19, name: rail, image: rail13.png }
-  - { min_zoom: 13, max_zoom: 19, name: subway, image: subway.png }
-  - { min_zoom: 13, max_zoom: 19, name: tram, image: tram.png }
-  - { min_zoom: 12, max_zoom: 19, name: cable, image: cable.png }
-  - { min_zoom: 11, max_zoom: 19, name: runway, image: runway.png }
-  - { min_zoom: 12, max_zoom: 19, name: apron, image: apron.png }
-  - { min_zoom: 0, max_zoom: 19, name: admin, image: admin.png }
-  - { min_zoom: 9, max_zoom: 19, name: forest, image: forest.png }
-  - { min_zoom: 10, max_zoom: 19, name: wood, image: wood.png }
-  - { min_zoom: 10, max_zoom: 19, name: golf, image: golf.png }
-  - { min_zoom: 10, max_zoom: 19, name: park, image: park.png }
-  - { min_zoom: 8, max_zoom: 19, name: resident, image: resident.png }
-  - { min_zoom: 10, max_zoom: 19, name: common, image: common.png }
-  - { min_zoom: 10, max_zoom: 19, name: retail, image: retail.png }
-  - { min_zoom: 10, max_zoom: 19, name: industrial, image: industrial.png }
-  - { min_zoom: 10, max_zoom: 19, name: commercial, image: commercial.png }
-  - { min_zoom: 10, max_zoom: 19, name: heathland, image: heathland.png }
-  - { min_zoom: 7, max_zoom: 19, name: lake, image: lake.png }
-  - { min_zoom: 10, max_zoom: 19, name: farm, image: farm.png }
-  - { min_zoom: 10, max_zoom: 19, name: brownfield, image: brownfield.png }
-  - { min_zoom: 11, max_zoom: 19, name: cemetery, image: cemetery.png }
-  - { min_zoom: 11, max_zoom: 19, name: allotments, image: allotments.png }
-  - { min_zoom: 11, max_zoom: 19, name: pitch, image: pitch.png }
-  - { min_zoom: 11, max_zoom: 19, name: centre, image: centre.png }
-  - { min_zoom: 11, max_zoom: 19, name: reserve, image: reserve.png }
-  - { min_zoom: 11, max_zoom: 19, name: military, image: military.png }
-  - { min_zoom: 12, max_zoom: 19, name: school, image: school.png }
-  - { min_zoom: 12, max_zoom: 19, name: building, image: building.png }
-  - { min_zoom: 12, max_zoom: 19, name: station, image: station.png }
-  - { min_zoom: 12, max_zoom: 19, name: summit, image: summit.png }
-  - { min_zoom: 12, max_zoom: 19, name: tunnel, image: tunnel.png }
-  - { min_zoom: 13, max_zoom: 19, name: bridge, image: bridge.png }
-  - { min_zoom: 15, max_zoom: 19, name: private, image: private.png }
-  - { min_zoom: 15, max_zoom: 19, name: destination, image: destination.png }
-  - { min_zoom: 12, max_zoom: 19, name: construction, image: construction.png }
+  # transportation: roads.mss
+  - { min_zoom:  6, name: motorway, width: 52, height:  1, line: "#e66e89", line-width: 1 }
+  - { min_zoom:  7, name: motorway, width: 52, height:  3, line: "#e66e89", line-width: 1.5 }
+  - { min_zoom:  9, name: motorway, width: 52, height:  2, line: "#e66e89", line-width: 2 }
+  - { min_zoom: 12, name: motorway, width: 52, height:  5, fill: "#e892a2", casing: "#dc2a67", casing-width: 0.5 }
+  - { min_zoom: 15, name: motorway, width: 52, height: 10, fill: "#e892a2", casing: "#dc2a67" }
+  - { min_zoom:  6, name: main_road, width: 52, height: 3, line: "#f6967a", line-width: 1 }
+  - { min_zoom:  7, name: main_road, width: 52, height: 3, line: "#f6967a", line-width: 1.25 }
+  - { min_zoom:  8, name: main_road, image: mainroad8.svg }
+  - { min_zoom:  9, name: main_road, image: mainroad9.svg }
+  - { min_zoom: 12, name: main_road, image: mainroad12.svg }
+  - { min_zoom: 15, name: main_road, image: mainroad15.svg }
+  - { min_zoom: 13, name: track, width: 52, height: 3, opacity: .8, line: "#996600", line-width: 1.5, line-dasharray: "6 5" }
+  - { min_zoom: 13, name: bridleway, width: 52, height: 3, line: green, line-width: 1.25, line-dasharray: "4 2" }
+  - { min_zoom: 13, name: cycleway, width: 52, height: 1, line: blue, line-dasharray: "3 3.5" }
+  - { min_zoom: 13, name: footway, width: 52, height: 3, line: salmon, line-width: 1.3, line-dasharray: "3 3.5" }
+  - { min_zoom:  8, name: rail, width: 52, height: 1, fill: "#787878" }
+  - { min_zoom: 12, name: rail, width: 52, height: 3, fill: "#707070", line: white, line-dasharray: 8, line-dashoffset: 2 }
+  - { min_zoom: 18, name: rail, width: 52, height: 4, fill: "#707070", line: white, line-dasharray: 8, line-dashoffset: 2, line-width: 2 }
+  - { min_zoom: 12, name: subway, width: 52, height: 2, fill: "#999" }
+  - { min_zoom:  8, name: light_rail, width: 52, height: 1, fill: "#ccc" }
+  - { min_zoom: 10, name: light_rail, width: 52, height: 1, fill: "#aaa" }
+  - { min_zoom: 13, name: light_rail, width: 52, height: 2, fill: "#666" }
+  - { min_zoom: 12, name: tram, width: 52, height: 1, line: "#6e6e6e", line-width: 0.75 }
+  - { min_zoom: 14, name: tram, width: 52, height: 3, line: "#6e6e6e", line-width: 1 }
+  - { min_zoom: 15, name: tram, width: 52, height: 3, line: "#6e6e6e", line-width: 1.5 }
+  - { min_zoom: 17, name: tram, width: 52, height: 2, line: "#6e6e6e", line-width: 2 }
+  - { min_zoom: 12, name: [cable_car, chair_lift], image: cable.png }
+  - { min_zoom: 11, name: [runway, taxiway], image: runway11.svg }
+  - { min_zoom: 12, name: [runway, taxiway], image: runway12.svg }
+  - { min_zoom: 13, name: [runway, taxiway], image: runway13.svg }
+  - { min_zoom: 14, name: [runway, taxiway], image: runway14.svg }
+  - { min_zoom: 11, name: apron, width: 26, height: 10, fill: "#dadae0" } # landcover.mss
+  # administrative boundaries: admin.mss
+  - { name: admin, width: 52, height: 2, fill: "#8d618b88" }
+  # places: placenames.mss
+  - { min_zoom: 4, max_zoom: 6, name: capital, image: capital4.svg }
+  - { min_zoom: 7, max_zoom: 7, name: capital, image: capital7.svg }
+  - { min_zoom: 4, max_zoom: 5, name: city, image: city4.svg }
+  - { min_zoom: 6, max_zoom: 7, name: city, image: city6.svg }
+  # landcover z5: landcover.mss, water.mss
+  - { name: [lake, reservoir], width: 26, height: 10, fill: "#aad3df" }
+  - { name: intermittent_water, image: intermittent_water.svg }
+  - { min_zoom:  5, name: glacier, width: 26, height: 10, fill: "#ddecec", border: "#9cf" }
+  - { min_zoom: 10, name: glacier, width: 26, height: 10, fill: "#ddecec", border: "#9cf", border-dasharray: "4 2" }
+  - { min_zoom: 10, name: reef, image: reef.png }
+  - { min_zoom: 10, name: wetland, image: wetland.png }
+  - { min_zoom:  5, name: [forest, wood], width: 26, height: 10, fill: "#bddab1" }
+  - { min_zoom: 12, name: [forest, wood], width: 26, height: 10, fill: "#add19e" }
+  - { min_zoom:  5, name: [orchard, vineyard], width: 26, height: 10, fill: "#bee5b5" }
+  - { min_zoom: 12, name: [orchard, vineyard], width: 26, height: 10, fill: "#aedfa3" }
+  - { min_zoom:  5, name: [grass, meadow], width: 26, height: 10, fill: "#d7efc0" }
+  - { min_zoom: 12, name: [grass, meadow], width: 26, height: 10, fill: "#cdebb0" }
+  - { min_zoom:  5, name: farmland, width: 26, height: 10, fill: "#f1f3dd" }
+  - { min_zoom: 12, name: farmland, width: 26, height: 10, fill: "#eef0d5" }
+  - { min_zoom:  5, name: heathland, width: 26, height: 10, fill: "#dee1b2" }
+  - { min_zoom: 12, name: heathland, width: 26, height: 10, fill: "#d6d99f" }
+  - { min_zoom:  5, name: scrubland, width: 26, height: 10, fill: "#d3dfbc" }
+  - { min_zoom: 12, name: scrubland, width: 26, height: 10, fill: "#c8d7ab" }
+  - { min_zoom:  5, name: bare_rock, width: 26, height: 10, fill: "#f1eae3" }
+  - { min_zoom: 12, name: bare_rock, width: 26, height: 10, fill: "#eee5dc" }
+  - { min_zoom:  5, name: sand, width: 26, height: 10, fill: "#f7edd1" }
+  - { min_zoom: 12, name: sand, width: 26, height: 10, fill: "#f5e9c6" }
+  # landuse z8, z10: landcover.mss
+  - { min_zoom: 10, name: park, width: 26, height: 10, fill: "#c8facc" }
+  - { min_zoom: 10, name: golf, width: 26, height: 10, fill: "#def6c0" }
+  - { min_zoom:  8, name: built_up, width: 26, height: 10, fill: "#d9d9d9" }
+  - { min_zoom: 12, max_zoom: 12, name: built_up, width: 26, height: 10, fill: "#dddddd" }
+  - { min_zoom: 13, name: resident, width: 26, height: 10, fill: "#e0dfdf" }
+  - { min_zoom: 13, name: retail, width: 26, height: 10, fill: "#ffd6d1" }
+  - { min_zoom: 13, name: commercial, width: 26, height: 10, fill: "#f2dad9" }
+  - { min_zoom: 13, name: industrial, width: 26, height: 10, fill: "#ebdbe8" }
+  - { min_zoom: 10, name: farm, width: 26, height: 10, fill: "#f7e3c8" }
+  - { min_zoom: 12, name: farm, width: 26, height: 10, fill: "#f5dcba" }
+  - { min_zoom: 10, name: brownfield, width: 26, height: 10, fill: "#d2d2c3" }
+  - { min_zoom: 12, name: brownfield, width: 26, height: 10, fill: "#c7c7b4" }
+  - { min_zoom: 10, name: cemetery, width: 26, height: 10, fill: "#bbd5be" }
+  - { min_zoom: 12, name: cemetery, width: 26, height: 10, fill: "#aacbaf" }
+  - { min_zoom: 10, name: allotments, width: 26, height: 10, fill: "#d4e6cc" }
+  - { min_zoom: 12, name: allotments, width: 26, height: 10, fill: "#c9e1bf" }
+  - { min_zoom: 11, name: pitch, width: 26, height: 10, fill: "#88e0be" }
+  - { min_zoom: 11, name: centre, width: 26, height: 10, fill: "#dffce2" }
+  - { min_zoom: 10, name: reserve, image: reserve.svg } # admin.mss
+  - { min_zoom:  8, name: military, image: military.svg }
+  - { min_zoom: 13, name: [school, university, hospital], image: school.svg }
+  # buildings: buildings.mss
+  - { min_zoom: 14, name: building, width: 10, height: 10, fill: "#ab9793" }
+  - { min_zoom: 15, name: building, width: 10, height: 10, fill: "#b9a99c", border: "#a99a8d" }
+  - { min_zoom: 16, name: building, width: 10, height: 10, fill: "#c4b6ab", border: "#a99a8d" }
+  # stations: stations.mss
+  - { min_zoom: 12, name: station, width: 4, height: 4, fill: "#7981b0" }
+  - { min_zoom: 13, name: station, width: 6, height: 6, fill: "#7981b0" }
+  - { min_zoom: 15, name: station, width: 9, height: 9, fill: "#7981b0" }
+  # other
+  - { min_zoom: 11, name: [summit, peak], image: summit.svg } # amenity-points.mss
+  - { min_zoom: 13, name: tunnel, width: 50, height: 5, casing: grey, casing-dasharray: "4 2", casing-dashoffset: 1 } # roads.mss
+  - { min_zoom: 13, name: bridge, width: 50, height: 5, casing: black } # roads.mss
+  - { min_zoom: 15, name: private, image: private.png }
+  - { min_zoom: 15, name: destination, image: destination.png }
+  - { min_zoom: 12, name: construction, image: construction.png }
 cyclemap:
-  - { min_zoom: 0, max_zoom: 11, name: motorway, image: motorway.png }
-  - { min_zoom: 12, max_zoom: 19, name: motorway, image: motorway12.png }
-  - { min_zoom: 0, max_zoom: 11, name: trunk, image: trunk.png }
-  - { min_zoom: 12, max_zoom: 19, name: trunk, image: trunk12.png }
-  - { min_zoom: 7, max_zoom: 11, name: primary, image: primary.png }
-  - { min_zoom: 12, max_zoom: 19, name: primary, image: primary12.png }
-  - { min_zoom: 9, max_zoom: 11, name: secondary, image: secondary.png }
-  - { min_zoom: 12, max_zoom: 19, name: secondary, image: secondary12.png }
-  - { min_zoom: 13, max_zoom: 19, name: track, image: track.png }
-  - { min_zoom: 8, max_zoom: 19, name: cycleway, image: cycleway.png }
-  - { min_zoom: 5, max_zoom: 12, name: cycleway_national, image: cycleway_national.png }
-  - { min_zoom: 13, max_zoom: 19, name: cycleway_national, image: cycleway_national13.png }
-  - { min_zoom: 5, max_zoom: 12, name: cycleway_regional, image: cycleway_regional.png }
-  - { min_zoom: 13, max_zoom: 19, name: cycleway_regional, image: cycleway_regional13.png }
-  - { min_zoom: 8, max_zoom: 12, name: cycleway_local, image: cycleway_local.png }
-  - { min_zoom: 13, max_zoom: 19, name: cycleway_local, image: cycleway_local13.png }
-  - { min_zoom: 13, max_zoom: 19, name: footway, image: footway.png }
-  - { min_zoom: 7, max_zoom: 13, name: rail, image: rail.png }
-  - { min_zoom: 14, max_zoom: 19, name: rail, image: rail14.png }
-  - { min_zoom: 9, max_zoom: 19, name: forest, image: forest.png }
-  - { min_zoom: 10, max_zoom: 19, name: common, image: common.png }
-  - { min_zoom: 7, max_zoom: 19, name: lake, image: lake.png }
-  - { min_zoom: 14, max_zoom: 19, name: bicycle_shop, image: bicycle_shop.png }
-  - { min_zoom: 14, max_zoom: 19, name: bicycle_parking, image: bicycle_parking.png }
-  - { min_zoom: 16, max_zoom: 19, name: toilets, image: toilets.png }
+  - { min_zoom:  5, name: motorway, width: 50, height: 2, fill: "#9a9ab1" }
+  - { min_zoom:  9, name: motorway, width: 50, height: 3, fill: "#9a9ab1" }
+  - { min_zoom: 12, name: motorway, width: 50, height: 5, fill: "#bdbece", casing: "#8d95a7" }
+  - { min_zoom: 13, name: motorway, width: 50, height: 9, fill: "#bdbece", casing: "#8d95a7" }
+  - { min_zoom:  6, name: trunk, width: 50, height: 2, fill: "#c8d8c8" }
+  - { min_zoom: 12, name: trunk, width: 50, height: 4, fill: "#c8d8c8", casing: "#abb5a4" }
+  - { min_zoom: 13, name: trunk, width: 50, height: 8, fill: "#c8d8c8", casing: "#abb5a4" }
+  - { min_zoom:  8, name: primary, width: 50, height: 2, fill: "#d8c8c8" }
+  - { min_zoom: 12, name: primary, width: 50, height: 4, fill: "#f0e3e3", casing: "#d4b6b7" }
+  - { min_zoom: 13, name: primary, width: 50, height: 8, fill: "#f0e3e3", casing: "#d4b6b7" }
+  - { min_zoom: 10, name: secondary, width: 50, height: 1, fill: "#dadacc" }
+  - { min_zoom: 12, name: secondary, width: 50, height: 4, fill: "#ededc8", casing: "#c8b48a" }
+  - { min_zoom: 13, name: secondary, width: 50, height: 7, fill: "#ededc8", casing: "#c8b48a" }
+  - { min_zoom: 15, name: pedestrian, width: 50, height: 6, fill: "#e2e3e2", casing: "#9a9a9a" }
+  - { min_zoom: 13, name: track, width: 50, height: 3, fill: white, casing: "#999", casing-dasharray: "5 3", casing-dashoffset: 1 }
+  - { min_zoom: 15, name: track, width: 50, height: 4, fill: white, casing: "#999", casing-dasharray: "5 3", casing-dashoffset: 1 }
+  - { min_zoom: 17, name: track, width: 50, height: 5, fill: white, casing: "#999", casing-dasharray: "5 3", casing-dashoffset: 1 }
+  - { min_zoom: 13, name: bridleway, width: 52, height: 3, line: green, line-width: 1.5, line-dasharray: "4 2" }
+  - { min_zoom:  8, name: cycleway, width: 50, height: 3, line: "#0100fe", line-width: 1.5, line-dasharray: "6 2" }
+  - { min_zoom:  5, name: cycleway_national, width: 50, height:  2, fill: "#fe0000" }
+  - { min_zoom: 12, name: cycleway_national, width: 50, height:  3, fill: "#fe0000" }
+  - { min_zoom: 13, name: cycleway_national, width: 50, height: 12, fill: "#ffb3b3" }
+  - { min_zoom:  7, name: cycleway_regional, width: 50, height:  2, fill: "#b638fb" }
+  - { min_zoom: 12, name: cycleway_regional, width: 50, height:  3, fill: "#b638fb" }
+  - { min_zoom: 13, name: cycleway_regional, width: 50, height: 10, fill: "#ddb5d9" }
+  - { min_zoom:  8, name: cycleway_local, width: 50, height: 2, fill: "#0100fe" }
+  - { min_zoom: 12, name: cycleway_local, width: 50, height: 3, fill: "#0100fe" }
+  - { min_zoom: 13, name: cycleway_local, width: 50, height: 8, fill: "#b2b2ff" }
+  - { min_zoom: 10, name: cycleway_mtb, width: 50, height: 2, fill: "#ff7b1c" }
+  - { min_zoom: 13, name: cycleway_mtb, width: 50, height: 6, fill: "#fbcaa3" }
+  - { min_zoom: 13, name: footway, width: 50, height: 3, line: "#bd6d6e", line-width: 1.5, line-dasharray: "6 2" }
+  - { min_zoom:  7, name: rail, width: 50, height: 3, line: "#999999", line-width: 1.5 }
+  - { min_zoom: 14, name: rail, width: 50, height: 4, fill: "#999999", line: white, line-dasharray: 4, line-width: 2 }
+  - { min_zoom:  1, name: [lake, reservoir], width: 26, height: 10, fill: "#addeff" }
+  - { min_zoom:  9, name: [forest, wood], width: 26, height: 10, fill: "#b3d6a4" }
+  - { min_zoom: 10, name: meadow, width: 26, height: 10, fill: "#c0de9c" }
+  - { min_zoom: 10, name: park, width: 26, height: 10, fill: "#cbe4c4" }
+  - { min_zoom: 10, name: common, width: 26, height: 10, fill: "#d4f0d1" }
+  - { min_zoom: 10, name: heathland, width: 26, height: 10, fill: "#eaf0d6" }
+  - { min_zoom: 11, max_zoom: 13, name: resident, width: 26, height: 10, fill: "#e2e2e2" }
+  - { min_zoom: 11, name: industrial, width: 26, height: 10, fill: "#f1dede" }
+  - { min_zoom: 11, name: allotments, width: 26, height: 10, fill: "#d7d7b1" }
+  - { min_zoom: 12, name: cemetery, width: 26, height: 10, fill: "#abcfb1" }
+  - { min_zoom: 12, name: pitch, width: 26, height: 10, fill: "#ade0c5" }
+  - { min_zoom: 13, name: centre, width: 26, height: 10, fill: "#b4e9cd" }
+  - { min_zoom: 13, name: beach, image: beach.png }
+  - { min_zoom: 13, name: [school, university], width: 26, height: 10, fill: "#f0f0d8" }
+  - { min_zoom: 14, name: bicycle_shop, image: bicycle_shop.png }
+  - { min_zoom: 15, name: bicycle_rental, image: bicycle_rental_small.svg }
+  - { min_zoom: 17, name: bicycle_rental, image: bicycle_rental.png }
+  - { min_zoom: 15, name: bicycle_parking, image: bicycle_parking.png }
+  - { min_zoom: 16, name: bicycle_parking_small, image: bicycle_parking_small.svg }
+  - { min_zoom: 16, name: toilets, image: toilets.png }
+opnvkarte:
+  - { min_zoom:  6, name: rail, width: 52, height: 1, fill: "#868686" }
+  - { min_zoom:  8, name: rail, width: 52, height: 2, fill: "#868686" }
+  - { min_zoom: 11, name: rail, width: 52, height: 3, fill: "#868686", line: "#eeeeee", line-dasharray: 10, line-dashoffset: 9 }
+  - { min_zoom: 15, name: rail, width: 52, height: 4, fill: "#868686", line: "#eeeeee", line-dasharray: 10, line-dashoffset: 9, line-width: 2 }
+  - { min_zoom: 17, name: rail, image: rail17.svg }
+  - { min_zoom:  6, name: train, width: 52, height:  2, fill: "#ffc366" }
+  - { min_zoom: 10, name: train, width: 52, height:  3, fill: "#ffc366" }
+  - { min_zoom: 12, name: train, width: 52, height:  4, fill: "#ffc366" }
+  - { min_zoom: 14, name: train, width: 52, height:  8, fill: "#ffc366" }
+  - { min_zoom: 16, name: train, width: 52, height: 10, fill: "#ffc366" }
+  - { min_zoom: 10, name: light_rail, width: 52, height:  3, fill: "#66ff66" }
+  - { min_zoom: 12, name: light_rail, width: 52, height:  4, fill: "#66ff66" }
+  - { min_zoom: 14, name: light_rail, width: 52, height:  8, fill: "#66ff66" }
+  - { min_zoom: 16, name: light_rail, width: 52, height: 10, fill: "#66ff66" }
+  - { min_zoom: 10, name: tram, width: 52, height:  3, fill: "#3333fe" }
+  - { min_zoom: 12, name: tram, width: 52, height:  4, fill: "#3333fe" }
+  - { min_zoom: 14, name: tram, width: 52, height:  8, fill: "#3333fe" }
+  - { min_zoom: 16, name: tram, width: 52, height: 10, fill: "#3333fe" }
+  - { min_zoom: 10, name: subway, width: 52, height:  3, fill: "#33339f" }
+  - { min_zoom: 12, name: subway, width: 52, height:  4, fill: "#33339f" }
+  - { min_zoom: 14, name: subway, width: 52, height:  8, fill: "#33339f" }
+  - { min_zoom: 16, name: subway, width: 52, height: 10, fill: "#33339f" }
+  - { min_zoom:  9, name: ferry, width: 52, height: 2, fill: "#9f339f" }
+  - { min_zoom: 14, name: ferry, width: 52, height: 3, fill: "#9f339f" }
+  - { min_zoom: 10, name: trolleybus, width: 52, height:  3, fill: "#9f3333" }
+  - { min_zoom: 12, name: trolleybus, width: 52, height:  4, fill: "#9f3333" }
+  - { min_zoom: 14, name: trolleybus, width: 52, height:  8, fill: "#9f3333" }
+  - { min_zoom: 16, name: trolleybus, width: 52, height: 10, fill: "#9f3333" }
+  - { min_zoom: 11, name: bus, width: 52, height:  1, fill: "#fe3333" }
+  - { min_zoom: 12, name: bus, width: 52, height:  2, fill: "#fe3333" }
+  - { min_zoom: 13, name: bus, width: 52, height:  3, fill: "#fe3333" }
+  - { min_zoom: 14, name: bus, width: 52, height:  4, fill: "#fe3333" }
+  - { min_zoom: 16, name: bus, width: 52, height: 10, fill: "#fe3333" }
+  - { min_zoom: 13, name: bus_stop, image: bus_stop13.svg }
+  - { min_zoom: 15, name: bus_stop, image: bus_stop15.svg }
+  - { min_zoom: 13, name: stop, image: stop13.svg }
+  - { min_zoom: 15, name: stop, image: stop15.svg }
+  - { min_zoom:  8, name: motorway, width: 52, height:  4, fill: "#dddddd", casing: "#6d6d6d" }
+  - { min_zoom: 13, name: motorway, width: 52, height:  8, fill: "#dddddd", casing: "#6d6d6d" }
+  - { min_zoom: 15, name: motorway, width: 52, height: 13, fill: "#dddddd", casing: "#6d6d6d", line: "#ffffff", line-dasharray: 12, line-dashoffset: 4 }
+  - { min_zoom: 17, name: motorway, width: 52, height: 17, fill: "#dddddd", casing: "#6d6d6d", line: "#ffffff", line-dasharray: 12, line-dashoffset: 4, casing-width: 2 }
+  - { min_zoom:  8, name: main_road, width: 52, height:  1, fill: "#5c6d6d88" }
+  - { min_zoom: 11, name: main_road, width: 52, height:  4, fill: "#dddddd", casing: "#a1968b" }
+  - { min_zoom: 13, name: main_road, width: 52, height:  8, fill: "#dddddd", casing: "#a1968b" }
+  - { min_zoom: 15, name: main_road, width: 52, height: 13, fill: "#dddddd", casing: "#a1968b" }
+  - { min_zoom: 17, name: main_road, width: 52, height: 17, fill: "#dddddd", casing: "#a1968b" }
+  # landcover
+  - { min_zoom:  0, name: [lake, reservoir], width: 26, height: 10, fill: "#a1cbea" }
+  - { min_zoom:  8, name: [lake, reservoir], width: 26, height: 10, fill: "#bfd3ef" }
+  - { min_zoom:  4, name: [forest, wood], width: 26, height: 10, fill: "#b9c5a3" }
+  - { min_zoom:  4, name: built_up, width: 26, height: 10, fill: "#d8d8d8" }
+  - { min_zoom:  9, name: farmland, width: 26, height: 10, fill: "#eae8d6" }
+  - { min_zoom: 12, name: [park, allotments], width: 26, height: 10, fill: "#c2d89a" }
index 4a18cd9f2406931812559ea55eafd98d9319a5ee..d02140f27ce693bf2af327c91da1944b94c7cfe9 100644 (file)
@@ -217,7 +217,6 @@ af:
   auth:
     providers:
       none: Geen
-      openid: OpenID
       google: Google
       facebook: Facebook
       github: GitHub
@@ -305,12 +304,8 @@ af:
       way_paginated: Weë (%{x}-%{y} van %{count})
       relation: Verwantskappe (%{count})
       relation_paginated: Verwantskappe (%{x}-%{y} of %{count})
-      comment: Kommentaar (%{count})
       changesetxml: Wysigingstel XML
       osmchangexml: osmWysiging XML
-      feed:
-        title: Wysigingstel %{id}
-        title_comment: Wysigingstel %{id} - %{comment}
       join_discussion: Meld aan en gesels saam
       discussion: Bespreking
       still_open: Wysigingstel is steeds oop - bespreking sal oopmaak sodra die wysigingstel
@@ -418,6 +413,9 @@ af:
       no_more_area: Geen wysigingstelle in hierdie gebied nie.
       no_more_user: Geen ander wysigingstelle deur hierdie gebruiker nie.
       load_more: Laai nog
+      feed:
+        title: Wysigingstel %{id}
+        title_comment: Wysigingstel %{id} - %{comment}
     timeout:
       sorry: Jammer, die lys wysigingstelle wat u versoek het, neem lank om uit te
         haal.
@@ -437,6 +435,7 @@ af:
     contact:
       km away: '%{count}km vêr'
       m away: '%{count}m vêr'
+      latest_edit_html: 'Meest onlangse wysiging (%{ago}):'
     popup:
       your location: U ligging
       nearby mapper: Nabygeleë karteerder
@@ -1305,9 +1304,9 @@ af:
         resolved: Opgelos
     show:
       title: '%{status} Probleem #%{issue_id}'
-      report_created_at: Eerste vermelding op %{datetime}
-      last_resolved_at: Laas geregmaak op %{datetime}
-      last_updated_at: Laaste opgedateer op %{datetime} deur %{displayname}
+      report_created_at_html: Eerste vermelding op %{datetime}
+      last_resolved_at_html: Laas geregmaak op %{datetime}
+      last_updated_at_html: Laaste opgedateer op %{datetime} deur %{displayname}
       resolve: Los op
       ignore: Ignoreer
       reopen: Heropen
@@ -1477,14 +1476,14 @@ af:
   messages:
     inbox:
       title: In-vakkie
-      my_inbox: My in-vakkie
-      my_outbox: My uit-vakkie
-      from: Van
-      subject: Onderwerp
-      date: Datum
       no_messages_yet_html: U het nog geen boodskappe nie. Waarom tree u nie met sommige
         van die %{people_mapping_nearby_link} in verbinding nie?
       people_mapping_nearby: nabygeleë karteerders
+    messages_table:
+      from: Van
+      to: Aan
+      subject: Onderwerp
+      date: Datum
     message_summary:
       unread_button: Merk as ongelees
       read_button: Merk as gelees
@@ -1501,11 +1500,6 @@ af:
       heading: Geen so 'n boodskap nie
     outbox:
       title: Uit-vakkie
-      my_inbox: My in-vakkie
-      my_outbox: My uit-vakkie
-      to: Aan
-      subject: Onderwerp
-      date: Datum
       no_sent_messages_html: U het nog geen boodskappe gestuur nie. Waarom tree u
         nie met sommige van die %{people_mapping_nearby_link} in verbinding nie?
       people_mapping_nearby: nabygeleë karteerders
@@ -1517,22 +1511,27 @@ af:
       back: Terug
     sent_message_summary:
       destroy_button: Skrap
+    heading:
+      my_inbox: My in-vakkie
+      my_outbox: My uit-vakkie
     mark:
       as_read: Boodskap as gelees gemerk
       as_unread: Boodskap as ongelees gemerk
     destroy:
       destroyed: Boodskap is verwyder
   passwords:
-    lost_password:
+    new:
       title: Wagwoord verloor
       heading: Wagwoord vergeet?
       email address: 'E-posadres:'
       new password button: Herstel wagwoord
+    create:
       notice email cannot find: E-posadres is ongelukkig onverkrygbaar, jammer.
-    reset_password:
+    edit:
       title: Herstel wagwoord
       heading: Herstel wagwoord vir %{user}
       reset: Herstel wagwoord
+    update:
       flash changed: U wagwoord is gewysig.
   preferences:
     show:
@@ -1638,12 +1637,7 @@ af:
       anon_edits_link_text: Lees waarom dit so is.
     export:
       title: Voer Uit
-      area_to_export: Area om uit te voer
       manually_select: Kies self 'n ander area
-      format_to_export: Formaat om uit te voer
-      osm_xml_data: OpenStreetMap XML-data
-      map_image: Kaartbeeld (wys standaardlaag)
-      embeddable_html: Versteekbare HTML-kode
       licence: Lisensie
       too_large:
         advice: 'As die uitvoering hierbo misluk, oorweeg gerus een van die volgende
@@ -1653,17 +1647,6 @@ af:
           hieronder aan om massas data af te laai.
         planet:
           title: Planeet OSM
-      options: Voorkeure
-      format: Formaat
-      scale: Skaal
-      max: maksimum
-      image_size: Beeldgrootte
-      zoom: Vergroot
-      add_marker: Plaas 'n merker op die kaart
-      latitude: 'Breedte:'
-      longitude: 'Lengte:'
-      output: Uitset
-      paste_html: Plak HTML om in die webblad te versteek
       export_button: Voer uit
     fixthemap:
       title: Rapporteer 'n probleem / Corrigeer die kaart
@@ -1679,8 +1662,6 @@ af:
         title: Welkom by OpenStreetMap
       beginners_guide:
         title: Gids vir beginners
-      help:
-        title: Help Forum
       mailing_lists:
         title: Poslyste
       irc:
@@ -1718,34 +1699,24 @@ af:
           footway: Voetpad
           rail: Spoorweg
           subway: Ondergrondse spoorweg
-          tram:
-          - Ligte spoor
-          - trem
-          cable:
-          - Sweefspoor
-          - stoelhyser
-          runway:
-          - Aanloopbaan
-          - vliegtuigrybaan
-          apron:
-          - Lughaweplatform
-          - terminaal
+          cable_car: Sweefspoor
+          chair_lift: stoelhyser
+          runway: Aanloopbaan
+          taxiway: vliegtuigrybaan
+          apron: Lughaweplatform
           admin: Administratiewe grens
           forest: Woud
           wood: Bos
           golf: Gholfbaan
           park: Park
+          common: Gemeen
           resident: Woongebied
-          common:
-          - Gemeen
-          - weiland
           retail: Kleinhandel-gebied
           industrial: Nywerheidsgebied
           commercial: Handelsgebied
           heathland: Heide
-          lake:
-          - Meer
-          - reservoir
+          lake: Meer
+          reservoir: reservoir
           farm: Plaas
           brownfield: Braakveldterrein
           cemetery: Begraafplaas
@@ -1754,14 +1725,12 @@ af:
           centre: Sportsentrum
           reserve: Natuurreservaat
           military: Militêre gebied
-          school:
-          - Skool
-          - universiteit
+          school: Skool
+          university: universiteit
           building: Betekenisvolle gebou
           station: Spoorwegstasie
-          summit:
-          - Piek
-          - piek
+          summit: Piek
+          peak: piek
           tunnel: Strepieomhulsel = tonnel
           bridge: Swart omhulsel = brug
           private: Privaat toegang
@@ -1975,7 +1944,6 @@ af:
       add as friend: Voeg by as vriend
       mapper since: 'Karteerder sedert:'
       ct status: 'Bydraervoorwaardes:'
-      latest edit: 'Meest onlangse wysiging (%{ago}):'
       email address: 'E-posadres:'
       created from: 'Geskep vanaf:'
       status: 'Status:'
@@ -2043,7 +2011,7 @@ af:
       heading: Lys van gebruikersversperrings
       empty: Niemand is nog versper nie.
     revoke:
-      time_future: Diehier versperring sal tyd oor %{time} verstreke.
+      time_future_html: Diehier versperring sal tyd oor %{time} verstreke.
       confirm: Wil u definitief hierdie versperring herroep?
       revoke: Herroep!
       flash: Hierdie versperring is herroep.
index 58755787ce80d4dfe1f7e53c0bb3868cf655f5ae..b3bd19cf73b88fba4cef75530a78d2f4e06daa39 100644 (file)
@@ -148,9 +148,6 @@ aln:
       title: Ndryshim
       changesetxml: Ndryshim en XML
       osmchangexml: Ndryshim i OSM-s en XML
-      feed:
-        title: Ndryshim %{id}
-        title_comment: Ndryshimi %{id} - %{comment}
     relation_member:
       entry_role_html: '%{type} %{name} asht si %{role}'
       type:
@@ -202,6 +199,9 @@ aln:
     index:
       title: Changesets
       title_user: Changesets nga %{user}
+      feed:
+        title: Ndryshim %{id}
+        title_comment: Ndryshimi %{id} - %{comment}
   dashboards:
     contact:
       km away: '%{count}km larg'
@@ -723,13 +723,14 @@ aln:
   messages:
     inbox:
       title: Inbox
-      my_inbox: postë e mia
-      from: Prej
-      subject: Tema
-      date: Data
       no_messages_yet_html: Ju nuk keni asnjë mesazh. Pse nuk po llidheni me disa
         prej %{people_mapping_nearby_link}?
       people_mapping_nearby: njerëzit pranë hartës
+    messages_table:
+      from: Prej
+      to: Te
+      subject: Tema
+      date: Data
     message_summary:
       unread_button: Bone si të palexume
       read_button: Bone si të lexume
@@ -749,9 +750,6 @@ aln:
       body: Me na fal por nuk ka asnjë mesazh me at id.
     outbox:
       title: Dalje
-      to: Te
-      subject: Titulli
-      date: Data
       no_sent_messages_html: Ju nuk keni dërgu asnjë mesazh. Pse nuk po llidheni me
         disa prej %{people_mapping_nearby_link}?
       people_mapping_nearby: njerëzit pranë hartës
@@ -768,28 +766,32 @@ aln:
         atë mesazh.
     sent_message_summary:
       destroy_button: Fshij
+    heading:
+      my_inbox: postë e mia
     mark:
       as_read: Mesazhi u bo si i lexum
       as_unread: Mesazhi u bo si i palexum
     destroy:
       destroyed: Mesazhi u fshi
   passwords:
-    lost_password:
+    new:
       title: T'ka hup fjalkalimi
       heading: Ke harrue fjalkalimin?
       email address: 'Email Adresa:'
       new password button: Ndrysho fjalkalimin
       help_text: Shkrueje email adresen që je regjistrue me to, do t'ju deromi një
         lidhe rreth ksaj ku ju muni me ndrru fjalkalimin
+    create:
       notice email on way: Na vjen keq që e keni hup :-( po ni email ka me ju ardh
         së shpejti edhe muni me ricaktu.
       notice email cannot find: Smujtëm me gjet qat email adres, na vjen keq.
-    reset_password:
+    edit:
       title: Ricakto fjalëkalimin
       heading: Ricakto fjalëkalimin për %{user}
       reset: Ricakto Fjalëkalimin
-      flash changed: Fjalëkalimi juaj u ndryshua.
       flash token bad: Sun e gjetëm qat token, kontrolloje URL?
+    update:
+      flash changed: Fjalëkalimi juaj u ndryshua.
   profiles:
     edit:
       image: 'Imazhi:'
@@ -867,26 +869,11 @@ aln:
       user_page_link: faqe përdorues
       anon_edits_link_text: Find out pse kjo është e rastit.
     export:
-      area_to_export: Zona për Eksport
       manually_select: Manualisht zgedhe ni zon te ndryshme
-      format_to_export: Formati për Eksport
-      osm_xml_data: OpenStreetMap XML të dhana
-      embeddable_html: HTML e trupzueshme
       licence: Licensa
       too_large:
         body: Kjo zonë është shum e madhe që të eksportohet si XML në OpenStreetMap.
           Të lutna afroje ma ngat ose mere një zonë ma të vogel.
-      options: Opcionet
-      format: Formati
-      scale: Shkallë
-      max: maks
-      image_size: Madhsia e Imazhit
-      zoom: Zmadho
-      add_marker: Shto ni shenues en harte
-      latitude: 'Lat:'
-      longitude: 'Lon:'
-      output: Outputi
-      paste_html: Fute HTML për me ngjit në web sajt
       export_button: Eksporto
     sidebar:
       search_results: Rezultatet e Kërkimit
@@ -910,34 +897,24 @@ aln:
           footway: Këmbësore
           rail: Hekurudhor
           subway: Metro
-          tram:
-          - hekurudhor Lehta
-          - tramvaj
-          cable:
-          - teleferik
-          - heqë karrige
-          runway:
-          - Aeroporti i pistës
-          - taxiway
-          apron:
-          - aeroportit Aeroporti
-          - terminal
+          cable_car: teleferik
+          chair_lift: heqë karrige
+          runway: Aeroporti i pistës
+          taxiway: taxiway
+          apron: aeroportit Aeroporti
           admin: kufitare administrative
           forest: Pyll
           wood: Druri
           golf: fushë e golfit
           park: Park
+          common: I përbashkët
           resident: Zonë Rezidenciale
-          common:
-          - I përbashkët
-          - livadh
           retail: zonë me pakicë
           industrial: Zonë Industriale
           commercial: Zona Tregtare
           heathland: Heathland
-          lake:
-          - Liqe
-          - rezervuar
+          lake: Liqe
+          reservoir: rezervuar
           farm: Ferm
           brownfield: site Brownfield
           cemetery: Varrezë
@@ -946,14 +923,12 @@ aln:
           centre: Qendër Sportive
           reserve: rezervë Natyra
           military: Zonë Ushtarake
-          school:
-          - Shkollë
-          - universitet
+          school: Shkollë
+          university: universitet
           building: ndërtimin e rëndësishme
           station: Stacion hekurudhor
-          summit:
-          - Samiti i
-          - pik
+          summit: Samiti i
+          peak: pik
           tunnel: tunel zorrë thye =
           bridge: Shtresë e jashtme e Zi = urë
           private: qasje privat
@@ -1223,8 +1198,8 @@ aln:
     revoke:
       title: Revokimin e bllokuar në %{block_on}
       heading_html: Revokimin e bllokuar në %{block_on} nga %{block_by}
-      time_future: Ky bllok do të përfundojë në %{time}.
-      past: Ky bllok u mbyll %{time} më parë dhe nuk mund të kthehet tani.
+      time_future_html: Ky bllok do të përfundojë në %{time}.
+      past_html: Ky bllok u mbyll %{time} më parë dhe nuk mund të kthehet tani.
       confirm: Jeni i sigurt që dëshironi të revokuar kete kategori?
       revoke: Tërheq!
       flash: Ky bllok është revokuar.
index 823be1ad61ce91b5dbb4d197ed6e318d40d9452d..527d73710dae147854a5db3f525c7692a9c9c3cd 100644 (file)
 # Author: FiberAhmed
 # Author: Gravitystorm
 # Author: Grille chompa
+# Author: Hanzo64
 # Author: HitomiAkane
 # Author: Houcinee1
 # Author: Hubaishan
 # Author: Karim185.3
 # Author: Kassem7899
 # Author: Kuwaity26
+# Author: LaMagiaaa
+# Author: Lolekek
 # Author: MRidhaAJ
 # Author: Majid Al-Dharrab
 # Author: McDutchie
@@ -292,8 +295,6 @@ ar:
         few: '%{count} سنة'
         many: '%{count} سنوات'
         other: '%{count} سنة'
-  printable_name:
-    with_version: '%{id}، v%{version}'
   editor:
     default: الافتراضي (حالياً %{name})
     id:
@@ -436,14 +437,10 @@ ar:
       way_paginated: الطرق (%{x}-%{y} من %{count})
       relation: الصلات (%{count})
       relation_paginated: الصلات (%{x}-%{y} من %{count})
-      comment: التعليقات (%{count})
       hidden_comment_by_html: تعليق مخفي من%{time_ago} %{user}
       comment_by_html: تعليق من %{user}%{time_ago}
       changesetxml: حزمة التغييرات XML
       osmchangexml: osmChange XML
-      feed:
-        title: حزمة التغييرات %{id}
-        title_comment: حزمة التغييرات %{id} - %{comment}
       join_discussion: ادخل للاشتراك في المناقشة
       discussion: مناقشة
       still_open: ما زالت مجموعة التغييرات مفتوحة - سيتم فتح المناقشة بمجرد إغلاق
@@ -546,6 +543,9 @@ ar:
       no_more_area: لم يُعثَر على مجموعات تغييرات أخرى في هذه المنطقة.
       no_more_user: لم يُعثَر على مجموعات تغييرات أخرى بواسطة هذا المستخدم.
       load_more: تحميل المزيد؟
+      feed:
+        title: حزمة التغييرات %{id}
+        title_comment: حزمة التغييرات %{id} - %{comment}
     timeout:
       sorry: عذرا، لقد استغرقت قائمة مجموعات التغييرات اللتي طلبتها وقتا طويلا لاستردادها.
   changeset_comments:
@@ -564,6 +564,7 @@ ar:
     contact:
       km away: على بعد %{count}كم
       m away: على بعد %{count}متر
+      latest_edit_html: 'آخر تغيير (%{ago})::'
     popup:
       your location: مكانك
       nearby mapper: مخطط بالجوار
@@ -1478,9 +1479,9 @@ ar:
         few: '%{count} تقرير'
         many: '%{count} تقارير'
         other: '%{count} تقرير'
-      report_created_at: أول بلاغ تم في %{datetime}
-      last_resolved_at: آخر حل تم في %{datetime}
-      last_updated_at: آخر تحديث تم في %{datetime} بواسطة %{displayname}
+      report_created_at_html: أول بلاغ تم في %{datetime}
+      last_resolved_at_html: آخر حل تم في %{datetime}
+      last_updated_at_html: آخر تحديث تم في %{datetime} بواسطة %{displayname}
       resolve: حل
       ignore: تجاهل
       reopen: إعادة فتح
@@ -1748,8 +1749,6 @@ ar:
   messages:
     inbox:
       title: الوارد
-      my_inbox: الوارد
-      my_outbox: صندوق الصادر الخاص بي
       messages: لديك %{new_messages} و%{old_messages}
       new_messages:
         one: '%{count} رسالة جديدة'
@@ -1757,11 +1756,14 @@ ar:
       old_messages:
         one: '%{count} رسالة قديمة'
         other: '%{count} رسائل قديمة'
+      no_messages_yet_html: ليست لديك رسائل بعد، لماذا لا تقوم بالاتصال ببعض %{people_mapping_nearby_link}؟
+      people_mapping_nearby: مخططون في جواري
+    messages_table:
       from: من
+      to: إلى
       subject: الموضوع
       date: التاريخ
-      no_messages_yet_html: ليست لديك رسائل بعد، لماذا لا تقوم بالاتصال ببعض %{people_mapping_nearby_link}؟
-      people_mapping_nearby: مخططون في جواري
+      actions: الإجراءات
     message_summary:
       unread_button: التعليم كغير مقروءة
       read_button: التعليم كمقروءة
@@ -1781,17 +1783,15 @@ ar:
       body: عذرًا لا توجد رسالة بذلك المعرف.
     outbox:
       title: صندوق الصادر
-      my_inbox: صندوق البريد الوارد الخاص بي
-      my_outbox: صندوق البريد الصادر الخاص بي
+      actions: الإجراءات
       messages:
         one: لديك %{count} رسالة مبعوثة
         other: لديك %{count} رسائل مبعوثة
-      to: إلى
-      subject: الموضوع
-      date: التاريخ
       no_sent_messages_html: ليست لديك رسائل مرسلة بعد، لماذا لا تقوم بالاتصال ببعض
         %{people_mapping_nearby_link}؟
       people_mapping_nearby: مخططون في جواري
+    muted:
+      title: الرسائل المخفية
     reply:
       wrong_user: "\uFEFFأنت مسجل للدخول باسم '%{user}' ولكن الرسالة التي طلبت الرد
         عليها لم تكن مرسلة لذلك المستخدم؛ يُرجَى تسجيل الدخول كمستخدم صحيح للرد."
@@ -1805,28 +1805,35 @@ ar:
         لم تكن من أو إلى ذلك المستخدم؛ يُرجَى تسجيل الدخول كمستخدم صحيح للرد."
     sent_message_summary:
       destroy_button: حذف
+    heading:
+      my_inbox: الوارد
+      my_outbox: صندوق الصادر الخاص بي
     mark:
       as_read: عُلِّمت الرسالة كمقروءة
       as_unread: عُلِّمت الرسالة كغير مقروءة
+    unmute:
+      error: لم يتم نقل الرسالة إلى صندوق البريد
     destroy:
       destroyed: حُذِفت الرسالة
   passwords:
-    lost_password:
+    new:
       title: نسيان كلمة السر
       heading: أنسيت كلمة السر؟
       email address: 'عنوان البريد الإلكتروني:'
       new password button: أعد ضبط كلمة السر
       help_text: أدخل عنوان البريد الإلكتروني الذي استخدمته للتسجيل، وسوف نرسل عليه
         رابطا يمكنك استخدامه لإعادة تعيين كلمة المرور.
+    create:
       notice email on way: نأسف لأنك أضعتها :-( ولكن هناك رسالة إلكترونية في طريقها
         إليك ستمكنك من إعادة تعيينها قريبًا.
       notice email cannot find: معذرةً، تعذر إيجاد عنوان البريد الإلكتروني.
-    reset_password:
+    edit:
       title: إعادة ضبط كلمة السر
       heading: إعادة تعيين كلمة السر %{user}
       reset: أعد ضبط كلمة السر
-      flash changed: كلمة مرورك قد تغيرت.
       flash token bad: لم نجد هذا النموذج، تحقق من المسار ربما؟
+    update:
+      flash changed: كلمة مرورك قد تغيرت.
   preferences:
     show:
       title: تفضيلاتي
@@ -1868,7 +1875,6 @@ ar:
       heading: تسجيل الدخول
       email or username: 'عنوان البريد الإلكتروني أو اسم المستخدم:'
       password: 'كلمة السر:'
-      openid_html: '%{logo} الهوية المفتوحة:'
       remember: تذكرني
       lost password link: أنسيت كلمة المرور؟
       login_button: تسجيل الدخول
@@ -1949,10 +1955,10 @@ ar:
       community_driven_community_blogs: مدونات المجتمع
       community_driven_osm_foundation: مؤسسة OSM
       open_data_title: البيانات المفتوحة
-      open_data_1_html: 'OpenStreetMap هو %{open_data}: أنت حر في استخدامه لأي غرض!
-        N! طالما أنك تنسب إلى OpenStreetMap والمساهمين فيه. إذا قمت بتعديل أو! N!
-        Ø¨Ù\86اء Ø¹Ù\84Ù\89 Ø§Ù\84بÙ\8aاÙ\86ات Ø¨Ø·Ø±Ù\82 Ù\85عÙ\8aÙ\86Ø© Ø\8c Ù\81Ù\8aجÙ\88ز Ù\84Ù\83 ØªÙ\88زÙ\8aع Ø§Ù\84Ù\86تÙ\8aجة Ù\81Ù\82Ø·! N! ØªØ­Øª Ù\86Ù\81س Ø§Ù\84ترخÙ\8aص.
-        راجع %{copyright_license_link} للحصول على التفاصيل.'
+      open_data_1_html: "\nOpenStreetMap هو %{open_data}: أنت حر في استخدامه لأي غرض\n
+        طالما أنك تنسب إلى OpenStreetMap والمساهمين فيه. إذا قمت بتعديل أو \n بناء
+        Ø¹Ù\84Ù\89 Ø§Ù\84بÙ\8aاÙ\86ات Ø¨Ø·Ø±Ù\82 Ù\85عÙ\8aÙ\86Ø© Ø\8c Ù\81Ù\8aجÙ\88ز Ù\84Ù\83 ØªÙ\88زÙ\8aع Ø§Ù\84Ù\86تÙ\8aجة Ù\81Ù\82Ø·\nتحت Ù\86Ù\81س Ø§Ù\84ترخÙ\8aص. Ø±Ø§Ø¬Ø¹
+        %{copyright_license_link} للحصول على التفاصيل."
       open_data_open_data: البيانات المفتوحة
       open_data_copyright_license: صفحة حقوق النشر والترخيص
       legal_title: قانوني
@@ -2034,7 +2040,7 @@ ar:
         contributors_es_spain: إسبانيا
         contributors_za_credit_html: '%{south_africa}: يحتوي على بيانات مصدرها %{ngi_link}
           ، حقوق الطبع والنشر محفوظة للولاية.'
-        contributors_za_south_africa: Ø¬Ù\86Ù\88ب Ø£فريقيا
+        contributors_za_south_africa: Ø¬Ù\86Ù\88ب Ø¥فريقيا
         contributors_za_ngi: 'المديرية الرئيسية: المعلومات الجغرافية المكانية الوطنية'
         contributors_gb_credit_html: |-
           %{united_kingdom}: يحتوي على Ordnance
@@ -2085,12 +2091,7 @@ ar:
         الميزة.
     export:
       title: صدِّر
-      area_to_export: المنطقة المطلوب تصديرها
       manually_select: اختر يدويًا منطقة أخرى
-      format_to_export: الهيئة المطلوب تصديرها
-      osm_xml_data: بيانات خريطة الشارع المفتوحة بصيغة XML
-      map_image: صورة الخريطة (عرض الطبقة الإفتراضية)
-      embeddable_html: HTML مضمن
       licence: الرخصة
       too_large:
         advice: 'إذا فشل التصدير أعلاه، فكِّر من فضلك باستخدام أحد المصادر الموضَّحة
@@ -2110,17 +2111,6 @@ ar:
         other:
           title: مصادر أخرى
           description: مصادر إضافية مدرجة في الويكي خريطة الشارع المفتوحة
-      options: خيارات
-      format: الصيغة
-      scale: القياس
-      max: الأقصى
-      image_size: حجم الصورة
-      zoom: تكبير
-      add_marker: أضف علامة على الخريطة
-      latitude: 'خط العرض:'
-      longitude: 'خط الطول:'
-      output: الإخراج
-      paste_html: ألصق HTML لتضمينه في موقع ما
       export_button: صدِّر
     fixthemap:
       title: الإبلاغ عن مشكلة / إصلاح الخريطة
@@ -2146,10 +2136,6 @@ ar:
         url: http://wiki.openstreetmap.org/wiki/Ar:Beginners%27_guide
         title: دليل المبتدئين
         description: دليل من المجتمع للمبتدئين.
-      help:
-        title: منتدى المساعدة
-        description: اطرح سؤالاً أو ابحث عن إجابات في قسم أسئلة وأجوبة الخاص بموقع
-          خريطة الشارع المفتوحة
       mailing_lists:
         title: القوائم البريدية
         description: طرح سؤال أو مناقشة المسائل المثيرة للاهتمام بشأن مجموعة واسعة
@@ -2192,6 +2178,7 @@ ar:
           primary: طريق رئيسي
           secondary: طريق ثانوي
           unclassified: طريق غير مصنّف
+          pedestrian: طريق للمشاة
           track: مسار
           bridleway: مسلك خيول
           cycleway: طريق دراجات
@@ -2200,57 +2187,50 @@ ar:
           cycleway_local: طريق الدراجات المحلي
           footway: طريق مشاة
           rail: سكة حديدية
+          train: قطار
           subway: قطار الأنفاق
-          tram:
-          - قطار خفيف
-          - ترام
-          cable:
-          - عربة أسلاك
-          - تلفريك
-          runway:
-          - مدرج مطار
-          - مدرج مطار لمناورات الطائرات
-          apron:
-          - ساحة مطار
-          - صالة مطار
+          ferry: عبارة
+          bus: حافلة
+          cable_car: عربة أسلاك
+          chair_lift: تلفريك
+          runway: مدرج مطار
+          taxiway: مدرج مطار لمناورات الطائرات
+          apron: ساحة مطار
           admin: حدود إدارية
+          city: مدينة
           forest: غابة
           wood: غابة
           golf: ملعب غولف
           park: منتزه
+          common: شائع
           resident: منطقة سكنية
-          common:
-          - شائع
-          - مرج
-          - حديقة
           retail: منطقة بيع بالمفرق
           industrial: منطقة صناعية
           commercial: منطقة تجارية
           heathland: أرض بور
-          lake:
-          - بحيرة
-          - خزان
+          lake: بحيرة
+          reservoir: خزان
           farm: مزرعة
           brownfield: موقع مخلفات
           cemetery: مقبرة
           allotments: حصص سكنية
           pitch: ملعب رياضي
           centre: مركز رياضي
+          beach: شاطئ
           reserve: محمية طبيعية
           military: منطقة عسكرية
-          school:
-          - مدرسة
-          - جامعة
+          school: مدرسة
+          university: جامعة
           building: مبنى كبير
           station: محطة قطار
-          summit:
-          - قمة
-          - ذروة
+          summit: قمة
+          peak: ذروة
           tunnel: غطاء متقطع = نفق
           bridge: غطاء أسود = جسر
           private: وصول خصوصي
           destination: وجهة الوصول
           construction: الطرق تحت الإنشاء
+          bus_stop: موقف حافلات
           bicycle_shop: متجر دراجات
           bicycle_parking: مرآب دراجات
           toilets: مرحاض
@@ -2528,7 +2508,6 @@ ar:
       ct status: 'شروط المساهم:'
       ct undecided: متردد
       ct declined: مرفوض
-      latest edit: 'آخر تغيير (%{ago})::'
       email address: 'عنوان البريد الإلكتروني:'
       created from: 'أُنشِئ من:'
       status: 'الحالة:'
@@ -2637,8 +2616,8 @@ ar:
     revoke:
       title: إبطال العرقلة على %{block_on}
       heading_html: إبطال العرقلة على %{block_on} بواسطة %{block_by}
-      time_future: هذه العرقلة ستنتهي في %{time}.
-      past: هذه العرقلة انتهت %{time} ولا يمكن إبطالها الآن.
+      time_future_html: هذه العرقلة ستنتهي في %{time}.
+      past_html: هذه العرقلة انتهت %{time} ولا يمكن إبطالها الآن.
       confirm: هل أنت متأكد أنك ترغب في إبطال هذه العرقلة ؟
       revoke: ابطل!
       flash: تم إبطال هذه العرقلة.
@@ -2701,6 +2680,21 @@ ar:
       showing_page: الصفحة %{page}
       next: التالي »
       previous: « السابق
+  user_mutes:
+    index:
+      title: المستخدمون الممنوعون
+      user_mute_admins_and_moderators: يمكنك أن تُخفي الرسائل من المديرين والمُديرين
+        لكن رسائلهم لن تُخفى
+      table:
+        thead:
+          actions: الإجراءات
+        tbody:
+          send_message: أرسل رسالة
+    create:
+      error: لا يمكن كتم صوت %{name}. %{full_message}.
+    destroy:
+      notice: لقد قمت بإلغاء كتم صوت %{name}.
+      error: لا يمكن أن يكون الصوت غير مكتوم. رجاءً حاول مرة أخرى
   notes:
     index:
       title: ملاحظات مقدمة أو علق عليها %{user}
@@ -2782,7 +2776,6 @@ ar:
           other: أنت على بعد %{count} قدم من هذه النقطة
       base:
         standard: قياسي
-        cyclosm: CyclOSM
         cycle_map: خريطة الدراجات
         transport_map: خريطة النقل و المواصلات
         hot: الخريطة الإنسانية
index 8be430d1d6bcabf47919323b38a5304307d6cff7..a7fafef891f6a7b23ddce6d50a8269d0e256fb71 100644 (file)
@@ -128,9 +128,6 @@ arz:
       title: 'حزمه التغييرات: %{id}'
       changesetxml: حزمه التغييرات إكس إم إل
       osmchangexml: osmChange XML
-      feed:
-        title: حزمه التغييرات %{id}
-        title_comment: حزمه التغييرات %{id} - %{comment}
     relation_member:
       entry_role_html: '%{type} %{name} كــ %{role}'
       type:
@@ -170,6 +167,9 @@ arz:
     index:
       title: حزم التغييرات
       title_user: حزم التغييرات بواسطه %{user}
+      feed:
+        title: حزمه التغييرات %{id}
+        title_comment: حزمه التغييرات %{id} - %{comment}
   dashboards:
     contact:
       km away: على بعد %{count}كم
@@ -655,13 +655,14 @@ arz:
   messages:
     inbox:
       title: الوارد
-      my_inbox: الوارد
-      from: من
-      subject: الموضوع
-      date: التاريخ
       no_messages_yet_html: لا يوجد لديك رسائل بعد. لماذا لا تقوم بالاتصال مع بعض
         %{people_mapping_nearby_link}؟
       people_mapping_nearby: مخططون فى جواري
+    messages_table:
+      from: من
+      to: إلى
+      subject: الموضوع
+      date: التاريخ
     message_summary:
       unread_button: علّم كغير مقروءة
       read_button: علّم كمقروءة
@@ -677,9 +678,6 @@ arz:
         قبل أن تحاول إرسال المزيد.
     outbox:
       title: صندوق الصادر
-      to: إلى
-      subject: الموضوع
-      date: التاريخ
       no_sent_messages_html: لا يوجد لديك رسائل مرسله بعد. لماذا لا تقوم بالاتصال
         مع بعض %{people_mapping_nearby_link}؟
       people_mapping_nearby: مخططون فى جواري
@@ -689,28 +687,32 @@ arz:
       unread_button: علّم كغير مقروءة
     sent_message_summary:
       destroy_button: احذف
+    heading:
+      my_inbox: الوارد
     mark:
       as_read: عُلّمت الرساله مقروءة
       as_unread: عُلّمت الرساله كغير مقروءة
     destroy:
       destroyed: حُذفت الرسالة
   passwords:
-    lost_password:
+    new:
       title: نسيان كلمه المرور
       heading: أنسيت كلمه المرور؟
       email address: 'عنوان البريد الإلكتروني:'
       new password button: إعاده ضبط كلمه المرور
       help_text: أدخل عنوان البريد الإلكترونى الذى استخدمته للتسجيل ، وسوف نرسل عليه
         رابط يمكنك استخدامه لإعاده تعيين كلمه المرور.
+    create:
       notice email on way: نأسف لأنك أضعتها :-( ولكن هناك رساله إلكترونيه فى طريقها
         إليك ستمكنك من إعاده تعيينها قريبًا.
       notice email cannot find: تعذّر إيجاد عنوان البريد الإلكترونى، نحن آسفون.
-    reset_password:
+    edit:
       title: إعاده ضبط كلمه المرور
       heading: إعاده تعيين كلمه المرور %{user}
       reset: إعاده ضبط كلمه المرور
-      flash changed: كلمه المرور الخاصه بك قد تغيرت.
       flash token bad: لم تجد تلك المعلومات، تحقق من الرابط ربما؟
+    update:
+      flash changed: كلمه المرور الخاصه بك قد تغيرت.
   profiles:
     edit:
       home location: 'موقع المنزل:'
@@ -738,23 +740,8 @@ arz:
       user_page_link: صفحه مستخدم
       anon_edits_link_text: ابحث عن السبب لماذا هو هذا الحال.
     export:
-      area_to_export: المنطقه المطلوب تصديرها
       manually_select: اختر يدويًا منطقه أخرى
-      format_to_export: الهيئه المطلوب تصديرها
-      osm_xml_data: معطيات خريطه الطريق المفتوح بنسق إكس أم أل
-      embeddable_html: HTML مضمن
       licence: الرخصة
-      options: خيارات
-      format: الهيئة
-      scale: القياس
-      max: الأقصى
-      image_size: حجم الصورة
-      zoom: تكبير
-      add_marker: أضف علامه على الخريطة
-      latitude: 'خط العرض:'
-      longitude: 'خط الطول:'
-      output: الخرج
-      paste_html: ألصق HTML لتضمينه فى موقع ما
       export_button: صدِّر
     sidebar:
       search_results: نتائج البحث
@@ -778,30 +765,21 @@ arz:
           footway: طريق مشاة
           rail: سكه حديدية
           subway: قطار الأنفاق
-          tram:
-          - ترام
-          - ترام
-          runway:
-          - مدرج مطار للإقلاع/الهبوط
-          - مدرج مطار لمناورات الطائرات
-          apron:
-          - ساحه مطار
-          - صاله مطار
+          runway: مدرج مطار للإقلاع/الهبوط
+          taxiway: مدرج مطار لمناورات الطائرات
+          apron: ساحه مطار
           admin: حدود إدارية
           forest: غابة
           wood: غابة
           golf: ملعب غولف
           park: منتزه
+          common: شائع
           resident: منطقه سكنية
-          common:
-          - شائع
-          - مرج
           retail: منطقه بيع بالمفرق
           industrial: منطقه صناعية
           commercial: منطقه تجارية
-          lake:
-          - بحيرة
-          - خزان
+          lake: بحيرة
+          reservoir: خزان
           farm: أرض زراعية
           cemetery: مقبرة
           allotments: حصص سكنية
@@ -809,14 +787,12 @@ arz:
           centre: مركز رياضي
           reserve: محميه طبيعية
           military: منطقه عسكرية
-          school:
-          - مدرسة
-          - جامعة
+          school: مدرسة
+          university: جامعة
           building: مبنى كبير
           station: محطه قطار
-          summit:
-          - قمة
-          - ذروة
+          summit: قمة
+          peak: ذروة
           private: استخدام خصوصي
           construction: الطرق تحت الإنشاء
   traces:
@@ -1036,8 +1012,8 @@ arz:
     revoke:
       title: إبطال العرقله على %{block_on}
       heading_html: إبطال العرقله على %{block_on} بواسطه %{block_by}
-      time_future: هذه العرقله ستنتهى فى %{time}.
-      past: هذه العرقله انتهت منذ %{time} ولا يمكن إبطالها الآن.
+      time_future_html: هذه العرقله ستنتهى فى %{time}.
+      past_html: هذه العرقله انتهت منذ %{time} ولا يمكن إبطالها الآن.
       confirm: هل أنت متأكد أنك ترغب فى إبطال هذه العرقله ؟
       revoke: ابطل!
       flash: تم إبطال هذه العرقله.
index 7a3727a0958921a816c869c0d7e1d704628b554e..4c7c087ab1342676e09227adbd4bf0f975f05e32 100644 (file)
@@ -192,7 +192,6 @@ ast:
   auth:
     providers:
       none: Nengún
-      openid: OpenID
       google: Google
       facebook: Facebook
       github: GitHub
@@ -280,12 +279,8 @@ ast:
       way_paginated: Víes (%{x}-%{y} de %{count})
       relation: Rellaciones (%{count})
       relation_paginated: Rellaciones (%{x}-%{y} de %{count})
-      comment: Comentarios (%{count})
       changesetxml: Conxuntu de cambeos XML
       osmchangexml: osmChange XML
-      feed:
-        title: Conxuntu de cambeos %{id}
-        title_comment: Conxuntu de cambeos %{id} - %{comment}
       join_discussion: Anicia sesión pa xunite al alderique
       discussion: Alderique
       still_open: El conxuntu de cambios inda ta abiertu; l'alderique abriráse en
@@ -385,6 +380,9 @@ ast:
       no_more_area: Nun hai más conxuntos de cambeos nesta área.
       no_more_user: Nun hai más conxuntos de cambeos d'esti usuariu.
       load_more: Cargar más
+      feed:
+        title: Conxuntu de cambeos %{id}
+        title_comment: Conxuntu de cambeos %{id} - %{comment}
     timeout:
       sorry: Llevó demasiao tiempu baxar la llista de conxuntos de cambeos que pidisti.
   changeset_comments:
@@ -405,6 +403,7 @@ ast:
     contact:
       km away: a %{count}km de distancia
       m away: a %{count}m de distancia
+      latest_edit_html: 'Cabera edición (%{ago}):'
     popup:
       your location: El to allugamientu
       nearby mapper: Mapeador próximu
@@ -1135,9 +1134,9 @@ ast:
         zero: Nun hai informes
         one: 1 informe
         other: '%{count} informes'
-      report_created_at: Hora del primer informe %{datetime}
-      last_resolved_at: Hora de la última resolución %{datetime}
-      last_updated_at: Hora del últimu anovamientu %{datetime} por %{displayname}
+      report_created_at_html: Hora del primer informe %{datetime}
+      last_resolved_at_html: Hora de la última resolución %{datetime}
+      last_updated_at_html: Hora del últimu anovamientu %{datetime} por %{displayname}
       resolve: Resolver
       ignore: Inorar
       reopen: Reabrir
@@ -1358,7 +1357,6 @@ ast:
   messages:
     inbox:
       title: Buzón
-      my_inbox: El mio buzón
       messages: Tienes %{new_messages} y %{old_messages}
       new_messages:
         one: '%{count} mensaxe nuevu'
@@ -1366,12 +1364,14 @@ ast:
       old_messages:
         one: '%{count} mensaxe vieyu'
         other: '%{count} mensaxes vieyos'
-      from: De
-      subject: Asuntu
-      date: Data
       no_messages_yet_html: Inda nun tienes mensaxes. ¿Y si te pones en contautu con
         %{people_mapping_nearby_link}?
       people_mapping_nearby: xente que ta mapeando cerca
+    messages_table:
+      from: De
+      to: Pa
+      subject: Asuntu
+      date: Data
     message_summary:
       unread_button: Marcar como non lleíu
       read_button: Marcar como lleíu
@@ -1394,9 +1394,6 @@ ast:
       messages:
         one: Tienes %{count} mensaxe unviáu
         other: Tienes %{count} mensaxes unviaos
-      to: Pa
-      subject: Asuntu
-      date: Data
       no_sent_messages_html: Inda nun unviasti mensaxes. ¿Y si te pones en contautu
         con %{people_mapping_nearby_link}?
       people_mapping_nearby: xente que ta mapeando cerca
@@ -1413,28 +1410,32 @@ ast:
         por o a esi usuariu. Anicia sesión col usuariu correchu pa contestar.
     sent_message_summary:
       destroy_button: Desaniciar
+    heading:
+      my_inbox: El mio buzón
     mark:
       as_read: Mensaxe marcáu como lleíu
       as_unread: Mensaxe marcáu como non lleíu
     destroy:
       destroyed: Mensaxe desaniciáu
   passwords:
-    lost_password:
+    new:
       title: Contraseña perdida
       heading: ¿Escaecisti la contraseña?
       email address: 'Direición de corréu electrónicu:'
       new password button: Reestablecer contraseña
       help_text: Escribi les señes de corréu qu'usasti pa date d'alta, unviarémoste
         un enllaz que pues usar pa reestablecer la contraseña.
+    create:
       notice email on way: Sentimos que la perdieres :-( pero hai un corréu en camín
         pa que puedas reaniciala ceo.
       notice email cannot find: Nun s'alcontró esa direición de corréu.
-    reset_password:
+    edit:
       title: Reestablecer contraseña
       heading: Reestablecer la contraseña de %{user}
       reset: Reaniciar contraseña
-      flash changed: Cambióse la contraseña
       flash token bad: Nun s'alcontró esi token, ¿tendríes de comprobar la URL, seique?
+    update:
+      flash changed: Cambióse la contraseña
   preferences:
     show:
       edit_preferences: Editar les preferencies
@@ -1473,7 +1474,6 @@ ast:
       heading: Entrar
       email or username: 'Direición de corréu o nome d''usuariu:'
       password: 'Contraseña:'
-      openid_html: '%{logo} OpenID:'
       remember: Recordame
       lost password link: ¿Perdisti la contraseña?
       login_button: Entrar
@@ -1582,12 +1582,7 @@ ast:
         se necesiten pa esta carauterística.
     export:
       title: Esportar
-      area_to_export: Área a esportar
       manually_select: Seleiciona manualmente un área distinta
-      format_to_export: Formatu a esportar
-      osm_xml_data: Datos XML d'OpenStreetMap
-      map_image: Imaxe del mapa (amuesa la capa estándar)
-      embeddable_html: HTML pa embrivir
       licence: Llicencia
       too_large:
         advice: 'Si falla la esportación anterior, considera utilizar una de les fontes
@@ -1609,17 +1604,6 @@ ast:
         other:
           title: Otres fontes
           description: Otres fontes más qu'apaecen na wiki d'OpenStreetMap
-      options: Opciones
-      format: Formatu
-      scale: Escala
-      max: máx
-      image_size: Tamañu d'imaxe
-      zoom: Zoom
-      add_marker: Amestar un marcador al mapa
-      latitude: 'Llat:'
-      longitude: 'Llon:'
-      output: Salida
-      paste_html: Pegar el HTML pa embrivir nun sitiu web
       export_button: Esportar
     fixthemap:
       title: Informar d'un problema / iguar el mapa
@@ -1646,10 +1630,6 @@ ast:
         url: https://wiki.openstreetmap.org/wiki/Ast:Beginners%27_guide
         title: Guía del principiante
         description: Guía pa principiantes, mantenida pola comunidá.
-      help:
-        title: Foru d'ayuda
-        description: Entrugar o buscar respuestes nel sitiu d'entrugues y respuestes
-          d'OpenStreetMap.
       mailing_lists:
         title: Llistes de corréu
         description: Fai una entruga o alderica sobro asuntos interesantes nun ampliu
@@ -1703,34 +1683,24 @@ ast:
           footway: Camín peatonal
           rail: Ferrocarril
           subway: Metro
-          tram:
-          - Ferrocarril llixeru
-          - tranvía
-          cable:
-          - Teleféricu
-          - telesilla
-          runway:
-          - Pista d'aeropuertu
-          - cai de rodaxe
-          apron:
-          - Aparcamientu d'aviones
-          - terminal
+          cable_car: Teleféricu
+          chair_lift: telesilla
+          runway: Pista d'aeropuertu
+          taxiway: cai de rodaxe
+          apron: Aparcamientu d'aviones
           admin: Llende alministrativa
           forest: Área forestal
           wood: Viesca
           golf: Campu de golf
           park: Parque
+          common: Espaciu comunal
           resident: Área residencial
-          common:
-          - Espaciu comunal
-          - prau
           retail: Área de tiendes
           industrial: Área industrial
           commercial: Área comercial
           heathland: Berezal
-          lake:
-          - Llagu
-          - banzáu
+          lake: Llagu
+          reservoir: banzáu
           farm: Casería
           brownfield: Terrén en derribu
           cemetery: Cementeriu
@@ -1739,14 +1709,12 @@ ast:
           centre: Centru deportivu
           reserve: Reserva natural
           military: Área militar
-          school:
-          - Escuela
-          - universidá
+          school: Escuela
+          university: universidá
           building: Edificiu destacáu
           station: Estación de tren
-          summit:
-          - Cume
-          - picu
+          summit: Cume
+          peak: picu
           tunnel: Borde de rayes = túnel
           bridge: Borde prietu = ponte
           private: Accesu priváu
@@ -2025,7 +1993,6 @@ ast:
       ct status: 'Términos de collaboración:'
       ct undecided: Indecisu
       ct declined: Refugada
-      latest edit: 'Cabera edición (%{ago}):'
       email address: 'Direición de corréu electrónicu:'
       created from: 'Creáu dende:'
       status: 'Estáu:'
@@ -2137,8 +2104,8 @@ ast:
     revoke:
       title: Desaniciando'l bloquéu a %{block_on}
       heading_html: Desaniciando'l bloquéu a %{block_on} por %{block_by}
-      time_future: Esti bloquéu finará en %{time}.
-      past: Esti bloquéu finó %{time} y nun pue revocase agora.
+      time_future_html: Esti bloquéu finará en %{time}.
+      past_html: Esti bloquéu finó %{time} y nun pue revocase agora.
       confirm: ¿Seguro que quies desaniciar esti bloquéu?
       revoke: ¡Desaniciar!
       flash: Esti bloquéu se desanició.
@@ -2276,7 +2243,6 @@ ast:
         cycle_map: Mapa ciclista
         transport_map: Mapa de tresportes
         hot: Humanitariu
-        opnvkarte: ÖPNVKarte
       layers:
         header: Capes del mapa
         notes: Notes de mapa
index f339a41e18fc327632a59a651dba693eb0617e13..32e8bc34789feea7355be9d926d4b2d701076068 100644 (file)
@@ -139,7 +139,6 @@ az:
   auth:
     providers:
       none: Heç biri
-      openid: OpenID
       google: Google
       facebook: Facebook
       github: GitHub
@@ -180,9 +179,6 @@ az:
       node: (%{count}) nöqtə
       changesetxml: XML dəyişikliklər dəsti
       osmchangexml: osmChange XML
-      feed:
-        title: Dəyişikliklər dəsti  %{id}
-        title_comment: Dəyişikliklər dəsti %{id} - %{comment}
     relation:
       members: İştirakçılar
     relation_member:
@@ -248,10 +244,15 @@ az:
       title_user: '%{user} tərəfindən edilmiş dəyişikliklər dəsti'
       title_friend: Dostlarınız tərəfindən edilmiş dəyişikliklər dəsti
       title_nearby: Yaxınlıqdakı istifadəçilər tərəfindən edilmiş dəyişikliklər dəsti
+      feed:
+        title: Dəyişikliklər dəsti  %{id}
+        title_comment: Dəyişikliklər dəsti %{id} - %{comment}
     timeout:
       sorry: Bağışlayın, tələb etdiyiniz dəyişikliklər dəstinin siyahısı, çıxarıla
         bilmək üçün cox böyükdür.
   dashboards:
+    contact:
+      latest_edit_html: 'Son redaktə %{ago}:'
     popup:
       your location: Yerləşdiyin yer
       friend: Dost
@@ -839,7 +840,6 @@ az:
   messages:
     inbox:
       title: Gələnlər
-      my_inbox: Mənim gələnlər
       messages: 'Sizin varınızdır: %{new_messages} və %{old_messages}.'
       new_messages:
         one: '%{count} yeni mesaj'
@@ -847,12 +847,14 @@ az:
       old_messages:
         one: '%{count} köhnə mesaj'
         other: '%{count} köhnə mesaj'
-      from: Kimdən
-      subject: Mövzu
-      date: Tarix
       no_messages_yet_html: Sizin hələdə mesajınız yoxdur. Niyə də ki, %{people_mapping_nearby_link}
         danışmırsınız?
       people_mapping_nearby: yaxınlıqdakı istifadəçilərlə
+    messages_table:
+      from: Kimdən
+      to: Kimə
+      subject: Mövzu
+      date: Tarix
     message_summary:
       unread_button: Oxunulmamış kimi işarələ
       read_button: Oxunulmuş kimi işarələ
@@ -872,9 +874,6 @@ az:
       body: Bağışlayın, amma belə ID ilə mesaj yoxdur.
     outbox:
       title: Göndərilənlər
-      to: Kimə
-      subject: Mövzu
-      date: Tarix
       people_mapping_nearby: yaxınlıqdakı istifadəçilərlə
     show:
       title: Mesajı oxu
@@ -882,21 +881,24 @@ az:
       unread_button: Oxunulmamış kimi işarələ
     sent_message_summary:
       destroy_button: Sil
+    heading:
+      my_inbox: Mənim gələnlər
     mark:
       as_read: Mesaj oxunulmuş kimi işarələndi
       as_unread: Mesaj oxunulmamış kimi işarələndi
     destroy:
       destroyed: Mesaj silindi
   passwords:
-    lost_password:
+    new:
       title: İtirilmiş parol
       heading: Parolu unutmusan?
       email address: 'E-poçt ünvanları:'
       new password button: Parolu yenilə
-    reset_password:
+    edit:
       title: Parolu yenilə
       heading: '%{user} üçün parolu yenilə'
       reset: Parolu Yenilə
+    update:
       flash changed: Parolun indi dəyişildi.
   profiles:
     edit:
@@ -909,7 +911,6 @@ az:
       title: Daxil olun
       heading: Daxil olun
       password: 'Parol:'
-      openid_html: '%{logo} OpenID:'
       remember: Məni xatırla
       login_button: Daxil ol
       register now: İndi qeydiyyatdan keç
@@ -942,24 +943,8 @@ az:
     edit:
       user_page_link: istifadəçi səhifəsi
     export:
-      area_to_export: İxrac üçün Ərazi
       manually_select: Digər ərazini seçmək
-      format_to_export: İxracın forması
-      osm_xml_data: OpenStreetMap XML formasında məlumatlar
-      map_image: Xəritənin Şəkili (standart qatı göstərir)
-      embeddable_html: Quraşdırılan HTML
       licence: Lisenziya
-      options: Nizamlamalar
-      format: Format
-      scale: Miqyas
-      max: maks
-      image_size: Şəkil ölçüsü
-      zoom: Yaxınlaşdır
-      add_marker: Xəritəyə marker əlavə etmək
-      latitude: 'En:'
-      longitude: 'Uz:'
-      output: Nəticə
-      paste_html: Veb sayta quraşdırmaq üçün HTML kod
       export_button: İxrac etmək
     help:
       beginners_guide:
@@ -983,37 +968,27 @@ az:
           footway: Piyada yolu
           rail: Dəmir yolu
           subway: Metro
-          tram:
-            1: tramvay
-          runway:
-          - Aeroport uçuş-enmə zolağı
-          apron:
-            1: terminal
+          runway: Aeroport uçuş-enmə zolağı
           admin: Administrativ sərhəd
           forest: Meşə
           park: Park
           resident: Yaşayış sahəsi
-          common:
-            1: çəmənlik
           retail: Ticarət sahəsi
           industrial: Sənaye sahəsi
           commercial: Ticarət sahəsi
-          lake:
-          - Göl
-          - su anbarı
+          lake: Göl
+          reservoir: su anbarı
           farm: Ferma
           cemetery: Məzarlıq
           centre: İdman mərkəzi
           reserve: Təbiət Qoruğu
           military: Hərbi ərazi
-          school:
-          - Məktəb
-          - universitet
+          school: Məktəb
+          university: universitet
           building: Əhəmiyyətli bina
           station: Dəmiryol stansiyası
-          summit:
-          - Zirvə
-          - pik
+          summit: Zirvə
+          peak: pik
           private: Xüsusi giriş
   traces:
     new:
@@ -1054,7 +1029,6 @@ az:
       diary: gündəlik
       remove as friend: dostluqdan silinmiş
       add as friend: dostluğa əlavə edilmiş
-      latest edit: 'Son redaktə %{ago}:'
       email address: 'E-poçt ünvanı:'
       status: 'Status:'
       create_block: bu istifadəçini blokla
index d68b720304e13c7886f6beabccf56060e5a84239..ca53e54c551f0b408aeea8be0f2b935e649310ec 100644 (file)
@@ -3,6 +3,7 @@
 # Export driver: phpyaml
 # Author: AiseluRB
 # Author: Amire80
+# Author: Bashkorttan
 # Author: Lizalizaufa
 # Author: MR973
 # Author: Roustammr
@@ -221,7 +222,6 @@ ba:
   auth:
     providers:
       none: Юҡ
-      openid: OpenID
       google: Google
       facebook: Facebook
       microsoft: Майкрософт
@@ -265,7 +265,7 @@ ba:
       one: 1 юл
       other: '%{count} юлдар'
     download_xml: ' XML-ды күсереү'
-    view_history: Тарихты ҡарау
+    view_history: Тарих
     view_details: Ентекләберәк
     location: 'Географик урын:'
     changeset:
@@ -277,12 +277,8 @@ ba:
       way_paginated: Юлдар (%{x}-%{y} %{count}һынан)
       relation: Мөнәсәбәттәр (%{count})
       relation_paginated: Мөнәсәбәттәр (%{x}-%{y} %{count}нан)
-      comment: Комментарийҙар (%{count})
       changesetxml: Төҙәтеүҙәр пакетының XML-ы
       osmchangexml: osmChange XML
-      feed:
-        title: 'Төҙәтеүҙәр пакеты: %{id}'
-        title_comment: Төҙәтеүҙәр пакеты %{id} — %{comment}
       join_discussion: Фекер алышыуға ҡушылыу өсөн системаға инегеҙ
       discussion: Фекер алышыу
       still_open: Төҙәтмәләр пакеты әле асыҡ. Фекер алышыу, төҙәтмәләр пакеты ябылғандан
@@ -388,6 +384,9 @@ ba:
       no_more_area: Был өлкәлә башҡа төҙәтмәләр пакеты юҡ.
       no_more_user: Был ҡулланыусынан башҡа төҙәтмәләр пакеты юҡ.
       load_more: Күберәк тейәү
+      feed:
+        title: 'Төҙәтеүҙәр пакеты: %{id}'
+        title_comment: Төҙәтеүҙәр пакеты %{id} — %{comment}
     timeout:
       sorry: Ҡыҙғанысҡа ҡаршы, һеҙ һораған төҙәтмә пакеттары исемлеген алыу өсөн күп
         ваҡыт талап итә.
@@ -964,22 +963,11 @@ ba:
   site:
     export:
       title: Сығарырға
-      area_to_export: Сығарыу яланы
       manually_select: Башҡа өлкәне ҡулдан һайларға
-      format_to_export: Сығарыу форматы
-      osm_xml_data: Биремдең OpenStreetMap XML форматы
-      map_image: Карта һүрәте (стандарт ҡатламды күрһәтә)
-      embeddable_html: Ҡуйылған HTML
       licence: Лицензия
       too_large:
         planet:
           title: OSM планетаһы
-      max: макс.
-      image_size: Һүрәт ҙурлығы
-      add_marker: Картаға билдә ҡуйыу
-      latitude: 'Киңлек:'
-      longitude: 'Оҙонлоҡ:'
-      paste_html: Сайтҡа индереп ҡуйыу өсөн HTML-код
   notes:
     show:
       title: ' %{id} искәрмәһе'
index de3a51f61fc1313488b33777fc077447a8e73220..6825dd85c03270a304ce4d503c3b44dadf0d6211 100644 (file)
@@ -46,6 +46,11 @@ be-Tarask:
       messages:
         invalid_email_address: не падобны на карэктны адрас э-пошты
         email_address_not_routable: не маршрутызаваны
+        display_name_is_user_n: ня можа быць user_n, калі n — ня ваш карыстальніцкі
+          id
+      models:
+        user_mute:
+          is_already_muted: ужо сьцішана
     models:
       acl: Сьпіс абмежаваньня доступу
       changeset: Набор зьменаў
@@ -212,7 +217,6 @@ be-Tarask:
   auth:
     providers:
       none: Няма
-      openid: OpenID
       google: Google
       facebook: Facebook
       github: GitHub
@@ -240,6 +244,10 @@ be-Tarask:
       entry:
         comment: Камэнтар
         full: Поўны тэкст
+  account:
+    deletions:
+      show:
+        confirm_delete: Вы ўпэўненыя?
   accounts:
     edit:
       title: Рэдагаваньне рахунку
@@ -303,12 +311,8 @@ be-Tarask:
       way_paginated: Лініі (%{x}-%{y} з %{count})
       relation: Сувязі (%{count})
       relation_paginated: Сувязі (%{x}-%{y} з %{count})
-      comment: Камэнтары (%{count})
       changesetxml: Набор зьменаў у фармаце XML
       osmchangexml: osmChange XML
-      feed:
-        title: Набор зьменаў %{id}
-        title_comment: Набор зьменаў %{id} - %{comment}
     way:
       nodes: Вузлы
       nodes_count:
@@ -389,6 +393,9 @@ be-Tarask:
       title_user: Набор зьменаў %{user}
       title_friend: Наборы зьменаў маіх сяброў
       title_nearby: Наборы зьменаў для суседніх удзельнікаў
+      feed:
+        title: Набор зьменаў %{id}
+        title_comment: Набор зьменаў %{id} - %{comment}
     timeout:
       sorry: Прабачце, сьпіс набораў зьменаў, які Вы запыталі, занадта вялікі для
         атрыманьня.
@@ -396,6 +403,7 @@ be-Tarask:
     contact:
       km away: '%{count}км ад Вас'
       m away: '%{count}м ад Вас'
+      latest_edit_html: 'Апошняе рэдагаваньне (%{ago}):'
     popup:
       your location: Вашае месцазнаходжаньне
       nearby mapper: Бліжэйшы стваральнік мапаў
@@ -960,7 +968,6 @@ be-Tarask:
   messages:
     inbox:
       title: Уваходзячыя
-      my_inbox: Мае ўваходзячыя
       messages: Вы маеце %{new_messages} і %{old_messages}
       new_messages:
         one: '%{count} новае паведамленьне'
@@ -970,12 +977,14 @@ be-Tarask:
         one: '%{count} старое паведамленьне'
         few: '%{count} старыя паведамленьні'
         other: '%{count} старых паведамленьняў'
-      from: Ад
-      subject: Тэма
-      date: Дата
       no_messages_yet_html: Вы яшчэ ня маеце паведамленьняў. Чаму б не зьвязацца з
         %{people_mapping_nearby_link}?
       people_mapping_nearby: людзьмі, якія жывуць каля Вас
+    messages_table:
+      from: Ад
+      to: Да
+      subject: Тэма
+      date: Дата
     message_summary:
       unread_button: Пазначыць як непрачытанае
       read_button: Пазначыць як прачытанае
@@ -999,9 +1008,6 @@ be-Tarask:
         one: Вы маеце %{count} дасланае паведамленьне
         few: Вы маеце %{count} дасланыя паведамленьні
         other: Вы маеце %{count} дасланых паведамленьняў
-      to: Да
-      subject: Тэма
-      date: Дата
       no_sent_messages_html: Вы яшчэ не даслалі паведамленьне. Чаму б не зьвязацца
         з %{people_mapping_nearby_link}?
       people_mapping_nearby: людзьмі, якія жывуць каля Вас
@@ -1018,29 +1024,33 @@ be-Tarask:
         як карыстальнік, адпаведна запыту, каб прачытаць.
     sent_message_summary:
       destroy_button: Выдаліць
+    heading:
+      my_inbox: Мае ўваходзячыя
     mark:
       as_read: Паведамленьне пазначанае як прачытанае
       as_unread: Паведамленьне пазначанае як непрачытанае
     destroy:
       destroyed: Паведамленьне выдаленае
   passwords:
-    lost_password:
+    new:
       title: Згублены пароль
       heading: Забылі пароль?
-      email address: 'Адрас электроннай пошты:'
+      email address: Адрас электроннай пошты
       new password button: Ачысьціць пароль
       help_text: Увядзіце адрас электроннай пошты, які Вы выкарыстоўвалі пры рэгістрацыі,
         і мы вышлем Вам спасылку, якую Вы зможаце выкарыстаць для зьмены паролю.
+    create:
       notice email on way: Шкада, што Вы яго згубілі, але электронны ліст ужо дасланы,
         таму Вы хутка зможаце яго зьмяніць.
       notice email cannot find: Прабачце, не атрымалася знайсьці такога адрасу электроннай
         пошты.
-    reset_password:
+    edit:
       title: Ачысьціць пароль
       heading: Скінуць пароль для %{user}
       reset: Ачысьціць пароль
-      flash changed: Ваш пароль быў зьменены.
       flash token bad: Немагчыма знайсьці такі ключ, можа праверце URL-адрас?
+    update:
+      flash changed: Ваш пароль быў зьменены.
   profiles:
     edit:
       image: Выява
@@ -1057,9 +1067,8 @@ be-Tarask:
     new:
       title: Увайсьці
       heading: Уваход
-      email or username: 'Адрас электроннай пошты ці імя карыстальніка:'
-      password: 'Пароль:'
-      openid_html: '%{logo} OpenID:'
+      email or username: Адрас электроннай пошты ці імя карыстальніка
+      password: Пароль
       remember: Запомніць мяне
       lost password link: Забылі пароль?
       login_button: Увайсьці
@@ -1116,12 +1125,7 @@ be-Tarask:
       no_iframe_support: Ваш браўзэр не падтрымлівае рамкі HTML, якія зьяўляюцца неабходнымі
         для гэтай магчымасьці.
     export:
-      area_to_export: Абшар для экспарту
       manually_select: Выбраць іншы абшар
-      format_to_export: Фармат экспарту
-      osm_xml_data: Зьвесткі OpenStreetMap у фармаце XML
-      map_image: Выява мапы (паказвае стандартны слой)
-      embeddable_html: HTML-код для ўстаўкі
       licence: Ліцэнзія
       too_large:
         body: 'Гэты абшар занадта вялікі для экспарту ў фармаце XML OpenStreetMap.
@@ -1129,17 +1133,6 @@ be-Tarask:
           з наступных крыніцаў для пакетнай запампоўкі зьвестак:'
         planet:
           title: Плянэта OSM
-      options: Устаноўкі
-      format: Фармат
-      scale: Маштаб
-      max: максымум
-      image_size: 'Памер выявы:'
-      zoom: Маштаб
-      add_marker: Дадаць маркер на мапу
-      latitude: 'Шырата:'
-      longitude: 'Даўгата:'
-      output: Вывад
-      paste_html: HTML-код для ўстаўкі ў вэб-сайт
       export_button: Экспартаваць
     any_questions:
       title: Маеце пытаньні?
@@ -1166,34 +1159,24 @@ be-Tarask:
           footway: Пешаходная дарога
           rail: Чыгунка
           subway: Мэтро
-          tram:
-          - Лінія для лёгкага чыгуначнага транспарту
-          - трамвай
-          cable:
-          - Канатная дарога
-          - крэславы пад’ёмнік
-          runway:
-          - Узьлётная паласа
-          - рулёжная дарога
-          apron:
-          - Пэрон аэрапорта
-          - тэрмінал
+          cable_car: Канатная дарога
+          chair_lift: Крэславы пад’ёмнік
+          runway: Узьлётная паласа
+          taxiway: Рулёжная дарога
+          apron: Пэрон аэрапорта
           admin: Адміністрацыйная мяжа
           forest: Лес
-          wood: Ð\9fÑ\83Ñ\88Ñ\87а
+          wood: Ð\9bеÑ\81
           golf: Поле для гольфу
           park: Парк
+          common: Грамадзкая зямля
           resident: Жылы раён
-          common:
-          - Грамадзкая зямля
-          - луг
           retail: Гандлёвы раён
           industrial: Прамысловы раён
           commercial: Камэрцыйны раён
           heathland: Пусташ
-          lake:
-          - Возера
-          - вадасховішча
+          lake: Возера
+          reservoir: Вадасховішча
           farm: Фэрма
           brownfield: Закінутая тэрыторыя
           cemetery: Могілкі
@@ -1202,14 +1185,12 @@ be-Tarask:
           centre: Спартовы цэнтар
           reserve: Запаведнік
           military: Вайсковая тэрыторыя
-          school:
-          - Школа
-          - унівэрсытэт
+          school: Школа
+          university: Унівэрсытэт
           building: Значны будынак
           station: Чыгуначная станцыя
-          summit:
-          - Вяршыня
-          - пік
+          summit: Вяршыня
+          peak: Пік
           tunnel: Пункцір = тунэль
           bridge: Чорная лінія = мост
           private: Прыватны доступ
@@ -1402,7 +1383,6 @@ be-Tarask:
       ct status: 'Умовы супрацоўніцтва:'
       ct undecided: Нявырашана
       ct declined: Адхіленыя
-      latest edit: 'Апошняе рэдагаваньне (%{ago}):'
       email address: 'Адрас электроннай пошты:'
       created from: 'Створана з:'
       status: 'Статус:'
@@ -1500,8 +1480,8 @@ be-Tarask:
     revoke:
       title: Зьняць блякаваньне з %{block_on}
       heading_html: Зьняць блякаваньне з %{block_on}, створанае %{block_by}
-      time_future: Гэтае блякаваньне скончыцца ў %{time}.
-      past: Гэтае блякаваньне скончылася %{time} і ня можа быць цяпер адкліканае.
+      time_future_html: Гэтае блякаваньне скончыцца ў %{time}.
+      past_html: Гэтае блякаваньне скончылася %{time} і ня можа быць цяпер адкліканае.
       confirm: Вы ўпэўнены, што жадаеце адклікаць гэтае блякаваньне?
       revoke: Адклікаць!
       flash: Гэтае блякаваньне было адкліканае.
@@ -1529,7 +1509,7 @@ be-Tarask:
       show: Паказаць
       edit: Рэдагаваць
       revoke: Адклікаць!
-      confirm: Вы ўпэўнены?
+      confirm: Вы ўпэўненыя?
       reason: 'Прычына блякаваньня:'
       back: Паказаць усе блякаваньні
       revoker: 'Адклікаўшы:'
index fdf9d6f5a9ae4b73ce97c5b958cba6251abc8f4b..0c3771d466770185f8cc452b1b90076286e9ddda 100644 (file)
@@ -251,7 +251,6 @@ be:
   auth:
     providers:
       none: Няма
-      openid: OpenID
       google: Google
       facebook: Facebook
       github: GitHub
@@ -338,12 +337,8 @@ be:
       way_paginated: Лініі (%{x}-%{y} з %{count})
       relation: Дачыненні (%{count})
       relation_paginated: Дачыненні (%{x}-%{y} з %{count})
-      comment: Каментары (%{count})
       changesetxml: XML пакета правак
       osmchangexml: osmChange XML
-      feed:
-        title: Набор змен %{id}
-        title_comment: Набор змен %{id} - %{comment}
       join_discussion: Увайдзіце ў сістэму, каб далучыцца да абмеркавання
       discussion: Абмеркаванне
       still_open: Пакет правак яшчэ адкрыты. Абмеркаванне стане даступным, як толькі
@@ -443,6 +438,9 @@ be:
       no_more_area: Больш няма пакетаў правак у гэтай вобласці.
       no_more_user: Больш няма пакетаў правак ад гэтага карыстальніка.
       load_more: Загрузіць больш
+      feed:
+        title: Набор змен %{id}
+        title_comment: Набор змен %{id} - %{comment}
     timeout:
       sorry: Выбачайце, спіс набораў правак, што Вы запыталі, занадта вялікі для атрымання.
   changeset_comments:
@@ -460,6 +458,7 @@ be:
     contact:
       km away: '%{count} км ад вас'
       m away: '%{count} м ад Вас'
+      latest_edit_html: 'Апошняе рэдагаванне (%{ago}):'
     popup:
       your location: Ваша месцазнаходжанне
       nearby mapper: Карыстальнік
@@ -1154,9 +1153,9 @@ be:
         zero: Няма паведамленняў
         one: 1 паведамленне
         other: '%{count} паведамленняў'
-      report_created_at: Упершыню паведамлена %{datetime}
-      last_resolved_at: Апошні раз вырашана %{datetime}
-      last_updated_at: Апошняе абнаўленне %{datetime} карыстальнікам %{displayname}
+      report_created_at_html: Упершыню паведамлена %{datetime}
+      last_resolved_at_html: Апошні раз вырашана %{datetime}
+      last_updated_at_html: Апошняе абнаўленне %{datetime} карыстальнікам %{displayname}
       resolve: Вырашыць
       ignore: Ігнараваць
       reopen: Пераадчыніць
@@ -1379,7 +1378,6 @@ be:
   messages:
     inbox:
       title: Уваходныя
-      my_inbox: Мае уваходныя
       messages: У вас %{new_messages} і %{old_messages}
       new_messages:
         one: '%{count} новае паведамленне'
@@ -1387,12 +1385,14 @@ be:
       old_messages:
         one: '%{count} старое паведамленне'
         other: '%{count} старых паведамленняў'
-      from: Ад
-      subject: Тэма
-      date: Дата
       no_messages_yet_html: У вас пакуль няма паведамленняў. Чаму б не зкаардынавацца
         з  %{people_mapping_nearby_link}?
       people_mapping_nearby: людзьмі, што жывуць непадалёку
+    messages_table:
+      from: Ад
+      to: Каму
+      subject: Тэма
+      date: Дата
     message_summary:
       unread_button: Адзначыць як нечытанае
       read_button: Адзначыць як прачытанае
@@ -1415,9 +1415,6 @@ be:
       messages:
         one: Вы адаслалі %{count} паведамленне
         other: Вы адаслалі %{count} паведамленняў
-      to: Каму
-      subject: Тэма
-      date: Дата
       no_sent_messages_html: У вас пакуль няма дасланых паведамленняў. Чаму б не зкаардынавацца
         з %{people_mapping_nearby_link}?
       people_mapping_nearby: людзьмі, што жывуць непадалёку
@@ -1436,28 +1433,32 @@ be:
         як карыстальнік, адпаведна запыту, каб прачытаць.
     sent_message_summary:
       destroy_button: Выдаліць
+    heading:
+      my_inbox: Мае уваходныя
     mark:
       as_read: Паведамленне адмечана прачытаным
       as_unread: Паведамленне адмечана нечытаным
     destroy:
       destroyed: Паведамленне выдалена
   passwords:
-    lost_password:
+    new:
       title: згублены пароль
       heading: Забылі пароль?
       email address: 'Паштовы адрас:'
       new password button: Выслаць мне новы пароль
       help_text: Увядзіце адрас электроннай пошты, які Вы выкарыстоўвалі пры рэгістрацыі,
         і мы вышлем Вам спасылку, якую Вы зможаце выкарыстаць для змены паролю.
+    create:
       notice email on way: Жаль, што вы яго згубілі :-( але ліст ужо адпраўлены, і
         вы хутка зможаце яго скінуць.
       notice email cannot find: Немагчыма знайсці гэтакі паштовы адрас, прабачце.
-    reset_password:
+    edit:
       title: скінуць пароль
       heading: Скінуць пароль для %{user}
       reset: 'Скінуць пароль:'
-      flash changed: Ваш пароль быў зменены.
       flash token bad: Не знайшоў такі токен, можа, праверце URL?
+    update:
+      flash changed: Ваш пароль быў зменены.
   profiles:
     edit:
       image: 'Выява:'
@@ -1479,7 +1480,6 @@ be:
       heading: Уваход
       email or username: 'Пошта ці імя карыстальніка:'
       password: 'Пароль:'
-      openid_html: '%{logo} OpenID:'
       remember: Памятаць мяне
       lost password link: Згубілі пароль?
       login_button: Увайсці
@@ -1599,12 +1599,7 @@ be:
         для гэтай функцыі.
     export:
       title: Экспарт
-      area_to_export: Экспартаваць мясцовасць
       manually_select: Выбраць іншую мясцовасць
-      format_to_export: Фармат для экспарту
-      osm_xml_data: OpenStreetMap XML
-      map_image: Выява карты (паказвае стандартны слой)
-      embeddable_html: HTML-код
       licence: Ліцэнзія
       too_large:
         advice: 'Калі экспарт вышэй не атрымаўся, то разгледзьце магчымасць выкарыстання
@@ -1626,17 +1621,6 @@ be:
         other:
           title: Іншыя крыніцы
           description: Дадатковыя крыніцы, пералічаныя на Вікі OpenStreetMap
-      options: Параметры
-      format: Фармат
-      scale: Маштаб
-      max: макс
-      image_size: Памер выявы
-      zoom: Павелічэнне
-      add_marker: Дадаць маркер на карту
-      latitude: 'Шыр:'
-      longitude: 'Даў:'
-      output: Вывад
-      paste_html: Уставіць HTML-код у вэб-сайт
       export_button: Экспарт
     fixthemap:
       title: Паведаміць аб праблеме / Выправіць карту
@@ -1663,10 +1647,6 @@ be:
       beginners_guide:
         title: Дапаможнік для пачаткоўцаў
         description: Супольнасць падтрымлівае дапаможнік для пачаткоўцаў.
-      help:
-        title: Пытанні і адказы
-        description: Задайце пытанне або шукайце адказы на сайце пытанняў і адказаў
-          OSM.
       mailing_lists:
         title: Рассылкі
         description: Задайце пытанне ці далучыцеся да абмеркавання цікавых тэм на
@@ -1717,35 +1697,29 @@ be:
           cycleway_local: Веладарожка мясцовага значэння
           footway: Пешаходная дарожка
           rail: Чыгунка
+          train: Цягнік
           subway: Метро
-          tram:
-          - Хуткасны трамвай
-          - трамвай
-          cable:
-          - Канатная дарога
-          - Крэсельны пад'ёмнік
-          runway:
-          - Узлетна-пасадачная паласа
-          - рулёжная дарожка
-          apron:
-          - Перон аэрапорта
-          - тэрмінал
+          trolleybus: Тралейбус
+          bus: Аўтобус
+          cable_car: Канатная дарога
+          chair_lift: Крэсельны пад'ёмнік
+          runway: Узлетна-пасадачная паласа
+          taxiway: рулёжная дарожка
+          apron: Перон аэрапорта
           admin: Адміністрацыйная мяжа
           forest: Лес
-          wood: Ð\9fушча
+          wood: Ð¿ушча
           golf: Поле для гольфа
           park: Парк
+          common: Агульныя
           resident: Жылы раён
-          common:
-          - Агульныя
-          - луг
           retail: Гандлевая плошча
           industrial: Прамысловая зона
           commercial: Камерцыйная зона
           heathland: Пустка
-          lake:
-          - Возера
-          - вадасховішча
+          lake: Возера
+          reservoir: вадасховішча
+          glacier: Ляднік
           farm: Ферма
           brownfield: Ачышчаная пляцоўка для забудовы
           cemetery: Могілкі
@@ -1754,14 +1728,12 @@ be:
           centre: Спартыўны цэнтр
           reserve: Запаведнік
           military: Ваенная зона
-          school:
-          - Школа
-          - універсітэт
+          school: Школа
+          university: універсітэт
           building: Значны будынак
           station: Чыгуначны вакзал
-          summit:
-          - Вяршыня
-          - пік
+          summit: Вяршыня
+          peak: пік
           tunnel: Тунэль (пункцірам)
           bridge: Мост (суцэльная лінія)
           private: Прыватны доступ
@@ -2033,7 +2005,6 @@ be:
       ct status: 'Умовы ўдзелу:'
       ct undecided: Нявырашана
       ct declined: Адхіленыя
-      latest edit: 'Апошняе рэдагаванне (%{ago}):'
       email address: 'Адрас электроннай пошты:'
       created from: 'Створана з:'
       status: 'Статус:'
@@ -2144,8 +2115,8 @@ be:
     revoke:
       title: Зняць блакіроўку з %{block_on}
       heading_html: Зняць блакіроўку з %{block_on}, створаную %{block_by}
-      time_future: Гэтая блакіроўка скончыцца ў %{time}.
-      past: Гэтая блакіроўка скончылася %{time} і не можа быць цяпер адклікана.
+      time_future_html: Гэтая блакіроўка скончыцца ў %{time}.
+      past_html: Гэтая блакіроўка скончылася %{time} і не можа быць цяпер адклікана.
       confirm: Вы ўпэўнены, што жадаеце адклікаць гэтую блакіроўку?
       revoke: Адазваць!
       flash: Гэтая блакіроўка была адклікана.
@@ -2293,7 +2264,6 @@ be:
         cycle_map: Веласіпедная карта
         transport_map: Транспартная карта
         hot: Гуманітарная карта
-        opnvkarte: ÖPNVKarte
       layers:
         header: Слаі карты
         notes: Заўвагі на карце
index caf21ce119333155a20f4325e4266c94a09235e7..ade60f0c3e094f0ba840e80e17d4b5f051bc245e 100644 (file)
@@ -205,11 +205,10 @@ bg:
       description: iD (браузърен редактор)
     remote:
       name: дистанционно управление
-      description: Ð\94истанционно управление (JOSM, Potlatch или Merkaartor)
+      description: Ð´истанционно управление (JOSM, Potlatch или Merkaartor)
   auth:
     providers:
       none: Нищо
-      openid: OpenID
       google: Google
       facebook: Facebook
       microsoft: Майкрософт
@@ -261,6 +260,8 @@ bg:
         retain_changeset_discussions: Обсъжданията на списъци от промени, ако има
           такива, ще бъдат запазени.
         retain_email: Вашият имейл адрес ще бъде запазен.
+        recent_editing_html: Тъй като сте редактирали наскоро, Вашият акаунт в момента
+          не може да бъде изтрит. Изтриването ще бъде възможно след %{time}.
         confirm_delete: Сигурни ли сте?
         cancel: Отказ
   accounts:
@@ -296,6 +297,8 @@ bg:
     closed: Затворена
     closed_ago_html: Затворен %{time_ago}
     created_ago_by_html: Създаден %{time_ago} от %{user}
+    closed_ago_by_html: Затворен %{time_ago} от %{user}
+    edited_ago_by_html: Редактирано %{time_ago} от %{user}
     version: Версия
     in_changeset: Списък с промени
     anonymous: анонимен
@@ -314,12 +317,8 @@ bg:
       way_paginated: Пътища (%{x}-%{y} от общо %{count})
       relation: Релации (%{count})
       relation_paginated: Релации(%{x}-%{y} от %{count})
-      comment: Коментари (%{count})
       changesetxml: XML на списъка с промени
       osmchangexml: osmChange XML
-      feed:
-        title: Списък с промени %{id}
-        title_comment: Списък с промени %{id} - %{comment}
       join_discussion: Впишете се, за да се присъедините към обсъждането
       discussion: Обсъждане
       still_open: Списъкът с промени не е завършен - обсъждането ще започне след неговото
@@ -413,6 +412,9 @@ bg:
       no_more_area: Няма повече списъци с промени в този район.
       no_more_user: Няма повече списъци с промени от потребителя.
       load_more: Зареждане на още
+      feed:
+        title: Списък с промени %{id}
+        title_comment: Списък с промени %{id} - %{comment}
     timeout:
       sorry: Съжаляваме, но списъка с промени който заявихте се зарежда твърде дълго.
   changeset_comments:
@@ -431,16 +433,21 @@ bg:
     contact:
       km away: '%{count} км от вас'
       m away: '%{count} м от вас'
+      latest_edit_html: 'Последна промяна (%{ago}):'
     popup:
       your location: Моето местоположение
       nearby mapper: Картографи в близост
       friend: Приятел
     show:
+      no_home_location_html: '%{edit_profile_link} и задайте домашното си местоположение,
+        за да видите потребителите наблизо.'
       edit_your_profile: Редактиране на профила
       my friends: Моите приятели
       no friends: Все още нямате добавени приятели.
       nearby users: Други потребители в близост
       no nearby users: Все още няма други потребители, които картографират в близост.
+      friends_changesets: набори с промени на приятели
+      friends_diaries: записи в дневника на приятели
   diary_entries:
     new:
       title: Нова публикация в дневника
@@ -481,6 +488,7 @@ bg:
       comment_count:
         one: 1 коментар
         other: '%{count} коментара'
+      no_comments: Без коментари
       edit_link: Променяне на публикацията
       hide_link: Скриване на публикацията
       unhide_link: Скриване на публикацията
@@ -500,6 +508,10 @@ bg:
       user:
         title: OpenStreetMap дневник записи за %{user}
         description: Последни OpenStreetMap записи в дневника от %{user}
+      language:
+        title: Записи в дневника на OpenStreetMap на %{language_name}
+        description: Скорошни записи в дневника от потребители на OpenStreetMap на
+          %{language_name}
       all:
         title: Записи в дневника на OpenStreetMap
     comments:
@@ -509,6 +521,9 @@ bg:
       comment: Коментар
       newer_comments: По-нови коментари
       older_comments: По-стари коментари
+  doorkeeper:
+    scopes:
+      address: Вижте вашия физически адрес
   errors:
     contact:
       contact: контакт
@@ -525,6 +540,10 @@ bg:
       success: '%{name} беше премахнат от списъка с приятелите.'
       not_a_friend: '%{name} не е между вашите приятели.'
   geocoder:
+    search:
+      title:
+        results_from_html: Резултати от %{results_link}
+        latlon: Вътрешни
     search_osm_nominatim:
       prefix:
         aerialway:
@@ -540,6 +559,7 @@ bg:
           gate: Врата на летище
           hangar: Хангар
           helipad: Вертолетна площадка
+          parking_position: Позиция за паркиране
           runway: Писта
           taxilane: Таксилента
           taxiway: Път за рулиране
@@ -587,6 +607,7 @@ bg:
           fuel: Бензиностанция
           gambling: Хазартни игри
           grave_yard: Гробище
+          grit_bin: Кошче за пясък
           hospital: Болница
           hunting_stand: Ловна стоянка
           ice_cream: Сладолед
@@ -694,20 +715,25 @@ bg:
           electronics_repair: Ремонт Електроника
           gardener: Градинар
           handicraft: Ръчна изработка
+          hvac: Климатици
+          metal_construction: Метални конструкции
           painter: Художник
           photographer: Фотограф
           plumber: Водопроводчик
+          roofer: Покриви
+          sawmill: Дъскорезница
           shoemaker: Обущар
           tailor: Шивач
           window_construction: Изработка на прозорци
           winery: Винарна
           "yes": Работилница
         emergency:
-          access_point: Тчока за достъп
+          access_point: Точка за достъп
           ambulance_station: Станция за линейки
           defibrillator: Дефибрилатор
           fire_extinguisher: Пожарогасител
           landing_site: Място за аварийно приземяване
+          life_ring: Спасителен пояс
           phone: Телефон за спешни повиквания
           water_tank: Цистерна за спешни случаи
         highway:
@@ -716,6 +742,7 @@ bg:
           bus_stop: Автобусна спирка
           construction: Магистрала в строеж
           corridor: Коридор
+          crossing: Пресичане
           cycleway: Велосипедна пътека
           elevator: Асансьор
           emergency_access_point: Пункт за спешна помощ
@@ -754,6 +781,7 @@ bg:
           unclassified: Некласифициран път
           "yes": Път
         historic:
+          aircraft: Исторически самолет
           archaeological_site: Разкопки
           battlefield: Бойно поле
           boundary_stone: Граничен камък
@@ -771,6 +799,7 @@ bg:
           mine: Рудник
           mine_shaft: Шахта на мина
           monument: Паметник
+          railway: Историческа ж.п. линия
           roman_road: Римски път
           ruins: Развалини
           stone: Камък
@@ -834,6 +863,7 @@ bg:
           water_park: Аквапарк
         man_made:
           antenna: Антена
+          beacon: Маяк
           beehive: Кошер
           bridge: Мост
           bunker_silo: Бункер
@@ -855,6 +885,7 @@ bg:
           silo: Силоз
           snow_cannon: Снежно оръдие
           storage_tank: Резервоар
+          street_cabinet: Ел. табло на улицата
           surveillance: Наблюдение
           telescope: Телескоп
           tower: Кула
@@ -873,6 +904,7 @@ bg:
         mountain_pass:
           "yes": Планински проход
         natural:
+          atoll: Атол
           bay: Залив
           beach: Плаж
           cape: Нос
@@ -898,10 +930,12 @@ bg:
           rock: Скала
           saddle: Седловина
           sand: Пясък
+          scrub: Храсти
           spring: Ручей
           stone: Камък
           tree: Дърво
           tree_row: Редица дървета
+          tundra: Тундра
           valley: Долина
           volcano: Вулкан
           water: Вода
@@ -927,10 +961,12 @@ bg:
           ngo: Офис на НПО
           notary: Нотариус
           research: Изследователски офис
+          tax_advisor: Данъчен съветник
           travel_agent: Туристическа агенция
           "yes": Офис
         place:
           allotments: Градини
+          archipelago: Архипелаг
           city: Град
           country: Държава
           county: Област
@@ -1006,6 +1042,7 @@ bg:
           fishing: Рибарски магазин
           florist: Цветарски магазин
           food: Хранителни стоки
+          frame: Магазин за рамки
           funeral_directors: Погребална служба
           furniture: Мебели
           garden_centre: Градински център
@@ -1027,6 +1064,7 @@ bg:
           mall: Търговски център
           massage: Масаж
           mobile_phone: Магазин за мобилни телефони
+          money_lender: Лихвар
           motorcycle: Магазин за Мотори и Мотоциклети
           music: Музикален магазин
           musical_instrument: Музикални Инструменти
@@ -1037,6 +1075,7 @@ bg:
           paint: Бои и лакови
           perfumery: Парфюмерия
           pet: Магазин за домашни любимци
+          pet_grooming: Грижа за домашни любимци
           photo: Фотомагазин
           seafood: Морска храна
           second_hand: Магазин Втора-ръка
@@ -1045,6 +1084,7 @@ bg:
           stationery: Канцеларски материали
           supermarket: Супермаркет
           tailor: Шивач
+          tattoo: Татуировки
           ticket: Билетна каса
           toys: Магазин за играчки
           travel_agency: Туристическа агенция
@@ -1071,6 +1111,7 @@ bg:
           museum: Музей
           picnic_site: Място за пикник
           theme_park: Увеселителен парк
+          viewpoint: Място с добра гледка
           wilderness_hut: Горска хижа
           zoo: Зологическа градина
         tunnel:
@@ -1080,6 +1121,7 @@ bg:
           canal: Канал
           dam: Язовирна стена
           dock: Док
+          mooring: Пристан
           river: Река
           stream: Поток
           waterfall: Водопад
@@ -1128,9 +1170,9 @@ bg:
       reports:
         one: '%{count} доклад'
         other: '%{count} доклада'
-      report_created_at: Първоначално докладван на %{datetime}
-      last_resolved_at: Последно решена на %{datetime}
-      last_updated_at: Последно актуализиран на %{datetime} от %{displayname}
+      report_created_at_html: Първоначално докладван на %{datetime}
+      last_resolved_at_html: Последно решена на %{datetime}
+      last_updated_at_html: Последно актуализиран на %{datetime} от %{displayname}
       resolve: Решаване
       ignore: Пропусни
       reopen: Отново отвори
@@ -1234,6 +1276,7 @@ bg:
     diary_comment_notification:
       hi: Здравейте %{to_user},
     message_notification:
+      subject: '[OpenStreetMap] %{message_title}'
       hi: Здравейте %{to_user},
     friendship_notification:
       hi: Здравейте %{to_user},
@@ -1242,6 +1285,7 @@ bg:
       see_their_profile: Можете да видите профила му на %{userurl}.
       befriend_them: Можете да ги добавите като приятел на %{befriendurl}.
     gpx_failure:
+      hi: Здравейте %{to_user},
       failed_to_import: 'не е внесен. Това е грешката:'
       subject: '[OpenStreetMap] Грешка при внасяне на GPX'
     gpx_success:
@@ -1277,8 +1321,11 @@ bg:
           интересувате'
       closed:
         subject_own: '[OpenStreetMap] %{commenter} е решил една от бележките ви'
+        subject_other: '[OpenStreetMap] %{commenter} разреши бележка, която ви интересува'
         your_note: '%{commenter} е решил една от бележките ви към картата в близост
           до %{place}.'
+        your_note_html: '%{commenter} разреши една от вашите бележки на картата близо
+          до %{place}.'
       reopened:
         subject_own: '[OpenStreetMap] %{commenter} повторно е отворил една от бележките
           ви'
@@ -1303,6 +1350,7 @@ bg:
       success: Профилът е потвърден, благодарим за регистрацията!
       already active: Този профил вече е бил потвърден.
       unknown token: Този код за потвърждение е изтекъл или не съществува.
+      click_here: Кликнете тук
     confirm_resend:
       failure: Потребителят %{name} не е открит.
     confirm_email:
@@ -1315,8 +1363,6 @@ bg:
   messages:
     inbox:
       title: Входящи
-      my_inbox: Входяща кутия
-      my_outbox: Изходяща кутия
       messages: Имате %{new_messages} и %{old_messages}
       new_messages:
         one: '%{count} ново съобщение'
@@ -1324,12 +1370,15 @@ bg:
       old_messages:
         one: '%{count} прочетено съобщение'
         other: '%{count} прочетени съобщения'
-      from: От
-      subject: Тема
-      date: Дата
       no_messages_yet_html: Все още нямате никакви съобщения. Не искате ли да се свържете
         с други %{people_mapping_nearby_link}?
       people_mapping_nearby: картографи в близост
+    messages_table:
+      from: От
+      to: До
+      subject: Тема
+      date: Дата
+      actions: Действия
     message_summary:
       unread_button: Отбелязване като непрочетено
       read_button: Отбелязване като прочетено
@@ -1347,14 +1396,10 @@ bg:
       body: Съжаляваме но няма съобщение със това id.
     outbox:
       title: Изходящи
-      my_inbox: Входящи
-      my_outbox: Изходяща кутия
+      actions: Действия
       messages:
         one: Изпратили сте %{count} съобщение
         other: Изпратили сте %{count} съобщения
-      to: До
-      subject: Тема
-      date: Дата
       no_sent_messages_html: Все още нямате никакви съобщения. Не искате ли да се
         свържете с други %{people_mapping_nearby_link}?
       people_mapping_nearby: картографи в близост
@@ -1370,25 +1415,31 @@ bg:
       back: Назад
     sent_message_summary:
       destroy_button: Изтриване
+    heading:
+      my_inbox: Входяща кутия
+      my_outbox: Изходяща кутия
+      muted_messages: Заглушени съобщения
     mark:
       as_read: Съобщението е отбелязано като прочетено
       as_unread: Съобщението е отбелязано като непрочетено
     destroy:
       destroyed: Съобщението беше изтрито
   passwords:
-    lost_password:
+    new:
       title: Възстановяване на парола
       heading: Забравена парола?
-      email address: 'Електронна поща:'
+      email address: Електронна поща
       new password button: Нова парола
       help_text: Въведете имейл адреса, който сте използвали при регистрацията, и
         ние ще Ви изпратим връзка, която можете да използвате, за да промените паролата
         си.
+    create:
       notice email cannot find: Съжаляваме, но този електронен адрес не е намерен.
-    reset_password:
+    edit:
       title: Възстановяване на парола
       heading: Смени Парола за %{user}
       reset: Нулиране на парола
+    update:
       flash changed: Паролата е променена успешно.
   preferences:
     show:
@@ -1399,12 +1450,16 @@ bg:
     edit:
       save: Запазване на предпочитанията
       cancel: Отказ
+    update_success_flash:
+      message: Настройките са обновени.
   profiles:
     edit:
+      title: Редактиране на профила
       cancel: Отказ
       image: Изображение
       gravatar:
         gravatar: Използване на Gravatar
+        what_is_gravatar: Какво е Gravatar?
       new image: Добавяне на изображение
       keep image: Запазване на текущото изображение
       delete image: Премахване на текущото изображение
@@ -1414,6 +1469,7 @@ bg:
       no home location: Не сте избрали своето местоположение.
       update home location on click: Променяне на моето местоположение при избиране
         от картата
+      show: Показване
     update:
       success: Профилът е обновен.
       failure: Неуспешно обновление на профила.
@@ -1421,9 +1477,8 @@ bg:
     new:
       title: Влизане
       heading: Влизане
-      email or username: 'Електронна поща или потребителско име:'
-      password: 'Парола:'
-      openid_html: '%{logo} OpenID:'
+      email or username: Електронна поща или потребителско име
+      password: Парола
       remember: Запомняне
       lost password link: Забравена парола?
       login_button: Влизане
@@ -1472,12 +1527,15 @@ bg:
       text: Текст
       image: Изображение
       alt: Алтернативен текст
+      url: URL
+      codeblock: Блок с код
     richtext_field:
       edit: Редактиране
       preview: Предварителен преглед
   site:
     about:
       next: Напред
+      heading_html: '%{copyright}OpenStreetMap %{br} сътрудници'
       used_by_html: '%{name} осигурява картографски данни на хиляди страници, мобилни
         приложения и устройства'
       lede_text: OpenStreetMap е създадена от общност от картографи, които предоставят
@@ -1494,6 +1552,7 @@ bg:
         работници, които картографират райони, засегнати от бедствия, и много други.
         За да научите повече за общността, вижте %{osm_blog_link}, %{user_diaries_link},
         %{community_blogs_link} и %{osm_foundation_link}.
+      community_driven_user_diaries: потребителските дневници
       community_driven_community_blogs: блогове на общността
       open_data_title: Отворени данни
       open_data_1_html: 'OpenStreetMap е %{open_data}: Вие сте свободни да я използвате
@@ -1501,12 +1560,14 @@ bg:
         промените или надграждате данните по определен начин, можете да разпространявате
         резултата само под същия лиценз. За подробности вижте %{copyright_license_link}.'
       open_data_open_data: отворени данни
+      open_data_copyright_license: Авторски права и лиценз
       legal_title: Правни въпроси
       legal_1_1_html: |-
         Този сайт и много други свързани с него услуги се управляват официално от
         %{openstreetmap_foundation_link} (OSMF)
         от името на общността. Използването на всички услуги, управлявани от OSMF, е предмет на
         на нашите %{terms_of_use_link}, %{aup_link} и нашата %{privacy_policy_link}.
+      legal_1_1_privacy_policy: Политика за поверителност
       legal_2_1_html: Моля, %{contact_the_osmf_link} ако имате въпроси, свързани с
         лицензирането, авторските права или други правни въпроси.
       legal_2_1_contact_the_osmf: свържете се с OSMF
@@ -1544,11 +1605,7 @@ bg:
       id_not_configured: iD не е настроен
     export:
       title: Експортиране
-      area_to_export: Зона за експортиране
       manually_select: Ръчно избиране на друга област
-      format_to_export: Формат за експортиране
-      osm_xml_data: OpenStreetMap XML данни
-      embeddable_html: HTML-код за вграждане
       licence: Лиценз
       too_large:
         advice: 'Ако експортирането по-горе не сработи, моля, използвайте един от
@@ -1561,17 +1618,6 @@ bg:
           title: Geofabrik Downloads
         other:
           title: Други източници
-      options: Настройки
-      format: Формат
-      scale: Мащаб
-      max: макс.
-      image_size: Размер на изображението
-      zoom: Мащабиране
-      add_marker: Добавяне на маркер на картата
-      latitude: 'Геогр. шир:'
-      longitude: 'Геогр. дълж:'
-      output: Изход
-      paste_html: Копирайте HTML за вграждане в интернет страница
       export_button: Експортиране
     fixthemap:
       title: Докладвай проблем/Коригирай картата
@@ -1597,17 +1643,13 @@ bg:
       beginners_guide:
         title: Наръчник за начинаещи
         description: Ръководство за начинаещи, поддържано от общността.
-      help:
-        title: Форум за поддръжка
-        description: Задайте въпрос или потърсете отговори в сайта за въпроси и отговори
-          на OpenStreetMap.
+      community:
+        title: Форум на общността
+        description: Споделено място за търсене на помощ и разговори за OpenStreetMap.
       mailing_lists:
         title: Пощенски списъци
         description: Задайте въпрос или дискутирайте интересни теми в широк спектър
           от тематични и регионални пощенски списъци.
-      community:
-        title: Форум на общността
-        description: Споделено място за разговори за OpenStreetMap.
       irc:
         title: IRC
         description: Интерактивен чат на много различни езици и по много теми.
@@ -1656,34 +1698,24 @@ bg:
           footway: Пътека
           rail: Железен път
           subway: Метро
-          tram:
-          - Бърз трамвай
-          - трамвай
-          cable:
-          - Кабинков лифт
-          - седалков лифт
-          runway:
-          - Летищна писта
-          - път за рулиране
-          apron:
-          - Летищен перон
-          - терминал
+          cable_car: Кабинков лифт
+          chair_lift: Седалков лифт
+          runway: Летищна писта
+          taxiway: Път за рулиране
+          apron: Летищен перон
           admin: Административна граница
           forest: Гора
-          wood: Ð\94Ñ\8aÑ\80веÑ\82а
+          wood: Ð\93оÑ\80а
           golf: Игрище за голф
           park: Парк
+          common: Обща
           resident: Жилищна зона
-          common:
-          - Обща
-          - ливада
           retail: Търговска зона
           industrial: Промишлена зона
           commercial: Търговска зона
           heathland: Пустош
-          lake:
-          - Езеро
-          - язовир
+          lake: Езеро
+          reservoir: Язовир
           farm: Ферма
           brownfield: Място за строеж
           cemetery: Гробище
@@ -1692,14 +1724,12 @@ bg:
           centre: Спортен център
           reserve: Природен резерват
           military: Военна зона
-          school:
-          - Училище
-          - университет
+          school: Училище
+          university: Университет
           building: Значима сграда
           station: Железопътна гара
-          summit:
-          - Било
-          - връх
+          summit: Било
+          peak: Връх
           tunnel: Тунел (пунктирана линия)
           bridge: Мост (плътна линия)
           private: Частен достъп
@@ -1856,7 +1886,7 @@ bg:
       allow_read_gpx: прочети вашите лични GPS следи.
       allow_write_gpx: Качване на GPS следи.
       allow_write_notes: променяне на бележки.
-      grant_access: Ð\9fозволи Ð\94остъп
+      grant_access: Ð\9fозволи Ð´остъп
     authorize_success:
       title: Искането за достъп е разрешено
       allowed_html: Вие позволихте на приложение %{app_name} достъп до вашия профил.
@@ -1929,6 +1959,8 @@ bg:
       my_preferences: Предпочитания
       blocks on me: Блокирани от мен
       blocks by me: Блокирани от мен
+      create_mute: Заглушаване на потребителя
+      edit_profile: Редактиране на профила
       send message: Изпратете съобщение
       diary: Дневник
       edits: Промени
@@ -1940,7 +1972,6 @@ bg:
       ct status: 'Условия за сътрудничество:'
       ct undecided: Неопределени
       ct declined: Отхвърлени
-      latest edit: 'Последна промяна (%{ago}):'
       email address: 'Електронна поща:'
       created from: 'Създадена от:'
       status: 'Състояние:'
@@ -1986,6 +2017,8 @@ bg:
     edit:
       title: Промяна на блокирането на %{name}
       heading_html: Промяна на блокирането на %{name}
+    filter:
+      block_expired: Блокирането вече е изтекло и не може да се редактира.
     revoke:
       revoke: Анулиране!
     helper:
@@ -2025,6 +2058,11 @@ bg:
       showing_page: Страница %{page}
       next: Следваща »
       previous: « Предишна
+  user_mutes:
+    index:
+      table:
+        thead:
+          actions: Действия
   notes:
     index:
       title: Бележки създадени или с коментар от %{user}
@@ -2135,6 +2173,9 @@ bg:
         graphhopper_bicycle: Велосипед (GraphHopper)
         graphhopper_car: Автомобил (GraphHopper)
         graphhopper_foot: Пеша (GraphHopper)
+        fossgis_valhalla_bicycle: Велосипед (Valhalla)
+        fossgis_valhalla_car: Автомобил (Valhalla)
+        fossgis_valhalla_foot: Пеша (Valhalla)
       descend: Спускане
       directions: Упътване
       distance: Разстояние
@@ -2148,6 +2189,8 @@ bg:
         offramp_right_with_exit_directions: Излезте от %{exit} изход вдясно към %{directions}
         offramp_right_with_exit_name_directions: Излезте от %{exit} изход вдясно на
           %{name}, към %{directions}
+        onramp_right_without_directions: Завийте надясно към рампата
+        onramp_right: Завийте надясно към рампата
         endofroad_right_without_exit: В края на пътя завийте надясно по %{name}
         merge_right_without_exit: Навлезте надясно на %{name}
         fork_right_without_exit: На разклона завийте надясно по %{name}
@@ -2156,11 +2199,14 @@ bg:
         uturn_without_exit: Обратен завой по %{name}
         sharp_left_without_exit: Остър завой наляво по %{name}
         turn_left_without_exit: Завийте наляво по %{name}
+        offramp_left: Вземете изхода наляво
         offramp_left_with_exit: Излезте от %{exit} изход вляво
         offramp_left_with_exit_name: Излезте от %{exit} изход вляво на %{name}
         offramp_left_with_exit_directions: Излезте от %{exit} изход вляво към %{directions}
         offramp_left_with_exit_name_directions: Излезте от %{exit} изход вляво на
           %{name}, към %{directions}
+        offramp_left_with_name: Вземете изхода наляво към %{name}
+        offramp_left_with_directions: Вземете изхода наляво в посока %{directions}
         endofroad_left_without_exit: В края на пътя завийте наляво по %{name}
         merge_left_without_exit: Навлезте наляво на %{name}
         fork_left_without_exit: На разклона завийте наляво по %{name}
@@ -2175,7 +2221,7 @@ bg:
         roundabout_with_exit: На кръговото движение излезте от %{exit} изход към %{name}
         roundabout_with_exit_ordinal: На кръговото движение вземете %{exit} изход
           към %{name}
-        exit_roundabout: Излезете от кръговото движение от %{name}
+        exit_roundabout: Излезте от кръговото движение от %{name}
         unnamed: неименуван път
         courtesy: Упътване благодарение на %{link}
         exit_counts:
index 7e41b3024f73e70434fdd32762d0eef12fc8c3be..6c90192f714b7ea875b2533ea364eb67ac34b882 100644 (file)
@@ -7,6 +7,7 @@
 # Author: Anupamdutta73
 # Author: Bellayet
 # Author: Bodhisattwa
+# Author: Borhan
 # Author: Ehsanulhb
 # Author: Elias Ahmmad
 # Author: Greatder
@@ -347,7 +348,7 @@ bn:
     version: সংস্করণ
     in_changeset: পরিবর্তনসমূহ
     anonymous: নামহীন
-    no_comment: (কোন মন্তব্য নেই)
+    no_comment: (কোন মন্তব্য নেই)
     part_of: অংশ
     part_of_relations:
       one: '%{count}টি সম্পর্ক'
@@ -368,13 +369,9 @@ bn:
       way_paginated: পথসমূহ (%{count}টির %{x}-%{y})
       relation: সম্পর্ক (%{count}টি)
       relation_paginated: সম্পর্ক (%{count}টির %{x}-%{y})
-      comment: মন্তব্য (%{count}টি)
       hidden_comment_by_html: '%{user} %{time_ago} মন্তব্যটি লুকিয়েছেন'
       changesetxml: পরিবর্তনধার্য এক্সএমএল
       osmchangexml: osmChange এক্সএমএল
-      feed:
-        title: পরিবর্তনধার্য %{id}
-        title_comment: পরিবর্তনধার্য %{id} - %{comment}
       join_discussion: আলোচনায় যোগ দিতে প্রবেশ করুন
       discussion: আলোচনা
       still_open: চেঞ্জসেট এখনও খোলা - চেঞ্জসেট বন্ধ হয়ে গেলে আলোচনা খোলা হবে।
@@ -482,6 +479,9 @@ bn:
       no_more_area: এই এলাকায় কোনো পরিবর্তনসেট নেই।
       no_more_user: এই ব্যবহারকারীর দ্বারা আর কোনো পরিবর্তনসেট নেই।
       load_more: আরও লোড করুন
+      feed:
+        title: পরিবর্তনধার্য %{id}
+        title_comment: পরিবর্তনধার্য %{id} - %{comment}
     timeout:
       sorry: দুঃখিত, আপনি যেই পরিবর্তনসেটটির জন্য আবেদন করছেন সেটি ফিরিয়ে আনতে আরও
         সময় লাগবে।
@@ -501,6 +501,7 @@ bn:
     contact:
       km away: '%{count}কিমি দূরে'
       m away: '%{count}মিটার দূরে'
+      latest_edit_html: 'সর্বশেষ সম্পাদনা করেন (%{ago}):'
     popup:
       your location: আপনার অবস্থান
       nearby mapper: কাছাকাছি অবস্থানকারী ম্যাপার
@@ -544,11 +545,12 @@ bn:
     show:
       title: '%{user}-এর দিনলিপি | %{title}'
       user_title: '%{user}-এর দিনলিপি'
+      discussion: আলোচনা
       leave_a_comment: একটি মন্তব্য করুন
       login_to_leave_a_comment_html: মন্তব্য করতে %{login_link} করুন
       login: প্রবেশ
     no_such_entry:
-      title: এমন কোন দিনলিপির ভুক্তি নেই
+      title: এমন কোন দিনলিপির ভুক্তি নেই
       heading: '%{id} এই আইডি থেকে কোনও ভুক্তি নেই'
       body: দুঃখিত, %{id} এই আইডি থেকে কোনও দিনলিপির ভুক্তি অথবা মন্তব্য নেই। দয়া
         করে আপনার বানান যাচাই করুন, অথবা হতে পারে আপনি যে লিংকটিতে ক্লিক করেছেন তা
@@ -614,7 +616,7 @@ bn:
       title: নিষিদ্ধ
     internal_server_error:
       title: অ্যাপ্লিকেশন ত্রুটি
-      description: ওপেনস্ট্রিটম্যাপ সার্ভার কোন অপ্রত্যাশিত অবস্থার সম্মুখীন হয়েছে
+      description: ওপেনস্ট্রিটম্যাপ সার্ভার কোন অপ্রত্যাশিত অবস্থার সম্মুখীন হয়েছে
         যার ফলে অনুরোধ পূরণ করা যাচ্ছে না (HTTP ৫০০)
     not_found:
       title: ফাইল পাওয়া যায়নি
@@ -1444,8 +1446,6 @@ bn:
   messages:
     inbox:
       title: ইনবক্স
-      my_inbox: আমার ইনবক্স
-      my_outbox: আমার আউটবক্স
       messages: আপনার %{new_messages} ও %{old_messages} রয়েছে
       new_messages:
         one: '%{count}টি নতুন বার্তা'
@@ -1453,39 +1453,37 @@ bn:
       old_messages:
         one: '%{count}টি পুরনো বার্তা'
         other: '%{count}টি পুরনো বার্তা'
-      from: প্রেরক
-      subject: বিষয়
-      date: তারিখ
       no_messages_yet_html: আপনার কাছে এখনো কোনো বার্তা নেই। কেন কিছু %{people_mapping_nearby_link}-এর
         সাথে যোগাযোগ করবেন না?
       people_mapping_nearby: কাছাকাছি অবদানকারী
+    messages_table:
+      from: প্রেরক
+      to: প্রাপক
+      subject: বিষয়
+      date: তারিখ
     message_summary:
       unread_button: অপঠিত হিসেবে চিহ্নিত করুন
       read_button: পঠিত হিসেবে চিহ্নিত করুন
       reply_button: প্রত্যুত্তর
       destroy_button: মুছুন
+      unmute_button: ইনবক্সে সরান
     new:
       title: বার্তা পাঠান
       send_message_to_html: '%{name}কে একটি নতুন বার্তা পাঠান'
       back_to_inbox: ইনবক্সে ফিরে যান
     create:
       message_sent: বার্তা পাঠানো হয়েছে
-      limit_exceeded: সাম্প্রতিক আপনি একগুচ্ছ বার্তা পাঠিয়েছেন। আর কোন বার্তা পাঠানোর
+      limit_exceeded: সাম্প্রতিক আপনি একগুচ্ছ বার্তা পাঠিয়েছেন। আর কোন বার্তা পাঠানোর
         পূর্বে দয়া করে কিছুক্ষণ অপেক্ষা করুন।
     no_such_message:
-      title: কোন বার্তা নেই
-      heading: কোন বার্তা নেই
+      title: কোন বার্তা নেই
+      heading: কোন বার্তা নেই
       body: এই আইডির সাথে কোনও বার্তালাপ নেই।
     outbox:
       title: বহির্বাক্স
-      my_inbox: আমার ইনবক্স
-      my_outbox: আমার আউটবক্স
       messages:
         one: আপনি %{count}টি বার্তা পাঠিয়েছেন
         other: আপনি %{count}টি বার্তা পাঠিয়েছেন
-      to: প্রাপক
-      subject: বিষয়
-      date: তারিখ
       people_mapping_nearby: কাছাকাছি মানচিত্রকার
     show:
       title: বার্তা পড়ুন
@@ -1495,23 +1493,27 @@ bn:
       back: পিছনে
     sent_message_summary:
       destroy_button: অপসারণ
+    heading:
+      my_inbox: আমার ইনবক্স
+      my_outbox: আমার আউটবক্স
     mark:
       as_read: বার্তা পঠিত হিসেবে চিহ্নিত করুন
       as_unread: বার্তা অপঠিত হিসেবে চিহ্নিত করুন
     destroy:
       destroyed: বার্তা মোছা হয়েছে
   passwords:
-    lost_password:
+    new:
       title: পাসওয়ার্ড ভুলে গেছেন
       heading: পাসওয়ার্ড ভুলে গেছেন?
-      email address: 'ইমেইল ঠিকানা:'
+      email address: ইমেইল ঠিকানা
       new password button: পাসওয়ার্ড পুনঃনির্ধারণ
       help_text: নিবন্ধনের সময় ব্যবহৃত আপনার ইমেইল ঠিকানাটি লিখুন, ইমেইলের মাধ্যমে
         আমরা একটি লিঙ্ক পাঠাবো যার মাধ্যমে আপনি পাসওয়ার্ড পরিবর্তন করতে পারবেন।
-    reset_password:
+    edit:
       title: পাসওয়ার্ড পুনঃনির্ধারণ
       heading: '%{user} এর পাসওয়ার্ড পুনর্বদল করুন'
       reset: পাসওয়ার্ড পুনঃনির্ধারণ
+    update:
       flash changed: আপনার পাসওয়ার্ড পরিবর্তন করা হয়েছে।
   preferences:
     show:
@@ -1542,8 +1544,8 @@ bn:
     new:
       title: প্রবেশ
       heading: প্রবেশ
-      email or username: ইমেইল ঠিকানা অথবা ব্যবহারকারীনাম
-      password: 'পাসওয়ার্ড:'
+      email or username: ইমেইল ঠিকানা অথবা ব্যবহারকারী নাম
+      password: পাসওয়ার্ড
       remember: আমাকে মনে রাখো
       lost password link: পাসওয়ার্ড ভুলে গেছেন?
       login_button: প্রবেশ
@@ -1583,6 +1585,7 @@ bn:
       image: ছবি
       alt: বিকল্প পাঠ্য
       url: ইউআরএল
+      codeblock: কোড ব্লক
     richtext_field:
       edit: সম্পাদনা
       preview: প্রাকদর্শন
@@ -1647,15 +1650,10 @@ bn:
       user_page_link: ব্যবহারকারীর পাতা
     export:
       title: রপ্তানি
-      area_to_export: রপ্তানির এলাকা
       manually_select: ম্যানুয়ালি একটি ভিন্ন জায়গা নির্বাচন করুন
-      format_to_export: রপ্তানির বিন্যাস
-      osm_xml_data: ওপেনস্ট্রিটম্যাপ এক্সএমএল উপাত্ত
-      map_image: মানচিত্র ছবি (মান্য স্তর দেখাও)
-      embeddable_html: অভ্যন্তরীণ HTML
       licence: লাইসেন্স
       too_large:
-        advice: 'যদি à¦\89পরà§\87র à¦°à¦ªà§\8dতানি à¦¬à§\8dযরà§\8dথ à¦¹à¦¯à¦¼, à¦¦à¦¯à¦¼à¦¾ à¦\95রà§\87 à¦¨à§\80à¦\9aà§\87 à¦¤à¦¾à¦²à¦¿à¦\95াভà§\81à¦\95à§\8dত à¦\89à§\8eসà§\87র à¦\95à§\8bন
+        advice: 'যদি à¦\89পরà§\87র à¦°à¦ªà§\8dতানি à¦¬à§\8dযরà§\8dথ à¦¹à¦¯à¦¼, à¦¦à¦¯à¦¼à¦¾ à¦\95রà§\87 à¦¨à¦¿à¦\9aà§\87 à¦¤à¦¾à¦²à¦¿à¦\95াভà§\81à¦\95à§\8dত à¦\89à§\8eসà§\87র à¦\95à§\8bনà§\8b
           একটি ব্যবহারের জন্য বিবেচনা করুন:'
         planet:
           title: ওএসএম জগৎ
@@ -1667,17 +1665,6 @@ bn:
         other:
           title: অন্যান্য উৎস
           description: ওপেনস্ট্রিটম্যাপ উইকিতে অতিরিক্ত সূত্র তালিকাভুক্ত রয়েছে
-      options: বিকল্প
-      format: বিন্যাস
-      scale: স্কেল
-      max: সর্বোচ্চ
-      image_size: চিত্রের আকার
-      zoom: জুম
-      add_marker: মানচিত্রে একটি চিহ্নিতকারী যোগ করুন
-      latitude: 'অক্ষাংশ:'
-      longitude: 'দ্রাঘিমাংশ:'
-      output: আউটপুট
-      paste_html: তথ্যক্ষেত্রে HTML নিহিত করতে প্রতিলেপন করুন
       export_button: রপ্তানি
     fixthemap:
       title: সমস্যা জানান / মানচিত্র ঠিক করুন
@@ -1695,8 +1682,6 @@ bn:
       beginners_guide:
         title: আরম্ভকারী সহায়িকা
         description: নতুনদের জন্য সম্প্রদায় পরিচালিত নির্দেশিকা।
-      help:
-        title: সাহায্য ফোরাম
       mailing_lists:
         title: মেইলিং তালিকা
       irc:
@@ -1736,37 +1721,42 @@ bn:
           cycleway_local: স্থানীয় সাইকেলের রাস্তা
           footway: ফুটপাথ
           rail: রেলপথ
+          train: রেলগাড়ি
           subway: ভূগর্ভস্থ পথ
-          tram:
-            1: ট্রাম
-          cable:
-          - ক্যাবল কার
-          apron:
-            1: টার্মিনাল
+          ferry: ফেরি
+          tram: ট্রাম
+          bus: বাস
+          cable_car: ক্যাবল কার
           admin: প্রশাসনিক সীমানা
+          orchard: ফলবাগিচা
+          vineyard: আঙুর খেত
           forest: অরণ্য
-          wood: বন
+          wood: কাঠ
+          farmland: কৃষিজমি
+          meadow: তৃণভূমি
+          sand: বালু
           golf: গল্ফ মাঠ
           park: উদ্যান
+          common: সাধারণ
           resident: আবাসিক এলাকা
-          common:
-          - সাধারণ
           industrial: শিল্পাঞ্চল
           commercial: বাণিজ্যিক এলাকা
-          lake:
-          - হ্রদ
-          - জলাধার
+          lake: হ্রদ
+          reservoir: জলাধার
+          glacier: হিমবাহ
           farm: খামার
           cemetery: কবরস্থান
           centre: ক্রীড়া কেন্দ্র
           military: সামরিক এলাকা
-          school:
-          বিদ্যালয়
-          - বিশ্ববিদ্যালয়
+          school: বিদ্যালয়
+          university: বিশ্ববিদ্যালয়
+          hospital: হাসপাতাল
           station: রেল স্টেশন
-          summit:
-            1: শৃঙ্গ
+          peak: শৃঙ্গ
+          bus_stop: বাস স্টপ
+          stop: স্টপ
           bicycle_shop: সাইকেলের দোকান
+          bicycle_rental: সাইকেল ভাড়া
           bicycle_parking: সাইকেল পার্কিং
           toilets: পায়খানা
     welcome:
@@ -1922,9 +1912,9 @@ bn:
         সিদ্ধান্ত নিয়েছেন। আরও তথ্যের জন্য, অনুগ্রহ করে %{terms_declined_link} দেখুন।
       terms_declined_link: এই উইকি পাতা
     no_such_user:
-      title: এরকম কোন ব্যবহারকারী নেই
+      title: এরকম কোন ব্যবহারকারী নেই
       heading: ব্যবহারকারী %{user} বিদ্যমান নয়
-      body: দুঃখিত, %{user} নামের কোন ব্যবহারকারী নেই। অনুগ্রহ করে আপনার বানান পরীক্ষা
+      body: দুঃখিত, %{user} নামের কোন ব্যবহারকারী নেই। অনুগ্রহ করে আপনার বানান পরীক্ষা
         করুন, অথবা হয়ত আপনি যে সংযোগটিতে টোকা দিয়েছেন সেটি ভুল।
       deleted: অপসারিত
     show:
@@ -1946,7 +1936,6 @@ bn:
       ct status: 'অবদানকারী শর্তাবলী:'
       ct undecided: সিদ্ধান্তহীন
       ct declined: বাতিলকৃত
-      latest edit: 'সর্বশেষ সম্পাদনা করেন (%{ago}):'
       email address: 'ই-মেইল ঠিকানা:'
       status: 'অবস্থা:'
       role:
@@ -1979,7 +1968,7 @@ bn:
       summary_no_ip_html: '%{date}-এ %{name} তৈরি হয়েছে'
       confirm: নির্বাচিত ব্যবহারকারীদের নিশ্চিত করুন
       hide: নির্বাচিত ব্যবহারকারীদের লুকান
-      empty: কোন সাদৃশ্যপূর্ণ ব্যবহারকারী পাওয়া যায়নি
+      empty: কোন সাদৃশ্যপূর্ণ ব্যবহারকারী পাওয়া যায়নি
     suspended:
       title: অ্যাকাউন্ট স্থগিত করা হয়েছে
       heading: অ্যাকাউন্ট স্থগিত করা হয়েছে
@@ -2000,7 +1989,7 @@ bn:
         যুক্ত করুন।
   user_role:
     filter:
-      not_a_role: উক্ত `%{role}' টি কোন সঠিক দায়িত্ব নয়।
+      not_a_role: উক্ত `%{role}' টি কোন সঠিক দায়িত্ব নয়।
       already_has_role: এই ব্যবহারকারী %{role} দায়িত্বটি এখনো আছে।
       doesnt_have_role: এই ব্যবহারকারীর %{role} দায়িত্বটি নেই।
       not_revoke_admin_current_user: বর্তমান ব্যবহারকারীর থেকে প্রশাসকের ভূমিকা প্রত্যাহার
@@ -2029,6 +2018,8 @@ bn:
     revoke:
       revoke: প্রত্যাহার!
       flash: এই অবরোধ প্রত্যাহার করা হয়েছে।
+    revoke_all:
+      revoke: প্রত্যাহার!
     helper:
       block_duration:
         hours:
@@ -2048,6 +2039,11 @@ bn:
       display_name: বাধাপ্রাপ্ত ব্যবহারকারী
       next: পরবর্তী »
       previous: « পূর্ববর্তী
+  user_mutes:
+    index:
+      table:
+        tbody:
+          send_message: বার্তা পাঠান
   notes:
     show:
       title: 'টীকা: %{id}'
@@ -2082,6 +2078,7 @@ bn:
       andy_allan: অ্যান্ডি অ্যালান
     site:
       edit_tooltip: মানচিত্রটি সম্পাদনা করুন
+      embed_html_disabled: এই মানচিত্রের স্তরের জন্য এইচটিএমএল এম্বেডিং উপলব্ধ নয়।
     changesets:
       show:
         comment: মন্তব্য
index 42932adab001156d45b80dffefab21e71efb3af4..59a3127f5613d0c6fb813b90166e4faa5749147f 100644 (file)
@@ -15,6 +15,7 @@
 # Author: McDutchie
 # Author: Nemo bis
 # Author: Shirayuki
+# Author: Troer56
 # Author: Y-M D
 ---
 br:
@@ -56,6 +57,11 @@ br:
       messages:
         invalid_email_address: ne ziskouez ket bezañ ur chomlec'h postel mat
         email_address_not_routable: n'haller ket routañ
+        display_name_is_user_n: n'hall ket bezañ user_n nemet hag e vefe "n" ho kod
+          anaout implijer
+      models:
+        user_mute:
+          is_already_muted: a zo bet kuzhet dija
     models:
       acl: Listenn kontroll moned
       changeset: Hollad cheñchamantoù
@@ -255,7 +261,6 @@ br:
   auth:
     providers:
       none: Hini ebet
-      openid: OpenID
       google: Google
       facebook: Facebook
       microsoft: Microsoft
@@ -383,14 +388,10 @@ br:
       way_paginated: Hentoù (%{x}-%{y} diwar %{count})
       relation: Darempredoù (%{count})
       relation_paginated: Darempredoù (%{x}-%{y} diwar %{count})
-      comment: Evezhiadennoù (%{count})
       hidden_comment_by_html: Kemennadenn kuzhet gant %{user} %{time_ago}
       comment_by_html: Kemennadenn skrivet gant %{user} %{time_ago}
       changesetxml: Hollad cheñchamantoù XML
       osmchangexml: Cheñchoùosm XML
-      feed:
-        title: Hollad cheñchamantoù %{id}
-        title_comment: Hollad cheñchamantoù %{id} - %{comment}
       join_discussion: Kevreit evit mont er gaozeadenn
       discussion: Kaozeadenn
       still_open: Hollad cheñchamantoù digor - an diviz a zigoro ur wech ma vo serret
@@ -479,6 +480,18 @@ br:
       introduction: Klikit war ar gartenn evit kavout arc'hweladurioù e-kichen.
       nearby: Arc'hweladurioù e-kichen
       enclosing: Arc'hweladurioù enklozañ
+  old_nodes:
+    not_found:
+      sorry: 'Hon digarezit, n''eo ket bet kavet ar stumm %{version} eus ar skoulm
+        #%{id}.'
+  old_ways:
+    not_found:
+      sorry: 'Hon digarezit, n''eo ket bet kavet ar stumm %{version} eus ar roudenn
+        #%{id}.'
+  old_relations:
+    not_found:
+      sorry: 'Hon digarezit, n''eo ket bet kavet ar stumm %{version} eus an darempred
+        #%{id}.'
   changesets:
     changeset_paging_nav:
       showing_page: Pajenn %{page}
@@ -507,6 +520,9 @@ br:
       no_more_area: Hollad cheñchamant ouzhpenn ebet ken en takad-mañ.
       no_more_user: Hollad cheñchamant ouzhpenn ebet ken gant an implijer-mañ.
       load_more: Kargañ muioc'h
+      feed:
+        title: Hollad cheñchamantoù %{id}
+        title_comment: Hollad cheñchamantoù %{id} - %{comment}
     timeout:
       sorry: Ho tigarez, re hir eo adtapout ar roll cheñchamantoù hoc'h eus goulennet.
   changeset_comments:
@@ -526,6 +542,7 @@ br:
     contact:
       km away: war-hed %{count} km
       m away: war-hed %{count} m
+      latest_edit_html: 'Kemm diwezhañ (%{ago}) :'
     popup:
       your location: Ho lec'hiadur
       nearby mapper: Kartennour en ardremez
@@ -568,6 +585,7 @@ br:
     show:
       title: Deizlevr %{user} | %{title}
       user_title: Deizlevr %{user}
+      discussion: Kaozeadenn
       leave_a_comment: Skrivañ un evezhiadenn
       login_to_leave_a_comment_html: '%{login_link} evit skrivañ un evezhiadenn'
       login: Kevreañ
@@ -775,6 +793,7 @@ br:
           ranger_station: Post gward-koad
           recycling: Lec'h adaozañ
           restaurant: Preti
+          sanitary_dump_station: Savlec'h pompañ an dourioù lous
           school: Skol
           shelter: Gwasked
           shower: Strinkadenn
@@ -851,6 +870,7 @@ br:
           roof: Toenn
           ruins: Savadur dismantret
           school: Savadur skol
+          semidetached_house: Ti stag
           service: Savadur servij
           shed: Lochenn
           stable: Marchosi
@@ -862,6 +882,7 @@ br:
           warehouse: Sanailh
           "yes": Savadur
         club:
+          scout: Diazlec'h ur strollad skout
           sport: Kleub sport
           "yes": Klub
         craft:
@@ -873,6 +894,7 @@ br:
           confectionery: Koñfizerezh
           dressmaker: Kemener
           electrician: Tredanour
+          electronics_repair: Dreser dafar tredanek
           gardener: Liorzhour
           glaziery: Gweraerezh
           handicraft: Artizanerezh
@@ -1473,9 +1495,9 @@ br:
         many: '%{count} danevell'
         other: '%{count} danevell'
       no_reports: Danevell ebet
-      report_created_at: Disklêriet evit ar wech kentañ %{datetime}
-      last_resolved_at: Diskêriadur diwezhañ d'an %{datetime}
-      last_updated_at: Diskêriadur diwezhañ d'an %{datetime} gant %{displayname}
+      report_created_at_html: Disklêriet evit ar wech kentañ %{datetime}
+      last_resolved_at_html: Diskêriadur diwezhañ d'an %{datetime}
+      last_updated_at_html: Diskêriadur diwezhañ d'an %{datetime} gant %{displayname}
       resolve: Diskoulmañ
       ignore: Lezel a-gostez
       reopen: Addigeriñ
@@ -1747,8 +1769,6 @@ br:
   messages:
     inbox:
       title: Boest resev
-      my_inbox: Ma boest resev
-      my_outbox: Ma boest kas
       messages: '%{new_messages} ha %{old_messages} zo evidoc''h'
       new_messages:
         one: '%{count} gemennadenn nevez'
@@ -1756,17 +1776,21 @@ br:
       old_messages:
         one: '%{count} gemennadenn gozh'
         other: '%{count} kemennadenn gozh'
-      from: A-berzh
-      subject: Danvez
-      date: Deiziad
       no_messages_yet_html: N'hoc'h eus kemennadenn ebet c'hoazh. Ha ma'z afec'h e
         darempred gant darn eus an %{people_mapping_nearby_link}?
       people_mapping_nearby: tud o kartennañ en ardremez
+    messages_table:
+      from: A-berzh
+      to: Da
+      subject: Danvez
+      date: Deiziad
+      actions: Oberoù
     message_summary:
       unread_button: Merkañ evel anlennet
       read_button: Merkañ evel lennet
       reply_button: Respont
       destroy_button: Dilemel
+      unmute_button: Dilec'hiañ d'ar voest resev
     new:
       title: Kas ur gemennadenn
       send_message_to_html: Kas ur gemennadenn nevez da %{name}
@@ -1781,17 +1805,15 @@ br:
       body: Ho tigarez, n'eus kemennadenn ebet gant an id-se.
     outbox:
       title: Boest kas
-      my_inbox: Ma boest degemer
-      my_outbox: Ma boest kas
+      actions: Oberoù
       messages:
         one: Kaset hoc'h eus %{count} gemennadenn
         other: Kaset hoc'h eus %{count} kemennadenn
-      to: Da
-      subject: Danvez
-      date: Deiziad
       no_sent_messages_html: N'hoc'h eus kaset kemennadenn ebet c'hoazh. Ha ma'z afec'h
         a darempred gant darn eus an %{people_mapping_nearby_link}?
       people_mapping_nearby: tud o kartennañ en ardremez
+    muted:
+      title: Kemennadennoù kuzhet
     reply:
       wrong_user: Kevreet oc'h evel "%{user}", met ar gemennadenn a fell deoc'h respont
         outi n'eo ket bet kaset d'an implijer-se. Mar plij kevreit gant ar gont reizh
@@ -1807,28 +1829,38 @@ br:
         reizh evit gellout lenn anezhi.
     sent_message_summary:
       destroy_button: Dilemel
+    heading:
+      my_inbox: Ma boest resev
+      my_outbox: Ma boest kas
+      muted_messages: Kemennadennoù kuzhet
     mark:
       as_read: Kemennadenn merket evel lennet
       as_unread: Merkañ evel anlennet
+    unmute:
+      notice: Dilec'hiet eo bet ar gemennadenn d'ar voest resev
+      error: Ne c'haller ket dilec'hiañ ar gemennadenn d'ar voest resev.
     destroy:
       destroyed: Kemennadenn dilamet
   passwords:
-    lost_password:
+    new:
       title: Ger-tremen kollet
       heading: Ankouaet hoc'h eus ho ker-tremen ?
-      email address: 'Chomlec''h postel :'
+      email address: Chomlec'h postel
       new password button: Adderaouekaat ar ger-tremen
       help_text: Ebarzhit ar chomlec'h postel ho poa implijet evit en em enskrivañ,
         kaset e vo deoc'h ul liamm a c'hallot implijout evit adderaouekaat ho ker-tremen.
+    create:
       notice email on way: Kaset ez eus bet ur postel deoc'h evit adderaouekaat ho
         ker-tremen.
       notice email cannot find: Ho tigarez, n'eo ket bet kavet ar chomlec'h postel-se.
-    reset_password:
+    edit:
       title: Adderaouekaat ar ger-tremen
       heading: Adderaouekaat ar ger-tremen evit %{user}
       reset: Adderaouekaat ar ger-tremen
-      flash changed: Cheñchet eo bet ho ker-tremen.
       flash token bad: N'eo ket bet kavet ar jedouer-se, gwiriañ an URL marteze ?
+    update:
+      flash changed: Cheñchet eo bet ho ker-tremen.
+      flash token bad: N'eo ket bet kavet ar jedouer-se, gwiriit an URL mar plij.
   preferences:
     show:
       title: Ma fenndibaboù
@@ -1874,9 +1906,8 @@ br:
     new:
       title: Kevreañ
       heading: Kevreañ
-      email or username: 'Chomlec''h postel pe anv implijer :'
-      password: 'Ger-tremen :'
-      openid_html: '%{logo} OpenID :'
+      email or username: Chomlec'h postel pe anv implijer
+      password: Ger-tremen
       remember: Derc'hel soñj ac'hanon
       lost password link: Ankouaet ho ker-tremen ganeoc'h ?
       login_button: Kevreañ
@@ -1934,6 +1965,7 @@ br:
       image: Skeudenn
       alt: Testenn all
       url: URL
+      codeblock: Bloc'had kod
     richtext_field:
       edit: Aozañ
       preview: Rakwelet
@@ -1974,6 +2006,9 @@ br:
       legal_1_1_terms_of_use: Termenoù implij
       legal_1_1_privacy_policy: Politikerezh prevezded
       legal_2_1_contact_the_osmf: mont e darempred gant diazezadur OSM
+      legal_2_2_html: OpenStreetMap, al logo gant al loupenn hag ar State of the Map
+        a zo %{registered_trademarks_link}.
+      legal_2_2_registered_trademarks: merkoù marilhet an OSMF
       partners_title: Kevelerien
     copyright:
       foreign:
@@ -1989,6 +2024,9 @@ br:
         mapping_link: kregiñ da gemer perzh
       legal_babble:
         title_html: Gwirioù oberour hag aotre-implijout
+        introduction_1_html: OpenStreetMap%{registered_trademark_link} a zo %{open_data},
+          dindan an aotre-implijout %{odc_odbl_link} (ODbL) gant %{osm_foundation_link}
+          (OSMF).
         introduction_1_open_data: roadennoù digor
         introduction_1_osm_foundation: Diazezadur OpenStreetMap
         introduction_2_legal_code: testenn lezennel
@@ -2055,6 +2093,8 @@ br:
           Degas a reomp da soñj da genlabourerien OSM ne zleont morse lakaat roadennoù a zeu
           eus mammennoù dindan wirioù (da sk. : Google Maps pe kartennoù moullet) hep aotre
           ezpleg ar re zo ar gwirioù-aozer ganto.
+        infringement_2_1_online_filing_page: pajenn danevelliñ enlinenn
+        trademarks_title: Merkoù marilhet
         trademarks_1_1_trademark_policy: Politikerezh e-keñver ar merkoù
     index:
       js_1: Pe emaoc'h oc'h implijout ur merdeer ha ne skor ket JavaScript, pe hoc'h
@@ -2080,12 +2120,7 @@ br:
         zo eus ar re-se evit an arc'hweladur-mañ.
     export:
       title: Ezporzhiañ
-      area_to_export: Takad da ezporzhiañ
       manually_select: Diuzañ un takad disheñvel gant an dorn
-      format_to_export: Furmad da ezporzhiañ
-      osm_xml_data: Roadennoù XML OpenStreetMap
-      map_image: Skeudenn gartenn (diskouez ur gwiskad boutin)
-      embeddable_html: HTML enkorfadus
       licence: Aotre-implijout
       licence_details_html: Roadennoù OpenStreetMap a zo dindan an aotre-implijout
         %{odbl_link} (ODbL).
@@ -2109,17 +2144,6 @@ br:
         other:
           title: Tarzhioù all
           description: Mammennoù all a gaver o roll er wiki OpenStreetMap
-      options: Dibarzhioù
-      format: Furmad
-      scale: Skeuliad
-      max: d'ar muiañ
-      image_size: Ment ar skeudenn
-      zoom: Zoum
-      add_marker: Ouzhpennañ ur merker d'ar gartenn
-      latitude: 'Led. :'
-      longitude: 'Hed. :'
-      output: Er-maez
-      paste_html: Pegañ HTML evit bezañ enkorfet en ul lec'hienn web
       export_button: Ezporzhiañ
     fixthemap:
       title: ' Diskouez ez eus ur gudenn / Reizhañ ar gartenn'
@@ -2147,17 +2171,13 @@ br:
         url: http://wiki.openstreetmap.org/wiki/FR:Sturlevr an deraouidi
         title: Sturlevr evit deraouidi
         description: Sturlevr evit an deraouidi dalc'het gant ar gumuniezh
-      help:
-        title: Forom skoazellañ
-        description: Ober ur goulenn pe klask respontoù e lec'hienn goulennoù-respontoù
-          OpenStreetMap
+      community:
+        title: Forom ar gumuniezh ha skoazell
+        description: Ul lec'h boutin evit goulenn sikour ha kaozeal diwar-benn OpenStreetMap.
       mailing_lists:
         title: Roll skignañ
         description: Sevel ur goulenn pe divizout diwar-benn goulennoù dedennus war
           un niver bras a demoù pe diwar-benn rolloù skignañ rannvroel.
-      community:
-        title: Forom ar gumuniezh
-        description: Ul lec'h boutin evit kaozeal diwar-benn OpenStreetMap.
       irc:
         title: IRC
         description: Flap etreoberiat e meur a yezh disheñvel ha diwar-benn danvezioù
@@ -2168,7 +2188,7 @@ br:
           e OpenStreetMap, hervez ar c'hartennoù hag ar servijoù all.
       welcomemat:
         title: Evit an aozadurioù
-        description: Gant un aoazadur a ra tresoù evit OpenStreetMap ? Kavit ar pezh
+        description: Gant un aozadur a ra tresoù evit OpenStreetMap? Kavit ar pezh
           ho peus ezhomm da c'houzout en tapis degemer.
       wiki:
         title: Wiki OpenStreetMap
@@ -2180,6 +2200,7 @@ br:
     any_questions:
       title: Traoù da c'houlenn ?
       get_help_here: Kaout skoazell amañ
+      welcome_mat: Kit da welet ar Welcome Mat
     sidebar:
       search_results: Disoc'hoù enklask
       close: Serriñ
@@ -2203,67 +2224,82 @@ br:
           primary: Hent bras
           secondary: Hent bihan
           unclassified: Hent n'eo ket rummet
+          pedestrian: Hent evit an dud war-droad
           track: Roudenn
           bridleway: Hent evit kezeg
           cycleway: Roudenn divrodegoù
           cycleway_national: roudenn vroadel evit an divrodegoù
           cycleway_regional: Roudenn divrodegoù rannvroel
           cycleway_local: roudenn lec'hel evit an divrodegoù
+          cycleway_mtb: Hent MTB
           footway: Hent evit an dud war droad
           rail: Hent-houarn
+          train: Tren
           subway: Linenn vetro
-          tram:
-          - tramgarr
-          - tramgarr
-          cable:
-          - Teleferik
-          - fungador
-          runway:
-          - Roudenn evit an taksioù
-          - Roudenn evit an taksioù
-          apron:
-          - Roudenn aerborzh
-          - termenva
+          ferry: Karrlistri
+          light_rail: Metro skañv
+          tram: Tramgarr
+          trolleybus: Trollebus
+          bus: Karr-boutin
+          cable_car: Teleferik
+          chair_lift: Fungador
+          runway: Roudenn evit an taksioù
+          taxiway: Hent evit an taksioù
+          apron: Roudenn aerborzh
           admin: Bevenn velestradurel
+          capital: Kêr-benn
+          city: Kêr
+          orchard: Gwerje
+          vineyard: Gwinieg
           forest: Koad
           wood: Koad
+          farmland: Tachenn labour-douar
+          grass: Geot
+          meadow: Prad
+          bare_rock: Roc'h noazh
+          sand: Traezh
           golf: Tachenn golf
           park: Park
+          common: prad
+          built_up: Takad savet
           resident: Takad annez
-          common:
-          - prad
-          - prad
-          - liorzh
           retail: Takad kenwerzh
           industrial: Takad greantel
           commercial: Takad kenwerzhel
           heathland: Lanneier
-          lake:
-          - Lenn
-          - mirlec'h
+          scrubland: Strouezheg
+          lake: Lenn
+          reservoir: Mirlenn
+          glacier: Skorneg
+          reef: Karreg
+          wetland: Takad gleborek
           farm: Ti-feurm
           brownfield: Takad greanterezh
           cemetery: Bered
           allotments: Lodennaouegoù
           pitch: Tachenn sport
           centre: Kreizenn sport
+          beach: Traezhenn
           reserve: Gwarezva natur
           military: Takad milourel
-          school:
-          - Skol
-          - skol-veur
+          school: Skol
+          university: Skol-veur
+          hospital: Ospital
           building: Savadur pouezus
           station: Porzh-houarn
-          summit:
-          - Lein
-          - pikern
+          summit: Lein
+          peak: Pikern
           tunnel: Bord poentoùigoù = riboul
           bridge: Bord du = pont
           private: Moned prevez
           destination: Moned d'ar pal
           construction: Hentoù war ar stern
+          bus_stop: Arsav karr-boutin
+          stop: Arsav
           bicycle_shop: Stal varc'hoù-houarn
+          bicycle_rental: Stal feurmiñ marc'hoù-houarn
           bicycle_parking: Parklec'h belioù
+          bicycle_parking_small: Parklec'h marc'hoù-houarn bihan
           toilets: Privezioù
     welcome:
       title: Deuet-mat oc'h !
@@ -2272,6 +2308,10 @@ br:
         Setu amañ un nebeud displegadennoù diwar-benn an traoù pouezusañ da c'houzout.
       whats_on_the_map:
         title: Petra zo war ar gartenn
+        on_the_map_html: |-
+          OpenStreetMap zo ul lec'h evit kartennaouiñ traoù %{real_and_current} war un dro
+          -
+          Ennañ ez eus milionoù a savadurioù, a hentoù, hag a vunudoù all diwar-benn lec'hioù. Gallout a rit kartennaouiñ forzh peseurt tra eus ar bed gwirion hag a zedenn ac'hanoc'h.
         real_and_current: gwir hag a-vremañ
         off_the_map_html: Ar pezh %{doesnt} avat eo ar roadennoù evit notennoù roet
           gant an dud, elfennoù istorel pe martezeüs, hag ar roadennoù a zo dindan
@@ -2298,6 +2338,7 @@ br:
         imports: Enporzhiadurioù
         automated_edits: Kemmoù emgefre
       start_mapping: Kregiñ da gartennaouiñ
+      continue_authorization: Kenderc'hel gant an aotre
       add_a_note:
         title: N'ho peus ket amzer da aozañ ? Ouzhpennit un notenn !
         para_1: Ma fell deoc'h ober ur reizhadennig hepken ha ma n'ho peus ket amzer
@@ -2441,6 +2482,7 @@ br:
       oauth1_settings: Arventennoù OAuth 1
       oauth2_applications: Arloadoù OAuth 2
       oauth2_authorizations: Aotreoù OAuth 2
+      muted_users: Implijerien kuzhet
   oauth:
     authorize:
       title: Aotren mont d'ho kont
@@ -2547,6 +2589,7 @@ br:
   oauth2_authorizations:
     new:
       title: Rekis eo bezañ aotreet
+      introduction: Aotren %{application} da haeziñ ho kont gant an aotreoù-se?
       authorize: Aotren
       deny: Nac'hañ
     error:
@@ -2572,6 +2615,11 @@ br:
       support: skor
       about:
         header: Digoust hag aozadus
+        paragraph_1: E-skoaz ar c'hartennoù all eo savet OpenStreetMap penn-da-benn
+          gant tud eveldoc'h ha tu zo da bep hini reizhañ, hizivaat, pellgargañ hag
+          implijout e gartennoù.
+        paragraph_2: Lakait hoc'h anv ha stagit da gemer perzh. Kaset a vo ur postel
+          deoc'h a-benn kadarnaat ho kont.
       display name description: Emañ hoc'h anv implijer a-wel d'an holl. Se a c'hallit
         cheñch diwezhatoc'h en ho penndibaboù.
       external auth: 'Dilesadur trede :'
@@ -2614,18 +2662,20 @@ br:
         mat, pe marteze hoc'h eus kliket war ul liamm fall.
       deleted: dilamet
     show:
-      my diary: ma deizlevr
-      my edits: ma aozadenn
-      my traces: ma roudoù
-      my notes: ma notennoù
+      my diary: Ma deizlevr
+      my edits: Ma c'hemm
+      my traces: Ma roudoù
+      my notes: Ma notennoù
       my messages: Ma c'hemennadennoù
       my profile: Ma frofil
       my settings: Ma arventennoù
-      my comments: ma evezhiadennoù
+      my comments: Ma evezhiadennoù
       my_preferences: Ma fenndibaboù
       my_dashboard: Ma zaolenn-vourzh
       blocks on me: Stankadurioù evidon
       blocks by me: stankadurioù graet ganin
+      create_mute: Kuzhat an implijer-mañ
+      destroy_mute: Diguzhat an implijer-mañ
       edit_profile: Aozañ ar profil
       send message: Kas ur gemennadenn
       diary: deizlevr
@@ -2639,7 +2689,6 @@ br:
       ct status: 'Diferadennoù ar c''henlabourer :'
       ct undecided: En entremar
       ct declined: Nac'het
-      latest edit: 'Kemm diwezhañ (%{ago}) :'
       email address: 'Chomlec''h postel :'
       created from: 'Krouet diwar :'
       status: 'Statud :'
@@ -2647,12 +2696,15 @@ br:
       role:
         administrator: Ur merour eo an implijer-mañ
         moderator: Un habaskaer eo an implijer-mañ
+        importer: Un enporzhier/ez eo an implijer/ez-mañ
         grant:
           administrator: Reiñ ar moned merour
           moderator: Reiñ ar moned habaskaer
+          importer: Grataat gwirioù enporzhiañ
         revoke:
           administrator: Disteurel ar moned merour
           moderator: Disteurel ar moned habaskaer
+          importer: Lemel ar gwirioù enporzhiañ
       block_history: stankadurioù oberiant
       moderator_history: Stankadurioù roet
       comments: evezhiadennoù
@@ -2759,12 +2811,14 @@ br:
     revoke:
       title: O tisteurel ur stankadur evit %{block_on}
       heading_html: O lemel ur stankadur war %{block_on} gant %{block_by}
-      time_future: Echu e vo ar stankadur-mañ a-benn %{time}.
-      past: Aet eo ar stankadur-mañ d'e dermen d'an %{time} ha ne c'hall ket bezañ
-        torret bremañ.
+      time_future_html: Echu e vo ar stankadur-mañ a-benn %{time}.
+      past_html: Aet eo ar stankadur-mañ d'e dermen d'an %{time} ha ne c'hall ket
+        bezañ torret bremañ.
       confirm: Ha sur oc'h hoc'h eus c'hoant da derriñ ar stankadur-mañ ?
       revoke: Disteuler !
       flash: Torret eo bet ar stankadur-mañ.
+    revoke_all:
+      revoke: Disteuler!
     helper:
       time_future_html: Echuiñ a ray a-benn %{time}.
       until_login: Oberiant betek ma kevre an implijer.
@@ -2838,6 +2892,27 @@ br:
       showing_page: Page %{page}
       next: ↓War-lerc'h »
       previous: ↓« Kent
+  user_mutes:
+    index:
+      title: Implijerien kuzhet
+      my_muted_users: Ma implijerien kuzhet
+      you_have_muted_n_users:
+        one: Kuzhet ho peus %{count} implijer·ez
+        two: Kuzhet ho peus %{count} implijer·ez
+        few: Kuzhet ho peus %{count} implijer·ez
+        many: Kuzhet ho peus %{count} implijer·ez
+        other: Kuzhet ho peus %{count} implijer·ez
+      user_mute_explainer: Kemennadennoù an implijerien kuzhet a zo kaset d'ur voest-resev
+        disheñvel ha n'ho po kemenn ebet a-zivout o fosteloù.
+      table:
+        thead:
+          muted_user: Implijer·ez kuzhet
+          actions: Oberoù
+        tbody:
+          send_message: Kas ur gemennadenn
+    create:
+      notice: Kuzhet ho peus %{name}.
+      error: Ne c'haller ket kuzhat %{name}. %{full_message}.
   notes:
     index:
       title: Notennoù kaset pe addispleget gant %{user}
@@ -2935,11 +3010,9 @@ br:
           other: Emaoc'h dindan %{count} troad diouzh ar poent-mañ
       base:
         standard: Standard
-        cyclosm: CyclOSM
         cycle_map: Kelc'hiad kartenn
         transport_map: Kartenn treuzdougen
         hot: Denegour
-        opnvkarte: ÖPNVKarte
       layers:
         header: Gwiskadoù kartenn
         notes: Notennoù kartenn
@@ -2953,8 +3026,6 @@ br:
       osm_france: OpenStreetMap Frañs
       thunderforest_credit: Teol pourchaset gant %{thunderforest_link}
       andy_allan: Andy Allan
-      opnvkarte_credit: Teol pourchaset gant %{memomaps_link}
-      memomaps: MeMoMaps
       tracestrack_credit: Teol pourchaset gant %{tracestrack_link}
     site:
       edit_tooltip: Kemmañ ar gartenn
index 9390f7111fb83779ba373b52fc712513c09c7a50..e661a4614dadea13cd9249874ae71414f44e21e8 100644 (file)
@@ -204,12 +204,8 @@ bs:
       way_paginated: Putevi (%{x}-%{y} of %{count})
       relation: Relacije (%{count})
       relation_paginated: Relacije (%{x}-%{y} of %{count})
-      comment: Komentari (%{count})
       changesetxml: XML seta promjena
       osmchangexml: osmChange XML
-      feed:
-        title: Set promjena %{id}
-        title_comment: Set promjena %{id} - %{comment}
       discussion: Diskusija
     node:
       title_html: 'Čvor: %{name}'
@@ -283,6 +279,9 @@ bs:
       title_friend: Setovi promjena vaših prijatelja
       title_nearby: Setovi promjena obližnjih korisnika
       load_more: Učitaj više
+      feed:
+        title: Set promjena %{id}
+        title_comment: Set promjena %{id} - %{comment}
     timeout:
       sorry: Žao nam je, listi seta promjena koju ste tražili je predugo trajalo za
         preuzimanje.
@@ -290,6 +289,7 @@ bs:
     contact:
       km away: korisnik udaljen %{count}km
       m away: '%{count}m daleko'
+      latest_edit_html: 'Najnovija izmjena %{ago}:'
     popup:
       your location: Vaša lokacija
       nearby mapper: Obližnji maper
@@ -954,7 +954,6 @@ bs:
   messages:
     inbox:
       title: Dolazna pošta
-      my_inbox: Moja dolazna pošta
       messages: Imate %{new_messages} i %{old_messages}
       new_messages:
         one: '%{count} nova poruka'
@@ -962,12 +961,14 @@ bs:
       old_messages:
         one: '%{count} stara poruka'
         other: '%{count} stare poruke'
-      from: Od
-      subject: Predmet
-      date: Datum
       no_messages_yet_html: Još uvijek nemate poruka. Zašto nebi stupili u kontakt
         s nekim ljudima iz okoline %{people_mapping_nearby_link}?
       people_mapping_nearby: osobe koje uređuju kartu blizu Vas
+    messages_table:
+      from: Od
+      to: Za
+      subject: Predmet
+      date: Datum
     message_summary:
       unread_button: Označiti kao nepročitano
       read_button: Označiti kao pročitano
@@ -990,9 +991,6 @@ bs:
       messages:
         one: Poslali ste %{count} poruku
         other: Poslali ste %{count} poruke/a
-      to: Za
-      subject: Predmet
-      date: Datum
       no_sent_messages_html: Još uvijek nemate poslanih poruka. Zašto nebi stupili
         u kontakt s nekim ljudima iz okoline %{people_mapping_nearby_link}?
       people_mapping_nearby: osobe koje uređuju kartu blizu Vas
@@ -1010,28 +1008,32 @@ bs:
         kao ispravan korisnik kako bi ste je pročitali.'
     sent_message_summary:
       destroy_button: Izbrisati
+    heading:
+      my_inbox: Moja dolazna pošta
     mark:
       as_read: Poruka označena kao pročitana
       as_unread: Poruka označena kao nepročitana
     destroy:
       destroyed: Poruka izbrisana
   passwords:
-    lost_password:
+    new:
       title: Izgubljena lozinka
       heading: Zaboravljena lozinka?
       email address: 'Adresa e-pošte:'
       new password button: Ponovno postavljanje lozinke
       help_text: Unesite e-mail adresu koju ste koristili za otvaranje računa i poslaćemo
         Vam link kojim možete ponovo postaviti lozinku.
+    create:
       notice email on way: Žao mi je što ste je izgubili :-( ali e-mail je na putu
         tako da je možete pononvo postaviti uskoro.
       notice email cannot find: Ne možemo pronaći tu e-mail adresu, žao nam je.
-    reset_password:
+    edit:
       title: Ponovno postavljanje lozinke
       heading: Ponovno postavljanje lozinke za %{user}
       reset: Ponovno postavljanje lozinke
-      flash changed: Vaša lozinka je promjenjena.
       flash token bad: Niste pronašli tz značku, možda da provjerite URL?
+    update:
+      flash changed: Vaša lozinka je promjenjena.
   profiles:
     edit:
       image: 'Slika:'
@@ -1051,7 +1053,6 @@ bs:
       heading: Prijava
       email or username: 'E-mail adresa ili korisničko ime:'
       password: 'Lozinka:'
-      openid_html: '%{logo} OtvoreniID:'
       remember: Zapamti me
       lost password link: Izgubili ste lozinku?
       login_button: Prijava
@@ -1126,12 +1127,7 @@ bs:
         za ovu značajku.
     export:
       title: Izvezi
-      area_to_export: Područje za izvoz
       manually_select: Ručno izabrati 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: HTML kod sa mogućnošću za umetanje
       licence: Dozvola
       too_large:
         body: Ovo područje je preveliko da bi se izvezlo kao OpenStreetMap XML podaci.
@@ -1140,17 +1136,6 @@ bs:
         other:
           title: Drugi izvori
           description: Dodatni izvori ponuđeni na OpenStreetMap wiki
-      options: Opcije
-      format: Format
-      scale: Skala
-      max: najviše
-      image_size: Veličina slike
-      zoom: Uvećanje
-      add_marker: Dodati marker na kartu
-      latitude: 'Lat:'
-      longitude: 'Lon:'
-      output: Izlaz
-      paste_html: Zalijepiti HTML za umetanje na web stranicu
       export_button: Izvoz
     fixthemap:
       how_to_help:
@@ -1193,34 +1178,24 @@ bs:
           footway: Pješačka staza
           rail: Željeznica
           subway: Podzemna željeznica
-          tram:
-          - Lahka željeznica
-          - tramvaj
-          cable:
-          - Kabinska žičara
-          - Uspinjača sa naslonjačem
-          runway:
-          - Aerodromska pista
-          - Aerodromska rulna staza
-          apron:
-          - Parking za avione
-          - terminal
+          cable_car: Kabinska žičara
+          chair_lift: Uspinjača sa naslonjačem
+          runway: Aerodromska pista
+          taxiway: Aerodromska rulna staza
+          apron: Parking za avione
           admin: Administrativna granica
           forest: Šume (održavane, od šumarije)
           wood: Šume (prirodne, neodržavane)
           golf: Golf teren
           park: Park
+          common: Travnjaci
           resident: Stambeno područje
-          common:
-          - Travnjaci
-          - Livada
           retail: Maloprodajno područje
           industrial: Industrijsko područje
           commercial: Poslovno područje
           heathland: Stepa
-          lake:
-          - Jezero
-          - Rezervoar
+          lake: Jezero
+          reservoir: Rezervoar
           farm: Polja, farme, njive
           brownfield: Gradilište
           cemetery: Groblje
@@ -1229,14 +1204,12 @@ bs:
           centre: Sportski centar
           reserve: Rezervat prirode
           military: Vojno područje
-          school:
-          - Škola
-          - Univerzitet
+          school: Škola
+          university: Univerzitet
           building: Značajna zgrada
           station: Željeznička stanica
-          summit:
-          - Vrh
-          - Kota
+          summit: Vrh
+          peak: Kota
           tunnel: Iscrtkani rubovi = tunel
           bridge: Crni rubovi = most
           private: Privatni pristup
@@ -1436,7 +1409,6 @@ bs:
       ct status: 'Uslovi za doprinosioce:'
       ct undecided: Neodlučen
       ct declined: Odbijeno
-      latest edit: 'Najnovija izmjena %{ago}:'
       email address: 'Adresa e-pošte:'
       created from: 'Napravljeno iz:'
       status: 'Stanje:'
@@ -1530,8 +1502,8 @@ bs:
     revoke:
       title: Opoziv blokade na %{block_on}
       heading_html: Opoziv blokade na %{block_on} od %{block_by}
-      time_future: Blokada će završiti za %{time}.
-      past: Blokada je završila prije %{time} i ne može se opozvati sada.
+      time_future_html: Blokada će završiti za %{time}.
+      past_html: Blokada je završila prije %{time} i ne može se opozvati sada.
       confirm: Jeste li sgurni da želite opozvati ovu blokadu?
       revoke: Opozvati!
       flash: Ova blokada je opozvana.
index 2e2bfc30ec321a592296c2d8c501a396a1d88e01..54bbfeb276ef9322cfcb554707431c813b203703 100644 (file)
@@ -254,7 +254,6 @@ ca:
   auth:
     providers:
       none: Cap
-      openid: OpenID
       google: Google
       facebook: Facebook
       microsoft: Microsoft
@@ -389,14 +388,10 @@ ca:
       way_paginated: Vies (%{x}-%{y} de %{count})
       relation: Relacions (%{count})
       relation_paginated: Relacions (%{x}-%{y} de %{count})
-      comment: Comentaris(%{count})
       hidden_comment_by_html: Comentari ocult de %{user} %{time_ago}
       comment_by_html: Comentari de %{user} %{time_ago}
       changesetxml: XML del conjunt de canvis
       osmchangexml: XML en format osmChange
-      feed:
-        title: Conjunt de canvis %{id}
-        title_comment: Conjunt de canvis %{id} - %{comment}
       join_discussion: Inicieu una sessió per a unir-vos al debat
       discussion: Debat
       still_open: Conjunt de canvis encara obert - el debat començarà quan es tanqui
@@ -507,6 +502,9 @@ ca:
       no_more_area: No hi ha cap altre conjunt de canvis en aquesta àrea.
       no_more_user: No hi ha cap altre conjunt de canvis d'aquest usuari.
       load_more: Carrega'n més
+      feed:
+        title: Conjunt de canvis %{id}
+        title_comment: Conjunt de canvis %{id} - %{comment}
     timeout:
       sorry: La llista de conjunt de canvis que heu sol·licitat ha trigat massa a
         carregar-se.
@@ -526,6 +524,7 @@ ca:
     contact:
       km away: '%{count}km de distància'
       m away: '%{count}m de distància'
+      latest_edit_html: 'Darrera edició fa (%{ago}):'
     popup:
       your location: La vostra ubicació
       nearby mapper: Cartògraf proper
@@ -1473,9 +1472,9 @@ ca:
         one: '%{count} informe'
         other: '%{count} informes'
       no_reports: Cap informe
-      report_created_at: Denunciat per primer cop a %{datetime}
-      last_resolved_at: Resolt per darrer cop a %{datetime}
-      last_updated_at: Actualitzat per darrer cop a %{datetime} per %{displayname}
+      report_created_at_html: Denunciat per primer cop a %{datetime}
+      last_resolved_at_html: Resolt per darrer cop a %{datetime}
+      last_updated_at_html: Actualitzat per darrer cop a %{datetime} per %{displayname}
       resolve: Resol
       ignore: Ignora
       reopen: Torna a obrir
@@ -1759,8 +1758,6 @@ ca:
   messages:
     inbox:
       title: Safata d'entrada
-      my_inbox: La meva safata d'entrada
-      my_outbox: La meva safata de sortida
       messages: Teniu %{new_messages} i %{old_messages}
       new_messages:
         one: '%{count} missatge nou'
@@ -1768,16 +1765,20 @@ ca:
       old_messages:
         one: '%{count} missatge antic'
         other: '%{count} missatges antics'
+      no_messages_yet_html: No teniu cap missatge. Per què no contacteu amb %{people_mapping_nearby_link}?
+      people_mapping_nearby: gent que cartografia a prop
+    messages_table:
       from: De
+      to: Per a
       subject: Assumpte
       date: Data
-      no_messages_yet_html: No teniu cap missatge. Per què no contacteu amb %{people_mapping_nearby_link}?
-      people_mapping_nearby: gent que cartografia a prop
+      actions: Accions
     message_summary:
       unread_button: Marca com a no llegit
       read_button: Marca com a llegit
       reply_button: Respon
       destroy_button: Suprimeix
+      unmute_button: Mou a la safata d'entrada
     new:
       title: Envia un missatge
       send_message_to_html: Envia un missatge nou a %{name}
@@ -1792,17 +1793,15 @@ ca:
       body: No hi ha cap missatge amb aquesta id.
     outbox:
       title: Safata de sortida
-      my_inbox: La meva safata d'entrada
-      my_outbox: La meva safata de sortida
+      actions: Accions
       messages:
         one: Teniu %{count} missatge enviat
         other: Teniu %{count} missatges enviats
-      to: Per a
-      subject: Assumpte
-      date: Data
       no_sent_messages_html: Encara no heu enviat cap missatge. Per què no contacteu
         amb algunes de les %{people_mapping_nearby_link}?
       people_mapping_nearby: gent que cartografia a prop
+    muted:
+      title: Missatges silenciats
     reply:
       wrong_user: Heu iniciat la sessió com a "%{user}", però el missatge que voleu
         respondre no s'ha enviat a aquest usuari. Per a poder respondre, inicieu la
@@ -1818,28 +1817,37 @@ ca:
         la sessió amb l'usuari correcte.
     sent_message_summary:
       destroy_button: Suprimeix
+    heading:
+      my_inbox: La meva safata d'entrada
+      my_outbox: La meva safata de sortida
+      muted_messages: Missatges silenciats
     mark:
       as_read: Missatge marcat com a llegit
       as_unread: Missatge marcat com a no llegit
+    unmute:
+      notice: El missatge s'ha mogut a la safata d'entrada
+      error: No s'ha pogut moure el missatge a la safata d'entrada.
     destroy:
       destroyed: Missatge suprimit
   passwords:
-    lost_password:
+    new:
       title: Contrasenya perduda
       heading: Heu oblidat la contrasenya?
       email address: 'Adreça de correu electrònic:'
       new password button: Restableix la contrasenya
       help_text: Introduïu l'adreça de correu electrònic que vau utilitzar per registrar-vos;
         us hi enviarem un enllaç per a restablir la contrasenya.
+    create:
       notice email on way: Lamentem que l'hàgiu perdut :-( però ja us hem enviat un
         correu i la podreu restablir ben aviat.
       notice email cannot find: No s'ha trobat aquesta adreça de correu.
-    reset_password:
+    edit:
       title: Restableix la contrasenya
       heading: Restableix la contrasenya per a %{user}
       reset: Restableix la contrasenya
-      flash changed: S'ha canviat la contrasenya.
       flash token bad: No s'ha trobat el testimoni. Comproveu l'URL.
+    update:
+      flash changed: S'ha canviat la contrasenya.
   preferences:
     show:
       title: Les meves preferències
@@ -1886,7 +1894,6 @@ ca:
       heading: Inicia la sessió
       email or username: 'Adreça de correu o nom d''usuari:'
       password: 'Contrasenya:'
-      openid_html: '%{logo} OpenID:'
       remember: Recorda'm
       lost password link: Heu perdut la contrasenya?
       login_button: Accés
@@ -2062,6 +2069,9 @@ ca:
         contributors_at_cc_by_at_with_amendments: CC BY AT amb esmenes
         contributors_au_australia: Austràlia
         contributors_ca_canada: Canadà
+        contributors_cz_czechia: Txèquia
+        contributors_cz_cc_licence: Llicència Creative Commons Reconeixement 4.0 Internacional
+          (CC BY 4.0)
         contributors_fi_finland: Finlàndia
         contributors_fr_credit_html: '%{france}: Conté dades d''origen de la «Direction
           Générale des Impôts».'
@@ -2135,12 +2145,7 @@ ca:
         són necessàries per a aquesta funcionalitat.
     export:
       title: Exporta
-      area_to_export: Àrea a exportar
       manually_select: Selecciona manualment una àrea diferent
-      format_to_export: Format d'exportació
-      osm_xml_data: Dades XML d'OpenStreetMap
-      map_image: Imatge de mapa (mostra una capa estàndard)
-      embeddable_html: HTML incrustable
       licence: Llicència
       licence_details_html: Les dades d'OpenStreetMap estan sota la llicència %{odbl_link}
         (ODbL).
@@ -2166,17 +2171,6 @@ ca:
         other:
           title: Altres fonts
           description: Fonts addicionals llistades al wiki d'OpenStreetMap
-      options: Opcions
-      format: Format
-      scale: Escala
-      max: màx
-      image_size: Mida de la imatge
-      zoom: Zoom
-      add_marker: Afegeix un marcador en el mapa
-      latitude: 'Lat:'
-      longitude: 'Lon:'
-      output: Sortida
-      paste_html: Enganxa HTML per incrustar-lo al lloc web
       export_button: Exporta
     fixthemap:
       title: Informeu d'un problema / Corregiu el mapa
@@ -2213,17 +2207,13 @@ ca:
         url: http://wiki.openstreetmap.org/wiki/Ca:Beginners%27_guide
         title: Guia per a principiants
         description: Guia per a principiants mantinguda per la comunitat.
-      help:
-        title: Fòrum d'ajuda
-        description: Feu una pregunta o cerqueu respostes a la pàgina de preguntes
-          i respostes d'OpenStreetMap.
+      community:
+        title: Fòrum comunitari
+        description: Un espai compartit per a les converses d'OpenStreetMap.
       mailing_lists:
         title: Llistes de correu
         description: Pregunta o debat sobre qüestions interessants en un ampli ventall
           de llistes de correu temàtiques i regionals.
-      community:
-        title: Fòrum comunitari
-        description: Un espai compartit per a les converses d'OpenStreetMap.
       irc:
         title: IRC
         description: Xat interactiu en llengües diferents i sobre diferents temes.
@@ -2278,6 +2268,7 @@ ca:
           primary: Carretera principal
           secondary: Carretera secundària
           unclassified: Carretera sense classificar
+          pedestrian: Via per a vianants
           track: Pista - Camí
           bridleway: Camí de ferradura
           cycleway: Carril bici
@@ -2286,36 +2277,44 @@ ca:
           cycleway_local: Carril bici local
           footway: Via de vianants
           rail: Ferrocarril
+          train: Tren
           subway: Metro
-          tram:
-          - Tren lleuger
-          - tramvia
-          cable:
-          - Telefèric
-          - telecadira
-          runway:
-          - Pista d'aeroport
-          - carrer de rodatge
-          apron:
-          - Estacionament d'avions
-          - terminal
+          ferry: Ferri
+          light_rail: Ferrocarril lleuger
+          tram: Tramvia
+          trolleybus: Troleibús
+          bus: Autobús
+          cable_car: Telefèric
+          chair_lift: Telecadira
+          runway: Pista d'aeroport
+          taxiway: Carrer de rodatge
+          apron: Estacionament d'avions
           admin: Límit administratiu
+          orchard: Hort
+          vineyard: Vinya
           forest: Bosc
-          wood: Fusta
+          wood: Arbreda
+          farmland: Terra de conreu
+          grass: Gespa
+          meadow: Prada
+          bare_rock: Roca pelada
+          sand: Sorra
           golf: Camp de golf
           park: Parc
+          common: Àrea comunal
+          built_up: Zona edificada
           resident: Zona residencial
-          common:
-          - Àrea comunal
-          - prat
-          - jardí
           retail: Àrea comercial
           industrial: Zona industrial
           commercial: Zona comercial
           heathland: Bruguerar
-          lake:
-          - Llac
-          - bassa
+          scrubland: Matolls
+          lake: Llac
+          reservoir: Embassament
+          intermittent_water: Cos d'aigua intermitent
+          glacier: Glacera
+          reef: Escull
+          wetland: Aiguamoll
           farm: Granja
           brownfield: Àrea industrial abandonada
           cemetery: Cementiri
@@ -2324,19 +2323,19 @@ ca:
           centre: Centre esportiu
           reserve: Reserva natural
           military: Àrea militar
-          school:
-          - Escola - Institut
-          - Universitat
+          school: Escola - Institut
+          university: Universitat
+          hospital: Hospital
           building: Edifici significatiu
           station: Estació de tren
-          summit:
-          - Cim
-          - pic
+          summit: Cim
+          peak: Cim
           tunnel: Línia discontínua = túnel
           bridge: Línia negra = pont
           private: Accés privat
           destination: Servitud de pas
           construction: Carreteres en construcció
+          bus_stop: Parada d'autobús
           bicycle_shop: Botiga de bicicletes
           bicycle_parking: Aparcament de bicicletes
           toilets: Lavabos
@@ -2760,7 +2759,6 @@ ca:
       ct status: 'Termes de col·laboració:'
       ct undecided: No decidit
       ct declined: Rebutjat
-      latest edit: 'Darrera edició fa (%{ago}):'
       email address: 'Adreça de correu:'
       created from: 'Creat a partir de:'
       status: 'Estat:'
@@ -2879,8 +2877,8 @@ ca:
     revoke:
       title: Revocació de bloc en %{block_on}
       heading_html: Revocació de bloc en %{block_on} %{block_by}
-      time_future: Aquest blocatge acabarà en %{time}.
-      past: Aquest blocatge va acabar a %{time} i ara no es pot revocar.
+      time_future_html: Aquest blocatge acabarà en %{time}.
+      past_html: Aquest blocatge va acabar a %{time} i ara no es pot revocar.
       confirm: Esteu segur que voleu revocar aquest bloc?
       revoke: Revoca!
       flash: Aquest bloc ha estat revocat.
@@ -3035,12 +3033,10 @@ ca:
           other: Sou a menys de %{count} peus del punt
       base:
         standard: Estàndard
-        cyclosm: CyclOSM
         cycle_map: Mapa ciclista
         transport_map: Mapa de transports
         tracestracktop_topo: Tracestrack Topo
         hot: Humanitari
-        opnvkarte: ÖPNVKarte (mapa de transport públic)
       layers:
         header: Capes del mapa
         notes: Notes de mapa
@@ -3055,8 +3051,6 @@ ca:
       osm_france: OpenStreetMap França
       thunderforest_credit: Tessel·les cortesia de %{thunderforest_link}
       andy_allan: Andy Allan
-      opnvkarte_credit: Tessel·les cortesia de %{memomaps_link}
-      memomaps: MeMoMaps
       tracestrack_credit: Tessel·les cortesia de %{tracestrack_link}
       hotosm_credit: Estil de tessel·les per %{hotosm_link}, hostatjades per %{osm_france_link}
       hotosm_name: Equip humanitari de l'OpenStreetMap
index 2a3b9bacc7218e312f4a85a1c568506d50968f2f..8029aa4429956c11f44802c9e5c7263feaa0c07a 100644 (file)
@@ -203,12 +203,8 @@ ce:
       way_paginated: Сиз (%{x}-%{y} чуьра %{count})
       relation: Хилар (%{count})
       relation_paginated: Хилар (%{x}-%{y} чуьра %{count})
-      comment: Комменташ (%{count})
       changesetxml: Нисдарийн XML
       osmchangexml: osmChange XML
-      feed:
-        title: 'Нисдарш: %{id}'
-        title_comment: Нисдарш %{id} — %{comment}
       join_discussion: Дийцарехь дакъалаца системин чугӀо
       discussion: Дийцар
     node:
@@ -303,6 +299,9 @@ ce:
       no_more_area: Кхузахь нисдарш дина дац.
       no_more_user: Кхузахь хӀокху декъашхочо нисдарш дина дац.
       load_more: Чуйаха кхин а
+      feed:
+        title: 'Нисдарш: %{id}'
+        title_comment: Нисдарш %{id} — %{comment}
     timeout:
       sorry: Ахьа бихина нисдарийн могӀа, арабаккха тӀехь беха бу.
   changeset_comments:
@@ -313,6 +312,8 @@ ce:
       title_all: OpenStreetMap тӀехь дина нисдарийн дийцар
       title_particular: 'OpenStreetMap #%{changeset_id} тӀехь дина нисдарийн дийцар'
   dashboards:
+    contact:
+      latest_edit_html: 'ТӀаьххьара нисдар %{ago}:'
     popup:
       friend: ДоттагӀ
     show:
@@ -736,7 +737,9 @@ ce:
   messages:
     inbox:
       title: ЧуйогӀурш
+    messages_table:
       from: Хьаьнгара
+      to: Хьаьнга
       subject: Тема
       date: Терахь
     message_summary:
@@ -746,9 +749,6 @@ ce:
       back_to_inbox: ЧубогӀучаьрга йуханехьа
     outbox:
       title: ДӀайохьуьйтурш
-      to: Хьаьнга
-      subject: Тема
-      date: Терахь
     show:
       title: Хаамашка хьажар
       reply_button: Жоп ло
@@ -758,15 +758,16 @@ ce:
     sent_message_summary:
       destroy_button: ДӀайаккха
   passwords:
-    lost_password:
+    new:
       title: Пароль меттахӀоттор
       heading: Йицйелла пароль?
       email address: 'Электронан поштан адрес:'
       new password button: Керла пароль кхосса соьга
-    reset_password:
+    edit:
       title: Йуха а йазйе пароль
       heading: Йуха а йазйе пароль %{user}
       reset: ХӀоттайе пароль
+    update:
       flash changed: Хьан пароль хийцина.
   profiles:
     edit:
@@ -779,7 +780,6 @@ ce:
       heading: ЧугӀо
       email or username: 'Эл. пошт йа декъашхочун цӀе:'
       password: 'Пароль:'
-      openid_html: '%{logo} OpenID:'
       remember: Дагалаца со
       lost password link: Йицйелла пароль?
       login_button: ЧугӀо
@@ -801,12 +801,7 @@ ce:
         infringement_title_html: Авторийн бакъонаш талхор
     export:
       title: Экспорт йан
-      area_to_export: Экспорт йаран меттиг
       manually_select: Билгале кхин меттиг
-      format_to_export: Экспортан формат
-      osm_xml_data: OpenStreetMap XML форматехь хаамаш
-      map_image: Картан сурт (гайта стандартан гӀатт)
-      embeddable_html: Нисйан луш йолу HTML
       licence: Лицензи
       too_large:
         planet:
@@ -817,16 +812,6 @@ ce:
           title: Чуйолурш Geofabrik
         other:
           title: Кхин хьосташ
-      options: Параметраш
-      format: Формат
-      scale: Гар
-      max: макс.
-      image_size: 'Суьртан барам:'
-      zoom: Улле йалайе
-      add_marker: Картан тӀе маркер йилла
-      latitude: 'Шоралла:'
-      longitude: 'Дохалла:'
-      output: Хилам
       export_button: Экспорт йан
     fixthemap:
       title: Хаамбе гӀалатах лаце / нийсде карта
@@ -899,7 +884,6 @@ ce:
       ct status: 'Дакъалацарна хьоьлаш:'
       ct undecided: Билгала цайина
       ct declined: Йухатоьхна
-      latest edit: 'ТӀаьххьара нисдар %{ago}:'
       email address: 'Email адрес:'
       created from: 'Кхоьллина:'
       status: 'Статус:'
index 22194c5208e9333d05e160d6ab1ecae3c8776b08..2649ed2207c6a468b4c8ffdff99125d5ff3f1b58 100644 (file)
@@ -286,7 +286,6 @@ cs:
   auth:
     providers:
       none: Žádná
-      openid: OpenID
       google: Google
       facebook: Facebook
       microsoft: Microsoft
@@ -423,14 +422,10 @@ cs:
       way_paginated: Cesty (%{x}-%{y} z %{count})
       relation: Relace (%{count})
       relation_paginated: Relace (%{x}–%{y} z %{count})
-      comment: Komentáře (%{count})
       hidden_comment_by_html: Skrytý komentář od uživatele %{user} %{time_ago}
       comment_by_html: Komentář od uživatele %{user} %{time_ago}
       changesetxml: Sada změn XML
       osmchangexml: osmChange XML
-      feed:
-        title: Sada změn %{id}
-        title_comment: Sada změn %{id} - %{comment}
       join_discussion: Chcete-li diskutovat, přihlaste se
       discussion: Diskuse
       still_open: Sada změn je stále otevřená – diskuse se zpřístupní, jakmile bude
@@ -543,6 +538,9 @@ cs:
       no_more_area: Pro tuto oblast nebyly nalezeny žádné další sady změn.
       no_more_user: Nebyly nalezeny žádné další sady změn tohoto uživatele.
       load_more: Načíst další
+      feed:
+        title: Sada změn %{id}
+        title_comment: Sada změn %{id} - %{comment}
     timeout:
       sorry: Omlouváme se, ale vámi požadovaný seznam sad změn se načítal příliš dlouho.
   changeset_comments:
@@ -561,6 +559,7 @@ cs:
     contact:
       km away: '%{count} km'
       m away: '%{count} m'
+      latest_edit_html: 'Poslední úprava (%{ago}):'
     popup:
       your location: Vaše poloha
       nearby mapper: Nedaleký uživatel
@@ -882,7 +881,7 @@ cs:
           "yes": Most
         building:
           apartment: Apartmán
-          apartments: Apartmány
+          apartments: Bytový dům
           barn: Stodola
           bungalow: Bungalov
           cabin: Chatka
@@ -1541,9 +1540,9 @@ cs:
         many: '%{count} hlášení'
         other: '%{count} hlášení'
       no_reports: Žádná hlášení
-      report_created_at: První hlášení v %{datetime}
-      last_resolved_at: Naposledy vyřešeno v %{datetime}
-      last_updated_at: Poslední aktualizace v %{datetime} od %{displayname}
+      report_created_at_html: První hlášení v %{datetime}
+      last_resolved_at_html: Naposledy vyřešeno v %{datetime}
+      last_updated_at_html: Poslední aktualizace v %{datetime} od %{displayname}
       resolve: Vyřešit
       ignore: Ignorovat
       reopen: Znovu otevřít
@@ -1826,8 +1825,6 @@ cs:
   messages:
     inbox:
       title: Doručená pošta
-      my_inbox: Má doručená pošta
-      my_outbox: Moje odchozí
       messages: Máte %{new_messages} a %{old_messages}
       new_messages:
         few: '%{count} nové zprávy'
@@ -1837,12 +1834,14 @@ cs:
         few: '%{count} staré zprávy'
         one: '%{count} starou zprávu'
         other: '%{count} starých zpráv'
-      from: Od
-      subject: Předmět
-      date: Datum
       no_messages_yet_html: Zatím nemáte žádné zprávy. Co třeba kontaktovat nějaké
         %{people_mapping_nearby_link}?
       people_mapping_nearby: uživatele poblíž
+    messages_table:
+      from: Od
+      to: Komu
+      subject: Předmět
+      date: Datum
     message_summary:
       unread_button: Označit jako nepřečtené
       read_button: Označit jako přečtené
@@ -1862,15 +1861,10 @@ cs:
       body: Je mi líto, ale žádná zpráva s tímto ID neexistuje.
     outbox:
       title: Odeslaná pošta
-      my_inbox: Moje příchozí
-      my_outbox: Moje odchozí
       messages:
         few: Máte %{count} odeslané zprávy
         one: Máte %{count} odeslanou zprávu
         other: Máte %{count} odeslaných zpráv
-      to: Komu
-      subject: Předmět
-      date: Datum
       no_sent_messages_html: Nemáte žádné odeslané zprávy. Co třeba kontaktovat nějaké
         %{people_mapping_nearby_link}?
       people_mapping_nearby: uživatele poblíž
@@ -1889,28 +1883,33 @@ cs:
         se pod správným účtem.
     sent_message_summary:
       destroy_button: Smazat
+    heading:
+      my_inbox: Má doručená pošta
+      my_outbox: Moje odchozí
     mark:
       as_read: Zpráva označena jako přečtená
       as_unread: Zpráva označena jako nepřečtená
     destroy:
       destroyed: Zpráva smazána
   passwords:
-    lost_password:
+    new:
       title: Ztracené heslo
       heading: Zapomněli jste heslo?
       email address: 'E-mailová adresa:'
       new password button: Resetovat heslo
       help_text: Zadejte e-mailovou adresu, pod kterou jste se zaregistrovali, my
         vám na ni pošleme odkaz, pomocí kterého si nastavíte nové heslo.
+    create:
       notice email on way: Škoda zapomenutého hesla :-( e-mail už je na cestě, takže
         si budete brzy moci zvolit nové.
       notice email cannot find: Je mi líto, ale nemohu najít tuto e-mailovou adresu.
-    reset_password:
+    edit:
       title: Obnovit heslo
       heading: Resetovat heslo pro %{user}
       reset: Resetovat heslo
-      flash changed: Vaše heslo bylo změněno.
       flash token bad: Odpovídající kód nebyl nalezen, možná zkontrolujte URL?
+    update:
+      flash changed: Vaše heslo bylo změněno.
   preferences:
     show:
       title: Moje preference
@@ -1957,7 +1956,6 @@ cs:
       heading: Přihlášení
       email or username: 'E-mailová adresa nebo uživatelské jméno:'
       password: 'Heslo:'
-      openid_html: '%{logo} OpenID:'
       remember: Zapamatuj si mě
       lost password link: Ztratili jste heslo?
       login_button: Přihlásit
@@ -2246,12 +2244,7 @@ cs:
         jsou pro tuto funkci nezbytné.
     export:
       title: Export
-      area_to_export: Oblast k exportu
       manually_select: Ručně vybrat jinou oblast
-      format_to_export: Formát exportu
-      osm_xml_data: Data OpenStreetMap XML
-      map_image: Obrázek mapy (zobrazuje standardní vrstvu)
-      embeddable_html: Vkládatelné HTML
       licence: Licence
       licence_details_html: Data OpenStreetMap jsou licencována pod %{odbl_link} (ODbL).
       odbl: Open Data Commons Open Database License
@@ -2274,17 +2267,6 @@ cs:
         other:
           title: Další zdroje
           description: Další zdroje uvedené na wiki OpenStreetMap
-      options: Možnosti
-      format: Formát
-      scale: Měřítko
-      max: max.
-      image_size: Velikost obrázku
-      zoom: Zoom
-      add_marker: Přidat do mapy značku
-      latitude: 'Šířka:'
-      longitude: 'Délka:'
-      output: Výstup
-      paste_html: Ke vložení na stránku použijte toto HTML
       export_button: Export
     fixthemap:
       title: Nahlásit problém / opravit mapu
@@ -2318,17 +2300,13 @@ cs:
         url: https://wiki.openstreetmap.org/wiki/Cs:Pr%C5%AFvodce_za%C4%8D%C3%A1te%C4%8Dn%C3%ADka
         title: Průvodce začátečníka
         description: Komunitou spravovaná příručka pro začátečníky.
-      help:
-        title: Fórum pomoci
-        description: Položte dotaz nebo vyhledejte odpovědi na stránce otázek a odpovědí
-          týkajících se OpenStreetMap.
+      community:
+        title: Komunitní fórum
+        description: Sdílený prostor pro diskuse o OpenStreetMap.
       mailing_lists:
         title: E-mailové konference
         description: Položte dotaz nebo diskutujte o zajímavých věcech na některé
           ze široké nabídky tematických či regionálních e-mailových konferencí.
-      community:
-        title: Komunitní fórum
-        description: Sdílený prostor pro diskuse o OpenStreetMap.
       irc:
         title: IRC
         description: Interaktivní chat v mnoha jazycích a na mnoho témat.
@@ -2392,35 +2370,24 @@ cs:
           footway: Pěší cesta
           rail: Železnice
           subway: Metro
-          tram:
-          - Rychlodráha
-          - tramvaj
-          cable:
-          - Lanovka
-          - sedačková lanovka
-          runway:
-          - Vzletová a přistávací dráha
-          - pojezdová dráha
-          apron:
-          - Letištní odbavovací plocha
-          - terminál
+          cable_car: Lanovka
+          chair_lift: sedačková lanovka
+          runway: Vzletová a přistávací dráha
+          taxiway: pojezdová dráha
+          apron: Letištní odbavovací plocha
           admin: Administrativní hranice
           forest: Les
           wood: Les
           golf: Golfové hřiště
           park: Park
+          common: Pastvina
           resident: Obytná oblast
-          common:
-          - Pastvina
-          - louka
-          - zahrada
           retail: Nákupní oblast
           industrial: Průmyslová oblast
           commercial: Kancelářská oblast
           heathland: Vřesoviště
-          lake:
-          - Jezero
-          - nádrž
+          lake: Jezero
+          reservoir: nádrž
           farm: Farma
           brownfield: Zbořeniště
           cemetery: Hřbitov
@@ -2429,14 +2396,12 @@ cs:
           centre: Sportovní centrum
           reserve: Přírodní rezervace
           military: Vojenský prostor
-          school:
-          - Škola
-          - univerzita
+          school: Škola
+          university: univerzita
           building: Významná budova
           station: Nádraží
-          summit:
-          - Vrchol
-          - hora
+          summit: Vrchol
+          peak: hora
           tunnel: Čárkované obrysy = tunel
           bridge: Černé obrysy = most
           private: Soukromý pozemek
@@ -2872,7 +2837,6 @@ cs:
       ct status: 'Podmínky pro přispěvatele:'
       ct undecided: Nerozhodnuto
       ct declined: Odmítnuty
-      latest edit: 'Poslední úprava (%{ago}):'
       email address: 'E-mailová adresa:'
       created from: 'Vytvořeno od:'
       status: 'Stav:'
@@ -2987,8 +2951,8 @@ cs:
     revoke:
       title: Zrušení bloku pro %{block_on}
       heading_html: Zrušení bloku pro %{block_on} od %{block_by}
-      time_future: Tento blok skončí v %{time}.
-      past: Teto blok skončil %{time} a již nemůže být zrušen.
+      time_future_html: Tento blok skončí v %{time}.
+      past_html: Teto blok skončil %{time} a již nemůže být zrušen.
       confirm: Opravdu chcete zrušit tento blok?
       revoke: Zrušit !
       flash: Tento blok byl zrušen.
@@ -3155,12 +3119,10 @@ cs:
           other: Od tohoto bodu jste méně než %{count} stop
       base:
         standard: Standardní
-        cyclosm: CyclOSM
         cycle_map: Cyklomapa
         transport_map: Dopravní mapa
         tracestracktop_topo: Tracestrack Topo
         hot: Humanitární
-        opnvkarte: ÖPNVKarte
       layers:
         header: Mapové vrstvy
         notes: Poznámky k mapě
@@ -3175,8 +3137,6 @@ cs:
       osm_france: OpenStreetMap Francie
       thunderforest_credit: Dlaždice laskavostí %{thunderforest_link}
       andy_allan: Andyho Allana
-      opnvkarte_credit: Dlaždice s laskavým svolením %{memomaps_link}
-      memomaps: MeMoMaps
       tracestrack_credit: Dlaždice laskavostí %{tracestrack_link}
       hotosm_credit: Styl dlaždic od %{hotosm_link} hostuje %{osm_france_link}
       hotosm_name: Humanitárního týmu OpenStreetMap
index f74c49f81a4312f1fe68bcaca8e1c48dfa907943..ac1d354ff276bfc6f8b5893ec7f033af81d3ed76 100644 (file)
@@ -44,6 +44,10 @@ cy:
       messages:
         invalid_email_address: nid yw'n ymddangos ei fod yn gyfeiriad e-bost dilys
         email_address_not_routable: nid yw'n gyrchadwy
+        display_name_is_user_n: ni all fod yn user_n oni bai mai n yw eich rhif defnyddiwr
+      models:
+        user_mute:
+          is_already_muted: wedi anwybyddu yn barod
     models:
       acl: Rhestr Rheoli Mynediad
       changeset: Grŵp newid
@@ -63,8 +67,8 @@ cy:
       old_relation_member: Aelod o Hen Berthynas
       old_relation_tag: Tag Hen Berthynas
       old_way: Hen Lwybr
-      old_way_node: Nod Hen Ffordd
-      old_way_tag: Tag Hen Ffordd
+      old_way_node: Hen Nod Llwybr
+      old_way_tag: Tag Hen Lwybr
       relation: Perthynas
       relation_member: Aelod Perthynol
       relation_tag: Tag Perthynas
@@ -152,6 +156,9 @@ cy:
         redirect_uri: Defnyddiwch un llinell fesul URI
       trace:
         tagstring: defnyddiwch goma i wahaniaethu
+      user_block:
+        needs_view: Oes angen i'r defnyddiwr fewngofnodi cyn y bydd y bloc hwn yn
+          cael ei glirio?
       user:
         new_email: (byth ei ddangos yn gyhoeddus)
   datetime:
@@ -252,7 +259,6 @@ cy:
   auth:
     providers:
       none: Dim
-      openid: OpenID
       google: Google
       facebook: Facebook
       microsoft: Microsoft
@@ -271,6 +277,9 @@ cy:
         reopened_at_by_html: Wedi ailgychwyn %{when} gan %{user}
       rss:
         title: Nodiadau OpenStreetMap
+        description_all: Rhestr o nodiadau newydd, gyda sylwadau, a wedi cau
+        description_area: Rhestr o nodiadau, adroddwyd, gyda sylwadau, neu wedi cau
+          yn eich ardal [(%{min_lat}|%{min_lon}) -- (%{max_lat}|%{max_lon})]
         description_item: Ffrwd RSS ar gyfer nodyn %{id}
         opened: Nodyn newydd (ger %{place})
         commented: Sylw newydd (ger %{place})
@@ -285,10 +294,19 @@ cy:
         title: Dileu fy nghyfrif
         warning: Rhybudd! Mae'r broses dileu cyfrif yn derfynol, ac ni ellir ei gwrthdroi.
         delete_account: Dileu cyfrif
+        delete_introduction: 'Gallwch chi ddileu eich cyfrif OpenStreetMap gan ddefnyddio''r
+          botwm isod. Nodwch y manylion canlynol:'
+        delete_profile: Bydd eich gwybodaeth broffil, gan gynnwys eich afatar, disgrifiad
+          a lleoliad cartref yn cael eu dileu.
+        delete_display_name: Bydd eich enw defnyddiwr yn cael ei ddileu, a gellir
+          ei ailddefnyddio gan gyfrifon eraill.
         retain_edits: Bydd eich golygiadau i'r gronfa ddata mapiau, os ydynt yn bodoli,
           yn cael eu cadw.
+        retain_traces: Cedwir unrhyw arllwybrau rydych chi wedi uwchlwytho os ydynt
+          yn bodoli.
         retain_changeset_discussions: Bydd eich trafodaethau grwpiau newid, os ydynt
           yn bodoli, yn cael eu cadw.
+        retain_email: Bydd eich cyfeiriad e-bost yn cael ei gadw.
         confirm_delete: Ydych chi'n siŵr?
         cancel: Canslo
   accounts:
@@ -337,6 +355,20 @@ cy:
     anonymous: dienw
     no_comment: (dim sylw)
     part_of: Rhan o
+    part_of_relations:
+      zero: '%{count} perthnasoedd'
+      one: '%{count} perthynas'
+      two: '%{count} berthynas'
+      few: '%{count} pherthynas'
+      many: '%{count} perthynas'
+      other: '%{count} perthynas'
+    part_of_ways:
+      zero: '%{count} llwybr'
+      one: '%{count} llwybr'
+      two: '%{count} lwybr'
+      few: '%{count} llwybr'
+      many: '%{count} llwybr'
+      other: '%{count} llwybr'
     download_xml: Lawrlwytho XML
     view_history: Gweld hanes
     view_details: Gweld manylion
@@ -348,20 +380,16 @@ cy:
       node_paginated: Nodau (%{x}-%{y} o %{count})
       way: Llwybrau %{count}
       way_paginated: Llwybrau (%{x}-%{y} o %{count})
-      relation: Perthynas %{count}
-      relation_paginated: Perthynas (%{x}-%{y} o %{count})
-      comment: Sylwadau (%{count})
+      relation: Perthnasoedd (%{count})
+      relation_paginated: Perthnasoedd (%{x}-%{y} o %{count})
       hidden_comment_by_html: Sylw cudd gan %{user} %{time_ago}
       comment_by_html: Sylw gan %{user} %{time_ago}
       changesetxml: XML grŵp newid
       osmchangexml: XML osmChange
-      feed:
-        title: Grŵp newid %{id}
-        title_comment: Grŵp newid %{id} - %{comment}
       join_discussion: Mewngofnodwch i ymuno â'r sgwrs
       discussion: Sgwrs
-      still_open: Mae'r grŵp newid dal ar agor - bydd trafodaeth yn cychwyn unwaith
-        y bydd y grŵp newid wedi cau.
+      still_open: Mae'r grŵp newid dal ar agor - bydd trafodaeth yn agor pan fydd
+        y grŵp newid wedi cau.
     node:
       title_html: 'Nod: %{name}'
       history_title_html: 'Hanes y nod: %{name}'
@@ -377,8 +405,12 @@ cy:
         many: '%{count} nod'
         other: '%{count} nod'
       also_part_of_html:
-        one: rhan o'r ffordd %{related_ways}
-        other: rhan o'r ffyrdd %{related_ways}
+        zero: rhan o lwybr %{related_ways}
+        one: rhan o lwybr %{related_ways}
+        two: rhan o lwybr %{related_ways}
+        few: rhan o lwybr %{related_ways}
+        many: rhan o lwybr %{related_ways}
+        other: rhan o lwybr %{related_ways}
     relation:
       title_html: 'Perthynas: %{name}'
       history_title_html: 'Hanes y Perthynas: %{name}'
@@ -474,6 +506,9 @@ cy:
       no_more_area: Heb ganfod mwy o grwpiau newid yn yr ardal hon.
       no_more_user: Heb ganfod mwy o grwpiau newid gan y defnyddiwr hwn.
       load_more: Llwytho mwy
+      feed:
+        title: Grŵp newid %{id}
+        title_comment: Grŵp newid %{id} - %{comment}
     timeout:
       sorry: Mae'n ddrwg gennym, cymerodd y rhestr o grwpiau newid y gofynnoch amdanynt
         rhy hir i'w hadalw.
@@ -490,17 +525,20 @@ cy:
     contact:
       km away: '%{count}km i ffwrdd'
       m away: '%{count}m i ffwrdd'
+      latest_edit_html: 'Golygiad diweddaraf (%{ago}):'
     popup:
       your location: Eich lleoliad
       nearby mapper: Mapiwr gerllaw
       friend: Ffrind
     show:
       title: Dangosfwrdd
+      no_home_location_html: '%{edit_profile_link} a gosodwch eich lleoliad i weld
+        defnyddwyr cyfagos.'
       edit_your_profile: Golygu eich proffil
       my friends: Fy ffrindiau
       no friends: Nid ydych wedi ychwanegu unrhyw ffrindiau eto.
       nearby users: Defnyddwyr eraill gerllaw
-      no nearby users: Nid oes defnyddwyr gerllaw sy'n datgelu eu bod yn mapio eto.
+      no nearby users: Nid oes defnyddwyr gerllaw sy'n dweud eu bod yn mapio eto.
       friends_changesets: Grwpiau newid eich ffrindiau
       friends_diaries: cofnodion dyddiaduron ffrindiau
       nearby_changesets: grwpiau newid defnyddwyr gerllaw
@@ -530,6 +568,7 @@ cy:
     show:
       title: Dyddiadur %{user} | %{title}
       user_title: Dyddiadur %{user}
+      discussion: Sgwrs
       leave_a_comment: Sylw
       login_to_leave_a_comment_html: '%{login_link} i adael sylw'
       login: Mewngofnodi
@@ -589,6 +628,10 @@ cy:
       newer_comments: Sylwadau Diweddarach
       older_comments: Sylwadau Hŷn
   doorkeeper:
+    flash:
+      applications:
+        create:
+          notice: Cofrestrwyd yr Ap.
     openid_connect:
       errors:
         messages:
@@ -611,7 +654,10 @@ cy:
   errors:
     contact:
       contact_url_title: Esboniad o sianeli cyswllt amrywiol
-      contact: cysylltu
+      contact: Cysylltwch
+      contact_the_community_html: '%{contact_link} â''r gymuned OpenStreetMap os ydych
+        chi wedi dod o hyd i nam neu ddolen sydd wedi torri. Nodwch yr URL cywir o''ch
+        cais.'
     forbidden:
       title: Gwaharddedig
     internal_server_error:
@@ -798,11 +844,15 @@ cy:
           college: Adeilad Coleg
           commercial: Adeilad Masnachol
           construction: Adeilad yn cael ei Adeiladu
+          detached: Tŷ Datgysylltiedig
           dormitory: Dorm
+          duplex: Tŷ Deublyg
           farm: Ffermdy
+          farm_auxiliary: Tŷ Fferm Ategol
           garage: Garej
           garages: Garejis
           greenhouse: Tŷ Gwydr
+          hangar: Hangar
           hospital: Adeilad Ysbyty
           hotel: Adeilad Gwesty
           house: Tŷ
@@ -810,12 +860,15 @@ cy:
           hut: Cwt
           industrial: Adeilad Diwydiannol
           kindergarten: Adeilad Meithrinfa
+          manufacture: Adeilad Gweithgynhyrchu
           office: Adeilad Swyddfa
           public: Adeilad Cyhoeddus
           residential: Adeilad Preswyl
           retail: Adeilad Adwerthu
           roof: To
+          ruins: Adeilad Adfeiliedig
           school: Adeilad Ysgol
+          service: Adeilad Gwasanaeth
           shed: Sied
           stable: Stabl
           static_caravan: Carafan
@@ -861,7 +914,7 @@ cy:
           phone: Ffôn Argyfwng
           water_tank: Tanc Dŵr Argyfwng
         highway:
-          abandoned: Hen Briffordd
+          abandoned: Priffordd Gadawedig
           bridleway: Llwybr Ceffyl
           bus_guideway: Lon Bysiau
           bus_stop: Safle Bws
@@ -881,7 +934,7 @@ cy:
           motorway_link: Ffordd Traffordd
           passing_place: Lle Pasio
           path: Llwybr
-          pedestrian: Llwybr Cerddwyr
+          pedestrian: Stryd Gerddwyr
           platform: Platfform
           primary: Priffordd
           primary_link: Priffordd
@@ -925,6 +978,7 @@ cy:
           citywalls: Waliau Ddinas
           fort: Caer
           heritage: Safle Dreftadaeth
+          hollow_way: Ceuffordd
           house: Tŷ
           manor: Maenor
           memorial: Cofeb
@@ -936,8 +990,9 @@ cy:
           stone: Carreg
           tomb: Beddrod
           tower: Tŵr
-          wayside_cross: Croes Min Ffordd
-          wayside_shrine: Cysegrfa Min Ffordd
+          wayside_chapel: Capel Min y Ffordd
+          wayside_cross: Croes Min y Ffordd
+          wayside_shrine: Cysegrfa Min y Ffordd
           wreck: Llongddrylliad
           "yes": Safle Hanesyddol
         junction:
@@ -965,6 +1020,7 @@ cy:
           quarry: Chwarel
           railway: Rheilffordd
           recreation_ground: Ardal Chwarae
+          religious: Ardal Grefyddol
           reservoir: Cronfa Ddŵr
           reservoir_watershed: Gwahanfa Ddŵr
           residential: Ardal Breswyl
@@ -973,9 +1029,11 @@ cy:
           vineyard: Gwinllan
           "yes": Defnydd Tir
         leisure:
+          adult_gaming_centre: Canolfan Hapchwarae Oedolion
           beach_resort: Cyrchfan Traeth
           bird_hide: Cuddfan Adar
           common: Tir Comin
+          dance: Neuadd Ddawns
           dog_park: Parc Cwn
           firepit: Ardal Dân
           fishing: Man Pysgota
@@ -988,7 +1046,9 @@ cy:
           marina: Marina
           miniature_golf: Golff Pitw
           nature_reserve: Gwarchodfa Natur
+          outdoor_seating: Seddau Awyr Agored
           park: Parc
+          picnic_table: Bwrdd Picnic
           pitch: Cae Chwaraeon
           playground: Ardal Chwarae
           recreation_ground: Ardal Hamdden
@@ -1002,6 +1062,7 @@ cy:
           water_park: Parc Dŵr
           "yes": Hamdden
         man_made:
+          adit: Adit
           advertising: Hysbysebu
           antenna: Antena
           beacon: Goleufa
@@ -1071,6 +1132,7 @@ cy:
           moor: Gwaun
           mud: Mwd
           peak: Copa
+          peninsula: Penrhyn
           point: Pwynt
           reef: Riff
           ridge: Cefn
@@ -1144,7 +1206,7 @@ cy:
           village: Pentref
           "yes": Lle
         railway:
-          abandoned: Hen Reilffordd
+          abandoned: Rheilffordd Adawedig
           construction: Rheilffordd yn cael ei hadeiladu
           disused: Rheilffordd Segur
           funicular: Rheilffordd fynydd
@@ -1246,6 +1308,7 @@ cy:
           organic: Siop Fwyd Organig
           outdoor: Siop Awyr Agored
           paint: Siop Baent
+          pawnbroker: Siop Wystlo
           pet: Siop Anifeiliaid Anwes
           photo: Siop Luniau
           seafood: Bwyd Môr
@@ -1317,7 +1380,7 @@ cy:
         level2: Ffin Gwledydd
         level4: Ffin Taleithiau
         level5: Ffin Rhanbarth
-        level6: Ffin Sir
+        level6: Ffin Sir / Swydd
         level8: Ffin Dinas
         level9: Ffin Pentref
         level10: Ffin Maesdref
@@ -1366,24 +1429,39 @@ cy:
         many: '%{count} adroddiad'
         other: '%{count} adroddiad'
       no_reports: Dim adroddiadau
-      report_created_at: Adroddwyd gyntaf am %{datetime}
-      last_resolved_at: Datryswyd ddiwethaf am %{datetime}
-      last_updated_at: Diweddarwyd ddiwethaf am %{datetime} gan %{displayname}
+      report_created_at_html: Adroddwyd gyntaf am %{datetime}
+      last_resolved_at_html: Datryswyd ddiwethaf am %{datetime}
+      last_updated_at_html: Diweddarwyd ddiwethaf am %{datetime} gan %{displayname}
       resolve: Datrys
       ignore: Anwybyddu
       reopen: Ailagor
+      reports_of_this_issue: Adroddiadau o'r Mater hwn
       read_reports: Darllen Adroddiadau
       new_reports: Adroddiadau Newydd
+      comments_on_this_issue: Sylwadau ar y mater hwn
+    comments:
+      comment_from_html: Sylw gan %{user_link} ar %{comment_created_at}
+      reassign_param: Ailbennu'r Mater?
     reports:
       reported_by_html: Adroddwyd fel %{category} gan %{user} ar %{updated_at}
     helper:
       reportable_title:
         diary_comment: '%{entry_title}, sylw #%{comment_id}'
         note: 'Nodyn #%{note_id}'
+  issue_comments:
+    create:
+      comment_created: Postiwyd eich sylw yn llwyddiannus
   reports:
     new:
       title_html: Adrodd %{link}
       missing_params: Ni ellir creu adroddiad newydd
+      disclaimer:
+        intro: 'Cyn anfon eich adroddiad at gymedrolwyr y safle, sicrhewch:'
+        not_just_mistake: Eich bod chi'n siŵr nad yw'r broblem yn gamgymeriad
+        unable_to_fix: Nid ydych chi'n gallu datrys y broblem eich hun neu gyda chymorth
+          y gymuned
+        resolve_with_user: Eich bod chi eisoes wedi ceisio datrys y broblem gyda'r
+          defnyddiwr dan sylw
       categories:
         diary_entry:
           spam_label: Mae'r cofnod dyddiadur hwn yn / yn cynnwys sbam
@@ -1433,10 +1511,12 @@ cy:
     intro_text: Mae OpenStreetMap yn fap o'r byd, wedi'i greu gan bobl fel chi ac
       sydd ar gael i'w ddefnyddio am ddim a dan drwydded rydd.
     intro_2_create_account: Creu cyfrif defnyddiwr
+    hosting_partners_html: Cefnogir y gynhaliaeth gan %{ucl}, %{fastly}, %{bytemark}
+      a %{partners} eraill
     partners_ucl: UCL
     partners_fastly: Fastly
     partners_bytemark: Bytemark Hosting
-    partners_partners: partneriaid
+    partners_partners: phartneriaid
     tou: Telerau Gwasanaeth
     osm_offline: Mae cronfa ddata OpenStreetMap all-lein ar hyn o bryd er mwyn gwaith
       cynnal a chadw hanfodol.
@@ -1457,6 +1537,7 @@ cy:
     more: Mwy
   user_mailer:
     diary_comment_notification:
+      subject: '[OpenStreetMap] Gwnaeth %{user} sylw ar gofnod dyddiadur'
       hi: Helo %{to_user},
     message_notification:
       subject: '[OpenStreetMap] %{message_title}'
@@ -1467,10 +1548,12 @@ cy:
       had_added_you: Mae %{user} wedi eich ychwanegu fel ffrind ar OpenStreetMap.
       see_their_profile: 'Gallwch weld eu proffil yma: %{userurl}.'
       see_their_profile_html: 'Gallwch weld eu proffil yma: %{userurl}.'
+      befriend_them: Gallwch hefyd eu hychwanegu fel ffrind ar %{befriendurl}.
+      befriend_them_html: Gallwch hefyd eu hychwanegu fel ffrind ar %{befriendurl}.
     gpx_failure:
       hi: Helo %{to_user},
       failed_to_import: 'methwyd â mewnforio. Dyma''r gwall:'
-      subject: Methwyd mewnforio GPX [OpenStreetMap]
+      subject: '[OpenStreetMap] Methiant Mewnforio GPX'
     gpx_success:
       hi: Helo %{to_user},
       subject: '[OpenStreetMap] Llwyddiant Mewnforio GPX'
@@ -1487,6 +1570,8 @@ cy:
     lost_password:
       subject: '[OpenStreetMap] Cais ailosod cyfrinair'
       greeting: Helo,
+      click_the_link: Os mai chi yw hwn, cliciwch ar y ddolen isod i ailosod eich
+        cyfrinair.
     note_comment_notification:
       anonymous: Defnyddiwr dienw
       greeting: Helo,
@@ -1494,30 +1579,60 @@ cy:
         subject_own: '[OpenStreetMap] Gwnaeth %{commenter} sylw ar un o''ch nodiadau'
         subject_other: '[OpenStreetMap] Gwnaeth %{commenter} sylw ar nodyn y mae gennych
           ddiddordeb ynddo'
+        your_note: Ysgrifennodd %{commenter} sylw ar un o'ch nodiadau map ger %{place}.
+        your_note_html: Ysgrifennodd %{commenter} sylw ar un o'ch nodiadau map ger
+          %{place}.
+      closed:
+        subject_own: '[OpenStreetMap] Datrysodd %{commenter} un o''ch nodiadau'
+        subject_other: '[OpenStreetMap] Datrysodd %{commenter} nodyn y mae gennych
+          chi ddiddordeb ynddo'
+        your_note: Datrysodd %{commenter} un o'ch nodiadau map ger %{place}.
+        your_note_html: Datrysodd %{commenter} un o'ch nodiadau map ger %{place}.
+      reopened:
+        subject_own: '[OpenStreetMap] Ailysgogodd %{commenter} un o''ch nodiadau'
+        subject_other: '[OpenStreetMap] Ailysgogodd %{commenter} nodyn y mae gennych
+          ddiddordeb ynddo'
+        your_note: Ailysgogodd %{commenter} un o'ch nodiadau map ger %{place}.
+        your_note_html: Ailysgogodd %{commenter} un o'ch nodiadau map ger %{place}.
+      details: Ceir rhagor o fanylion am y nodyn ar %{url}.
+      details_html: Ceir rhagor o fanylion am y nodyn ar %{url}.
     changeset_comment_notification:
       hi: Helo %{to_user},
       greeting: Helo,
       commented:
+        subject_own: '[OpenStreetMap] Gwnaeth %{commenter} sylw ar un o''ch grwpiau
+          newid'
+        subject_other: '[OpenStreetMap] Gwnaeth %{commenter} sylw ar grŵp newydd y
+          mae gennych ddiddordeb ynddo'
+        your_changeset: Gwnaeth %{commenter} sylw am %{time} ar un o'ch grwpiau newid
+        your_changeset_html: Gwnaeth %{commenter} sylw am %{time} ar un o'ch grwpiau
+          newid
         partial_changeset_with_comment: gyda sylw '%{changeset_comment}'
         partial_changeset_with_comment_html: gyda sylw '%{changeset_comment}'
         partial_changeset_without_comment: dim sylw
+      details: Ceir rhagor o fanylion am y grŵp newid ar %{url}.
+      details_html: Ceir rhagor o fanylion am y grŵp newid ar %{url}.
   confirmations:
     confirm:
       heading: Gwiriwch eich e-byst!
+      introduction_1: Rydym wedi anfon e-bost cadarnhau atoch.
       button: Cadarnhau
+      success: Wedi cadarnhau eich cyfrif, diolch am gofrestru!
+      already active: Mae'r cyfrif hwn eisoes wedi'i gadarnhau.
+      resend_html: Os oes angen inni ailanfon yr e-bost cadarnhau, %{reconfirm_link}.
       click_here: cliciwch yma
     confirm_resend:
       failure: Heb ganfod y defnyddiwr %{name}.
     confirm_email:
       heading: Cadarnhau newid cyfeiriad e-bost
+      press confirm button: Cliciwch ar y botwm cadarnhau isod i gadarnhau eich cyfeiriad
+        e-bost newydd.
       button: Cadarnhau
       success: Wedi cadarnhau eich newid cyfeiriad e-bost!
       failure: Mae cyfeiriad e-bost eisoes wedi'i gadarnhau gyda'r tocyn hwn.
   messages:
     inbox:
       title: Mewnflwch
-      my_inbox: Fy Mewnflwch
-      my_outbox: Fy Mlwch Allan
       messages: Mae gennych %{new_messages} a %{old_messages}
       new_messages:
         zero: '%{count} neges newydd'
@@ -1533,15 +1648,21 @@ cy:
         few: '%{count} hen neges'
         many: '%{count} hen neges'
         other: '%{count} hen neges'
+      no_messages_yet_html: Nid oes gennych unrhyw negeseuon eto. Beth am gysylltu
+        â'r %{people_mapping_nearby_link}?
+      people_mapping_nearby: pobl yn mapio gerllaw
+    messages_table:
       from: Gan
+      to: I
       subject: Pwnc
       date: Dyddiad
-      people_mapping_nearby: person yn mapio gerllaw
+      actions: Gweithredoedd
     message_summary:
       unread_button: Marcio fel heb ei ddarllen
       read_button: Marcio fel wedi'i ddarllen
       reply_button: Ateb
       destroy_button: Dileu
+      unmute_button: Symud i'r Mewnflwch
     new:
       title: Anfon neges
       send_message_to_html: Anfon neges newydd at %{name}
@@ -1556,15 +1677,15 @@ cy:
       body: Sori, nid oes neges gyda'r id yno.
     outbox:
       title: Blwch Allan
-      my_inbox: Fy Mewnflwch
-      my_outbox: Fy Mlwch Allan
+      actions: Gweithredoedd
       messages:
         one: Mae gennych %{count} neges wedi ei anfon
         other: Mae gennych %{count} neges wedi eu hanfon
-      to: I
-      subject: Pwnc
-      date: Dyddiad
+      no_sent_messages_html: Nid oes gennych unrhyw negeseuon wedi'u hanfon eto. Beth
+        am gysylltu â'r %{people_mapping_nearby_link}?
       people_mapping_nearby: pobl yn mapio gerllaw
+    muted:
+      title: Negeseuon ag Anwybyddwyd
     show:
       title: Darllen neges
       reply_button: Ateb
@@ -1573,22 +1694,32 @@ cy:
       back: Yn ôl
     sent_message_summary:
       destroy_button: Dileu
+    heading:
+      my_inbox: Fy Mewnflwch
+      my_outbox: Fy Mlwch Allan
+      muted_messages: Negeseuon ag anwybyddwyd
     mark:
       as_read: Nodwyd fod y neges wedi ei ddarllen
       as_unread: Nodwyd nad yw'r neges wedi ei ddarllen
+    unmute:
+      notice: Symudwyd y neges i'r Mewnflwch
     destroy:
       destroyed: Neges wedi'i dileu
   passwords:
-    lost_password:
+    new:
       title: Ailosod cyfrinair
       heading: Wedi anghofio'ch cyfrinair?
-      email address: 'Cyfeiriad e-bost:'
+      email address: Cyfeiriad E-bost
       new password button: Ailosod cyfrinair
+    create:
+      notice email on way: Sori eich bod wedi ei golli :-( ond mae e-bost ar y ffordd
+        er mwyn ichi ei ailosod yn fuan.
       notice email cannot find: Methwyd dod o hyd i'r cyfeiriad ebost yno.
-    reset_password:
+    edit:
       title: Ailosod cyfrinair
       heading: Ailosod cyfrinair ar gyfer %{user}
       reset: Ailosod cyfrinair
+    update:
       flash changed: Mae eich cyfrinair wedi'i newid.
   preferences:
     show:
@@ -1631,15 +1762,15 @@ cy:
     new:
       title: Mewngofnodi
       heading: Mewngofnodi
-      email or username: 'Cyfeiriad e-bost neu enw defnyddiwr:'
-      password: 'Cyfrinair:'
-      openid_html: '%{logo} OpenID:'
+      email or username: Cyfeiriad E-Bost neu Enw Defnyddiwr
+      password: Cyfrinair
       remember: Cofiwch fi
       lost password link: Wedi anghofio eich cyfrinair?
       login_button: Mewngofnodi
       register now: Cofrestru nawr
       with external: 'Fel arall, defnyddiwch drydydd parti i fewngofnodi:'
       no account: Dim cyfrif gennych?
+      auth failure: Mae'n ddrwg gennym, ni ellir mewngofnodi gyda'r manylion hynny.
       openid_logo_alt: Mewngofnodi gydag OpenID
       auth_providers:
         openid:
@@ -1671,12 +1802,18 @@ cy:
       heading: Allgofnodi o OpenStreetMap
       logout_button: Allgofnodi
     suspended_flash:
-      support: cymorth
+      suspended: Mae'n ddrwg gennym, mae eich cyfrif wedi'i atal yn awtomatig oherwydd
+        gweithgarwch amheus.
+      contact_support_html: Cysylltwch â %{support_link} os hoffech chi drafod hyn.
+      support: chymorth
   shared:
     markdown_help:
+      heading_html: Wedi'i ddosrannu gyda %{kramdown_link}
       headings: Penawdau
       heading: Pennawd
       subheading: Is-bennawd
+      unordered: Rhestr heb ei threfnu
+      ordered: Rhestr wedi'i threfnu
       first: Eitem gyntaf
       second: Ail eitem
       link: Dolen
@@ -1684,6 +1821,7 @@ cy:
       image: Delwedd
       alt: Testun amgen
       url: URL
+      codeblock: Bloc cod
     richtext_field:
       edit: Golygu
       preview: Rhagolwg
@@ -1691,20 +1829,34 @@ cy:
     about:
       next: Nesaf
       heading_html: '%{copyright}Cyfranwyr %{br} OpenStreetMap'
+      used_by_html: Mae %{name} yn darparu data map ar gyfer miloedd o wefannau, apiau
+        symudol a dyfeisiau caledwedd
       local_knowledge_title: Gwybodaeth Leol
+      local_knowledge_html: Mae OpenStreetMap yn rhoi pwyslais ar wybodaeth leol.
+        Mae cyfranwyr yn defnyddio delweddaeth o'r awyr, dyfeisiau GPS, a mapiau maes
+        technoleg isel i wirio bod OSM yn gywir ac yn gyfredol.
       community_driven_title: Gwaith y Gymuned
       community_driven_osm_blog: Blog OpenStreetMap
       community_driven_user_diaries: dyddiaduron defnyddwyr
       community_driven_community_blogs: blogiau cymunedol
       community_driven_osm_foundation: OSM Foundation
       open_data_title: Data Agored
-      open_data_open_data: data agored
-      open_data_copyright_license: Tudalen Hawlfraint a Thrwydded
+      open_data_1_html: |-
+        Mae OpenStreetMap yn %{open_data}: mae modd i'w ddefnyddio at unrhyw ddiben
+        ond mae rhaid rhoi cydnabyddiaeth i OpenStreetMap a'i gyfranwyr. Os
+        ydych chi'n newid neu
+        adeiladu ar y ddata mewn rhai ffyrdd, gallwch chi
+        ddosbarthu'r canlyniad
+        o dan yr un drwydded yn unig. Gweler y %{copyright_license_link} am fanylion.
+      open_data_open_data: ddata agored
+      open_data_copyright_license: Dudalen Hawlfraint a Thrwydded
       legal_title: Cyfreithiol
       legal_1_1_openstreetmap_foundation: OpenStreetMap Foundation
       legal_1_1_terms_of_use: Telerau Gwasanaeth
       legal_1_1_aup: Polisïau Defnydd Derbyniol
       legal_1_1_privacy_policy: Polisi Preifatrwydd
+      legal_2_1_html: Cysylltwch â'r %{contact_the_osmf_link} os oes gennych chi gwestiynau
+        am drwydded, hawlfraint neu gwestiynau cyfreithiol eraill.
       legal_2_1_contact_the_osmf: cysylltwch â'r OSMF
       legal_2_2_registered_trademarks: nodau masnach cofrestredig yr OSMF
       partners_title: Partneriaid
@@ -1721,6 +1873,7 @@ cy:
       legal_babble:
         title_html: Hawlfraint a Thrwydded
         introduction_1_open_data: data agored
+        introduction_1_odc_odbl: Open Data Commons Open Database License
         introduction_1_osm_foundation: OpenStreetMap Foundation
         introduction_2_html: |-
           Rydych yn rhydd i gopïo, dosbarthu, trosglwyddo ac addasu ein data, cyn belled â'ch bod yn cydnabod OpenStreetMap a'i
@@ -1757,18 +1910,25 @@ cy:
         contributors_at_cc_by_at_with_amendments: CC BY AT gyda diwygiadau
         contributors_au_australia: Awstralia
         contributors_au_geoscape_australia: Geoscape Australia
+        contributors_au_cc_licence: Trwydded Creative Commons Attribution 4.0 International
+          (CC BY 4.0)
         contributors_ca_canada: Canada
         contributors_cz_czechia: Gweriniaeth Tsiec
         contributors_cz_cc_licence: Creative Commons Attribution 4.0 International
           licence (CC BY 4.0)
         contributors_fi_finland: Y Ffindir
         contributors_fi_nlsfi_license: Trwydded NLSFI
+        contributors_fr_credit_html: '%{france}: Cynhwysir data gan Direction Générale
+          des Impôts.'
         contributors_fr_france: Ffrainc
+        contributors_nl_credit_html: '%{netherlands}: Cynhwysir data &copy; AND, 2007
+          (%{and_link})'
         contributors_nl_netherlands: Iseldiroedd
         contributors_nz_new_zealand: Seland Newydd
         contributors_nz_linz_data_service: Gwasanaeth Data LINZ
         contributors_nz_cc_by: CC BY 4.0
         contributors_rs_serbia: Serbia
+        contributors_rs_open_data_portal: National Open Data Portal
         contributors_si_slovenia: Slofenia
         contributors_si_mkgp: Gweinyddiaeth Amaethyddiaeth, Coedwigaeth a Bwyd
         contributors_es_spain: Sbaen
@@ -1780,6 +1940,8 @@ cy:
         contributors_gb_united_kingdom: Y Deyrnas Unedig
         contributors_2_contributors_page: Tudalen gyfranwyr
         infringement_title_html: Torri hawlfraint
+        infringement_2_1_takedown_procedure: gweithdrefn tynnu i lawr
+        infringement_2_1_online_filing_page: tudalen ffeilio ar-lein
         trademarks_title: Nodau Masnach
         trademarks_1_1_trademark_policy: Polisi Nod Masnach
     index:
@@ -1796,13 +1958,9 @@ cy:
       id_not_configured: iD heb ei ffurfweddu
     export:
       title: Allforio
-      area_to_export: Ardal i'w Hallforio
       manually_select: Dewiswch ardal wahanol â llaw
-      format_to_export: Fformatiwch i'w Hallforio
-      osm_xml_data: Data XML OpenStreetMap
-      map_image: Delwedd y Map (dangoser yr haen safonol)
-      embeddable_html: Mewnosod HTML
       licence: Trwydded
+      licence_details_html: Trwyddedir data OpenStreetMap o dan y %{odbl_link} (ODbL).
       odbl: Open Data Commons Open Database License
       too_large:
         advice: 'Os yw''r allforio''n methu, ystyriwch un o''r canlynol:'
@@ -1810,19 +1968,11 @@ cy:
           title: Planet OSM
         overpass:
           title: Overpass API
+        geofabrik:
+          title: Lawrlwythiadau Geofabrik
         other:
           title: Ffynonellau eraill
           description: Ffynonellau ychwanegol a nodir ar wici OpenStreetMap
-      options: Dewisiadau
-      format: Fformat
-      scale: Graddfa
-      max: uchafswm
-      image_size: Maint y ddelwedd
-      zoom: Chwyddo
-      add_marker: Ychwanegwch bin ar y map
-      latitude: 'Lledred:'
-      longitude: 'Hydred:'
-      output: Allbwn
       export_button: Allforio
     fixthemap:
       title: Adrodd am broblem / Cywiro map
@@ -1842,12 +1992,11 @@ cy:
       beginners_guide:
         title: Llawlyfr Dechreuwyr
         description: Canllaw'r gymuned i ddechreuwyr
-      help:
-        title: Fforwm Cymorth
-      mailing_lists:
-        title: Rhestr Gohebiaeth
       community:
-        title: Fforwm Cymunedol
+        title: Fforwm Cymorth a Chymuned
+        description: Dyma'r lle i chwilio am gymorth a sgwrsio am OpenStreetMap.
+      mailing_lists:
+        title: Rhestrau Post
       irc:
         title: IRC
       switch2osm:
@@ -1863,6 +2012,7 @@ cy:
     any_questions:
       title: Unrhyw gwestiynau?
       get_help_here: Cael cymorth yma
+      welcome_mat: Edrychwch ar y Mat Croeso
     sidebar:
       search_results: Canlyniadau Chwilio
       close: Cau
@@ -1886,6 +2036,7 @@ cy:
           primary: Priffordd
           secondary: Ffordd eilaidd
           unclassified: Ffordd annosbarthedig
+          pedestrian: Llwybr cerddwyr
           track: Trac
           bridleway: Llwybr ceffylau
           cycleway: Llwybr beiciau
@@ -1894,57 +2045,69 @@ cy:
           cycleway_local: Llwybr beiciau lleol
           footway: Troedffordd
           rail: Rheilffordd
+          train: Trên
           subway: Trenau tanddaear
-          tram:
-          - Rheilffordd ysgafn
-          - dram
-          cable:
-          - Car cebl
-          - lifft cadair
-          runway:
-          - Llwybr glanio
-          - thacsiffordd maes awyr
-          apron:
-          - Llain
-          - therminws maes awyr
+          ferry: Fferi
+          light_rail: Rheilffordd ysgafn
+          tram: Tram
+          trolleybus: Bws Drydan
+          bus: Bws
+          cable_car: Car cebl
+          chair_lift: Cadair godi
+          runway: Llwybr glanio
+          taxiway: Tacsiffordd
+          apron: Llain
           admin: Ffin gweinyddol
+          capital: Prifddinas
+          city: Dinas
+          orchard: Perllan
+          vineyard: Gwinllan
           forest: Coedwig
           wood: Coedlan
+          farmland: Tir Ffermio
+          grass: Gwair
+          meadow: Gwaun
+          bare_rock: Carreg Plaen
+          sand: Tywod
           golf: Maes golff
           park: Parc
+          common: Comin
+          built_up: Ardal Adeiledig
           resident: Ardal breswyl
-          common:
-          - Comin
-          - gwaun
-          - gardd
           retail: Ardal adwerthu
           industrial: Ardal ddiwydiannol
           commercial: Ardal fasnachol
           heathland: Rhos
-          lake:
-          - Llyn
-          - chronfa ddŵr
+          scrubland: Prysgoed
+          lake: Llyn
+          reservoir: Cronfa Ddŵr
+          intermittent_water: Dŵr ysbeidiol
+          glacier: Rhewlif
+          reef: Riff
+          wetland: Gwlyptir
           farm: Fferm
           brownfield: Safle tir llwyd
           cemetery: Mynwent
           allotments: Rhandiroedd
           pitch: Cae chwaraeon
           centre: Canolfan chwaraeon
+          beach: Traeth
           reserve: Gwarchodfa natur
           military: Ardal filwrol
-          school:
-          - Ysgol
-          - phrifysgol
+          school: Ysgol
+          university: Prifysgol
+          hospital: Ysbyty
           building: Adeilad arwyddocâol
           station: Gorsaf drên
-          summit:
-          - Copa
-          - chrib
+          summit: Pen Mynydd
+          peak: Copa
           tunnel: Border toredig = twnnel
           bridge: Border du = pont
           private: Mynediad preifat
           destination: Mynediad cyrchfan
           construction: Ffyrdd yn cael eu hadeiladu
+          bus_stop: Safle Bws
+          stop: Safle
           bicycle_shop: Siop feiciau
           bicycle_parking: Man parcio beiciau
           toilets: Toiledau
@@ -1971,8 +2134,8 @@ cy:
         an_editor_html: Mae %{editor} yn rhaglen neu wefan y gallwch chi ei defnyddio
           i olygu'r map.
         a_node_html: Mae %{node} yn bwynt ar y map, fel bwyty neu goeden.
-        a_way_html: Mae %{way} yn llinell neu ardal fel ffordd, nant, llyn neu adeilad.
-        a_tag_html: Mae %{tag} yn cynnwys data am nod neu ffordd, fel enw bwyty neu
+        a_way_html: Mae %{way} yn llinell neu ardal, fel ffordd, nant, llyn neu adeilad.
+        a_tag_html: Mae %{tag} yn cynnwys data am nod neu lwybr, fel enw bwyty neu
           derfyn cyflymder ffordd.
         editor: golygydd
         node: nod
@@ -1980,17 +2143,46 @@ cy:
         tag: tag
       rules:
         title: Rheolau!
-        imports: Mewnforion
+        para_1_html: Nid oes llawer o reolau safonol ar OpenStreetMap ond rydym yn
+          disgwyl i bawb gydweithio a chyfathrebu â'r gymuned. Os ydych chi'n bwriadu
+          gwneud unrhyw weithgareddau yn wahanol i olygu â llaw, darllenwch a dilynwch
+          y canllawiau ar %{imports_link} a %{automated_edits_link}.
+        imports: Fewnforio
         automated_edits: Golygiadau Awtomatig
       start_mapping: Dechrau Mapio
+      continue_authorization: Parhau Awdurdodi
       add_a_note:
         title: Dim amser i olygu? Ychwanegwch nodyn!
+        para_1: Os ydych chi eisiau trwsio rhywbeth bach ond nad oes amser i gofrestru
+          a dysgu sut i olygu, mae'n mor hawdd ychwanegu nodyn.
+        para_2_html: |-
+          Ewch i'r %{map_link} a chliciwch ar yr eicon nodyn: %{note_icon}.
+          Bydd hyn yn dangos marciwr ar y map, a gallwch ei symud drwy lusgo.
+          Ysgrifennwch eich neges a chliciwch gadw, a bydd mapwyr eraill yn gweithio arni.
         the_map: map
     communities:
       title: Cymunedau
+      lede_text: |-
+        Mae pobl ym mhob cwr o'r byd yn cyfrannu at neu'n ddefnyddio OpenStreetMap.
+        Er bod llawer yn cymryd rhan fel unigolion, mae rhai eraill wedi creu cymunedau.
+        Ceir grwpiau gwahanol sy'n cynrychioli trefi bach neu ardaloedd aml-wlad mawr.
+        Gall grwpiau fod yn ffurfiol neu'n anffurfiol.
+      local_chapters:
+        title: Siapteri Lleol
+        about_text: Mae Siapteri Lleol yn grwpiau ar lefel gwlad neu ranbarth sydd
+          wedi cymryd y cam ffurfiol o sefydlu cyrff cyfreithiol nid-er-elw. Maen
+          nhw'n cynrychioli map a mapwyr yr ardal wrth ddelio â llywodraeth leol,
+          busnes, a chyfryngau. Maen nhw hefyd wedi ffurfio cysylltiad â'r OpenStreetMap
+          Foundation (OSMF), gan roi dolen iddynt i'r corff llywodraethu cyfreithiol
+          a hawlfraint.
+        list_text: 'Mae''r cymunedau canlynol wedi''u sefydlu''n ffurfiol fel Siapteri
+          Lleol:'
       other_groups:
         title: Grwpiau Eraill
-        communities_wiki: Tudalen wici cymunedau
+        other_groups_html: |-
+          Nid oes rhaid sefydlu grŵp ffurfiol yn yr un modd â'r Siapteri Lleol.
+          Mae llawer o grwpiau llwyddiannus yn bodoli fel grwpiau anffurfiol neu fel grŵp cymunedol. Gall unrhyw un ddechrau neu ymuno â grwp. Darllenwch fwy ar y %{communities_wiki_link}.
+        communities_wiki: dudalen wici Cymunedau
   traces:
     new:
       upload_trace: Uwchlwytho Arllwybr GPS
@@ -2064,14 +2256,21 @@ cy:
       my_traces: Fy Arllwybrau
       traces_from: Arllwybrau Cyhoeddus gan %{user}
       remove_tag_filter: Dileu Hidlydd Tagiau
+    offline:
+      heading: Storio GPX All-lein
+    georss:
+      title: Arllwybrau GPS OpenStreetMap
+    description:
+      description_without_count: Ffeil GPX gan %{user}
   application:
     require_admin:
       not_an_admin: Mae rhaid ichi fod yn weinyddwr i gyflawni'r weithred honno.
     settings_menu:
       account_settings: Gosodiadau Cyfrif
       oauth1_settings: Gosodiadau OAuth 1
-      oauth2_applications: Ceisiadau OAuth 2
+      oauth2_applications: Apiau OAuth 2
       oauth2_authorizations: Awdurdodiadau OAuth 2
+      muted_users: Defnyddwyr ag Anwybyddwyd
   oauth:
     authorize:
       title: Awdurdodi mynediad i'ch cyfrif
@@ -2093,21 +2292,24 @@ cy:
       denied: Rydych wedi gwrthod mynediad i'ch cyfrif gan y rhaglen %{app_name}.
       invalid: Nid yw'r tocyn awdurdodiad yn ddilys.
     revoke:
-      flash: Rydych wedi diddymu'r tocyn ar gyfer %{application}.
+      flash: Rydych chi wedi dirymu'r tocyn ar gyfer %{application}.
     scopes:
       openid: Mewngofnodi ag OpenStreetMap
       read_prefs: Darllen dewisiadau defnyddwyr
       write_prefs: Addasu dewisiadau defnyddwyr
       write_api: Golygu'r map
+      read_gpx: Darllen arllwybrau GPS preifat
       write_gpx: Uwchlwytho arllwybrau GPS
       write_notes: Addasu nodiadau
+      write_redactions: Gorchuddio data map
       read_email: Darllen cyfeiriad e-bost defnyddwyr
       skip_authorization: Cymeradwyo cais yn awtomatig
   oauth_clients:
     new:
-      title: Cofrestru rhaglen newydd
+      title: Cofrestru ap newydd
+      disabled: Ni ellir cofrestru apiau OAuth 1 bellach
     edit:
-      title: Golygu'ch rhaglen
+      title: Golygu eich ap
     show:
       title: Manylion OAuth ar gyfer %{app_name}
       key: 'Allwedd Defnyddiwr:'
@@ -2120,14 +2322,17 @@ cy:
       confirm: Ydych chi'n siŵr?
     index:
       title: Fy Manylion OAuth
+      my_tokens: Fy Apiau Awdurdodedig
       application: Enw'r Ap
       issued_at: Dyddiad awdurdodi
       revoke: Dirymu!
       my_apps: Fy Apiau Cleient
       oauth: OAuth
+      register_new: Cofrestru eich ap
   oauth2_applications:
     index:
       title: Fy Apiau Cleient
+      new: Cofrestru ap newydd
       name: Enw
       permissions: Caniatâd
     application:
@@ -2145,14 +2350,22 @@ cy:
       client_id: ID Cleient
       client_secret: Cyfrinach Cleient
       permissions: Caniatadau
+      redirect_uris: Ailgyfeirio URIs
   oauth2_authorizations:
     new:
       authorize: Awdurdodi
       deny: Gwrthod
+    error:
+      title: Digwyddodd gwall
+    show:
+      title: Cod awdurdodi
   oauth2_authorized_applications:
     index:
+      title: Fy Apiau Awdurdodedig
       application: Ap
       permissions: Caniatadau
+    application:
+      revoke: Dirymu Mynediad
   users:
     new:
       title: Cofrestru
@@ -2161,6 +2374,7 @@ cy:
         header: Rhydd ac agored
       display name description: Eich enw defnyddiwr cyhoeddus. Gallwch newid hyn yn
         nes ymlaen yn eich dewisiadau.
+      external auth: 'Dilysu Trydydd Parti:'
       use external auth: Fel arall, defnyddiwch drydydd parti i fewngofnodi
       continue: Cofrestru
       terms accepted: Diolch am dderbyn telerau newydd cyfranwyr!
@@ -2199,6 +2413,8 @@ cy:
       my_dashboard: Dangosfwrdd
       blocks on me: Blociau arnaf i
       blocks by me: Blociau gennyf i
+      create_mute: Anwybyddu'r Defnyddiwr hwn
+      destroy_mute: Dad-anwybyddu'r Defnyddiwr hwn
       edit_profile: Golygu Proffil
       send message: Anfon Neges
       diary: Dyddiadur
@@ -2212,7 +2428,6 @@ cy:
       ct status: 'Telerau cyfrannwr:'
       ct undecided: Heb Benderfynu
       ct declined: Wedi Gwrthod
-      latest edit: 'Golygiad diweddaraf (%{ago}):'
       email address: 'Cyfeiriad ebost:'
       created from: 'Crëwyd o:'
       status: 'Statws:'
@@ -2220,8 +2435,18 @@ cy:
       role:
         administrator: Mae'r defnyddiwr hwn yn weinyddwr.
         moderator: Mae'r defnyddiwr hwn yn gymedrolwr.
+        importer: Mae'r defnyddiwr hwn yn fewnforiwr
+        grant:
+          administrator: Rhoi statws gweinyddwr
+          moderator: Rhoi statws cymedrolwr
+          importer: Rhoi statws mewnforiwr
+        revoke:
+          administrator: Tynnu statws gweinyddwr
+          moderator: Tynnu statws cymedrolwr
+          importer: Tynnu statws mewnforiwr
       block_history: Blociau Gweithredol
       moderator_history: Blociau a roddwyd
+      revoke_all_blocks: Dirymu pob bloc
       comments: Sylwadau
       create_block: Rhwystro'r Defnyddiwr hwn
       activate_user: Gwneud y cyfri'n fyw
@@ -2237,6 +2462,17 @@ cy:
     index:
       title: Defnyddwyr
       heading: Defnyddwyr
+      showing:
+        zero: Tudalen %{page} (%{first_item} o %{items})
+        one: Tudalen %{page} (%{first_item} o %{items})
+        two: Tudalen %{page} (%{first_item}-%{last_item} o %{items})
+        few: Tudalen %{page} (%{first_item}-%{last_item} o %{items})
+        many: Tudalen %{page} (%{first_item}-%{last_item} o %{items})
+        other: Tudalen %{page} (%{first_item}-%{last_item} o %{items})
+      summary_html: Crëwyd %{name} o %{ip_address} ar %{date}
+      summary_no_ip_html: '%{name} wedi''i greu ar %{date}'
+      confirm: Cadarnhau Defnyddwyr Dewisiedig
+      hide: Cuddio Defnyddwyr Dewisiedig
     suspended:
       title: Cyfrif wedi'i atal
       heading: Cyfrif wedi'i atal
@@ -2245,6 +2481,7 @@ cy:
         awtomatig oherwydd gweithgarwch amheus.
     auth_failure:
       no_authorization_code: Dim cod awdurdodi
+      invalid_scope: Sgop annilys
   user_role:
     grant:
       confirm: Cadarnhau
@@ -2270,6 +2507,8 @@ cy:
       empty: Dim blociau eto.
     revoke:
       revoke: Dad-flocio!
+    revoke_all:
+      revoke: Dad-flocio!
     helper:
       time_future_html: Yn dod i ben mewn %{time}.
       time_past_html: Wedi dod i ben %{time} yn ôl.
@@ -2340,9 +2579,24 @@ cy:
       showing_page: Tudalen %{page}
       next: Nesaf »
       previous: « Blaenorol
+  user_mutes:
+    index:
+      table:
+        thead:
+          muted_user: Defnyddiwr ag Anwybyddwyd
+          actions: Gweithredoedd
+        tbody:
+          unmute: Dad-anwybyddu
+          send_message: Anfon neges
+    create:
+      notice: Rydych chi wedi anwybyddu %{name}.
+    destroy:
+      notice: Rydych chi wedi dad-anwybyddu %{name}.
   notes:
     index:
+      title: Nodiadau ag agorwyd neu y gwnaed sylw arnynt gan %{user}
       heading: Nodiadau %{user}
+      subheading_html: Nodiadau ag %{submitted} neu y %{commented} arnynt gan %{user}
       subheading_submitted: cyflwynwyd
       subheading_commented: rhoddwyd sylw
       no_notes: Dim nodiadau
@@ -2374,12 +2628,13 @@ cy:
       reactivate: Ailysgogi
       comment_and_resolve: Sylw a Datrys
       comment: Sylw
+      log_in_to_comment: Mewngofnodwch i ysgrifennu sylw ar y nodyn hwn
       report_link_html: Os yw'r nodyn hwn yn cynnwys gwybodaeth sensitif sydd angen
-        ei ddileu, gallwch chi %{link}.
+        ei dileu, gallwch chi %{link}.
       other_problems_resolve: Ar gyfer pob problem arall gyda'r nodyn, dylech chi
         ei ddatrys gyda sylw perthnasol.
-      other_problems_resolved: Ar gyfer pob problem arall, mae datrys yn ddigon.
-      disappear_date_html: Bydd y nodyn hwn yn diflannu o'r map o fewn %{disappear_in}.
+      other_problems_resolved: Ar gyfer pob problem arall, mae dim ond datrys yn ddigon.
+      disappear_date_html: Bydd y nodyn hwn yn diflannu o'r map mewn %{disappear_in}.
     new:
       title: Nodyn Newydd
       intro: Ydych chi wedi sylwi ar gamgymeriad neu rywbeth sydd ar goll? Rhowch
@@ -2407,6 +2662,7 @@ cy:
       short_url: URL Byr
       include_marker: Cynnwys marciwr
       center_marker: Canoli'r map ar y marciwr
+      view_larger_map: Gweld Map Mawr
     embed:
       report_problem: Adrodd am broblem
     key:
@@ -2422,6 +2678,7 @@ cy:
         standard: Safonol
         cycle_map: Map Beicio
         transport_map: Map Trafnidiaeth
+        tracestracktop_topo: Tracestrack Topo
         hot: Dyngarol
       layers:
         header: Haenau Map
@@ -2437,8 +2694,6 @@ cy:
       osm_france: OpenStreetMap Ffrainc
       thunderforest_credit: Teils trwy garedigrwydd %{thunderforest_link}
       andy_allan: Andy Allan
-      opnvkarte_credit: Teils trwy garedigrwydd %{memomaps_link}
-      memomaps: MeMoMaps
       tracestrack_credit: Teils trwy garedigrwydd %{tracestrack_link}
       hotosm_credit: Arddull teils gan %{hotosm_link} a gynhelir gan %{osm_france_link}
       hotosm_name: Tîm Dyngarol OpenStreetMap
@@ -2459,6 +2714,7 @@ cy:
         hide_comment: cuddio
         unhide_comment: datguddio
     directions:
+      ascend: Esgyn
       engines:
         fossgis_osrm_bike: Beic (OSRM)
         fossgis_osrm_car: Car (OSRM)
@@ -2469,20 +2725,35 @@ cy:
         fossgis_valhalla_bicycle: Beic (Valhalla)
         fossgis_valhalla_car: Car (Valhalla)
         fossgis_valhalla_foot: Troed (Valhalla)
+      descend: Disgyn
       directions: Cyfeiriadau
       distance: Pellter
       distance_m: '%{distance}m'
       distance_km: '%{distance}km'
+      errors:
+        no_place: Ymddiheuriadau - ni ellir canfod '%{place}'.
       instructions:
         continue_without_exit: Parhau ar %{name}
         slight_right_without_exit: Ychydig i'r dde i %{name}
         offramp_right: Cymerwch y ramp ar y dde
         offramp_right_with_exit: Cymerwch allanfa %{exit} ar y dde
         offramp_right_with_exit_name: Cymerwch allanfa %{exit} ar y dde i %{name}
+        turn_right_without_exit: Trowch i'r dde ar %{name}
+        sharp_right_without_exit: Siarp i'r dde ar %{name}
+        uturn_without_exit: Tro pedol ar hyd %{name}
+        sharp_left_without_exit: Siarp i'r chwith ar %{name}
+        turn_left_without_exit: Trowch i'r chwith ar %{name}
+        offramp_left: Cymerwch y ramp ar y chwith
+        merge_left_without_exit: Cyfuno i'r chwith ar %{name}
         via_point_without_exit: (trwy bwynt)
         follow_without_exit: Dilynwch %{name}
+        leave_roundabout_without_exit: Gadael cylchfan - %{name}
+        stay_roundabout_without_exit: Aros ar gylchfan - %{name}
         start_without_exit: Dechreuwch ar %{name}
         destination_without_exit: Wedi cyrraedd cyrchfan
+        against_oneway_without_exit: Mynd yn erbyn unffordd ar %{name}
+        end_oneway_without_exit: Diwedd unffordd ar %{name}
+        exit_roundabout: Gadael y gylchfan i %{name}
         unnamed: ffordd heb enw
         courtesy: Cyfarwyddiadau trwy garedigrwydd %{link}
         exit_counts:
index d38eb68dc62c1841291c0f80ccc2ec28ab8ae3ce..82d1f61b2b9e13a5534ab35491ce6061e745df04 100644 (file)
@@ -35,6 +35,7 @@
 # Author: Saederup92
 # Author: The real emj
 # Author: Winbladh
+# Author: Zakawer2
 ---
 da:
   time:
@@ -73,6 +74,10 @@ da:
       messages:
         invalid_email_address: ser ikke ud til at være en gyldig e-mailadresse
         email_address_not_routable: kan ikke rutes
+        display_name_is_user_n: kan ikke være user_n medmindre n er dit bruger-id
+      models:
+        user_mute:
+          is_already_muted: er allerede gjort stille
     models:
       acl: Adgangskontrolliste
       changeset: Ændringssæt
@@ -132,7 +137,7 @@ da:
         language_code: Sprog
       doorkeeper/application:
         name: Navn
-        redirect_uri: Omdirigerings-URI:jer
+        redirect_uri: Omdirigerings-URI'er
         confidential: Fortrolig applikation?
         scopes: Tilladelser
       friend:
@@ -243,7 +248,6 @@ da:
   auth:
     providers:
       none: Ingen
-      openid: OpenID
       google: Google
       facebook: Facebook
       microsoft: Microsoft
@@ -297,6 +301,8 @@ da:
         retain_changeset_discussions: Hvis du har bidraget til diskussioner vedrørende
           rettesæt, vil disse blive gemt.
         retain_email: Din email-adresse vil blive gemt.
+        recent_editing_html: Da du har redigeret for nylig, kan din konto i øjeblikket
+          ikke slettes. Sletning vil være muligt om %{time}.
         confirm_delete: Er du sikker?
         cancel: Annullér
   accounts:
@@ -377,14 +383,10 @@ da:
       way_paginated: Veje (%{x}-%{y} af %{count})
       relation: Relationer (%{count})
       relation_paginated: Relationer (%{x}-%{y} af %{count})
-      comment: Kommentarer (%{count})
       hidden_comment_by_html: Skjult kommentar fra %{user} %{time_ago}
       comment_by_html: Kommentar fra %{user} %{time_ago}
       changesetxml: XML for ændringssæt
       osmchangexml: XML for osmChange
-      feed:
-        title: Ændringssæt %{id}
-        title_comment: Ændringssæt %{id} - %{comment}
       join_discussion: Log på for at deltage i diskussionen
       discussion: Diskussion
       still_open: Ændringssæt er stadig åben - diskussion vil åbne når ændringssættet
@@ -466,6 +468,15 @@ da:
       introduction: Klik på kortet for at finde kortobjekter i nærheden.
       nearby: Kortobjekter i nærheden
       enclosing: Omgivende kortobjekter
+  old_nodes:
+    not_found:
+      sorry: 'Beklager, node #%{id} version %{version} kunne ikke findes.'
+  old_ways:
+    not_found:
+      sorry: 'Beklager, vej #%{id} version %{version} kunne ikke findes.'
+  old_relations:
+    not_found:
+      sorry: 'Beklager, relation #%{id} version %{version} kunne ikke findes.'
   changesets:
     changeset_paging_nav:
       showing_page: Side %{page}
@@ -494,6 +505,9 @@ da:
       no_more_area: Ikke flere ændringssæt i dette område.
       no_more_user: Ikke flere ændringssæt af denne bruger.
       load_more: Indlæs mere
+      feed:
+        title: Ændringssæt %{id}
+        title_comment: Ændringssæt %{id} - %{comment}
     timeout:
       sorry: Desværre tog det for lang tid at indlæse den liste af ændringssæt du
         har bedt om.
@@ -513,6 +527,7 @@ da:
     contact:
       km away: '%{count}km væk'
       m away: '%{count}m væk'
+      latest_edit_html: 'Seneste ændring (%{ago}):'
     popup:
       your location: Din position
       nearby mapper: Bruger i nærheden
@@ -1486,9 +1501,9 @@ da:
         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}
+      report_created_at_html: Rapporteret første gang %{datetime}
+      last_resolved_at_html: Sidst løst %{datetime}
+      last_updated_at_html: Sidst opdateret %{datetime} af %{displayname}
       resolve: Løs
       ignore: Ignorér
       reopen: Genåbn
@@ -1648,6 +1663,8 @@ da:
       loaded:
         one: indlæst med %{trace_points} ud af %{count} muligt punkt.
         other: indlæst med %{trace_points} ud af %{count} mulige punkter.
+      all_your_traces_html: Alle dine succesfuldt overførte GPX-spor kan findes på
+        %{url}.
       subject: '[OpenStreetMap] GPX-importering lykkedes'
     signup_confirm:
       subject: '[OpenStreetMap] Velkommen til OpenStreetMap'
@@ -1769,8 +1786,6 @@ da:
   messages:
     inbox:
       title: Indbakke
-      my_inbox: Min indbakke
-      my_outbox: Min udbakke
       messages: Du har %{new_messages} og %{old_messages}
       new_messages:
         one: '%{count} nye besked'
@@ -1778,17 +1793,21 @@ da:
       old_messages:
         one: '%{count} gammel besked'
         other: '%{count} gamle beskeder'
-      from: Fra
-      subject: Emne
-      date: Dato
       no_messages_yet_html: Du har ingen beskeder endnu. Hvorfor ikke komme i kontakt
         med nogle af de %{people_mapping_nearby_link}?
       people_mapping_nearby: folk som kortlægger i nærheden
+    messages_table:
+      from: Fra
+      to: Til
+      subject: Emne
+      date: Dato
+      actions: Handlinger
     message_summary:
       unread_button: Marker som ulæst
       read_button: Marker som læst
       reply_button: Svar
       destroy_button: Slet
+      unmute_button: Flyt til Indbakke
     new:
       title: Send besked
       send_message_to_html: Send en ny besked til %{name}
@@ -1803,17 +1822,18 @@ da:
       body: Beklager, der er ingen besked med det id.
     outbox:
       title: Udbakke
-      my_inbox: Min indbakke
-      my_outbox: Min udbakke
+      actions: Handlinger
       messages:
         one: Du har %{count} sendt besked
         other: Du har %{count} sendte beskeder
-      to: Til
-      subject: Emne
-      date: Dato
       no_sent_messages_html: Du har ingen sendte beskeder endnu. Hvorfor ikke komme
         i kontakt med nogle af de %{people_mapping_nearby_link}?
       people_mapping_nearby: folk som kortlægger i nærheden
+    muted:
+      title: Stillegjorte beskeder
+      messages:
+        one: '%{count} stillegjort besked'
+        other: Du har  %{count} stillegjorte beskeder
     reply:
       wrong_user: Du er logget på som '%{user}', men den besked du har bedt om at
         svare på blev ikke sendt til den bruger. Log venligst på som den korrekte
@@ -1829,28 +1849,39 @@ da:
         den korrekte bruger for at svare.
     sent_message_summary:
       destroy_button: Slet
+    heading:
+      my_inbox: Min indbakke
+      my_outbox: Min udbakke
+      muted_messages: Stillegjorte beskeder
     mark:
       as_read: Besked markeret som læst
       as_unread: Besked markeret som ulæst
+    unmute:
+      notice: Beskeden er flyttet til Indbakke
+      error: Beskeden kunne ikke flyttes til Indbakke.
     destroy:
       destroyed: Besked slettet
   passwords:
-    lost_password:
+    new:
       title: Glemt adgangskode
       heading: Glemt adgangskode?
-      email address: 'E-mailadresse:'
+      email address: E-mailadresse
       new password button: Nulstil adgangskode
       help_text: Indtast e-mailadressen du brugte da du oprettede kontoen. Vi sender
         et link til den som du kan bruge til at nulstille din adgangskode.
+    create:
       notice email on way: Synd du har glemt den, men en e-mail er på vej så du kan
         snart indstille en ny.
       notice email cannot find: Kunne ikke finde den e-mailadresse, beklager.
-    reset_password:
+    edit:
       title: Nulstil adgangskode
       heading: Nulstil adgangskode for %{user}
       reset: Nulstil adgangskode
-      flash changed: Din adgangskode er ændret.
       flash token bad: Kunne ikke finde denne nøgle, prøv at kontrollere URL'en?
+    update:
+      flash changed: Din adgangskode er ændret.
+      flash token bad: Fandt ikke den der nøgle. Kunne du måske prøve på at tjekke
+        URL'en?
   preferences:
     show:
       title: Mine præferencer
@@ -1894,9 +1925,8 @@ da:
     new:
       title: Log på
       heading: Log på
-      email or username: 'E-mailadresse eller brugernavn:'
-      password: 'Adgangskode:'
-      openid_html: '%{logo} OpenID:'
+      email or username: E-mailadresse eller brugernavn
+      password: Adgangskode
       remember: Husk mig
       lost password link: Glemt din adgangskode?
       login_button: Log på
@@ -1955,6 +1985,7 @@ da:
       image: Billede
       alt: Alt-tekst
       url: URL
+      codeblock: Kodeblok
     richtext_field:
       edit: Rediger
       preview: Forhåndsvisning
@@ -2092,6 +2123,12 @@ da:
           %{canada}: Indeholder data fra GeoBase&reg;, GeoGratis (&copy; Department of Natural Resources Canada), CanVec (&copy; Department of Natural
           Resources Canada) og StatCan (Geography Division, Statistics Canada).
         contributors_ca_canada: Canada
+        contributors_cz_credit_html: |-
+          %{czechia}: Indeholder data fra State Administration of Land Surveying
+          and Cadastre licenseret under %{cc_licence_link}
+        contributors_cz_czechia: Tjekkiet
+        contributors_cz_cc_licence: Creative Commons Kreditering 4.0 International
+          licens (CC BY 4.0)
         contributors_fi_credit_html: '%{finland}: Indeholder data fra National Land
           Survey af Finlands topografiske database og andre datasæt under %{nlsfi_license_link}.'
         contributors_fi_finland: Finland
@@ -2178,12 +2215,7 @@ da:
         for denne funktion.
     export:
       title: Eksportér
-      area_to_export: Område som skal eksporteres
       manually_select: Vælg et andet område manuelt
-      format_to_export: Format for eksport
-      osm_xml_data: OpenStreetMap XML-data
-      map_image: Kort billede (viser standard lag)
-      embeddable_html: HTML der kan indlejres
       licence: Licens
       licence_details_html: OpenStreetMap-data er licenseret under %{odbl_link} (ODbL).
       odbl: Open Data Commons Open Database License
@@ -2207,17 +2239,6 @@ da:
         other:
           title: Andre kilder
           description: Yderligere kilder er anført på OpenStreetMap-wiki
-      options: Indstillinger
-      format: Format
-      scale: Skala
-      max: maks
-      image_size: Billedstørrelse
-      zoom: Zoom
-      add_marker: Tilføj en markør på kortet
-      latitude: 'Bredde:'
-      longitude: 'Længde:'
-      output: Output
-      paste_html: Indsæt HTML som skal indlejres i siden
       export_button: Eksportér
     fixthemap:
       title: Rapportér et problem / Ret kortet
@@ -2254,17 +2275,13 @@ da:
         url: https://wiki.openstreetmap.org/wiki/Da:Beginners%27_guide
         title: Hjælp for nybegyndere
         description: Hjælp for nybegyndere, som vedligeholdes af fællesskabet.
-      help:
-        title: Hjælpeforum
-        description: Stil et spørgsmål eller find et svar på OpenStreetMap's spørgsmål
-          og svar side.
+      community:
+        title: Fællesskabs-forum
+        description: Et sted for fælles diskussioner om OpenStreetMap.
       mailing_lists:
         title: Mailinglister
         description: Stil et spørgsmål eller diskuter interessante spørgsmål på en
           bred vifte af tematiske eller regionale mailinglister.
-      community:
-        title: Fællesskabs-forum
-        description: Et sted for fælles diskussioner om OpenStreetMap.
       irc:
         title: IRC
         description: Interaktiv chat på mange forskellige sprog, og om mange emner.
@@ -2318,67 +2335,83 @@ da:
           primary: Hovedvej (primærrute)
           secondary: Hovedvej (sekundærrute)
           unclassified: Anden vej
+          pedestrian: Gågade
           track: Hjulspor
           bridleway: Ridesti
           cycleway: Cykelsti
           cycleway_national: National cykelsti
           cycleway_regional: Regional cykelsti
           cycleway_local: Lokal cykelsti
+          cycleway_mtb: Mountainbikerute
           footway: Gangsti
           rail: Jernbane
+          train: Tog
           subway: Undergrundsbane
-          tram:
-          - Letbane
-          - sporvogn
-          cable:
-          - Kabelvogn
-          - stolelift
-          runway:
-          - Landingsbane
-          - taxibane
-          apron:
-          - Lufthavnsforplads
-          - terminal
+          ferry: Færge
+          light_rail: Letbane
+          tram: Sporvogn
+          trolleybus: Trolleybus
+          bus: Bus
+          cable_car: Kabelvogn
+          chair_lift: Stolelift
+          runway: Landingsbane
+          taxiway: Rullevej
+          apron: Lufthavnsforplads
           admin: Administrativ grænse
+          capital: Hovedstad
+          city: By
+          orchard: Plantage
+          vineyard: Vingård
           forest: Skov
-          wood: Skov
+          wood: Træ
+          farmland: Landbrugsjord
+          grass: Græs
+          meadow: Eng
+          bare_rock: Blottet klippe
+          sand: Sand
           golf: Golfbane
           park: Park
+          common: Fælled
+          built_up: Bebygget område
           resident: Boligområde
-          common:
-          - Fælled
-          - eng
-          - have
           retail: Detailhandelsområde
           industrial: Industriområde
           commercial: Erhvervsområde
           heathland: Hede
-          lake:
-          - Sø
-          - reservoir
+          scrubland: Buskads
+          lake: Sø
+          reservoir: Reservoir
+          intermittent_water: Periodisk vandmasse
+          glacier: Gletsjer
+          reef: Rev
+          wetland: Vådområde
           farm: Gård
           brownfield: Tidligere industriområde
           cemetery: Begravelsesplads
           allotments: Kolonihaver
           pitch: Sportsbane
           centre: Sportscenter
+          beach: Strand
           reserve: Naturreservat
           military: Militært område
-          school:
-          - Skole
-          - universitet
+          school: Skole
+          university: Universitet
+          hospital: Sygehus
           building: Vigtig bygning
           station: Togstation
-          summit:
-          - Bjergtop
-          - højdepunkt
+          summit: Bjergtop
+          peak: Højdepunkt
           tunnel: Stiplet kant = tunnel
           bridge: Sort kant = bro
           private: Privat adgang
           destination: Ærindekørsel tilladt
           construction: Veje under konstruktion
+          bus_stop: Busstop
+          stop: Stop
           bicycle_shop: Cykelhandler
+          bicycle_rental: Cykeludlejning
           bicycle_parking: Cykelparkering
+          bicycle_parking_small: Mindre cykelparkering
           toilets: Toiletter
     welcome:
       title: Velkommen!
@@ -2421,6 +2454,7 @@ da:
         imports: Importering
         automated_edits: Automatiske Redigeringer
       start_mapping: Begynd at kortlægge
+      continue_authorization: Fortsæt autorisation
       add_a_note:
         title: Ikke tid til redigering? Tilføj en bemærkning!
         para_1: Hvis du bare vil have en lille detalje rettet, men ikke har tid til
@@ -2578,6 +2612,7 @@ da:
       oauth1_settings: OAuth 1-indstillinger
       oauth2_applications: OAuth 2-applikationer
       oauth2_authorizations: OAuth 2-autorisationer
+      muted_users: Stillegjorte Brugere
   oauth:
     authorize:
       title: Tillad adgang til din konto
@@ -2614,6 +2649,7 @@ da:
       read_gpx: Læse private GPS-spor
       write_gpx: Overføre GPS-spor
       write_notes: Ændre bemærkninger
+      write_redactions: Rediger kortdata
       read_email: Læse brugerens e-mailadresse
       skip_authorization: Godkend applikation automatisk
   oauth_clients:
@@ -2683,7 +2719,7 @@ da:
       client_secret_warning: Sørg for at gemme denne hemmelighed - den vil ikke være
         tilgængelig senere
       permissions: Tilladelser
-      redirect_uris: Omdirigerings-URI:jer
+      redirect_uris: Omdirigerings-URI'er
     not_found:
       sorry: Beklager, applikationen kunne ikke findes.
   oauth2_authorizations:
@@ -2785,6 +2821,8 @@ da:
       my_dashboard: Mit kontrolpanel
       blocks on me: Mine blokeringer
       blocks by me: Blokeringer udført af mig
+      create_mute: Stillegør denne bruger
+      destroy_mute: Fjern stillegørelse fra denne bruger
       edit_profile: Rediger profil
       send message: Send besked
       diary: Blog
@@ -2798,7 +2836,6 @@ da:
       ct status: 'Vilkår for bidragsydere:'
       ct undecided: Uafklaret
       ct declined: Afslået
-      latest edit: 'Seneste ændring (%{ago}):'
       email address: 'E-mailadresse:'
       created from: 'Oprettet fra:'
       status: 'Status:'
@@ -2806,14 +2843,18 @@ da:
       role:
         administrator: Denne bruger er en administrator
         moderator: Denne bruger er en moderator
+        importer: Denne bruger er en importør
         grant:
           administrator: Giv administrator-adgang
           moderator: Giv moderator-adgang
+          importer: Tildel adgang til at importere
         revoke:
           administrator: Fjern administrator-adgang
           moderator: Fjern moderator-adgang
+          importer: Tilbagetræk adgang til at importere
       block_history: Aktive blokeringer
       moderator_history: Uddelte blokeringer
+      revoke_all_blocks: Træk blokering tilbage
       comments: Kommentarer
       create_block: Blokér denne bruger
       activate_user: Aktivér denne bruger
@@ -2921,11 +2962,21 @@ da:
     revoke:
       title: Tilbagekalder blokering af %{block_on}
       heading_html: Tilbagekalder blokering på %{block_on} af %{block_by}
-      time_future: Denne blokering vil ende om %{time}.
-      past: Denne blokering endte %{time} og kan ikke tilbagekaldes nu.
+      time_future_html: Denne blokering vil ende om %{time}.
+      past_html: Denne blokering endte %{time} og kan ikke tilbagekaldes nu.
       confirm: Er du sikker på du vil tilbagekalde denne blokering?
       revoke: Tilbagekald!
       flash: Denne blokering er blevet tilbagekaldt.
+    revoke_all:
+      title: Træk alle blokeringer på %{block_on} tilbage
+      heading_html: Fjerner alle blokeringer på %{block_on}
+      empty: '%{name} har ingen aktive blokeringer.'
+      confirm: Er du sikker på at du vil trække %{active_blocks}?
+      active_blocks:
+        one: '%{count} aktiv blokering'
+        other: '%{count} aktive blokringer'
+      revoke: Træk tilbage!
+      flash: Alle aktive blokeringer er blevet tilbagetrukket.
     helper:
       time_future_html: Slutter om %{time}.
       until_login: Aktiv, indtil brugeren logger på.
@@ -2984,6 +3035,29 @@ da:
       showing_page: Side %{page}
       next: Næste »
       previous: « Forrige
+  user_mutes:
+    index:
+      title: Stillegjorte Brugere
+      my_muted_users: Mine stillegjorte brugere
+      you_have_muted_n_users: '{{PLURAL|one=Du har gjort %{count} bruger stille|Du
+        har gjort %{count} brugere stille.'
+      user_mute_explainer: Beskeder fra stillegjorte brugere flyttes ind i en separat
+        Indbox og du modtager ikke længere email notifikationer.
+      user_mute_admins_and_moderators: Du kan stillegøre Administratorer og Moderatorer,
+        men deres beskeder kan ikke stillegøres.
+      table:
+        thead:
+          muted_user: Stillegjort Bruger
+          actions: Handlinger
+        tbody:
+          unmute: Fjern stillegørelse
+          send_message: Din besked
+    create:
+      notice: Du stillegjorde %{name}.
+      error: '%{name} kunne ikke stillegøres. %{full_message}'
+    destroy:
+      notice: Du fjernede stillegørelsen fra %{name}
+      error: Brugeren kunne ikke stillegøres. Prøv venligst igen.
   notes:
     index:
       title: Bemærkninger indsendt eller kommenteret af %{user}
@@ -3020,6 +3094,7 @@ da:
       reactivate: Genaktiver
       comment_and_resolve: Kommentere på og løse
       comment: Kommenter
+      log_in_to_comment: Log ind for at kommentere på denne note
       report_link_html: Hvis denne bemærkning indeholder følsomme oplysninger, der
         skal fjernes, kan du %{link}.
       other_problems_resolve: For alle andre problemer med bemærkningen, bedes du
@@ -3078,12 +3153,10 @@ da:
           other: Du er indenfor %{count} fod fra dette punkt
       base:
         standard: Standard
-        cyclosm: CyclOSM
         cycle_map: Cykelkort
         transport_map: Transportkort
         tracestracktop_topo: Tracestrack Topo
         hot: Humanitær
-        opnvkarte: Offentlig transport
       layers:
         header: Kortlag
         notes: Kortbemærkninger
@@ -3098,8 +3171,6 @@ da:
       osm_france: OpenStreetMap Frankrig
       thunderforest_credit: Kortfliser stillet til rådighed af %{thunderforest_link}
       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}
       hotosm_credit: Kortflise-stil af %{hotosm_link} hostet af %{osm_france_link}
       hotosm_name: Humanitarian OpenStreetMap Team
@@ -3112,6 +3183,7 @@ da:
       map_data_zoom_in_tooltip: Zoom ind for at se kortdata
       queryfeature_tooltip: Find kortobjekter
       queryfeature_disabled_tooltip: Zoom ind for at finde kortobjekter
+      embed_html_disabled: HTML-indlejring er ikke tilgængelig for dette kortlag
     changesets:
       show:
         comment: Kommenter
index 85320c06f69de21ed344e2c49cc83b6282163115..d105238ada20cbf8c52cbb5b2482503fb83d240f 100644 (file)
@@ -16,6 +16,7 @@
 # Author: Bxalber
 # Author: Campmaster
 # Author: Candid Dauth
+# Author: Caro
 # Author: CarstenG
 # Author: ChrisiPK
 # Author: ChristianSW
@@ -59,6 +60,7 @@
 # Author: Kerosin
 # Author: Kghbln
 # Author: Killarnee
+# Author: KimKelting
 # Author: Kjon
 # Author: Lonvia
 # Author: MGChecker
@@ -96,7 +98,9 @@
 # Author: The Evil IP address
 # Author: ThePiscin
 # Author: Thomas Bohn
+# Author: Til
 # Author: Timonade
+# Author: Twistqj
 # Author: Umherirrender
 # Author: Unkn0wnCat
 # Author: Vrifox
@@ -143,6 +147,10 @@ de:
       messages:
         invalid_email_address: scheint keine gültige E-Mail-Adresse zu sein
         email_address_not_routable: ist nicht routingfähig
+        display_name_is_user_n: kann nicht user_n sein, es sei denn, n ist deine Benutzer-ID
+      models:
+        user_mute:
+          is_already_muted: ist bereits stummgeschaltet
     models:
       acl: Zugriffssteuerungsliste
       changeset: Änderungssatz
@@ -313,7 +321,6 @@ de:
   auth:
     providers:
       none: Keine
-      openid: OpenID
       google: Google
       facebook: Facebook
       microsoft: Microsoft
@@ -369,6 +376,8 @@ de:
         retain_changeset_discussions: Die Diskussionen über deine Änderungssätze,
           sofern vorhanden, werden beibehalten.
         retain_email: Deine E-Mail-Adresse wird beibehalten.
+        recent_editing_html: Da du dein Konto kürzlich bearbeitet hast, kann es derzeit
+          nicht gelöscht werden. Das Löschen ist in %{time} möglich.
         confirm_delete: Bist du sicher?
         cancel: Abbrechen
   accounts:
@@ -453,14 +462,10 @@ de:
       way_paginated: Wege (%{x}–%{y} von %{count})
       relation: Relationen (%{count})
       relation_paginated: Relationen (%{x}–%{y} von %{count})
-      comment: Kommentare (%{count})
       hidden_comment_by_html: Versteckter Kommentar von %{user} %{time_ago}
       comment_by_html: Kommentar von %{user} %{time_ago}
       changesetxml: Änderungssatz-XML
       osmchangexml: osmChange-XML
-      feed:
-        title: 'Änderungssatz: %{id}'
-        title_comment: Änderungssatz %{id} - %{comment}
       join_discussion: Anmelden, um mitzudiskutieren
       discussion: Diskussion
       still_open: Der Änderungssatz ist noch offen. Die Diskussion wird eröffnet,
@@ -569,6 +574,9 @@ de:
       no_more_area: Keine weiteren Änderungssätze in diesem Bereich.
       no_more_user: Keine weiteren Änderungssätze von diesem Benutzer.
       load_more: Mehr laden
+      feed:
+        title: 'Änderungssatz: %{id}'
+        title_comment: Änderungssatz %{id} - %{comment}
     timeout:
       sorry: Es hat leider zu lange gedauert, die angeforderten Änderungssätze abzurufen.
   changeset_comments:
@@ -588,6 +596,7 @@ de:
     contact:
       km away: '%{count} km entfernt'
       m away: '%{count} m entfernt'
+      latest_edit_html: 'Letzte Änderung (%{ago}):'
     popup:
       your location: Standort
       nearby mapper: Mapper in der Nähe
@@ -704,10 +713,18 @@ de:
             Konfiguration Doorkeeper::OpenidConnect.configure.auth_time_from_resource_owner.
           reauthenticate_resource_owner_not_configured: Fehler aufgrund fehlender
             Konfiguration Doorkeeper::OpenidConnect.configure.reauthenticate_resource_owner.
+          resource_owner_from_access_token_not_configured: Fehler aufgrund fehlender
+            Doorkeeper::OpenidConnect.configure.resource_owner_from_access_token-Konfiguration.
+          select_account_for_resource_owner_not_configured: Fehler aufgrund fehlender
+            Doorkeeper::OpenidConnect.configure.select_account_for_resource_owner-Konfiguration.
+          subject_not_configured: Die Generierung des ID-Tokens ist aufgrund der fehlenden
+            Konfiguration von Doorkeeper::OpenidConnect.configure.subject fehlgeschlagen.
     scopes:
       address: Physische Adresse anzeigen
       email: E-Mail-Adresse anzeigen
       openid: Account authentifizieren
+      phone: Sieh dir deine Telefonnummer an
+      profile: Sieh dir deine Profilinformationen an
   errors:
     contact:
       contact_url: https://wiki.openstreetmap.org/wiki/DE:Kommunikationskan%C3%A4le
@@ -1555,9 +1572,9 @@ de:
         one: Eine Meldung
         other: '%{count} Meldungen'
       no_reports: Keine Berichte
-      report_created_at: Zuerst gemeldet am %{datetime}
-      last_resolved_at: Zuletzt erledigt am %{datetime}
-      last_updated_at: Zuletzt aktualisiert am %{datetime} von %{displayname}
+      report_created_at_html: Zuerst gemeldet am %{datetime}
+      last_resolved_at_html: Zuletzt erledigt am %{datetime}
+      last_updated_at_html: Zuletzt aktualisiert am %{datetime} von %{displayname}
       resolve: Erledigen
       ignore: Ignorieren
       reopen: Erneut öffnen
@@ -1721,6 +1738,8 @@ de:
       loaded:
         one: mit %{trace_points} von einem möglichen Punkt erfolgreich geladen.
         other: mit %{trace_points} von %{count} möglichen Punkten erfolgreich geladen.
+      all_your_traces_html: Alle deine erfolgreich hochgeladenen GPX-Traces findest
+        du unter %{url}.
       subject: '[OpenStreetMap] GPX-Import erfolgreich'
     signup_confirm:
       subject: '[OpenStreetMap] Willkommen bei OpenStreetMap'
@@ -1849,8 +1868,6 @@ de:
   messages:
     inbox:
       title: Posteingang
-      my_inbox: Posteingang
-      my_outbox: Mein Postausgang
       messages: Du hast %{new_messages} und %{old_messages}
       new_messages:
         one: '%{count} ungelesene Nachricht'
@@ -1858,17 +1875,21 @@ de:
       old_messages:
         one: '%{count} gelesene Nachricht'
         other: '%{count} gelesene Nachrichten'
-      from: Absender
-      subject: Betreff
-      date: Datum
       no_messages_yet_html: Du hast noch keine Nachrichten. Möchtest du mit %{people_mapping_nearby_link}
         Kontakt aufnehmen?
       people_mapping_nearby: Mappern in deiner Nähe
+    messages_table:
+      from: Absender
+      to: An
+      subject: Betreff
+      date: Datum
+      actions: Aktionen
     message_summary:
       unread_button: Als ungelesen markieren
       read_button: Als gelesen markieren
       reply_button: Antworten
       destroy_button: Löschen
+      unmute_button: In den Posteingang verschieben
     new:
       title: Nachricht senden
       send_message_to_html: Eine Nachricht an %{name} senden
@@ -1883,17 +1904,18 @@ de:
       body: Leider gibt es keine Nachricht mit dieser ID.
     outbox:
       title: Gesendet
-      my_inbox: Mein Posteingang
-      my_outbox: Mein Postausgang
+      actions: Aktionen
       messages:
         one: Du hast %{count} Nachricht gesendet
         other: Du hast %{count} Nachrichten gesendet
-      to: An
-      subject: Betreff
-      date: Datum
       no_sent_messages_html: Du hast noch keine Nachrichten versendet. Möchtest du
         mit  %{people_mapping_nearby_link} Kontakt aufnehmen?
       people_mapping_nearby: Mappern in deiner Nähe
+    muted:
+      title: Stummgeschaltete Nachrichten
+      messages:
+        one: '%{count} stummgeschatete Nachricht'
+        other: '%{count} stummgeschatete Nachrichten'
     reply:
       wrong_user: Du bist angemeldet als '%{user}', aber die Nachricht, auf die du
         antworten wolltest, wurde an einen anderen Benutzer geschickt. Bitte melde
@@ -1909,13 +1931,20 @@ de:
         Lesen mit dem richtigen Benutzer an.
     sent_message_summary:
       destroy_button: Löschen
+    heading:
+      my_inbox: Posteingang
+      my_outbox: Mein Postausgang
+      muted_messages: Stummgeschaltete Nachrichten
     mark:
       as_read: Nachricht als gelesen markiert
       as_unread: Nachricht als ungelesen markiert
+    unmute:
+      notice: Die Nachricht wurde in den Posteingang verschoben
+      error: Die Nachricht konnte nicht in den Posteingang verschoben werden.
     destroy:
       destroyed: Nachricht gelöscht
   passwords:
-    lost_password:
+    new:
       title: Passwort vergessen
       heading: Passwort vergessen?
       email address: 'E-Mail-Adresse:'
@@ -1923,17 +1952,21 @@ de:
       help_text: Bitte gib deine E-Mail-Adresse ein, mit der du dich angemeldet hast.
         Wir werden dir dann einen Link schicken, mit dem du dein Passwort zurücksetzen
         kannst.
+    create:
       notice email on way: Eine E-Mail mit Hinweisen zum Zurücksetzen des Passworts
         wurde an dich versandt.
       notice email cannot find: Wir konnten die E-Mail-Adresse nicht finden. Du hast
         dich möglicherweise vertippt oder mit einer anderen E-Mail-Adresse angemeldet.
-    reset_password:
+    edit:
       title: Passwort zurücksetzen
       heading: Passwort für %{user} zurücksetzen
       reset: Passwort zurücksetzen
-      flash changed: Dein Passwort wurde geändert.
       flash token bad: Wir konnten dieses Kürzel leider nicht finden. Du hast dich
         möglicherweise vertippt oder du bist einem ungültigem Link gefolgt.
+    update:
+      flash changed: Dein Passwort wurde geändert.
+      flash token bad: Das Token konnte nicht gefunden werden, überprüfe bitte die
+        URL.
   preferences:
     show:
       title: Benutzereinstellungen
@@ -1980,7 +2013,6 @@ de:
       heading: Anmelden
       email or username: 'E-Mail-Adresse oder Benutzername:'
       password: 'Passwort:'
-      openid_html: '%{logo} OpenID:'
       remember: Anmeldedaten merken
       lost password link: Passwort vergessen?
       login_button: Anmelden
@@ -2038,6 +2070,7 @@ de:
       image: Bild
       alt: Alternativer Text
       url: URL
+      codeblock: Code-Block
     richtext_field:
       edit: Bearbeiten
       preview: Vorschau
@@ -2136,6 +2169,12 @@ de:
           anzeigst.
         credit_2_2: Mache deutlich, dass die Daten unter der Open Database-Lizenz
           verfügbar sind.
+        credit_3_html: Für den Urheberrechts-Hinweis haben wir unterschiedliche Anforderungen,
+          wie dieser angezeigt werden soll, je nachdem, wie du unsere Daten verwendest.
+          Beispielsweise gelten unterschiedliche Regeln für die Anzeige des Urheberrechtshinweises,
+          je nachdem, ob du eine durchsuchbare Karte, eine gedruckte Karte oder ein
+          statisches Bild erstellt hast. Ausführliche Informationen zu den Anforderungen
+          findest du unter %{attribution_guidelines_link}.
         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.
@@ -2145,10 +2184,13 @@ de:
           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.
+        credit_4_1_this_copyright_page: diese Copyright-Seite
         attribution_example:
           alt: Beispiel, wie man auf OpenStreetMap auf einer Webseite hinweist
           title: Namensnennung-Beispiel
         more_title_html: Weitere Informationen
+        more_1_1_html: Weitere Informationen zur Nutzung unserer Daten und zur Gutschrift
+          findest du unter %{osmf_licence_page_link}.
         more_1_1_osmf_licence_page: OSMF-Lizenzseite
         more_2_1_html: |-
           Obwohl es sich bei OpenStreetMap um offene Daten handelt, können wir keine kostenlose Karten-API für Dritte bereitstellen.
@@ -2160,6 +2202,9 @@ de:
         contributors_intro_html: 'Unsere Mitwirkenden sind tausende einzelne Menschen.
           Wir beziehen auch offen lizenzierte Daten von nationalen Kartenagenturen
           und anderen Quellen ein, darunter:'
+        contributors_at_credit_html: |-
+          %{austria}: Enthält Daten aus %{stadt_wien_link} (unter %{cc_by_link}), %{land_vorarlberg_link}
+          und dem Land Tirol (unter %{cc_by_at_with_amendments_link}).
         contributors_at_austria: Österreich
         contributors_at_stadt_wien: Stadt Wien
         contributors_at_cc_by: CC BY
@@ -2179,6 +2224,12 @@ de:
           Resources Canada) und StatCan (Geography Division,
           Statistics). Kanada).
         contributors_ca_canada: Kanada
+        contributors_cz_credit_html: |-
+          %{czechia}: Enthält Daten der staatlichen Verwaltung für Landvermessung
+          und Kataster, lizenziert unter %{cc_licence_link}
+        contributors_cz_czechia: Tschechien
+        contributors_cz_cc_licence: Creative Commons Namensnennung 4.0 Internationale
+          Lizenz (CC BY 4.0)
         contributors_fi_credit_html: |-
           %{finland}: Enthält Daten aus der
           Nationalen Landvermessung der Topografischen Datenbank Finnlands
@@ -2229,6 +2280,7 @@ de:
         contributors_2_html: Weitere Einzelheiten zu diesen und anderen Quellen, die
           zur Verbesserung von OpenStreetMap verwendet wurden, findest du unter %{contributors_page_link}
           im OpenStreetMap-Wiki.
+        contributors_2_contributors_page: Seite der Benutzers
         contributors_footer_2_html: Die Einbeziehung von Daten bei OpenStreetMap bedeutet
           nicht, dass der ursprüngliche Datenlieferant OpenStreetMap unterstützt,
           Gewährleistung dafür gibt oder die Haftung dafür übernimmt.
@@ -2237,6 +2289,10 @@ de:
           hin, dass keinesfalls Daten aus urheberrechtlich geschützten Quellen verwendet
           werden dürfen (z. B. Google Maps oder gedruckte Kartenwerke), ohne vorher
           die ausdrückliche Erlaubnis des Rechteinhabers erhalten zu haben.
+        infringement_2_1_html: Wenn du glaubst, dass urheberrechtlich geschütztes
+          Material unangemessen zur OpenStreetMap-Datenbank oder dieser Website hinzugefügt
+          wurde, lies bitte %{takedown_procedure_link} oder reiche die Beschwerde
+          direkt bei über %{online_filing_page_link} ein.
         infringement_2_1_takedown_procedure: Takedown-Verfahren
         infringement_2_1_online_filing_page: Online-Einreichungsseite
         trademarks_title: Warenzeichen
@@ -2268,12 +2324,7 @@ de:
         die für diese Funktion notwendig sind.
     export:
       title: Exportieren
-      area_to_export: Bereich für den Export
       manually_select: Einen anderen Bereich manuell auswählen
-      format_to_export: Format für den Export
-      osm_xml_data: OpenStreetMap-XML-Daten
-      map_image: Karte (zeigt die Standardebene)
-      embeddable_html: HTML zum Einbinden
       licence: Lizenz
       licence_details_html: OpenStreetMap-Daten sind unter %{odbl_link} (ODbL) lizenziert.
       odbl: Open Data Commons Open Database-Lizenz
@@ -2297,17 +2348,6 @@ de:
         other:
           title: Andere Quellen
           description: Zusätzliche Quellen sind im OpenStreetMap-Wiki gelistet
-      options: Optionen
-      format: 'Format:'
-      scale: Maßstab
-      max: max.
-      image_size: 'Bildgröße:'
-      zoom: Zoom
-      add_marker: Markierung zur Karte hinzufügen
-      latitude: 'Breitengrad:'
-      longitude: 'Längengrad:'
-      output: Ausgabe
-      paste_html: HTML zur Einbettung in eine Webseite kopieren
       export_button: Export
     fixthemap:
       title: Ein Problem melden / Die Karte korrigieren
@@ -2318,8 +2358,17 @@ de:
           explanation_html: |-
             Falls du bei unseren Kartendaten ein Problem bemerkt hast wie das Fehlen einer Straße oder deiner Adresse,
             ist der beste Weg zum Weitermachen der Beitritt zur OpenStreetMap-Gemeinschaft und das Beheben der Daten durch dich selbst.
+        add_a_note:
+          instructions_1_html: |-
+            Klicke einfach auf %{note_icon} oder das gleiche Symbol in der Kartenanzeige.
+            Dadurch wird der Karte eine Markierung hinzugefügt, die du durch Ziehen verschieben kannst. Füge deine Nachricht hinzu und klicke dann auf Speichern. Andere Mapper werden sich dann um die Untersuchung kümmern.
       other_concerns:
         title: Andere Anliegen
+        concerns_html: "Wenn du Bedenken hinsichtlich der Verwendung unserer Daten
+          oder der Inhalte hast, konsultiere bitte unsere Seite \n%{copyright_link}
+          für weitere rechtliche Informationen oder wende dich an die entsprechende
+          %{working_group_link}."
+        copyright: Copyright-Seite
         working_group: OSMF-Arbeitsgruppe
     help:
       title: Hilfe erhalten
@@ -2335,16 +2384,13 @@ de:
         url: https://wiki.openstreetmap.org/wiki/DE:Beginners%27_guide
         title: Anleitung für Anfänger
         description: Eine durch die Gemeinschaft gewartete Anleitung für Anfänger.
-      help:
-        title: Hilfe Forum
-        description: Stelle eine Frage oder suche nach Antworten auf der OSM-Fragen-und-Antworten-Seite.
+      community:
+        title: Community-Forum
+        description: Ein gemeinsamer Ort für Gespräche über OpenStreetMap.
       mailing_lists:
         title: Mailinglisten
         description: Stelle eine Frage und diskutiere interessante Sachen zu einem
           weiten Bereich von thematischen oder regionalen Mailinglisten.
-      community:
-        title: Community-Forum
-        description: Ein gemeinsamer Ort für Gespräche über OpenStreetMap.
       irc:
         title: IRC
         description: Interaktiver Chat in vielen unterschiedlichen Sprachen und zu
@@ -2367,6 +2413,9 @@ de:
         Nutzung im Browser verfügbar.
       desktop_application_html: Du kannst Potlatch von %{download_link} weiterhin
         verwenden.
+      download: Herunterladen der Desktop-Anwendung für Mac und Windows
+      id_editor_html: Alternativ kannst du deinen Standardeditor auf iD einstellen,
+        der wie zuvor Potlatch in deinem Webbrowser ausgeführt wird. %{change_preferences_link}.
       change_preferences: Einstellungen hier ändern
     any_questions:
       title: Fragen?
@@ -2399,67 +2448,83 @@ de:
           primary: Bundesstraße
           secondary: Landes-, Kreisstraße
           unclassified: Straße
+          pedestrian: Fußgängerzone
           track: Wald-, Feldweg
           bridleway: Reitweg
           cycleway: Radweg
           cycleway_national: Nationaler Radweg
           cycleway_regional: Regionaler Radweg
           cycleway_local: Lokaler Radweg
+          cycleway_mtb: Mountainbike-Route
           footway: Fußweg
           rail: Eisenbahn
+          train: Zug
           subway: U-Bahn
-          tram:
-          - Stadtbahn
-          - Straßenbahn
-          cable:
-          - Seilbahn
-          - Sessellift
-          runway:
-          - Start- und Landebahn
-          - Rollbahn
-          apron:
-          - Flughafenvorfeld
-          - Terminal
+          ferry: Fähre
+          light_rail: Stadtbahn
+          tram: Straßenbahn
+          trolleybus: Oberleitungsbus
+          bus: Bus
+          cable_car: Seilbahn
+          chair_lift: Sessellift
+          runway: Start- und Landebahn
+          taxiway: Rollbahn
+          apron: Flughafenvorfeld
           admin: Landesgrenzen, sonstige Grenzen
+          capital: Hauptstadt
+          city: Stadt
+          orchard: Obstplantage
+          vineyard: Weinberg
           forest: Wald
           wood: Wald
+          farmland: Ackerland
+          grass: Gras
+          meadow: Wiese
+          bare_rock: Nackter Fels
+          sand: Sand
           golf: Golfplatz
           park: Park
+          common: öffentliche Grünfläche (brit.)
+          built_up: Bebautes Gebiet
           resident: Wohngebiet
-          common:
-          - öffentliche Grünfläche (brit.)
-          - Wiese
-          - Garten
           retail: Einkaufszentrum
           industrial: Industriegebiet
           commercial: Gewerbegebiet
           heathland: Heide
-          lake:
-          - See
-          - Stausee
+          scrubland: Buschland
+          lake: See
+          reservoir: Reservoir
+          intermittent_water: Intermittierender Gewässer
+          glacier: Gletscher
+          reef: Riff
+          wetland: Feuchtgebiet
           farm: Landwirtschaft
           brownfield: Brachfläche
           cemetery: Friedhof
           allotments: Kleingartenanlage
           pitch: Spielfeld
           centre: Sportzentrum
+          beach: Strand
           reserve: Naturschutzgebiet
           military: Militärgebiet
-          school:
-          - Schule
-          - Universität
+          school: Schule, Universität
+          university: Universität
+          hospital: Krankenhaus
           building: Bedeutendes Gebäude
           station: Bahnhof
-          summit:
-          - Gipfel
-          - Bergspitze
+          summit: Gipfel
+          peak: Gipfel
           tunnel: Gestrichelter Rand = Tunnel
           bridge: Schwarzer Rand = Brücke
           private: Privater Zugang
           destination: Nur für Anrainer
           construction: Straßen im Bau
+          bus_stop: Bushaltestelle
+          stop: Stop
           bicycle_shop: Fahrradladen
+          bicycle_rental: Fahrradverleih
           bicycle_parking: Fahrradparkplatz
+          bicycle_parking_small: Kleiner Fahrradabstellplatz
           toilets: Toiletten
     welcome:
       title: Willkommen!
@@ -2472,19 +2537,37 @@ de:
           %{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.
+        real_and_current: real und aktuell
+        off_the_map_html: Was es %{doesnt} enthält, sind Meinungsdaten wie Bewertungen,
+          historische oder hypothetische Merkmale und Daten aus urheberrechtlich geschützten
+          Quellen. Kopiere nicht von Online- oder Papierkarten, es sei denn, du hast
+          eine Sondergenehmigung.
+        doesnt: nicht
       basic_terms:
         title: Grundbegriffe fürs Mapping
         paragraph_1: OpenStreetMap nutzt ein paar spezifische Begriffe. Hier sind
           ein paar davon, die nützlich sein dürften.
+        an_editor_html: Ein %{editor} ist ein Programm oder eine Website, mit der
+          du die Karte bearbeiten kannst.
+        a_node_html: Ein %{node} ist ein Punkt auf der Karte, wie ein einzelnes Restaurant
+          oder ein Baum.
+        a_way_html: Ein %{way} ist eine Linie oder Fläche, wie eine Straße, ein Bach,
+          ein See oder ein Gebäude.
+        a_tag_html: Ein %{tag} ist ein Datenstück über einen Knoten oder Weg, etwa
+          der Name eines Restaurants oder die Geschwindigkeitsbegrenzung einer Straße.
         editor: Bearbeiter
         node: Knoten
         way: Weg
         tag: Etikett
       rules:
         title: Regeln!
+        para_1_html: |-
+          OpenStreetMap hat nur wenige formale Regeln, aber wir erwarten von allen Teilnehmern, dass sie mit der Community zusammenarbeiten und kommunizieren. Wenn du andere Aktivitäten als die manuelle Bearbeitung in Betracht ziehst, lies und befolge bitte die Richtlinien zu
+          %{imports_link} und %{automated_edits_link}.
         imports: Importe
         automated_edits: Automatisierte Bearbeitungen
       start_mapping: Beginne mit dem Bearbeiten der Karte
+      continue_authorization: Autorisierung fortsetzen
       add_a_note:
         title: Keine Zeit? Dann füge einen Hinweis ein!
         para_1: Falls du nur eine Kleinigkeit korrigieren möchtest und dir die Zeit
@@ -2514,6 +2597,9 @@ de:
         list_text: 'Folgende Gemeinschaften sind offiziell als lokale Verbände eingetragen:'
       other_groups:
         title: Andere Gruppen
+        other_groups_html: |-
+          Es besteht keine Notwendigkeit, eine Gruppe im gleichen Umfang wie die Local Chapters offiziell zu gründen.
+          Tatsächlich existieren viele Gruppen sehr erfolgreich als informelle Zusammenkunft von Menschen oder als Community-Gruppe. Jeder kann diese gründen oder beitreten. Lies mehr im %{communities_wiki_link}.
         communities_wiki: Community-Wiki-Seite
   traces:
     visibility:
@@ -2645,6 +2731,7 @@ de:
       oauth1_settings: OAuth 1-Einstellungen
       oauth2_applications: OAuth 2-Anwendungen
       oauth2_authorizations: OAuth 2-Berechtigungen
+      muted_users: Stummgeschaltete Benutzer
   oauth:
     authorize:
       title: Zugriff auf dein Benutzerkonto autorisieren
@@ -2683,6 +2770,7 @@ de:
       read_gpx: Private GPS-Tracks lesen
       write_gpx: GPS-Tracks hochladen
       write_notes: Notizen bearbeiten
+      write_redactions: Kartendaten redigieren
       read_email: Lesen der Benutzer-E-Mail-Adresse
       skip_authorization: Antrag automatisch genehmigen
   oauth_clients:
@@ -2708,7 +2796,7 @@ de:
       list_tokens: 'Die folgenden Token wurde an Anwendungen in Ihrem Namen vergeben:'
       application: Anwendungsname
       issued_at: Ausgestellt am
-      revoke: Widerrufen!
+      revoke: Aufheben!
       my_apps: Meine Client-Anwendungen
       no_apps_html: Wenn du mit einer Anwendung den %{oauth}-Standard verwenden möchtest,
         musst du sie hier registrieren.
@@ -2808,9 +2896,9 @@ de:
       title: Bedingungen
       heading: Bedingungen
       heading_ct: Bedingungen für Mitwirkende
-      read and accept with tou: Lese bitte die Bedingungen für Mitwirkende, wie auch
-        unsere Nutzngsbedingungen und bestätige dies jeweils mit einem Häkchen und
-        klicke dann auf den "Weiter"-Knopf.
+      read and accept with tou: Lies bitte die Bedingungen für Mitwirkende und die
+        Nutzungsbedingungen, bestätige dies jeweils mit einem Häkchen und klicke dann
+        auf den "Weiter"-Knopf.
       contributor_terms_explain: Diese Vereinbarung definiert die Bedingungen für
         deine bestehenden und zukünftigen Beiträge.
       read_ct: Ich habe obige Bedingungen für Mitwirkende gelesen und stimme ihnen
@@ -2862,6 +2950,8 @@ de:
       my_dashboard: Meine Übersichtsseite
       blocks on me: Erhaltene Sperren
       blocks by me: Vergebene Sperren
+      create_mute: Diesen Benutzer stummschalten
+      destroy_mute: Hebe die Stummschaltung dieses Benutzers auf
       edit_profile: Profil bearbeiten
       send message: Nachricht senden
       diary: Blog
@@ -2875,7 +2965,6 @@ de:
       ct status: 'Bedingungen für Mitwirkende:'
       ct undecided: Unentschlossen
       ct declined: Abgelehnt
-      latest edit: 'Letzte Änderung (%{ago}):'
       email address: 'E-Mail-Adresse:'
       created from: 'erstellt aus:'
       status: 'Status:'
@@ -2883,14 +2972,18 @@ de:
       role:
         administrator: Dieser Benutzer ist ein Administrator
         moderator: Dieser Benutzer ist ein Moderator
+        importer: Dieser Benutzer ist ein Importeur
         grant:
           administrator: Administrator-Rechte vergeben
           moderator: Moderator-Rechte vergeben
+          importer: Importeurzugriff genehmigne
         revoke:
           administrator: Administrator-Rechte entziehen
           moderator: Moderator-Rechte entziehen
+          importer: Importeurzugriff aufheben
       block_history: Aktive Sperren
       moderator_history: Vergebene Sperren
+      revoke_all_blocks: Alle Sperren aufheben
       comments: Kommentare
       create_block: Benutzer sperren
       activate_user: Benutzer aktivieren
@@ -3004,11 +3097,21 @@ de:
     revoke:
       title: Sperre für %{block_on} aufheben
       heading_html: Sperre für %{block_on} durch %{block_by} aufgehoben
-      time_future: 'Blockablaufdatum: %{time}.'
-      past: Diese Sperre endete %{time} und kann nicht mehr aufgehoben werden.
+      time_future_html: 'Blockablaufdatum: %{time}.'
+      past_html: Diese Sperre endete %{time} und kann nicht mehr aufgehoben werden.
       confirm: Bist du sicher, dass du diese Sperre aufheben möchtest?
       revoke: Aufheben
       flash: Die Sperre wurde aufgehoben.
+    revoke_all:
+      title: Alle Sperren auf %{block_on} aufheben
+      heading_html: Alle Sperren auf %{block_on} aufheben
+      empty: '%{name} hat keine aktiven Sperren.'
+      confirm: Bist du sicher, dass du %{active_blocks} aufheben möchtest?
+      active_blocks:
+        one: '%{count} aktive Sperre'
+        other: '%{count} aktive Sperren'
+      revoke: Aufheben!
+      flash: Alle aktiven Sperren wurden aufgehoben.
     helper:
       time_future_html: Endet in %{time}.
       until_login: Aktiv, bis der Benutzer sich anmeldet.
@@ -3068,6 +3171,31 @@ de:
       showing_page: Seite %{page}
       next: Nächste »
       previous: « Vorige
+  user_mutes:
+    index:
+      title: Stummgeschaltete Benutzer
+      my_muted_users: Meine stummgeschalteten Benutzer
+      you_have_muted_n_users:
+        one: Du hast %{count} Benutzer stummgeschaltet
+        other: Du hast %{count} Benutzer stummgeschaltet
+      user_mute_explainer: Nachrichten stummgeschalteter Benutzer werden in einen
+        separaten Posteingang verschoben und du erhältst keine E-Mail-Benachrichtigungen.
+      user_mute_admins_and_moderators: Du kannst Administratoren und Moderatoren stummschalten,
+        ihre Nachrichten werden jedoch nicht stummgeschaltet.
+      table:
+        thead:
+          muted_user: Stummgeschalteter Benutzer
+          actions: Aktionen
+        tbody:
+          unmute: Stummschaltung aufheben
+          send_message: Nachricht senden
+    create:
+      notice: Du hast %{name} stummgeschaltet.
+      error: '%{name} konnte nicht stummgeschaltet werden. %{full_message}.'
+    destroy:
+      notice: Du hast die Stummschaltung von %{name} aufgehoben.
+      error: Die Stummschaltung des Benutzers konnte nicht aufgehoben werden. Bitte
+        versuche es erneut.
   notes:
     index:
       title: Hinweise/Fehler erstellt oder kommentiert von %{user}
@@ -3104,6 +3232,7 @@ de:
       reactivate: Reaktivieren
       comment_and_resolve: Kommentieren & Erledigen
       comment: Kommentieren
+      log_in_to_comment: Melde dich an, um diesen Hinweis zu kommentieren
       report_link_html: Wenn diese Notiz sensible Informationen enthält, die entfernt
         werden müssen, kannst du %{link}.
       other_problems_resolve: Für alle anderen Probleme mit dem Hinweis, erledige
@@ -3163,12 +3292,10 @@ de:
           other: Du bist weniger als %{count} Fuß von diesem Punkt entfernt
       base:
         standard: Standard
-        cyclosm: CyclOSM
         cycle_map: Radfahrerkarte
         transport_map: Verkehrskarte
         tracestracktop_topo: Tracestrack Topo
         hot: Humanitär
-        opnvkarte: ÖPNVKarte
       layers:
         header: Kartenebenen
         notes: Hinweise/Fehlermeldungen
@@ -3183,8 +3310,6 @@ de:
       osm_france: OpenStreetMap Frankreich
       thunderforest_credit: Kacheln mit freundlicher Genehmigung von %{thunderforest_link}
       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
@@ -3198,6 +3323,7 @@ de:
       map_data_zoom_in_tooltip: Vergrößere die Karte, um die Daten zu sehen.
       queryfeature_tooltip: Objektabfrage
       queryfeature_disabled_tooltip: Für Objektabfrage vergrößern
+      embed_html_disabled: Für diese Kartenebene ist keine HTML-Einbettung verfügbar
     changesets:
       show:
         comment: Kommentieren
index 755636e1de7c507158007e8d71863749e92cfe17..15aa85683411456c1d52ebea88e7caf9063f47bb 100644 (file)
@@ -147,7 +147,6 @@ diq:
   auth:
     providers:
       none: Çıniyo
-      openid: OpenID
       google: Google
       facebook: Facebook
       github: GitHub
@@ -205,12 +204,8 @@ diq:
       way_paginated: Ray (%{x}-%{y} - pêro piya  %{count})
       relation: Elaqeyi %{count}
       relation_paginated: Elaqeyi %{x}-%{y} pêro piya %{count}
-      comment: Mışewreyi (%{count})
       changesetxml: Vurnayışê peyênê XML
       osmchangexml: OsmVurnayışê XML
-      feed:
-        title: 'Koma vurnayışi: %{id}'
-        title_comment: '%{id} - %{comment} vurniyayışi'
       join_discussion: Dekewtena vatenayışi rê qeyd bê
       discussion: Werênayış
     node:
@@ -290,10 +285,14 @@ diq:
       title_friend: Qeydê vurnayışê embazan
       title_nearby: Nezdıra vurriyayışê setê karberi
       load_more: Tayêna bar ke
+      feed:
+        title: 'Koma vurnayışi: %{id}'
+        title_comment: '%{id} - %{comment} vurniyayışi'
   dashboards:
     contact:
       km away: '%{count} km duriyo'
       m away: '%{count} metre nezdiyo'
+      latest_edit_html: 'vurnayışê peyênê %{ago}:'
     popup:
       your location: Heruna mı
       nearby mapper: Xeritoğo emıryan
@@ -804,8 +803,9 @@ diq:
   messages:
     inbox:
       title: Ameyan
-      my_inbox: Amayenê mı
+    messages_table:
       from: Rıştoğ
+      to: Gırewtoğ
       subject: Mewzu
       date: Tarix
     message_summary:
@@ -815,9 +815,6 @@ diq:
       title: Mesac bırışê
     outbox:
       title: Şıyenan
-      to: Gırewtoğ
-      subject: Mewzu
-      date: Tarix
     show:
       title: Mesaci bıwane
       reply_button: Cewab bıde
@@ -825,13 +822,15 @@ diq:
       back: Peyser
     sent_message_summary:
       destroy_button: Bestere
+    heading:
+      my_inbox: Amayenê mı
   passwords:
-    lost_password:
+    new:
       title: Parolaya vınibyayi
       heading: To parola ke xo vira?
       email address: 'Adresa e-postey:'
       new password button: Parola reset ke
-    reset_password:
+    edit:
       title: Parola reset ke
       heading: Parolay %{user} reset ke
       reset: Parola reset ke
@@ -849,7 +848,6 @@ diq:
       heading: Cıkewtış
       email or username: 'Adresa e-posteyi ya zi nameyê karberi:'
       password: 'Parola:'
-      openid_html: '%{logo} OpenID:'
       remember: Mı biya xo viri
       lost password link: Şıma parolay xo ke xo vira?
       login_button: Cıkewtış
@@ -872,10 +870,7 @@ diq:
       user_page_link: pela karberi
     export:
       title: Teberdayış
-      area_to_export: Cayo ke cıra bıvciyo
       manually_select: Be desti ra yew cayo bin weçıne
-      format_to_export: Formatê teberi ra eştışi
-      osm_xml_data: OpenStreetMap XML Data
       licence: Lisans
       too_large:
         planet:
@@ -884,16 +879,6 @@ diq:
           title: Overpass API
         other:
           title: Çemê bini
-      options: Weçinegi
-      format: Format
-      scale: Sence
-      max: maks
-      image_size: Gırdiya Resimi
-      zoom: Nezdı fi
-      add_marker: Xeriter rê yew nışan berz
-      latitude: 'Verıniye:'
-      longitude: 'Derganiye:'
-      output: Vıcyaen
       export_button: Teberdayış
     sidebar:
       search_results: Peyniya cıgeyrayışi
@@ -909,25 +894,19 @@ diq:
           track: Raya Herın
           bridleway: Raya Ancınıştan
           cycleway: Raya Bisiklet
-          apron:
-            1: terminal
           forest: Mêşe
           wood: Meşe
           golf: Saxay Golfi
           park: Perk
-          common:
-          - Çimen
-          lake:
-          - Gol
+          common: Çimen
+          lake: Gol
           farm: Cıtinin
           cemetery: Mezlaser
           allotments: Bostan
-          school:
-          - Wendxane
-          - Uniwersita
-          summit:
-          - Sersıq
-          - Ko
+          school: Wendxane
+          university: Uniwersita
+          summit: Sersıq
+          peak: Ko
     welcome:
       title: Xeyr amey!
   traces:
@@ -1009,7 +988,6 @@ diq:
       mapper since: 'Demê herdnigarwaniye:'
       ct undecided: Darıdeyo
       ct declined: Red kerd
-      latest edit: 'vurnayışê peyênê %{ago}:'
       email address: 'Adresa e-postey:'
       created from: 'Vıraşten ra:'
       status: 'Weziyet:'
index c1e12b7c149a53abe6f81fb298a80598d01ee01b..e418bc8326b7b0cede4e952ccdc08bf314d09824 100644 (file)
@@ -199,9 +199,6 @@ dsb:
       relation_paginated: Relacije (%{x}-%{y} z %{count})
       changesetxml: Sajźbu změnow XML
       osmchangexml: osmChange XML
-      feed:
-        title: Sajźba změnow %{id}
-        title_comment: Sajźba změnow %{id} - %{comment}
     node:
       title_html: 'Suk: %{name}'
       history_title_html: 'Sukowa historija: %{name}'
@@ -290,12 +287,16 @@ dsb:
       no_more_area: Žedne dalšne sajźby změnow w toś tom wobcerku.
       no_more_user: Žedne dalšne sajźby změnow wót toś togo wužywarja.
       load_more: Wěcej zacytaś
+      feed:
+        title: Sajźba změnow %{id}
+        title_comment: Sajźba změnow %{id} - %{comment}
     timeout:
       sorry: Bóžko jo pśedłujko trało, kupki změnow, kótarež  sy póžedał, wótwołaś.
   dashboards:
     contact:
       km away: '%{count} km zdalony'
       m away: '%{count} m zdalony'
+      latest_edit_html: 'Nejnowša změna %{ago}:'
     popup:
       your location: Twójo městno
       nearby mapper: Kartěrowaŕ w bliskosći
@@ -989,7 +990,6 @@ dsb:
   messages:
     inbox:
       title: Post
-      my_inbox: Mój post
       messages: Maš %{new_messages} a %{old_messages}
       new_messages:
         few: '%{count} nowe powěsći'
@@ -1001,12 +1001,14 @@ dsb:
         one: '%{count} stara powěsć'
         two: '%{count} starej powěsći'
         other: '%{count} starych powěsćow'
-      from: Wót
-      subject: Temowe nadpismo
-      date: Datum
       no_messages_yet_html: Hyšći njamaš powěsći. Cogodla njestajaš se z %{people_mapping_nearby_link}
         do zwiska?
       people_mapping_nearby: Luźe, kótarež kartěruju w bliskosći
+    messages_table:
+      from: Wót
+      to: Komu
+      subject: Temowe nadpismo
+      date: Datum
     message_summary:
       unread_button: Ako njepśecytany markěrowaś
       read_button: Ako pśecytany markěrowaś
@@ -1031,9 +1033,6 @@ dsb:
         one: Sy %{count} powěsć pósłał
         two: Sy %{count} powěsći pósłał
         other: Sy %{count} powěsćow pósłał
-      to: Komu
-      subject: Temowe nadpismo
-      date: Datum
       no_sent_messages_html: Hyšći njejsy powěsći rozpósłał. Cogodla njestajaš se
         z jadnym z %{people_mapping_nearby_link}, do zwiska?
       people_mapping_nearby: luźe, kótarež kartěruju w bliskosći
@@ -1051,28 +1050,32 @@ dsb:
         se ako korektny wužywaŕ, aby ju cytał.
     sent_message_summary:
       destroy_button: Lašowaś
+    heading:
+      my_inbox: Mój post
     mark:
       as_read: Powěsć jo se markěrowała ako pśecytana
       as_unread: Powěsć jo se markěrowała ako njepśecytana
     destroy:
       destroyed: Powěsć wulašowana
   passwords:
-    lost_password:
+    new:
       title: Zabyte gronidło
       heading: Sy gronidło zabył?
       email address: 'E-mailowa adresa:'
       new password button: Gronidło slědk stajiś
       help_text: Zapódaj e-mailowu adresu, kótaruž sy za registrěrowanje wužył, pósćelomy
         wótkaz na nju, kótaryž móžoš wužywaś, aby swójo gronidło slědk stajił.
+    create:
       notice email on way: Bóžko sy jo zabył :-(, ale e-mail jo k tebje ducy, tak
         až móžoš jo skóro slědk stajiś.
       notice email cannot find: Bóžko ta e-mailowa adresa njejo se namakała.
-    reset_password:
+    edit:
       title: Gronidło slědk stajiś
       heading: Gronidło za %{user} slědk stajiś
       reset: Gronidło slědk stajiś
-      flash changed: Twójo gronidło jo se změniło.
       flash token bad: Njejo móžno było ten token namakaś, pšosym pśekontrolěruj URL.
+    update:
+      flash changed: Twójo gronidło jo se změniło.
   profiles:
     edit:
       image: 'Wobraz:'
@@ -1092,7 +1095,6 @@ dsb:
       heading: Pśizjawjenje
       email or username: 'E-mailowa adresa abo wužywarske mě:'
       password: 'Gronidło:'
-      openid_html: '%{logo} OpenID:'
       remember: Spomnjeś se
       lost password link: Sy swójo gronidło zabył?
       login_button: Pśizjawiś se
@@ -1172,12 +1174,7 @@ dsb:
         su trěbne za toś tu funkciju.
     export:
       title: Eksportěrowaś
-      area_to_export: Wurězk za eksport
       manually_select: Drugi wurězk manuelnje wubraś
-      format_to_export: Format za eksport
-      osm_xml_data: XML-daty OpenStreetMap
-      map_image: Kórtowy wobraz (pokazujo standardnu rowninu)
-      embeddable_html: Zasajźujobny HTML
       licence: Licenca
       too_large:
         advice: 'Jolic górni eksport se njeraźi, pšosym rozwaž, lěc wužywaš jadnu
@@ -1200,17 +1197,6 @@ dsb:
         other:
           title: Druge žrědła
           description: Pśidatne žrědła nalicone wikiju OpenStreetMap
-      options: Opcije
-      format: 'Format:'
-      scale: Měritko
-      max: maks.
-      image_size: 'Wobrazowa wjelikosć:'
-      zoom: Skalěrowanje
-      add_marker: Kórśe marku pśidaś
-      latitude: 'Šyrina:'
-      longitude: 'Dlinina:'
-      output: Wudaśe
-      paste_html: HTML kopěrowaś, aby se zasajźił do websedła
       export_button: Eksport
     fixthemap:
       title: Problem k wěsći daś / Kórtu pópšawiś
@@ -1233,10 +1219,6 @@ dsb:
         title: Witaj k OSM
         description: Zachop z toś tym spěšnym rozpokazanim, kótarež wopsímujo zakłady
           OpenStreetMap.
-      help:
-        title: help.openstreetmap.org
-        description: Pšašaj se něcogo abo pytaj za wótegronami na boku pšašanjow a
-          wótegronow OpenStreetMap.
       wiki:
         title: wiki.openstreetmap.org
         description: Pśepytaj wiki za nadrobneju OSM-dokumentaciju
@@ -1264,34 +1246,24 @@ dsb:
           footway: Drožka
           rail: Zeleznica
           subway: Pódzemska
-          tram:
-          - Měsćańska zeleznica
-          - elektriska
-          cable:
-          - Kablowa elektriska
-          - sedłowy lift
-          runway:
-          - Pśizemjeńska cera
-          - lětadłowa cera
-          apron:
-          - Pśedpólo lětanišća
-          - terminal
+          cable_car: Kablowa elektriska
+          chair_lift: sedłowy lift
+          runway: Pśizemjeńska cera
+          taxiway: lětadłowa cera
+          apron: Pśedpólo lětanišća
           admin: Zastojnstwowa granica
           forest: Góla
           wood: Lěs
           golf: Golfowišćo
           park: Park
+          common: Powšykny
           resident: Bydleński wobcerk
-          common:
-          - Powšykny
-          - łuka
           retail: Nakupowanišćo
           industrial: Industrijowy wobcerk
           commercial: Źěłarstwowy wobcerk
           heathland: Wrjosate strony
-          lake:
-          - Jazor
-          - gaśeński jazor
+          lake: Jazor
+          reservoir: gaśeński jazor
           farm: Farma
           brownfield: Industrijowe lědo
           cemetery: Kjarchob
@@ -1300,14 +1272,12 @@ dsb:
           centre: Sportowy centrum
           reserve: Strony šćitaneje pśirody
           military: Militarny wobcerk
-          school:
-          - Šula
-          - uniwersita
+          school: Šula
+          university: uniwersita
           building: Pśesegajuce twarjenje
           station: Dwórnišćo, zeleznicowa stacija
-          summit:
-          - Wjerch
-          - špica
+          summit: Wjerch
+          peak: špica
           tunnel: Smužkowane wobcerjenje = tunel
           bridge: Carne wobcerjenje = móst
           private: Priwatny pśistup
@@ -1541,7 +1511,6 @@ dsb:
       ct status: 'Wuměnjenja za sobustatkujucych:'
       ct undecided: Njerozsuźony
       ct declined: Wótpokazany
-      latest edit: 'Nejnowša změna %{ago}:'
       email address: 'E-mailowa adresa:'
       created from: 'Napórany z:'
       status: 'Status:'
@@ -1635,8 +1604,8 @@ dsb:
     revoke:
       title: Wótpórajo se blokěrowanje pśeśiwo %{block_on}
       heading_html: Wótpórajo se blokěrowanje pśeśiwo %{block_on} wót %{block_by}
-      time_future: Toś to blokěrowanje skóńcyjo se %{time}.
-      past: Toś to blokěrowanje jo se %{time} skóńcyło a njedajo se něnto wótpóraś.
+      time_future_html: Toś to blokěrowanje skóńcyjo se %{time}.
+      past_html: Toś to blokěrowanje jo se %{time} skóńcyło a njedajo se něnto wótpóraś.
       confirm: Coš napšawdu toś to blokěrowanje wótpóraś?
       revoke: Wótpóraś!
       flash: Toś to blokěrowanje jo se wótpórało.
index 07a28c859e2178897279ef87bd2364cac8f82992..0affff2bfc1a8462f5e68241eb28c41ed430d1d4 100644 (file)
@@ -80,6 +80,11 @@ el:
       messages:
         invalid_email_address: δεν φαίνεται να είναι έγκυρη διεύθυνση ηλ. ταχυδρομείου
         email_address_not_routable: δεν είναι δρομολογητέο
+        display_name_is_user_n: δεν μπορεί να είναι user_n εκτός αν το n είναι το
+          αναγνωριστικό χρήστη σας
+      models:
+        user_mute:
+          is_already_muted: είναι ήδη σε σίγαση
     models:
       acl: Λίστα ελέγχου πρόσβασης
       changeset: Ομάδα αλλαγών
@@ -201,7 +206,7 @@ el:
           γι' αυτό προσπαθήστε να χρησιμοποιήσετε απλούς και κατανοητούς όρους.
         needs_view: Πρέπει ο χρήστης να συνδεθεί προτού εκκαθαριστεί αυτή η φραγή;
       user:
-        new_email: (να Î¼Î·ν εμφανίζεται ποτέ δημόσια)
+        new_email: (δεν εμφανίζεται ποτέ δημόσια)
   datetime:
     distance_in_words_ago:
       about_x_hours:
@@ -252,7 +257,6 @@ el:
   auth:
     providers:
       none: Κανένα
-      openid: OpenID
       google: Google
       facebook: Facebook
       microsoft: Microsoft
@@ -307,6 +311,9 @@ el:
         retain_changeset_discussions: Οι συζητήσεις σας στις ομάδες αλλαγών, εάν υπάρχουν,
           θα διατηρηθούν.
         retain_email: Η διεύθυνση ηλεκτρονικού ταχυδρομείου σας θα διατηρηθεί.
+        recent_editing_html: Καθώς έχετε κάνει πρόσφατα επεξεργασία, δεν μπορείτε
+          να διαγράψετε ακόμη τον λογαριασμό σας. Η διαγραφή του λογαριασμού θα είναι
+          δυνατή σε %{time}.
         confirm_delete: Είσαστε σίγουροι;
         cancel: Ακύρωση
   accounts:
@@ -389,14 +396,10 @@ el:
       way_paginated: Διαδρομές (%{x}-%{y} από %{count})
       relation: Σχέσεις (%{count})
       relation_paginated: Σχέσεις (%{x}-%{y} από %{count})
-      comment: Σχόλια (%{count})
       hidden_comment_by_html: Κρυφό σχόλιο από %{user} %{time_ago}
       comment_by_html: Σχόλιο από %{user} %{time_ago}
       changesetxml: Ομάδας αλλαγών XML
       osmchangexml: osmChange XML
-      feed:
-        title: Ομάδα αλλαγών %{id}
-        title_comment: Ομάδα αλλαγών %{id} - %{comment}
       join_discussion: Συνδεθείτε για συμμετοχή στη συζήτηση
       discussion: Συζήτηση
       still_open: Η ομάδα αλλαγών παραμένει σε εκκρεμότητα - η συζήτηση θα ανοίξει
@@ -479,6 +482,15 @@ el:
       introduction: Κάντε κλικ στον χάρτη για να βρείτε κοντινά χαρακτηριστικά.
       nearby: Κοντινά χαρακτηριστικά
       enclosing: Περικλείει τα χαρακτηριστικά
+  old_nodes:
+    not_found:
+      sorry: 'Λυπούμαστε, η έκδοση %{version} του κόμβου #%{id} δεν βρέθηκε.'
+  old_ways:
+    not_found:
+      sorry: 'Λυπούμαστε, η έκδοση %{version} της γραμμής #%{id} δεν βρέθηκε.'
+  old_relations:
+    not_found:
+      sorry: 'Λυπούμαστε, η έκδοση %{version} της σχέσης #%{id} δεν βρέθηκε.'
   changesets:
     changeset_paging_nav:
       showing_page: Σελίδα %{page}
@@ -496,7 +508,7 @@ el:
       area: Περιοχή
     index:
       title: Αλλαγές
-      title_user: Αλλαγές από τον %{user}
+      title_user: Αλλαγές από %{user}
       title_user_link_html: Ομάδες αλλαγών από %{user_link}
       title_friend: Αλλαγές από τους φίλους μου
       title_nearby: Αλλαγές από κοντινούς χρήστες
@@ -507,6 +519,9 @@ el:
       no_more_area: Δεν υπάρχουν άλλες αλλαγές για αυτήν την περιοχή.
       no_more_user: Δεν υπάρχουν άλλες αλλαγές από αυτόν τον χρήστη.
       load_more: Φόρτωση περισσότερων
+      feed:
+        title: Ομάδα αλλαγών %{id}
+        title_comment: Ομάδα αλλαγών %{id} - %{comment}
     timeout:
       sorry: Λυπάμαι, ο κατάλογος των αλλαγών που ζητήσατε χρειάστηκε πολύ χρόνο για
         να ανακτηθεί.
@@ -526,6 +541,7 @@ el:
     contact:
       km away: '%{count}km μακριά'
       m away: '%{count}m μακριά'
+      latest_edit_html: 'Τελευταία επεξεργασία (%{ago}):'
     popup:
       your location: Η τοποθεσία σας
       nearby mapper: Κοντινός χαρτογράφος
@@ -554,7 +570,7 @@ el:
       title: Ημερολόγια χρηστών
       title_friends: Ημερολόγια φίλων
       title_nearby: Ημερολόγια κοντινών χρηστών
-      user_title: Ημερολόγιο του/των %{user}
+      user_title: Ημερολόγιο του χρήστη %{user}
       in_language_title: Καταχωρήσεις ημερολογίων στα %{language}
       new: Νέα καταχώρηση ημερολογίου
       new_title: Σύνταξη νέας καταχώρησης στο ημερολόγιό μου
@@ -567,8 +583,8 @@ el:
       title: Επεξεργασία καταχώρισης ημερολογίου
       marker_text: Τοποθεσία καταχώρησης ημερολογίου
     show:
-      title: το ημερολόγιο του %{user} | %{title}
-      user_title: το ημερολόγιο του %{user}
+      title: Ημερολόγιο του χρήστη %{user} | %{title}
+      user_title: Ημερολόγιο του χρήστη %{user}
       leave_a_comment: Αφήστε σχόλιο
       login_to_leave_a_comment_html: '%{login_link} για να αφήσετε ένα σχόλιο'
       login: Συνδεθείτε
@@ -579,7 +595,8 @@ el:
         %{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: Αποστολή μηνύματος στον συγγραφέα
@@ -593,7 +610,7 @@ el:
       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: Επιβεβαίωση
@@ -614,9 +631,9 @@ el:
         title: Καταχωρήσεις ημερολογίου OpenStreetMap
         description: Πρόσφατες καταχωρήσεις ημερολογίου από χρήστες του OpenStreetMap
     comments:
-      title: Î Ï\81οÏ\83Ï\84έθηκαν Ï\83Ï\87Ï\8cλια Î·Î¼ÎµÏ\81ολογίοÏ\85 από τον χρήστη %{user}
+      title: Î£Ï\87Ï\8cλια Î·Î¼ÎµÏ\81ολογίοÏ\85 Ï\80οÏ\85 Ï\80Ï\81οÏ\83Ï\84έθηκαν από τον χρήστη %{user}
       heading: Σχόλια Ημερολογίου %{user}
-      subheading_html: Î Ï\81οÏ\83Ï\84έθηκαν Ï\83Ï\87Ï\8cλια Î·Î¼ÎµÏ\81ολογίοÏ\85 από τον χρήστη %{user}
+      subheading_html: Î£Ï\87Ï\8cλια Î·Î¼ÎµÏ\81ολογίοÏ\85 Ï\80οÏ\85 Ï\80Ï\81οÏ\83Ï\84έθηκαν από τον χρήστη %{user}
       no_comments: Χωρίς σχόλια ημερολογίου
       post: Καταχώρηση
       when: Πότε
@@ -624,12 +641,46 @@ el:
       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: Η παραγωγή του ID Token απέτυχε λόγω ελλιπούς διαμόρφωσης
+            του Doorkeeper::OpenidConnect.configure.subject .
+    scopes:
+      address: Προβολή της φυσικής διεύθυνσης σας
+      email: Προβολή της διεύθυνσης email σας
+      openid: Αυθεντικοποιήστε τον λογαριασμό σας
+      phone: Προβολή του αριθμού τηλεφώνου σας
+      profile: Προβολή των πληροφοριών του προφίλ σας
   errors:
     contact:
+      contact_url_title: Επεξήγηση διαφόρων καναλιών επικοινωνίας
       contact: επικοινωνία
       contact_the_community_html: Μη διστάσετε να %{contact_link} με την κοινότητα
         του OpenStreetMap εάν έχετε βρει έναν κατεστραμμένο σύνδεσμο / σφάλμα. Σημειώστε
@@ -664,6 +715,7 @@ el:
     search:
       title:
         results_from_html: Αποτελέσματα από %{results_link}
+        latlon: Internal
         osm_nominatim: OpenStreetMap Nominatim
         osm_nominatim_reverse: OpenStreetMap Nominatim
     search_osm_nominatim:
@@ -974,6 +1026,7 @@ el:
           citywalls: Τείχη της πόλης
           fort: Οχυρό
           heritage: Μνημείο πολιτιστικής κληρονομιάς
+          hollow_way: Κοίλο μονοπάτι
           house: Σπίτι
           manor: Έπαυλη
           memorial: Μνημείο
@@ -1087,7 +1140,7 @@ el:
           embankment: Ανάχωμα
           flagpole: Ιστός σημαίας
           gasometer: Αεριόμετρο
-          groyne: Î¦Ï\81άγμα
+          groyne: Î\9aÏ\85μαÏ\84οθÏ\81αÏ\8dÏ\83Ï\84ηÏ\82
           kiln: Καμίνι
           lighthouse: Φάρος
           manhole: Ανθρωποθυρίδα
@@ -1473,9 +1526,10 @@ el:
         one: '%{count} αναφορά'
         other: '%{count} αναφορές'
       no_reports: Καμία αναφορά
-      report_created_at: Αναφέρθηκε για πρώτη φορά στις %{datetime}
-      last_resolved_at: Επιλύθηκε για τελευταία φορά στις %{datetime}
-      last_updated_at: Ενημερώθηκε για τελευταία φορά στις %{datetime} από τον %{displayname}
+      report_created_at_html: Αναφέρθηκε για πρώτη φορά στις %{datetime}
+      last_resolved_at_html: Επιλύθηκε για τελευταία φορά στις %{datetime}
+      last_updated_at_html: Ενημερώθηκε για τελευταία φορά στις %{datetime} από τον
+        %{displayname}
       resolve: Επίλυση
       ignore: Αγνόηση
       reopen: Ξανάνοιγμα
@@ -1633,6 +1687,11 @@ el:
       subject: '[OpenStreetMap] Η εισαγωγή GPX απέτυχε'
     gpx_success:
       hi: Γεια σας %{to_user},
+      loaded:
+        one: φορτώθηκε επιτυχώς με %{trace_points} από πιθανό %{count} σημείο.
+        other: φορτώθηκε επιτυχώς με %{trace_points} από πιθανά %{count} σημεία.
+      all_your_traces_html: Όλα τα ίχνη GPX που ανεβάσατε με επιτυχία μπορούν να βρεθούν
+        στη διεύθυνση %{url}.
       subject: '[OpenStreetMap] Η εισαγωγή GPX πέτυχε'
     signup_confirm:
       subject: '[OpenStreetMap] Καλώς ήλθατε στο OpenStreetMap'
@@ -1766,8 +1825,6 @@ el:
   messages:
     inbox:
       title: Εισερχόμενα
-      my_inbox: Τα εισερχόμενα μου
-      my_outbox: Τα εξερχόμενα μου
       messages: Έχετε %{new_messages} και %{old_messages}
       new_messages:
         one: '%{count} νέο μήνυμα'
@@ -1775,17 +1832,21 @@ el:
       old_messages:
         one: '%{count} παλιό μήνυμα'
         other: '%{count} παλιά μηνύματα'
-      from: Από
-      subject: Θέμα
-      date: Ημερομηνία
       no_messages_yet_html: Δεν έχετε μηνύματα ακόμα. Γιατί δεν έρχεστε σε επαφή με
         μερικά από τα %{people_mapping_nearby_link}?
       people_mapping_nearby: άτομα που χαρτογραφούν κοντά σας
+    messages_table:
+      from: Από
+      to: Προς
+      subject: Θέμα
+      date: Ημερομηνία
+      actions: Ενέργειες
     message_summary:
       unread_button: Σήμανση ως αδιάβαστο
       read_button: Σήμανση ως διαβασμένο
       reply_button: Απάντηση
       destroy_button: Διαγραφή
+      unmute_button: Μετακίνηση στα Εισερχόμενα
     new:
       title: Αποστολή μηνύματος
       send_message_to_html: Αποστολή νέου μηνύματος προς %{name}
@@ -1800,17 +1861,18 @@ el:
       body: Λυπάμαι δεν υπάρχει μήνυμα με αυτό το αναγνωριστικό.
     outbox:
       title: Εξερχόμενα
-      my_inbox: Τα εισερχόμενα μου
-      my_outbox: Τα εξερχόμενα μου
+      actions: Ενέργειες
       messages:
         one: Έχετε %{count} απεσταλμένο μήνυμα
         other: Έχετε %{count} απεσταλμένα μηνύματα
-      to: Προς
-      subject: Θέμα
-      date: Ημερομηνία
       no_sent_messages_html: Δεν έχετε στείλει κανένα μήνυμα ακόμα. Γιατί δεν έρχεστε
         σε επαφή με μερικά %{people_mapping_nearby_link}?
       people_mapping_nearby: άτομα που χαρτογραφούν κοντά σας
+    muted:
+      title: Μηνύματα σε Σίγαση
+      messages:
+        one: '%{count} μήνυμα σε σίγαση'
+        other: Έχετε %{count} μηνύματα σε σίγαση
     reply:
       wrong_user: Έχετε συνδεθεί ως «%{user}» αλλά το μήνυμα που ζητάτε να απαντήσετε
         δεν έχει σταλεί σε αυτόν το χρήστη. Παρακαλούμε συνδεθείτε με το σωστό όνομα
@@ -1826,30 +1888,40 @@ el:
         χρήστη ώστε να μπορέσετε να το διαβάσετε.
     sent_message_summary:
       destroy_button: Διαγραφή
+    heading:
+      my_inbox: Τα εισερχόμενα μου
+      my_outbox: Τα εξερχόμενα μου
+      muted_messages: Μηνύματα σε Σίγαση
     mark:
       as_read: Το μήνυμα σημειώθηκε ως αναγνωσμένο
       as_unread: Το μήνυμα σημειώθηκε ως μη αναγνωσμένο
+    unmute:
+      notice: Το μήνυμα μετακινήθηκε στα Εισερχόμενα
+      error: Δεν ήταν δυνατή η μετακίνηση του μηνύματος στα Εισερχόμενα.
     destroy:
       destroyed: Το μήνυμα διαγράφηκε
   passwords:
-    lost_password:
+    new:
       title: Χάσατε το συνθηματικό σας
       heading: Ξεχάσατε το συνθηματικό σας;
-      email address: 'Διεύθυνση ηλεκτρονικού ταχυδρομείου:'
+      email address: Διεύθυνση ηλεκτρονικού ταχυδρομείου
       new password button: Επαναφορά συνθηματικού
       help_text: Πληκτρολογήστε τη διεύθυνση ηλεκτρονικού ταχυδρομείου που χρησιμοποιήσατε
         για να εγγραφείτε. Θα στείλουμε έναν σύνδεσμο τον οποίον μπορείτε να χρησιμοποιήσετε
         για να επαναφέρετε το συνθηματικό σας.
+    create:
       notice email on way: Λυπούμαστε που το χάσατε :-(, αλλά ένα μήνυμα ηλεκτρονικού
         ταχυδρομείου εστάλη, ώστε να μπορέσετε να το επαναφέρετε σύντομα.
       notice email cannot find: Λυπούμαστε, δεν βρέθηκε αυτή η διεύθυνση ηλεκτρονικού
         ταχυδρομείου.
-    reset_password:
+    edit:
       title: Επαναφορά συνθηματικού
       heading: Επαναφορά συνθηματικού για τον χρήστη %{user}
       reset: Επαναφορά συνθηματικού
-      flash changed: Το συνθηματικό σας άλλαξε!
       flash token bad: Δεν βρήκατε αυτό το κομμάτι, μήπως πρέπει να ελέγξετε το URL;
+    update:
+      flash changed: Το συνθηματικό σας άλλαξε!
+      flash token bad: Δεν βρέθηκε αυτό το token, ελέγξτε ίσως τη διεύθυνση URL;
   preferences:
     show:
       title: Οι προτιμήσεις μου
@@ -1894,9 +1966,8 @@ el:
     new:
       title: Είσοδος
       heading: Είσοδος
-      email or username: 'Διεύθυνση Ηλ. Ταχυδρομείου ή Όνομα Χρήστη:'
-      password: 'Συνθηματικό:'
-      openid_html: '%{logo} OpenID:'
+      email or username: Διεύθυνση Ηλ. Ταχυδρομείου ή Όνομα Χρήστη
+      password: Συνθηματικό
       remember: Να με θυμάσαι
       lost password link: Ξεχάσατε το συνθηματικό σας;
       login_button: Είσοδος
@@ -1942,9 +2013,9 @@ el:
       support: υποστήριξη
   shared:
     markdown_help:
-      heading_html: Î\91ναλÏ\8dθηκε με %{kramdown_link}
+      heading_html: Î\91ναλÏ\85μμένο με %{kramdown_link}
       headings: Επικεφαλίδες
-      heading: Î\9aαφαλίδα
+      heading: Î\9aεφαλίδα
       subheading: Υποκεφαλίδα
       unordered: Αταξινόμητη λίστα
       ordered: Ταξινομημένη λίστα
@@ -1955,6 +2026,7 @@ el:
       image: Εικόνα
       alt: Εναλ. κείμενο
       url: URL
+      codeblock: Μπλοκ κώδικα
     richtext_field:
       edit: Επεξεργασία
       preview: Προεπισκόπηση
@@ -1995,7 +2067,12 @@ el:
       legal_1_1_terms_of_use: Όροι Χρήσης
       legal_1_1_aup: Αποδεκτές Πολιτικές Χρήσης
       legal_1_1_privacy_policy: Πολιτική Απορρήτου
+      legal_2_1_html: |-
+        Παρακαλούμε %{contact_the_osmf_link}
+        εάν έχετε ερωτήσεις για αδειοδότηση, πνευματικά δικαιώματα ή άλλα νομικά.
       legal_2_1_contact_the_osmf: επικοινωνήστε με το OSMF
+      legal_2_2_html: Το OpenStreetMap, το λογότυπο με τον μεγεθυντικό φακό και το
+        State of the Map είναι %{registered_trademarks_link}.
       legal_2_2_registered_trademarks: εγγεγραμμένα εμπορικά σήματα του OSMF
       partners_title: Συνεργάτες
     copyright:
@@ -2013,21 +2090,36 @@ el:
         mapping_link: αρχίστε τη χαρτογράφηση
       legal_babble:
         title_html: Πνευματικά δικαιώματα και άδεια χρήσης
+        introduction_1_html: |-
+          Το OpenStreetMap%{registered_trademark_link} είναι %{open_data}, με άδεια χρήσης υπό το
+          %{odc_odbl_link} (ODbL) από το %{osm_foundation_link} (OSMF).
         introduction_1_open_data: ανοιχτά δεδομένα
+        introduction_1_odc_odbl: Open Data Commons Άδεια Ανοικτής Βάσης Δεδομένων
         introduction_1_osm_foundation: Ίδρυμα OpenStreetMap
         introduction_2_legal_code: νομικός κώδικας
+        introduction_3_html: Η τεκμηρίωση μας αδειοδοτείται βάσει της άδειας %{creative_commons_link}
+          (CC BY-SA 2.0).
         introduction_3_creative_commons: Creative Commons Αναφορά Δημιουργού-Παρόμοια
           Διανομή 2.0
-        credit_title_html: Πως να κάνετε αναφορά στο OpenStreetMap
-        credit_1_html: 'Όπου χρησιμοποιήσετε δεδομένα του OpenStreetMap, χρειάζεται
-          από σας να κάνετε τα παρακάτω πράγματα:'
+        credit_title_html: Πως να κάνετε αναφορά δημιουργού προς το OpenStreetMap
+        credit_1_html: 'Όπου χρησιμοποιείτε δεδομένα του OpenStreetMap, υποχρεούστε
+          να κάνετε τα ακόλουθα δύο πράγματα:'
+        credit_2_1: Δώσετε τα εύσημα στο OpenStreetMap εμφανίζοντας τη σημείωση πνευματικών
+          δικαιωμάτων μας.
+        credit_2_2: Διευκρινίσετε ότι τα δεδομένα είναι διαθέσιμα υπό την Άδεια Ανοιχτής
+          Βάσης Δεδομένων.
         credit_3_attribution_guidelines: Οδηγίες Αναφοράς
         credit_4_1_this_copyright_page: αυτή τη σελίδα πνευματικών δικαιωμάτων
         attribution_example:
           alt: Παράδειγμα του πως αναφέρεται το OpenStreetMap σε μια ιστοσελίδα
           title: Παράδειγμα αναφοράς δημιουργού
         more_title_html: Μαθαίνοντας περισσότερα
+        more_1_1_html: Διαβάστε περισσότερα σχετικά με τη χρήση των δεδομένων μας
+          και πως να μας δώσετε τα εύσημα, στη %{osmf_licence_page_link}.
         more_1_1_osmf_licence_page: Σελίδα Άδειας Χρήσης OSMF
+        more_2_1_html: |-
+          Παρόλο που το OpenStreetMap είναι ανοιχτά δεδομένα, δεν μπορούμε να παρέχουμε API χάρτη για τρίτα μέρη χωρίς χρέωση.
+          Δείτε την %{api_usage_policy_link}, %{tile_usage_policy_link} και %{nominatim_usage_policy_link}.
         more_2_1_api_usage_policy: Πολιτική Χρήσης API
         more_2_1_tile_usage_policy: Πολιτική Χρήσης Πλακιδίων
         more_2_1_nominatim_usage_policy: Πολιτική Χρήσης Nominatim
@@ -2035,6 +2127,9 @@ el:
         contributors_intro_html: 'Οι συνεισφέροντες μας είναι χιλιάδες άτομα. Επίσης
           έχουμε περιλάβει δεδομένα ανοικτής άδειας από εθνικές υπηρεσίες χαρτογράφησης
           και άλλες πηγές, μεταξύ αυτών:'
+        contributors_at_credit_html: |-
+          %{austria}: Περιέχει δεδομένα από %{stadt_wien_link} (under %{cc_by_link}), %{land_vorarlberg_link}
+          και Land Tirol (under %{cc_by_at_with_amendments_link}).
         contributors_at_austria: Αυστρία
         contributors_at_stadt_wien: Stadt Wien
         contributors_at_cc_by: CC BY
@@ -2042,16 +2137,29 @@ el:
         contributors_at_cc_by_at_with_amendments: CC BY AT με τροποποιήσεις
         contributors_au_australia: Αυστραλία
         contributors_au_geoscape_australia: Geoscape Australia
+        contributors_au_cc_licence: άδεια Creative Commons Αναφορά Δημιουργού 4.0
+          Διεθνές (CC BY 4.0)
         contributors_ca_canada: Καναδάς
+        contributors_cz_czechia: Τσεχία
+        contributors_cz_cc_licence: άδεια Creative Commons Αναφορά Δημιουργού 4.0
+          Διεθνές (CC BY 4.0)
         contributors_fi_finland: Φινλανδία
         contributors_fi_nlsfi_license: Άδεια NLSFI
+        contributors_fr_credit_html: |-
+          %{france}: Περιέχει δεδομένα που προέρχονται από
+          Direction Générale des Impôts.
         contributors_fr_france: Γαλλία
+        contributors_nl_credit_html: '%{netherlands}: Περιέχει δεδομένα &copy; AND
+          (Automotive Navigation Data), 2007 (%{and_link})'
         contributors_nl_netherlands: Κάτω Χώρες
+        contributors_nz_credit_html: |-
+          %{new_zealand}: Περιέχει δεδομένα που προέρχονται από την %{linz_data_service_link}
+          και με άδεια για επαναχρησιμοποίηση υπό %{cc_by_link}.
         contributors_nz_new_zealand: Νέα Ζηλανδία
         contributors_nz_linz_data_service: Υπηρεσία Δεδομένων LINZ
         contributors_nz_cc_by: CC BY 4.0
         contributors_rs_credit_html: |-
-          %{serbia}: Î ÎµÏ\81ιέÏ\87ει Î´ÎµÎ´Î¿Î¼Î­Î½Î± Î±Ï\80Ï\8c Ï\84ο %{rgz_link} ÎºÎ±Î¹ Ï\84ο %{open_data_portal}
+          %{serbia}: Î ÎµÏ\81ιέÏ\87ει Î´ÎµÎ´Î¿Î¼Î­Î½Î± Î±Ï\80Ï\8c Ï\84η %{rgz_link} ÎºÎ±Î¹ Ï\84ην %{open_data_portal}
           (δημόσιες πληροφορίες της Σερβίας), 2018.
         contributors_rs_serbia: Σερβία
         contributors_rs_rgz: Σερβική Γεωδαιτική Αρχή
@@ -2062,11 +2170,24 @@ el:
         contributors_si_slovenia: Σλοβενία
         contributors_si_gu: Αρχή Χωρομέτρησης και Χαρτογράφησης
         contributors_si_mkgp: Υπουργείο Γεωργίας, Δασών και Τροφίμων
+        contributors_es_credit_html: '%{spain}: Περιέχει δεδομένα που προέρχονται
+          από το Εθνικό Γεωγραφικό Ινστιτούτο της Ισπανίας (%{ign_link}) και το Εθνικό
+          Χαρτογραφικό Σύστημα (%{scne_link}) με άδεια για επαναχρησιμοποίηση υπό
+          %{cc_by_link}.'
         contributors_es_spain: Ισπανία
         contributors_es_ign: IGN
         contributors_es_cc_by: CC BY 4.0
+        contributors_za_credit_html: '%{south_africa}: Περιέχει δεδομένα που προέρχονται
+          από την %{ngi_link}, με την επιφύλαξη κρατικών πνευματικών δικαιωμάτων.'
         contributors_za_south_africa: Νότια Αφρική
+        contributors_za_ngi: 'Προϊσταμένη Διεύθυνση: Εθνικές Γεω-Χωρικές Πληροφορίες'
+        contributors_gb_credit_html: |-
+          %{united_kingdom}: Περιέχει δεδομένα Χαρτογραφικής Υπηρεσίας &copy; Crown πνευματικά δικαιώματα και δικαιώματα βάσης δεδομένων
+          2010-2023.
         contributors_gb_united_kingdom: Ηνωμένο Βασίλειο
+        contributors_2_html: Για περισσότερες λεπτομέρειες για αυτές, και άλλες πηγές
+          που έχουν χρησιμοποιηθεί για να βοηθήσουν στην βελτίωση του OpenStreetMap,
+          παρακαλούμε δείτε την %{contributors_page_link} στο OpenStreetMap Wiki.
         contributors_2_contributors_page: Σελίδα συνεισφερόντων
         contributors_footer_2_html: Η συμπερίληψη δεδομένων στο OpenStreetMap δεν
           συνεπάγεται ότι ο αρχικός πάροχος δεδομένων εγκρίνει το OpenStreetMap, παρέχει
@@ -2075,7 +2196,18 @@ el:
         infringement_1_html: Υπενθυμίζουμε στους συνεισφέροντες του OSM να μην προσθέτουν
           δεδομένα από πηγές με πνευματικά δικαιώματα (π.χ. Google Maps η έντυπους
           χάρτες) χωρίς την προηγούμενη άδεια από τους ιδιοκτήτες των δικαιωμάτων.
+        infringement_2_1_html: |-
+          Εάν πιστεύετε ότι υλικό με πνευματικά δικαιώματα έχει προστεθεί ακατάλληλα
+          στη βάση δεδομένων του OpenStreetMap ή σε αυτόν τον ιστότοπο,
+          παρακαλούμε ανατρέξτε στη %{takedown_procedure_link} ή συμπληρώστε απευθείας την
+          %{online_filing_page_link}.
+        infringement_2_1_takedown_procedure: διαδικασία αφαίρεσης
+        infringement_2_1_online_filing_page: ηλεκτρονική φόρμα
         trademarks_title: Εμπορικά σήματα
+        trademarks_1_1_html: Το OpenStreetMap, το λογότυπο με τον μεγεθυντικό φακό
+          και το State of the Map είναι σήματα κατατεθέντα του Ιδρύματος OpenStreetMap.
+          Αν έχετε ερωτήσεις σχετικά με την χρήση σας αυτών των σημάτων, παρακαλούμε
+          δείτε την %{trademark_policy_link}.
         trademarks_1_1_trademark_policy: Πολιτική Εμπορικών Σημάτων
     index:
       js_1: Είτε χρησιμοποιείτε πρόγραμμα περιήγησης που δεν υποστηρίζει JavaScript
@@ -2100,12 +2232,7 @@ el:
         που είναι απαραίτητο για αυτήν την λειτουργία.
     export:
       title: Εξαγωγή
-      area_to_export: Περιοχή προς εξαγωγή
       manually_select: Χειροκίνητη επιλογή διαφορετικής περιοχής
-      format_to_export: Μορφή προς εξαγωγή
-      osm_xml_data: Δεδομένα OpenStreetMap σε μορφή XML
-      map_image: Εικόνα χάρτη (δείχνει τυπικό στρώμα)
-      embeddable_html: Ενσωματούμενη HTML
       licence: Άδεια
       licence_details_html: Τα δεδομένα OpenStreetMap αδειοδοτούνται με %{odbl_link}
         (ODbL).
@@ -2131,17 +2258,6 @@ el:
         other:
           title: Άλλες πηγές
           description: Επιπλέον πηγές απαριθμούνται στο wiki του OpenStreetMap
-      options: Επιλογές
-      format: Μορφοποίηση
-      scale: Κλίμακα
-      max: μέγιστο
-      image_size: Μέγεθος εικόνας
-      zoom: Εστίαση
-      add_marker: Προσθέστε ένα δείκτη στο χάρτη
-      latitude: 'Γεω. Πλ:'
-      longitude: 'Γεω. Μη.:'
-      output: Απόδοση
-      paste_html: Επικόλληση HTML για ενσωμάτωση στην ιστοσελίδα
       export_button: Εξαγωγή
     fixthemap:
       title: Αναφέρετε πρόβλημα / Διορθώστε τον χάρτη
@@ -2176,17 +2292,14 @@ el:
         url: https://wiki.openstreetmap.org/wiki/El:Beginners%27_guide
         title: Οδηγός Αρχαρίων
         description: Οδηγός αρχαρίων διατηρούμενος από την κοινότητα.
-      help:
-        title: Î\9aοινÏ\8cÏ\84ηÏ\84α βοήθειας
-        description: Î\9aάνÏ\84ε Î¼Î¯Î± ÎµÏ\81Ï\8eÏ\84ηÏ\83η Î® Î±Î½Î±Î¶Î·Ï\84ήÏ\83εÏ\84ε Î±Ï\80ανÏ\84ήÏ\83ειÏ\82 Ï\83Ï\84ην Î¹Ï\83Ï\84οÏ\83ελίδα ÎµÏ\81Ï\89Ï\84ήÏ\83εÏ\89ν
-          και απαντήσεων του OpenStreetMap.
+      community:
+        title: Î¦Ï\8cÏ\81οÏ\85μ ÎºÎ¿Î¹Î½Ï\8cÏ\84ηÏ\84αÏ\82 & βοήθειας
+        description: Î\88να ÎºÎ¿Î¹Î½Ï\8cÏ\87Ï\81ηÏ\83Ï\84ο Î¼Î­Ï\81οÏ\82 Î³Î¹Î± Î±Î½Î±Î¶Î®Ï\84ηÏ\83η Î²Î¿Î®Î¸ÎµÎ¹Î±Ï\82 ÎºÎ±Î¹ Î³Î¹Î± Ï\83Ï\85νομιλίεÏ\82
+          σχετικά με το OpenStreetMap.
       mailing_lists:
         title: Λίστες Αλληλογραφίας
         description: Κάντε μία ερώτηση ή συζητήστε ενδιαφέροντα θέματα σε ένα ευρύ
           φάσμα τοπικών ή περιφερειακών λιστών αλληλογραφίας.
-      community:
-        title: Φόρουμ κοινότητας
-        description: Ένα κοινόχρηστο μέρος για συνομιλίες σχετικά με το OpenStreetMap.
       irc:
         title: IRC
         description: Διαδραστική συνομιλία σε πολλές διαφορετικές γλώσσες και για
@@ -2242,67 +2355,83 @@ el:
           primary: Κύρια Οδός
           secondary: Δευτερεύουσα Οδός
           unclassified: Αταξινόμητη Οδός
+          pedestrian: Πεζόδρομος
           track: Αγροτικός / Δασικός δρόμος
           bridleway: Μονοπάτι για Άλογα
           cycleway: Ποδηλατόδρομος
           cycleway_national: Εθνικός ποδηλατόδρομος
           cycleway_regional: Περιφερειακός ποδηλατόδρομος
           cycleway_local: Τοπικός ποδηλατόδρομος
+          cycleway_mtb: Ορεινή ποδηλατική διαδρομή
           footway: Μονοπάτι
           rail: Σιδηρόδρομος
+          train: Τρένο
           subway: Υπόγειος Σιδηρόδρομος
-          tram:
-          - Προαστιακός
-          - τραμ
-          cable:
-          - Τελεφερίκ
-          - τελεφερίκ με καθίσματα
-          runway:
-          - Διάδρομος Αεροδρομίου
-          - τροχόδρομος
-          apron:
-          - Πίστα προσγείωσης αεροδρομίου
-          - τερματικός σταθμός
+          ferry: Πορθμείο
+          light_rail: Ελαφρύς σιδηρόδρομος
+          tram: Τραμ
+          trolleybus: Τρόλεϊ
+          bus: Λεωφορείο
+          cable_car: Τελεφερίκ
+          chair_lift: Αναβατήρας
+          runway: Διάδρομος Αεροδρομίου
+          taxiway: Τροχόδρομος
+          apron: Πίστα προσγείωσης αεροδρομίου
           admin: Διοικητικό όριο
+          capital: Πρωτεύουσα
+          city: Πόλη
+          orchard: Περιβόλι
+          vineyard: Αμπελώνας
           forest: Δάσος
           wood: Φυσικό δάσος
+          farmland: Καλλιεργήσιμη έκταση
+          grass: Γρασίδι
+          meadow: Λιβάδι
+          bare_rock: Γυμνός βράχος
+          sand: Άμμος
           golf: Γήπεδο γκολφ
           park: Πάρκο
+          common: Κοινόχρηστο
+          built_up: Δομημένη περιοχή
           resident: Κατοικημένη περιοχή
-          common:
-          - Κοινόχρηστο
-          - λιβάδι
-          - κήπος
           retail: Περιοχή λιανικού εμπορίου
           industrial: Βιομηχανική περιοχή
           commercial: Εμπορική περιοχή
           heathland: Φρυγανότοπος
-          lake:
-          - Λίμνη
-          - ταμιευτήρας
+          scrubland: Θαμνότοπος
+          lake: Λίμνη
+          reservoir: Ταμιευτήρας
+          intermittent_water: Σώμα νερού με διαλείπουσα ροή
+          glacier: Παγετώνας
+          reef: Ύφαλος
+          wetland: Έλος
           farm: Αγρόκτημα
           brownfield: Πρώην βιομηχανική περιοχή
           cemetery: Κοιμητήριο
           allotments: Παραχώρηση γης
           pitch: Γήπεδο αθλήματος
           centre: Αθλητικό κέντρο
+          beach: Παραλία
           reserve: Φυσικό καταφύγιο
           military: Στρατιωτική περιοχή
-          school:
-          - Σχολείο
-          - πανεπιστήμιο
+          school: Σχολείο
+          university: Πανεπιστήμιο
+          hospital: Νοσοκομείο
           building: Σημαντικό κτήριο
           station: Σιδηροδρομικός σταθμός
-          summit:
-          - Κορυφή
-          - κορυφή
+          summit: Κορυφή
+          peak: Κορυφή
           tunnel: Διακεκομμένο περίβλημα = σήραγγα
           bridge: Μαύρο περίβλημα = γέφυρα
           private: Ιδιωτική πρόσβαση
           destination: Πρόσβαση προορισμού
           construction: Δρόμοι υπό κατασκευή
+          bus_stop: Στάση λεωφορείου
+          stop: Στάση
           bicycle_shop: Κατάστημα ποδηλάτων
+          bicycle_rental: Ενοικίαση ποδηλάτων
           bicycle_parking: Χώρος στάθμευσης ποδηλάτων
+          bicycle_parking_small: Μικρό πάρκινγκ ποδηλάτων
           toilets: Τουαλέτες
     welcome:
       title: Καλώς ήρθατε!
@@ -2348,6 +2477,7 @@ el:
         imports: Εισαγωγές
         automated_edits: Αυτοματοποιημένες Επεξεργασίες
       start_mapping: Ξεκινήστε τη Χαρτογράφηση
+      continue_authorization: Συνέχιση Εξουσιοδότησης
       add_a_note:
         title: Δεν έχετε χρόνο για χαρτογράφηση; Προσθέστε μια σημείωση!
         para_1: Εάν θέλετε κάτι μικρό να διορθωθεί και δεν έχετε χρόνο να εγγραφείτε
@@ -2456,7 +2586,7 @@ el:
       my_gps_traces: Τα ίχνη GPS μου
       public_traces_from: Δημόσια ίχνη GPS από τον %{user}
       description: Προβολή πρόσφατων μεταφορτωμένων ιχνών GPS
-      tagged_with: χαρακτηρίστηκαν με %{tags}
+      tagged_with: ' με ετικέτα %{tags}'
       empty_title: Τίποτα εδώ ακόμα
       empty_upload_html: '%{upload_link} ή μάθετε περισσότερα για την ανίχνευση GPS
         στο %{wiki_link}.'
@@ -2506,6 +2636,7 @@ el:
       oauth1_settings: Ρυθμίσεις OAuth 1
       oauth2_applications: Εφαρμογές OAuth 2
       oauth2_authorizations: Εξουσιοδοτήσεις OAuth 2
+      muted_users: Χρήστες σε Σίγαση
   oauth:
     authorize:
       title: Επιτρέψτε την πρόσβαση στο λογαριασμό σας
@@ -2537,6 +2668,7 @@ el:
     permissions:
       missing: Δεν έχετε επιτρέψει την πρόσβαση εφαρμογής σε αυτήν την λειτουργία
     scopes:
+      openid: Συνδεθείτε χρησιμοποιώντας το OpenStreetMap
       read_prefs: Διαβάζει τις προτιμήσεις χρήστη
       write_prefs: Τροποποιεί τις προτιμήσεις χρήστη
       write_diary: Δημιουργήστε καταχωρήσεις ημερολογίου, σχόλια και κάντε φίλους
@@ -2544,20 +2676,22 @@ el:
       read_gpx: Ανάγνωση προσωπικών ιχνών GPS
       write_gpx: Μεταφόρτωση ιχνών GPS
       write_notes: Τροποποίηση σημειώσεων
+      write_redactions: Αφαίρεση και απόκρυψη δεδομένων χάρτη
       read_email: Διαβάζει τη διεύθυνση email χρήστη
       skip_authorization: Αυτόματη έγκριση εφαρμογής
   oauth_clients:
     new:
       title: Καταχώρηση νέας εφαρμογής
+      disabled: Η εγγραφή των εφαρμογών OAuth 1 έχει απενεργοποιηθεί
     edit:
       title: Επεξεργασία της αίτησής σας
     show:
       title: Λεπτομέρειες OAuth για το %{app_name}
-      key: 'Κωδικός Καταναλωτή :'
-      secret: 'Μυστικό του Καταναλωτή:'
+      key: 'Κλειδί Καταναλωτή:'
+      secret: 'Μυστικό Καταναλωτή:'
       url: 'URL αιτήματος αδειοδότησης:'
       access_url: 'URL πρόσβασης αδειοδότησης:'
-      authorize_url: 'Εξουσιοδοτήστε το URL:'
+      authorize_url: 'URL εξουσιοδότησης:'
       support_notice: Υποστηρίζουμε τις υπογραφές HMAC-SHA1 (συνιστάται) και RSA-SHA1.
       edit: Επεξεργασία λεπτομερειών
       delete: Διαγραφή Πελάτη
@@ -2630,8 +2764,9 @@ el:
   oauth2_authorized_applications:
     index:
       title: Οι Εξουσιοδοτημένες Εφαρμογές μου
-      application: Î\95Ï\86αÏ\81μογέÏ\82
+      application: Î\95Ï\86αÏ\81μογή
       permissions: Άδειες
+      last_authorized: Τελευταία Εξουσιοδότηση
       no_applications_html: Δεν έχετε εξουσιοδοτήσει ακόμη %{oauth2} εφαρμογές.
     application:
       revoke: Ανάκληση πρόσβασης
@@ -2663,6 +2798,8 @@ el:
       email_confirmation_help_html: Η διεύθυνσή σας δεν εμφανίζεται δημόσια, ανατρέξτε
         στην %{privacy_policy_link} για περισσότερες πληροφορίες.
       privacy_policy: πολιτική απορρήτου
+      privacy_policy_title: Πολιτική απορρήτου OSMF, συμπεριλαμβανομένης της ενότητας
+        για τις διευθύνσεις ηλεκτρονικού ταχυδρομείου
     terms:
       title: Όροι
       heading: Όροι
@@ -2680,6 +2817,9 @@ el:
       consider_pd: Και επιπρόσθετα στην παραπάνω συμφωνία, καταστώ τις συνεισφορές
         μου στο κοινό κτήμα (για ελεύθερη χρήση)
       consider_pd_why: τι είναι αυτό;
+      guidance_info_html: 'Πληροφορίες για να βοηθήσουν να κατανοήσετε αυτούς τους
+        όρους: a %{readable_summary_link} και μερικά %{informal_translations_link}'
+      readable_summary: περίληψη αναγνώσιμη από τον άνθρωπο
       informal_translations: ανεπίσημες μεταφράσεις
       continue: Συνέχεια
       decline: Διαφωνώ
@@ -2714,6 +2854,8 @@ el:
       my_dashboard: Το ταμπλό μου
       blocks on me: Φραγές σε Εμένα
       blocks by me: Φραγές από Εμένα
+      create_mute: Σίγαση αυτού του χρήστη
+      destroy_mute: Κατάργηση σίγασης αυτού του χρήστη
       edit_profile: Επεξεργασία προφίλ
       send message: Αποστολή Μηνύματος
       diary: Ημερολόγιο
@@ -2723,10 +2865,10 @@ el:
       remove as friend: Αφαίρεση Φίλου
       add as friend: Προσθήκη Φίλου
       mapper since: 'Χαρτογράφος από:'
+      uid: 'Id χρήστη:'
       ct status: 'Όροι συνεισφοράς:'
       ct undecided: Αναποφάσιστος
       ct declined: Απορρίφθηκε
-      latest edit: 'Τελευταία επεξεργασία (%{ago}):'
       email address: 'Διεύθυνση Ηλ. Ταχυδρομείου:'
       created from: 'Δημιουργήθηκε από:'
       status: 'Κατάσταση:'
@@ -2734,14 +2876,18 @@ el:
       role:
         administrator: Αυτός ο χρήστης είναι διαχειριστής
         moderator: Αυτός ο χρήστης είναι συντονιστής
+        importer: Αυτός ο χρήστης είναι εισαγωγέας
         grant:
           administrator: Χορήγηση πρόσβασης διαχειριστή
           moderator: Χορήγηση πρόσβασης συντονιστή
+          importer: Παραχήρηση πρόσβασης για εισαγωγέα
         revoke:
           administrator: Ανακαλέστε την πρόσβαση διαχειριστή
           moderator: Ανάκληση πρόσβασης συντονιστή
+          importer: Ανάκληση πρόσβασης εισαγωγέα
       block_history: Ενεργές Φραγές
       moderator_history: Φραγές που Επιβλήθηκαν
+      revoke_all_blocks: Ανάκληση όλων των φραγών
       comments: Σχόλια
       create_block: Φραγή αυτού του Χρήστη
       activate_user: Ενεργοποίηση αυτού του λογαριασμού Χρήστη
@@ -2850,11 +2996,21 @@ el:
     revoke:
       title: Ανάκληση φραγής του/της %{block_on}
       heading_html: Ανάκληση φραγής του/της %{block_on} από τον/την %{block_by}
-      time_future: Αυτή η φραγή θα λήξει στις %{time}.
-      past: Αυτή η φραγή τελείωσε %{time} και δεν μπορεί να ανακληθεί τώρα.
+      time_future_html: Αυτή η φραγή θα λήξει στις %{time}.
+      past_html: Αυτή η φραγή τελείωσε %{time} και δεν μπορεί να ανακληθεί τώρα.
       confirm: Είστε σίγουρος πως επιθυμείτε να ανακαλέσετε αυτή τη φραγή;
       revoke: Ανακαλέστε!
       flash: Αυτή η φραγή έχει ανακληθεί.
+    revoke_all:
+      title: Ανάκληση όλων των φραγών σε %{block_on}
+      heading_html: Ανάκληση όλων των φραγών σε %{block_on}
+      empty: Ο χρήστης %{name} δεν έχει ενεργές φραγές.
+      confirm: Είστε σίγουροι ότι θέλετε να ανακαλέσετε %{active_blocks};
+      active_blocks:
+        one: '%{count} ενεργή φραγή'
+        other: '%{count} ενεργές φραγές'
+      revoke: Ανάκληση!
+      flash: Όλες οι ενεργές φραγές έχουν ανακληθεί.
     helper:
       time_future_html: Τελειώνει σε %{time}.
       until_login: Ενεργό έως ότου ο χρήστης συνδεθεί.
@@ -2913,11 +3069,38 @@ el:
       showing_page: Σελίδα %{page}
       next: Επόμενη »
       previous: « Προηγούμενη
+  user_mutes:
+    index:
+      title: Χρήστες σε Σίγαση
+      my_muted_users: Οι χρήστες μου σε σίγαση
+      you_have_muted_n_users:
+        one: Έχετε θέσει σε σίγαση %{count} χρήστη
+        other: Έχετε θέσει σε σίγαση %{count} χρήστες
+      user_mute_explainer: Τα μηνύματα των χρηστών σε σίγαση μετακινούνται σε ξεχωριστά
+        Εισερχόμενα και δεν θα λαμβάνετε ειδοποιήσεις μέσω email.
+      user_mute_admins_and_moderators: Μπορείτε να θέσετε σε σίγαση τους Διαχειριστές
+        και τους Συντονιστές αλλά δεν θα γίνει σίγαση των μηνυμάτων τους.
+      table:
+        thead:
+          muted_user: Χρήστης σε Σίγαση
+          actions: Ενέργειες
+        tbody:
+          unmute: Κατάργηση σίγασης
+          send_message: Αποστολή μηνύματος
+    create:
+      notice: Θέσατε σε σίγαση τον χρήστη %{name}.
+      error: Ο χρήστης %{name} δεν μπόρεσε να τεθεί σε σίγαση. %{full_message}.
+    destroy:
+      notice: Καταργήσατε τη σίγαση του χρήστη %{name}.
+      error: Δεν ήταν δυνατή η κατάργηση της σίγασης του χρήστη. Παρακαλούμε προσπαθήστε
+        ξανά.
   notes:
     index:
-      title: Σημειώσεις που υποβλήθηκαν ή σχολιάστηκαν από τον %{user}
-      heading: σημειώσεις του %{user}
-      subheading_html: Σημειώσεις που %{submitted} ή %{commented} από τον %{user}
+      title: Σημειώσεις που υποβλήθηκαν ή σχολιάστηκαν από τον χρήστη %{user}
+      heading: Σημειώσεις του χρήστη %{user}
+      subheading_html: Σημειώσεις που %{submitted} ή %{commented} από τον χρήστη %{user}
+      subheading_submitted: υποβλήθηκε
+      subheading_commented: σχολιάστηκε
       no_notes: Χωρίς σημειώσεις
       id: Αναγνωριστικό
       creator: Δημιουργός
@@ -2947,6 +3130,7 @@ el:
       reactivate: Επανενεργοποίηση
       comment_and_resolve: Σχολιάστε και Επιλύστε
       comment: Σχολιάζω
+      log_in_to_comment: Συνδεθείτε για να σχολιάσετε σε αυτή την σημείωση
       report_link_html: Εάν αυτή η σημείωση περιέχει ευαίσθητες πληροφορίες που πρέπει
         να αφαιρεθούν, μπορείτε %{link}.
       other_problems_resolve: Για όλα τα άλλα προβλήματα με τη σημείωση, επιλύστε
@@ -3008,8 +3192,8 @@ el:
         cyclosm: CyclOSM ποδηλασία
         cycle_map: Ποδηλασία
         transport_map: Συγκοινωνία
+        tracestracktop_topo: Tracetrack Topo
         hot: Ανθρωπιστικός
-        opnvkarte: ÖPNVKarte συγκοινωνίες
       layers:
         header: Στρώματα
         notes: Σημειώσεις χάρτη
@@ -3020,9 +3204,12 @@ el:
       openstreetmap_contributors: Συνεισφέροντες OpenStreetMap
       make_a_donation: Κάντε μια δωρεά
       website_and_api_terms: Όροι ιστότοπου και API
+      cyclosm_credit: Στυλ πλακιδίων από %{cyclosm_link} φιλοξενημένο από %{osm_france_link}
       osm_france: OpenStreetMap Γαλλίας
+      thunderforest_credit: Πλακίδια ευγενική προσφορά του %{thunderforest_link}
       andy_allan: Andy Allan
-      memomaps: MeMoMaps
+      tracestrack_credit: Πλακίδια ευγενική προσφορά του %{tracestrack_link}
+      hotosm_credit: Στυλ πλακιδίων από %{hotosm_link} φιλοξενημένο από %{osm_france_link}
       hotosm_name: Humanitarian OpenStreetMap Team
     site:
       edit_tooltip: Επεξεργασία του χάρτη
@@ -3035,6 +3222,8 @@ el:
       queryfeature_tooltip: Πληροφορίες χαρακτηριστικών
       queryfeature_disabled_tooltip: Μεγεθύνετε τον χάρτη για να μάθετε περισσότερα
         για διάφορα χαρακτηριστικά
+      embed_html_disabled: Η ενσωμάτωση HTML δεν είναι διαθέσιμη γι' αυτό το στρώμα
+        χάρτη
     changesets:
       show:
         comment: Σχολιάζω
index 3fbb69c26d3ddad7a9b6f5a95d2efe1c60210345..6d3be7da84907427c5994a4b64c5ecbb776f0634 100644 (file)
@@ -5,6 +5,7 @@
 # Author: Alefar
 # Author: Andibing
 # Author: BEANS
+# Author: Back ache
 # Author: Bjh21
 # Author: Bpfhjquevaps
 # Author: Bruce89
@@ -170,41 +171,41 @@ en-GB:
   datetime:
     distance_in_words_ago:
       about_x_hours:
-        one: about 1 hour ago
+        one: about %{count} hour ago
         other: about %{count} hours ago
       about_x_months:
-        one: about 1 month ago
+        one: about %{count} month ago
         other: about %{count} months ago
       about_x_years:
-        one: about 1 year ago
+        one: about %{count} year ago
         other: about %{count} years ago
       almost_x_years:
-        one: almost 1 year ago
+        one: almost %{count} year ago
         other: almost %{count} years ago
       half_a_minute: half a minute ago
       less_than_x_seconds:
-        one: less than 1 second ago
+        one: less than %{count} second ago
         other: less than %{count} seconds ago
       less_than_x_minutes:
-        one: less than a minute ago
+        one: less than %{count} minute ago
         other: less than %{count} minutes ago
       over_x_years:
-        one: over 1 year ago
+        one: over %{count} year ago
         other: over %{count} years ago
       x_seconds:
-        one: 1 second ago
+        one: '%{count} second ago'
         other: '%{count} seconds ago'
       x_minutes:
-        one: 1 minute ago
+        one: '%{count} minute ago'
         other: '%{count} minutes ago'
       x_days:
-        one: 1 day ago
+        one: '%{count} day ago'
         other: '%{count} days ago'
       x_months:
-        one: 1 month ago
+        one: '%{count} month ago'
         other: '%{count} months ago'
       x_years:
-        one: 1 year ago
+        one: '%{count} year ago'
         other: '%{count} years ago'
   editor:
     default: Default (currently %{name})
@@ -217,7 +218,6 @@ en-GB:
   auth:
     providers:
       none: None
-      openid: OpenID
       google: Google
       facebook: Facebook
       github: GitHub
@@ -297,12 +297,8 @@ en-GB:
       way_paginated: Ways (%{x}-%{y} of %{count})
       relation: Relations (%{count})
       relation_paginated: Relations (%{x}-%{y} of %{count})
-      comment: Comments (%{count})
       changesetxml: Changeset XML
       osmchangexml: osmChange XML
-      feed:
-        title: Changeset %{id}
-        title_comment: Changeset %{id} - %{comment}
       join_discussion: Log in to join the discussion
       discussion: Discussion
       still_open: Changeset still open - discussion will open once the changeset is
@@ -403,6 +399,9 @@ en-GB:
       no_more_area: No more changesets in this area.
       no_more_user: No more changesets by this user.
       load_more: Load more
+      feed:
+        title: Changeset %{id}
+        title_comment: Changeset %{id} - %{comment}
     timeout:
       sorry: Sorry, the list of changesets you requested took too long to retrieve.
   changeset_comments:
@@ -421,6 +420,7 @@ en-GB:
     contact:
       km away: '%{count}km away'
       m away: '%{count}m away'
+      latest_edit_html: 'Latest edit (%{ago}):'
     popup:
       your location: Your location
       nearby mapper: Nearby mapper
@@ -472,7 +472,6 @@ en-GB:
       comment_link: Comment on this entry
       reply_link: Send a message to the author
       comment_count:
-        zero: No comments
         one: '%{count} comment'
         other: '%{count} comments'
       edit_link: Edit this entry
@@ -506,6 +505,14 @@ en-GB:
       comment: Comment
       newer_comments: Newer Comments
       older_comments: Older Comments
+  doorkeeper:
+    errors:
+      messages:
+        account_selection_required: The authorisation server requires end-user account
+          selection
+        consent_required: The authorisation server requires end-user consent
+        interaction_required: The authorisation server requires end-user interaction
+        login_required: The authorisation server requires end-user authentication
   friendships:
     make_friend:
       heading: Add %{user} as a friend?
@@ -1264,7 +1271,6 @@ en-GB:
   messages:
     inbox:
       title: Inbox
-      my_inbox: My Inbox
       messages: You have %{new_messages} and %{old_messages}
       new_messages:
         one: '%{count} new message'
@@ -1272,12 +1278,14 @@ en-GB:
       old_messages:
         one: '%{count} old message'
         other: '%{count} old messages'
-      from: From
-      subject: Subject
-      date: Date
       no_messages_yet_html: You have no messages yet. Why not get in touch with some
         of the %{people_mapping_nearby_link}?
       people_mapping_nearby: people mapping nearby
+    messages_table:
+      from: From
+      to: To
+      subject: Subject
+      date: Date
     message_summary:
       unread_button: Mark as unread
       read_button: Mark as read
@@ -1300,9 +1308,6 @@ en-GB:
       messages:
         one: You have %{count} sent message
         other: You have %{count} sent messages
-      to: To
-      subject: Subject
-      date: Date
       no_sent_messages_html: You have no sent messages yet. Why not get in touch with
         some of the %{people_mapping_nearby_link}?
       people_mapping_nearby: people mapping nearby
@@ -1321,28 +1326,32 @@ en-GB:
         order to read it.
     sent_message_summary:
       destroy_button: Delete
+    heading:
+      my_inbox: My Inbox
     mark:
       as_read: Message marked as read
       as_unread: Message marked as unread
     destroy:
       destroyed: Message deleted
   passwords:
-    lost_password:
+    new:
       title: Lost password
       heading: Forgotten Password?
-      email address: E-mail address
+      email address: E-mail Address
       new password button: Reset password
       help_text: Enter the e-mail address you used to sign up, we will send a link
         to it that you can use to reset your password.
+    create:
       notice email on way: Sorry you lost it :-( but an email is on its way so you
         can reset it soon.
       notice email cannot find: Could not find that email address, sorry.
-    reset_password:
+    edit:
       title: Reset password
       heading: Reset Password for %{user}
       reset: Reset Password
-      flash changed: Your password has been changed.
       flash token bad: Did not find that token, check the URL maybe?
+    update:
+      flash changed: Your password has been changed.
   profiles:
     edit:
       image: Image
@@ -1362,9 +1371,8 @@ en-GB:
     new:
       title: Login
       heading: Login
-      email or username: 'E-mail Address or Username:'
-      password: 'Password:'
-      openid_html: '%{logo} OpenID:'
+      email or username: E-mail Address or Username
+      password: Password
       remember: Remember me
       lost password link: Lost your password?
       login_button: Login
@@ -1384,8 +1392,8 @@ en-GB:
           title: Login with Facebook
           alt: Login with a Facebook Account
         microsoft:
-          title: Login with Windows Live
-          alt: Login with a Windows Live Account
+          title: Login with Microsoft
+          alt: Login with a Microsoft Account
         github:
           title: Login with GitHub
           alt: Login with a GitHub Account
@@ -1470,12 +1478,7 @@ en-GB:
         for this feature.
     export:
       title: Export
-      area_to_export: Area to Export
       manually_select: Manually select a different area
-      format_to_export: Format to Export
-      osm_xml_data: OpenStreetMap XML Data
-      map_image: Map Image (shows standard layer)
-      embeddable_html: Embeddable HTML
       licence: Licence
       too_large:
         advice: 'If the above export fails, please consider using one of the sources
@@ -1497,17 +1500,6 @@ en-GB:
         other:
           title: Other Sources
           description: Additional sources listed on the OpenStreetMap wiki
-      options: Options
-      format: Format
-      scale: Scale
-      max: max
-      image_size: Image Size
-      zoom: Zoom
-      add_marker: Add a marker to the map
-      latitude: 'Lat:'
-      longitude: 'Lon:'
-      output: Output
-      paste_html: Paste HTML to embed in website
       export_button: Export
     fixthemap:
       title: Report a problem/Fix the map
@@ -1532,10 +1524,6 @@ en-GB:
       beginners_guide:
         title: Beginners' Guide
         description: Community maintained guide for beginners.
-      help:
-        title: Help Forum
-        description: Ask a question or look up answers on OpenStreetMap's question-and-answer
-          site.
       mailing_lists:
         title: Mailing Lists
         description: Ask a question or discuss interesting matters on a wide range
@@ -1583,34 +1571,24 @@ en-GB:
           footway: Footway
           rail: Railway
           subway: Subway
-          tram:
-          - Light rail
-          - tram
-          cable:
-          - Cable car
-          - chairlift
-          runway:
-          - Airport Runway
-          - taxiway
-          apron:
-          - Airport apron
-          - terminal
+          cable_car: Cable car
+          chair_lift: Chair lift
+          runway: Airport Runway
+          taxiway: Taxiway
+          apron: Airport apron
           admin: Administrative boundary
           forest: Forest
           wood: Wood
           golf: Golf course
           park: Park
+          common: Common
           resident: Residential area
-          common:
-          - Common
-          - meadow
           retail: Retail area
           industrial: Industrial area
           commercial: Commercial area
           heathland: Heathland
-          lake:
-          - Lake
-          - reservoir
+          lake: Lake
+          reservoir: Reservoir
           farm: Farm
           brownfield: Brownfield site
           cemetery: Cemetery
@@ -1619,14 +1597,12 @@ en-GB:
           centre: Sports centre
           reserve: Nature reserve
           military: Military area
-          school:
-          - School
-          - university
+          school: School
+          university: University
           building: Significant building
           station: Railway station
-          summit:
-          - Summit
-          - peak
+          summit: Summit
+          peak: Peak
           tunnel: Dashed casing = tunnel
           bridge: Black casing = bridge
           private: Private access
@@ -1707,7 +1683,7 @@ en-GB:
     trace:
       pending: PENDING
       count_points:
-        one: 1 point
+        one: '%{count} point'
         other: '%{count} points'
       more: more
       trace_details: View Trace Details
@@ -1883,7 +1859,6 @@ en-GB:
       ct status: 'Contributor terms:'
       ct undecided: Undecided
       ct declined: Declined
-      latest edit: 'Latest edit (%{ago}):'
       email address: 'Email address:'
       created from: 'Created from:'
       status: 'Status:'
@@ -1993,8 +1968,8 @@ en-GB:
     revoke:
       title: Revoking block on %{block_on}
       heading_html: Revoking block on %{block_on} by %{block_by}
-      time_future: This block will end in %{time}.
-      past: This block ended %{time} and cannot be revoked now.
+      time_future_html: This block will end in %{time}.
+      past_html: This block ended %{time} and cannot be revoked now.
       confirm: Are you sure you wish to revoke this block?
       revoke: Revoke!
       flash: This block has been revoked.
@@ -2006,7 +1981,7 @@ en-GB:
       time_past_html: Ended %{time}.
       block_duration:
         hours:
-          one: 1 hour
+          one: '%{count} hour'
           other: '%{count} hours'
     blocks_on:
       title: Blocks on %{name}
@@ -2047,7 +2022,7 @@ en-GB:
     index:
       title: Notes submitted or commented on by %{user}
       heading: '%{user}''s notes'
-      subheading_html: Notes submitted or commented on by %{user}
+      subheading_html: Notes %{submitted} or %{commented} by %{user}
       id: Id
       creator: Creator
       description: Description
index 1a41dcce814de5f00882f7393c780f5b616f12c6..2f1e4d016f717f96bb0f133456acea3e1348af62 100644 (file)
@@ -40,6 +40,13 @@ en:
       messages:
         invalid_email_address: does not appear to be a valid e-mail address
         email_address_not_routable: is not routable
+        display_name_is_user_n: can't be user_n unless n is your user id
+      models:
+        user_mute:
+          attributes:
+            subject:
+              format: "%{message}"
+          is_already_muted: "is already muted"
     # Translates all the model names, which is used in error handling on the website
     models:
       acl: "Access Control List"
@@ -197,9 +204,9 @@ en:
         one: "%{count} year ago"
         other: "%{count} years ago"
   printable_name:
-    with_id: "%{id}"
-    with_version: "%{id}, v%{version}"
+    version: "v%{version}"
     with_name_html: "%{name} (%{id})"
+    current_and_old_links_html: "%{current_link}, %{old_link}"
   editor:
     default: "Default (currently %{name})"
     id:
@@ -256,6 +263,7 @@ en:
         retain_notes: Your map notes and note comments, if any, will be retained but hidden from view.
         retain_changeset_discussions: Your changeset discussions, if any, will be retained.
         retain_email: Your email address will be retained.
+        recent_editing_html: "As you have edited recently your account cannot currently be deleted. Deletion will be possible in %{time}."
         confirm_delete: Are you sure?
         cancel: Cancel
   accounts:
@@ -334,14 +342,10 @@ en:
       way_paginated: "Ways (%{x}-%{y} of %{count})"
       relation: "Relations (%{count})"
       relation_paginated: "Relations (%{x}-%{y} of %{count})"
-      comment: "Comments (%{count})"
       hidden_comment_by_html: "Hidden comment from %{user} %{time_ago}"
       comment_by_html: "Comment from %{user} %{time_ago}"
       changesetxml: "Changeset XML"
       osmchangexml: "osmChange XML"
-      feed:
-        title: "Changeset %{id}"
-        title_comment: "Changeset %{id} - %{comment}"
       join_discussion: "Log in to join the discussion"
       discussion: Discussion
       still_open: "Changeset still open - discussion will open once the changeset is closed."
@@ -420,6 +424,15 @@ en:
       introduction: "Click on the map to find nearby features."
       nearby: "Nearby features"
       enclosing: "Enclosing features"
+  old_nodes:
+    not_found:
+      sorry: "Sorry, node #%{id} version %{version} could not be found."
+  old_ways:
+    not_found:
+      sorry: "Sorry, way #%{id} version %{version} could not be found."
+  old_relations:
+    not_found:
+      sorry: "Sorry, relation #%{id} version %{version} could not be found."
   changesets:
     changeset_paging_nav:
       showing_page: "Page %{page}"
@@ -448,6 +461,22 @@ en:
       no_more_area: "No more changesets in this area."
       no_more_user: "No more changesets by this user."
       load_more: "Load more"
+      feed:
+        title: "Changeset %{id}"
+        title_comment: "Changeset %{id} - %{comment}"
+    subscribe:
+      heading: Subscribe to the following changeset discussion?
+      button: Subscribe to discussion
+    unsubscribe:
+      heading: Unsubscribe from the following changeset discussion?
+      button: Unsubscribe from discussion
+    heading:
+      title: "Changeset %{id}"
+      created_by_html: "Created by %{link_user} on %{created}."
+    no_such_entry:
+      title: "No such changeset"
+      heading: "No entry with the id: %{id}"
+      body: "Sorry, there is no changeset with the id %{id}. Please check your spelling, or maybe the link you clicked is wrong."
     timeout:
       sorry: "Sorry, the list of changesets you requested took too long to retrieve."
   changeset_comments:
@@ -507,6 +536,7 @@ en:
     show:
       title: "%{user}'s Diary | %{title}"
       user_title: "%{user}'s Diary"
+      discussion: "Discussion"
       leave_a_comment: "Leave a comment"
       login_to_leave_a_comment_html: "%{login_link} to leave a comment"
       login: "Login"
@@ -559,6 +589,12 @@ en:
       comment: Comment
       newer_comments: "Newer Comments"
       older_comments: "Older Comments"
+    subscribe:
+      heading: Subscribe to the following diary entry discussion?
+      button: Subscribe to discussion
+    unsubscribe:
+      heading: Unsubscribe from the following diary entry discussion?
+      button: Unsubscribe from discussion
   doorkeeper:
     errors:
       messages:
@@ -1432,9 +1468,9 @@ en:
         one: "%{count} report"
         other: "%{count} reports"
       no_reports: No reports
-      report_created_at: "First reported at %{datetime}"
-      last_resolved_at: "Last resolved at %{datetime}"
-      last_updated_at: "Last updated at %{datetime} by %{displayname}"
+      report_created_at_html: "First reported at %{datetime}"
+      last_resolved_at_html: "Last resolved at %{datetime}"
+      last_updated_at_html: "Last updated at %{datetime} by %{displayname}"
       resolve: Resolve
       ignore: Ignore
       reopen: Reopen
@@ -1548,12 +1584,15 @@ en:
     more: More
   user_mailer:
     diary_comment_notification:
+      description: "OpenStreetMap Diary Entry #%{id}"
       subject: "[OpenStreetMap] %{user} commented on a diary entry"
       hi: "Hi %{to_user},"
       header: "%{from_user} has commented on the OpenStreetMap diary entry with the subject %{subject}:"
       header_html: "%{from_user} has commented on the OpenStreetMap diary entry with the subject %{subject}:"
       footer: "You can also read the comment at %{readurl} and you can comment at %{commenturl} or send a message to the author at %{replyurl}"
       footer_html: "You can also read the comment at %{readurl} and you can comment at %{commenturl} or send a message to the author at %{replyurl}"
+      footer_unsubscribe: "You can unsubscribe from the discussion at %{unsubscribeurl}"
+      footer_unsubscribe_html: "You can unsubscribe from the discussion at %{unsubscribeurl}"
     message_notification:
       subject: "[OpenStreetMap] %{message_title}"
       hi: "Hi %{to_user},"
@@ -1583,6 +1622,7 @@ en:
       loaded:
         one: "loaded successfully with %{trace_points} out of a possible %{count} point."
         other: "loaded successfully with %{trace_points} out of a possible %{count} points."
+      all_your_traces_html: "All your successfully uploaded GPX traces can be found at %{url}."
       subject: "[OpenStreetMap] GPX Import success"
     signup_confirm:
       subject: "[OpenStreetMap] Welcome to OpenStreetMap"
@@ -1601,6 +1641,7 @@ en:
       hopefully_you: "Someone (possibly you) has asked for the password to be reset on this email address's openstreetmap.org account."
       click_the_link: "If this is you, please click the link below to reset your password."
     note_comment_notification:
+      description: "OpenStreetMap Note #%{id}"
       anonymous: An anonymous user
       greeting: "Hi,"
       commented:
@@ -1627,6 +1668,7 @@ en:
       details: "More details about the note can be found at %{url}."
       details_html: "More details about the note can be found at %{url}."
     changeset_comment_notification:
+      description: "OpenStreetMap Changeset #%{id}"
       hi: "Hi %{to_user},"
       greeting: "Hi,"
       commented:
@@ -1641,8 +1683,8 @@ en:
         partial_changeset_without_comment: "without comment"
       details: "More details about the changeset can be found at %{url}."
       details_html: "More details about the changeset can be found at %{url}."
-      unsubscribe: 'To unsubscribe from updates to this changeset, visit %{url} and click "Unsubscribe".'
-      unsubscribe_html: 'To unsubscribe from updates to this changeset, visit %{url} and click "Unsubscribe".'
+      unsubscribe: "You can unsubscribe from updates to this changeset at %{url}."
+      unsubscribe_html: "You can unsubscribe from updates to this changeset at %{url}."
   confirmations:
     confirm:
       heading: Check your email!
@@ -1672,8 +1714,6 @@ en:
   messages:
     inbox:
       title: "Inbox"
-      my_inbox: "My Inbox"
-      my_outbox: "My Outbox"
       messages: "You have %{new_messages} and %{old_messages}"
       new_messages:
         one: "%{count} new message"
@@ -1681,16 +1721,20 @@ en:
       old_messages:
         one: "%{count} old message"
         other: "%{count} old messages"
+      no_messages_yet_html: "You have no messages yet. Why not get in touch with some of the %{people_mapping_nearby_link}?"
+      people_mapping_nearby: "people mapping nearby"
+    messages_table:
       from: "From"
+      to: "To"
       subject: "Subject"
       date: "Date"
-      no_messages_yet_html: "You have no messages yet. Why not get in touch with some of the %{people_mapping_nearby_link}?"
-      people_mapping_nearby: "people mapping nearby"
+      actions: "Actions"
     message_summary:
       unread_button: "Mark as unread"
       read_button: "Mark as read"
       reply_button: "Reply"
       destroy_button: "Delete"
+      unmute_button: "Move to Inbox"
     new:
       title: "Send message"
       send_message_to_html: "Send a new message to %{name}"
@@ -1704,16 +1748,17 @@ en:
       body: "Sorry there is no message with that id."
     outbox:
       title: "Outbox"
-      my_inbox: "My Inbox"
-      my_outbox: "My Outbox"
+      actions: "Actions"
       messages:
         one: "You have %{count} sent message"
         other: "You have %{count} sent messages"
-      to: "To"
-      subject: "Subject"
-      date: "Date"
       no_sent_messages_html: "You have no sent messages yet. Why not get in touch with some of the %{people_mapping_nearby_link}?"
       people_mapping_nearby: "people mapping nearby"
+    muted:
+      title: "Muted Messages"
+      messages:
+        one: "%{count} muted message"
+        other: "You have %{count} muted messages"
     reply:
       wrong_user: "You are logged in as `%{user}' but the message you have asked to reply to was not sent to that user. Please login as the correct user in order to reply."
     show:
@@ -1725,24 +1770,34 @@ en:
       wrong_user: "You are logged in as `%{user}' but the message you have asked to read was not sent by or to that user. Please login as the correct user in order to read it."
     sent_message_summary:
       destroy_button: "Delete"
+    heading: 
+      my_inbox: "My Inbox"
+      my_outbox: "My Outbox"
+      muted_messages: "Muted messages"
     mark:
       as_read: "Message marked as read"
       as_unread: "Message marked as unread"
+    unmute:
+      notice: "Message has been moved to Inbox"
+      error: "The message could not be moved to the Inbox."
     destroy:
       destroyed: "Message deleted"
   passwords:
-    lost_password:
+    new:
       title: "Lost password"
       heading: "Forgotten Password?"
-      email address: "Email Address:"
+      email address: "Email Address"
       new password button: "Reset password"
       help_text: "Enter the email address you used to sign up, we will send a link to it that you can use to reset your password."
+    create:
       notice email on way: "Sorry you lost it :-( but an email is on its way so you can reset it soon."
       notice email cannot find: "Could not find that email address, sorry."
-    reset_password:
+    edit:
       title: "Reset password"
       heading: "Reset Password for %{user}"
       reset: "Reset Password"
+      flash token bad: "Did not find that token, check the URL maybe?"
+    update:
       flash changed: "Your password has been changed."
       flash token bad: "Did not find that token, check the URL maybe?"
   preferences:
@@ -1789,9 +1844,9 @@ en:
     new:
       title: "Login"
       heading: "Login"
-      email or username: "Email Address or Username:"
-      password: "Password:"
-      openid_html: "%{logo} OpenID:"
+      email or username: "Email Address or Username"
+      password: "Password"
+      openid_html: "%{logo} OpenID"
       remember: "Remember me"
       lost password link: "Lost your password?"
       login_button: "Login"
@@ -1850,6 +1905,7 @@ en:
       image: Image
       alt: Alt text
       url: URL
+      codeblock: Code block
     richtext_field:
       edit: Edit
       preview: Preview
@@ -2140,12 +2196,7 @@ en:
       no_iframe_support: "Your browser doesn't support HTML iframes, which are necessary for this feature."
     export:
       title: "Export"
-      area_to_export: "Area to Export"
       manually_select: "Manually select a different area"
-      format_to_export: "Format to Export"
-      osm_xml_data: "OpenStreetMap XML Data"
-      map_image: "Map Image (shows standard layer)"
-      embeddable_html: "Embeddable HTML"
       licence: "Licence"
       licence_details_html: OpenStreetMap data is licensed under the %{odbl_link} (ODbL).
       odbl: Open Data Commons Open Database License
@@ -2165,17 +2216,6 @@ en:
         other:
           title: "Other Sources"
           description: "Additional sources listed on the OpenStreetMap Wiki"
-      options: "Options"
-      format: "Format"
-      scale: "Scale"
-      max: "max"
-      image_size: "Image Size"
-      zoom: "Zoom"
-      add_marker: "Add a marker to the map"
-      latitude: "Lat:"
-      longitude: "Lon:"
-      output: "Output"
-      paste_html: "Paste HTML to embed in website"
       export_button: "Export"
     fixthemap:
       title: Report a problem / Fix the map
@@ -2212,18 +2252,14 @@ en:
         url: https://wiki.openstreetmap.org/wiki/Beginners%27_guide
         title: Beginners' Guide
         description: Community maintained guide for beginners.
-      help:
-        url: https://help.openstreetmap.org/
-        title: Help Forum
-        description: Ask a question or look up answers on OpenStreetMap's question-and-answer site.
+      community:
+        url: https://community.openstreetmap.org/
+        title: Help & Community Forum
+        description: A shared place for to seek help and have conversations about OpenStreetMap.
       mailing_lists:
         url: https://lists.openstreetmap.org/
         title: Mailing Lists
         description: Ask a question or discuss interesting matters on a wide range of topical or regional mailing lists.
-      community:
-        url: https://community.openstreetmap.org/
-        title: Community forum
-        description: A shared place for conversations about OpenStreetMap.
       irc:
         url: https://irc.openstreetmap.org/
         title: IRC
@@ -2278,67 +2314,83 @@ en:
           primary: "Primary road"
           secondary: "Secondary road"
           unclassified: "Unclassified road"
+          pedestrian: "Pedestrian way"
           track: "Track"
           bridleway: "Bridleway"
           cycleway: "Cycleway"
           cycleway_national: "National cycleway"
           cycleway_regional: "Regional cycleway"
           cycleway_local: "Local cycleway"
+          cycleway_mtb: "Mountain bike route"
           footway: "Footway"
           rail: "Railway"
+          train: "Train"
           subway: "Subway"
-          tram:
-            - Light rail
-            - tram
-          cable:
-            - Cable car
-            - chair lift
-          runway:
-            - Airport Runway
-            - taxiway
-          apron:
-            - Airport apron
-            - terminal
+          ferry: "Ferry"
+          light_rail: "Light rail"
+          tram: "Tram"
+          trolleybus: "Trolleybus"
+          bus: "Bus"
+          cable_car: "Cable car"
+          chair_lift: "Chair lift"
+          runway: "Airport Runway"
+          taxiway: "Taxiway"
+          apron: "Airport apron"
           admin: "Administrative boundary"
+          capital: "Capital"
+          city: "City"
+          orchard: "Orchard"
+          vineyard: "Vineyard"
           forest: "Forest"
           wood: "Wood"
+          farmland: "Farmland"
+          grass: "Grass"
+          meadow: "Meadow"
+          bare_rock: "Bare rock"
+          sand: "Sand"
           golf: "Golf course"
           park: "Park"
+          common: "Common"
+          built_up: "Built-up area"
           resident: "Residential area"
-          common:
-            - Common
-            - meadow
-            - garden
           retail: "Retail area"
           industrial: "Industrial area"
           commercial: "Commercial area"
           heathland: "Heathland"
-          lake:
-            - Lake
-            - reservoir
+          scrubland: "Scrubland"
+          lake: "Lake"
+          reservoir: "Reservoir"
+          intermittent_water: "Intermittent waterbody"
+          glacier: "Glacier"
+          reef: "Reef"
+          wetland: "Wetland"
           farm: "Farm"
           brownfield: "Brownfield site"
           cemetery: "Cemetery"
           allotments: "Allotments"
           pitch: "Sports pitch"
           centre: "Sports centre"
+          beach: "Beach"
           reserve: "Nature reserve"
           military: "Military area"
-          school:
-            - School
-            - university
+          school: "School"
+          university: "University"
+          hospital: "Hospital"
           building: "Significant building"
           station: "Railway station"
-          summit:
-            - Summit
-            - peak
+          summit: "Summit"
+          peak: "Peak"
           tunnel: "Dashed casing = tunnel"
           bridge: "Black casing = bridge"
           private: "Private access"
           destination: "Destination access"
           construction: "Roads under construction"
+          bus_stop: "Bus stop"
+          stop: "Stop"
           bicycle_shop: "Bicycle shop"
+          bicycle_rental: "Bicycle rental"
           bicycle_parking: "Bicycle parking"
+          bicycle_parking_small: "Small bicycle parking"
           toilets: "Toilets"
     welcome:
       title: Welcome!
@@ -2382,6 +2434,7 @@ en:
         automated_edits: Automated Edits
         automated_edits_url: https://wiki.openstreetmap.org/wiki/Automated_Edits_code_of_conduct
       start_mapping: Start Mapping
+      continue_authorization: Continue Authorization
       add_a_note:
         title: No Time To Edit? Add a Note!
         para_1: |
@@ -2532,6 +2585,7 @@ en:
       oauth1_settings: OAuth 1 settings
       oauth2_applications: OAuth 2 applications
       oauth2_authorizations: OAuth 2 authorizations
+      muted_users: Muted Users
   oauth:
     authorize:
       title: "Authorize access to your account"
@@ -2566,11 +2620,13 @@ en:
       read_gpx: Read private GPS traces
       write_gpx: Upload GPS traces
       write_notes: Modify notes
+      write_redactions: Redact map data
       read_email: Read user email address
       skip_authorization: Auto approve application
   oauth_clients:
     new:
       title: "Register a new application"
+      disabled: "Registration of OAuth 1 applications has been disabled"
     edit:
       title: "Edit your application"
     show:
@@ -2649,7 +2705,9 @@ en:
       title: "My Authorized Applications"
       application: "Application"
       permissions: "Permissions"
+      last_authorized: "Last Authorized"
       no_applications_html: "You have not yet authorized any %{oauth2} applications."
+      oauth_2: "OAuth 2"
     application:
       revoke: "Revoke Access"
       confirm_revoke: "Revoke access for this application?"
@@ -2719,6 +2777,8 @@ en:
       my_dashboard: My Dashboard
       blocks on me: Blocks on Me
       blocks by me: Blocks by Me
+      create_mute: Mute this User
+      destroy_mute: Unmute this User
       edit_profile: Edit Profile
       send message: Send Message
       diary: Diary
@@ -2750,6 +2810,7 @@ en:
           importer: "Revoke importer access"
       block_history: "Active Blocks"
       moderator_history: "Blocks Given"
+      revoke_all_blocks: "Revoke all blocks"
       comments: "Comments"
       create_block: "Block this User"
       activate_user: "Activate this User"
@@ -2852,6 +2913,16 @@ en:
       confirm: "Are you sure you wish to revoke this block?"
       revoke: "Revoke!"
       flash: "This block has been revoked."
+    revoke_all:
+      title: "Revoking all blocks on %{block_on}"
+      heading_html: "Revoking all blocks on %{block_on}"
+      empty: "%{name} has no active blocks."
+      confirm: "Are you sure you wish to revoke %{active_blocks}?"
+      active_blocks:
+        one: "%{count} active block"
+        other: "%{count} active blocks"
+      revoke: "Revoke!"
+      flash: "All active blocks have been revoked."
     helper:
       time_future_html: "Ends in %{time}."
       until_login: "Active until the user logs in."
@@ -2909,6 +2980,29 @@ en:
       showing_page: "Page %{page}"
       next: "Next »"
       previous: "« Previous"
+  user_mutes:
+    index:
+      title: "Muted Users"
+      my_muted_users: "My muted users"
+      you_have_muted_n_users:
+        one: "You have muted %{count} User"
+        other: "You have muted %{count} users"
+      user_mute_explainer: "Messages of muted users are moved into a separate Inbox and you won't receive email notifications."
+      user_mute_admins_and_moderators: "You can mute Admins and Moderators but their messages will not be muted."
+      table:
+        thead:
+          muted_user: "Muted User"
+          actions: "Actions"
+        tbody:
+          unmute: "Unmute"
+          send_message: "Send message"
+
+    create:
+      notice: "You muted %{name}."
+      error: "%{name} could not be muted. %{full_message}."
+    destroy:
+      notice: "You unmuted %{name}."
+      error: "User could not be unmuted. Please try again."
   notes:
     index:
       title: "Notes submitted or commented on by %{user}"
@@ -2945,6 +3039,7 @@ en:
       reactivate: Reactivate
       comment_and_resolve: Comment & Resolve
       comment: Comment
+      log_in_to_comment: "Log in to comment on this note"
       report_link_html: "If this note contains sensitive information that needs to be removed, you can %{link}."
       other_problems_resolve: "For all other problems with the note, please resolve it yourself with a comment."
       other_problems_resolved: "For all other problems, resolving is sufficient."
@@ -3001,7 +3096,6 @@ en:
         transport_map: Transport Map
         tracestracktop_topo: Tracestrack Topo
         hot: Humanitarian
-        opnvkarte: ÖPNVKarte
       layers:
         header: Map Layers
         notes: Map Notes
@@ -3018,8 +3112,6 @@ en:
       osm_france: OpenStreetMap France
       thunderforest_credit: "Tiles courtesy of %{thunderforest_link}"
       andy_allan: Andy Allan
-      opnvkarte_credit: "Tiles courtesy of %{memomaps_link}"
-      memomaps: MeMoMaps
       tracestrack_credit: "Tiles courtesy of %{tracestrack_link}"
       tracestrack: Tracestrack
       hotosm_credit: "Tiles style by %{hotosm_link} hosted by %{osm_france_link}"
@@ -3033,6 +3125,7 @@ en:
       map_data_zoom_in_tooltip: Zoom in to see map data
       queryfeature_tooltip: Query features
       queryfeature_disabled_tooltip: Zoom in to query features
+      embed_html_disabled: HTML embedding is not available for this map layer
     changesets:
       show:
         comment: "Comment"
index f81142861e2d147a01bb5bda22013ab6c378e5c4..f2e141e8f39a2698fa40b635522394a653787607 100644 (file)
@@ -26,6 +26,7 @@
 # Author: Umbert'
 # Author: Yekrats
 # Author: YvesNevelsteen
+# Author: Ziko
 ---
 eo:
   time:
@@ -33,10 +34,10 @@ eo:
       friendly: '%e %B %Y je %H:%M'
   helpers:
     file:
-      prompt: Elektu dosieron
+      prompt: Elekti dosieron
     submit:
       diary_comment:
-        create: Publikigi
+        create: Prikomenti
       diary_entry:
         create: Publikigi
         update: Ĝisdatigi
@@ -46,7 +47,7 @@ eo:
         create: Sendi
       client_application:
         create: Registri
-        update: Aktualigi
+        update: Ĝisdatigi
       oauth2_application:
         create: Registri
         update: Ĝisdatigi
@@ -62,8 +63,12 @@ eo:
   activerecord:
     errors:
       messages:
-        invalid_email_address: ŝajnas ne estas ĝusta retpoŝta adreso
+        invalid_email_address: ŝajne ne estas ĝusta retpoŝta adreso
         email_address_not_routable: ne estas enkursigebla
+        display_name_is_user_n: ne povas esti user_n, escepte se n estas via uzant-identigilo
+      models:
+        user_mute:
+          is_already_muted: jam estas silentigita
     models:
       acl: Listo de kontrolo de akiroj
       changeset: Ŝanĝaro
@@ -232,7 +237,6 @@ eo:
   auth:
     providers:
       none: Neniu
-      openid: OpenID
       google: Google
       facebook: Facebook
       microsoft: Microsoft
@@ -285,6 +289,8 @@ eo:
         retain_changeset_discussions: viaj (eventualaj) komentoj pri ŝanĝaroj estos
           konservitaj;
         retain_email: via retpoŝta adreso estos konservita.
+        recent_editing_html: Ĉar vi lastatempe redaktis, via konto nuntempe ne povas
+          esti forigita. Forigo estos ebla en %{time}.
         confirm_delete: Ĉu vi certas?
         cancel: Nuligi
   accounts:
@@ -366,14 +372,10 @@ eo:
       way_paginated: Linioj (%{x}-%{y} el %{count})
       relation: Rilatoj (%{count})
       relation_paginated: Rilatoj (%{x}-%{y} el %{count})
-      comment: Komentoj (%{count})
       hidden_comment_by_html: Kaŝita komento de %{time_ago} de %{user}
       comment_by_html: Komento de %{time_ago} de %{user}
       changesetxml: Ŝanĝaro XML
       osmchangexml: osmŜanĝo XML
-      feed:
-        title: Ŝanĝaro %{id}
-        title_comment: Ŝanĝaro %{id} - %{comment}
       join_discussion: Ensalutu por aliĝi al la diskuto
       discussion: Diskuto
       still_open: Ŝanĝaro plue malfermita - diskuto estos malfermita ekde kiam la
@@ -455,6 +457,15 @@ eo:
       introduction: Alklaku la mapon por trovi proksimajn objektojn.
       nearby: Proksimaj objektoj
       enclosing: Ĉirkaŭaj objektoj
+  old_nodes:
+    not_found:
+      sorry: 'Bedaŭrinde la nodo #%{id} en versio %{version} ne troveblas.'
+  old_ways:
+    not_found:
+      sorry: 'Bedaŭrinde la linio #%{id} en versio %{version} ne troveblas.'
+  old_relations:
+    not_found:
+      sorry: 'Bedaŭrinde la rilato #%{id} en versio %{version} ne troveblas.'
   changesets:
     changeset_paging_nav:
       showing_page: Paĝo %{page}
@@ -483,6 +494,9 @@ eo:
       no_more_area: Neniu plia ŝanĝaro en tiu ĉi areo.
       no_more_user: Neniaj pliaj ŝanĝaroj de tiu ĉi uzanto.
       load_more: Pli
+      feed:
+        title: Ŝanĝaro %{id}
+        title_comment: Ŝanĝaro %{id} - %{comment}
     timeout:
       sorry: Bedaŭrinde daŭris tro longe kompili la petitan liston de ŝanĝaroj.
   changeset_comments:
@@ -501,6 +515,7 @@ eo:
     contact:
       km away: '%{count} km for'
       m away: '%{count} m for'
+      latest_edit_html: 'Lasta redakto (%{ago}):'
     popup:
       your location: Via loko
       nearby mapper: Proksima uzanto
@@ -543,6 +558,7 @@ eo:
     show:
       title: Taglibro de %{user} | %{title}
       user_title: Taglibro de %{user}
+      discussion: Diskuto
       leave_a_comment: Komenti
       login_to_leave_a_comment_html: '%{login_link} por aldoni komenton'
       login: Ensaluti
@@ -914,7 +930,7 @@ eo:
           construction: Vojo konstruata
           corridor: Koridoro
           crossing: Trapasejo
-          cycleway: Bicikovojo
+          cycleway: Bicikla vojo
           elevator: Lifto
           emergency_access_point: Vivsava rekonebla signo
           emergency_bay: Kriokaza strat-golfo
@@ -1473,9 +1489,9 @@ eo:
         one: '%{count} raporto'
         other: '%{count} raportoj'
       no_reports: Neniu raporto
-      report_created_at: Unue raportita je %{datetime}
-      last_resolved_at: Laste solvita je %{datetime}
-      last_updated_at: Laste aktualigita je %{datetime} de %{displayname}
+      report_created_at_html: Unue raportita je %{datetime}
+      last_resolved_at_html: Laste solvita je %{datetime}
+      last_updated_at_html: Laste aktualigita je %{datetime} de %{displayname}
       resolve: Solvi
       ignore: Ignori
       reopen: Remalfermi
@@ -1632,6 +1648,7 @@ eo:
       loaded:
         one: estas sukcese enlegita kun %{trace_points} el ebla %{count} punkto.
         other: estas sukcese enlegita kun %{trace_points} el eblaj %{count} punktoj.
+      all_your_traces_html: Ĉiuj viaj sukcese alŝutitaj GPX-spuroj troveblas ĉe %{url}.
       subject: '[OpenStreetMap] GPX-dosiero enportita sukcese'
     signup_confirm:
       subject: '[OpenStreetMap] Bonvenon al OpenStreetMap'
@@ -1741,8 +1758,6 @@ eo:
   messages:
     inbox:
       title: Ricevujo
-      my_inbox: Ricevujo
-      my_outbox: Senditujo
       messages: Vi havas %{new_messages} kaj %{old_messages}
       new_messages:
         one: '%{count} novan mesaĝon'
@@ -1750,17 +1765,21 @@ eo:
       old_messages:
         one: '%{count} malnovan mesaĝon'
         other: '%{count} malnovajn mesaĝojn'
-      from: De
-      subject: Temo
-      date: Dato
       no_messages_yet_html: Vi ankoraŭ ne havas iun mesaĝon. Eble kontaktu kun iu
         el %{people_mapping_nearby_link}?
       people_mapping_nearby: proksimaj mapigistoj
+    messages_table:
+      from: De
+      to: Al
+      subject: Temo
+      date: Dato
+      actions: Agoj
     message_summary:
       unread_button: Marki kiel nelegitan
       read_button: Marki kiel legitan
       reply_button: Respondi
       destroy_button: Forigi
+      unmute_button: Movi al ricevujo
     new:
       title: Sendi mesaĝon
       send_message_to_html: Sendi novan mesaĝon al %{name}
@@ -1774,18 +1793,19 @@ eo:
       heading: Tiu ĉi mesaĝo ne ekzistas
       body: Bedaŭrinde ne ekzistas mesaĝo kun tiu ĉi identigilo.
     outbox:
-      title: Elirkesto
-      my_inbox: Ricevujo
-      my_outbox: Senditujo
+      title: Senditujo
+      actions: Agoj
       messages:
         one: Vi havas %{count} senditan mesaĝon
         other: Vi havas %{count} senditajn mesaĝojn
-      to: Al
-      subject: Temo
-      date: Dato
       no_sent_messages_html: Vi ankoraŭ ne sendis iun mesaĝon. Eble kontaktu kun iu
         el %{people_mapping_nearby_link}?
       people_mapping_nearby: proksimaj mapigistoj
+    muted:
+      title: Silentigitaj mesaĝoj
+      messages:
+        one: Vi havas %{count} silentigitan mesaĝon
+        other: Vi havas %{count} silentigitajn mesaĝojn
     reply:
       wrong_user: Vi estas ensalutinta kiel '%{user}', sed la mesaĝo, kiun vi volas
         respondi, ne estas sendita al tiu uzanto. Bonvolu ensaluti kiel propra uzanto
@@ -1801,28 +1821,38 @@ eo:
         legi ĝin.
     sent_message_summary:
       destroy_button: Forigi
+    heading:
+      my_inbox: Ricevujo
+      my_outbox: Senditujo
+      muted_messages: Silentigitaj mesaĝoj
     mark:
       as_read: Mesaĝo markita kiel legitan
       as_unread: Mesaĝo markita kiel nelegitan
+    unmute:
+      notice: Movis mesaĝon al ricevujo
+      error: La mesaĝo ne povis esti movita al la ricevujo.
     destroy:
       destroyed: Mesaĝo forigita
   passwords:
-    lost_password:
+    new:
       title: Perdita pasvorto
       heading: Forgesis vian pasvorton ?
-      email address: 'Retpoŝtadreso:'
+      email address: Retpoŝta adreso
       new password button: Nuligi pasvorton
       help_text: Entajpu la retpoŝtan adreson kiun vi uzis por ensaluto, ni sendos
         al vi ligilon, kiun vi povos uzi por restarigi vian pasvorton.
+    create:
       notice email on way: Bedaŭras, ke vi perdis ĝin :-( sed baldaŭ vi ricevos retleteron,
         kiun vi uzos por restarigi ĝin.
       notice email cannot find: Bedaŭrinde, tiu retadreso ne troveblas.
-    reset_password:
+    edit:
       title: Nuligi pasvorton
       heading: Nuligi Pasvorton por %{user}
       reset: Nuligi pasvorton
-      flash changed: Via pasvorto estis ŝanĝita.
       flash token bad: Netrovebla ĵetono, bonvolu kontroli la URLon.
+    update:
+      flash changed: Via pasvorto estis ŝanĝita.
+      flash token bad: Ne povas trovi ĵetonon. Provu kontroli la retadreson.
   preferences:
     show:
       title: Miaj preferoj
@@ -1867,9 +1897,8 @@ eo:
     new:
       title: Ensaluti
       heading: Ensaluti
-      email or username: 'Retpoŝtadreso aŭ uzantnomo:'
-      password: 'Pasvorto:'
-      openid_html: '%{logo} OpenID:'
+      email or username: Retpoŝta adreso aŭ uzantnomo
+      password: Pasvorto
       remember: Memori min
       lost password link: Ĉu vi forgesis vian pasvorton?
       login_button: Ensaluti
@@ -1927,6 +1956,7 @@ eo:
       image: Bildo
       alt: Kromteksto
       url: Retadreso
+      codeblock: Bloko de kodo
     richtext_field:
       edit: Redakti
       preview: Antaŭvidi
@@ -2154,12 +2184,7 @@ eo:
         por tiu ĉi eblo.
     export:
       title: Elporti
-      area_to_export: Elportonta areo
       manually_select: Permane elektu alian areon.
-      format_to_export: Elport-formo
-      osm_xml_data: XML datumoj de OpenStreetMap
-      map_image: Bildo de mapo (norma tavolo)
-      embeddable_html: Enkorpigebla HTML
       licence: Permesilo
       licence_details_html: OpenStreetMap estas publikigata laŭ la permesilo %{odbl_link}
         (ODbL).
@@ -2182,17 +2207,6 @@ eo:
         other:
           title: Aliaj fontoj
           description: Aliaj fontoj enlistigitaj ĉe OpenStreetMap-vikio
-      options: Elektebloj
-      format: Formo
-      scale: Skalo
-      max: maks
-      image_size: Bildamplekso
-      zoom: Pligrandigi
-      add_marker: Aldoni markon al la mapo
-      latitude: 'Lat:'
-      longitude: 'Lon:'
-      output: Eliro
-      paste_html: Engluu HTML-kodon al via retpaĝo
       export_button: Elporti
     fixthemap:
       title: Raporti problemon / Korekti mapon
@@ -2226,17 +2240,13 @@ eo:
       beginners_guide:
         title: Manlibro por komencantoj
         description: Manlibro por komencantoj kreata de la komunumo (en la angla).
-      help:
-        title: Helpa forumo
-        description: Demandu aŭ serĉu respondojn ĉe retpaĝo de demandoj-kaj-respondoj
-          pri OpenStreetMap.
+      community:
+        title: Helpo kaj forumoj
+        description: Komuna loko por serĉi helpon kaj diskuti pri OpenStreetMap.
       mailing_lists:
         title: Dissendolistoj
         description: Demandu aŭ diskutu pri interesaj temoj en multaj pritemaj aŭ
           regionaj dissendolistoj.
-      community:
-        title: Forumoj de komunumo
-        description: Loko por diskuti pri OpenStreetMap.
       irc:
         title: IRC
         description: Interaga babilejo en multaj diversaj lingvoj kaj pri multaj temoj.
@@ -2291,67 +2301,83 @@ eo:
           primary: Vojo unua-ranga
           secondary: Vojo dua-ranga
           unclassified: Vojo kvara-ranga
+          pedestrian: Piedirada strato
           track: Vojo kampa
           bridleway: Ĉevalvojo
           cycleway: Bicikla vojo
-          cycleway_national: Bicikla vojo ŝtata
-          cycleway_regional: Bicikla vojo regiona
-          cycleway_local: Bicikla vojo loka
+          cycleway_national: Bicikla kurso ŝtata
+          cycleway_regional: Bicikla kurso regiona
+          cycleway_local: Bicikla kurso loka
+          cycleway_mtb: Montbicikla kurso
           footway: Trotuaro
           rail: Fervojo
+          train: Vagonaro
           subway: Metroo
-          tram:
-          - Fervojo malpeza
-          - tramo
-          cable:
-          - Kablovojo
-          - seĝtelfero
-          runway:
-          - Avia dromo
-          - aŭtokur-strato
-          apron:
-          - Aviadil-parkumejo
-          - flugstacio
+          ferry: Pramo
+          light_rail: Malpeza vagonaro
+          tram: Tramo
+          trolleybus: Trolebuso
+          bus: Aŭtobuso
+          cable_car: Kablovojo
+          chair_lift: Telfero seĝa
+          runway: Avia dromo
+          taxiway: Aŭtokur-strato
+          apron: Aviadil-parkumejo
           admin: Administra limo
+          capital: Ĉefurbo
+          city: Urbo
+          orchard: Fruktoĝardeno
+          vineyard: Vinberĝardeno
           forest: Kultiv-arbaro
           wood: Arbaro
+          farmland: Agrokultura tereno
+          grass: Herbotapiŝo
+          meadow: Herbejo
+          bare_rock: Roka areo
+          sand: Sabla tereno
           golf: Golfejo
           park: Parko
+          common: Publika ripoza tereno
+          built_up: Konstruaĵ-kovrita tereno
           resident: Privatdoma tereno
-          common:
-          - Publika ripoza tereno
-          - herbejo
-          - ĝardeno
           retail: Komercejo
           industrial: Industria areo
           commercial: Oficeja tereno
           heathland: Erikejo
-          lake:
-          - Lago
-          - akvorezervujo
+          scrubland: Arbustaro
+          lake: Lago
+          reservoir: Lago artefarita
+          intermittent_water: Sezona akvujo
+          glacier: Glacirivero
+          reef: Rifo
+          wetland: Malsekejo
           farm: Farmobieno
           brownfield: Antaŭ-konstruejo (post-malkonstruado)
           cemetery: Tombejo
           allotments: Familiaj ĝardenoj
           pitch: Ludkampo
           centre: Sporta centro
+          beach: Sablobordo
           reserve: Naturrezervejo
           military: Armea tereno
-          school:
-          - Lernejo
-          - universitato
+          school: Lernejo
+          university: Universitato
+          hospital: Malsanulejo
           building: Grava konstruaĵo
           station: Stacidomo
-          summit:
-          - Montosupro
-          - montpinto
+          summit: Montosupro
+          peak: Montpinto
           tunnel: Strekumita konturo - tunelo
           bridge: Nigra konturo - ponto
           private: Privata aliro
           destination: Aliro nur al celo
           construction: Vojoj konstruataj
+          bus_stop: Haltejo aŭtobusa
+          stop: Haltejo
           bicycle_shop: Bicikl-vendejo
+          bicycle_rental: Bicikl-pruntejo
           bicycle_parking: Parkumejo bicikla
+          bicycle_parking_small: Malgranda parkumejo bicikla
           toilets: Necesejo
     welcome:
       title: Bonvenon!
@@ -2393,6 +2419,7 @@ eo:
         imports: enportoj de datumoj
         automated_edits: aŭtomataj redaktoj
       start_mapping: Ekigi mapigadon
+      continue_authorization: Daŭrigi Rajtigon
       add_a_note:
         title: Ĉu mankas al vi tempo por redakti? Aldonu rimarkon!
         para_1: Se vi volas nur korekti iun etan kaj vi ne havas tempon por registriĝi
@@ -2481,8 +2508,8 @@ eo:
       visibility: 'Videbleco:'
       confirm_delete: Ĉu forigi tiun ĉi spuron?
     trace_paging_nav:
-      older: Antaŭaj spuroj
-      newer: Postaj spuroj
+      older: Pli malnovaj spuroj
+      newer: Pli novaj spuroj
     trace:
       pending: OKAZONTA
       count_points:
@@ -2549,6 +2576,7 @@ eo:
       oauth1_settings: Agordoj OAuth 1
       oauth2_applications: Aplikaĵoj OAuth 2
       oauth2_authorizations: Rajtigoj OAuth 2
+      muted_users: Silentigitaj uzantoj
   oauth:
     authorize:
       title: Rajtigi aliron al via konto
@@ -2585,11 +2613,13 @@ eo:
       read_gpx: legi privatajn GPS-spurojn
       write_gpx: alŝuti GPS-spurojn
       write_notes: modifi rimarkojn
+      write_redactions: Redakti map-datumojn
       read_email: legi retpoŝtan adreson de uzanto
       skip_authorization: Aŭtomate akcepti aplikaĵojn
   oauth_clients:
     new:
       title: Registri novan aplikaĵon
+      disabled: Registrado de aplikaĵoj OAuth 1 estas malŝaltita
     edit:
       title: Modifi vian aplikaĵon
     show:
@@ -2673,6 +2703,7 @@ eo:
       title: Miaj rajtigitaj aplikaĵoj
       application: Aplikaĵo
       permissions: Permesoj
+      last_authorized: Antaŭa aŭtentigo
       no_applications_html: Vi ankoraŭ rajtigis neniun aplikaĵon %{oauth2}.
     application:
       revoke: Senrajtigi aliron
@@ -2755,8 +2786,10 @@ eo:
       my comments: Miaj komentoj
       my_preferences: Preferoj
       my_dashboard: Panelo
-      blocks on me: Blokas min
+      blocks on me: Ricevitaj blokadoj
       blocks by me: Blokitaj de mi
+      create_mute: Silentigi tiun ĉi uzanton
+      destroy_mute: Malsilentigi tiun ĉi uzanton
       edit_profile: Redakti profilon
       send message: Sendi mesaĝon
       diary: Taglibro
@@ -2770,7 +2803,6 @@ eo:
       ct status: 'Interkonsento pri kontribuado:'
       ct undecided: ne decidita
       ct declined: malakceptita
-      latest edit: 'Lasta redakto (%{ago}):'
       email address: 'Retpoŝtadreso:'
       created from: 'Kreita de:'
       status: 'Stato:'
@@ -2778,14 +2810,18 @@ eo:
       role:
         administrator: Ĉi tiu uzanto estas administranto
         moderator: Ĉi tiu uzanto estas kontrolanto
+        importer: Tiu ĉi uzanto estas enportisto
         grant:
           administrator: Permesi aliron de administranto
           moderator: Permesi aliron de kontrolanto
+          importer: Permesi aliron de enportisto
         revoke:
           administrator: Nuligi aliron de administranto
           moderator: Nuligi aliron de kontrolanto
+          importer: Nuligi aliron de enportisto
       block_history: Blokadoj aktivaj
       moderator_history: Blokadoj eldonitaj
+      revoke_all_blocks: Nuligi ĉiujn blokadojn
       comments: Komentoj
       create_block: Bloki ĉi tiun uzanton
       activate_user: Aktivigi tiun ĉi uzanton
@@ -2886,11 +2922,19 @@ eo:
     revoke:
       title: Nuligado de blokado por %{block_on}
       heading_html: Nuligado de blokado por %{block_on} kreitaj de %{block_by}
-      time_future: Ĉi tiu blokado finiĝos je %{time}.
-      past: La blokado finiĝis %{time} kaj ĝi ne povas esti nuligita nun.
+      time_future_html: Ĉi tiu blokado finiĝos je %{time}.
+      past_html: La blokado finiĝis %{time} kaj ĝi ne povas esti nuligita nun.
       confirm: Ĉu vi certe volas nuligi ĉi tiun blokadon?
       revoke: Malbloki!
       flash: Ĉi tiu blokado estas nuligita.
+    revoke_all:
+      title: Nuligado de ĉiujn blokojn por %{block_on}
+      heading_html: Nuligado de ĉiujn blokojn por %{block_on}
+      empty: '%{name} ne havas aktivajn blokadojn.'
+      confirm: Ĉu vi volas nuligi %{active_blocks}?
+      active_blocks: '{{PLURAL|one=%{count} aktivan blokadon|%{count} aktivajn blokadojn}'
+      revoke: Malbloki!
+      flash: Ĉiuj aktivaj blokoj estas nuligitaj.
     helper:
       time_future_html: Finiĝos post %{time}.
       until_login: Aktiva ĝis la uzanto ensalutos.
@@ -2948,6 +2992,30 @@ eo:
       showing_page: Paĝo %{page}
       next: Sekva »
       previous: « Antaŭa
+  user_mutes:
+    index:
+      title: Silentigitaj uzantoj
+      my_muted_users: Miaj silentigitaj uzantoj
+      you_have_muted_n_users:
+        one: Vi silentigis %{count} uzanton
+        other: Vi silentigis %{count} uzantojn
+      user_mute_explainer: Mesaĝoj de silentigitaj uzantoj estos movitaj al aparta
+        mesaĝujo kaj vi ne ricevos retpoŝtajn sciigojn pri ili.
+      user_mute_admins_and_moderators: Vi povas silentigi administrantojn kaj kontrolantojn,
+        tamen iliaj mesaĝoj ne estos silentigitaj.
+      table:
+        thead:
+          muted_user: Silentigita uzanto
+          actions: Agoj
+        tbody:
+          unmute: Malsilentigi
+          send_message: Sendi mesaĝon
+    create:
+      notice: Vi silentigis la uzanton %{name}.
+      error: Uzanto %{name} ne povas esti silentigita. %{full_message}.
+    destroy:
+      notice: Vi malsilentigis la uzanton %{name}.
+      error: Ne povis malsilentigi la uzanton. Reprovu.
   notes:
     index:
       title: Rimarkoj kreitaj aŭ komentitaj de %{user}
@@ -2985,6 +3053,7 @@ eo:
       reactivate: Remalfermi
       comment_and_resolve: Komenti kaj solvi
       comment: Komenti
+      log_in_to_comment: Ensalutu por komenti tiun ĉi rimarkon
       report_link_html: Se tiu ĉi rimarko enhavas privatajn informojn, kiuj ne devas
         esti publikigitaj, vi povas %{link}.
       other_problems_resolve: Koncerne al ĉiuj aliaj problemoj pri la rimarko, solvu
@@ -3042,12 +3111,10 @@ eo:
           other: Vi estas %{count} futoj for de tiu punkto
       base:
         standard: Norma mapo
-        cyclosm: CyclOSM
         cycle_map: Biciklada mapo
         transport_map: Transporta mapo
         tracestracktop_topo: Topografia mapo
         hot: Hom-helpa mapo
-        opnvkarte: ÖPNVKarte
       layers:
         header: Tavoloj de mapo
         notes: Map-rimarkoj
@@ -3062,8 +3129,6 @@ eo:
       osm_france: OpenStreetMap France
       thunderforest_credit: Kaheloj danke al %{thunderforest_link}
       andy_allan: Andy ALLAN
-      opnvkarte_credit: Kaheloj danke al %{memomaps_link}
-      memomaps: MeMoMaps
       tracestrack_credit: Kaheloj danke al %{tracestrack_link}
       hotosm_credit: 'Stilo de kaheloj: %{hotosm_link}, retgastigo: %{osm_france_link}'
       hotosm_name: HOTOSM
@@ -3076,6 +3141,7 @@ eo:
       map_data_zoom_in_tooltip: Pligrandigu por vidi map-datumoj
       queryfeature_tooltip: Montri informojn pri objekto
       queryfeature_disabled_tooltip: Pligrandigu por montri informojn pri objektoj
+      embed_html_disabled: HTML-enigo ne haveblas por ĉi tiu mapo-tavolo
     changesets:
       show:
         comment: Komenti
index 7edd1cc722bae5449e9fdb5142d3b68eeae23cb2..42fe297836d09e1401cc082647661b3c8688b8fc 100644 (file)
@@ -47,6 +47,7 @@
 # Author: Javiersanp
 # Author: Jelou
 # Author: Jlrb+
+# Author: Jmabel
 # Author: Joanmp17
 # Author: Johnarupire
 # Author: Josuert
@@ -133,6 +134,10 @@ es:
       messages:
         invalid_email_address: no parece ser una dirección de correo electrónico válida
         email_address_not_routable: no es enrutable
+        display_name_is_user_n: no puedes ser user_n a menos que n sea tu ID de usuario
+      models:
+        user_mute:
+          is_already_muted: ya esta silenciado
     models:
       acl: Lista de control de acceso
       changeset: Conjunto de cambios
@@ -304,7 +309,6 @@ es:
   auth:
     providers:
       none: Ninguno
-      openid: OpenID
       google: Google
       facebook: Facebook
       microsoft: Microsoft
@@ -358,6 +362,8 @@ es:
         retain_changeset_discussions: Tus discusiones sobre conjuntos de cambios,
           si las hay, se conservarán.
         retain_email: Tu dirección de correo electrónico se conservará.
+        recent_editing_html: Como has editado recientemente, tu cuenta no se puede
+          eliminar actualmente. La eliminación será posible en %{time}.
         confirm_delete: ¿Estás seguro?
         cancel: Cancelar
   accounts:
@@ -444,14 +450,10 @@ es:
       way_paginated: Vías (%{x}-%{y} de %{count})
       relation: Relaciones (%{count})
       relation_paginated: Relaciones (%{x}-%{y} de %{count})
-      comment: Comentarios (%{count})
       hidden_comment_by_html: Comentario ocultado por %{user} %{time_ago}
       comment_by_html: Comentario de %{user} %{time_ago}
       changesetxml: XML del conjunto de cambios
       osmchangexml: XML en formato osmChange
-      feed:
-        title: Conjunto de cambios %{id}
-        title_comment: Conjunto de cambios %{id} - %{comment}
       join_discussion: Inicia sesión para unirte a la discusión
       discussion: Discusión
       still_open: El conjunto de cambios sigue abierto; la discusión se abrirá cuando
@@ -534,6 +536,15 @@ es:
       introduction: Haz clic en el mapa para encontrar elementos cercanos.
       nearby: Elementos cercanos
       enclosing: Elementos delimitantes
+  old_nodes:
+    not_found:
+      sorry: 'Lo sentimos, no se pudo encontrar el nodo #%{id} versión %{version}.'
+  old_ways:
+    not_found:
+      sorry: 'Lo sentimos, no se pudo encontrar la vía #%{id} versión %{version}.'
+  old_relations:
+    not_found:
+      sorry: 'Lo sentimos, no se pudo encontrar la relación #%{id} versión %{version}.'
   changesets:
     changeset_paging_nav:
       showing_page: Página %{page}
@@ -562,6 +573,9 @@ es:
       no_more_area: No hay más conjuntos de cambios en este área.
       no_more_user: No hay más conjuntos de cambios por este usuario.
       load_more: Cargar más
+      feed:
+        title: Conjunto de cambios %{id}
+        title_comment: Conjunto de cambios %{id} - %{comment}
     timeout:
       sorry: Lo sentimos, la lista de conjuntos de cambios que solicitó tardó demasiado
         en obtenerse.
@@ -583,6 +597,7 @@ es:
     contact:
       km away: '%{count} km. de distancia'
       m away: '%{count} m. de distancia'
+      latest_edit_html: 'Última edición (%{ago}):'
     popup:
       your location: Tu ubicación
       nearby mapper: Mapeadores cercanos
@@ -613,7 +628,7 @@ es:
       user_title: Diario de %{user}
       in_language_title: Entradas de diario en %{language}
       new: Nueva entrada de diario
-      new_title: Redactar una nueva entrada en mi diario de usuario
+      new_title: Escribir una nueva entrada en mi diario de usuario
       my_diary: Mi diario
       no_entries: No hay entradas en el diario
       recent_entries: Entradas recientes en el diario
@@ -625,6 +640,7 @@ es:
     show:
       title: Diario de %{user} | %{title}
       user_title: Diario de %{user}
+      discussion: Discusión
       leave_a_comment: Dejar un comentario
       login_to_leave_a_comment_html: '%{login_link} para dejar un comentario'
       login: Iniciar sesión
@@ -1561,9 +1577,9 @@ es:
         one: '%{count} reporte'
         other: '%{count} reportes'
       no_reports: Sin reportes
-      report_created_at: Denunciado por primera vez el %{datetime}
-      last_resolved_at: Resuelto por última vez el %{datetime}
-      last_updated_at: Actualizado por última vez el %{datetime} por %{displayname}
+      report_created_at_html: Denunciado por primera vez el %{datetime}
+      last_resolved_at_html: Resuelto por última vez el %{datetime}
+      last_updated_at_html: Actualizado por última vez el %{datetime} por %{displayname}
       resolve: Resolver
       ignore: Ignorar
       reopen: Reabrir
@@ -1725,6 +1741,8 @@ es:
       loaded:
         one: se cargó correctamente, con %{trace_points} de %{count} puntos posibles.
         other: se cargaron correctamente, con %{trace_points} de %{count} puntos posibles.
+      all_your_traces_html: Todas los trazas GPX cargadas correctamente se pueden
+        encontrar en %{url}.
       subject: '[OpenStreetMap] Éxito al importar GPX'
     signup_confirm:
       subject: '[OpenStreetMap] OpenStreetMap te da la bienvenida'
@@ -1846,8 +1864,6 @@ es:
   messages:
     inbox:
       title: Buzón de entrada
-      my_inbox: Mi buzón
-      my_outbox: Mi buzón de salida
       messages: Tienes %{new_messages} y %{old_messages}
       new_messages:
         one: '%{count} nuevo mensaje'
@@ -1855,17 +1871,21 @@ es:
       old_messages:
         one: '%{count} mensaje antiguo'
         other: '%{count} mensajes antiguos'
-      from: De
-      subject: Asunto
-      date: Fecha
       no_messages_yet_html: Aún no tienes mensajes. ¿Por qué no ponerte en contacto
         con algunas de las %{people_mapping_nearby_link}?
       people_mapping_nearby: gente mapeando cerca
+    messages_table:
+      from: De
+      to: Para
+      subject: Asunto
+      date: Fecha
+      actions: Acciones
     message_summary:
       unread_button: Marcar como no leído
       read_button: Marcar como leí­do
       reply_button: Responder
       destroy_button: Eliminar
+      unmute_button: Trasladar a la bandeja de entrada
     new:
       title: Enviar mensaje
       send_message_to_html: Enviar un mensaje nuevo a %{name}
@@ -1880,17 +1900,18 @@ es:
       body: Lo sentimos, no hay mensaje alguno con este identificador.
     outbox:
       title: Bandeja de salida
-      my_inbox: Mi Bandeja de entrada
-      my_outbox: Mi Bandeja de salida
+      actions: Acciones
       messages:
         one: Tiene %{count} mensaje enviado
         other: Tiene %{count} mensajes enviados
-      to: Para
-      subject: Asunto
-      date: Fecha
       no_sent_messages_html: Aún no tienes mensajes enviados. ¿Por qué no ponerte
         en contacto con algunas de las %{people_mapping_nearby_link}?
       people_mapping_nearby: personas mapeando cerca
+    muted:
+      title: Mensajes silenciados
+      messages:
+        one: '%{count} mensaje silenciado'
+        other: Tienes %{count} mensajes silenciados
     reply:
       wrong_user: Estás conectado como `%{user}' pero el mensaje que quieres responder
         no se ha enviado a dicho usuario. Por favor, inicia sesión con el usuario
@@ -1906,29 +1927,40 @@ es:
         correcto para leer el mensaje.
     sent_message_summary:
       destroy_button: Eliminar
+    heading:
+      my_inbox: Mi buzón
+      my_outbox: Mi buzón de salida
+      muted_messages: Mensajes silenciados
     mark:
       as_read: Mensaje marcado como leído
       as_unread: Mensaje marcado como no leído
+    unmute:
+      notice: El mensaje se ha trasladado a la bandeja de entrada
+      error: No se pudo trasladar el mensaje a la bandeja de entrada.
     destroy:
       destroyed: Mensaje eliminado
   passwords:
-    lost_password:
+    new:
       title: Contraseña perdida
       heading: ¿Contraseña olvidada?
-      email address: 'Dirección de correo electrónico:'
+      email address: Dirección de correo electrónico
       new password button: Restablecer contraseña
       help_text: Escribe la dirección de correo electrónico con la que te registraste,
         te enviaremos un enlace a esa dirección que podrás utilizar para restablecer
         tu contraseña.
+    create:
       notice email on way: Sentimos que la hayas perdido :-( pero ya va de camino
         un mensaje de correo electrónico que te servirá para restablecer tu contraseña
         enseguida.
       notice email cannot find: Lo sentimos, no se pudo encontrar esa dirección de
         correo electrónico.
-    reset_password:
+    edit:
       title: Restablecer contraseña
       heading: Restablecer contraseña para %{user}
       reset: Restablecer contraseña
+      flash token bad: No se ha encontrado este token, ¿Quizá deberías comprobar la
+        URL?
+    update:
       flash changed: Tu contraseña ha sido cambiada.
       flash token bad: No se ha encontrado este token, ¿Quizá deberías comprobar la
         URL?
@@ -1978,8 +2010,7 @@ es:
       title: Iniciar sesión
       heading: Iniciar sesión
       email or username: 'Dirección de correo electrónico o nombre de usuario:'
-      password: 'Contraseña:'
-      openid_html: '%{logo} OpenID:'
+      password: Contraseña
       remember: Recordarme
       lost password link: ¿Has perdido tu contraseña?
       login_button: Iniciar sesión
@@ -2038,6 +2069,7 @@ es:
       image: Imagen
       alt: Texto alternativo
       url: URL
+      codeblock: Bloque de código
     richtext_field:
       edit: Editar
       preview: Previsualizar
@@ -2180,6 +2212,11 @@ es:
           de recursos naturales de Canadá) y StatCan (División Geográfica, Estadísticas
           de Canadá).'
         contributors_ca_canada: Canadá
+        contributors_cz_credit_html: '%{czechia}: Contiene datos de la Administración
+          Estatal de Encuestas de Tierras y Cadastro bajo licencia %{cc_licence_link}'
+        contributors_cz_czechia: República Checa
+        contributors_cz_cc_licence: Licencia internacional Creative Commons Attribution
+          4.0 (CC BY 4.0)
         contributors_fi_credit_html: "%{finland}: Contiene datos de la \nBase de datos
           topográficos del Estudio Nacional de Tierras de Finlandia \ny otros conjuntos
           de datos, bajo el enlace %{nlsfi_license_link}."
@@ -2273,12 +2310,7 @@ es:
         para esta funcionalidad.
     export:
       title: Exportar
-      area_to_export: Área a exportar
       manually_select: Seleccionar manualmente un área diferente
-      format_to_export: Formato de exportación
-      osm_xml_data: Datos de OpenStreetMap en formato XML
-      map_image: Imagen de mapa (muestra la capa estándar)
-      embeddable_html: HTML integrable
       licence: Licencia
       licence_details_html: Los datos de OpenStreetMap están registrados bajo %{odbl_link}
         (ODbL).
@@ -2304,17 +2336,6 @@ es:
         other:
           title: Otras fuentes
           description: Fuentes adicionales enumeradas en la wiki de OpenStreetMap
-      options: Opciones
-      format: Formato
-      scale: Escala
-      max: máx.
-      image_size: Tamaño de la imagen
-      zoom: Acercar
-      add_marker: Añadir un marcador al mapa
-      latitude: 'Lat:'
-      longitude: 'Lon:'
-      output: Resultado
-      paste_html: Pegar HTML para insertar en sitio web
       export_button: Exportar
     fixthemap:
       title: Reportar un problema / corregir el mapa
@@ -2350,17 +2371,14 @@ es:
         url: https://wiki.openstreetmap.org/wiki/ES:Gu%C3%ADa_de_principiantes
         title: Guía para principiantes
         description: Guía para principiantes, mantenida por la comunidad.
-      help:
-        title: Foro de ayuda
-        description: Haz una pregunta o busca respuestas en el sitio de preguntas
-          y respuestas de OpenStreetMap.
+      community:
+        title: Ayuda y foro comunitario
+        description: Un lugar compartido para buscar ayuda y tener conversaciones
+          sobre OpenStreetMap.
       mailing_lists:
         title: Listas de correo
         description: Haz una pregunta o discute asuntos interesantes en una amplia
           gama de listas de correo regionales o temáticas.
-      community:
-        title: Foro de la Comunidad
-        description: Un lugar compartido para conversaciones sobre OpenStreetMap.
       irc:
         title: IRC
         description: Chat interactivo en muchos idiomas diferentes y sobre muchos
@@ -2417,67 +2435,83 @@ es:
           primary: Vía primaria
           secondary: Vía secundaria
           unclassified: Vía de menos nivel
+          pedestrian: Vía peatonal
           track: Pista
           bridleway: Vía ecuestre
           cycleway: Ciclovía
           cycleway_national: Ciclovía nacional
           cycleway_regional: Ciclovía regional
           cycleway_local: Ciclovía local
+          cycleway_mtb: Ruta de bicicleta de montaña
           footway: Vía peatonal
           rail: Ferrocarril
+          train: Tren
           subway: Metro
-          tram:
-          - Metro ligero
-          - tranvía
-          cable:
-          - Telecabina
-          - Telesilla
-          runway:
-          - Pista de aeropuerto
-          - Calle de rodaje
-          apron:
-          - Rampa aeroportuaria
-          - terminal
+          ferry: Ferry
+          light_rail: Tren Ligero
+          tram: Tranvía
+          trolleybus: Trolebús
+          bus: Autobús
+          cable_car: Telecabina
+          chair_lift: Telesilla
+          runway: Pista de aeropuerto
+          taxiway: Calle de rodaje
+          apron: Rampa aeroportuaria
           admin: Límite administrativo
+          capital: Capital
+          city: Ciudad
+          orchard: Huerta
+          vineyard: Viñedo
           forest: Bosque
-          wood: Bosque
+          wood: Bosque maderable
+          farmland: Tierras de cultivo
+          grass: Césped
+          meadow: Pradera
+          bare_rock: Roca desnuda
+          sand: Arena
           golf: Campo de golf
           park: Parque
+          common: Común
+          built_up: Área construida
           resident: Zona residencial
-          common:
-          - Común
-          - pradera
-          - jardín
           retail: Zona de comercios
           industrial: Zona industrial
           commercial: Zona comercial
           heathland: Brezal
-          lake:
-          - Lago
-          - embalse
+          scrubland: Matorral
+          lake: Lago
+          reservoir: Embalse
+          intermittent_water: Cuerpo de agua intermitente
+          glacier: Glaciar
+          reef: Arrecife
+          wetland: Pantano
           farm: Granja
           brownfield: Sitio baldío
           cemetery: Cementerio
           allotments: Huertos de ocio
           pitch: Campo de juego
           centre: Centro deportivo
+          beach: Playa
           reserve: Reserva natural
           military: Área militar
-          school:
-          - Escuela
-          - universidad
+          school: Escuela
+          university: Universidad
+          hospital: Hospital
           building: Edificio significativo
           station: Estación de tren
-          summit:
-          - Cumbre
-          - pico
+          summit: Cumbre
+          peak: Pico
           tunnel: Borde a rayas = túnel
           bridge: Borde negro = puente
           private: Acceso privado
           destination: Acceso a destino
           construction: Vías en construcción
+          bus_stop: Parada de autobuses
+          stop: Parada
           bicycle_shop: Tienda de bicicletas
+          bicycle_rental: Alquiler de bicicletas
           bicycle_parking: Estacionamiento de bicicletas
+          bicycle_parking_small: Pequeño aparcamiento para bicicletas
           toilets: Baños
     welcome:
       title: ¡Bienvenido!
@@ -2522,6 +2556,7 @@ es:
         automated_edits: Ediciones automatizadas
         automated_edits_url: https://wiki.openstreetmap.org/wiki/ES:C%C3%B3digo_de_conducta_de_ediciones_automatizadas
       start_mapping: Comenzar a mapear
+      continue_authorization: Continuar autorización
       add_a_note:
         title: ¿No tienes tiempo para editar? ¡Añade una nota!
         para_1: Si sólo deseas corregir algo pequeño y no tienes tiempo para registrarte
@@ -2686,6 +2721,7 @@ es:
       oauth1_settings: Otras configuraciones
       oauth2_applications: Aplicaciones de OAuth 2
       oauth2_authorizations: Autorizaciones de OAuth 2
+      muted_users: Usuarios silenciados
   oauth:
     authorize:
       title: Autorizar el acceso a tu cuenta
@@ -2722,11 +2758,13 @@ es:
       read_gpx: Leer trazas de GPS privadas
       write_gpx: Subir trazas de GPS
       write_notes: Modifica notas
+      write_redactions: Censurar datos del mapa
       read_email: Leer dirección de correo electrónico del usuario
       skip_authorization: Auto aprobar aplicación
   oauth_clients:
     new:
       title: Registrar una nueva aplicación
+      disabled: Se ha deshabilitado el registro de aplicaciones OAuth 1
     edit:
       title: Editar tu aplicación
     show:
@@ -2771,7 +2809,6 @@ es:
       no_applications_html: ¿Tienes una aplicación que te gustaría registrar para
         usar con nosotros utilizando el estándar %{oauth2}? Debes registrar tu aplicación
         antes de que pueda hacer solicitudes OAuth a este servicio.
-      oauth_2: OAuth 2
       new: Registra tu aplicación
       name: Nombre
       permissions: Permisos
@@ -2811,6 +2848,7 @@ es:
       title: Mis aplicaciones autorizadas
       application: Solicitudes
       permissions: Permisos
+      last_authorized: Último autorizado
       no_applications_html: Aún no has autorizado aplicaciones a %{oauth2}.
     application:
       revoke: Revocar el acceso
@@ -2837,7 +2875,7 @@ es:
         aunque habrá algunas herramientas y servidores que aún la soliciten.
       continue: Registrarse
       terms accepted: ¡Gracias por aceptar los nuevos Términos de Colaborador!
-      email_confirmation_help_html: Tu dirección no se muestra públicamente, consulta
+      email_confirmation_help_html: Tu dirección no se mostrará públicamente, consulta
         nuestra %{privacy_policy_link} para obtener más información.
       privacy_policy: normativa de privacidad
       privacy_policy_title: Política de privacidad de la OSMF, incluida la sección
@@ -2846,8 +2884,8 @@ es:
       title: Términos
       heading: Términos
       heading_ct: Términos de Colaborador
-      read and accept with tou: Lea el acuerdo de colaborador y los Términos de Uso,
-        marque ambas casillas de verificación cuando haya terminado y luego presione
+      read and accept with tou: Lee el acuerdo de colaborador y los Términos de Uso,
+        marca ambas casillas de verificación cuando hayas terminado y luego presiona
         el botón Continuar.
       contributor_terms_explain: Este acuerdo gobierna los términos de tus contribuciones
         actuales y futuras.
@@ -2897,6 +2935,8 @@ es:
       my_dashboard: Mi tablero
       blocks on me: Bloqueos sobre mí
       blocks by me: Bloqueados por mí
+      create_mute: Silenciar a este usuario
+      destroy_mute: Dejar de silenciar a este usuario
       edit_profile: Editar perfil
       send message: Enviar mensaje
       diary: Diario
@@ -2910,7 +2950,6 @@ es:
       ct status: 'Términos de Colaborador:'
       ct undecided: Indeciso
       ct declined: Rechazado
-      latest edit: 'Última edición (%{ago}):'
       email address: 'Dirección de correo electrónico:'
       created from: 'Creado a partir de:'
       status: 'Estado:'
@@ -2918,14 +2957,18 @@ es:
       role:
         administrator: Este usuario es un administrador
         moderator: Este usuario es un moderador
+        importer: Este usuario es un importador
         grant:
           administrator: Otorgar acceso de administrador
           moderator: Adjudicar acceso de moderador
+          importer: Otorgar acceso importador
         revoke:
           administrator: Revocar acceso de administrador
           moderator: Revocar acceso de moderador
+          importer: Revocar el acceso importador
       block_history: Bloqueos activos
       moderator_history: Bloqueos impuestos
+      revoke_all_blocks: Revocar todos los bloqueos
       comments: Comentarios
       create_block: Bloquear a este usuario
       activate_user: Activar este usuario
@@ -3035,11 +3078,21 @@ es:
     revoke:
       title: Revocando el bloqueo sobre %{block_on}
       heading_html: Revocando el bloqueo sobre %{block_on} por %{block_by}
-      time_future: Este bloqueo finalizará en %{time}.
-      past: Este bloqueo terminó %{time} y no puede ser revocado ahora.
+      time_future_html: Este bloqueo finalizará en %{time}.
+      past_html: Este bloqueo terminó %{time} y no puede ser revocado ahora.
       confirm: ¿Estás seguro de que deseas revocar este bloqueo?
       revoke: ¡Revocar!
       flash: Este bloqueo ha sido revocado.
+    revoke_all:
+      title: Revocando todos los bloqueos en %{block_on}
+      heading_html: Revocando todos los bloqueos en %{block_on}
+      empty: '%{name} no tiene bloqueos activos.'
+      confirm: ¿Estás seguro de que deseas revocar %{active_blocks}?
+      active_blocks:
+        one: '%{count} bloqueo activo'
+        other: '%{count} bloqueos activos'
+      revoke: ¡Revocar!
+      flash: Todos los bloqueos activos han sido revocados.
     helper:
       time_future_html: Termina en %{time}.
       until_login: Activo hasta que el usuario acceda.
@@ -3099,6 +3152,30 @@ es:
       showing_page: Página %{page}
       next: Siguiente »
       previous: « Anterior
+  user_mutes:
+    index:
+      title: Usuarios silenciados
+      my_muted_users: Mis usuarios silenciados
+      you_have_muted_n_users:
+        one: Has silenciado %{count} usuario
+        other: Has silenciado %{count} usuarios
+      user_mute_explainer: Los mensajes de los usuarios silenciados se trasladan a
+        una bandeja de entrada separada y no recibirás notificaciones por correo electrónico.
+      user_mute_admins_and_moderators: Puedes silenciar a los administradores y moderadores
+        pero sus mensajes no serán silenciados.
+      table:
+        thead:
+          muted_user: Usuario silenciado
+          actions: Acciones
+        tbody:
+          unmute: Dejar de silenciar
+          send_message: Enviar mensaje
+    create:
+      notice: Has silenciado a %{name}.
+      error: '%{name} no pudo ser silenciado. %{full_message}.'
+    destroy:
+      notice: Has dejado de silenciar a %{name}.
+      error: No se pudo quitar el silenciado del usuario. Inténtalo de nuevo.
   notes:
     index:
       title: Notas creadas o comentadas por %{user}
@@ -3135,6 +3212,7 @@ es:
       reactivate: Reactivar
       comment_and_resolve: Comentar y resolver
       comment: Comentar
+      log_in_to_comment: Inicia sesión para comentar esta nota
       report_link_html: Si esta nota contiene información sensible que debe eliminarse,
         puedes %{link}.
       other_problems_resolve: Para todos los demás problemas con la nota, resuélvelo
@@ -3192,12 +3270,10 @@ es:
           other: Estás a %{count} pies desde este punto
       base:
         standard: Estándar
-        cyclosm: CyclOSM
         cycle_map: Mapa ciclista
         transport_map: Mapa de transporte
         tracestracktop_topo: Tracestrack Topo
         hot: Humanitario
-        opnvkarte: ÖPNVKarte
       layers:
         header: Capas del mapa
         notes: Notas del mapa
@@ -3213,8 +3289,6 @@ es:
       osm_france: OpenStreetMap Francia
       thunderforest_credit: Teselas cortesía de %{thunderforest_link}
       andy_allan: Andy Allan
-      opnvkarte_credit: Teselas cortesía de %{memomaps_link}
-      memomaps: MeMoMaps
       tracestrack_credit: Teselas cortesía de %{tracestrack_link}
       hotosm_credit: Estilo de teselas por %{hotosm_link} alojados por %{osm_france_link}
       hotosm_name: Equipo humanitario de OpenStreetMap
@@ -3227,6 +3301,8 @@ es:
       map_data_zoom_in_tooltip: Acercar para ver datos del mapa
       queryfeature_tooltip: Consultar elementos
       queryfeature_disabled_tooltip: Acercar para consultar elementos
+      embed_html_disabled: La incrustación de HTML no está disponible para esta capa
+        de mapa
     changesets:
       show:
         comment: Comentar
@@ -3357,7 +3433,7 @@ es:
       heading: Lista de censuras
       title: Lista de censuras
     new:
-      heading: Introduzca la información de la nueva censura
+      heading: Introduce la información de la nueva censura
       title: Creando nueva censura
     show:
       description: 'Descripción:'
@@ -3368,13 +3444,13 @@ es:
       destroy: Eliminar esta censura
       confirm: ¿Está seguro?
     create:
-      flash: Se creó la censura.
+      flash: Censura creada.
     update:
       flash: Cambios guardados.
     destroy:
       not_empty: La censura no está vacía. Elimina todas las versiones previas pertenecientes
         a esta censura antes de destruirla.
-      flash: Redacción destruida.
+      flash: Censura destruida.
       error: Se produjo un error al destruir esta censura.
   validations:
     leading_whitespace: tiene espacio en blanco delantero
index 7bb68167c1f0a631c759e91ef8d436c78304ca36..d715d5a0e17a7bce65e18261e1ef93d37fbec5ba 100644 (file)
@@ -34,8 +34,8 @@ et:
         create: Registreeri
         update: Uuenda
       redaction:
-        create: Loo redaktsioon
-        update: Salvesta redaktsioon
+        create: Loo kinnikatmine
+        update: Salvesta kinnikatmine
       trace:
         create: Laadi üles
         update: Salvesta muudatused
@@ -329,14 +329,10 @@ et:
       way_paginated: Jooned (%{x}–%{y} %{count}-st)
       relation: Relatsioonid (%{count})
       relation_paginated: Relatsioonid (%{x}–%{y} %{count}-st)
-      comment: Kommentaare (%{count})
       hidden_comment_by_html: Peidetud kommentaar kasutajalt %{user} %{time_ago}
       comment_by_html: Kommentaar kasutajalt %{user} %{time_ago}
       changesetxml: Muudatuskogumi XML
       osmchangexml: osmChange XML
-      feed:
-        title: Muudatuskogum %{id}
-        title_comment: Muudatuskogum %{id} – %{comment}
       join_discussion: Logi sisse, kui soovid arutelus osaleda
       discussion: Arutelu
       still_open: Muudatuskogum on veel avatud. Arutelu avaneb siis, kui muudatuskogum
@@ -387,9 +383,9 @@ et:
         changeset: muudatuskogumi
         note: märkuse
     redacted:
-      redaction: Redaktsioon %{id}
-      message_html: Selle %{type} versiooni %{version} ei saa kuvada, sest seda on
-        muudetud. Palun vaata üksikasju %{redaction_link}.
+      redaction: '%{id}. kinnikatmise'
+      message_html: Selle %{type} versiooni %{version} ei saa näidata, sest see on
+        kinni kaetud. Palun vaata %{redaction_link} üksikasju.
       type:
         node: sõlme
         way: joone
@@ -443,6 +439,9 @@ et:
       no_more_area: Sellest alast ei leitud rohkem muudatuskogumeid.
       no_more_user: Sellelt kasutajalt ei leitud rohkem muudatuskogumeid.
       load_more: Laadi veel
+      feed:
+        title: Muudatuskogum %{id}
+        title_comment: Muudatuskogum %{id} – %{comment}
     timeout:
       sorry: Kahjuks võttis taotletud muudatuskogumite laadimine liiga kaua aega.
   changeset_comments:
@@ -458,6 +457,7 @@ et:
     contact:
       km away: '%{count} kilomeetri kaugusel'
       m away: '%{count} meetri kaugusel'
+      latest_edit_html: 'Viimane muudatus (%{ago}):'
     popup:
       your location: Sinu asukoht
       nearby mapper: Lähedaloevad kaardistajad
@@ -516,8 +516,8 @@ et:
       reply_link: Saada autorile sõnum
       comment_count:
         one: '%{count} kommentaar'
-        zero: Kommentaarid puuduvad
         other: '%{count} kommentaari'
+      no_comments: Kommentaarid puuduvad
       edit_link: Muuda seda sissekannet
       hide_link: Peida see sissekanne
       confirm: Kinnita
@@ -1259,8 +1259,6 @@ et:
   messages:
     inbox:
       title: Saabunud sõnumid
-      my_inbox: Saabunud sõnumid
-      my_outbox: Saadetud sõnumid
       messages: Sul on %{new_messages} ja %{old_messages}.
       new_messages:
         one: '%{count} uus sõnum'
@@ -1268,17 +1266,21 @@ et:
       old_messages:
         one: '%{count} vana sõnum'
         other: '%{count} vana sõnumit'
-      from: Saatja
-      subject: Teema
-      date: Kuupäev
       no_messages_yet_html: Sul ei ole veel sõnumeid. Miks mitte kontakteeruda mõne
         %{people_mapping_nearby_link}?
       people_mapping_nearby: lähedaloleva kaardistajaga
+    messages_table:
+      from: Saatja
+      to: Kellele
+      subject: Teema
+      date: Kuupäev
+      actions: Toimingud
     message_summary:
       unread_button: Märgi mitteloetuks
       read_button: Märgi loetuks
       reply_button: Vasta
       destroy_button: Kustuta
+      unmute_button: Teisalda postkasti
     new:
       title: Saada sõnum
       send_message_to_html: Sõnumi saatmine kasutajale %{name}
@@ -1293,17 +1295,18 @@ et:
       body: Vabandust, kuid sellise ID-ga sõnum puudub.
     outbox:
       title: Saadetud sõnumid
-      my_inbox: Saabunud sõnumid
-      my_outbox: Saadetud sõnumid
+      actions: Toimingud
       messages:
         one: Sul on %{count} saadetud sõnum.
         other: Sul on %{count} saadetud sõnumit.
-      to: Kellele
-      subject: Teema
-      date: Kuupäev
       no_sent_messages_html: Sul ei ole veel saadetud sõnumeid. Miks mitte kontakteeruda
         mõne %{people_mapping_nearby_link}?
       people_mapping_nearby: lähedaloleva kaardistajaga
+    muted:
+      title: Vaigistatud sõnumid
+      messages:
+        one: Üks vaigistatud sõnum.
+        other: Sul on %{count} vaigistatud sõnumit.
     reply:
       wrong_user: Oled sisse loginud kui "%{user}" aga sõnum, millele soovid vastata
         ei olnud sellele kasutajale saadetud. Vastamiseks palun logi sisse õige kasutajana.
@@ -1318,28 +1321,37 @@ et:
         palun logi sisse õige kasutajana.
     sent_message_summary:
       destroy_button: Kustuta
+    heading:
+      my_inbox: Saabunud sõnumid
+      my_outbox: Saadetud sõnumid
+      muted_messages: Vaigistatud sõnumid
     mark:
       as_read: Sõnum on märgitud loetud sõnumiks.
       as_unread: Sõnum on märgitud lugemata sõnumiks.
+    unmute:
+      notice: Sõnum on teisaldatud postkasti.
+      error: Sõnumit ei õnnestunud postkasti teisaldada.
     destroy:
       destroyed: Sõnum kustutatud.
   passwords:
-    lost_password:
+    new:
       title: Unustatud parool
       heading: Parool ununenud?
       email address: 'E-posti aadress:'
       new password button: Lähtesta parool
       help_text: Sisesta e-posti aadress, mida kasutasid registreerumisel. Saadame
         sinna lingi, mida saad kasutada parooli lähtestamiseks.
+    create:
       notice email on way: Kahju, et parooli kaotasid, kuid ära muretse. Peagi saad
         e-kirja, mille abil saad parooli lähtestada.
       notice email cannot find: Seda e-posti aadressi ei leitud.
-    reset_password:
+    edit:
       title: Lähtesta parool
       heading: Kasutaja %{user} parooli lähtestamine
       reset: Lähtesta parool
-      flash changed: Sinu parool on muudetud.
       flash token bad: Ei leitud sellist kinnituskoodi. Kontrolli URL-i.
+    update:
+      flash changed: Sinu parool on muudetud.
   preferences:
     show:
       title: Minu eelistused
@@ -1380,11 +1392,10 @@ et:
       heading: Logi sisse
       email or username: 'E-posti aadress või kasutajanimi:'
       password: 'Parool:'
-      openid_html: '%{logo} OpenID:'
       remember: Jäta mind meelde
       lost password link: Kas unustasid parooli?
       login_button: Logi sisse
-      register now: 'Registreeru:'
+      register now: Registreeru nüüd
       with external: 'Teise võimalusena võid sisse logida kolmanda osapoole kaudu:'
       no account: Sa ei ole veel registreerinud kasutajaks?
       auth failure: Kahjuks ei õnnestu nende andmetega sisse logida.
@@ -1400,8 +1411,8 @@ et:
           title: Logi sisse Facebooki kaudu
           alt: Logi sisse Facebooki kontoga
         microsoft:
-          title: Logi sisse Windows Live'i kaudu
-          alt: Logi sisse Windows Live'i kontoga
+          title: Logi sisse Microsofti kaudu
+          alt: Logi sisse Microsofti kontoga
         github:
           title: Logi sisse GitHubi kaudu
           alt: Logi sisse GitHubi kontoga
@@ -1437,6 +1448,7 @@ et:
       text: Tekst
       image: Pilt
       alt: Asendustekst
+      codeblock: Koodiplokk
     richtext_field:
       edit: Muuda
       preview: Eelvaade
@@ -1562,16 +1574,15 @@ et:
           Meie kaastöölised on tuhanded üksikisikud. Samuti oleme kaasanud
           vabalt litsentseeritud andmeid riiklikest kaardistusteenistustest
           ja muudest allikatest, sealhulgas:
-        contributors_at_credit_html: '%{austria}: Sisaldab andmeid %{stadt_wien_link}
-          (%{cc_by_link} tingimustel), %{land_vorarlberg_link} ja Tirooli liidumaast
-          (%{cc_by_at_with_amendments_link}).'
-        contributors_at_stadt_wien: Viini linnast
-        contributors_at_land_vorarlberg: Vorarlbergi liidumaast
+        contributors_at_credit_html: '%{austria}: Sisaldab %{stadt_wien_link} (%{cc_by_link}
+          tingimustel), %{land_vorarlberg_link} ja Tirooli liidumaa andmeid (%{cc_by_at_with_amendments_link}).'
+        contributors_at_stadt_wien: Viini linna
+        contributors_at_land_vorarlberg: Vorarlbergi liidumaa
         contributors_at_cc_by_at_with_amendments: CC BY AT tingimustel koos õiendustega
         contributors_au_credit_html: '%{australia}: Sisaldab halduspiire või on tuletatud
           halduspiiridest, mille allikas on &copy; %{geoscape_australia_link} ja mille
-          kasutust lubab Austraalia Ühendus rahvusvahelise litsentsi "%{cc_licence_link}"
-          (CC BY 4.0) tingimustel.'
+          kasutust lubab Austraalia Ühendus Creative Commonsi rahvusvahelise litsentsi
+          "%{cc_licence_link}" (CC BY 4.0) tingimustel.'
         contributors_au_australia: Austraalia
         contributors_au_cc_licence: Autorile viitamine 4.0
         contributors_ca_credit_html: '%{canada}: Sisaldab andmekogude GeoBase&reg;,
@@ -1579,6 +1590,11 @@ et:
           loodusvarade ministeerium) ja StatCan (Kanada statistikaameti geograafia
           osakond) andmeid.'
         contributors_ca_canada: Kanada
+        contributors_cz_credit_html: '%{czechia}: Sisaldab riigi maamõõtmis- ja katastriameti
+          andmeid, mis on kasutatavad Creative Commonsi rahvusvahelise litsentsi "%{cc_licence_link}"
+          (CC BY 4.0) tingimustel.'
+        contributors_cz_czechia: Tšehhi
+        contributors_cz_cc_licence: Autorile viitamine 4.0
         contributors_fi_credit_html: "%{finland}: Sisaldab andmeid, mis on pärit \nSoome
           riikliku maa-ameti topograafia andmekogust\nja teistest andmestikest. Andmed
           on kasutatavad %{nlsfi_license_link} tingimustel."
@@ -1593,6 +1609,11 @@ et:
         contributors_nz_credit_html: '%{new_zealand}: Sisaldab teenuse %{linz_data_service_link}
           andmeid, mis on kasutatavad litsentsi %{cc_by_link} tingimustel.'
         contributors_nz_new_zealand: Uus-Meremaa
+        contributors_rs_credit_html: |-
+          %{serbia}: Sisaldab andmeid, mis on pärit %{rgz_link} ja %{open_data_portal}
+          (Serbia avalik teave), 2018.
+        contributors_rs_rgz: Serbia geodeesiaametist
+        contributors_rs_open_data_portal: riigi avaandmete portaalist
         contributors_si_credit_html: '%{slovenia}: Sisaldab %{gu_link} ning %{mkgp_link}
           andmeid (Sloveenia avalik informatsioon).'
         contributors_si_slovenia: Sloveenia
@@ -1659,12 +1680,7 @@ et:
         on vajalik selle režiimi toimimiseks.
     export:
       title: Eksportimine
-      area_to_export: Eksporditav ala
       manually_select: Vali käsitsi teine ala
-      format_to_export: Eksporditav vorming
-      osm_xml_data: OpenStreetMapi andmed XML-kujul
-      map_image: Kaardi pilt (kuvab tavakaardi)
-      embeddable_html: Põimitav HTML
       licence: Litsents
       licence_details_html: OpenStreetMapi andmed on avaldatud Open Data Commonsi
         litsentsi %{odbl_link} (ODbL) tingimustel.
@@ -1688,17 +1704,6 @@ et:
         other:
           title: Muud allikad
           description: Täiendavad allikad on välja toodud OpenStreetMapi vikis.
-      options: Sätted
-      format: 'Vorming:'
-      scale: Mõõtkava
-      max: maks.
-      image_size: Pildi suurus
-      zoom: Suurendus
-      add_marker: Lisa kaardile kohamärk
-      latitude: 'Laius:'
-      longitude: 'Pikkus:'
-      output: Väljund
-      paste_html: Kopeeri ja lisa see HTML-kood oma veebilehele.
       export_button: Ekspordi
     fixthemap:
       title: Probleemist teatamine / kaardi parandamine
@@ -1734,17 +1739,13 @@ et:
         url: https://wiki.openstreetmap.org/wiki/Et:Beginners%27_guide
         title: Juhend algajatele
         description: Kogukonna hallatav juhend algajatele.
-      help:
-        title: Abifoorum
-        description: Esita küsimus või otsi vastuseid OpenStreetMapi küsimuste ja
-          vastuste veebilehel.
+      community:
+        title: Kogukonna foorum
+        description: Ühine arutelukoht OpenStreetMapi kohta käivateks vestlusteks.
       mailing_lists:
         title: Postiloendid
         description: Esita küsimusi või arutle huvipakkuvatel teemadel paljudes temaatilistes
           või piirkondlikes postiloendites.
-      community:
-        title: Kogukonna foorum
-        description: Ühine arutelukoht OpenStreetMapi kohta käivateks vestlusteks.
       irc:
         title: IRC
         description: Interaktiivne suhtluskanal paljudes keeltes ja paljudel teemadel.
@@ -1795,34 +1796,24 @@ et:
           footway: Jalgtee
           rail: Raudtee
           subway: Metroo
-          tram:
-          - Trammitee
-          - tramm
-          cable:
-          - Köisraudtee
-          - toolilift
-          runway:
-          - Lennurada
-          - ruleerimistee
-          apron:
-          - Lennujaama perroon
-          - terminal
+          cable_car: Köisraudtee
+          chair_lift: Toolilift
+          runway: Lennurada
+          taxiway: Ruleerimistee
+          apron: Lennujaama perroon
           admin: Halduspiir
           forest: Tulundusmets
           wood: Mets
           golf: Golfiväljak
           park: Park
+          common: Heinamaa
           resident: Elamurajoon
-          common:
-          - Heinamaa
-          - luht
           retail: Kaubanduspiirkond
           industrial: Tööstuspiirkond
           commercial: Äripiirkond
           heathland: Nõmm
-          lake:
-          - Järv
-          - veehoidla
+          lake: Järv
+          reservoir: Veehoidla
           farm: Põllumajanduslik maa
           brownfield: Ehitusmaa
           cemetery: Surnuaed
@@ -1831,14 +1822,12 @@ et:
           centre: Spordikeskus
           reserve: Looduskaitseala
           military: Sõjaväe kasutuses
-          school:
-          - Kool
-          - ülikool
+          school: Kool
+          university: Ülikool
           building: Märkimisväärne hoone
           station: Raudteejaam
-          summit:
-          - Mägi
-          - tipp
+          summit: Mägi
+          peak: Tipp
           tunnel: Katkendlik ümbris = tunnel
           bridge: Must ümbris = sild
           private: Üksnes omanikule
@@ -2034,6 +2023,7 @@ et:
     revoke:
       flash: Oled tühistanud rakenduse %{application} loa.
     scopes:
+      openid: Sisse logida kasutades OpenStreetMapi
       read_prefs: Lugeda kasutajaeelistusi
       write_prefs: Muuta kasutajaeelistusi
       write_diary: Luua päeviku sissekandeid, kommenteerida ja lisada sõpru
@@ -2041,6 +2031,7 @@ et:
       read_gpx: Lugeda isiklikke GPS-radu
       write_gpx: Laadida üles GPS-radu
       write_notes: Muuta märkusi
+      write_redactions: Katta kaardiandmed kinni
       read_email: Lugeda kasutaja e-posti aadressi
       skip_authorization: Kiita rakendus heaks automaatselt
   oauth_clients:
@@ -2191,6 +2182,8 @@ et:
       my_dashboard: Minu andmelaud
       blocks on me: Saadud blokeeringud
       blocks by me: Minu seatud blokeeringud
+      create_mute: Vaigista see kasutaja
+      destroy_mute: Tühista selle kasutaja vaigistamine
       edit_profile: Muuda profiili
       send message: Saada sõnum
       diary: Päevik
@@ -2203,7 +2196,6 @@ et:
       ct status: 'Kaastöötingimused:'
       ct undecided: Otsustamata
       ct declined: Tagasi lükatud
-      latest edit: 'Viimane muudatus (%{ago}):'
       email address: 'E-posti aadress:'
       created from: 'Loodud:'
       status: 'Staatus:'
@@ -2315,8 +2307,8 @@ et:
     revoke:
       title: Kasutaja %{block_on} blokeeringu eemaldamine
       heading_html: Kasutaja %{block_on} blokeeringu eemaldamine (blokeerinud %{block_by})
-      time_future: See blokeering lõpeb %{time} pärast.
-      past: See blokeering lõppes %{time} ja seda ei saa enam tagasi võtta.
+      time_future_html: See blokeering lõpeb %{time} pärast.
+      past_html: See blokeering lõppes %{time} ja seda ei saa enam tagasi võtta.
       confirm: Kas oled kindel, et soovid seda blokeeringut tühistada?
       revoke: Tühista!
       flash: See blokeering on tühistatud.
@@ -2377,11 +2369,37 @@ et:
       showing_page: Leht %{page}
       next: Järgmine »
       previous: « Eelmine
+  user_mutes:
+    index:
+      title: Vaigistatud kasutajad
+      my_muted_users: Minu vaigistatud kasutajad
+      you_have_muted_n_users:
+        one: Oled vaigistanud ühe kasutaja.
+        other: Oled vaigistanud %{count} kasutajat.
+      user_mute_explainer: Vaigistatud kasutajate sõnumid viiakse eraldi postkasti
+        ja sa ei saa e-posti teavitusi.
+      user_mute_admins_and_moderators: Saad vaigistada administraatoreid ja moderaatoreid,
+        aga nende sõnumeid ei vaigistata.
+      table:
+        thead:
+          muted_user: Vaigistatud kasutaja
+          actions: Toimingud
+        tbody:
+          unmute: Tühista vaigistamine
+          send_message: Saada sõnum
+    create:
+      notice: Vaigistasid kasutaja %{name}.
+      error: Kasutajat %{name} ei õnnestunud vaigistada. %{full_message}.
+    destroy:
+      notice: Tühistasid kasutaja %{name} vaigistamise.
+      error: Kasutaja vaigistamist ei õnnestunud tühistada. Palun proovi uuesti.
   notes:
     index:
       title: Kasutaja %{user} loodud või kommenteeritud märkused
       heading: Kasutaja %{user} märkused
-      subheading_html: Kasutaja %{user} loodud või kommenteeritud märkused
+      subheading_html: Kasutaja %{user} %{submitted} või %{commented} märkused
+      subheading_submitted: loodud
+      subheading_commented: kommenteeritud
       no_notes: Märkused puuduvad.
       id: ID
       creator: Looja
@@ -2535,30 +2553,30 @@ et:
       centre_map: Kuva kaardi keskel
   redactions:
     edit:
-      heading: Redigeeri redaktsiooni
-      title: Redigeeri redaktsiooni
+      heading: Redigeeri kinnikatmist
+      title: Redigeeri kinnikatmist
     index:
-      empty: Redaktsioone pole näidata.
-      heading: Redaktsioonide loend
-      title: Redaktsioonide loend
+      empty: Pole ühtegi kinnikatmist, mida näidata.
+      heading: Kinnikatmiste loend
+      title: Kinnikatmiste loend
     new:
-      heading: Sisesta teave uue redaktsiooni kohta
-      title: Uue redaktsiooni loomine
+      heading: Sisesta teave uue kinnikatmise kohta
+      title: Uue kinnikatmise loomine
     show:
       description: 'Kirjeldus:'
-      heading: Näidatakse redaktsiooni "%{title}"
-      title: Nähtaval redaktsioon
+      heading: Kinnikatmine "%{title}"
+      title: Kinnikatmine
       user: 'Looja:'
-      edit: Muuda seda redaktsiooni
-      destroy: Kustuta see redaktsioon
+      edit: Muuda seda kinnikatmist
+      destroy: Eemalda see kinnikatmine
       confirm: Kas oled kindel?
     create:
-      flash: Redaktsioon on loodud.
+      flash: Kinnikatmine on loodud.
     update:
       flash: Salvestati muudatused.
     destroy:
-      not_empty: Redaktsioon ei ole tühi. Palun eemalda enne redaktsiooni hävitamist
-        kõik versioonid, mis selle alla kuuluvad.
-      flash: Redaktsioon hävitatud.
-      error: Viga selle redaktsiooni hävitamisel.
+      not_empty: Kinnikatmine ei ole tühi. Palun tühista kõigi sellesse kinnikatmisesse
+        kuuluvate versioonide kinnikatmine enne kui selle hävitad.
+      flash: Kinnikatmine hävitatud.
+      error: Viga selle kinnikatmise hävitamisel.
 ...
index 963dccd51ce148843fc9426744b4ce2c604b98c6..417185c1e507d88a0065a9795bc34df38cc6514c 100644 (file)
@@ -60,27 +60,32 @@ eu:
       messages:
         invalid_email_address: badirudi ez dela e-posta helbide egoki bat
         email_address_not_routable: ezin da biderik kalkulatu
+        display_name_is_user_n: ezin da user_n izan, salbu eta n zure erabiltzaile
+          ID-a bada
+      models:
+        user_mute:
+          is_already_muted: dagoeneko isilduta dago
     models:
       acl: Kontrol zerrendara sartu
-      changeset: Aldaketak
-      changeset_tag: Aldaketa Etiketa
+      changeset: Aldaketa multzoa
+      changeset_tag: Aldaketa multzoaren etiketa
       country: Herrialdea
-      diary_comment: Eguneroko iruzkina
-      diary_entry: Eguneroko sarrera
+      diary_comment: Egunerokoaren iruzkina
+      diary_entry: Egunerokoaren sarrera
       friend: Laguna
       issue: Arazoa
       language: Hizkuntza
       message: Mezua
-      node: Nodo
+      node: Nodoa
       node_tag: Nodoaren etiketa
       old_node: Nodo zaharra
       old_node_tag: Nodo etiketa zaharra
       old_relation: Erlazio zaharra
-      old_relation_member: Erlazio zaharreko kidea
-      old_relation_tag: Erlazio zaharreko etiketa
+      old_relation_member: Erlazioko kidea izandakoa
+      old_relation_tag: Erlazioko etiketa zaharra
       old_way: Bide zaharra
-      old_way_node: Nodo bide zaharra
-      old_way_tag: Bide zahar etiketa
+      old_way_node: Bideko nodo zaharra
+      old_way_tag: Bidearen etiketa zaharra
       relation: Erlazioa
       relation_member: Erlazio kidea
       relation_tag: Erlazio etiketa
@@ -136,7 +141,7 @@ eu:
         description: Deskribapena
         gpx_file: 'GPX fitxategia igo:'
         visibility: Ikusgarritasuna
-        tagstring: 'Etiketak:'
+        tagstring: Etiketak
       message:
         sender: Igorlea
         title: Gaia
@@ -156,13 +161,13 @@ eu:
         new_email: 'E-posta helbide berria:'
         active: Aktiboa
         display_name: Erakusteko izena
-        description: 'Profilaren deskribapena:'
+        description: Profilaren deskribapena
         home_lat: Latitudea
         home_lon: Longitudea
-        languages: Hizkuntza lehenetsiak
-        preferred_editor: 'Lehenetsitako editorea:'
+        languages: Hobetsitako hizkuntzak
+        preferred_editor: Editore hobetsia
         pass_crypt: Pasahitza
-        pass_crypt_confirmation: Pasahitza berretsi
+        pass_crypt_confirmation: 'Berretsi pasahitza:'
     help:
       doorkeeper/application:
         confidential: Bezeroaren sekretua isilpean gorde daitekeenean erabiliko da
@@ -170,12 +175,12 @@ eu:
           ez dira konfidentzialak)
         redirect_uri: Erabili lerro bat URI bakoitzeko
       trace:
-        tagstring: koma mugatua
+        tagstring: komak mugatua
       user_block:
         reason: Erabiltzailea blokaturik egoteko arrazoia. Egon ahal bezain lasai
           eta zentzudun, egoeraren inguruko xehetasun guztiak emanez, mezu hori publikoki
           ikusgai egongo dela gogoratuz. Gogoan izan erabiltzaile guztiek ez dutela
-          komunitatearen hizkera ulertzen; beraz, saiatu hitz arruntak erabiltzen.
+          komunitatearen hizkera ulertzen; beraz saiatu hitz arruntak erabiltzen.
         needs_view: Erabiltzaileak saioa hasi behar al du bloke hau garbitu aurretik?
       user:
         new_email: (inoiz ez da publikoki bistaratuko)
@@ -229,7 +234,6 @@ eu:
   auth:
     providers:
       none: Ezer
-      openid: OpenID
       google: Google
       facebook: Facebook
       microsoft: Microsoft
@@ -284,6 +288,8 @@ eu:
         retain_changeset_discussions: Zure aldaketa-multzoko eztabaidak, halakorik
           izanez gero, mantendu egingo dira.
         retain_email: Zure posta elektronikoko helbidea gordeko da.
+        recent_editing_html: Orain dela gutxi editatu duzunez zure kontua ezin da
+          ezabatu. %{time} barru ezabatzea posible izango da.
         confirm_delete: Ziur zaude?
         cancel: Utzi
   accounts:
@@ -363,14 +369,10 @@ eu:
       way_paginated: Bideak (%{x}-%{y} %{count}-tik)
       relation: Erlazioak (%{count})
       relation_paginated: Erlazioak (%{x}-%{y} %{count}-tik)
-      comment: Iruzkinak (%{count})
       hidden_comment_by_html: '%{user} -ren ezkutuko iruzkina %{time_ago} tik'
       comment_by_html: '%{user} -ren iruzkina orain dela %{time_ago}'
       changesetxml: Aldaketaren XML kodea
       osmchangexml: osmChange XML kodea
-      feed:
-        title: '%{id} aldaketak'
-        title_comment: '%{id} aldaketa - %{comment}'
       join_discussion: Hasi saioa eztabaidan parte hartzeko
       discussion: Eztabaida
       still_open: Aldaketak oraindik zabalik - eztabaida aldaketak itxi ondoren irekiko
@@ -452,6 +454,15 @@ eu:
       introduction: Egin klik mapan hurbileko ezaugarriak aurkitzeko.
       nearby: Hurbileko ezaugarriak
       enclosing: Bildutako ezaugarriak
+  old_nodes:
+    not_found:
+      sorry: Barkatu, ezin izan da %{id} nodoaren %{version} bertsioa aurkitu.
+  old_ways:
+    not_found:
+      sorry: Barkatu, ezin izan da %{id} bidearen %{version} bertsioa aurkitu.
+  old_relations:
+    not_found:
+      sorry: Barkatu, ezin izan da %{id} erlazioaren %{version} bertsioa aurkitu.
   changesets:
     changeset_paging_nav:
       showing_page: '%{page} orrialdea'
@@ -480,6 +491,9 @@ eu:
       no_more_area: Inguru honetan ez dago aldaketa gehiagorik.
       no_more_user: Erabiltzaile honek ez du aldaketa gehiagorik egin.
       load_more: Gehiago kargatu
+      feed:
+        title: '%{id} aldaketak'
+        title_comment: '%{id} aldaketa - %{comment}'
     timeout:
       sorry: Barkatu, zuk eskatutako aldaketen zerrenda berreskuratzeko denbora gehiegi
         behar izan da.
@@ -500,6 +514,7 @@ eu:
     contact:
       km away: '%{count} km-tara'
       m away: '%{count} m-tara'
+      latest_edit_html: 'Azken aldaketa (%{ago}):'
     popup:
       your location: Zure kokapena
       nearby mapper: Hurbileko mapeatzaileak
@@ -542,6 +557,7 @@ eu:
     show:
       title: '%{user}(r)en egunerokoa | %{title}'
       user_title: '%{user}(r)en egunerokoa'
+      discussion: Eztabaida
       leave_a_comment: Iruzkin bat utzi
       login_to_leave_a_comment_html: '%{login_link} iruzkin bat uzteko'
       login: Hasi saioa
@@ -597,10 +613,25 @@ eu:
       newer_comments: Iruzkin berriagoak
       older_comments: Iruzkin zaharragoak
   doorkeeper:
+    errors:
+      messages:
+        account_selection_required: Baimen zerbitzariak azken erabiltzailearen kontua
+          hautatzea eskatzen du
+        consent_required: Baimen zerbitzariak erabiltzailearen baimena behar du
+        interaction_required: Baimen zerbitzariak erabiltzailearen interakzioa eskatzen
+          du
+        login_required: Baimen zerbitzariak erabiltzailearen autentifikazioa behar
+          du
     flash:
       applications:
         create:
           notice: Aplikazioa erregistratu da.
+    scopes:
+      address: Zure helbide fisikoa ikusi
+      email: Ikusi zure helbide elektronikoa
+      openid: Egiaztatu zure kontua
+      phone: Zure telefono zenbakia ikusi
+      profile: Zure profileko informazioa ikusi
   errors:
     contact:
       contact_url_title: Harremanetarako hainbat kanal azalduak
@@ -638,6 +669,7 @@ eu:
     search:
       title:
         results_from_html: '%{results_link} ren emaitzak'
+        latlon: Barnekoa
     search_osm_nominatim:
       prefix:
         aerialway:
@@ -1132,7 +1164,7 @@ eu:
           reef: Arrezifea
           ridge: Gailurra
           rock: Arroka
-          saddle: Jarlekua
+          saddle: Mendi-lepoa
           sand: Harea
           scree: Pilaketa
           scrub: Sasiak
@@ -1430,6 +1462,7 @@ eu:
       status: Egoera
       reports: Reporteak
       last_updated: Azken eguneratzea
+      last_updated_time_ago_user_html: Duela %{time_ago} %{user} erabiltzaileak
       link_to_reports: Reporteak ikusi
       reports_count:
         one: txosten %{count}
@@ -1445,9 +1478,9 @@ eu:
         one: '%{count} report'
         other: '%{count} jakinarazpen'
       no_reports: Ez dago txostenik
-      report_created_at: Lehenengoz %{datetime} egunean berri emanda
-      last_resolved_at: Azkenekoz %{datetime} egunean konponduta
-      last_updated_at: Azkenekoz %{displayname}-(e)k %{datetime} egunean eguneratua
+      report_created_at_html: Lehenengoz %{datetime} egunean berri emanda
+      last_resolved_at_html: Azkenekoz %{datetime} egunean konponduta
+      last_updated_at_html: Azkenekoz %{displayname}-(e)k %{datetime} egunean eguneratua
       resolve: Konpondu
       ignore: Ezikusi
       reopen: Berrireki
@@ -1606,6 +1639,11 @@ eu:
       subject: '[OpenStreetMap] GPX Inportazioan porrota'
     gpx_success:
       hi: Kaixo %{to_user},
+      loaded:
+        one: behar bezala kargatu dira %{trace_points} %{count} puntu posibletatik.
+        other: '%{trace_points} %{count} puntu posibletatik arrakastaz kargatu da.'
+      all_your_traces_html: Arrakastaz kargatutako zure GPX arrasto guztiak %{url}
+        helbidean aurki daitezke.
       subject: '[OpenStreetMap] GPX Inportazioan arrakasta'
     signup_confirm:
       subject: '[OpenStreetMap] Ongi etorri OpenStreetMap-era'
@@ -1727,8 +1765,6 @@ eu:
   messages:
     inbox:
       title: Sarrera-ontzia
-      my_inbox: Nire sarrera-ontzia
-      my_outbox: Nire Irteera-Ontzia
       messages: '%{new_messages} eta %{old_messages} dituzu'
       new_messages:
         one: '%Mezu berri {count}'
@@ -1736,17 +1772,21 @@ eu:
       old_messages:
         one: mezu zahar %{count}
         other: '%{count} mezu zahar'
-      from: Igorlea
-      subject: Gaia
-      date: Data
       no_messages_yet_html: Ez duzu mezurik jaso oraindik. Zergatik ez konektatuan
         jarri %{people_mapping_nearby_link} batzuekin?
       people_mapping_nearby: kartografiatzen ari diren hurbileko pertsonak
+    messages_table:
+      from: Igorlea
+      to: Hartzailea
+      subject: Gaia
+      date: Data
+      actions: Ekintzak
     message_summary:
       unread_button: Markatu irakurri gabekotzat
       read_button: Markatu irakurritzat
       reply_button: Erantzun
       destroy_button: Ezabatu
+      unmute_button: Mugitu Sarrera-ontzira
     new:
       title: Bidali mezua
       send_message_to_html: '%{name}ri mezu berri bat bidali'
@@ -1761,17 +1801,18 @@ eu:
       body: Barkatu baina id horrekin ez dago mezurik.
     outbox:
       title: Irteerako ontzia
-      my_inbox: Nire sarrera-ontzia
-      my_outbox: Nire Irteera-Ontzia
+      actions: Ekintzak
       messages:
         one: '%{count} Mezua bidali duzu'
         other: ' %{count} Mezuak bidali dituzu'
-      to: Hartzailea
-      subject: Gaia
-      date: Data
       no_sent_messages_html: Ez duzu mezurik bidali oraindik. Zergatik ez konektatuan
         jarri %{people_mapping_nearby_link} batzuekin?
       people_mapping_nearby: kartografiatzen ari diren hurbileko pertsonak
+    muted:
+      title: Isildutako mezuak
+      messages:
+        one: "Isildutako mezu \n%{count}"
+        other: Isildutako %{count} mezu berri
     reply:
       wrong_user: '''%{user}'' bezala saioa hasi duzu baina erantzuteko eskatu duzun
         mezua ez da erabiltzaile horri bidali. Hasi saioa erabiltzaile zuzenarekin
@@ -1787,28 +1828,38 @@ eu:
         zuzenarekin irakurtzeko.'
     sent_message_summary:
       destroy_button: Ezabatu
+    heading:
+      my_inbox: Nire sarrera-ontzia
+      my_outbox: Nire Irteera-Ontzia
+      muted_messages: Isildutako mezuak
     mark:
       as_read: Mezua irakurrita gisa markatu da
       as_unread: Mezua irakurri gabe gisa markatu da
+    unmute:
+      notice: Mezua Sarrera-ontzira eraman dugu
+      error: Mezua ezin izan da postontzira eraman.
     destroy:
       destroyed: Mezua ezabatuta
   passwords:
-    lost_password:
+    new:
       title: Ahaztutako pasahitza
       heading: Pasahitza ahaztuta?
-      email address: 'Eposta helbidea:'
+      email address: Eposta helbidea
       new password button: Pasahitza berrezarri
       help_text: Sartu saioa hastean erabiltzen zenuen helbide elektronikoa, zure
         pasahitza berrezarri ahal izateko erabil dezakezu bidaliko dizugun esteka.
+    create:
       notice email on way: Sentitzen duzu hau galdu izatea :-( baina posta elektronikoa
         bidaltzen ari zaizu laster berrabiarazi dezakezun.
       notice email cannot find: Eposta helbide hori ezin izan dugu aurkitu, barkatu.
-    reset_password:
+    edit:
       title: Pasahitza berrezarri
       heading: '%{user}-ren pasahitza berrezarri'
       reset: Pasahitza berrezarri
-      flash changed: Zure pasahitza aldatu da.
       flash token bad: Token hori ez da aurkitu, URL egiaztatu beharbada?
+    update:
+      flash changed: Zure pasahitza aldatu da.
+      flash token bad: Ez dut token hori aurkitu, egiaztatu dezakezu URLa agian?
   preferences:
     show:
       title: Nire hobespenak
@@ -1853,9 +1904,8 @@ eu:
     new:
       title: Saio-hasiera
       heading: Saio-hasiera
-      email or username: 'Eposta helbidea edo Erabiltzaile izena:'
-      password: 'Pasahitza:'
-      openid_html: '%{logo} OpenID:'
+      email or username: 'Eposta helbide edo erabiltzaile izena:'
+      password: Pasahitza
       remember: Gogora nazazu
       lost password link: Pasahitza ahaztu duzu?
       login_button: Saioa hasi
@@ -1913,6 +1963,7 @@ eu:
       image: Irudia
       alt: Ordezko testua
       url: URL
+      codeblock: Kode blokea
     richtext_field:
       edit: Aldatu
       preview: Aurreikuspena
@@ -1930,11 +1981,24 @@ eu:
         aireko irudiak erabiltzen dituzte, GPS gailuak eta teknologia baxuko eremuko
         mapak OSMrako egiaztapen zehatza eta eguneratua egiteko.
       community_driven_title: Komunitatearen Ahotsa
+      community_driven_1_html: |-
+        OpenStreetMap-en komunitatea anitza eta sutsua da eta egunero hazten ari da.
+        Gure kolaboratzaileen artean mapatzaile amorratuak, GIS profesionalak, ingeniariak
+        OSM zerbitzariak zuzentzen dituztenak, hondamendiak eragindako eremuak mapatzen dituzten laguntzaileak
+        eta askoz gehiago gaude.
+         Komunitateari buruz gehiago jakiteko, ikusi %{osm_blog_link},
+        %{user_diaries_link},%{community_blogs_link} eta
+        %{osm_foundation_link} webgunea.
       community_driven_osm_blog: OpenStreetMap bloga
       community_driven_user_diaries: Erabiltzaileen egunerokoak
       community_driven_community_blogs: Komunitateko blogak
       community_driven_osm_foundation: OSM Fundazioa
       open_data_title: Datu Irekiak
+      open_data_1_html: 'OpenStreetMap %{open_data} da: edozein gauzarako erabil dezakezu
+        betiere OpenStreetMap eta bere kolaboratzaileek aipatzen badituzu. Moduren
+        batean datuen gainean edukia eraiki edo eraldatzen baduzu, lizentzia beraren
+        azpian bakarrik partekatu ahal izango duzu emaitza. Ikus %{copyright_license_link}
+        xehetasun gehiago lortzeko.'
       open_data_open_data: Datu Irekiak
       open_data_copyright_license: Copyright eta lizentzia orria
       legal_title: Legala
@@ -2065,12 +2129,7 @@ eu:
         honetarako ezinbestekoak direnak.
     export:
       title: Esportatu
-      area_to_export: Esportatu beharreko eremua
       manually_select: Aukeratu eskuz eremu ezberdin bat
-      format_to_export: Esportatzeko formatua
-      osm_xml_data: OpenStreetMap XML Datuak
-      map_image: Maparen irudia (geruza estandarra erakusten du)
-      embeddable_html: HTML kapsulagarria
       licence: Lizentzia
       licence_details_html: OpenStreetMap datuak %{odbl_link} (ODbL) lizentziapean
         daude.
@@ -2095,17 +2154,6 @@ eu:
         other:
           title: Bestelako Iturriak
           description: OpenStreetMap wikian zerrendatutako iturri osagarriak
-      options: Aukerak
-      format: Formatua
-      scale: Eskala
-      max: max
-      image_size: Irudiaren tamaina
-      zoom: Zooma
-      add_marker: Mapari markatzailea gehitu
-      latitude: 'Lat:'
-      longitude: 'Lon:'
-      output: Irteera
-      paste_html: Itsatsi HTMLa webgunean kapsulatzeko
       export_button: Esportatu
     fixthemap:
       title: Arazo baten berri eman / Mapa zuzendu
@@ -2133,16 +2181,14 @@ eu:
         url: http://wiki.openstreetmap.org/wiki/Eu:Beginners%27_guide
         title: Hasiberrientzako gida
         description: Hasiberrientzako mantentze-gida komunitarioa.
-      help:
-        title: Laguntza foroa
-        description: Egin galdera bat edo begiratu OSMn galdera-eta-erantzun gunean.
+      community:
+        title: Laguntza eta Komunitatearen foroa
+        description: OpenStreetMapi buruz laguntza bilatu eta elkarrizketarako leku
+          partekatua.
       mailing_lists:
         title: Posta Bidaltze Zerrendak
         description: Galdera bat egin edo eztabaidatu gai interesgarriak gaikako edo
           eskualdekako posta zerrendetan.
-      community:
-        title: Komunitatearen ataria
-        description: OpenStreetMapi buruzko elkarrizketetarako leku partekatua.
       irc:
         title: IRC
         description: Hizkuntza eta gai askotako hizketaldi interaktiboa.
@@ -2174,6 +2220,7 @@ eu:
         galderak egiteko eta erantzuteko, eta elkarrekin eztabaidatzeko eta mapa-gaiak dokumentatzeko.
         %{help_link}. Erakunderen batekin OpenStreetMap-erako planak egiten? %{welcome_mat_link}.
       get_help_here: Lortu laguntza hemen
+      welcome_mat: Begiratu ongi etorria emateko txartelak.
     sidebar:
       search_results: Bilaketaren emaitzak
       close: Itxi
@@ -2196,67 +2243,81 @@ eu:
           primary: Lehen mailako errepidea
           secondary: Bigarren mailako errepidea
           unclassified: Sailkatu gabeko errepidea
+          pedestrian: Oinezkoen bidea
           track: Pista
           bridleway: Oinezkoen gunea
           cycleway: Bidegorria
           cycleway_national: Bizikleta bide nazionala
           cycleway_regional: Eskualde bizikleta bidea
           cycleway_local: Bizikleta bide lokala
+          cycleway_mtb: Mendiko bizikletarako ibilbidea
           footway: Oinezkoen bidea
           rail: Trenbidea
+          train: Trena
           subway: Metroa
-          tram:
-          - Tren arina
-          - tranbia
-          cable:
-          - Funikularra
-          - teleaulkia
-          runway:
-          - Aireportuko Pista
-          - taxi bidea
-          apron:
-          - Aireportu plataforma
-          - terminala
+          ferry: Ferrya
+          light_rail: Trenbide arina
+          tram: Tranbia
+          trolleybus: Trolebusa
+          bus: Autobusa
+          cable_car: Funikularra
+          chair_lift: Teleaulkia
+          runway: Aireportuko Pista
+          taxiway: Taxi-bidea
+          apron: Aireportu plataforma
           admin: Muga administratiboa
+          capital: Hiriburua
+          city: Hiria
+          orchard: Baratzea
+          vineyard: Mahastia
           forest: Baso
           wood: Basoa
+          farmland: Nekazaritza-lurrak
+          grass: Belardia
+          meadow: Larrea
+          bare_rock: Harkaitz biluzia
+          sand: Harea
           golf: Golf-zelai
           park: Parke
+          common: Arrunta
           resident: Etxebizitza ingurua
-          common:
-          - Arrunta
-          - belardia
-          - lorategia
           retail: Txikizkako azalera
           industrial: Industrialdea
           commercial: Merkataritza eremua
           heathland: Txilardia
-          lake:
-          - Aintzira
-          - urtegia
+          scrubland: Sastrakadiak
+          lake: Aintzira
+          reservoir: Urtegia
+          glacier: Glaziarra
+          reef: Arrezifea
+          wetland: Hezegunea
           farm: Baserria
           brownfield: Landarik gabeko gunea
           cemetery: Hilerri
           allotments: Alokatutako Baratzeak
           pitch: Kirolgunea
           centre: Kiroldegi
+          beach: Hondartza
           reserve: Natura-erreserba
           military: Eremu militarra
-          school:
-          - Eskola
-          - unibertsitate
+          school: Eskola
+          university: Unibertsitatea
+          hospital: Ospitalea
           building: Eraikin garrantzitsua
           station: Tren geltokia
-          summit:
-          - Tontorra
-          - gailurra
+          summit: Tontorra
+          peak: Gailurra
           tunnel: Marratxodun estalkia = tunela
           bridge: Estalki beltza = zubia
           private: Sarbide pribatua
           destination: Helmuga sarbidea
           construction: Eraikitzen ari diren errepideak
+          bus_stop: Autobus geltokia
+          stop: Geltokia
           bicycle_shop: Bizikleta-denda
+          bicycle_rental: Bizikleta alokairua
           bicycle_parking: Bizikleta-aparkalekua
+          bicycle_parking_small: Bizikleten aparkaleku txikia
           toilets: Komunak
     welcome:
       title: Ongi etorri!
@@ -2272,6 +2333,7 @@ eu:
           diren zenbait hitz gako.
         editor: editorea
         node: nodoa
+        way: bidea
         tag: etiketa
       rules:
         title: Arauak!
@@ -2648,7 +2710,6 @@ eu:
       ct status: 'Kolaboratzaile terminoak:'
       ct undecided: Erabakigabea
       ct declined: Ez da onartu
-      latest edit: 'Azken aldaketa (%{ago}):'
       email address: 'Eposta helbidea:'
       created from: 'Hemendik sortua:'
       status: 'Egoera:'
@@ -2768,8 +2829,8 @@ eu:
     revoke:
       title: '%{block_on} blokeoa ezeztatzen'
       heading_html: '%{block_by} erabiltzaileak egindako %{block_on} blokeoa ezeztatzen'
-      time_future: Blokeo hau %{time}-n bukatuko da.
-      past: Blokeo hau %{time} bukatu da eta ezin da orain ezeztatu.
+      time_future_html: Blokeo hau %{time}-n bukatuko da.
+      past_html: Blokeo hau %{time} bukatu da eta ezin da orain ezeztatu.
       confirm: Blokeo hau ezeztatu nahi duzula argi daukazu?
       revoke: Ezeztatu!
       flash: Blokeo hau ezeztatu da.
@@ -2912,11 +2973,9 @@ eu:
           other: Puntu honetatik %{count} oinetara zaude
       base:
         standard: Arrunta
-        cyclosm: CyclOSM
         cycle_map: Bizikletentzako mapa
         transport_map: Garraioen mapa
         hot: Humanitarioa
-        opnvkarte: ÖPNVKarte
       layers:
         header: Maparen geruzak
         notes: Maparen oharrak
@@ -2929,7 +2988,6 @@ eu:
       website_and_api_terms: Webgunearen eta APIaren baldintzak
       osm_france: OpenStreetMap Frantzia
       andy_allan: Andy Allan
-      memomaps: MeMoMaps
       hotosm_name: OpenStreetMap Talde humanitarioa
     site:
       edit_tooltip: Editatu mapa
index 29d512f13c8289059c86d8388da1bab96d6eb5b2..6073e505d384483055d662f78b3aea0867208eaa 100644 (file)
@@ -255,7 +255,6 @@ fa:
   auth:
     providers:
       none: هیچ‌کدام
-      openid: OpenID
       google: گوگل
       facebook: فیس‌بوک
       microsoft: مایکروسافت
@@ -386,14 +385,10 @@ fa:
       way_paginated: راه‌ها (%{x}-%{y} از %{count})
       relation: رابطه‌ها (%{count})
       relation_paginated: رابطه‌ها (%{x}-%{y} از %{count})
-      comment: نظرها (%{count})
       hidden_comment_by_html: نظر پنهان؛ نوشتهٔ %{user}‏ %{time_ago}
       comment_by_html: نظر از %{user}‏ %{time_ago}
       changesetxml: Changeset XML
       osmchangexml: osmChange XML
-      feed:
-        title: بستهٔ تغییر %{id}
-        title_comment: بستهٔ تغییر %{id} - %{comment}
       join_discussion: وارد شوید تا به بحث بپیوندید
       discussion: بحث
       still_open: بستهٔ تغییر هنوز باز است - امکان بحث پس از بستن آن باز می‌شود.
@@ -502,6 +497,9 @@ fa:
       no_more_area: بستهٔ تغییر دیگری در این ناحیه یافت نشد.
       no_more_user: بستهٔ تغییر دیگری از این کاربر یافت نشد.
       load_more: بیشتر بار کن
+      feed:
+        title: بستهٔ تغییر %{id}
+        title_comment: بستهٔ تغییر %{id} - %{comment}
     timeout:
       sorry: شوربختانه بازیابی بسته‌های تغییر که درخواست نموده‌اید، خیلی طولانی شد.
   changeset_comments:
@@ -520,6 +518,7 @@ fa:
     contact:
       km away: ‏%{count} کیلومتر فاصله
       m away: ‏%{count} متر فاصله
+      latest_edit_html: 'آخرین ویرایش (%{ago}):'
     popup:
       your location: مکان شما
       nearby mapper: نقشه‌کش نزدیک
@@ -1397,9 +1396,9 @@ fa:
         one: '%{count} گزارش'
         other: '%{count} گزارش'
       no_reports: گزارشی پیدا نشد
-      report_created_at: اولین بار %{datetime} گزارش شد
-      last_resolved_at: آخرین بار %{datetime} حل شد
-      last_updated_at: آخرین روزآمدسازی در %{datetime} به دست %{displayname}
+      report_created_at_html: اولین بار %{datetime} گزارش شد
+      last_resolved_at_html: آخرین بار %{datetime} حل شد
+      last_updated_at_html: آخرین روزآمدسازی در %{datetime} به دست %{displayname}
       resolve: حل شد
       ignore: نادیده‌گیری
       reopen: بازگشایی
@@ -1695,8 +1694,6 @@ fa:
   messages:
     inbox:
       title: صندوق دریافت
-      my_inbox: صندوق دریافت
-      my_outbox: صندوق ارسال
       messages: '%{new_messages} و %{old_messages} دارید'
       new_messages:
         one: '%{count} پیام تازه'
@@ -1704,12 +1701,14 @@ fa:
       old_messages:
         one: '%{count} پیام قدیمی'
         other: '%{count} پیام قدیمی'
-      from: از
-      subject: عنوان
-      date: تاریخ
       no_messages_yet_html: هنوز پیامی ندارید. چطور است با چند نفر از %{people_mapping_nearby_link}
         تماس بگیرید؟
       people_mapping_nearby: کسانی که نزدیک شما نقشه می‌کشند
+    messages_table:
+      from: از
+      to: به
+      subject: عنوان
+      date: تاریخ
     message_summary:
       unread_button: نشان بزن نخواندم
       read_button: نشان بزن که خواندم
@@ -1729,14 +1728,9 @@ fa:
       body: متأسفانه هیچ پیامی با این شناسه وجود ندارد.
     outbox:
       title: صندوق ارسال
-      my_inbox: صندوق دریافت
-      my_outbox: صندوق ارسال
       messages:
         one: '%{count} پیام ارسالی دارید'
         other: '%{count} پیام ارسالی دارید'
-      to: به
-      subject: موضوع
-      date: تاریخ
       no_sent_messages_html: هنوز پیامی نفرستاده‌اید. چطور است با چند نفر از %{people_mapping_nearby_link}
         تماس بگیرید؟
       people_mapping_nearby: کسانی که نزدیک شما نقشه می‌کشند
@@ -1755,28 +1749,33 @@ fa:
         وارد سامانه شوید تا بتوانید آن را بخوانید.
     sent_message_summary:
       destroy_button: حذف
+    heading:
+      my_inbox: صندوق دریافت
+      my_outbox: صندوق ارسال
     mark:
       as_read: پیام به‌عنوان خوانده علامت‌گذاری شد
       as_unread: پیام به عنوان نخوانده علامت‌گذاری شد
     destroy:
       destroyed: پیام حذف شد
   passwords:
-    lost_password:
+    new:
       title: فراموشی رمز عبور
       heading: رمز عبور خودتان را فراموش کرده‌اید؟
-      email address: 'نشانی رایانامه:'
+      email address: نشانی رایانامه
       new password button: بازنشانی رمز عبور
       help_text: رایانامه‌ای که با آن نام‌نویسی کرده‌اید را وارد کنید. ما پیوندی به
         آن می‌فرستیم تا بتوانید به وسیلهٔ آن گذرواژه‌تان را بازنشانی کنید.
+    create:
       notice email on way: متأسفیم که آن را گم کرده‌اید :-( اما رایانامه‌ای در راه
         است که می‌توانید به‌زودی آن را مجدد تنظیم کنید.
       notice email cannot find: چنین رایانامه‌ای پیدا نشد، متأسفیم.
-    reset_password:
+    edit:
       title: بازنشانی رمز عبور
       heading: بازنشانی رمز عبور برای %{user}
       reset: بازنشانی رمز عبور
-      flash changed: رمز عبورتان عوض شد.
       flash token bad: توکن را نیافتید؟ نشانی را بررسی کنید شاید بیابید.
+    update:
+      flash changed: رمز عبورتان عوض شد.
   preferences:
     show:
       title: ترجیحات من
@@ -1811,6 +1810,7 @@ fa:
       no home location: شما محل خانهٔ خودتان را وارد نکرده‌اید.
       update home location on click: وقتی روی نقشه کلیک می‌کنم موقعیت خانه روزآمد
         شود.
+      delete: حذف
     update:
       success: نمایه ذخیره شد.
       failure: ذخیره‌سازی نمایه انجام نشد.
@@ -1818,9 +1818,8 @@ fa:
     new:
       title: ورود
       heading: ورود
-      email or username: 'نشانی رایانامه یا نام کاربری:'
-      password: 'رمز عبور:'
-      openid_html: '%{logo} OpenID:'
+      email or username: نشانی رایانامه یا نام کاربری
+      password: رمز عبور
       remember: مرا به خاطر بسپار
       lost password link: رمز عبورتان را فراموش کرده‌اید؟
       login_button: ورود
@@ -1979,12 +1978,7 @@ fa:
         پشتیبانی نمی‌کند.
     export:
       title: برون‌ریزی
-      area_to_export: محدوده برای برون‌ریزی
       manually_select: به‌صورت دستی منطقهٔ دیگری انتخاب کنید
-      format_to_export: قالب برون‌ریزی
-      osm_xml_data: OpenStreetMap XML Data
-      map_image: تصویر نقشه (لایهٔ استاندارد را نشان می‌دهد)
-      embeddable_html: HTML توکار
       licence: پروانه
       too_large:
         advice: 'اگر برون‌ریزی بالا انجام نشد، لطفاً یکی از منابع زیر را استفاده کنید:'
@@ -2005,17 +1999,6 @@ fa:
         other:
           title: سایر منابع
           description: منابع بیشتر در ویکی OpenStreetMap ذکر شده است
-      options: گزینه‌ها
-      format: قالب
-      scale: مقیاس
-      max: حداکثر
-      image_size: اندازهٔ تصویر
-      zoom: بزگ‌نمایی
-      add_marker: افزودن نشانگر به نقشه
-      latitude: 'عرض:'
-      longitude: 'طول:'
-      output: خروجی
-      paste_html: برای استفادهٔ توکار در وبگاه، HTML را جایگذاری کنید
       export_button: برون‌ریزی
     fixthemap:
       title: گزارش مشکل / اصلاح نقشه
@@ -2041,9 +2024,6 @@ fa:
         url: https://wiki.openstreetmap.org/wiki/Fa:Beginners%27_guide
         title: راهنمای مبتدیان
         description: راهنمایی برای تازه‌واردان که اعضای جامعه آماده کرده‌اند.
-      help:
-        title: انجمن کمک
-        description: در وبگاه پرسش‌وپاسخ OSM سؤال بپرسید یا بین پاسخ‌ها بگردید.
       mailing_lists:
         title: فهرست‌های پستی
         description: در فهرست‌های پستی متنوعِ موضوعی یا منطقه‌ای سوال بپرسید یا دربارهٔ
@@ -2095,34 +2075,24 @@ fa:
           footway: راه پیاده
           rail: راه‌آهن
           subway: مترو
-          tram:
-          - راه‌آهن سبک
-          - قطار برقی
-          cable:
-          - تله‌فریک
-          - صندلی بالابر
-          runway:
-          - باند فرودگاه
-          - خزش‌راه
-          apron:
-          - پیشگاه فرودگاه
-          - پایانه
+          cable_car: تله‌فریک
+          chair_lift: صندلی بالابر
+          runway: باند فرودگاه
+          taxiway: خزش‌راه
+          apron: پیشگاه فرودگاه
           admin: مرز اداری
           forest: جنگل
           wood: چوب
           golf: زمین گلف
           park: پارک
+          common: مشاع
           resident: منطقهٔ مسکونی
-          common:
-          - مشاع
-          - علفزار
           retail: منطقه خرده فروشی
           industrial: منطقه صنعتی
           commercial: منطقه تجاری
           heathland: Heathland
-          lake:
-          - دریاچه
-          - مخزن
+          lake: دریاچه
+          reservoir: مخزن
           farm: مزرعه
           brownfield: سایت قهوه‌ای
           cemetery: گورستان
@@ -2131,14 +2101,12 @@ fa:
           centre: مرکز ورزشی
           reserve: طبیعت حفاظت شده
           military: منطقه نظامی
-          school:
-          - مدرسه
-          - دانشگاه
+          school: مدرسه
+          university: دانشگاه
           building: ساختمان مهم
           station: ایستگاه راه آهن
-          summit:
-          - چکاد
-          - قله
+          summit: چکاد
+          peak: قله
           tunnel: لبهٔ خط‌چین‌دار = تونل
           bridge: لبهٔ سیاه = پل
           private: دسترسی شخصی
@@ -2488,7 +2456,6 @@ fa:
       ct status: 'شرایط مشارکت‌کننده:'
       ct undecided: بلاتکلیف
       ct declined: رد شده
-      latest edit: 'آخرین ویرایش (%{ago}):'
       email address: 'نشانی رایانامه:'
       created from: 'ایجادشده از:'
       status: 'وضعیت:'
@@ -2603,8 +2570,8 @@ fa:
     revoke:
       title: ابطال مسدودی %{block_on}
       heading_html: ابطال مسدودی %{block_on}، مسدودشده به دست %{block_by}
-      time_future: این مسدودی در %{time} پایان می یابد.
-      past: این مسدودی %{time} پایان یافته و اکنون قابل‌ابطال نیست.
+      time_future_html: این مسدودی در %{time} پایان می یابد.
+      past_html: این مسدودی %{time} پایان یافته و اکنون قابل‌ابطال نیست.
       confirm: مطمئنید می‌خواهید این مسدودی را باطل کنید؟
       revoke: باطل شود!
       flash: این مسدودی باطل شد.
index eb11333a9f86073bf43646cb2c4ee91ad69c3053..6f9ad5235388671c3e94e943bb758815348e3e36 100644 (file)
@@ -261,9 +261,9 @@ fi:
   auth:
     providers:
       none: Ei mitään
-      openid: OpenID
       google: Google
       facebook: Facebook
+      microsoft: Microsoft
       github: GitHub
       wikipedia: Wikipedia
   api:
@@ -382,14 +382,10 @@ fi:
       way_paginated: Reitit (%{x}-%{y} of %{count})
       relation: Relaatiot (%{count})
       relation_paginated: Relaatiot (%{x}-%{y} / %{count})
-      comment: Kommentit (%{count})
       hidden_comment_by_html: Piilotettu kommentti käyttäjältä %{user} %{time_ago}
       comment_by_html: Kommentti käyttäjältä %{user}, %{time_ago}
       changesetxml: Muutoskokoelman XML
       osmchangexml: osmChange XML
-      feed:
-        title: Muutoskokoelma %{id}
-        title_comment: Muutoskokoelma %{id} - %{comment}
       join_discussion: Kirjaudu sisään osallistuaksesi keskusteluun
       discussion: Keskustelu
       still_open: Muutoskokoelma on edelleen avoimena - keskustelu avataan heti kun
@@ -498,6 +494,9 @@ fi:
       no_more_area: Ei muita muutosryhmiä tällä alueella.
       no_more_user: Ei muita muutosryhmiä tällä käyttäjällä.
       load_more: Lataa lisää
+      feed:
+        title: Muutoskokoelma %{id}
+        title_comment: Muutoskokoelma %{id} - %{comment}
     timeout:
       sorry: Valitettavasti pyytämäsi muutoskokoelmien listan hakeminen kesti liian
         kauan.
@@ -517,6 +516,7 @@ fi:
     contact:
       km away: '%{count} kilometrin päässä'
       m away: '%{count} metrin päässä'
+      latest_edit_html: 'Viimeisin muutos (%{ago}):'
     popup:
       your location: Oma sijaintisi
       nearby mapper: Lähellä oleva kartoittaja
@@ -559,6 +559,7 @@ fi:
     show:
       title: Käyttäjän %{user} päiväkirja | %{title}
       user_title: Käyttäjän %{user} päiväkirja
+      discussion: Keskustelu
       leave_a_comment: Kommentoi tätä kirjoitusta
       login_to_leave_a_comment_html: '%{login_link} kommentoidaksesi'
       login: Kirjaudu sisään
@@ -1448,9 +1449,9 @@ fi:
         one: '%{count} ilmianto'
         other: '%{count} ilmiantoa'
       no_reports: Ei ilmiantoja
-      report_created_at: Ilmoitettu ensimmäisen kerran %{datetime}
-      last_resolved_at: Ratkaistu %{datetime}
-      last_updated_at: Viimeisin käsittelijä %{displayname} %{datetime}
+      report_created_at_html: Ilmoitettu ensimmäisen kerran %{datetime}
+      last_resolved_at_html: Ratkaistu %{datetime}
+      last_updated_at_html: Viimeisin käsittelijä %{displayname} %{datetime}
       resolve: Ratkaise
       ignore: Merkitse aiheettomaksi
       reopen: Avaa uudelleen
@@ -1707,8 +1708,6 @@ fi:
   messages:
     inbox:
       title: Saapuneet
-      my_inbox: Saapuneet
-      my_outbox: Lähetetyt
       messages: Kansiossa on %{new_messages} ja %{old_messages}.
       new_messages:
         one: '%{count} lukematon viesti'
@@ -1716,11 +1715,13 @@ fi:
       old_messages:
         one: '%{count} luettu viesti'
         other: '%{count} luettua viestiä'
+      no_messages_yet_html: Ei viestejä. %{people_mapping_nearby_link}
+      people_mapping_nearby: Lähiseudun kartoittajat
+    messages_table:
       from: Lähettäjä
+      to: Vastaanottaja
       subject: Otsikko
       date: Päiväys
-      no_messages_yet_html: Ei viestejä. %{people_mapping_nearby_link}
-      people_mapping_nearby: Lähiseudun kartoittajat
     message_summary:
       unread_button: Merkitse lukemattomaksi
       read_button: Merkitse luetuksi
@@ -1740,14 +1741,9 @@ fi:
       body: Valitettavasti tällä ID-tunnuksella ei ole viestiä.
     outbox:
       title: Lähetetyt
-      my_inbox: Saapuneet
-      my_outbox: Lähetetyt
       messages:
         one: Kansiossa on %{count} lähetetty viesti.
         other: Kansiossa on %{count} lähetettyä viestiä.
-      to: Vastaanottaja
-      subject: Otsikko
-      date: Päiväys
       no_sent_messages_html: Et ole lähettänyt vielä viestejä. Miksi et ottaisi yhteyttä
         joihinkin %{people_mapping_nearby_link}?
       people_mapping_nearby: lähellä kartoittaviin käyttäjiin
@@ -1766,27 +1762,32 @@ fi:
         sisään oikealla käyttäjätunnukselle lukeaksesi sen.
     sent_message_summary:
       destroy_button: Poista
+    heading:
+      my_inbox: Saapuneet
+      my_outbox: Lähetetyt
     mark:
       as_read: Viesti on merkitty luetuksi.
       as_unread: Viesti on merkitty lukemattomaksi.
     destroy:
       destroyed: Viesti on poistettu.
   passwords:
-    lost_password:
+    new:
       title: Unohtunut salasana
       heading: Unohditko salasanasi?
-      email address: 'Sähköpostiosoite:'
+      email address: Sähköpostiosoite
       new password button: Lähetä salasanan palautusohjeet
       help_text: Kirjoita alapuolelle kirjautumissähköpostiosoitteesi. Osoitteeseen
         lähetetään salasanan palautusohjeet.
+    create:
       notice email on way: Salasanan palautusohjeet on lähetetty annettuun sähköpostiosoitteeseen.
       notice email cannot find: Annettu sähköpostiosoite ei ole käytössä.
-    reset_password:
+    edit:
       title: Salasanan vaihto
       heading: Vaihda käyttäjän %{user} salasana
       reset: Vaihda salasana
-      flash changed: Salasanasi on vaihdettu.
       flash token bad: Tuntematon tunniste. Tarkista että URL on sama kuin postissasi.
+    update:
+      flash changed: Salasanasi on vaihdettu.
   preferences:
     show:
       title: Asetukset
@@ -1831,9 +1832,8 @@ fi:
     new:
       title: Kirjautumissivu
       heading: Kirjaudu
-      email or username: 'Sähköpostiosoite tai käyttäjätunnus:'
-      password: 'Salasana:'
-      openid_html: '%{logo} OpenID:'
+      email or username: Sähköpostiosoite tai käyttäjätunnus
+      password: Salasana
       remember: Pidä minut sisäänkirjautuneena
       lost password link: Unohditko salasanasi?
       login_button: Kirjaudu sisään
@@ -2005,6 +2005,7 @@ fi:
           Resources Canada), ja StatCanista (Geography Division,
           Statistics Canada).
         contributors_ca_canada: Kanada
+        contributors_cz_czechia: Tšekki
         contributors_fi_credit_html: '%{finland}: Sisältää karttatietoja Maanmittauslaitoksen
           maastotietokannasta ja muista lähteistä %{nlsfi_license_link} mukaisesti.'
         contributors_fi_finland: Suomi
@@ -2071,12 +2072,7 @@ fi:
         tämän toiminnon käyttämiseen.
     export:
       title: Alueen vienti
-      area_to_export: Vietävä alue
       manually_select: Valitse pienempi alue
-      format_to_export: Vientimuoto
-      osm_xml_data: OpenStreetMapin XML-muoto
-      map_image: Karttakuva (näyttää standarditason)
-      embeddable_html: HTML-koodi
       licence: Lisenssi
       odbl: Open Data Commons Open Database -lisenssillä
       too_large:
@@ -2097,17 +2093,6 @@ fi:
         other:
           title: Muut lähteet
           description: Muut lähteet ovat esillä OpenStreetMap-wikissä
-      options: Asetukset
-      format: 'Tiedostomuoto:'
-      scale: Mittakaava
-      max: enintään
-      image_size: Kuvan koko
-      zoom: Suurennostaso
-      add_marker: Lisää vietävään kartaan kohdemerkki
-      latitude: 'Lev:'
-      longitude: 'Pit:'
-      output: Tulos
-      paste_html: Kopioi ja liitä tämä HTML-koodi verkkosivullesi
       export_button: Vie
     fixthemap:
       title: Ilmoita ongelmasta / Korjaa karttaa
@@ -2132,17 +2117,13 @@ fi:
         url: https://wiki.openstreetmap.org/wiki/Fi:Beginners%27_guide
         title: Aloitusopas
         description: Yhteisön ylläpitämä opas aloittelijoille.
-      help:
-        title: Apufoorumi
-        description: Etsi vastauksia tai esitä oma kysymyksesi OpenStreetMapin kysy-
-          ja vastaa -sivustolla. (englanninkielinen)
+      community:
+        title: Yhteisön keskustelupalsta
+        description: Jaettu paikka OpenStreetMapiin liittyville keskusteluille.
       mailing_lists:
         title: Postituslistat
         description: Esitä kysymyksiä tai keskustele laajalti kiinnostavista aiheista
           aiheita koskevilla tai alueellisilla sähköpostilistoilla.
-      community:
-        title: Yhteisön keskustelupalsta
-        description: Jaettu paikka OpenStreetMapiin liittyville keskusteluille.
       irc:
         title: IRC
         description: Interaktiivinen chat monilla eri kielillä ja monista eri aiheista.
@@ -2193,67 +2174,77 @@ fi:
           primary: Kantatie
           secondary: Seututie
           unclassified: Luokittelematon tie
+          pedestrian: Jalkakäytävä
           track: Metsätie
           bridleway: Ratsastustie
           cycleway: Pyörätie
           cycleway_national: Kansallinen pyörätie
           cycleway_regional: Alueellinen pyörätie
           cycleway_local: Paikallinen pyörätie
+          cycleway_mtb: Maastopyöräreitti
           footway: Jalkakäytävä
           rail: Junarata
+          train: Juna
           subway: Metro
-          tram:
-          - Pikaraitiotie
-          - raitiotie
-          cable:
-          - Köysirata
-          - tuolihissi
-          runway:
-          - Lentokentän kiitotie
-          - rullaustie
-          apron:
-          - Lentokentän asemataso
-          - terminaali
+          ferry: Lautta
+          light_rail: Pikaraitiotie
+          tram: Raitiovaunu
+          trolleybus: Johdinauto
+          bus: Bussi
+          cable_car: Köysirata
+          chair_lift: Tuolihissi
+          runway: Lentokentän kiitotie
+          taxiway: Rullaustie
+          apron: Lentokentän asemataso
           admin: Hallinnollinen raja
+          capital: Pääkaupunki
+          city: Kaupunki
+          vineyard: Viinitarha
           forest: Talousmetsä
           wood: Metsä
+          farmland: Viljelysmaa
+          grass: Nurmikko
+          meadow: Niitty
+          bare_rock: Avokallio
+          sand: Hiekka
           golf: Golfkenttä
           park: Puisto
+          common: Niitty
           resident: Asuinalue
-          common:
-          - Niitty
-          - keto
-          - puutarha
           retail: Kaupallinen alue
           industrial: Teollisuusalue
           commercial: Toimistoalue
           heathland: Kanervikko
-          lake:
-          - Järvi
-          - tekojärvi
+          lake: Järvi
+          reservoir: Tekojärvi
+          glacier: Jäätikkö
+          reef: Riutta
+          wetland: Kosteikko
           farm: Maatila
           brownfield: Purettujen rakennusten alue
           cemetery: Hautausmaa
           allotments: Siirtolapuutarha
           pitch: Urheilukenttä
           centre: Urheilukeskus
+          beach: Hiekkaranta
           reserve: Luonnonsuojelualue
           military: Sotilasalue
-          school:
-          - Koulu
-          - yliopisto
+          school: Koulu
+          university: Yliopisto
+          hospital: Sairaala
           building: Merkittävä rakennus
           station: Rautatieasema
-          summit:
-          - Vuorenhuippu
-          - huippu
+          summit: Vuorenhuippu
+          peak: Huippu
           tunnel: Katkoviivallinen kehys = tunneli
           bridge: Musta kehys = silta
           private: Yksityinen
           destination: Ei läpikulkua
           construction: Rakenteilla olevia teitä
+          bus_stop: Bussipysäkki
           bicycle_shop: Pyöräkauppa
           bicycle_parking: Pyöräparkki
+          bicycle_parking_small: Pieni pyöräparkki
           toilets: Vessat
     welcome:
       title: Tervetuloa!
@@ -2624,7 +2615,6 @@ fi:
       ct status: 'Osallistumisehdot:'
       ct undecided: Ei valittu
       ct declined: Hylätty
-      latest edit: 'Viimeisin muutos (%{ago}):'
       email address: 'Sähköpostiosoite:'
       created from: 'Tekijä:'
       status: 'Tila:'
@@ -2738,8 +2728,8 @@ fi:
     revoke:
       title: Esto %{block_on} poistetaan
       heading_html: Poistetaan käyttäjän %{block_on} esto, jonka oli tehnyt %{block_by}
-      time_future: Tämä esto päättyy %{time} kuluttua.
-      past: Tämä esto päättyi %{time} ja sitä ei voida poistaa.
+      time_future_html: Tämä esto päättyy %{time} kuluttua.
+      past_html: Tämä esto päättyi %{time} ja sitä ei voida poistaa.
       confirm: Oletko varma, että haluat poistaa tämän eston?
       revoke: Poista!
       flash: Tämä esto on poistettu
@@ -2801,6 +2791,16 @@ fi:
       showing_page: Sivu %{page}
       next: Seuraava »
       previous: « Edellinen
+  user_mutes:
+    index:
+      table:
+        tbody:
+          send_message: Lähetä viesti
+    create:
+      notice: Mykistit käyttäjän %{name}.
+      error: Käyttäjää %{name} ei voitu mykistää. %{full_message}.
+    destroy:
+      notice: Poistit mykistyksen käyttäjältä %{name}.
   notes:
     index:
       title: Käyttäjän %{user} kommentoimat ja luomat huomautukset
@@ -2888,11 +2888,9 @@ fi:
           other: Olet %{count} jalan etäisyydellä tästä pisteestä
       base:
         standard: Perinteinen
-        cyclosm: CyclOSM
         cycle_map: Pyöräilykartta
         transport_map: Joukkoliikenne
         hot: Humanitaarinen
-        opnvkarte: ÖPNVKarte
       layers:
         header: Karttanäkymä
         notes: Karttailmoitukset
@@ -2906,7 +2904,7 @@ fi:
       cyclosm_credit: 'Laattojen tyyli: %{osm_france_link} ylläpitämä %{cyclosm_link}'
       osm_france: OpenStreetMap Francen
       thunderforest_credit: Laattojen tekijä %{thunderforest_link}
-      opnvkarte_credit: Laattojen tekijä %{memomaps_link}
+      tracestrack_credit: 'Laatat: %{tracestrack_link}'
       hotosm_credit: 'Laattojen tyyli: %{osm_france_link} ylläpitämä %{hotosm_link}'
     site:
       edit_tooltip: Muokkaa karttaa
index 2e0e8834de001131a77daea26dbdffa1932bf281..bc653f3a715006275ebccbdc9c7291b7a4efed87 100644 (file)
@@ -220,12 +220,8 @@ fit:
       way_paginated: Reitit (%{x}-%{y} of %{count})
       relation: Relaatiot (%{count})
       relation_paginated: Relaatiot (%{x}-%{y} / %{count})
-      comment: Kommentit (%{count})
       changesetxml: Muutoskokoelman XML
       osmchangexml: osmChange XML
-      feed:
-        title: Muutoskokoelma %{id}
-        title_comment: Muutoskokoelma %{id} - %{comment}
       join_discussion: Lokkaa sisäle, jos halvaat osallistua keskusteluun
       discussion: Keskustelu
       still_open: Muutoskokoelma on edelleen avoimena - keskustelu avathaan heti kun
@@ -324,6 +320,9 @@ fit:
       no_more_area: Ei muita muutosryhmiä tällä alueella.
       no_more_user: Ei muita muutosryhmiä tällä käyttäjällä.
       load_more: Lattaa lissää
+      feed:
+        title: Muutoskokoelma %{id}
+        title_comment: Muutoskokoelma %{id} - %{comment}
     timeout:
       sorry: Valitettavasti pyytämäsi muutoskokoelmien listan hakeminen kesti liian
         kauan.
@@ -342,6 +341,7 @@ fit:
   dashboards:
     contact:
       km away: '%{count} kilometrin päässä'
+      latest_edit_html: 'Viimeisin muutos (%{ago}):'
     popup:
       your location: Sinun paikka
       friend: Kaveri
@@ -520,9 +520,9 @@ fit:
         zero: Ei ilmiantoa
         one: Yksi ilmianto
         other: '%{count} ilmiantoa'
-      report_created_at: Ilmotettu ensimmäisen kerran %{datetime}
-      last_resolved_at: Ratkastu %{datetime}
-      last_updated_at: Viimeisin käsittelijä %{displayname} %{datetime}
+      report_created_at_html: Ilmotettu ensimmäisen kerran %{datetime}
+      last_resolved_at_html: Ratkastu %{datetime}
+      last_updated_at_html: Viimeisin käsittelijä %{displayname} %{datetime}
       resolve: Ratkase
       ignore: Merkitte aiheettomaksi
       reopen: Aukase uuesti
@@ -635,7 +635,6 @@ fit:
   messages:
     inbox:
       title: Saapuneet
-      my_inbox: Saapuneet
       messages: Kansiossa oon %{new_messages} ja %{old_messages}.
       new_messages:
         one: '%{count} lukematon viesti'
@@ -643,11 +642,13 @@ fit:
       old_messages:
         one: '%{count} luettu viesti'
         other: '%{count} luettua viestiä'
+      no_messages_yet_html: Ei viestejä. %{people_mapping_nearby_link}
+      people_mapping_nearby: Lähiseudun kartoittajat
+    messages_table:
       from: Lähättäjä
+      to: Vastaanottaja
       subject: Otsikko
       date: Taatumi
-      no_messages_yet_html: Ei viestejä. %{people_mapping_nearby_link}
-      people_mapping_nearby: Lähiseudun kartoittajat
     message_summary:
       unread_button: Markeeraa lukemattomaksi
       read_button: Markeeraa luetuksi
@@ -669,9 +670,6 @@ fit:
       messages:
         one: Kansiossa oon %{count} lähätetty viesti.
         other: Kansiossa oon %{count} lähätettyä viestiä.
-      to: Vastaanottaja
-      subject: Otsikko
-      date: Taatumi
       no_sent_messages_html: Et ole lähettänyt vielä viestejä. Miksi et ottaisi yhteyttä
         joihinkin %{people_mapping_nearby_link}?
       people_mapping_nearby: lähellä kartoittaviin käyttäjiin
@@ -687,13 +685,15 @@ fit:
       back: Takashiin
     sent_message_summary:
       destroy_button: Ota poies
+    heading:
+      my_inbox: Saapuneet
     mark:
       as_read: Viesti markeerattu luetuksi.
       as_unread: Viesti markeerattu lukemattomaksi.
     destroy:
       destroyed: Viesti otettu poies
   passwords:
-    lost_password:
+    new:
       title: Unohtunut salasana
       heading: Unohditko salasanasi?
       email address: 'E-postiatressi:'
@@ -776,10 +776,6 @@ fit:
       user_page_link: käyttäjätieot
     export:
       title: Alueen eksporteeraus
-      area_to_export: Eksporteerattava alue
-      format_to_export: Eksporteerausmuoto
-      osm_xml_data: OpenStreetMap XML-taatta
-      embeddable_html: HTML-kooti
       licence: Lisensi
       too_large:
         planet:
@@ -789,17 +785,6 @@ fit:
         other:
           title: Muut läheet
           description: Muut läheet ovat esillä OpenStreetMap-wikissä
-      options: Inställninkit
-      format: 'Fiilimuoto:'
-      scale: Mittakaava
-      max: eninthään
-      image_size: Kuvan koko
-      zoom: Suurennostaso
-      add_marker: Lissää vietävään kartaan kohemerkki
-      latitude: 'Lev:'
-      longitude: 'Pit:'
-      output: Tulos
-      paste_html: Jäljennä ja liitä tämä HTML-kooti verkkosivulesi
       export_button: Eksporteeraa
     fixthemap:
       title: Ilmota prupleemasta / Korjaa karttaa
@@ -811,8 +796,6 @@ fit:
       welcome:
         url: /welcome
         title: Tervetuloa OpenStreetMaphiin
-      help:
-        title: Apufoorumi
       irc:
         title: IRC
       wiki:
@@ -829,8 +812,7 @@ fit:
     key:
       table:
         entry:
-          school:
-            1: yniversiteetti
+          university: yniversiteetti
     welcome:
       title: Tervetuloa!
       add_a_note:
@@ -894,7 +876,6 @@ fit:
       send message: Lähätä viesti
       edits: Mookkaukset
       add as friend: Lissää ystäväksi
-      latest edit: 'Viimeisin muutos (%{ago}):'
       email address: 'E-postiatressi:'
     go_public:
       flash success: Kaikki tekemäsi mookkaukset ovat nyt julkisia.
index 79c479d4d96cb467b1c85444d8c5d5d868c0e1fd..fa09fc52da50c2ebfb8be9ab3f413a8619269eec 100644 (file)
@@ -2,6 +2,7 @@
 # Exported from translatewiki.net
 # Export driver: phpyaml
 # Author: 0x010C
+# Author: 2NumForIce
 # Author: Adriendelucca
 # Author: Ajeje Brazorf
 # Author: Alno
@@ -9,6 +10,7 @@
 # Author: Antimuonium
 # Author: BlueCamille
 # Author: Boniface
+# Author: CKali
 # Author: Cantons-de-l'Est
 # Author: Cquoi
 # Author: Crochet.david
 # Author: Florian COLLIN
 # Author: Florimondable
 # Author: Framafan
+# Author: Framawiki
 # Author: Freak2fast4u
 # Author: Fred73000
 # Author: Frigory
 # Author: Fylip22
 # Author: Gaspard
+# Author: GeorgeKaplan
 # Author: Gileri
 # Author: Gomoko
 # Author: Gravitystorm
 # Author: Guilhelma
 # Author: Hashar
 # Author: IAlex
+# Author: Iketsi
 # Author: JB
 # Author: Jean-Frédéric
 # Author: JenyxGym
+# Author: Jg45
 # Author: Jiremek
 # Author: Jlrb+
 # Author: Koreller
@@ -55,6 +61,7 @@
 # Author: Mathieu
 # Author: McDutchie
 # Author: Mdk
+# Author: Melimeli
 # Author: Metroitendo
 # Author: Momo50WM
 # Author: Mulcyber
@@ -89,6 +96,7 @@
 # Author: Vcalame
 # Author: Vega
 # Author: Verdy p
+# Author: Vikoula5
 # Author: Windes
 # Author: Wladek92
 # Author: Yodaspirine
@@ -128,13 +136,18 @@ fr:
         create: Téléverser
         update: Enregistrer les modifications
       user_block:
-        create: Créer un bloc
+        create: Créer un blocage
         update: Mettre à jour le blocage
   activerecord:
     errors:
       messages:
         invalid_email_address: ne semble pas être une adresse de courriel valide
         email_address_not_routable: n’est pas routable
+        display_name_is_user_n: ne peut pas être user_n à moins que n soit votre identifiant
+          d’utilisateur
+      models:
+        user_mute:
+          is_already_muted: est déjà en sourdine
     models:
       acl: Liste de contrôle d’accès
       changeset: Groupe de modifications
@@ -297,7 +310,6 @@ fr:
         one: il y a %{count} an
         other: il y a %{count} ans
   printable_name:
-    with_version: '%{id}, v%{version}'
     with_name_html: '%{name} (%{id})'
   editor:
     default: Par défaut (actuellement %{name})
@@ -310,7 +322,6 @@ fr:
   auth:
     providers:
       none: Aucun
-      openid: OpenID
       google: Google
       facebook: Facebook
       microsoft: Microsoft
@@ -365,6 +376,9 @@ fr:
         retain_changeset_discussions: Vos discussions sur les groupes de modification,
           s’il y en a, seront conservées.
         retain_email: Votre adresse de courriel sera conservée.
+        recent_editing_html: Comme vous avez récemment fait des modifications, votre
+          compte ne peut pas être supprimé pour le moment. La suppression sera possible
+          dans %{time}.
         confirm_delete: Êtes-vous sûr(e) ?
         cancel: Annuler
   accounts:
@@ -455,14 +469,10 @@ fr:
       way_paginated: Chemins (%{x} à %{y} sur %{count})
       relation: Relations (%{count})
       relation_paginated: Relations (%{x} à %{y} sur %{count})
-      comment: Commentaires (%{count})
       hidden_comment_by_html: Commentaire caché de %{user} %{time_ago}
       comment_by_html: Commentaire de %{user} %{time_ago}
       changesetxml: XML du groupe de modifications
       osmchangexml: XML osmChange
-      feed:
-        title: Groupe de modifications %{id}
-        title_comment: 'Groupe de modifications %{id} : %{comment}'
       join_discussion: Se connecter pour rejoindre la discussion
       discussion: Discussion
       still_open: Ensemble de modifications toujours ouvert – la discussion s’ouvrira
@@ -546,6 +556,15 @@ fr:
       introduction: Cliquer sur la carte pour trouver des objets à proximité.
       nearby: Objets à proximité
       enclosing: Objets englobants
+  old_nodes:
+    not_found:
+      sorry: 'Désolé, le nœud #%{id} version %{version} est introuvable.'
+  old_ways:
+    not_found:
+      sorry: 'Désolé, la façon #%{id} version %{version} est introuvable.'
+  old_relations:
+    not_found:
+      sorry: 'Désolé, la relation #%{id} version %{version} est introuvable.'
   changesets:
     changeset_paging_nav:
       showing_page: Page %{page}
@@ -574,6 +593,9 @@ fr:
       no_more_area: Aucun autre groupe de modifications dans cette zone.
       no_more_user: Aucun autre groupe de modifications par cet utilisateur.
       load_more: Charger davantage
+      feed:
+        title: Groupe de modifications %{id}
+        title_comment: 'Groupe de modifications %{id} : %{comment}'
     timeout:
       sorry: Désolé, la liste des groupes de modifications que vous avez demandée
         a mis trop de temps à récupérer.
@@ -595,6 +617,7 @@ fr:
     contact:
       km away: à %{count} km
       m away: à %{count} m
+      latest_edit_html: 'Dernière modification (%{ago}) :'
     popup:
       your location: Votre emplacement
       nearby mapper: Cartographe à proximité
@@ -638,6 +661,7 @@ fr:
     show:
       title: Carnet de %{user} | %{title}
       user_title: Carnet de %{user}
+      discussion: Discussion
       leave_a_comment: Laisser un commentaire
       login_to_leave_a_comment_html: '%{login_link} pour laisser un commentaire'
       login: Se connecter
@@ -777,7 +801,7 @@ fr:
           drag_lift: Téléski
           gondola: Télécabine
           magic_carpet: Tapis roulant élévateur
-          platter: Monte-plat
+          platter: Téléski à plateau
           pylon: Pylône
           station: Gare de télécabine
           t-bar: Monte-barre en T
@@ -1120,7 +1144,7 @@ fr:
           military: Zone militaire
           mine: Mine
           orchard: Verger
-          plant_nursery: Crèche d’usine
+          plant_nursery: Pépinière
           quarry: Carrière
           railway: Voie ferrée
           recreation_ground: Aire de jeux
@@ -1577,9 +1601,9 @@ fr:
         one: '%{count} rapport'
         other: '%{count} rapports'
       no_reports: Aucun rapport
-      report_created_at: Signalé la première fois à %{datetime}
-      last_resolved_at: Dernière résolution à %{datetime}
-      last_updated_at: Dernière mise à jour à %{datetime} par %{displayname}
+      report_created_at_html: Signalé la première fois à %{datetime}
+      last_resolved_at_html: Dernière résolution à %{datetime}
+      last_updated_at_html: Dernière mise à jour à %{datetime} par %{displayname}
       resolve: Résoudre
       ignore: Ignorer
       reopen: Rouvrir
@@ -1746,6 +1770,8 @@ fr:
         one: s’est chargé correctement avec %{trace_points} dd %{count} point possible.
         other: s’est chargé correctement avec %{trace_points} des %{count} points
           possibles.
+      all_your_traces_html: Toutes vos traces de GPX téléversées avec succès peuvent
+        être trouvées à %{url}.
       subject: '[OpenStreetMap] Import GPX réussi'
     signup_confirm:
       subject: '[OpenStreetMap] Bienvenue dans OpenStreetMap'
@@ -1868,8 +1894,6 @@ fr:
   messages:
     inbox:
       title: Boîte de réception
-      my_inbox: Ma boîte de réception
-      my_outbox: Ma boîte d’envoi
       messages: Vous avez %{new_messages} et %{old_messages}
       new_messages:
         zero: zéro nouveau message
@@ -1879,17 +1903,21 @@ fr:
         zero: aucun ancien message
         one: un ancien message
         other: '%{count} anciens messages'
-      from: De
-      subject: Objet
-      date: Date
       no_messages_yet_html: Vous n’avez actuellement aucun message. Pourquoi ne pas
         entrer en contact avec quelques %{people_mapping_nearby_link} ?
       people_mapping_nearby: personnes qui cartographient aux alentours
+    messages_table:
+      from: De
+      to: À
+      subject: Objet
+      date: Date
+      actions: Actions
     message_summary:
       unread_button: Marquer comme non lu
       read_button: Marquer comme lu
       reply_button: Répondre
       destroy_button: Supprimer
+      unmute_button: Déplacer vers la boîte de réception
     new:
       title: Envoyer un message
       send_message_to_html: Envoyer un nouveau message à %{name}
@@ -1904,17 +1932,18 @@ fr:
       body: Désolé, il n’y a aucun message avec cet identifiant.
     outbox:
       title: Boîte d’envoi
-      my_inbox: Ma boîte de réception
-      my_outbox: Ma boîte d’envoi
+      actions: Actions
       messages:
         one: Vous n’avez aucun message envoyé
         other: Vous avez %{count} messages envoyés
-      to: À
-      subject: Objet
-      date: Date
       no_sent_messages_html: Vous n’avez encore envoyé aucun message. Pourquoi ne
         pas entrer en contact avec quelques %{people_mapping_nearby_link} ?
       people_mapping_nearby: personnes proche de vous
+    muted:
+      title: Messages en sourdine
+      messages:
+        one: un ancien message
+        other: '%{count} anciens messages'
     reply:
       wrong_user: Vous êtes identifié(e) comme « %{user} » mais le message auquel
         vous souhaitez répondre n’a pas été envoyé à cet utilisateur. Veuillez vous
@@ -1930,13 +1959,20 @@ fr:
         vous connecter avec l’identifiant correct pour pouvoir le lire.
     sent_message_summary:
       destroy_button: Supprimer
+    heading:
+      my_inbox: Ma boîte de réception
+      my_outbox: Ma boîte d’envoi
+      muted_messages: Messages mis en sourdine
     mark:
       as_read: Message marqué comme lu
       as_unread: Message marqué comme non lu
+    unmute:
+      notice: Le message a été déplacé dans la boîte de réception
+      error: Le message n'a pas pu être déplacé vers la boîte de réception.
     destroy:
       destroyed: Message supprimé
   passwords:
-    lost_password:
+    new:
       title: Mot de passe perdu
       heading: Vous avez perdu votre mot de passe ?
       email address: 'Adresse de courriel :'
@@ -1944,13 +1980,16 @@ fr:
       help_text: Entrez l’adresse de courriel que vous avez utilisée à votre inscription,
         nous enverrons à cette adresse un lien que vous pourrez utiliser pour réinitialiser
         votre mot de passe.
+    create:
       notice email on way: Désolé que vous ayez perdu votre mot de passe :-( Un courriel
         vous a été envoyé pour que vous puissiez vite le réinitialiser.
       notice email cannot find: Cette adresse de courriel est introuvable, désolé.
-    reset_password:
+    edit:
       title: Réinitialiser le mot de passe
       heading: Réinitialiser le mot de passe de %{user}
       reset: Réinitialiser le mot de passe
+      flash token bad: Ce jeton est introuvable, veuillez vérifier l’URL.
+    update:
       flash changed: Votre mot de passe a été modifié.
       flash token bad: Ce jeton est introuvable, veuillez vérifier l’URL.
   preferences:
@@ -2001,7 +2040,6 @@ fr:
       heading: Se connecter
       email or username: 'Adresse de courriel ou nom d’utilisateur :'
       password: 'Mot de passe :'
-      openid_html: '%{logo} OpenID :'
       remember: Se souvenir de moi
       lost password link: Vous avez perdu votre mot de passe ?
       login_button: Se connecter
@@ -2060,6 +2098,7 @@ fr:
       image: Image
       alt: Texte alternatif
       url: URL
+      codeblock: Bloc de code
     richtext_field:
       edit: Modifier
       preview: Aperçu
@@ -2108,7 +2147,7 @@ fr:
         si vous avez des questions sur les conditions de licence, les droits d’auteur ou d’autres questions juridiques.
       legal_2_1_contact_the_osmf: contacter l’OSMF
       legal_2_2_html: OpenStreetMap, le logo avec la loupe, ainsi que State of the
-        Map are %{registered_trademarks_link}.
+        Map sont des %{registered_trademarks_link}.
       legal_2_2_registered_trademarks: marques commerciales enregistrées de l’OSMF
       partners_title: Partenaires
     copyright:
@@ -2315,12 +2354,7 @@ fr:
         qui sont nécessaires pour cette fonctionnalité.
     export:
       title: Exporter
-      area_to_export: Zone à exporter
       manually_select: Sélectionner manuellement une autre zone
-      format_to_export: Format d’export
-      osm_xml_data: Données XML OpenStreetMap
-      map_image: Image de la carte (affiche le calque standard)
-      embeddable_html: HTML incorporable.
       licence: Licence
       licence_details_html: Les données OpenStreetMap sont sous licence %{odbl_link}
         (ODbL).
@@ -2346,17 +2380,6 @@ fr:
         other:
           title: Autres sources
           description: Sources supplémentaires listées sur le wiki d’OpenStreetMap
-      options: Options
-      format: Format
-      scale: Échelle
-      max: max
-      image_size: Taille de l’image
-      zoom: Zoom
-      add_marker: Ajouter un marqueur sur la carte
-      latitude: 'Lat. :'
-      longitude: 'Lon. :'
-      output: Sortie
-      paste_html: Copier le code HTML à intégrer dans un site web
       export_button: Exporter
     fixthemap:
       title: Signaler un problème / Corriger la carte
@@ -2394,17 +2417,13 @@ fr:
         url: https://wiki.openstreetmap.org/wiki/FR:Guide_du_d%C3%A9butant
         title: Guide du débutant
         description: Guide maintenu par la communauté pour les débutants.
-      help:
-        title: Forum d’aide
-        description: Poser une question ou chercher des réponses sur le site de questions-et-réponses
-          d’OpenStreetMap.
+      community:
+        title: Aide & forum de la communauté
+        description: Un lieu partagé pour demander de l'aide et discuter d'OpenStreetMap.
       mailing_lists:
         title: Listes de diffusion
         description: Poser une question ou discuter de questions intéressantes sur
           un large éventail de listes de diffusion thématiques ou régionales.
-      community:
-        title: Forum de la communauté
-        description: Un lieu partagé pour les conversations sur OpenStreetMap.
       irc:
         title: IRC
         description: Discussion interactive dans de nombreuses langues différentes
@@ -2462,67 +2481,83 @@ fr:
           primary: Route principale
           secondary: Route secondaire
           unclassified: Route non classifiée
+          pedestrian: Rue piétonne
           track: Piste
           bridleway: Sentier équestre
           cycleway: Piste cyclable
           cycleway_national: Itinéraire cyclable national
           cycleway_regional: Itinéraire cyclable régional
           cycleway_local: Itinéraire cyclable local
+          cycleway_mtb: Chemin de vélo de montagne
           footway: Chemin piéton
           rail: Voie de chemin de fer
+          train: Train
           subway: Ligne de métro
-          tram:
-          - Voie ferrée légère
-          - tramway
-          cable:
-          - Téléphérique
-          - télésiège
-          runway:
-          - Piste d’aéroport
-          - piste de circulation d’un aéroport
-          apron:
-          - Stationnement d’avions
-          - terminal
+          ferry: Ferry
+          light_rail: Voie ferrée légère
+          tram: Tramway
+          trolleybus: Trolleybus
+          bus: Bus
+          cable_car: Téléphérique
+          chair_lift: Télésiège
+          runway: Piste d’aéroport
+          taxiway: Piste de circulation d'un aéroport
+          apron: Stationnement d’avions
           admin: Limite administrative
+          capital: Capitale
+          city: Ville
+          orchard: Verger
+          vineyard: Vignoble
           forest: Forêt
           wood: Bois
+          farmland: Terres agricoles
+          grass: Pelouse
+          meadow: Prairie
+          bare_rock: Roche nue
+          sand: Sable
           golf: Parcours de golf
           park: Parc
+          common: Espace commun
+          built_up: Zone bâtie
           resident: Zone résidentielle
-          common:
-          - Espace commun
-          - prairie
-          - jardin
           retail: Zone de commerce
           industrial: Zone industrielle
           commercial: Zone tertiaire
           heathland: Lande
-          lake:
-          - Lac
-          - bassin de retenue
+          scrubland: Fruticée
+          lake: Lac
+          reservoir: Réservoir
+          intermittent_water: plan d’eau intermittent
+          glacier: Glacier
+          reef: Récif
+          wetland: Zone humide
           farm: Zone agricole
           brownfield: Zone de démolition
           cemetery: Cimetière
           allotments: Jardins familiaux
           pitch: Terrain de sport
           centre: Centre sportif
+          beach: Plage
           reserve: Réserve naturelle
           military: Zone militaire
-          school:
-          - École
-          - université
+          school: École
+          university: Université
+          hospital: Hôpital
           building: Bâtiment important
           station: Gare ferroviaire
-          summit:
-          - Sommet
-          - pic
+          summit: Sommet
+          peak: Pic
           tunnel: Bordure pointillée = tunnel
           bridge: Bord noir = pont
           private: Accès privé
           destination: Accès réservé aux riverains
           construction: Routes en construction
+          bus_stop: Arrêt de bus
+          stop: Arrêter
           bicycle_shop: Magasin de vélos
+          bicycle_rental: Location de vélos
           bicycle_parking: Parking à vélos
+          bicycle_parking_small: Petit parking à vélos
           toilets: Toilettes
     welcome:
       title: Bienvenue !
@@ -2571,6 +2606,7 @@ fr:
         automated_edits: Modifications automatisées
         automated_edits_url: https://wiki.openstreetmap.org/wiki/FR:Code_de_conduite_des_modifications_automatis%C3%A9es
       start_mapping: Commencer à cartographier
+      continue_authorization: Continuer l'autorisation
       add_a_note:
         title: Pas le temps d’effectuer les modifications ? Ajoutez une note !
         para_1: Si vous voulez juste une petite correction et n’avez pas le temps
@@ -2735,6 +2771,7 @@ fr:
       oauth1_settings: Paramètres OAuth 1
       oauth2_applications: Applications OAuth 2
       oauth2_authorizations: Droits OAuth 2
+      muted_users: Utilisateurs silencieux
   oauth:
     authorize:
       title: Autoriser l’accès à votre compte
@@ -2775,11 +2812,13 @@ fr:
       read_gpx: Lire les traces GPC privées
       write_gpx: Mettre à jour les traces GPC
       write_notes: Modifier les notes
+      write_redactions: Caviarder les données cartographiques
       read_email: Lire l’adresse courriel de l’utilisateur
       skip_authorization: Demande d’approbation automatique
   oauth_clients:
     new:
       title: Inscrire une nouvelle application
+      disabled: L'enregistrement d'applications OAuth 1 a été désactivé
     edit:
       title: Modifier votre application
     show:
@@ -2864,6 +2903,7 @@ fr:
       title: Mes applications autorisées
       application: Application
       permissions: Droits
+      last_authorized: Dernière autorisation
       no_applications_html: Vous n’avez encore autorisé aucune application %{oauth2}.
     application:
       revoke: Révoquer l’accès
@@ -2956,6 +2996,8 @@ fr:
       my_dashboard: Mon tableau de bord
       blocks on me: Blocages me concernant
       blocks by me: Blocages de ma part
+      create_mute: Mettre cet utilisateur en sourdine
+      destroy_mute: Réactiver le son de cet utilisateur
       edit_profile: Modifier le profil
       send message: Envoyer un message
       diary: Carnet
@@ -2969,7 +3011,6 @@ fr:
       ct status: 'Conditions de contribution :'
       ct undecided: Indécis
       ct declined: Refusées
-      latest edit: 'Dernière modification (%{ago}) :'
       email address: 'Adresse de courriel :'
       created from: 'Créé depuis :'
       status: 'État :'
@@ -2977,14 +3018,18 @@ fr:
       role:
         administrator: C’est un administrateur ou une administratrice
         moderator: C’est un modérateur ou une modératrice
+        importer: Cet utilisateur est un importateur
         grant:
           administrator: Octroyer l’accès administrateur
           moderator: Octroyer l’accès modérateur
+          importer: Accorder le droit d’importation
         revoke:
           administrator: Révoquer l’accès administrateur
           moderator: Révoquer l’accès modérateur
+          importer: Supprimer le droit d’importation
       block_history: Blocages actifs
       moderator_history: Blocages donnés
+      revoke_all_blocks: Révoquer tous les blocages
       comments: Commentaires
       create_block: Bloquer cet utilisateur ou cette utilisatrice
       activate_user: Activer cet utilisateur ou cette utilisatrice
@@ -3092,13 +3137,23 @@ fr:
     revoke:
       title: Annulation d’un blocage sur « %{block_on} »
       heading_html: Annulation d’un blocage sur « %{block_on} » par « %{block_by} »
-      time_future: Ce blocage se terminera dans %{time}.
-      past: Ce blocage s’est terminé à %{time} et ne peut plus être annulé.
+      time_future_html: Ce blocage se terminera dans %{time}.
+      past_html: Ce blocage s’est terminé à %{time} et ne peut plus être annulé.
       confirm: Êtes-vous sûr(e) de vouloir annuler ce blocage ?
       revoke: Révoquer !
       flash: Ce blocage a été annulé.
+    revoke_all:
+      title: Révoquer tous les blocages sur %{block_on}
+      heading_html: Révoquer tous les blocages sur %{block_on}
+      empty: '%{name} n’a pas de blocages actifs.'
+      confirm: Êtes-vous sûr de vouloir révoquer %{active_blocks} ?
+      active_blocks:
+        one: '%{count} blocage actif'
+        other: '%{count} blocages actifs'
+      revoke: Révoquer
+      flash: Tous les blocages actifs ont été révoqués.
     helper:
-      time_future_html: Prends fin dans %{time}.
+      time_future_html: Prend fin dans %{time}.
       until_login: Actif jusqu’à ce que l’utilisateur se connecte.
       time_future_and_until_login_html: Finit dans %{time} et une fois que l’utilisateur
         s’est connecté.
@@ -3156,6 +3211,31 @@ fr:
       showing_page: Page %{page}
       next: Suivant »
       previous: ◂ Précédent
+  user_mutes:
+    index:
+      title: Utilisateurs en sourdine
+      my_muted_users: Mes utilisateurs en sourdine
+      you_have_muted_n_users:
+        one: Vous avez mis en sourdine %{count} utilisateur
+        other: Vous avez mis en sourdine %{count} utilisateurs
+      user_mute_explainer: Les messages des utilisateurs mis en sourdine sont déplacés
+        vers une boîte de réception distincte et vous ne recevrez pas de notifications
+        par courriel.
+      user_mute_admins_and_moderators: Vous pouvez désactiver le son des administrateurs
+        et des modérateurs, mais leurs messages ne seront pas mis en sourdine.
+      table:
+        thead:
+          muted_user: Utilisateur en sourdine
+          actions: Actions
+        tbody:
+          unmute: Réactiver le son
+          send_message: Envoyer un message
+    create:
+      notice: Vous avez mis %{name} en sourdine.
+      error: '%{name} n''a pas pu être mis en sourdine. %{full_message}.'
+    destroy:
+      notice: Vous avez rétabli le son de %{name}.
+      error: Le son de l’utilisateur n’a pas pu être rétabli. Veuillez réessayer.
   notes:
     index:
       title: Notes soumises ou commentées par « %{user} »
@@ -3193,6 +3273,7 @@ fr:
       reactivate: Réactiver
       comment_and_resolve: Commenter et résoudre
       comment: Commenter
+      log_in_to_comment: Connectez-vous pour commenter cette note
       report_link_html: Si cette note contient des informations sensibles qui doivent
         être supprimées, vous pouvez %{link}.
       other_problems_resolve: Pour tout autre problème avec la note, veuillez le résoudre
@@ -3250,12 +3331,10 @@ fr:
           other: Vous êtes à moins de %{count} pieds de ce point
       base:
         standard: Standard
-        cyclosm: CyclOSM
         cycle_map: Carte cyclable
         transport_map: Carte de transport
         tracestracktop_topo: Topo de Tracestack
         hot: Humanitaire
-        opnvkarte: ÖPNVKarte
       layers:
         header: Couches de carte
         notes: Notes de carte
@@ -3270,8 +3349,6 @@ fr:
       osm_france: OpenStreetMap France
       thunderforest_credit: Carreaux fournis aimablement par %{thunderforest_link}
       andy_allan: Andy Allan
-      opnvkarte_credit: Carreaux fournis aimablement par %{memomaps_link}
-      memomaps: MeMoMaps
       tracestrack_credit: Carreaux fournis aimablement par %{tracestrack_link}
       hotosm_credit: Style de carreaux par %{hotosm_link} hébergé par %{osm_france_link}
       hotosm_name: L’Équipe OpenStreetMap Humanitaire
@@ -3284,6 +3361,8 @@ fr:
       map_data_zoom_in_tooltip: Zoomez pour lire voir les données sur la carte
       queryfeature_tooltip: Interroger les objets
       queryfeature_disabled_tooltip: Zoomer plus pour rechercher des objets
+      embed_html_disabled: L’intégration de HTML n’est pas disponible pour cette couche
+        de carte
     changesets:
       show:
         comment: Commenter
index fddcd757a080b67d40a89efe31afdf164eb3a623..9615be1f65517df492f2d71f88e2ef759da6d4f7 100644 (file)
@@ -146,41 +146,41 @@ fur:
   datetime:
     distance_in_words_ago:
       about_x_hours:
-        one: cirche 1 ore indaûr
+        one: cirche %{count} ore indaûr
         other: cirche %{count} oris indaûr
       about_x_months:
-        one: cirche 1 mês indaûr
+        one: cirche %{count} mês indaûr
         other: cirche %{count} mês indaûr
       about_x_years:
-        one: cirche 1 an indaûr
+        one: cirche %{count} an indaûr
         other: cirche %{count} agns indaûr
       almost_x_years:
-        one: scuasit 1 an indaûr
+        one: scuasit %{count} an indaûr
         other: scuasit %{count} agns indaûr
       half_a_minute: mieç minût indaûr
       less_than_x_seconds:
-        one: mancul di 1 secont indaûr
+        one: mancul di %{count} secont indaûr
         other: mancul di %{count} seconts indaûr
       less_than_x_minutes:
-        one: mancul di 1 minût indaûr
+        one: mancul di %{count} minût indaûr
         other: mancul di %{count} minûts indaûr
       over_x_years:
-        one: plui di 1 an indaûr
+        one: plui di %{count} an indaûr
         other: plui di %{count} agns indaûr
       x_seconds:
-        one: 1 secont indaûr
+        one: '%{count} secont indaûr'
         other: '%{count} seconts indaûr'
       x_minutes:
-        one: 1 minût indaûr
+        one: '%{count} minût indaûr'
         other: '%{count} minûts indaûr'
       x_days:
-        one: 1 zornade indaûr
+        one: '%{count} zornade indaûr'
         other: '%{count} zornadis indaûr'
       x_months:
-        one: 1 mês indaûr
+        one: '%{count} mês indaûr'
         other: '%{count} mês indaûr'
       x_years:
-        one: 1 an indaûr
+        one: '%{count} an indaûr'
         other: '%{count} agns indaûr'
   editor:
     default: Predeterminât (par cumò %{name})
@@ -193,9 +193,9 @@ fur:
   auth:
     providers:
       none: Nissune
-      openid: OpenID
       google: Google
       facebook: Facebook
+      microsoft: Microsoft
       github: GitHub
       wikipedia: Vichipedie
   api:
@@ -266,16 +266,22 @@ fur:
   browse:
     created: Creât
     closed: Sierât
+    created_ago_html: Creât %{time_ago}
+    closed_ago_html: Sierât %{time_ago}
+    created_ago_by_html: Creât di %{user} %{time_ago}
+    closed_ago_by_html: Sierât di %{user} %{time_ago}
+    deleted_ago_by_html: Eliminât di %{user} %{time_ago}
+    edited_ago_by_html: Modificât di %{user} %{time_ago}
     version: Version
     in_changeset: Grup di cambiaments
     anonymous: anonim
     no_comment: (nissun coment)
     part_of: Part di
     part_of_relations:
-      one: 1 relazion
+      one: '%{count} relazion'
       other: '%{count} relazions'
     part_of_ways:
-      one: 1 vie
+      one: '%{count} vie'
       other: '%{count} viis'
     download_xml: Discjame XML
     view_history: Cjale il storic
@@ -290,12 +296,10 @@ fur:
       way_paginated: Viis (%{x}-%{y} su %{count})
       relation: Relazions (%{count})
       relation_paginated: Relazions (%{x}-%{y} su %{count})
-      comment: Coments (%{count})
+      hidden_comment_by_html: Coment platât di %{user} %{time_ago}
+      comment_by_html: Comentât di %{user} %{time_ago}
       changesetxml: Grup di cambiaments XML
       osmchangexml: XML in formât osmChange
-      feed:
-        title: Grup di cambiaments %{id}
-        title_comment: Grup di cambiaments %{id} - %{comment}
       join_discussion: Jentre par partecipâ ae discussion
       discussion: Discussion
     node:
@@ -306,7 +310,7 @@ fur:
       history_title_html: 'Storic de vie: %{name}'
       nodes: Grops
       nodes_count:
-        one: 1 grop
+        one: '%{count} grop'
         other: '%{count} grops'
       also_part_of_html:
         one: part de vie %{related_ways}
@@ -316,7 +320,7 @@ fur:
       history_title_html: 'Storic de relazion: %{name}'
       members: Membris
       members_count:
-        one: 1 membri
+        one: '%{count} membri'
         other: '%{count} membris'
     relation_member:
       entry_role_html: '%{type} %{name} come %{role}'
@@ -394,6 +398,9 @@ fur:
       no_more_area: Nissun altri grup di cambiaments in cheste zone cjatât.
       no_more_user: Nissun altri grup di cambiaments par chest utent.
       load_more: Cjame di plui
+      feed:
+        title: Grup di cambiaments %{id}
+        title_comment: Grup di cambiaments %{id} - %{comment}
     timeout:
       sorry: Nus displâs, la liste dai grups di cambiaments che tu âs domandât e je
         stade masse timp a cjamâsi.
@@ -413,6 +420,7 @@ fur:
     contact:
       km away: '%{count}km di distance'
       m away: '%{count}m di distance'
+      latest_edit_html: 'Ultin cambiament (%{ago}):'
     popup:
       your location: La tô posizion
       nearby mapper: Mapadôr dongje
@@ -470,8 +478,9 @@ fur:
       comment_link: Scrîf un coment su cheste vôs
       reply_link: Mande un messaç al autôr
       comment_count:
-        one: 1 coment
+        one: '%{count} coment'
         other: '%{count} coments'
+      no_comments: Nissun coment
       edit_link: Cambie cheste vôs
       hide_link: Plate cheste vôs
       confirm: Conferme
@@ -510,6 +519,11 @@ fur:
       applications:
         create:
           notice: Aplicazion regjistrade.
+  errors:
+    forbidden:
+      title: Proibît
+    not_found:
+      title: File no cjatât
   friendships:
     make_friend:
       heading: Zontâ %{user} ai amîs?
@@ -522,9 +536,14 @@ fur:
       success: '%{name} al è stât gjavât dai tiei amîs.'
       not_a_friend: '%{name} nol è un dai tiei amîs.'
   geocoder:
+    search:
+      title:
+        results_from_html: Risultâts di %{results_link}
+        latlon: Interni
     search_osm_nominatim:
       prefix:
         aerialway:
+          cable_car: Funivie
           pylon: Pilon
         aeroway:
           gate: Puarte di aeropuart
@@ -538,6 +557,7 @@ fur:
           bench: Bancjute
           bicycle_parking: Parc pes bicicletis
           bicycle_rental: Nauli di bicicletis
+          brothel: Bordel
           bureau_de_change: Ufizi di cambi
           bus_station: Stazion des corieris
           car_rental: Nauli di machinis
@@ -566,6 +586,7 @@ fur:
           kindergarten: Scuelute
           language_school: Scuele di lenghis
           library: Biblioteche
+          monastery: Monastîr
           music_school: Scuele di musiche
           nightclub: Club noturni
           parking: Parcament
@@ -594,6 +615,7 @@ fur:
           veterinary: Veterinari
           village_hall: Centri civic
           waste_basket: Scovacere
+          weighbridge: Pese
         boundary:
           administrative: Confin aministratîf
           national_park: Parc nazionâl
@@ -643,6 +665,7 @@ fur:
           shoemaker: Cjaliâr
           tailor: Sartôr
         emergency:
+          fire_extinguisher: Estintôr
           phone: Telefon di emergjence
         highway:
           bus_stop: Fermade autobus
@@ -650,6 +673,7 @@ fur:
           cycleway: Percors ciclabil
           emergency_access_point: Pont di acès di emergjence
           footway: Percors pedonâl
+          give_way: Cartel di precedenze
           motorway: Autostrade
           motorway_junction: Svincul autostradâl
           motorway_link: Autostrade
@@ -682,6 +706,8 @@ fur:
           battlefield: Cjamp di bataie
           boundary_stone: Piere di confin
           building: Edifici storic
+          bunker: Bunker
+          cannon: Canon storic
           castle: Cjiscjel
           church: Glesie
           city_gate: Puarte de citât
@@ -720,6 +746,7 @@ fur:
           vineyard: Vigne
         leisure:
           common: Comugnâi (UK)
+          dog_park: Parc pai cjans
           fishing: Riserve par pescjâ
           garden: Zardin
           golf_course: Troi di golf
@@ -727,6 +754,7 @@ fur:
           miniature_golf: Minigolf
           nature_reserve: Riserve naturâl
           park: Parc
+          picnic_table: Taule pal picnic
           pitch: Cjamp sportîf
           sauna: Saune
           sports_centre: Centri sportîf
@@ -738,7 +766,9 @@ fur:
           bridge: Puint
           bunker_silo: Bunker
           tower: Tor
+          water_tower: Tor pe aghe
           water_well: Poç
+          works: Fabriche
         military:
           airfield: Cjamp di aviazion militâr
           barracks: Caserme
@@ -762,18 +792,29 @@ fur:
           peak: Pic
           peninsula: Penisule
           point: Pont
+          sand: Savalon
+          strait: Stret
           tree: Arbul
+          tree_row: Rie di arbui
           valley: Val
           volcano: Vulcan
           water: Aghe
           "yes": Element naturâl
         office:
           architect: Architet
+          association: Associazion
+          company: Aziende
+          diplomatic: Ufici diplomatic
           employment_agency: Agjenzie di ocupazion
           estate_agent: Agjent imobiliâr
+          financial: Ufici finanziari
           government: Ufizi governatîf
           insurance: Agjenzie di assicurazions
+          it: Ufici informatic
           lawyer: Avocat
+          logistics: Ufici di logjistiche
+          newspaper: Ufici di gjornâl
+          notary: Nodâr
           travel_agent: Agjenzie di viaçs
           "yes": Ufizi
         place:
@@ -825,6 +866,7 @@ fur:
           hairdresser: Piruchîr o barbîr
           jewelry: Buteghe dal oresin
           laundry: Lavandarie
+          massage: Massaç
           newsagent: Buteghe dai gjornâi
           optician: Otic
           pet: Buteghe di animâi
@@ -832,6 +874,7 @@ fur:
           shoes: Buteghe di scarpis
           sports: Buteghe di articui sportîfs
           supermarket: Supermarcjât
+          tailor: Sartôr
           toys: Negozi di zugatui
           travel_agency: Agjenzie di viaçs
           "yes": Buteghe
@@ -875,7 +918,7 @@ fur:
       reports: Segnalazions
       link_to_reports: Viôt lis segnalazions
       reports_count:
-        one: 1 segnalazion
+        one: '%{count} segnalazion'
         other: '%{count} segnalazions'
       states:
         ignored: Ignorât
@@ -883,7 +926,7 @@ fur:
         resolved: Risolt
     show:
       reports:
-        one: 1 segnalazion
+        one: '%{count} segnalazion'
         other: '%{count} segnalazions'
       resolve: Risolf
       ignore: Ignore
@@ -998,8 +1041,6 @@ fur:
   messages:
     inbox:
       title: In jentrade
-      my_inbox: I miei messaçs in jentrade
-      my_outbox: I miei messaçs in jessude
       messages: Tu âs %{new_messages} e %{old_messages}
       new_messages:
         one: '%{count} messaç gnûf'
@@ -1007,12 +1048,15 @@ fur:
       old_messages:
         one: '%{count} messaç vieli'
         other: '%{count} messaçs vielis'
-      from: Di
-      subject: Sogjet
-      date: Date
       no_messages_yet_html: No tu âs ancjemò nissun messaç. Parcè no tu contatis cualchidun
         de %{people_mapping_nearby_link}?
       people_mapping_nearby: int che e je daûr a mapâ dongje di te
+    messages_table:
+      from: Di
+      to: A
+      subject: Sogjet
+      date: Date
+      actions: Azions
     message_summary:
       unread_button: Segne come no let
       read_button: Segne come let
@@ -1029,14 +1073,10 @@ fur:
       heading: Messaç no cjatât
     outbox:
       title: In jessude
-      my_inbox: I miei messaçs in jentrade
-      my_outbox: I miei messaçs in jessude
+      actions: Azions
       messages:
         one: Tu âs %{count} messaç in jessude
         other: Tu âs %{count} messaçs in jessude
-      to: A
-      subject: Sogjet
-      date: Date
       no_sent_messages_html: No tu âs ancjemò mandât nissun messaç. Parcè no tu contatis
         cualchidun de %{people_mapping_nearby_link}?
       people_mapping_nearby: int che e je daûr a mapâ dongje di te
@@ -1048,24 +1088,29 @@ fur:
       back: Indaûr
     sent_message_summary:
       destroy_button: Elimine
+    heading:
+      my_inbox: I miei messaçs in jentrade
+      my_outbox: I miei messaçs in jessude
     mark:
       as_read: Messaç segnât come za let
       as_unread: Messaç segnât come di lei
     destroy:
       destroyed: Messaç eliminât
   passwords:
-    lost_password:
+    new:
       title: Password pierdude
       heading: Âstu pierdût la password?
       email address: 'Direzion di pueste:'
       new password button: Azere la password
       help_text: Scrîf la direzion di pueste eletroniche che tu âs doprât par iscrivîti
         e ti mandarin un leam par tornâ a impuestâ la tô password.
+    create:
       notice email cannot find: No vin podût cjatâ la tô direzion di pueste, nus displâs.
-    reset_password:
+    edit:
       title: Azere la password
       heading: Azere la password par %{user}
       reset: Azere la password
+    update:
       flash changed: La tô password e je stade cambiade.
   preferences:
     show:
@@ -1097,6 +1142,8 @@ fur:
       no home location: No tu âs configurât il lûc iniziâl.
       update home location on click: Aio di inzornâ il lûc iniziâl cuant che o frachi
         parsore de mape?
+      show: Mostre
+      delete: Elimine
     update:
       success: Profîl inzornât
   sessions:
@@ -1105,7 +1152,6 @@ fur:
       heading: Jentre
       email or username: 'Direzion di pueste eletroniche o non utent:'
       password: 'Password:'
-      openid_html: '%{logo} OpenID:'
       remember: Visiti di me
       lost password link: Password pierdude?
       login_button: Jentre
@@ -1124,8 +1170,8 @@ fur:
           title: Jentre cun Facebook
           alt: Jentre cuntun un cont Facebook
         microsoft:
-          title: Jentre cun Windows Live
-          alt: Jentre cuntun cont di Windows Live
+          title: Jentre cun Microsoft
+          alt: Jentre cuntun cont di Microsoft
         github:
           title: Jentre cun GitHub
           alt: Jentre cuntun cont GitHub
@@ -1142,6 +1188,8 @@ fur:
       title: Jes
       heading: Va fûr di OpenStreetMap
       logout_button: Jes
+    suspended_flash:
+      support: assistence
   shared:
     markdown_help:
       link: Leam
@@ -1156,7 +1204,15 @@ fur:
     about:
       next: Prossim
       local_knowledge_title: Cognossince locâl
+      community_driven_osm_blog: Blog di OpenStreetMap
+      community_driven_user_diaries: diaris dai utents
+      community_driven_community_blogs: Blogs de comunitât
+      community_driven_osm_foundation: Fondazion OSM
       open_data_title: Dâts vierts
+      open_data_open_data: dâts vierts
+      legal_title: Legâl
+      legal_1_1_terms_of_use: Cundizions pal ûs
+      legal_2_1_contact_the_osmf: contate il OSMF
       partners_title: Associâts
     copyright:
       foreign:
@@ -1170,6 +1226,13 @@ fur:
           title: Esempli di atribuzion
         more_title_html: Par savênt di plui
         contributors_title_html: Nestris colaboradôrs
+        contributors_at_austria: Austrie
+        contributors_au_australia: Australie
+        contributors_fr_france: France
+        contributors_nz_new_zealand: Gnove Zelande
+        contributors_si_slovenia: Slovenie
+        contributors_es_spain: Spagne
+        contributors_gb_united_kingdom: Ream Unît
     index:
       js_1: Tu stâs doprant un sgarfadôr che nol supuarte JavaScript o ben JavaScript
         al è stât disativât.
@@ -1192,10 +1255,7 @@ fur:
         par cheste funzion.
     export:
       title: Espuarte
-      area_to_export: Aree di espuartâ
       manually_select: Sielç a man une aree divierse
-      format_to_export: Formât di espuartâ
-      osm_xml_data: Dâts XML di OpenStreetMap
       licence: Licence
       too_large:
         body: Cheste aree e je masse grande par espuartâle come dâts XML di OpenStreetMap.
@@ -1206,17 +1266,6 @@ fur:
         other:
           title: Altris sorzints
           description: Altris sorzints elencadis su la wiki di OpenStreetMap
-      options: Opzions
-      format: 'Formât:'
-      scale: Scjale
-      max: max
-      image_size: 'Dimensions figure:'
-      zoom: Ingrandiment
-      add_marker: Zonte un segnalut ae mape
-      latitude: 'Lat:'
-      longitude: 'Lon:'
-      output: Jessude
-      paste_html: Tache l'HTML par inserîlu tal to sît web
       export_button: Espuarte
     fixthemap:
       title: Segnale un probleme / Comede la mape
@@ -1233,14 +1282,14 @@ fur:
         title: Benvignûts in OpenStreetMap
       beginners_guide:
         title: Guide pai principiants
-      help:
-        title: Forum di jutori
       irc:
         title: IRC
       welcomemat:
         title: Pe organizazions
       wiki:
         title: OpenStreetMap Wiki
+    potlatch:
+      change_preferences: Cambie lis tôs preferences culì
     any_questions:
       title: Domandis?
     sidebar:
@@ -1265,52 +1314,62 @@ fur:
           primary: Strade primarie
           secondary: Strade secondarie
           unclassified: Strade no classificade
+          pedestrian: Strade pedonâl
+          track: Piste
           rail: Ferade
           subway: Metropolitane
-          tram:
-          - Metropolitana leggera
-          - tram
-          runway:
-          - Piste dal aeropuart
-          apron:
-            1: terminâl
+          ferry: Traghet
+          tram: Tram
+          runway: Piste dal aeropuart
           admin: Confin aministratîf
           forest: Bosc
+          grass: Prât
+          meadow: Prâts
+          sand: Savalon
           golf: Troi di golf
           park: Parc
+          common: Comugnâi
           resident: Zone residenziâl
-          common:
-          - Comugnâi
-          - prâts
           retail: Zone di buteghis
           industrial: Zone industriâl
           commercial: Aree comerciâl
-          lake:
-          - Lâc
+          lake: Lâc
           cemetery: Simiteri
           pitch: Cjamp sportîf
           centre: Centri sportîf
           reserve: Riserve naturâl
           military: Zone militâr
-          school:
-          - Scuele
-          - universitât
+          school: Scuele
+          university: Universitât
+          hospital: Ospedâl
           station: stazion de ferade
           tunnel: Rie a trats = galarie
           bridge: Rie nere = puint
           private: Acès privât
           construction: Stradis in costruzion
+          bus_stop: Fermade autobus
+          stop: Fermade
+          bicycle_shop: Buteghe di bicicletis
     welcome:
       title: Benvignût!
       whats_on_the_map:
         title: Ce ch'al è su la mape
+      basic_terms:
+        node: grop
+        way: vie
+        tag: etichete
+      rules:
+        title: Regulis!
       start_mapping: Scomence a mapâ
       add_a_note:
         title: No tu âs timp par fâ i cambiaments? Zonte une note!
     communities:
       title: Comunitâts
+      other_groups:
+        title: Altris grups
   traces:
     new:
+      upload_trace: Cjame percors GPS
       visibility_help: ce vuelial dî?
       help: Jutori
     create:
@@ -1336,6 +1395,7 @@ fur:
       uploaded: 'Cjamât ai:'
       points: 'Ponts:'
       start_coordinates: 'Coordenadis iniziâls:'
+      coordinates_html: '%{latitude}; %{longitude}'
       map: mape
       edit: cambie
       owner: 'Paron:'
@@ -1353,7 +1413,7 @@ fur:
     trace:
       pending: IN SPIETE
       count_points:
-        one: 1 pont
+        one: '%{count} pont'
         other: '%{count} ponts'
       more: plui
       trace_details: Cjale i detais dal percors
@@ -1366,9 +1426,12 @@ fur:
       in: in
     index:
       public_traces: Percors GPS publics
+      my_gps_traces: I miei percors GPS
       public_traces_from: Percors GPS publics di %{user}
       description: Viôt i percors GPS cjamâts sù tai ultins timps
       tagged_with: ' etichetât cun %{tags}'
+      empty_title: Ancjemò nuie par culì
+      upload_new: Cjame un gnûf percors
       upload_trace: Cjame un percors
       all_traces: Ducj i percors
       my_traces: I miei percors
@@ -1454,6 +1517,9 @@ fur:
     show:
       edit: Cambie
       delete: Elimine
+      confirm_delete: Vuelistu eliminâ cheste aplicazion?
+      client_id: ID dal client
+      client_secret: Segret dal client
       permissions: Permès
   oauth2_authorizations:
     new:
@@ -1529,7 +1595,6 @@ fur:
       ct status: 'Tiermins par contribuî:'
       ct undecided: Nol à decidût
       ct declined: Refudâts
-      latest edit: 'Ultin cambiament (%{ago}):'
       email address: 'Direzion di pueste:'
       created from: 'Creât di:'
       status: 'Stât:'
@@ -1589,14 +1654,14 @@ fur:
       heading: Liste dai blocs dal utent
       empty: No son stâts metûts blocs fin cumò.
     revoke:
-      time_future: Chest bloc al finìs ca di %{time}.
+      time_future_html: Chest bloc al finìs ca di %{time}.
       revoke: Revoche!
     helper:
       time_future_html: Finìs ca di %{time}.
       time_past_html: Finît %{time} indaûr.
       block_duration:
         hours:
-          one: 1 ore
+          one: '%{count} ore'
           other: '%{count} oris'
     blocks_on:
       title: Blocs su %{name}
@@ -1633,11 +1698,20 @@ fur:
       showing_page: Pagjine %{page}
       next: Sucessîf »
       previous: « Precedent
+  user_mutes:
+    index:
+      table:
+        thead:
+          actions: Azions
+        tbody:
+          send_message: Mande messaç
   notes:
     index:
       title: Note inseride o comentade di %{user}
       heading: Lis notis di %{user}
-      subheading_html: Lis notis inseridis o comentadis di %{user}
+      subheading_html: Lis notis %{submitted} o %{commented} di %{user}
+      subheading_submitted: inseridis
+      subheading_commented: comentadis
       no_notes: Nissune note
       id: Identificatîf
       creator: Creadôr
@@ -1650,6 +1724,15 @@ fur:
       open_title: 'Note no risolte #%{note_name}'
       closed_title: 'Note risolte #%{note_name}'
       hidden_title: 'Note platade #%{note_name}'
+      event_opened_by_html: Creât di %{user} %{time_ago}
+      event_opened_by_anonymous_html: Creât di un anonim %{time_ago}
+      event_commented_by_html: Comentât di %{user} %{time_ago}
+      event_commented_by_anonymous_html: Comentât di un anonim %{time_ago}
+      event_closed_by_html: Risolt di %{user} %{time_ago}
+      event_closed_by_anonymous_html: Risolt di un anonim %{time_ago}
+      event_reopened_by_html: Tornât a ativâ di %{user}%{time_ago}
+      event_reopened_by_anonymous_html: Tornât a ativâ di un anonim %{time_ago}
+      event_hidden_by_html: Platât di %{user} %{time_ago}
       report: segnale cheste note
       anonymous_warning: Cheste note e inclût coments di utents anonims che a varessin
         di jessi verificâts in mût indipendent.
@@ -1698,6 +1781,12 @@ fur:
         out: Diminuìs zoom
       locate:
         title: Mostre la mê posizion
+        metersPopup:
+          one: Tu sês a mancul di %{count} metri di chest pont
+          other: Tu sês a mancul di %{count} metris di chest pont
+        feetPopup:
+          one: Tu sês a mancul di %{count} pît di chest pont
+          other: Tu sês a mancul di %{count} pîts di chest pont
       base:
         standard: Standard
         cycle_map: Cycle Map
@@ -1710,6 +1799,15 @@ fur:
         gps: Percors GPS publics
         overlays: Ative i nivei utii par risolvi i problemis de mape
         title: Nivei
+      make_a_donation: Done alc
+      website_and_api_terms: Tiermins di ûs dal sît e des APIs
+      cyclosm_credit: Stîl dai tassei di %{cyclosm_link} ospitât di %{osm_france_link}
+      osm_france: OpenStreetMap France
+      thunderforest_credit: Tassei par gentîl concession di %{thunderforest_link}
+      andy_allan: Andy Allan
+      tracestrack_credit: Tassei par gentîl concession di %{tracestrack_link}
+      hotosm_credit: Stîl dai tassei di %{hotosm_link} ospitât di %{osm_france_link}
+      hotosm_name: La clape umanitare di OpenStreetMap
     site:
       edit_tooltip: Cambie la mape
       edit_disabled_tooltip: Cres il zoom par cambiâ la mape
@@ -1733,13 +1831,18 @@ fur:
       engines:
         fossgis_osrm_bike: Biciclete (OSRM)
         fossgis_osrm_car: Machine (OSRM)
-        fossgis_osrm_foot: A pit (OSRM)
+        fossgis_osrm_foot: A pît (OSRM)
         graphhopper_bicycle: Biciclete (OSRM)
         graphhopper_car: Machine (GraphHopper)
-        graphhopper_foot: A pit (GraphHopper)
+        graphhopper_foot: A pît (GraphHopper)
+        fossgis_valhalla_bicycle: Biciclete (Valhalla)
+        fossgis_valhalla_car: Machine (Valhalla)
+        fossgis_valhalla_foot: A pît (Valhalla)
       descend: Disnivel negatîf
       directions: Indicazions
       distance: Distance
+      distance_m: '%{distance}m'
+      distance_km: '%{distance}km'
       errors:
         no_route: No si à rivât a cjatâ une strade tra chescj doi puescj.
         no_place: No si à rivât a cjatâ "%{place}".
index 60d2efa81a8158250642544e2c5264708339185f..d50bb21d9ba1158fe06fd746b417d41f6304356c 100644 (file)
@@ -210,7 +210,6 @@ fy:
   auth:
     providers:
       none: gjint
-      openid: OpenID
       google: Google
       facebook: Facebook
       github: GitHub
@@ -327,12 +326,8 @@ fy:
       way_paginated: Linen (%{x}-%{y} fan %{count})
       relation: Relaasjes (%{count})
       relation_paginated: Relaasjes (%{x}-%{y} fan %{count})
-      comment: Reäksjes (%{count})
       changesetxml: Wizigingsset-XML
       osmchangexml: osmWizigings-XML
-      feed:
-        title: Wizigingsset %{id}
-        title_comment: Wizigingsset %{id} - %{comment}
       join_discussion: Meld jo oan en oerlis mei
       discussion: Oerlis
       still_open: Wizigingsset net ree - it oerlis iepenet sa gau't de wizigingsset
@@ -439,6 +434,9 @@ fy:
       no_more_area: Gjin wizigingssets mear yn dizze krite.
       no_more_user: Gjin wizigingssets mear fan dizze meidogger.
       load_more: Mear lade
+      feed:
+        title: Wizigingsset %{id}
+        title_comment: Wizigingsset %{id} - %{comment}
     timeout:
       sorry: Spitich, it opheljen fan 'e list wizigingssets dy't jo fregen duorre
         te lang.
@@ -458,6 +456,7 @@ fy:
     contact:
       km away: '%{count}km fuort'
       m away: '%{count}m fuort'
+      latest_edit_html: 'Lêste bewurking (%{ago}):'
     popup:
       your location: Jo lokaasje
       nearby mapper: Kaartmakker fuortby
@@ -1377,9 +1376,9 @@ fy:
       reports:
         one: 1 melding
         other: '%{count} meldings'
-      report_created_at: Earst meld op %{datetime}
-      last_resolved_at: Lêst oplost op %{datetime}
-      last_updated_at: Lêst bywurke op %{datetime} troch %{displayname}
+      report_created_at_html: Earst meld op %{datetime}
+      last_resolved_at_html: Lêst oplost op %{datetime}
+      last_updated_at_html: Lêst bywurke op %{datetime} troch %{displayname}
       resolve: Oplosse
       ignore: Negearje
       reopen: Weriepenje
@@ -1656,8 +1655,6 @@ fy:
   messages:
     inbox:
       title: Ynfek
-      my_inbox: Myn ynfek
-      my_outbox: Myn útfek
       messages: Jo hawwe %{new_messages} en %{old_messages}
       new_messages:
         one: '%{count} nij berjocht'
@@ -1665,12 +1662,14 @@ fy:
       old_messages:
         one: '%{count} âld berjocht'
         other: '%{count} âlde berjochten'
-      from: Fan
-      subject: Underwerp
-      date: Datum
       no_messages_yet_html: Jo hawwe noch gjin berjochten. Kom ris yn 'e kunde mei
         in pear %{people_mapping_nearby_link}.
       people_mapping_nearby: kaartmakkers yn 'e omkriten
+    messages_table:
+      from: Fan
+      to: Oan
+      subject: Underwerp
+      date: Datum
     message_summary:
       unread_button: As net-lêzen oanmerke
       read_button: As lêzen oanmerke
@@ -1690,14 +1689,9 @@ fy:
       body: Spitich, der is gjin berjocht mei dy ID.
     outbox:
       title: Utfek
-      my_inbox: Myn ynfek
-      my_outbox: Myn útfek
       messages:
         one: Jo hawwe %{count} ferstjoerd berjocht
         other: Jo hawwe %{count} ferstjoerde berjochten
-      to: Oan
-      subject: Underwerp
-      date: Datum
       no_sent_messages_html: Jo hawwe noch gjin berjochten ferstjoerd. Kom ris yn
         'e kunde mei in pear %{people_mapping_nearby_link}.
       people_mapping_nearby: kaartmakkers yn 'e omkriten
@@ -1716,13 +1710,16 @@ fy:
         om it lêze te kinnen.
     sent_message_summary:
       destroy_button: Wiskje
+    heading:
+      my_inbox: Myn ynfek
+      my_outbox: Myn útfek
     mark:
       as_read: Berjocht as lêzen oanmurken
       as_unread: Berjocht as net-lêzen oanmurken
     destroy:
       destroyed: Berjocht wiske
   passwords:
-    lost_password:
+    new:
       title: Wachtwurd kwyt
       heading: Wachtwurd fergetten?
       email address: 'E-mailadres:'
@@ -1730,15 +1727,17 @@ fy:
       help_text: Folje it e-mailadres yn dat jo by it ynskriuwen brûkt hawwe. Wy stjoere
         der dan in keppeling hinne dy't jo brûke kinne om jo wachtwurd op 'e nij yn
         te stellen.
+    create:
       notice email on way: Spitich dat jo 'm kwyt binne :-( mar in e-mail is ûnderweis,
         dat jo kinne gau in nijenien ynstelle.
       notice email cannot find: Koe dat e-mailadres net fine, spitich.
-    reset_password:
+    edit:
       title: Nij wachtwurd
       heading: Wachtwurd op 'e nij ynstelle foar %{user}
       reset: Nij wachtwurd
-      flash changed: Jo wachtwurd is feroare.
       flash token bad: Haw dy kaai net fûn, de URL efkes neisjen?
+    update:
+      flash changed: Jo wachtwurd is feroare.
   preferences:
     show:
       title: Myn foarkarren
@@ -1781,7 +1780,6 @@ fy:
       heading: Oanmelde
       email or username: 'E-mailadres as meidochnamme:'
       password: 'Wachtwurd:'
-      openid_html: '%{logo} OpenID:'
       remember: My ûnthâlde
       lost password link: Jo wachtwurd kwyt?
       login_button: Oanmelde
@@ -1910,12 +1908,7 @@ fy:
         foar dizze funksje.
     export:
       title: Eksportearje
-      area_to_export: Eksportgebiet
       manually_select: Mei de hân in oar gebiet selektearje
-      format_to_export: Bestânsfoarm
-      osm_xml_data: OpenStreetMap-XML-data
-      map_image: Kaartôfbylding (toant standertlaach)
-      embeddable_html: Ynbou-HTML
       licence: Lisinsje
       too_large:
         advice: |-
@@ -1937,17 +1930,6 @@ fy:
         other:
           title: Oare boarnen
           description: Fierders noch boarnen dy't op 'e OpenStreetMap-wiki steane
-      options: Opsjes
-      format: 'Foarm:'
-      scale: Skaal
-      max: maks.
-      image_size: 'Ofbyldgrutte:'
-      zoom: Sûm
-      add_marker: Markearder oan 'e kaart tafoegje
-      latitude: 'Bgr.:'
-      longitude: 'Lgr.:'
-      output: Utfier
-      paste_html: HTML op te nimmen yn in webstee
       export_button: Eksportearje
     fixthemap:
       title: Probleem melde / Kaart ferbetterje
@@ -1972,16 +1954,13 @@ fy:
       beginners_guide:
         title: Paadwizer foar begjinners
         description: Troch de mienskip byholden paadwizer foar begjinners.
-      help:
-        title: Help-foarum
-        description: Stel in fraach of besjoch antwurden op OpenStreetMaps fraach-en-antwurdside.
+      community:
+        title: Mienskipsfoarum
+        description: In mienskiplik plak foar petear oer OpenStreetMap.
       mailing_lists:
         title: Mailinglisten
         description: Stel in fraach of bepraat nijsgjirrige saken op útienrinnende
           tematyske as regionale mailinglisten.
-      community:
-        title: Mienskipsfoarum
-        description: In mienskiplik plak foar petear oer OpenStreetMap.
       irc:
         title: IRC
         description: Ynteraktyf tsjetten yn ferskate talen en op alderlei mêd.
@@ -2033,35 +2012,24 @@ fy:
           footway: Fuotpaad
           rail: Spoarwei
           subway: Metrospoar
-          tram:
-          - Sneltrem
-          - trem
-          cable:
-          - Kabelbaan
-          - stuoltsjelift
-          runway:
-          - Start-/lânings-
-          - taksybaan lofthaven
-          apron:
-          - Platfoarm
-          - passazjiershal lofth.
+          cable_car: Kabelbaan
+          chair_lift: stuoltsjelift
+          runway: Start-/lânings-
+          taxiway: taksybaan lofthaven
+          apron: Platfoarm
           admin: Bestjoerlike grins
           forest: Bosk
           wood: Wâld
           golf: Golfbaan
           park: Park
+          common: Miente
           resident: Wengebiet
-          common:
-          - Miente
-          - greide
-          - tún
           retail: Winkelgebiet
           industrial: Yndustrygebiet
           commercial: Kommersjeel gebiet
           heathland: Heidelân
-          lake:
-          - Mar
-          - opslachmar
+          lake: Mar
+          reservoir: opslachmar
           farm: Boerepleats
           brownfield: Braaklân
           cemetery: Begraafplak
@@ -2070,14 +2038,12 @@ fy:
           centre: Sportsintrum
           reserve: Natuerreservaat
           military: Militêr terrein
-          school:
-          - Skoalle
-          - universiteit
+          school: Skoalle
+          university: universiteit
           building: Wichtich gebou
           station: Spoarweistasjon
-          summit:
-          - Top
-          - pyk
+          summit: Top
+          peak: pyk
           tunnel: Streekte râne = tunnel
           bridge: Swarte râne = brêge
           private: Tagong privee
@@ -2431,7 +2397,6 @@ fy:
       ct status: 'Bydragersbetingsten:'
       ct undecided: neat besletten
       ct declined: ôfwiisd
-      latest edit: 'Lêste bewurking (%{ago}):'
       email address: 'E-mailadres:'
       created from: 'Oanmakke fan:'
       status: 'Status:'
@@ -2550,8 +2515,8 @@ fy:
     revoke:
       title: Utsluting foar %{block_on} ynlûke
       heading_html: Utsluting foar %{block_on} troch %{block_by} ynlûke
-      time_future: Dizze útsluting ferfalt oer %{time}.
-      past: Dizze útsluting is %{time} ferfallen en kin net mear ynlutsen wurde.
+      time_future_html: Dizze útsluting ferfalt oer %{time}.
+      past_html: Dizze útsluting is %{time} ferfallen en kin net mear ynlutsen wurde.
       confirm: Witte jo seker dat jo dizze útsluting ynlûke wolle?
       revoke: Ynlûke!
       flash: Dizze útsluting is ynlutsen.
@@ -2694,7 +2659,6 @@ fy:
         cycle_map: Fytskaart
         transport_map: Ferfierskaart
         hot: Humanitêr
-        opnvkarte: Ferfiermiddels
       layers:
         header: Kaartlagen
         notes: Kaartnotysjes
index 81775a67094b2117057211a61c0c2cc71080b9bf..b64dc4fff516b5e3af4b66ed8d2a9e3bc9f91051 100644 (file)
@@ -168,7 +168,6 @@ ga:
   auth:
     providers:
       none: Ceann ar bith
-      openid: OpenID
       google: Google
       facebook: Facebook
       github: GitHub
@@ -228,12 +227,8 @@ ga:
       way_paginated: Bealaí (%{x}-%{y} de %{count})
       relation: Gaolta (%{count})
       relation_paginated: Gaolta (%{x}-%{y} de %{count})
-      comment: Nótaí tráchta (%{count})
       changesetxml: XML an Tacair athruithe
       osmchangexml: XML osmChange
-      feed:
-        title: Tacar athruithe %{id}
-        title_comment: Tacar athruithe %{id} - %{comment}
       join_discussion: Logáil isteach chun páirt a ghlacadh sa phlé
       discussion: Plé
     node:
@@ -329,6 +324,9 @@ ga:
       no_more_area: Níl aon tacar athruithe eile sa limistéar seo.
       no_more_user: Níl aon tacar athruithe eile ón úsáideoir seo.
       load_more: Lódáil tuilleadh
+      feed:
+        title: Tacar athruithe %{id}
+        title_comment: Tacar athruithe %{id} - %{comment}
     timeout:
       sorry: Ár leithscéil, thóg sé rófhada an liosta de na tacair athruithe a d'iarr
         tú a aisghabháil.
@@ -348,6 +346,7 @@ ga:
     contact:
       km away: '%{count} km uait'
       m away: '%{count} m uait'
+      latest_edit_html: 'An t-athrú is déanaí (%{ago}):'
     popup:
       nearby mapper: Léarscálaí in aice láimhe
       friend: Cara
@@ -1004,9 +1003,9 @@ ga:
         zero: Tuairisc ar bith
         one: Tuairisc amháin
         other: '%{count} tuairisc'
-      report_created_at: Tuairiscíodh den chéad uair ag %{datetime}
-      last_resolved_at: Réitithe den uair dheirineach ag %{datetime}
-      last_updated_at: Rinne %{displayname} an nuashonrú is déanaí ag %{datetime}
+      report_created_at_html: Tuairiscíodh den chéad uair ag %{datetime}
+      last_resolved_at_html: Réitithe den uair dheirineach ag %{datetime}
+      last_updated_at_html: Rinne %{displayname} an nuashonrú is déanaí ag %{datetime}
       resolve: Réitigh
       ignore: Tabhair neamhaird air
       reopen: Athoscail
@@ -1226,7 +1225,6 @@ ga:
   messages:
     inbox:
       title: Bosca isteach
-      my_inbox: Mo Bhosca Isteach
       messages: Tá %{new_messages} agus %{old_messages} agat.
       new_messages:
         one: '%{count} theachtaireacht amháin'
@@ -1238,12 +1236,14 @@ ga:
         few: '%{count} seanteachtaireacht'
         many: '%{count} seanteachtaireacht nua'
         other: '%{count} seanteachtaireacht'
-      from: Ó
-      subject: Ábhar
-      date: Dáta
       no_messages_yet_html: Níl aon teachtaireacht agat fós. Nach smaoineofá ar theagmháil
         a dhéanamh le roinnt de na %{people_mapping_nearby_link}?
       people_mapping_nearby: daoine atá i mbun léarscáilithe in aice láimhe
+    messages_table:
+      from: Ó
+      to: Chuig
+      subject: Ábhar
+      date: Dáta
     message_summary:
       unread_button: Marcáil neamhléite
       read_button: Marcáil léite
@@ -1266,9 +1266,6 @@ ga:
       messages:
         one: Tá %{count} teachtaireacht seolta amháin agat
         other: Tá %{count} teachtaireacht seolta agat
-      to: Chuig
-      subject: Ábhar
-      date: Dáta
       no_sent_messages_html: Níl aon teachtaireacht seolta agat fós. Nach smaoineofá
         ar theagmháil a dhéanamh le roinnt de na %{people_mapping_nearby_link}?
       people_mapping_nearby: daoine atá i mbun léarscáilithe in aice láimhe
@@ -1287,30 +1284,34 @@ ga:
         oiread. Logáil isteach mar an t-úsáideoir ceart chun é a léamh.
     sent_message_summary:
       destroy_button: Scrios
+    heading:
+      my_inbox: Mo Bhosca Isteach
     mark:
       as_read: Teachtaireacht marcáilte mar léite
       as_unread: Teachtaireacht marcáilte mar neamhléite
     destroy:
       destroyed: Teachtaireacht scriosta
   passwords:
-    lost_password:
+    new:
       title: Focal faire caillte
       heading: Focal Faire Caillte?
       email address: 'Seoladh ríomhphoist:'
       new password button: Athshocraigh an focal faire
       help_text: Iontráil an seoladh ríomhphoist a d'úsáid tú le clárú, agus seolfaimid
         nasc chugat a bheidh tú in ann a úsáid chun do phasfhocal a athshocrú.
+    create:
       notice email on way: Is oth linn gur chaill tú é :-( ach tá ríomhphost ar an
         mbealach chugat le go mbeidh tú in ann é a athshocrú go luath.
       notice email cannot find: Níorbh fhéidir an seoladh ríomhphoist sin a aimsiú,
         ár leithscéil faoi sin.
-    reset_password:
+    edit:
       title: Focal faire a athshocrú
       heading: Focal Faire le haghaidh %{user} a Athshocrú
       reset: Athshocraigh an Focal Faire
-      flash changed: Athraíodh d'fhocal faire.
       flash token bad: Níor aimsíodh an ceadchomhartha sin, seiceáil an bhfuil an
         URL cruinn?
+    update:
+      flash changed: Athraíodh d'fhocal faire.
   profiles:
     edit:
       image: Íomhá
@@ -1329,7 +1330,6 @@ ga:
       heading: Logáil isteach
       email or username: 'Seoladh Ríomhphoist nó Ainm Úsáideora:'
       password: 'Focal Faire:'
-      openid_html: '%{logo} OpenID:'
       remember: Cuimhnigh orm
       lost password link: Focal faire caillte agat?
       login_button: Logáil isteach
@@ -1429,12 +1429,7 @@ ga:
         HTML, rud atá riachtanach don ghné seo.
     export:
       title: Easportáil
-      area_to_export: Limistéar la hEaspórtáil
       manually_select: Roghnaigh limistéar eile de láimh
-      format_to_export: Formáid le hEaspórtáil
-      osm_xml_data: Sonraí XML OpenStreetMap
-      map_image: Íomhá den Léarscáil (taispeántar an tsraith chaighdeánach)
-      embeddable_html: HTML inleabaithe
       licence: Ceadúnas
       too_large:
         advice: 'Má theipeann ar an easpórtáil thuas, smaoinigh ar cheann de na foinsí
@@ -1457,17 +1452,6 @@ ga:
         other:
           title: Foinsí Eile
           description: Tá liosta de na foinsí breise ar vicí OpenStreetMap
-      options: Roghanna
-      format: Formáid
-      scale: Scála
-      max: uasta
-      image_size: Méid na hÍomhá
-      zoom: Zúmáil
-      add_marker: Cuir marcóir leis an léarscáil
-      latitude: 'D-lthd:'
-      longitude: 'D-fhad:'
-      output: Aschur
-      paste_html: Greamaigh HTML le leabú i suíomh gréasáil
       export_button: Easportáil
     fixthemap:
       title: Fadhb a thuairisciú / An léarscáil a dheisiú
@@ -1488,10 +1472,6 @@ ga:
         url: https://wiki.openstreetmap.org/wiki/GA:Beginners%27_guide
         title: Treoir do Thosaitheoirí
         description: Treoir do thosaitheoirí atá faoi stiúir an phobail.
-      help:
-        title: Fóram Cabhrach
-        description: Is féidir ceist a chur nó freagraí a chuardach ar shuíomh ceisteanna
-          agus freagraí OpenStreetMap.
       mailing_lists:
         title: Liosta Seachadta
         description: Is féidir ceist a chur nó ábhair shuimiúla a phlé ar raon leathan
@@ -1540,34 +1520,24 @@ ga:
           footway: Cosán
           rail: Iarnród
           subway: Meitreo
-          tram:
-          - Iarnród Éadrom
-          - tram
-          cable:
-          - Carr cábla
-          - cathaoir chábla
-          runway:
-          - Rúidbhealach Aerfoirt
-          - bealach innealta
-          apron:
-          - Naprún Aerfoirt
-          - críochfort
+          cable_car: Carr cábla
+          chair_lift: cathaoir chábla
+          runway: Rúidbhealach Aerfoirt
+          taxiway: bealach innealta
+          apron: Naprún Aerfoirt
           admin: Teorainn riaracháin
           forest: Foraois
           wood: Coill
           golf: Galfchúrsa
           park: Páirc
+          common: Coimín
           resident: Ceantar cónaithe
-          common:
-          - Coimín
-          - móinéar
           retail: Limistéar miondíola
           industrial: Limistéar tionsclaíoch
           commercial: Limistéar tráchtála
           heathland: Móinteach/fraochmhá
-          lake:
-          - Loch
-          - taiscumar
+          lake: Loch
+          reservoir: taiscumar
           farm: Feirm
           brownfield: Láithreán athfhorbraíochta
           cemetery: Reilig
@@ -1576,14 +1546,12 @@ ga:
           centre: Ionad spóirt
           reserve: Tearmann dúlra
           military: Limistéar míleata
-          school:
-          - Scoil
-          - ollscoil
+          school: Scoil
+          university: ollscoil
           building: Foirgneamh suntasach
           station: Stáisiún Iarnróid
-          summit:
-          - Mullach
-          - binn
+          summit: Mullach
+          peak: binn
           tunnel: Líne bhriste = tollán
           bridge: Líne dhubh = droichead
           private: Rochtain phríobháideach
@@ -1828,7 +1796,6 @@ ga:
       mapper since: 'Ag léarscáiliú ó:'
       ct status: 'Téarmaí do rannchuiditheoirí:'
       ct declined: Diúltaithe
-      latest edit: 'An t-athrú is déanaí (%{ago}):'
       email address: 'Seoladh ríomhphoist:'
       created from: 'Cruthaithe ó:'
       status: 'Stádas:'
index 0d026348379bcf9a79bf1d12e0aaf1e014dcbfad..05513dbe4e6f379b05744821a58146916cdc3f95 100644 (file)
-# Messages for kréyòl Gwadloup (kréyòl Gwadloup)
+# Messages for Guadeloupean Creole (kréyòl Gwadloup)
 # Exported from translatewiki.net
 # Export driver: phpyaml
+# Author: Istwalezanti
 # Author: Léon973
 ---
 gcf:
+  helpers:
+    submit:
+      diary_comment:
+        create: Komantasyon
+      diary_entry:
+        create: Voyé
+      issue_comment:
+        create: Jouté komantasyon
+      message:
+        create: Voyé
   activerecord:
+    models:
+      country: Péyi
+      friend: Zanmi
+      language: Lang
+      message: Mésaj
+      user: Itilizatè
+      user_preference: Sa itilizatè-la simyé
     attributes:
+      client_application:
+        allow_write_api: Modifyé kat-la
+      diary_entry:
+        user: Itilizatè
+        latitude: latitid
+        longitude: lonjitid
+        language_code: Lang
+      friend:
+        user: Itilizatè
+        friend: Sendika
+      trace:
+        user: Itilizatè
+        latitude: Latitid
+        longitude: Lonjitid
       user:
         home_lat: 'Latitid:'
-        home_lon: 'Longitid:'
+        home_lon: 'Lonjitid:'
+        languages: Lang ou simyé
+        pass_crypt: Kòd a-w
+        pass_crypt_confirmation: Konfimé kòd a-w la
     help:
       user:
         new_email: (Pa janmen maké piblikman)
+  auth:
+    providers:
+      wikipedia: Wikipédya
+  api:
+    notes:
+      entry:
+        comment: Komantasyon
+  account:
+    deletions:
+      show:
+        title: Néyantizé kont a-w la
+        warning: Penga! Si-w ka néyantizé kont a-w, ou ka pèdi-y poubon é ou pé ké
+          pésa woutini-y ankò.
+        delete_account: Néyantizé on kont
+        delete_introduction: |-
+          Ou pé NÉYANTIZÉ kont OpenStreetMap a-w èvè bouton-la.
+          Kanmensa ou pou sav sa:
+        delete_display_name: Tinon a-w la ké néyantizé, é nenpòt kimoun ké pé sèvi
+          épi-y èvè on dòt kont.
+        retain_caveats: 'Kanmenmsa, OpenStreetMap ké woutyenn dotwa kamo asi-w, menmsi
+          sé aprédavwa ou néyantizé kont a-w la:'
+        retain_email: Nou ké chonjé email a-w la.
+        recent_editing_html: |-
+          Davwa ou sòti modifyé biten, nou pé pa néyantizé kont a-w ankò.
+          Nou ké pé fè-y adan %{time}
+        confirm_delete: Ès ou sèkten?
   accounts:
     edit:
+      title: Modifyé kont a-w la
       my settings: Mes options
+      openid:
+        link text: Ka sa yé?
       public editing:
         enabled: Aktif. Y pa anonnim, y pé édité doné.
         enabled link text: Ka sa yé?
         disabled: Inaktif y pé pa édité doné ; tout édision pasé anonim.
-        disabled link text: Poukwa an pé pa édité?
+        disabled link text: Pouki an pé pa modifyé?
+      contributor terms:
+        link text: Ka sa yé?
       save changes button: Enrèjisré tout chanjman
+      delete_account: Néyantizé kont a-w...
     go_public:
-      heading: 'Édision piblik:'
+      heading: 'Édisyon piblik:'
+      currently_not_public: Konyéla, Ponmoun pa konnèt aki-w lè ou ka modifyé on biten,
+        larèstan itilizatè pa sav voyé-w mésaj é yo pé pa sav ola ou yé. Pou montré
+        sa ou modifyé é kité larèstan itilizatè palé ba-w asi twèl-la, Pijé asi bouton-la.
       make_edits_public_button: Mèt tou sa an fè piblik
     update:
       success_confirm_needed: Enfowmasion asi itilisatè la bien anrèjistré. Gadé bwet
         imél aw pou konfirmé adres nouvo imél aw
       success: Efowmasion asi itilisatè la bien anrejistré.
+    destroy:
+      success: Kont néyantizé.
   browse:
+    no_comment: (pon komantasyon)
+    download_xml: Chantyé XML
+    location: 'Ki koté:'
     changeset:
+      hidden_comment_by_html: Komantasyon ou dévwè a %{user} %{time_ago}
+      comment_by_html: Komantasyon a %{user} %{time_ago}
       changesetxml: Niméwo Chanjeman XML
       osmchangexml: osmChanjeman XML
+      join_discussion: Konèkté-w pou jwenn bokantaj-la
+      discussion: Bokantaj
     containing_relation:
       entry_html: Rèlasion %{relation_name}
       entry_role_html: Rèlasion %{relation_name} (adan wol %{relation_role})
@@ -40,92 +119,380 @@ gcf:
     start_rjs:
       load_data: Chajé sé doné la
       loading: Y ka chajé...
+    tag_details:
+      wikipedia_link: Kotéfèy %{page} asi Wikipégya
+      telephone_link: Kriyé %{phone_number}
+    query:
+      introduction: Pijé asi kat-la pou jwenn biten toupréla.
+      nearby: Biten pa lwen
+  changesets:
+    changeset_paging_nav:
+      showing_page: Kotéfèy %{page}
+      previous: Pwochenn
+    changesets:
+      comment: Komantasyon
   dashboards:
     contact:
       km away: '%{count} km'
     popup:
       your location: Koté ou yé
       nearby mapper: Arpantè owa aw
+      friend: Zanmi
     show:
+      my friends: Zanmi a-w
       no friends: Ou poko ni pon zanmi
-      nearby users: 'Itilizatè owa aw :'
-      no nearby users: Ou poko ni itilizatè owa aw.
+      nearby users: 'Itilizatè owa a-w :'
+      no nearby users: Ou poko ni itilizatè owa a-w.
   diary_entries:
     new:
       title: Nouvel nèf an jounal la
     form:
       location: 'Ki koté:'
-      use_map_link: Sèvi èvè kat la
+      use_map_link: Sèvi èvè kat-la
     index:
       new: Nouvel nèf an jounal la
-      new_title: Mèt on nouvel nèf an jounal aw
-      no_entries: Pa ni nouvel an jounal aw
+      new_title: Mèt on nouvèl nèf an jounal a-w
+      my_diary: Jounal a-w la
+      no_entries: Pa ni nouvèl an jounal a-w
       recent_entries: 'Nouvel fré:'
-      older_entries: Nouvel rasi
-      newer_entries: Nouvel pi fré
+      older_entries: Nouvèl rasi
+      newer_entries: Nouvèl pi fré
     edit:
       marker_text: Ola jounal la ka koumansé
+    show:
+      leave_a_comment: Kité on komantasyon
     no_such_entry:
-      heading: 'Pa ti ni nouvel èvè niméwo la sa : %{id}'
-      body: Woy, pa ti ni pon nouvel adan jounal la ouben komantè èvè niméwo la sa
-        %{id}. Kontrolé lòtograf la ouben lien la ou kliké asiy la pa bon.
+      heading: 'Pa tini nouvel èvè niméwo-lasa : %{id}'
+      body: Woy, pa tini pon nouvèl adan jounal la ouben komantè èvè niméwo lasa %{id}.
+        Kontwolé lòtograf la ouben lyen la ou kliké asiy la pa bon.
     diary_entry:
       posted_by_html: Sé %{link_user} ki voyé sa , koté %{created} i maké an %{language_link}
-      comment_link: Palé asi nouvel la sa
-      reply_link: Réponn nouvel la sa
+      comment_link: Palé asi nouvèl-lasa
+      reply_link: Réponn nouvèl-lasa
       comment_count:
         one: On Komantè
         other: '%{count} Komantè'
-      edit_link: Modifié nouvel la sa
+      no_comments: Pa ni komantasyon
+      edit_link: Modifyé nouvèl-lasa
     diary_comment:
       comment_from_html: Komantè a %{link_user} koté %{comment_created_at}
+      hide_link: Dévwè komantasyon-lasa
+    location:
+      view: Vwè
+    comments:
+      comment: Komantasyon
+      older_comments: Pli vyé komantasyon
+  doorkeeper:
+    scopes:
+      phone: Vwè liméwo a téléfòn a-w
+  errors:
+    forbidden:
+      title: Défandi
+  friendships:
+    make_friend:
+      heading: Mèt %{user} adan sé zanmi a-w la?
+      button: Jouté on zanmi
+      success: Alè-la %{name} sé sendika a-w la!
+      failed: Malérèzsò, Zingchap toupannan joutaj a %{name} adan sé zanmi a-w la
+      already_a_friend: '%{name} ja zanmi a-w'
+      limit_exceeded: |-
+        Pa ni enpé tan ou jwenn zanmi kon tilili.
+        Atann tibwen avan ou ka séyé trapé dòt ankò.
+    remove_friend:
+      heading: Kasé-lo èvè %{user}?
+      button: Woté on zanmi
+      success: '%{name} pa zanmi a-w ankò.'
+      not_a_friend: '%{name} pa zanmi a-w'
+  geocoder:
+    search_osm_nominatim:
+      prefix:
+        aerialway:
+          chair_lift: Sizé a kab
+        aeroway:
+          aerodrome: Layodwòm
+          runway: Pis a dékolaj
+          taxiway: Koulwa a avyon
+          terminal: Tèminal a layopò
+        amenity:
+          bench: ban-fennyan
+          bicycle_rental: Lwéyaj a biskèt
+          boat_rental: Lwéyaj a bato
+          brothel: Kaz a bòbò
+          bus_station: Istòp a bis
+          cinema: Siléma
+          clock: Lòlòj
+          dentist: Dòktè a dan
+          doctors: Dòktè
+          hospital: Lopital
+          kindergarten: Tipoulayé
+          language_school: Lékòl a lang
+          library: Kaz a Liv
+          music_school: Lékòl a mizik
+          nightclub: Bwat
+          parking: Ga
+          pharmacy: Fanmasi
+          police: Manblo
+          prison: Lajòl
+          school: Lékòl
+          toilets: Kakatwa
+          townhall: Lanméri
+          waste_basket: Bwètazòdi
+        bridge:
+          "yes": Pon
+        building:
+          chapel: Chapèl
+          church: Batiman a Légliz
+          hospital: Batiman a lopital
+          hotel: Batiman a Lotèl
+          house: Kaz
+          kindergarten: Batiman a tipoulayé
+          roof: Fètay
+          ruins: Batiman Kanni
+          school: Batiman lékòl
+          "yes": Batiman
+        emergency:
+          defibrillator: Bouwèkyè
+          siren: Kòn
+        highway:
+          cycleway: Chimen a biskèt
+          motorway: Lotowout
+          motorway_junction: Britèl lotowout
+          motorway_link: Lotowout
+          primary: Chimen a gouvèlman
+          primary_link: Chimen a gouvèlman
+          road: Chimen
+          speed_camera: Rada
+          street_lamp: Révèbè
+          traffic_mirror: Glas a lari
+          trunk: Wokad
+          trunk_link: Wokad
+          unclassified: Chimen san kad
+          "yes": Wout
+        historic:
+          aircraft: Vyé avyon
+          bomb_crater: Tou a dyab fèt parapòt a bonm
+          cannon: Kannon
+          castle: Chato
+          church: Légliz
+          house: Kaz
+          railway: Chimen fè a listwa
+          ruins: Rèstan
+          tower: Tou
+          "yes": Vi a listwa
+        junction:
+          "yes": Fouchèt a Chimen
+        landuse:
+          cemetery: Simityè
+          forest: Granbwa
+          grass: Zèb
+          railway: Chimen fè
+          reservoir: Rézèvwa
+        leisure:
+          garden: Haden
+          stadium: Istad
+        man_made:
+          bridge: Pon
+          flagpole: lakomèt
+          snow_cannon: Kannon a lannèj
+          storage_tank: Sitèn
+          tower: Tou
+          windmill: Moulen
+          works: Lizin
+        natural:
+          bay: Lans
+          beach: Bòdlanmè
+          cliff: Falèz
+          crater: Tou a dyab
+          forest: Granbwa
+          geyser: Tijaj
+          hill: Mòn
+          island: Lilèt
+          mud: Labou
+          peninsula: Pwent
+          reef: Kay
+          rock: Wòch
+          sand: Sab
+          scrub: Zèb-razyé
+          shingle: Wòch-galèt
+          spring: Sous
+          tree: Pyébwa
+          valley: Koulé
+          volcano: Vòlkan
+          water: Glo
+          wood: Granbwa
+        office:
+          lawyer: Avoka
+        place:
+          archipelago: bann-zil
+          city: Vil prensipal
+          country: Péyi
+          house: Kaz
+          houses: Kaz
+          island: Lilèt
+          islet: Tililèt
+          locality: Koté
+          sea: Lanmè
+          suburb: Fobou
+          town: Vil
+          village: Vilaj
+          "yes": Koté
+        railway:
+          construction: Chimen fè yo ka konstwi
+          halt: Laga
+          junction: Fouchèt a chimen fè
+          level_crossing: Janbaj féwovyè
+          rail: Chimen fè
+        shop:
+          bicycle: Boutik a bisiklèt
+          books: Boutik a liv
+          cheese: Boutik a fomaj
+          clothes: Boutik a lenj
+          florist: Boutik a flè
+          mall: bann-boutik
+          massage: Fòtman
+          optician: Boutik a linèt
+          perfumery: Boutik a losyon
+          seafood: Manjé lannè
+          shoes: Boutik a Soulyé
+          ticket: Boutik a bon
+          "yes": Lolo
+        tourism:
+          hotel: Lotèl
+          information: Kamo
+          museum: Mizé
+        tunnel:
+          "yes": Tinèl
+        waterway:
+          canal: Kannal
+          drain: Dalo
+          river: Rivyè
+          stream: Ravin
+          waterfall: Sodo
+      admin_levels:
+        level8: Lizyè a konmin
+        level9: Lizyè a vilaj
+        level10: Lizyè a sèksyon
+      types:
+        cities: Vil prensipal
+        towns: Vil
+    results:
+      no_results: Yo pa jwenn p'on rézilta
+  issues:
+    index:
+      search: Chaché
+      states:
+        open: Ouvè
+    show:
+      ignore: Dévwè
+  reports:
+    new:
+      categories:
+        diary_entry:
+          other_label: Dòt
+        diary_comment:
+          other_label: Dòt
+        user:
+          other_label: Dòt
+        note:
+          other_label: Dòt
   layouts:
+    home: Ay akaz
     logout: Chapé
     log_in: Rantré
-    sign_up: Enskriw
+    sign_up: Enskri-w
+    start_mapping: Koumansé kataj-la
     edit: Modifié
     history: Istwa sa ou fè
     export: Voyé déwò
     gps_traces: Chimen GPS
     user_diaries: Jounal
     tag_line: Lyannaj pou kat lib
+    intro_header: Kontan vwè-w asi OpenStreetMap!
+    intro_text: Openstreetmap, sé on kat a lèmonn-la ki fèt parapòt a moun kon-w é
+      lib pou sèvi épi-y évè on lisans lib.
     osm_offline: Base a doné a OpenStreetMap dékonekté atchelman ; Yo ka fè on gwo
       travay enpòtan asi-y pou-y maché bien.
     osm_read_only: Atchelman ou pé li selamn base a doné a OpenStreetMap ; Yo ka fè
       on gwo travay enpòtan asi-y pou-y maché bien.
     donate: Ba OpenStreetMap on Fòs, %{link} Pou fè matériel la vansé.
+    help: Anmwé
     make_a_donation:
       text: Ba OpenStreetMap On Fòs
+    more: Plis
+  user_mailer:
+    note_comment_notification:
+      commented:
+        subject_own: '[OpenStreetMap] %{commenter} voyé on komantasyon asi on biten
+          ou maké'
+        subject_other: '[OpenStreetMap] %{commenter} voyé on komantasyon asi on maké
+          ki ka kriyé-w'
+        your_note: '%{commenter} kité on komantasyon asi on biten ou maké asi kat-la
+          ora a %{place}'
+        your_note_html: '%{commenter} lésé on komantasyon asi on biten ou maké asi
+          kat-la pasi %{place}'
+        commented_note_html: '%{commenter} kité on komantasyon anlè on maké a kat
+          ou konmanté. Maké-la ora a %{place}.'
+    changeset_comment_notification:
+      commented:
+        subject_own: '[OpenStreetMap] %{commenter} voyé on komantasyon asi yonn a
+          krèy a modifikasyon a-w'
+        subject_other: '[OpenStreetMap] %{commenter} voyé on komantasyon asi on modifikasyon
+          i ka kriyé-w'
   confirmations:
     confirm:
       heading: Konfirmé kont a itilizatè la
       press confirm button: Apiyé asi bouton la ki an ba pou konfirmé kont aw aktif
         menm.
       button: Konfirmé
+      click_here: pijé kotésit
     confirm_email:
       heading: Konfirmé chanjman a adres imél aw
       press confirm button: Apiyé asi bouton la ki an ba pou konfirmé nouvo adres
         imél aw.
       button: Konfirmé
+  messages:
+    new:
+      send_message_to_html: Voyé on dòt mésaj ba %{name}
   passwords:
-    lost_password:
+    new:
       heading: Ou pèd kòd aw?
       email address: 'Adres imél aw :'
       new password button: Voyé on nouvo kòd
+  preferences:
+    show:
+      title: Sa ou simyé
+      preferred_languages: Lang ou pisimyé
   profiles:
     edit:
+      gravatar:
+        gravatar: Sèvi épi Gravatar
+        what_is_gravatar: Ka ki Gravatar?
+        disabled: Yo étenn Gravatar.
       home location: 'La ou ka rété :'
       no home location: Ou po ko mèt la ou ka rété.
       update home location on click: Eskè y fo modifié la ou ka rété lè ou ka kliké
         asi kat la?
   sessions:
     new:
+      title: Konèkté-w
       heading: Konekté
       email or username: 'Adres imél ouben nom itilizaté aw :'
-      password: 'Kòd aw:'
-      lost password link: Ou pèd kòd aw?
+      password: 'Kòd a''w:'
+      lost password link: Ou pèd kòd a-w?
       login_button: Konektéw
+      auth_providers:
+        wikipedia:
+          title: Konèkté-w épi Wikipédya
   site:
+    copyright:
+      native:
+        mapping_link: koumansé kataj-la
+      legal_babble:
+        contributors_ca_canada: Kanada
+        contributors_fi_finland: Fenlann
+        contributors_fr_france: Frans
+        contributors_nl_netherlands: Nédèlann
+        contributors_es_spain: Èspany
     index:
       js_1: Ou ka sèvi èvè on navigatè ki pa ka sipòté Javascript ouben Javascript
         éten.
@@ -137,16 +504,64 @@ gcf:
         rann édision aw piblik asi %{user_page}.
       user_page_link: paj_itilizatè
       anon_edits_link_text: Ka y ni la.
+    fixthemap:
+      how_to_help:
+        title: Kijan pou ba on pal
+    help:
+      welcome:
+        title: Kontan vwè-w asi OpenStreetMap
     sidebar:
       search_results: Rézilta a chèché aw
       close: Fèmé
     search:
       search: Chèché
-      where_am_i: Ki moun an yé?
+      where_am_i: Ola sa yé?
       submit_text: Voyé
+    key:
+      table:
+        entry:
+          motorway: Lotowout
+          main_road: Chimen a gouvèlman
+          trunk: Wokad
+          primary: Chimen a gouvèlman
+          train: Tren
+          taxiway: Koulwa a avyon
+          city: Vil prensipal
+          forest: Granbwa
+          grass: Zèb
+          sand: Sab
+          reservoir: Rézèvwa
+          reef: Kay
+          cemetery: Simityè
+          beach: Bòdlanmè
+          school: Lékòl
+          hospital: Lopital
+          toilets: Kakatwa
+    welcome:
+      title: Kontan vwè-w!
+      rules:
+        title: Larèl-la!
+      add_a_note:
+        the_map: Kat-la
+  traces:
+    new:
+      help: Anmwé
+  oauth:
+    authorize:
+      allow_write_api: modifyé kat-la.
+    scopes:
+      write_api: Modifyé kat-la
+  oauth_clients:
+    show:
+      confirm: Ès ou sèkten?
   users:
     new:
       no_auto_account_create: Malérezman, alè kilé, nou pé pa ouvè kont automatikman.
+    terms:
+      legale_names:
+        france: Frans
+        italy: Itali
+        rest_of_world: Larèstan a lèmonn-la
     no_such_user:
       body: Malérezman, pa ti ni pon itilisatè èvè non la sa %{user}. Kontrolé lòtograf
         la ouben lien la ou kliké asiy la pa bon.
@@ -154,7 +569,9 @@ gcf:
       my diary: Jounal an mwen
       my edits: Édision an mwen
       my traces: Chimen an mwen
+      my messages: Sé mésaj a-w la
       my settings: Opsion an mwen
+      my_preferences: Sa ou simyé
       send message: Voyé on mésaj
       diary: Jounal
       edits: Édision
@@ -162,6 +579,39 @@ gcf:
       remove as friend: Woté on zanmi
       add as friend: Ajouté on zanmi
       mapper since: 'Arpantè dèpi:'
+      comments: Komantasyon
     go_public:
       flash success: Tou sa ou fè jis alè ki lé piblik ou pa otorizé édité.
+    suspended:
+      support: janmdifòs
+  user_blocks:
+    show:
+      confirm: Ès ou sèkten?
+  notes:
+    index:
+      last_changed: Dènyé lèwvwè yo modifyé-y
+  javascripts:
+    share:
+      title: Simé
+      download: Chantyé
+    map:
+      locate:
+        title: Montré la ou yé
+    site:
+      edit_tooltip: Modifyé kat-la
+      createnote_tooltip: Jouté on komantasyon asi kat-la
+    changesets:
+      show:
+        comment: Komantasyon
+    directions:
+      engines:
+        fossgis_valhalla_bicycle: biskèt (Valhalla)
+      errors:
+        no_place: Malérèzsò, yo pa sav ola '%{place}' yé.
+      instructions:
+        continue_without_exit: Kontinyé asi %{name}
+        slight_right_without_exit: Touné tibwen an dwèt a-w asi %{name}
+  redactions:
+    show:
+      confirm: Ès ou sèkten?
 ...
index 6a4f75c0cad095cd80c01b2cf3d4e79b57fcd96f..8082f2ae262181120b8ecc2f502ee244dc2bbdd7 100644 (file)
@@ -3,6 +3,7 @@
 # Export driver: phpyaml
 # Author: Akerbeltz
 # Author: Amire80
+# Author: Dimitar
 # Author: GunChleoc
 # Author: Macofe
 ---
@@ -201,12 +202,8 @@ gd:
       way_paginated: Slighean (%{x}-%{y} à %{count})
       relation: Dàimhean (%{count})
       relation_paginated: Dàimhean (%{x}-%{y} à %{count})
-      comment: Beachdan (%{count})
       changesetxml: XML le seata atharraichean
       osmchangexml: XML osmChange
-      feed:
-        title: Seata atharraichean %{id}
-        title_comment: Seata atharraichean %{id} - %{comment}
       join_discussion: Clàraich a-steach gus pàirt a ghabhail san deasbaireachd
       discussion: Deasbaireachd
     node:
@@ -304,6 +301,9 @@ gd:
       no_more_user: Cha do chruthaich an cleachdaiche seo seata atharraichean sam
         bith eile.
       load_more: Luchdaich barrachd dhiubh
+      feed:
+        title: Seata atharraichean %{id}
+        title_comment: Seata atharraichean %{id} - %{comment}
     timeout:
       sorry: Duilich ach thug e ro fhada gus an seata atharraichean a dh'iarr thu
         fhaighinn.
@@ -319,6 +319,7 @@ gd:
     contact:
       km away: '%{count}km air falbh'
       m away: '%{count}m air falbh'
+      latest_edit_html: 'An deasachadh mu dheireadh %{ago}:'
     popup:
       your location: Far a bheil thu
       nearby mapper: Neach-mapachaidh am fagas
@@ -1071,18 +1072,19 @@ gd:
   messages:
     inbox:
       title: Am bogsa a-steach
-      my_inbox: Am bogsa a-steach agam
       messages: Tha %{new_messages} agus %{old_messages} agad
       new_messages:
         other: '%{count} teachdaireachd ùr'
       old_messages:
         other: '%{count} teachdaireachd shean'
-      from: O
-      subject: Cuspair
-      date: Ceann-là
       no_messages_yet_html: Chan eil teachdaireachd agad fhathast. Nach tòisich thu
         conaltradh le %{people_mapping_nearby_link}?
       people_mapping_nearby: daoine a nì obair-mhapa faisg ort
+    messages_table:
+      from: O
+      to: Gu
+      subject: Cuspair
+      date: Ceann-là
     message_summary:
       unread_button: Cuir comharra nach deach a leughadh
       read_button: Cuir comharra gun deach a leughadh
@@ -1104,9 +1106,6 @@ gd:
       title: Am bogsa a-mach
       messages:
         other: Tha %{count} teachdaireachd chuirte agad
-      to: Gu
-      subject: Cuspair
-      date: Ceann-là
       no_sent_messages_html: Cha do chuir thu teachdaireachd fhathast. Nach tòisich
         thu conaltradh le %{people_mapping_nearby_link}?
       people_mapping_nearby: daoine a nì obair-mhapa faisg ort
@@ -1124,13 +1123,15 @@ gd:
         an clàraich thu a-steach 'na chleachdaiche a bu chòir airson a leughadh.
     sent_message_summary:
       destroy_button: Sguab às
+    heading:
+      my_inbox: Am bogsa a-steach agam
     mark:
       as_read: Chuir thu comharra gun deach an teachdaireachd a leughadh
       as_unread: Chuir thu comharra nach deach an teachdaireachd a leughadh
     destroy:
       destroyed: Chaidh an teachdaireachd a sguabadh às
   passwords:
-    lost_password:
+    new:
       title: Facal-faire air chall
       heading: Na chaill thu am facal-faire agad?
       email address: 'Seòladh puist-d:'
@@ -1138,17 +1139,19 @@ gd:
       help_text: Cuir a-steach an seòladh puist-d a chleachd thu gus an cunntas agad
         a chlàradh agus cuiridh sinn post-d dha as urrainn dhut cleachdadh gus am
         facal-faire agad ath-shuidheachadh.
+    create:
       notice email on way: Tha sinn duilich gun do chaill thu e :-( ach tha post-d
         gu bhith tighinn thugad ach an urrainn dhut ath-shuidheachadh a dh'aithghearr.
       notice email cannot find: Duilich ach cha do rinn sinn lorg air an t-seòladh
         puist-d ud.
-    reset_password:
+    edit:
       title: Ath-shuidhich am facal-faire
       heading: Ath-shuidhich am facal-faire aig %{user}
       reset: Ath-shuidhich am facal-faire
-      flash changed: Chaidh am facal-faire agad atharrachadh.
       flash token bad: Cha do rinn sinn lorg air an tòcan ud, an toir thu sùil air
         an URL?
+    update:
+      flash changed: Chaidh am facal-faire agad atharrachadh.
   profiles:
     edit:
       image: 'Dealbh:'
@@ -1169,7 +1172,6 @@ gd:
       heading: Clàraich a-steach
       email or username: 'Seòladh puist-d no ainm-cleachdaiche:'
       password: 'Facal-faire:'
-      openid_html: 'OpenID %{logo}:'
       remember: Cuimhnich orm
       lost password link: Na chaill thu am facal-faire agad?
       login_button: Clàraich a-steach
@@ -1286,12 +1288,7 @@ gd:
         airson an fhearta seo.
     export:
       title: Às-phortaich
-      area_to_export: An raon ri às-phortadh
       manually_select: Tagh raon eile a làimh
-      format_to_export: Fòrmat an às-phortaidh
-      osm_xml_data: Dàta XML OpenStreetMap
-      map_image: Dealbh a' mhapa (seallaidh seo a' bhreath stannardach)
-      embeddable_html: HTML a ghabhas leabachadh
       licence: Ceadachas
       too_large:
         advice: 'Ma dh''fhàilligeas leis an às-phortadh gu h-àrd, feuch an cleachd
@@ -1314,17 +1311,6 @@ gd:
         other:
           title: Tùsan eile
           description: Gheibh thu tùsan a bharrachd air an uicidh aig OpenStreetMap
-      options: Roghainnean
-      format: Fòrmat
-      scale: Sgèile
-      max: as motha
-      image_size: Meud an deilbh
-      zoom: Sùm
-      add_marker: Cuir comharra ris a' mhapa
-      latitude: 'D-leud:'
-      longitude: 'D-fhad:'
-      output: Às-chur
-      paste_html: Cuir ann HTML gus a leabachadh ann an làrach-lìn eile
       export_button: Às-phortaich
     fixthemap:
       title: Innis dhuinn mu dhuilgheadas / Càraich am mapa
@@ -1351,10 +1337,6 @@ gd:
       beginners_guide:
         title: Treòir an luchd-tòiseachaidh
         description: Treòir leis a’ choimhearsnachd do luchd-tòiseachaidh
-      help:
-        title: help.openstreetmap.org
-        description: Faighnich ceist no rùraich na freagairtean air làrach nan ceistean
-          àbhaisteach aig OSM.
       mailing_lists:
         title: Liostaichean-puist
       switch2osm:
@@ -1394,34 +1376,24 @@ gd:
           footway: Àrainn-choisichean
           rail: Rèile
           subway: Meatro
-          tram:
-          - Rèile aotrom
-          - Trama
-          cable:
-          - Carbad-càbaill
-          - Lioft-sèitheir
-          runway:
-          - Raon-laighe puirt-adhair
-          - Raon-cuairteachaidh
-          apron:
-          - Aparan puirt-adhair
-          - Tèirmineal
+          cable_car: Carbad-càbaill
+          chair_lift: Lioft-sèitheir
+          runway: Raon-laighe puirt-adhair
+          taxiway: Raon-cuairteachaidh
+          apron: Aparan puirt-adhair
           admin: Crìoch rianachd
           forest: Coille
           wood: Coille
           golf: Raon goilf
           park: Pàirc
+          common: Coitcheann
           resident: Raon-còmhnaidh
-          common:
-          - Coitcheann
-          - Faiche
           retail: Raon bhuitean
           industrial: Raon gnìomhachais
           commercial: Raon malairt
           heathland: Aonach
-          lake:
-          - Loch
-          - Loch-tasgaidh
+          lake: Loch
+          reservoir: Loch-tasgaidh
           farm: Tuathanas
           brownfield: Fearann fàs
           cemetery: Cladh
@@ -1430,14 +1402,12 @@ gd:
           centre: Ionad-spòrs
           reserve: Tèarmann nàdair
           military: Raon an airm
-          school:
-          - Sgoil
-          - Oilthigh
+          school: Sgoil
+          university: Oilthigh
           building: Togalach cudromach
           station: Stèisean-rèile
-          summit:
-          - Mullach
-          - Sgurr
+          summit: Mullach
+          peak: Sgurr
           tunnel: Oir-strìochagan = tunail
           bridge: Oir-loidhnichean = drochaid
           private: Cead-inntrigidh prìobhaideach
@@ -1657,7 +1627,7 @@ gd:
       consider_pd: A bharrachd air an aonta gu h-àrd, aontaichidh mi gun dèid na bheir
         mi dhuibh 'nam cho-thabhartaiche a chur sa Public Domain
       consider_pd_why: Dè th`ann?
-      consider_pd_why_url: http://www.osmfoundation.org/wiki/License/Why_would_I_want_my_contributions_to_be_public_domain
+      consider_pd_why_url: https://www.osmfoundation.org/wiki/License/Why_would_I_want_my_contributions_to_be_public_domain
       decline: Cha ghabh mi ris
       you need to accept or decline: Feuch an leugh thu teirmichean ùra a' chom-pàirtiche
         agus an uairsin aontaich no nach gabh riutha mus lean thu air adhart.
@@ -1695,7 +1665,6 @@ gd:
       ct status: 'Teirmichean a'' chom-pàirtiche:'
       ct undecided: Gun taghadh
       ct declined: Gun gabhail riutha
-      latest edit: 'An deasachadh mu dheireadh %{ago}:'
       email address: 'Seòladh puist-d:'
       created from: 'Air a chruthachadh o:'
       status: 'Staid:'
@@ -1802,9 +1771,9 @@ gd:
     revoke:
       title: A' cùl-ghairm am bacadh air %{block_on}
       heading_html: A' cùl-ghairm am bacadh air %{block_on} le %{block_by}
-      time_future: Falbhaidh an ùine air a' bacadh seo an ceann %{time}.
-      past: Dh'fhalbh an ùine air a' bhacadh seo o chionn %{time} agus cha ghabh a
-        chùl-ghairm a-nis.
+      time_future_html: Falbhaidh an ùine air a' bacadh seo an ceann %{time}.
+      past_html: Dh'fhalbh an ùine air a' bhacadh seo o chionn %{time} agus cha ghabh
+        chùl-ghairm a-nis.
       confirm: A bheil thu cinnteach gu bheil thu airson am bacadh seo a chùl-ghairm?
       revoke: Cùl-ghairm!
       flash: Chaidh am bacadh seo a chùl-ghairm.
index c1fd0830a29a5282e2dfeffc9f09cfc8e8a38e29..987212e45dd2dcafcb0c47ac9e3097f97e20d4f6 100644 (file)
@@ -9,6 +9,7 @@
 # Author: Fitoschido
 # Author: Gallaecio
 # Author: Iváns
+# Author: MAGHOI
 # Author: Macofe
 # Author: Maria zaos
 # Author: McDutchie
@@ -44,8 +45,8 @@ gl:
         create: Rexistrarse
         update: Actualizar
       redaction:
-        create: Crear a redacción
-        update: Gardar a redacción
+        create: Crear a censura
+        update: Gardar a censura
       trace:
         create: Subir
         update: Gardar as modificacións
@@ -57,6 +58,11 @@ gl:
       messages:
         invalid_email_address: non semella ser un enderezo de correo electrónico válido
         email_address_not_routable: non é atinxíbel
+        display_name_is_user_n: non pode ser user_n agás que n sexa o teu identificador
+          de usuario
+      models:
+        user_mute:
+          is_already_muted: xa está silenciado
     models:
       acl: Listaxe do control de acceso
       changeset: Conxunto de modificacións
@@ -228,7 +234,6 @@ gl:
   auth:
     providers:
       none: Ningún
-      openid: OpenID
       google: Google
       facebook: Facebook
       microsoft: Microsoft
@@ -283,6 +288,8 @@ gl:
         retain_changeset_discussions: Conservaremos os teus conxuntos de modificacións,
           se os hai.
         retain_email: Conservaremos o teu enderezo de correo electrónico.
+        recent_editing_html: Como editaches hai pouco, a túa conta non se pode eliminar
+          nestes intres. A eliminación será posible en %{time}.
         confirm_delete: Queres continuar?
         cancel: Cancelar
   accounts:
@@ -364,17 +371,13 @@ gl:
       way_paginated: Vías (%{x}-%{y} de %{count})
       relation: Relacións (%{count})
       relation_paginated: Relacións (%{x}-%{y} de %{count})
-      comment: Comentarios (%{count})
       hidden_comment_by_html: Comentario de %{user} agochado %{time_ago}
       comment_by_html: Comentario de %{user} %{time_ago}
       changesetxml: XML do conxunto de modificacións
       osmchangexml: XML de osmChange
-      feed:
-        title: Conxunto de modificacións %{id}
-        title_comment: Conxunto de modificacións %{id} - %{comment}
       join_discussion: Inicia a sesión para unirte á parola
       discussion: Parola
-      still_open: O conxunto de modificacións segue aberto - Abrirase a parola cando
+      still_open: O conxunto de modificacións segue aberto. Abrirase a parola cando
         o conxunto de modificacións estea pechado.
     node:
       title_html: 'Nó: %{name}'
@@ -407,7 +410,7 @@ gl:
       entry_role_html: Relación %{relation_name} (como %{relation_role})
     not_found:
       title: Non atopado
-      sorry: Sentímolo, non se puido atopar o %{type} co nº%{id}.
+      sorry: Sentímolo, non se puido atopar o/a %{type} co n.º %{id}.
       type:
         node: nó
         way: vía
@@ -424,9 +427,10 @@ gl:
         changeset: conxunto de modificacións
         note: nota
     redacted:
-      redaction: Redacción %{id}
-      message_html: A versión %{version} deste %{type} non se pode amosar tal como
-        foi redactada. Consulte %{redaction_link} para obter máis detalles.
+      redaction: Censura %{id}
+      message_html: A versión %{version} deste elemento de tipo "%{type}" non se pode
+        amosar tal como foi censurada. Consulta a %{redaction_link} para obter máis
+        detalles.
       type:
         node: nó
         way: vía
@@ -452,6 +456,15 @@ gl:
       introduction: Prema no mapa para atopar elementos preto daquí.
       nearby: Elementos preto daquí
       enclosing: Elementos darredor
+  old_nodes:
+    not_found:
+      sorry: Sentímolo, non se puido atopar a versión %{version} do nó n.º %{id}.
+  old_ways:
+    not_found:
+      sorry: Sentímolo, non se puido atopar a versión %{version} da vía n.º %{id}.
+  old_relations:
+    not_found:
+      sorry: Sentímolo, non se puido atopar a versión %{version} da relación n.º %{id}.
   changesets:
     changeset_paging_nav:
       showing_page: Páxina %{page}
@@ -480,20 +493,24 @@ gl:
       no_more_area: Non hai máis conxuntos de modificacións nesta zona.
       no_more_user: Non hai máis conxuntos de modificacións deste usuario.
       load_more: Amosar máis
+      feed:
+        title: Conxunto de modificacións %{id}
+        title_comment: Conxunto de modificacións %{id} - %{comment}
     timeout:
       sorry: Desculpe que levase moito tempo obter a listaxe do conxunto de modificacións
         que solicitou.
   changeset_comments:
     comment:
-      comment: 'Novo comentario sobre os conxuntos de modificacións #%{changeset_id}
-        de %{author}'
+      comment: Novo comentario sobre o conxunto de modificacións n.º %{changeset_id}
+        de %{author}
       commented_at_by_html: Actualizado %{when} por %{user}
     comments:
-      comment: 'Novo comentario sobre o conxunto de modificacións #%{changeset_id}
-        de %{author}'
+      comment: Novo comentario sobre o conxunto de modificacións n.º %{changeset_id}
+        de %{author}
     index:
       title_all: Parola do conxunto de modificacións no OpenStreetMap
-      title_particular: 'Parola do conxunto de modificacións #%{changeset_id} no OpenStreetMap'
+      title_particular: Conversa do conxunto de modificacións n.º %{changeset_id}
+        do OpenStreetMap
     timeout:
       sorry: Sentímolo, a listaxe dos comentarios do conxuntos de modificacións que
         solicitaches tardou moito en obterse.
@@ -501,6 +518,7 @@ gl:
     contact:
       km away: a %{count}km de distancia
       m away: a %{count}m de distancia
+      latest_edit_html: 'Última edición (%{ago}):'
     popup:
       your location: A súa localización
       nearby mapper: Cartógrafo preto de ti
@@ -544,6 +562,7 @@ gl:
     show:
       title: Diario de %{user} | %{title}
       user_title: Diario de %{user}
+      discussion: Conversa
       leave_a_comment: Deixar un comentario
       login_to_leave_a_comment_html: '%{login_link} para deixar un comentario'
       login: Iniciar a sesión
@@ -1474,14 +1493,14 @@ gl:
         open: Abertos
         resolved: Resoltos
     show:
-      title: '%{status} Erro #%{issue_id}'
+      title: '%{status} Erro n.º %{issue_id}'
       reports:
         one: '%{count} denuncia'
         other: '%{count} denuncias'
       no_reports: Sen denuncias
-      report_created_at: Primeira incidencia o %{datetime}
-      last_resolved_at: Resolto por derradeira vez o %{datetime}
-      last_updated_at: Última actualización o %{datetime} por %{displayname}
+      report_created_at_html: Primeira incidencia o %{datetime}
+      last_resolved_at_html: Resolto por derradeira vez o %{datetime}
+      last_updated_at_html: Última actualización o %{datetime} por %{displayname}
       resolve: Resolver
       ignore: Ignorar
       reopen: Reabrir
@@ -1504,8 +1523,8 @@ gl:
       reported_by_html: Denunciado coma %{category} por %{user} o %{updated_at}
     helper:
       reportable_title:
-        diary_comment: '%{entry_title}, comentario #%{comment_id}'
-        note: Nota n.º %{note_id}
+        diary_comment: '%{entry_title}, comentario n.º %{comment_id}'
+        note: Nota n.º %{note_id}
   issue_comments:
     create:
       comment_created: O comentario creouse correctamente
@@ -1630,18 +1649,19 @@ gl:
       description_with_no_tags_html: Parece o teu ficheiro GPX %{trace_name} coa descrición
         %{trace_description} e sen etiquetas
     gpx_failure:
-      hi: Ola %{to_user},
+      hi: 'Ola %{to_user}:'
       failed_to_import: 'erro ao importar. Velaquí atópase o erro:'
       more_info_html: Máis información sobre os erros de importación de GPX e como
         evitalos en %{url}.
       subject: '[OpenStreetMap] Importación GPX errónea'
     gpx_success:
-      hi: Ola %{to_user},
+      hi: 'Ola %{to_user}:'
       loaded:
         one: cargouse correctamente con %{trace_points} de entre un %{count} punto
           posible.
         other: cargouse correctamente con %{trace_points} de entre %{count} puntos
           posibles.
+      all_your_traces_html: Podes atopar todas as pistas GPX que subiches en %{url}.
       subject: '[OpenStreetMap] Importación GPX correcta'
     signup_confirm:
       subject: '[OpenStreetMap] Dámoslle a benvida ao OpenStreetMap'
@@ -1764,8 +1784,6 @@ gl:
   messages:
     inbox:
       title: Caixa de entrada
-      my_inbox: A miña caixa de entrada
-      my_outbox: Caixa de saída
       messages: Ten %{new_messages} e %{old_messages}
       new_messages:
         one: '%{count} mensaxe nova'
@@ -1773,17 +1791,21 @@ gl:
       old_messages:
         one: '%{count} mensaxe vella'
         other: '%{count} mensaxes vellas'
-      from: De
-      subject: Asunto
-      date: Data
       no_messages_yet_html: Aínda non ten ningunha mensaxe. Por que non se pon en
         contacto con algunhas das %{people_mapping_nearby_link}?
       people_mapping_nearby: persoas preto de ti
+    messages_table:
+      from: De
+      to: Para
+      subject: Asunto
+      date: Data
+      actions: Accións
     message_summary:
       unread_button: Marcar como non lido
       read_button: Marcar como lido
       reply_button: Responder
       destroy_button: Eliminar
+      unmute_button: Mover á caixa de entrada
     new:
       title: Enviar unha mensaxe
       send_message_to_html: Enviarlle unha nova mensaxe a %{name}
@@ -1798,20 +1820,21 @@ gl:
       body: Non hai ningunha mensaxe con esa ID.
     outbox:
       title: Caixa de saída
-      my_inbox: Caixa de entrada
-      my_outbox: Caixa de saída
+      actions: Accións
       messages:
         one: Enviaches %{count} mensaxe
         other: Enviaches %{count} mensaxes
-      to: Para
-      subject: Asunto
-      date: Data
       no_sent_messages_html: Aínda non enviou ningunha mensaxe. Por que non se pon
         en contacto con algunhas das %{people_mapping_nearby_link}?
       people_mapping_nearby: persoas preto de ti
+    muted:
+      title: Mensaxes silenciadas
+      messages:
+        one: '%{count} mensaxe silenciada'
+        other: Tes %{count} mensaxes silenciadas
     reply:
-      wrong_user: Accedeu ó sistema coma "%{user}", pero a mensaxe que pediu respostar
-        non lla enviou a ese usuario. Acceda co usuario correcto para redactar a resposta.
+      wrong_user: Accediches ó sistema coma "%{user}", pero a mensaxe que pediu responder
+        non lla enviou a ese usuario. Accede co usuario correcto para redactar a resposta.
     show:
       title: Ler a mensaxe
       reply_button: Responder
@@ -1823,30 +1846,41 @@ gl:
         correcto para ler a resposta.
     sent_message_summary:
       destroy_button: Eliminar
+    heading:
+      my_inbox: A miña caixa de entrada
+      my_outbox: Caixa de saída
+      muted_messages: Mensaxes silenciadas
     mark:
       as_read: Mensaxe marcada coma lida
       as_unread: Mensaxe marcada coma non lida
+    unmute:
+      notice: A mensaxe moveuse á caixa de entrada
+      error: Non se puido mover a mensaxe á caixa de entrada.
     destroy:
       destroyed: Mensaxe eliminada
   passwords:
-    lost_password:
+    new:
       title: Contrasinal perdido
       heading: Esqueciches o contrasinal?
-      email address: 'Enderezo de correo electrónico:'
+      email address: Enderezo de correo electrónico
       new password button: Restablecer o contrasinal
       help_text: Escribe o enderezo de correo electrónico que empregaches para te
         rexistrares. Enviarémosche unha ligazón que poderás empregar para restablecer
         o teu contrasinal.
+    create:
       notice email on way: Por desgraza perdeuno, pero hai en camiño unha mensaxe
         de correo electrónico ca que o poderá restabelecelo axiña.
       notice email cannot find: Non se puido atopar o enderezo de correo electrónico.
-    reset_password:
+    edit:
       title: Restablecer o contrasinal
       heading: Restablecer o contrasinal de %{user}
       reset: Restablecer o contrasinal
-      flash changed: Mudouse o teu contrasinal.
       flash token bad: Non se atopou o pase. Quizabes tería que comprobar o enderezo
         URL.
+    update:
+      flash changed: Mudouse o teu contrasinal.
+      flash token bad: Non se atopou o pase. Quizais deberías comprobar o enderezo
+        URL.
   preferences:
     show:
       title: As miñas preferencias
@@ -1891,9 +1925,8 @@ gl:
     new:
       title: Rexistrarse
       heading: Rexistro
-      email or username: 'Enderezo de correo electrónico ou nome de usuario:'
-      password: 'Contrasinal:'
-      openid_html: '%{logo} OpenID:'
+      email or username: Enderezo de correo electrónico ou nome de usuario
+      password: Contrasinal
       remember: Lembrádeme
       lost password link: Perdiches o teu contrasinal?
       login_button: Iniciar a sesión
@@ -1951,6 +1984,7 @@ gl:
       image: Imaxe
       alt: Texto alternativo
       url: URL
+      codeblock: Segmento de código
     richtext_field:
       edit: Editar
       preview: Vista previa
@@ -2204,12 +2238,7 @@ gl:
         este elemento.
     export:
       title: Exportar
-      area_to_export: Zona a exportar
       manually_select: Seleccionar de xeito manual outra zona
-      format_to_export: Formato de exportación
-      osm_xml_data: Datos XML do OpenStreetMap
-      map_image: Imaxe do mapa (amosa unha capa normal)
-      embeddable_html: HTML embebíbel
       licence: Licenza
       licence_details_html: Os datos do OpenStreetMap atópanse baixo a %{odbl_link}
         (ODbL).
@@ -2234,17 +2263,6 @@ gl:
         other:
           title: Outras fontes
           description: Fontes adicionais listadas no wiki do OpenStreetMap
-      options: Opcións
-      format: Formato
-      scale: Escala
-      max: máx.
-      image_size: Tamaño da imaxe
-      zoom: Zoom
-      add_marker: Engadir un marcador ao mapa
-      latitude: 'Lat:'
-      longitude: 'Lon:'
-      output: Saída
-      paste_html: Pegue o código HTML para incluílo na páxina web
       export_button: Exportar
     fixthemap:
       title: Denunciar un problema / Corrixir o mapa
@@ -2279,17 +2297,13 @@ gl:
       beginners_guide:
         title: Guía do principiante
         description: Guía para principiantes, mantida pola comunidade.
-      help:
-        title: Foro de axuda
-        description: Deixa algunha pregunta ou pescuda respostas no sitio de cuestións
-          e respostas do OpenStreetMap.
+      community:
+        title: Axuda e foro comunitario
+        description: Un lugar para buscar axuda e compartir conversas sobre o OpenStreetMap.
       mailing_lists:
         title: Listaxes de correo
         description: Pregunta ou parola sobre temas interesantes nun amplo abano de
           listaxes de correo temáticas ou rexionais.
-      community:
-        title: Foro comunitario
-        description: Un lugar para compartir conversas sobre OpenStreetMap.
       irc:
         title: IRC
         description: Parola interactiva en moitas linguas diferentes e sobre moitos
@@ -2345,67 +2359,83 @@ gl:
           primary: Estrada primaria
           secondary: Estrada secundaria
           unclassified: Estrada sen clasificar
+          pedestrian: Camiño peonil
           track: Pista
           bridleway: Pista de cabalos
           cycleway: Senda ciclista
           cycleway_national: Carril bici nacional
           cycleway_regional: Carril bici rexional
           cycleway_local: Carril bici local
+          cycleway_mtb: Ruta de bicicleta de montaña
           footway: Senda peonil
           rail: Ferrocarril
+          train: Tren
           subway: Metro
-          tram:
-          - Metro lixeiro
-          - tranvía
-          cable:
-          - Teleférico
-          - telecadeira
-          runway:
-          - Pista do aeroporto
-          - vía de circulación do aeroporto
-          apron:
-          - Plataforma do aeroporto
-          - terminal
+          ferry: Transbordador
+          light_rail: Metro lixeiro
+          tram: Tranvía
+          trolleybus: Trolebús
+          bus: Autobús
+          cable_car: Teleférico
+          chair_lift: Telecadeira
+          runway: Pista do aeroporto
+          taxiway: Vía de circulación do aeroporto
+          apron: Plataforma do aeroporto
           admin: Límite administrativo
+          capital: Capital
+          city: Cidade
+          orchard: Horta
+          vineyard: Viñedo
           forest: Bosque
           wood: Bosque
+          farmland: Terra de labranza
+          grass: Herba
+          meadow: Pradaría
+          bare_rock: Rocha núa
+          sand: Area
           golf: Campo de golf
           park: Parque
+          common: Espazo común
+          built_up: Zona edificada
           resident: Zona residencial
-          common:
-          - Espazo común
-          - pradaría
-          - xardín
           retail: Zona comercial
           industrial: Zona industrial
           commercial: Zona de oficinas
           heathland: Breixeira
-          lake:
-          - Lagoa
-          - encoro
+          scrubland: Matogueira
+          lake: Lagoa
+          reservoir: Encoro
+          intermittent_water: Masa de auga intermitente
+          glacier: Glaciar
+          reef: Arrecife
+          wetland: Pantano
           farm: Granxa
           brownfield: Lugar baldío
           cemetery: Cemiterio
           allotments: Hortas
           pitch: Cancha deportiva
           centre: Centro deportivo
+          beach: Praia
           reserve: Reserva natural
           military: Zona militar
-          school:
-          - Escola
-          - universidade
+          school: Escola
+          university: Universidade
+          hospital: Hospital
           building: Edificio significativo
           station: Estación de ferrocarrís
-          summit:
-          - Cumio
-          - cume
+          summit: Cumio
+          peak: Cume
           tunnel: Bordo a raias = túnel
           bridge: Bordo negro = ponte
           private: Acceso privado
           destination: Acceso a destino
           construction: Estradas baixo construción
+          bus_stop: Parada de bus
+          stop: Parada
           bicycle_shop: Tenda de bicicletas
+          bicycle_rental: Alugueiro de bicicletas
           bicycle_parking: Aparcadoiro de bicicletas
+          bicycle_parking_small: Aparcadoiro de bicicletas pequeno
           toilets: Servizos
     welcome:
       title: Reciba a nosa benvida!
@@ -2449,6 +2479,7 @@ gl:
         imports: importacións
         automated_edits: edicións automáticas
       start_mapping: Comezar a cartografar
+      continue_authorization: Continuar coa autorización
       add_a_note:
         title: Non tes tempo para editar? Engade unha nota!
         para_1: Se soamente queres corrixir unha pequena cousa e non tes tempo de
@@ -2605,6 +2636,7 @@ gl:
       oauth1_settings: Axustes OAuth 1
       oauth2_applications: Aplicacións OAuth 2
       oauth2_authorizations: Autorizacións OAuth 2
+      muted_users: Usuarios silenciados
   oauth:
     authorize:
       title: Autorizar o acceso á túa conta
@@ -2641,18 +2673,20 @@ gl:
       read_gpx: Ler pistas GPS privadas
       write_gpx: Subir pistas GPS
       write_notes: Modificar notas
+      write_redactions: Censurar datos do mapa
       read_email: Ver os enderezos de correo electrónico dos usuarios
       skip_authorization: Aprobar automaticamente aplicacións
   oauth_clients:
     new:
       title: Rexistrar unha nova aplicación
+      disabled: Desactivouse o rexistro de aplicacións OAuth 1
     edit:
       title: Editar a túa aplicación
     show:
       title: Detalles OAuth para %{app_name}
       key: 'Chave ou clave do consumidor:'
       secret: 'Pregunta secreta do consumidor:'
-      url: 'Solicitar unha URL de pase:'
+      url: 'URL do pase da solicitude:'
       access_url: 'Acceder á URL do pase:'
       authorize_url: 'Autorizar a URL:'
       support_notice: Soportamos HMAC-SHA1 (recomendado) e sinaturas RSA-SHA1.
@@ -2729,6 +2763,7 @@ gl:
       title: As miñas aplicacións autorizadas
       application: Aplicación
       permissions: Permisos
+      last_authorized: Última autorización
       no_applications_html: Non autorizaches ningunha aplicación %{oauth2}.
     application:
       revoke: Revogar acceso
@@ -2814,6 +2849,8 @@ gl:
       my_dashboard: O meu panel de control
       blocks on me: Os meus bloqueos
       blocks by me: Bloqueos efectuados
+      create_mute: Silenciar este usuario
+      destroy_mute: Deixar de silenciar este usuario
       edit_profile: Editar perfil
       send message: Enviar unha mensaxe
       diary: Diario
@@ -2827,7 +2864,6 @@ gl:
       ct status: 'Termos do colaborador:'
       ct undecided: Indeciso
       ct declined: Rexeitou
-      latest edit: 'Última edición (%{ago}):'
       email address: 'Enderezo de correo electrónico:'
       created from: 'Creado a partir de:'
       status: 'Estado:'
@@ -2835,14 +2871,18 @@ gl:
       role:
         administrator: Este usuario é administrador
         moderator: Este usuario é moderador
+        importer: Este usuario é importador
         grant:
           administrator: Conceder o acceso de administrador
           moderator: Conceder o acceso de moderador
+          importer: Conceder o acceso de importador
         revoke:
           administrator: Revogar o acceso de administrador
           moderator: Revogar o acceso de moderador
+          importer: Revogar o acceso de importador
       block_history: Bloqueos activos
       moderator_history: Bloqueos impostos
+      revoke_all_blocks: Revogar todos os bloqueos
       comments: Comentarios
       create_block: Bloquear este usuario
       activate_user: Activar este usuario
@@ -2947,11 +2987,21 @@ gl:
     revoke:
       title: Revogando o bloqueo en %{block_on}
       heading_html: Revogando o bloqueo en %{block_on} por %{block_by}
-      time_future: Este bloqueo rematará en %{time}.
-      past: Este bloqueo rematou %{time} e xa non se pode revogar.
+      time_future_html: Este bloqueo rematará en %{time}.
+      past_html: Este bloqueo rematou %{time} e xa non se pode revogar.
       confirm: Ten a certeza de querer revogar este bloqueo?
       revoke: Revogar!
       flash: Revogouse o bloqueo.
+    revoke_all:
+      title: Revogando todos os bloqueos en %{block_on}
+      heading_html: Revogando todos os bloqueos en %{block_on}
+      empty: '%{name} non ten bloqueos activos.'
+      confirm: Ten a certeza de querer revogar %{active_blocks}?
+      active_blocks:
+        one: '%{count} bloqueo activo'
+        other: '%{count} bloqueos activos'
+      revoke: Revogar!
+      flash: Revogáronse todos os bloqueos activos.
     helper:
       time_future_html: Remata en %{time}.
       until_login: Activo até que o usuario inicie sesión.
@@ -3011,6 +3061,30 @@ gl:
       showing_page: Páxina %{page}
       next: Seguinte »
       previous: « Anterior
+  user_mutes:
+    index:
+      title: Usuarios silenciados
+      my_muted_users: Os meus usuarios silenciados
+      you_have_muted_n_users:
+        one: Silenciaches %{count} usuario
+        other: Silenciaches %{count} usuarios
+      user_mute_explainer: As mensaxes dos usuarios silenciados móvense a unha caixa
+        de entrada independente e non recibirás notificacións por correo electrónico.
+      user_mute_admins_and_moderators: Podes silenciar os administradores e moderadores,
+        pero as súas mensaxes non se silenciarán.
+      table:
+        thead:
+          muted_user: Usuario silenciado
+          actions: Accións
+        tbody:
+          unmute: Deixar de silenciar
+          send_message: Enviar unha mensaxe
+    create:
+      notice: Silenciaches a %{name}.
+      error: Non se puido silenciar a %{name}. %{full_message}.
+    destroy:
+      notice: Deixaches de silenciar a %{name}.
+      error: Non se puido deixar de silenciar o usuario. Por favor, inténtao de novo.
   notes:
     index:
       title: Notas enviadas ou comentadas por %{user}
@@ -3027,9 +3101,9 @@ gl:
     show:
       title: 'Nota: %{id}'
       description: Descrición
-      open_title: Nota sen resolver nº%{note_name}
-      closed_title: Nota resolta nº%{note_name}
-      hidden_title: Nota agochada nº%{note_name}
+      open_title: Nota sen resolver n.º %{note_name}
+      closed_title: Nota resolta n.º %{note_name}
+      hidden_title: Nota agochada n.º %{note_name}
       event_opened_by_html: Creado por %{user} %{time_ago}
       event_opened_by_anonymous_html: Creado por un usuario anónimo %{time_ago}
       event_commented_by_html: Comentario de %{user} %{time_ago}
@@ -3047,6 +3121,7 @@ gl:
       reactivate: Reactivar
       comment_and_resolve: Comentar e resolver
       comment: Comentar
+      log_in_to_comment: Accede para comentar esta nota
       report_link_html: Se esta nota contén información confidencial que debe eliminarse,
         podes %{link}.
       other_problems_resolve: Para calquera outro problema coa nota, resólveo ti cun
@@ -3109,7 +3184,6 @@ gl:
         transport_map: Transporte
         tracestracktop_topo: Tracestrack Topo
         hot: Humanitario
-        opnvkarte: ÖPNVKarte (Transporte)
       layers:
         header: Capas do mapa
         notes: Notas do mapa
@@ -3124,8 +3198,6 @@ gl:
       osm_france: OpenStreetMap Francia
       thunderforest_credit: Mosaicos cortesía de %{thunderforest_link}
       andy_allan: Andy Allan
-      opnvkarte_credit: Mosaicos cortesía de %{memomaps_link}
-      memomaps: MeMoMaps
       tracestrack_credit: Mosaicos cortesía de %{tracestrack_link}
       hotosm_credit: Estilo de mosaicos do %{hotosm_link} aloxado por %{osm_france_link}
       hotosm_name: equipo humanitario do OpenStreetMap
@@ -3138,6 +3210,8 @@ gl:
       map_data_zoom_in_tooltip: Achegar para ollar os datos do mapa
       queryfeature_tooltip: Consultar os elementos
       queryfeature_disabled_tooltip: Achegar para consultar os elementos
+      embed_html_disabled: A incorporación de HTML non está dispoñible para esta capa
+        de mapa
     changesets:
       show:
         comment: Comentar
@@ -3166,71 +3240,70 @@ gl:
       distance_km: '%{distance} km'
       errors:
         no_route: Non se puido atopar unha ruta entre eses dous lugares.
-        no_place: Sentímolo - non foi posíbel atopar '%{place}'.
+        no_place: Sentímolo, non foi posíbel atopar "%{place}".
       instructions:
-        continue_without_exit: Continuar en %{name}
-        slight_right_without_exit: Xire un pouco cara á dereita en %{name}
-        offramp_right: Colla a rampla da dereita
-        offramp_right_with_exit: Tome a saída %{exit} cara á dereita
-        offramp_right_with_exit_name: Tome a saída %{exit} á dereita cara %{name}
-        offramp_right_with_exit_directions: Tome a saída %{exit} cara á dereita, en
-          dirección a %{directions}
-        offramp_right_with_exit_name_directions: Tome a saída %{exit} á dereita cara
-          %{name}, en dirección a %{directions}
-        offramp_right_with_name: Colla a rampla á dereita en %{name}
-        offramp_right_with_directions: Tome a vía de acceso cara á dereita en dirección
+        continue_without_exit: Continúa en %{name}
+        slight_right_without_exit: Xira lixeiramente á dereita cara a %{name}
+        offramp_right: Toma a rampla á dereita
+        offramp_right_with_exit: Toma a saída %{exit} á dereita
+        offramp_right_with_exit_name: Toma a saída %{exit} á dereita cara a %{name}
+        offramp_right_with_exit_directions: Toma a saída %{exit} á dereita, en dirección
           a %{directions}
-        offramp_right_with_name_directions: Tome a vía de acceso á dereita cara %{name},
+        offramp_right_with_exit_name_directions: Toma a saída %{exit} á dereita cara
+          a %{name}, en dirección a %{directions}
+        offramp_right_with_name: Toma a rampla á dereita cara a %{name}
+        offramp_right_with_directions: Toma a rampla á dereita en dirección a %{directions}
+        offramp_right_with_name_directions: Toma a rampla á dereita cara a %{name},
           en dirección a %{directions}
-        onramp_right_without_exit: Xire á dereita na rampla en %{name}
-        onramp_right_with_directions: Xire á dereita, cara á rampla en dirección a
+        onramp_right_without_exit: Xira á dereita na rampla cara a %{name}
+        onramp_right_with_directions: Xira á dereita, cara á rampla en dirección a
           %{directions}
-        onramp_right_with_name_directions: Xire á dereita na rampla cara %{name},
+        onramp_right_with_name_directions: Xira á dereita na rampla cara a %{name},
           en dirección a %{directions}
-        onramp_right_without_directions: Xire á dereita cara a rampla
-        onramp_right: Xire á dereita cara a rampla
-        endofroad_right_without_exit: Ó final da estrada xire á dereita en %{name}
-        merge_right_without_exit: Únase á dereita en %{name}
-        fork_right_without_exit: Na bifurcación xire á dereita en %{name}
-        turn_right_without_exit: Xire á dereita en %{name}
-        sharp_right_without_exit: Xiro brusco á dereita en %{name}
+        onramp_right_without_directions: Xira á dereita cara a rampla
+        onramp_right: Xira á dereita cara a rampla
+        endofroad_right_without_exit: Ó final da estrada xira á dereita cara a %{name}
+        merge_right_without_exit: Incorpórate á dereita cara a %{name}
+        fork_right_without_exit: Na bifurcación xira á dereita cara a %{name}
+        turn_right_without_exit: Xira á dereita cara a %{name}
+        sharp_right_without_exit: Xiro brusco á dereita cara a %{name}
         uturn_without_exit: Cambio de sentido en %{name}
-        sharp_left_without_exit: Xiro brusco á esquerda en %{name}
-        turn_left_without_exit: Xire á esquerda cara %{name}
-        offramp_left: Tome a rampla á esquerda
-        offramp_left_with_exit: Tome a saída %{exit} á esquerda
-        offramp_left_with_exit_name: Tome a saída %{exit} á esquerda cara %{name}
-        offramp_left_with_exit_directions: Tome a saída %{exit} á esquerda en dirección
+        sharp_left_without_exit: Xiro brusco á esquerda cara a %{name}
+        turn_left_without_exit: Xira á esquerda cara a %{name}
+        offramp_left: Toma a rampla á esquerda
+        offramp_left_with_exit: Toma a saída %{exit} á esquerda
+        offramp_left_with_exit_name: Toma a saída %{exit} á esquerda cara a %{name}
+        offramp_left_with_exit_directions: Toma a saída %{exit} á esquerda en dirección
           a %{directions}
-        offramp_left_with_exit_name_directions: Tome a saída %{exit} á esquerda cara
-          %{name}, en dirección a %{directions}
-        offramp_left_with_name: Colla a rampla á esquerda en %{name}
-        offramp_left_with_directions: Tome a rampla á esquerda en dirección a %{directions}
-        offramp_left_with_name_directions: Tome a rampla á esquerda cara %{name},
+        offramp_left_with_exit_name_directions: Toma a saída %{exit} á esquerda cara
+          %{name}, en dirección a %{directions}
+        offramp_left_with_name: Toma a rampla á esquerda cara a %{name}
+        offramp_left_with_directions: Toma a rampla á esquerda en dirección a %{directions}
+        offramp_left_with_name_directions: Toma a rampla á esquerda cara a %{name},
           en dirección a %{directions}
-        onramp_left_without_exit: Xire á esquerda na rampla en %{name}
-        onramp_left_with_directions: Xire á esquerda na rampla en dirección a %{directions}
-        onramp_left_with_name_directions: Xire á esquerda na rampla cara %{name},
+        onramp_left_without_exit: Xira á esquerda na rampla cara a %{name}
+        onramp_left_with_directions: Xira á esquerda na rampla en dirección a %{directions}
+        onramp_left_with_name_directions: Xira á esquerda na rampla cara a %{name},
           en dirección a %{directions}
-        onramp_left_without_directions: Xire á esquerda cara a rampla
-        onramp_left: Xire á esquerda cara a rampla
-        endofroad_left_without_exit: Ó final da estrada xire á esquerda en %{name}
-        merge_left_without_exit: Únase á esquerda en %{name}
-        fork_left_without_exit: Na bifurcación xire á esquerda en %{name}
-        slight_left_without_exit: Xire un pouco cara á esquerda en %{name}
+        onramp_left_without_directions: Xira á esquerda cara a rampla
+        onramp_left: Xira á esquerda cara a rampla
+        endofroad_left_without_exit: Ó final da estrada xira á esquerda cara a %{name}
+        merge_left_without_exit: Incorpórate á esquerda cara a %{name}
+        fork_left_without_exit: Na bifurcación xira á esquerda cara a %{name}
+        slight_left_without_exit: Xira lixeiramente á esquerda cara a %{name}
         via_point_without_exit: (punto intermedio)
-        follow_without_exit: Siga %{name}
-        roundabout_without_exit: Na rotonda, tome a saída cara a %{name}
-        leave_roundabout_without_exit: Saír da rotonda - %{name}
-        stay_roundabout_without_exit: Permanecer na rotonda - %{name}
-        start_without_exit: Comezar en %{name}
-        destination_without_exit: Chegada ó destino
-        against_oneway_without_exit: Ir en contra dun só sentido en %{name}
+        follow_without_exit: Sigue %{name}
+        roundabout_without_exit: Na rotonda, toma a saída cara a %{name}
+        leave_roundabout_without_exit: Sae da rotonda - %{name}
+        stay_roundabout_without_exit: Permanece na rotonda - %{name}
+        start_without_exit: Comeza en %{name}
+        destination_without_exit: Chega ó destino
+        against_oneway_without_exit: Vai en contra do sentido en %{name}
         end_oneway_without_exit: Final dun só sentido en %{name}
-        roundabout_with_exit: Na rotonda coller saída %{exit} en %{name}
-        roundabout_with_exit_ordinal: Na rotonda coller saída %{exit} cara %{name}
-        exit_roundabout: Saír da rotonda cara %{name}
-        unnamed: sen nome
+        roundabout_with_exit: Na rotonda, toma a saída %{exit} cara a %{name}
+        roundabout_with_exit_ordinal: Na rotonda, toma a saída %{exit} cara a %{name}
+        exit_roundabout: Sae da rotonda cara a %{name}
+        unnamed: estrada sen nome
         courtesy: Indicacións cortesía de %{link}
         exit_counts:
           first: 1.ª
@@ -3249,8 +3322,8 @@ gl:
       way: Vía
       relation: Relación
       nothing_found: Non se atoparon elementos
-      error: 'Erro ó contactar a %{server}: %{error}'
-      timeout: Tempo de agarde esgotado ó contactar a %{server}
+      error: 'Erro ó contactar con %{server}: %{error}'
+      timeout: Tempo de agarda esgotado ó contactar con %{server}
     context:
       directions_from: Indicacións dende aquí
       directions_to: Indicacións até aquí
@@ -3260,32 +3333,32 @@ gl:
       centre_map: Centrar o mapa aquí
   redactions:
     edit:
-      heading: Editar a redacción
-      title: Editar a redacción
+      heading: Editar a censura
+      title: Editar a censura
     index:
-      empty: Non hai ningunha redacción que amosar.
-      heading: Listaxe das redaccións
-      title: Listaxe das redaccións
+      empty: Non hai ningunha censura que amosar.
+      heading: Listaxe de censuras
+      title: Listaxe de censuras
     new:
-      heading: Escriba a información da nova redacción
-      title: Creando unha nova redacción
+      heading: Escriba a información da nova censura
+      title: Creando unha nova censura
     show:
       description: 'Descrición:'
-      heading: Amosando a redacción "%{title}"
-      title: Amosando a redacción
+      heading: Amosando a censura "%{title}"
+      title: Amosando a censura
       user: 'Creador:'
-      edit: Editar esta redacción
-      destroy: Eliminar esta redacción
+      edit: Editar esta censura
+      destroy: Eliminar esta censura
       confirm: Queres continuar?
     create:
-      flash: Redacción creada.
+      flash: Censura creada.
     update:
       flash: Gardáronse as modificacións.
     destroy:
-      not_empty: A redacción non está baleira. Elimine tódalas versións previas pertencentes
-        a esta redacción antes de destruíla.
-      flash: Redacción destruída.
-      error: Houbo un erro ó destruír esta redacción.
+      not_empty: A censura non está baleira. Elimina tódalas versións previas pertencentes
+        a esta censura antes de destruíla.
+      flash: Censura destruída.
+      error: Houbo un erro ó destruír esta censura.
   validations:
     leading_whitespace: ten espazos no inicio
     trailing_whitespace: ten espazos ó final
index ac44d7f59f06954676e245ce86cdd2b3d234d444..cf3854f93e07c9621cf4257437e0f727004417ce 100644 (file)
@@ -113,12 +113,8 @@ gsw:
       way_paginated: Wäg (%{x}-%{y} von %{count})
       relation: Relatione (%{count})
       relation_paginated: Relatione (%{x}-%{y} of %{count})
-      comment: Kommendar (%{count})
       changesetxml: Changeset-XML
       osmchangexml: osmChange XML
-      feed:
-        title: Changeset %{id}
-        title_comment: Changeset %{id} - %{comment}
       join_discussion: Meld dich aa, wennd mitdiskutiere willsch.
       discussion: Diskussion
     node:
@@ -167,6 +163,11 @@ gsw:
       loading: Am Lade ...
     tag_details:
       tags: 'Tags:'
+  changesets:
+    index:
+      feed:
+        title: Changeset %{id}
+        title_comment: Changeset %{id} - %{comment}
   dashboards:
     popup:
       your location: Dyy Standort
@@ -185,12 +186,13 @@ gsw:
       success: Dyy E-Mail-Adräss isch bstetigt wore, dankschen fir s Regischtriere!
       failure: E E-Mail-Adräss isch scho mit däm Link bstetigt wore.
   passwords:
-    reset_password:
+    edit:
       title: Passwort zrucksetze
       heading: Passwort fir %{user} zrucksetze
       reset: Passwort zrucksetze
-      flash changed: Dyy Passwort isch gänderet wore.
       flash token bad: Mir hän des Chirzel leider nit chenne finde. Iberprief d URL.
+    update:
+      flash changed: Dyy Passwort isch gänderet wore.
   traces:
     visibility:
       private: Privat (nume as anonymi, nit sortierti Pinkt ohni Zytstämpfel aazeigt)
index 519e99c2389fb329e6cb177dc751a8726299f607..ea2b675ab641464127d9a36cd73d452346005b54 100644 (file)
@@ -79,6 +79,11 @@ he:
       messages:
         invalid_email_address: זאת אינה כתובת דוא״ל תקנית
         email_address_not_routable: לא בר־ניתוב
+        display_name_is_user_n: זה לא יכול להיות user_n אלא אם כן n הוא מזהה המשתמש
+          שלך
+      models:
+        user_mute:
+          is_already_muted: כבר מושתק
     models:
       acl: רשימת בקרת גישה
       changeset: ערכת שינויים
@@ -266,11 +271,10 @@ he:
       description: iD (עורך בתוך הדפדפן)
     remote:
       name: שליטה מרחוק
-      description: שליטה מרחוק (JOSM, Potlatch או Merkaartor)
+      description: שליטה מרחוק (JOSM, Potlatch או Merkaartor)
   auth:
     providers:
       none: ללא
-      openid: OpenID
       google: גוגל
       facebook: פייסבוק
       microsoft: מיקרוסופט
@@ -313,13 +317,15 @@ he:
         retain_caveats: 'אבל חלק מהמידע עליך יישמר ב־OpenStreetMap, אפילו אחרי מחיקת
           חשבונך:'
         retain_edits: העריכות שלך לבסיס הנתונים של המפה, אם קיימות, יישמרו.
-        retain_traces: ההקלטות (traces) שהעליתם, יישמרו.
+        retain_traces: ההקלטות שהעליתם, אם יש כאלו, יישמרו.
         retain_diary_entries: יומן הכניסות ויומן התגובות שלך, אם קיימים, יישמרו, אך
           לא ניתן יהיה לצפות בהם.
         retain_notes: הערות המפה ותגובות להערות, אם יש כאלה, יישמרו, אבל יוסתרו.
         retain_changeset_discussions: הדיונים שלכם על ערכות השינויים, אם יש כאלה,
           יישמרו.
         retain_email: כתובת הדואר האלקטרוני שלך תישמר.
+        recent_editing_html: כיוון שערכת לאחרונה אין אפשרות למחוק את החשבון שלך. אפשר
+          יהיה למחוק אותו בעוד %{time}.
         confirm_delete: להמשיך?
         cancel: ביטול
   accounts:
@@ -359,8 +365,8 @@ he:
         כברירת מחדל.
       make_edits_public_button: להפוך את כל עריכותיי לציבוריות
     update:
-      success_confirm_needed: מידע על המשתמש עודכן בהצלחה. נא לבדוק את תיבת הדוא"ל
-        כדי לאמת את הדוא"ל החדש.
+      success_confirm_needed: מידע על המשתמש עודכן בהצלחה. נא לבדוק את תיבת הדוא״ל
+        כדי לאמת את הדוא״ל החדש.
       success: פרטי המשתמש עודכנו בהצלחה.
     destroy:
       success: חשבון נמחק.
@@ -401,14 +407,10 @@ he:
       way_paginated: קווים (%{x}–%{y} מתוך %{count})
       relation: יחסים (%{count})
       relation_paginated: יחסים (%{x}–%{y} מתוך %{count})
-      comment: הערות (%{count})
       hidden_comment_by_html: הערה מוסתרת מאת %{user} %{time_ago}
       comment_by_html: הערה מאת %{user} %{time_ago}
       changesetxml: XML של ערכת השינויים
       osmchangexml: osmChange XML
-      feed:
-        title: ערכת שינויים %{id}
-        title_comment: ערכת שינויים %{id} – %{comment}
       join_discussion: נא להיכנס לחשבון כדי להצטרף לדיון
       discussion: דיון
       still_open: ערכת השינויים עדיין פתוחה – הדיון ייפתח אחרי שערכת השיניים תיסגר.
@@ -494,6 +496,15 @@ he:
       introduction: יש ללחוץ על המפה כדי למצוא ישויות בסביבה.
       nearby: ישויות בסביבה
       enclosing: ישויות מכילות
+  old_nodes:
+    not_found:
+      sorry: לא ניתן למצוא את נקודה מס׳ %{id} בגרסה %{version}, מחילה.
+  old_ways:
+    not_found:
+      sorry: לא ניתן למצוא את דרך מס׳ %{id} בגרסה %{version}, מחילה.
+  old_relations:
+    not_found:
+      sorry: לא ניתן למצוא את יחס מס׳ %{id} בגרסה %{version}, מחילה.
   changesets:
     changeset_paging_nav:
       showing_page: הדף %{page}
@@ -522,6 +533,9 @@ he:
       no_more_area: אין עוד ערכות שינויים באזור הזה.
       no_more_user: אין ערכות שינויים נוספות מאת המשתמש הזה.
       load_more: לטעון עוד
+      feed:
+        title: ערכת שינויים %{id}
+        title_comment: ערכת שינויים %{id} – %{comment}
     timeout:
       sorry: קבלת רשימת ערכות השינויים שביקשת אורכת זמן רב מדי, עמך הסליחה.
   changeset_comments:
@@ -540,6 +554,7 @@ he:
     contact:
       km away: במרחק %{count} ק״מ
       m away: במרחק %{count} מ׳
+      latest_edit_html: 'עריכה אחרונה (%{ago}):'
     popup:
       your location: מיקומך
       nearby mapper: ממפה סמוך
@@ -582,6 +597,7 @@ he:
     show:
       title: היומן של%{user} &rlm; | %{title}
       user_title: היומן של %{user}
+      discussion: דיון
       leave_a_comment: הוספת תגובה
       login_to_leave_a_comment_html: נא %{login_link} כדי להשאיר תגובה
       login: להיכנס
@@ -1180,7 +1196,7 @@ he:
           fjord: פיורד
           forest: יער
           geyser: גייזר
-          glacier: קרחון
+          glacier: קרחון יבשתי
           grassland: ערבה
           heath: בתה
           hill: גבעה
@@ -1515,9 +1531,9 @@ he:
         many: '%{count} דו״חות'
         other: '%{count} דו״חות'
       no_reports: אין דיווחים
-      report_created_at: דיווח ראשון ב־%{datetime}
-      last_resolved_at: נפתר לאחרונה ב־%{datetime}
-      last_updated_at: עדכון אחרון ב־%{datetime} על־ידי %{displayname}
+      report_created_at_html: דיווח ראשון ב־%{datetime}
+      last_resolved_at_html: נפתר לאחרונה ב־%{datetime}
+      last_updated_at_html: עדכון אחרון ב־%{datetime} על־ידי %{displayname}
       resolve: לפתור
       ignore: התעלמות
       reopen: פתיחה מחדש
@@ -1567,10 +1583,10 @@ he:
           threat_label: הערה זו ביומן מכילה איום
           other_label: אחר
         user:
-          spam_label: ×¤×¨×\95פ×\99×\9c ×\9eשת×\9eש ×\96×\94 ×\94×\95×\90\9e×\9b×\99×\9c ×¡×¤×\90×\9d
-          offensive_label: ×¤×¨×\95פ×\99×\9c ×\9eשת×\9eש ×\96×\94 ×\91×\95×\98×\94/פוגעני
-          threat_label: ×¤×¨×\95פ×\99×\9c ×\9eשת×\9eש זה מכיל איום
-          vandal_label: ×\9eשת×\9eש ×\96×\94 משחית
+          spam_label: ×¤×¨×\95פ×\99×\9c ×\94×\9eשת×\9eש ×\94×\96×\94 ×\94×\95×\90 ×¡×¤×\90×\9d (×\90×\95 ×\9e×\9b×\99×\9c ×¡×¤×\90×\9d)
+          offensive_label: ×¤×¨×\95פ×\99×\9c ×\94×\9eשת×\9eש ×\94×\96×\94 ×\91×\95×\98×\94 ×\90×\95 פוגעני
+          threat_label: ×¤×¨×\95פ×\99×\9c ×\94×\9eשת×\9eש ×\94זה מכיל איום
+          vandal_label: ×\94×\9eשת×\9eש ×\94×\96×\94 ×\94×\95×\90 משחית
           other_label: אחר
         note:
           spam_label: הערה זו היא זבל
@@ -1661,7 +1677,7 @@ he:
         %{trace_description} וללא תגיות
     gpx_failure:
       hi: שלום %{to_user},
-      failed_to_import: 'לא יובא כראוי. הנה השגיאה:'
+      failed_to_import: '×\9c×\90 ×\99×\95×\91×\90 ×\9bר×\90×\95×\99. ×\94×\99× ×\94 ×\94ש×\92×\99×\90×\94:'
       more_info_html: מידע על תקלות בייבוא GPX וכיצד להימנע מהן נמצא תחת %{url}.
       subject: '[אופן סטריט מאפ OpenStreetMap] שגיאה בייבוא GPX'
     gpx_success:
@@ -1671,6 +1687,7 @@ he:
         two: נטען בהצלחה עם %{trace_points} נקודות מתוך %{count} נקודות אפשריות.
         many: נטען בהצלחה עם %{trace_points} נקודות מתוך %{count} נקודות אפשריות.
         other: נטען בהצלחה עם %{trace_points} נקודות מתוך %{count} נקודות אפשריות.
+      all_your_traces_html: אפשר למצוא את כל עקבות ה־GPX שלך שהועלו בהצלחה דרך %{url}.
       subject: '[אופן סטריט מאפ OpenStreetMap] ייבוא GPX הצליח'
     signup_confirm:
       subject: '[אופן סטריט מאפ OpenStreetMap] ברוך בואך לאופן סטריט מאפ'
@@ -1761,7 +1778,7 @@ he:
       success: חשבונך אושר, תודה שנרשמת!
       already active: החשבון הזה כבר אושר.
       unknown token: נראה שקוד האישור הזה פג או שאינו קיים.
-      resend_html: אם צריך שנשלח לך שוב את דוא"ל האישור, %{reconfirm_link}.
+      resend_html: אם צריך שנשלח לך שוב את דוא״ל האישור, %{reconfirm_link}.
       click_here: נא ללחוץ כאן
     confirm_resend:
       failure: משתמש %{name} לא נמצא.
@@ -1781,8 +1798,6 @@ he:
   messages:
     inbox:
       title: תיבת דואר נכנס
-      my_inbox: תיבת הדואר הנכנס שלי
-      my_outbox: תיבת הדואר היוצא שלי
       messages: יש לך %{new_messages} ועוד %{old_messages}
       new_messages:
         one: הודעה חדשה אחת
@@ -1790,16 +1805,20 @@ he:
       old_messages:
         one: הודעה ישנה אחת
         other: '%{count} הודעות ישנות'
+      no_messages_yet_html: אין לך הודעות חדשות עדיין. מה דעתך ליצור קשר עם %{people_mapping_nearby_link}?
+      people_mapping_nearby: אנשים ממפים בקרבת מקום
+    messages_table:
       from: מאת
+      to: אל
       subject: נושא
       date: תאריך
-      no_messages_yet_html: אין לך הודעות חדשות עדיין. מה דעתך ליצור קשר עם %{people_mapping_nearby_link}?
-      people_mapping_nearby: אנשים ממפים בקרבת מקום
+      actions: פעולות
     message_summary:
       unread_button: סימון כ„לא נקרא”
       read_button: סימון כ„נקרא”
       reply_button: להשיב
       destroy_button: מחיקה
+      unmute_button: העברה לדואר הנכנס
     new:
       title: שליחת הודעה
       send_message_to_html: לשליחת הודעה חדשה אל %{name}
@@ -1810,19 +1829,22 @@ he:
     no_such_message:
       title: אין הודעה כזאת
       heading: אין הודעה כזאת
-      body: ×\90× ×\95 ×\9eצ×\98ער×\99×\9d, ×\90×\99×\9f ×\94×\95×\93×¢×\94 ×¢×\9d ×\9e×\96×\94×\94 זה.
+      body: ×\90× ×\95 ×\9eצ×\98ער×\99×\9d, ×\90×\99×\9f ×\94×\95×\93×¢×\94 ×¢×\9d ×\94×\9e×\96×\94×\94 ×\94זה.
     outbox:
       title: תיבת דואר יוצא
-      my_inbox: תיבת הדואר הנכנס שלי
-      my_outbox: תיבת הדואר היוצא שלי
+      actions: פעולות
       messages:
         one: יש לך הודעה אחת שנשלחה
         other: יש לך %{count} הודעות שנשלחו
-      to: אל
-      subject: נושא
-      date: תאריך
       no_sent_messages_html: אין לך הודעות נשלחו עד כה. מה דעתך ליצור קשר עם %{people_mapping_nearby_link}?
       people_mapping_nearby: משתתפים הממפים בקרבת מקום
+    muted:
+      title: הודעות מושתקות
+      messages:
+        one: הודעה מושתקת
+        two: יש לך שתי הודעות מושתקות
+        many: יש לך %{count} הודעות מושתקות
+        other: יש לך %{count} הודעות מושתקות
     reply:
       wrong_user: נכנסת בשם „%{user}”, אבל ההודעה שביקשת להשיב עליה לא נשלחה לאותו
         המשתמש. נא להיכנס בחשבון הנכון כדי להשיב.
@@ -1836,28 +1858,38 @@ he:
         נא להיכנס בחשבון הנכון כדי ללקרוא אותה.
     sent_message_summary:
       destroy_button: מחיקה
+    heading:
+      my_inbox: תיבת הדואר הנכנס שלי
+      my_outbox: תיבת הדואר היוצא שלי
+      muted_messages: הודעות מושתקות
     mark:
       as_read: ההודעה סומנה כהודעה שנקראה
       as_unread: ההודעה סומנה כהודעה שלא נקראה
+    unmute:
+      notice: הודעה הועברה לדואר הנכנס
+      error: אי־אפשר להעביר את ההודעה לדואר הנכנס.
     destroy:
       destroyed: ההודעה נמחקה
   passwords:
-    lost_password:
+    new:
       title: הסיסמה הלכה לאיבוד
       heading: שכחת סיסמה?
-      email address: 'כתובת דוא״ל:'
+      email address: כתובת דוא״ל
       new password button: נא לשלוח לי סיסמה חדשה
       help_text: נא להזין את כתובת הדוא״ל שהשתמשת בה כדי להירשם. אנו נשלח אליה קישור
         שאפשר להשתמש בו כדי לאפס את סיסמתך.
+    create:
       notice email on way: אנו מצטערים לשמוע שאיבדת אותה :-( אבל נשלח לדואר האלקטרוני
         שלך מכתב שבאמצעותו אפשר לאפס אותה.
       notice email cannot find: סליחה, הכתובת הזאת לא נמצאה.
-    reset_password:
+    edit:
       title: איפוס סיסמה
       heading: איפוס הסיסמה עבור %{user}
       reset: איפוס הסיסמה
-      flash changed: סיסמתך שונתה.
       flash token bad: לא מצאנו את האסימון ההוא, אולי בדיקת הכתובת תעזור?
+    update:
+      flash changed: סיסמתך שונתה.
+      flash token bad: האסימון לא נמצא, אולי משהו עם הכתובת?
   preferences:
     show:
       title: ההעדפות שלי
@@ -1901,9 +1933,8 @@ he:
     new:
       title: כניסה
       heading: כניסה
-      email or username: 'כתובת דואר אלקטרוני או שם משתמש:'
-      password: 'סיסמה:'
-      openid_html: '%{logo} OpenID:'
+      email or username: כתובת דוא״ל או שם משתמש
+      password: סיסמה
       remember: לזכור אותי
       lost password link: איבדת את הסיסמה שלך?
       login_button: כניסה
@@ -1951,8 +1982,8 @@ he:
       headings: כותרות
       heading: כותרת
       subheading: כותרת משנה
-      unordered: ×¨×©×\99×\9e×\94 ×\91×\9cת×\99Ö¾×\9e×\9e×\95×\99נת
-      ordered: ×¨×©×\99×\9e×\94 ×\9e×\9e×\95×\99× ת
+      unordered: ×¨×©×\99×\9eת ×ª×\91×\9c×\99×\98×\99×\9d
+      ordered: ×¨×©×\99×\9e×\94 ×\9e×\9e×\95ספרת
       first: הפריט הראשון
       second: הפריט השני
       link: קישור
@@ -1960,6 +1991,7 @@ he:
       image: תמונה
       alt: טקסט חלופי
       url: כתובת URL
+      codeblock: קטע קוד
     richtext_field:
       edit: עריכה
       preview: תצוגה מקדימה
@@ -2015,12 +2047,12 @@ he:
       partners_title: שותפים
     copyright:
       foreign:
-        title: ×\90×\95×\93×\95ת ×ª×¨×\92×\95×\9d זה
+        title: ×\90×\95×\93×\95ת ×\94תר×\92×\95×\9d ×\94זה
         html: במקרה של חוסר תאימות בין הדף המתורגם הזה לבין %{english_original_link},
           הדף באנגלית הוא הקובע
         english_link: המקור באנגלית
       native:
-        title: ×\90×\95×\93×\95ת ×\93×£ זה
+        title: ×\90×\95×\93×\95ת ×\94×\93×£ ×\94זה
         html: זהו דף זכויות היוצרים בגרסתו באנגלית. אפשר לחזור ל%{native_link} של
           הדף הזה, ואפשר גם להפסיק לקרוא על זכויות יוצרים ו%{mapping_link}.
         native_link: גרסה העברית
@@ -2059,9 +2091,9 @@ he:
         credit_3_attribution_guidelines: הנחיות ייחוס
         credit_4_1_html: |-
           כדי להבהיר שהנתונים זמינים לפי תנאי רישיון מסד הנתונים הפתוח, באפשרותך לקשר ל%{this_copyright_page_link}.
-          ×\9c×\97×\9c×\95פ×\99×\9f, ×\95×\9b×\93ר×\99ש×\94 ×\90×\9d OSM ×\9e×\95פץ ×¢×\9cÖ¾×\99×\93×\99×\9a ×\91צ×\95רת × ×ª×\95× ×\99×\9d, ×\91×\90פשר×\95ת×\9a ×\9cתת שם ולקשר ישירות לרישיון (או רישיונות). באמצעי אחסון שבהם קישורים אינם אפשריים (למשל עבודות מודפסות), אנו מציעים לך להפנות את הקוראים שלך לאתר openstreetmap.org (אולי על‏‏־ידי הרחבת
-          "OpenStreetMap" לכתובת המלאה הזאת) ולאתר opendatacommons.org.
-          ×\91×\93×\95×\92×\9e×\94 ×\94×\96×\90ת, ×\94קר×\93×\99×\98 ×\9e×\95פ×\99×¢ בפינת המפה.
+          ×\9c×\97×\9c×\95פ×\99×\9f, ×\95×\9b×\93ר×\99ש×\94 ×\90×\9d OSM ×\9e×\95פץ ×¢×\9cÖ¾×\99×\93×\99×\9a ×\91צ×\95רת × ×ª×\95× ×\99×\9d, ×\90פשר ×\9cספק שם ולקשר ישירות לרישיון (או רישיונות). באמצעי אחסון שבהם קישורים אינם אפשריים (למשל עבודות מודפסות), אנו מציעים לך להפנות את הקוראים שלך לאתר openstreetmap.org (אולי על‏‏־ידי הרחבת
+          ‚OpenStreetMap’ לכתובת המלאה הזאת) ולאתר opendatacommons.org.
+          ×\91×\93×\95×\92×\9e×\94 ×\94×\96×\90ת, ×\94ת×\95×\93×\95ת ×\9e×\95פ×\99×¢×\95ת בפינת המפה.
         credit_4_1_this_copyright_page: דף זכויות היוצרים הזה
         attribution_example:
           alt: דוגמה לצורה הנכונה לתת ייחוס ל־OpenStreetMap באתר האינטרנט
@@ -2092,8 +2124,8 @@ he:
         contributors_at_cc_by_at_with_amendments: קריאייטיב קומונז ייחוס אוסטריה עם
           תיקונים
         contributors_au_credit_html: |-
-          %{australia}: ×\9eש×\9c×\91ת ×\90×\95 ×¤×\95ת×\97×\94 ×\91×\90×\9eצע×\95ת ×\92×\91×\95×\9c×\95ת × ×\99×\94×\95×\9c×\99×\99×\9d &copy; %{geoscape_australia_link}
-          ×\91ר×\99ש×\99×\95×\9f הקהילייה של אוסטרליה תחת %{cc_licence_link}.
+          %{australia}: ×\9eש×\9c×\91ת ×\90×\95 ×\9eפ×\95ת×\97ת ×\91×\90×\9eצע×\95ת Administrative Boundariesâ\80\8f &copy;â\80\8f %{geoscape_australia_link}
+          ×\95×\94ר×\99ש×\99×\95×\9f × ×\99ת×\9f ×¢×\9cÖ¾×\99×\93×\99 הקהילייה של אוסטרליה תחת %{cc_licence_link}.
         contributors_au_australia: אוסטרליה
         contributors_au_geoscape_australia: Geoscape אוסטרליה
         contributors_au_cc_licence: רישיון קריאייטיב קומונז ייחוס 4.0 בין־לאומי (CC
@@ -2206,12 +2238,7 @@ he:
         הזאת.
     export:
       title: יצוא
-      area_to_export: האזור לייצוא
       manually_select: בחירה ידנית של אזור אחר
-      format_to_export: תסדיר לייצוא
-      osm_xml_data: נתוני XML של OpenStreetMap
-      map_image: תמונת מפה (תצוגת שכבה תקנית)
-      embeddable_html: HTML שניתן להטמעה
       licence: רישיון
       licence_details_html: נתוני OpenStreetMap מתפרסמים עכשיו לפי רישיון %{odbl_link}
         (ODbL).
@@ -2233,17 +2260,6 @@ he:
         other:
           title: מקורות אחרים
           description: מקורות נוספים רשומים בוויקי של OpenStreetMap
-      options: אפשרויות
-      format: תסדיר
-      scale: קנה מידה
-      max: לכל היותר
-      image_size: גודל התמונה
-      zoom: מרחק מתצוגה
-      add_marker: הוספת סמן למפה
-      latitude: 'קווי אורך:'
-      longitude: 'קווי רוחב:'
-      output: פלט
-      paste_html: להדביק HTML להטמעה באתר
       export_button: יצוא
     fixthemap:
       title: לדווח על בעיה / לתקן את המפה
@@ -2279,16 +2295,13 @@ he:
         url: https://wiki.openstreetmap.org/wiki/He:Beginners%27_guide
         title: המדריך למתחילים
         description: מדריך בתחזוקת הקהילה למתחילים.
-      help:
-        title: ×¤×\95ר×\95×\9d ×\94×¢×\96ר×\94
-        description: ×\9cש×\90×\95×\9c ×©×\90×\9c×\94 ×\90×\95 ×\9c×\97פש ×ª×©×\95×\91×\95ת ×\91×\90תר ×\94ש×\90×\9c×\95ת ×\95×\94תש×\95×\91×\95ת ×©ל OpenStreetMap.
+      community:
+        title: ×¢×\96ר×\94 ×\95פ×\95ר×\95×\9d ×§×\94×\99×\9cת×\99
+        description: ×\9eק×\95×\9d ×\9eש×\95תף ×\9c×\97פש ×¢×\96ר×\94 ×\95×\9c× ×\94×\9c ×©×\99×\97×\95ת ×¢ל OpenStreetMap.
       mailing_lists:
         title: רשימות תפוצה
         description: לשאול שאלה או לדון בדברים מעניינים ברשימות תפוצה נושאים ואזוריות
           רבות.
-      community:
-        title: פורום קהילתי
-        description: מקום משותף לשיחות על OpenStreetMap.
       irc:
         title: IRC
         description: שיחה אינטראקטיבית בשפות שונות רבות ובנושאים רבים.
@@ -2339,67 +2352,83 @@ he:
           primary: כביש ראשי
           secondary: כביש משני
           unclassified: דרך לא מסווגת
+          pedestrian: דרך להולכי רגל
           track: מסלול
           bridleway: מסלול לרכיבת סוסים
           cycleway: דרך לאופניים
           cycleway_national: מסלול אופניים לאומי
           cycleway_regional: מסלול אופניים אזורי
           cycleway_local: מסלול אופניים מקומי
+          cycleway_mtb: מסלול אופני הרים
           footway: שביל להולכי רגל
           rail: מסילת ברזל
+          train: רכבת
           subway: רכבת תחתית
-          tram:
-          - רכבת קלה
-          - חשמלית
-          cable:
-          - רכבל
-          - מעלית סקי
-          runway:
-          - מסלול נחיתה
-          - דרך למוניות
-          apron:
-          - רחבת חניה למטוסים
-          - מסוף
+          ferry: מעבורת
+          light_rail: רכבת קלה
+          tram: חשמלית
+          trolleybus: טרוליבוס
+          bus: אוטובוס
+          cable_car: רכבל
+          chair_lift: רכבל מושבים
+          runway: מסלול נחיתה
+          taxiway: מסלול הסעה
+          apron: רחבת חניה למטוסים
           admin: גבול שטח שיפוט
+          capital: בירה
+          city: עיר
+          orchard: מטע
+          vineyard: כרם
           forest: יער
           wood: חורשה
+          farmland: שטח חקלאי
+          grass: דשא
+          meadow: אחו
+          bare_rock: סלע חשוף
+          sand: חול
           golf: מסלול גולף
           park: פארק
+          common: מרעה
+          built_up: שטח בנוי
           resident: אזור מגורים
-          common:
-          - מרעה
-          - מרעה
-          - גן
           retail: אזור קמעונאי
           industrial: אזור תעשייה
           commercial: אזור מסחרי
           heathland: שדה פרא
-          lake:
-          - אגם
-          - מאגר
+          scrubland: בתה
+          lake: אגם
+          reservoir: מאגר
+          intermittent_water: גוף מים תקופתי
+          glacier: קרחון יבשתי
+          reef: שונית
+          wetland: ביצה
           farm: חווה
           brownfield: אזור תעשייה נטוש
           cemetery: בית עלמין
           allotments: שטחים חקלאיים
           pitch: מגרש ספורט
           centre: מרכז ספורט
+          beach: חוף
           reserve: שמורת טבע
           military: שטח צבאי
-          school:
-          - בית ספר
-          - אוניברסיטה
+          school: בית ספר
+          university: אוניברסיטה
+          hospital: בית חולים
           building: בניין בעל חשיבות
           station: תחנת רכבת
-          summit:
-          - פסגה
-          - פסגה
+          summit: פסגה
+          peak: פסגה
           tunnel: קו מקווקו = מנהרה
           bridge: קו שחור = גשר
           private: גישה פרטית
           destination: גישה ליעד
           construction: דרכים בבנייה
+          bus_stop: תחנת אוטובוס
+          stop: עצירה
           bicycle_shop: חנות אופניים
+          bicycle_rental: השכרת אופניים
           bicycle_parking: חניית אופניים
+          bicycle_parking_small: חניית אופניים קטנה
           toilets: שירותים
     welcome:
       title: ברוך בואך!
@@ -2412,13 +2441,13 @@ he:
           הוא מכיל מיליוני מבנים, דרכים ופרטים אחרים על מקומות. אפשר למפות כל ישות
           מהעולם האמיתי שמעניינת אותך.
         real_and_current: אמיתיים ונוכחיים
-        off_the_map_html: ×\9e×\94 ×©%{doesnt} ×¤×\94 ×\96×\94 מידע דעתני כמו דירוגים, מקומות היסטוריים
+        off_the_map_html: ×\9e×\94 ×©%{doesnt} ×¤×\94 ×\94×\95×\90 מידע דעתני כמו דירוגים, מקומות היסטוריים
           או היפותטיים ונתונים ומקורות שמוגבלים בזכויות יוצרים. אנו דורשים ממך לא
           להוסיף מידע ממפות מקוונות או מודפסות אלא אם יש לך אישור מיוחד לכך.
-        doesnt: ×\90×\99× ×\95
+        doesnt: ×\9c×\90 × ×\9eצ×\90
       basic_terms:
         title: מונחים בסיסיים למיפוי
-        paragraph_1: ×\9c×\9e×\99×\96×\9d OpenStreetMap ×\99ש ×¢×\92×\94 ×\9eש×\9c×\95. ×\94× ×\94 ×\9eספר מילות מפתח שיהיו שימושיות.
+        paragraph_1: ×\9c×\9e×\99×\96×\9d OpenStreetMap ×\99ש ×¢×\92×\94 ×\9eש×\9c×\95. ×\94×\99× ×\94 ×\9b×\9e×\94 מילות מפתח שיהיו שימושיות.
         an_editor_html: '%{editor} הוא תוכנה או אתר שבאפשרותך להשתמש בה לעריכת המפה.'
         a_node_html: '%{node} היא נקודה במפה, כמו מסעדה בודדת או עץ.'
         a_way_html: '%{way} היא קו או שטח, כגון כביש, יובל, נחל או בניין.'
@@ -2436,6 +2465,7 @@ he:
         imports: מחזורי יבוא
         automated_edits: עריכות אוטומטית
       start_mapping: להתחיל למפות
+      continue_authorization: המשך האישור
       add_a_note:
         title: אין לך זמן לערוך? אפשר להוסיף הערה!
         para_1: אם רק רצית לתקן משהו קטן ואין לך זמן להירשם וללמוד איך לערוך, קל להוסיף
@@ -2550,7 +2580,7 @@ he:
       upload_trace: העלאת מסלול
       all_traces: כל המסלולים
       my_traces: המסלולים שלי
-      traces_from: מסלולים ציבוריים מ-%{user}
+      traces_from: מסלולים ציבוריים מאת %{user}
       remove_tag_filter: הסרת סינון לפי תג
     destroy:
       scheduled_for_deletion: מסלול מיועד למחיקה
@@ -2586,6 +2616,7 @@ he:
       oauth1_settings: הגדרות OAuth 1
       oauth2_applications: יישומי OAuth 2
       oauth2_authorizations: אישורי OAuth 2
+      muted_users: משתמשים מושתקים
   oauth:
     authorize:
       title: אישור הגישה לחשבון שלך
@@ -2622,11 +2653,13 @@ he:
       read_gpx: לקרוא את מסלולי ה־GPS הפרטיים שלך
       write_gpx: להעלות מסלולי GPS
       write_notes: לשנות הערות
+      write_redactions: שינוי נתוני המפה
       read_email: לקרוא את כתובת הדוא"ל של המשתמש
       skip_authorization: לאשר את היישום אוטומטית
   oauth_clients:
     new:
       title: רישון יישום חדש
+      disabled: רישום יישומי OAuth 1 הושבת
     edit:
       title: עריכת היישום שלך
     show:
@@ -2706,6 +2739,7 @@ he:
       title: האפליקציות המורשות שלי
       application: אפליקציה
       permissions: הרשאות
+      last_authorized: אושר בפעם האחרונה
       no_applications_html: לא אישרת עדיין יישומי %{oauth2}.
     application:
       revoke: שלילת גישה
@@ -2726,7 +2760,7 @@ he:
       display name description: שם המשתמש שלך, שמוצג בפומבי. אפשר לשנות את זה בהעדפות
         שלך.
       external auth: 'אימות עם צד שלישי:'
-      use external auth: '×\9c×\97×\9c×\95פ×\99×\9f, ×\94שת×\9eש×\95 ×\91צד שלישי כדי להיכנס:'
+      use external auth: '×\9c×\97×\9c×\95פ×\99×\9f, ×\90פשר ×\9c×\94שת×\9eש ×\91×\92×\95ר×\9e×\99 צד שלישי כדי להיכנס:'
       auth no password: עם אימות צד שלישי אין צורך בסיסמה, אבל כלים נוספים או שרת
         יכולים להזדקק לכזה.
       continue: הרשמה
@@ -2734,15 +2768,16 @@ he:
       email_confirmation_help_html: הכתובת שלך אינה מוצגת בפומבי, ר' את %{privacy_policy_link}
         שלנו למידע נוסף.
       privacy_policy: מדיניות הפרטיות
-      privacy_policy_title: מדיניות הפרטיות של OSMF כולל סעיף על כתובות דוא"ל
+      privacy_policy_title: מדיניות הפרטיות של OSMF כוללת סעיף על כתובות דוא״ל
     terms:
       title: תנאים
       heading: תנאים
       heading_ct: תנאי התנדבות
       read and accept with tou: נא לקרוא את הסכם המתנדבים ואת תנאי השימוש, יש לסמן
         את שתי התיבות עם הסיום ואז ללחוץ על כפתור ההמשך.
-      contributor_terms_explain: הסכם זה מאגד את תנאי התרומות הקיימות והעתידיות שלך.
-      read_ct: קראתי את תנאי התורמים לעיל ואני מסכימ/ה לתנאים אלו
+      contributor_terms_explain: ההסכם הזה מגדיר את התנאים של התרומות הקיימות והעתידיות
+        שלך.
+      read_ct: קראתי את תנאי התורמים לעיל והסכמתי איתם
       tou_explain_html: '%{tou_link} האלה מאגדים את תנאי השימוש באתר ובתשתית נוספת
         שמסופקת על־ידי ה־OSMF. נא ללחוץ על הקישור, לקרוא ולהסכים לטקסט.'
       read_tou: קראתי את תנאי השימוש ואני מסכימ/ה לתנאים אלו
@@ -2786,6 +2821,8 @@ he:
       my_dashboard: לוח הבקרה שלי
       blocks on me: מתי חסמו אותי
       blocks by me: מתי חסמתי
+      create_mute: השתקת המשתמש הזה
+      destroy_mute: ביטול השתקת המשתמש הזה
       edit_profile: עריכת פרופיל
       send message: שליחת הודעה
       diary: יומן
@@ -2799,31 +2836,34 @@ he:
       ct status: 'תנאי תרומה:'
       ct undecided: עוד אין החלטה
       ct declined: נדחו
-      latest edit: 'עריכה אחרונה (%{ago}):'
       email address: 'כתובת דוא״ל:'
       created from: 'נוצר מתוך:'
       status: 'מצב:'
       spam score: 'דירוג זיבול:'
       role:
-        administrator: לחשבון הזה יש הרשאות מפעיל
-        moderator: זהו חשבון מנהל
+        administrator: לחשבון הזה יש הרשאות מנהל
+        moderator: זהו חשבון מפקח
+        importer: זהו חשבון מייבא
         grant:
-          administrator: הענקת הרשאות מפעיל
-          moderator: הענקת הרשאות מנהל
+          administrator: הענקת הרשאות מנהל
+          moderator: הענקת הרשאות מפקח
+          importer: הענקת הרשאות מייבא
         revoke:
-          administrator: שלילת הרשאות מפעיל
-          moderator: שלילת הרשאות מנהל
+          administrator: שלילת הרשאות מנהל
+          moderator: שלילת הרשאות מפקח
+          importer: שלילת הרשאות מייבא
       block_history: חסימות פעילות
       moderator_history: חסימות שניתנו
+      revoke_all_blocks: ביטול כל החסימות
       comments: הערות
-      create_block: ×\97ס×\99×\9eת ×\9eשת×\9eש זה
-      activate_user: ×\94פע×\9cת ×\9eשת×\9eש זה
-      confirm_user: ×\90×\99ש×\95ר ×\9eשת×\9eש זה
+      create_block: ×\97ס×\99×\9eת ×\94×\9eשת×\9eש ×\94זה
+      activate_user: ×\94פע×\9cת ×\94×\9eשת×\9eש ×\94זה
+      confirm_user: ×\90×\99ש×\95ר ×\94×\9eשת×\9eש ×\94זה
       unconfirm_user: ביטול אישור המשתמש הזה
       unsuspend_user: ביטול השעיית המשתמש הזה
-      hide_user: ×\94סתרת ×\9eשת×\9eש זה
-      unhide_user: ×\91×\99×\98×\95×\9c ×\94סתרת ×\9eשת×\9eש זה
-      delete_user: ×\9e×\97×\99קת ×\9eשת×\9eש זה
+      hide_user: ×\94סתרת ×\94×\9eשת×\9eש ×\94זה
+      unhide_user: ×\91×\99×\98×\95×\9c ×\94סתרת ×\94×\9eשת×\9eש ×\94זה
+      delete_user: ×\9e×\97×\99קת ×\94×\9eשת×\9eש ×\94זה
       confirm: אישור
       report: דיווח על המשתמש
     go_public:
@@ -2864,7 +2904,7 @@ he:
       not_a_role: המחרוזת „%{role}” אינה תפקיד תקין.
       already_has_role: למשתמש כבר יש תפקיד %{role}.
       doesnt_have_role: למשתמש אין תפקיד %{role}.
-      not_revoke_admin_current_user: ×\9c×\90 × ×\99ת×\9f ×\9cש×\9c×\95×\9c ×\94רש×\90×\95ת ×\9eפע×\99ל מהמשתמש הנוכחי.
+      not_revoke_admin_current_user: ×\9c×\90 × ×\99ת×\9f ×\9cש×\9c×\95×\9c ×\94רש×\90×\95ת ×\9e× ×\94ל מהמשתמש הנוכחי.
     grant:
       title: לאשר הענקת תפקיד
       heading: לאשר הענקת תפקיד
@@ -2881,8 +2921,8 @@ he:
         תקינים.
   user_blocks:
     model:
-      non_moderator_update: ×¦×¨×\99×\9a ×\9c×\94×\99×\95ת ×\9e× ×\94×\9c כדי ליצור או לעדכן חסימה.
-      non_moderator_revoke: ×¦×¨×\99×\9a ×\9c×\94×\99×\95ת ×\9e× ×\94×\9c כדי לבטל חסימה.
+      non_moderator_update: ×¦×¨×\99×\9a ×\9c×\94×\99×\95ת ×\9eפק×\97 כדי ליצור או לעדכן חסימה.
+      non_moderator_revoke: ×¦×¨×\99×\9a ×\9c×\94×\99×\95ת ×\9eפק×\97 כדי לבטל חסימה.
     not_found:
       sorry: סליחה, החסימה עם המזהה %{id} לא נמצאה.
       back: חזרה למפתח
@@ -2903,7 +2943,7 @@ he:
     create:
       flash: נוצרה חסימה על חשבון %{name}
     update:
-      only_creator_can_edit: ×¨×§ ×\94×\9e× ×\94×\9c שיצר את החסימה הזאת יכול לערוך אותה.
+      only_creator_can_edit: ×¨×§ ×\94×\9eפק×\97 שיצר את החסימה הזאת יכול לערוך אותה.
       success: החסימה עודכנה.
     index:
       title: חסימות משתמש
@@ -2912,11 +2952,23 @@ he:
     revoke:
       title: בוטלה החסימה על %{block_on}
       heading_html: ביטול החסימה של %{block_on} על־ידי %{block_by}
-      time_future: החסימה תסתיים ב־%{time}.
-      past: החסימה הזאת הסתיימה ב־%{time} ואי־אפשר לבטל אותה.
+      time_future_html: החסימה תסתיים ב־%{time}.
+      past_html: החסימה הזאת הסתיימה ב־%{time} ואי־אפשר לבטל אותה.
       confirm: האם ברצונך לבטל את החסימה הזאת?
       revoke: לבטל!
       flash: החסימה הזאת בוטלה.
+    revoke_all:
+      title: הסרת כל החסימות של %{block_on}
+      heading_html: הסרת כל החסימות של %{block_on}
+      empty: אין חסימות של %{name}.
+      confirm: האם ברצונך להסיר %{active_blocks}?
+      active_blocks:
+        one: חסימה פעילה
+        two: שתי חסימות פעילות
+        many: '%{count} חסימות פעילות'
+        other: '%{count} חסימות פעילות'
+      revoke: להסיר!
+      flash: כל החסימות הפעילות הוסרו.
     helper:
       time_future_html: תסתיים בעוד %{time}
       until_login: פעילה עד שהמשתמש ייכנס לחשבון.
@@ -2984,6 +3036,32 @@ he:
       showing_page: הדף %{page}
       next: הבא »
       previous: « הקודם
+  user_mutes:
+    index:
+      title: משתמשים מושתקים
+      my_muted_users: המשתמשים המושתקים שלי
+      you_have_muted_n_users:
+        one: השתקת משתמש אחד
+        two: השתקת שני משתמשים
+        many: השתקת %{count} משתמשים
+        other: השתקת %{count} משתמשים
+      user_mute_explainer: הודעות של משתמשים מושתקים מועברות לתיבת דואר נפרדת ולא
+        תישלחנה אליך התראות בדוא״ל.
+      user_mute_admins_and_moderators: אפשר להשתיק מנהלים ומפקחים אבל ההודעות שלהם
+        לא יושתקו.
+      table:
+        thead:
+          muted_user: משתמש מושתק
+          actions: פעולות
+        tbody:
+          unmute: ביטול השתקה
+          send_message: שליחת הודעה
+    create:
+      notice: השתקת את %{name}.
+      error: לא היה אפשר להשתיק את %{name}.‏ %{full_message}
+    destroy:
+      notice: ביטלת את ההשתקה של %{name}.
+      error: לא היה אפשר לבטל את השתקת המשתמש. נא לנסות שוב.
   notes:
     index:
       title: הערות ותגובות של %{user}
@@ -3020,6 +3098,7 @@ he:
       reactivate: הפעלה מחדש
       comment_and_resolve: להגיב ולפתור
       comment: להגיב
+      log_in_to_comment: יש להיכנס כדי להגיב על ההערה הזאת
       report_link_html: אם ההערה הזאת מכילה מידע רגיש שיש להסיר, אפשר %{link}.
       other_problems_resolve: עבור כל שאר הבעיות עם ההערה, נא לפתור אותה בעצמך באמצעות
         הערה.
@@ -3077,12 +3156,10 @@ he:
           other: המרחק שלך מהנקודה הזאת הוא עד %{count} רגל
       base:
         standard: תקני
-        cyclosm: CyclOSM
         cycle_map: מפת אופניים
         transport_map: מפת תחבורה
         tracestracktop_topo: טופוגרפיה של Tracestrack
         hot: הומניטרי
-        opnvkarte: ÖPNVKarte
       layers:
         header: שכבות במפה
         notes: הערות במפה
@@ -3097,8 +3174,6 @@ he:
       osm_france: OpenStreetMap צרפת
       thunderforest_credit: אריחים באדיבות %{thunderforest_link}
       andy_allan: אנדי אלן
-      opnvkarte_credit: אריחים באדיבות %{memomaps_link}
-      memomaps: ממומאפס
       tracestrack_credit: האריחים באדיבות %{tracestrack_link}
       hotosm_credit: סגנון אריחים מאת %{hotosm_link} מתארח אצל %{osm_france_link}
       hotosm_name: צוות OpenStreetMap הומניטרי
@@ -3107,10 +3182,11 @@ he:
       edit_disabled_tooltip: להתקרב כדי לערוך את המפה
       createnote_tooltip: הוספת הערה למפה
       createnote_disabled_tooltip: נא להתקרב כדי להוסיף הערה למפה
-      map_notes_zoom_in_tooltip: ×\94תקר×\91×\95ת כדי לראות הערות על המפה
-      map_data_zoom_in_tooltip: ×\99ש ×\9cקר×\91 ×\90ת ×\94×\9eפ×\94 כדי לראות נתוני מפה
+      map_notes_zoom_in_tooltip: ×\99ש ×\9c×\94תקר×\91 כדי לראות הערות על המפה
+      map_data_zoom_in_tooltip: ×\99ש ×\9c×\94תקר×\91 כדי לראות נתוני מפה
       queryfeature_tooltip: שאילתת ישויות
-      queryfeature_disabled_tooltip: תקריב כדי להריץ שאילתת ישויות
+      queryfeature_disabled_tooltip: יש להתקרב כדי להריץ שאילתת ישויות
+      embed_html_disabled: הטבעת HTML אינה זמינה בשכבת המפה הזאת
     changesets:
       show:
         comment: להגיב
index 36d0cfcb4c2aef06162df32512e8d429a4d50510..baf8275ce44ad7897a6d47f801d7307251814078 100644 (file)
@@ -215,8 +215,8 @@ hi:
         one: '%{count} महीने पहले'
         other: '%{count} महीने पहले'
       x_years:
-        one: '%{count} à¤¸à¤¾à¤² पहले'
-        other: '%{count} à¤¸à¤¾à¤² पहले'
+        one: '%{count} à¤µà¤°à¥\8dष पहले'
+        other: '%{count} à¤µà¤°à¥\8dष पहले'
   editor:
     default: डिफ़ॉल्ट (currently %{name})
     id:
@@ -228,7 +228,6 @@ hi:
   auth:
     providers:
       none: कुछ नहीं
-      openid: OpenID
       google: गूगल
       facebook: फेसबुक
       microsoft: विन्डोज़ लाइव
@@ -307,12 +306,8 @@ hi:
       way_paginated: रास्तें (%{count} का %{x}-%{y})
       relation: सम्बन्ध (%{count})
       relation_paginated: सम्बन्ध (%{count} के %{x}-%{y})
-      comment: जवाब (%{count})
       changesetxml: Changeset XML
       osmchangexml: osmChange XML
-      feed:
-        title: 'Changeset: %{id}'
-        title_comment: Changeset %{id} - %{comment}
       join_discussion: चर्चा में भाग लेने के लिए लॉग इन करें
       discussion: चर्चा
       still_open: चेंजसेट अभी भी खुला - चेंजसेट के एक बार बंद होने के पश्चात चर्चा
@@ -420,6 +415,9 @@ hi:
       no_more_area: इस इलाके में और कोई चेंजसेट नहीं है।
       no_more_user: इस सदस्य द्वारा कोई चेंजसेट नहीं है।
       load_more: और पढ़ें
+      feed:
+        title: 'Changeset: %{id}'
+        title_comment: Changeset %{id} - %{comment}
     timeout:
       sorry: माफ़ कीजिए, जिन चेंजसेट की आपने अनुरोध की थी उन्हें लाने में कुछ ज़्यादा
         ही वक्त लग गया।
@@ -465,6 +463,7 @@ hi:
     show:
       title: '%{user} की डायरी | %{title}'
       user_title: '%{user}''s की डायरी'
+      discussion: चर्चा
       leave_a_comment: अपने विचार व्यक्त करें
       login_to_leave_a_comment_html: सत्रारंभ यहाँ %{login_link}, एक टिप्पणी लिखिने
         के लिए
@@ -930,10 +929,10 @@ hi:
     destroy:
       destroyed: संदेश खात्मा
   passwords:
-    lost_password:
+    new:
       title: lost password
       new password button: Send me a new password
-    reset_password:
+    edit:
       title: reset password
   profiles:
     edit:
@@ -944,6 +943,9 @@ hi:
       home location: घर का स्थान
       show: दिखाएँ
       delete: हटाएँ
+  sessions:
+    new:
+      password: पासवर्ड
   site:
     about:
       legal_1_1_terms_of_use: उपयोग की शर्तें
@@ -954,9 +956,7 @@ hi:
         contributors_title_html: हमारे योगदानकर्ता
         contributors_rs_serbia: सर्बिया
     export:
-      area_to_export: क्षेत्र निर्यात करने के लिए
       manually_select: कृपया, आप एक अलग क्षेत्र चुनिए
-      format_to_export: स्वरूप निर्यात करने के लिए
       licence: लाइसेंस
     fixthemap:
       how_to_help:
@@ -983,26 +983,27 @@ hi:
           footway: पगडंडी
           rail: रेलवे
           subway: उपमार्ग
-          cable:
-          - केबल कार
-          runway:
-          - एयरपोर्ट रनवे
+          bus: बस
+          cable_car: केबल कार
+          runway: एयरपोर्ट रनवे
           forest: वन
           wood: लकड़ी
+          grass: घास
+          sand: रेत
           golf: गोल्फ मैदान
           park: पार्क
           resident: रिहायशी क्षेत्र
           industrial: औद्योगिक क्षेत्र
-          lake:
-          - झील
+          lake: झील
           farm: खेत
           cemetery: कब्रिस्तान
           allotments: आवंटन
-          school:
-          - पाठशाला
-          - विश्वविद्यालय
+          school: पाठशाला
+          university: विश्वविद्यालय
+          hospital: अस्पताल
           building: महत्वपूर्ण भवन
           station: रेलवे स्टेशन
+          stop: रोकें
   traces:
     new:
       visibility_help: इसका क्या मतलब है?
index f916c38e921658199cfac3b93f21a5d5d65fc5c8..561b5464172419164878bf7272511b9b107de9d6 100644 (file)
@@ -208,7 +208,6 @@ hr:
   auth:
     providers:
       none: Nijedan
-      openid: OpenID
       google: Google
       facebook: Facebook
       github: GitHub
@@ -295,12 +294,8 @@ hr:
       way_paginated: Putovi(%{x}-%{y} od %{count})
       relation: Relacije (%{count})
       relation_paginated: Relacije(%{x}-%{y} od %{count})
-      comment: Komentari (%{count})
       changesetxml: XLM Set promjena
       osmchangexml: osmChange XML
-      feed:
-        title: Set promjena %{id}
-        title_comment: Set promjena %{id} - %{comment}
       join_discussion: Prijavi se za uključivanje u raspravu
       discussion: Razgovor
     node:
@@ -404,6 +399,9 @@ hr:
       no_more_area: Nema više paketa uređivanja na ovom području.
       no_more_user: Nema više setova promjena ovog korisnika.
       load_more: Učitaj više
+      feed:
+        title: Set promjena %{id}
+        title_comment: Set promjena %{id} - %{comment}
     timeout:
       sorry: Nažalost, preuzimanje popisa setova promjena predugo traje.
   changeset_comments:
@@ -419,6 +417,7 @@ hr:
     contact:
       km away: udaljen %{count}km
       m away: '%{count}m daleko'
+      latest_edit_html: 'Najnovija izmjena (%{ago}):'
     popup:
       your location: Vaša lokacija
       nearby mapper: Obližnji maper
@@ -1134,7 +1133,6 @@ hr:
   messages:
     inbox:
       title: Dolazna pošta
-      my_inbox: Dolazna pošta
       messages: Imate %{new_messages} i %{old_messages}
       new_messages:
         one: '%{count} nova poruka'
@@ -1142,12 +1140,14 @@ hr:
       old_messages:
         one: '%{count} stara poruka'
         other: '%{count} stare poruke'
-      from: Od
-      subject: Tema
-      date: Datum
       no_messages_yet_html: Još nemate poruka. Zašto nebi stupili u kontakt s nekim
         ljudima iz okolice %{people_mapping_nearby_link}?
       people_mapping_nearby: obližnji ljudi koji mapiraju
+    messages_table:
+      from: Od
+      to: Za
+      subject: Tema
+      date: Datum
     message_summary:
       unread_button: Označi kao nepročitano
       read_button: Označi kao pročitano
@@ -1170,9 +1170,6 @@ hr:
       messages:
         one: Imate %{count} poslanu poruku
         other: Imate %{count} poslane poruke
-      to: Za
-      subject: Tema
-      date: Datum
       no_sent_messages_html: Još niste poslali ni jednu poruku. Zašto ne biste stupili
         u kontakt s %{people_mapping_nearby_link}?
       people_mapping_nearby: obližnji ljudi koji mapiraju
@@ -1191,28 +1188,32 @@ hr:
         kao ispravan korisnik kako bi ste pročitali.'
     sent_message_summary:
       destroy_button: Obriši
+    heading:
+      my_inbox: Dolazna pošta
     mark:
       as_read: Poruka označena pročitanom
       as_unread: Poruka označena nepročitanom
     destroy:
       destroyed: Poruka obrisana
   passwords:
-    lost_password:
+    new:
       title: Izgubljena zaporka
       heading: Zaboravljena zaporka?
       email address: 'Email adresa:'
       new password button: Reset lozinke
       help_text: Unesite email adresu koju ste koristili za otvaranje računa i poslati
         ćemo vam poveznicu kojom možete resetirati zaporku.
+    create:
       notice email on way: Žao mi je što ste je izgubili :-( ali email je na putu
         tako da je možete resetirati uskoro.
       notice email cannot find: Ne mogu pronaći email adresu.
-    reset_password:
+    edit:
       title: Reset lozinke
       heading: Reset lozinke za %{user}
       reset: Reset lozinke
-      flash changed: Vaša lozinka je promjenjena.
       flash token bad: Nije pronađen takav token, provjeri URL?
+    update:
+      flash changed: Vaša lozinka je promjenjena.
   profiles:
     edit:
       image: 'Slika:'
@@ -1232,7 +1233,6 @@ hr:
       heading: Prijava
       email or username: 'Email adresa ili korisničko ime:'
       password: 'Lozinka:'
-      openid_html: '%{logo} OpenID:'
       remember: Zapamti me
       lost password link: Izgubljena zaporka?
       login_button: Prijava
@@ -1342,12 +1342,7 @@ hr:
         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: HTML kod za umetanje
       licence: Dozvola
       too_large:
         advice: 'Ako gornji izvoz podataka ne uspije, molim pokušaj sa nekim od izvora
@@ -1369,25 +1364,12 @@ hr:
         other:
           title: Drugi izvori
           description: Dodatni izvori su navedeni na wiki stranici OpenStreetMap-a
-      options: Opcije
-      format: Format
-      scale: Mjerilo
-      max: max
-      image_size: Veličina slike
-      zoom: Približenje
-      add_marker: Dodaj marker na kartu
-      latitude: 'Lat:'
-      longitude: 'Lon:'
-      output: Izlaz
-      paste_html: Zalijepi HTML za ugrađivanje na web stranicu
       export_button: Export
     help:
       welcome:
         title: Dobrodošao/la na OSM
       beginners_guide:
         url: http://wiki.openstreetmap.org/wiki/Hr:Beginners%27_guide
-      help:
-        title: help.openstreetmap.org
       wiki:
         title: wiki.openstreetmap.org
     any_questions:
@@ -1422,34 +1404,24 @@ hr:
           footway: Pješačka staza
           rail: Željeznica
           subway: Podzemna željeznica
-          tram:
-          - Laka željeznica
-          - tramvaj
-          cable:
-          - Kabinska žičara
-          - sedežnica
-          runway:
-          - Aerodromska pista
-          - aerodromske ceste (za avione)
-          apron:
-          - Parking za avione (apron)
-          - terminal
+          cable_car: Kabinska žičara
+          chair_lift: sedežnica
+          runway: Aerodromska pista
+          taxiway: aerodromske ceste (za avione)
+          apron: Parking za avione (apron)
           admin: Administrativna granica
           forest: Šuma (održavane, od šumarije)
           wood: Šume (prirodne, neodržavane)
           golf: Golf teren
           park: Park
+          common: Travnjaci
           resident: Stambeno područje
-          common:
-          - Travnjaci
-          - livade
           retail: Maloprodajno područje
           industrial: Industrijsko područje
           commercial: Poslovno područje
           heathland: Gustiš, makija, grmlje
-          lake:
-          - Jezero
-          - rezervoar
+          lake: Jezero
+          reservoir: rezervoar
           farm: Polja, farme, njive
           brownfield: Gradilište
           cemetery: Groblje
@@ -1458,14 +1430,12 @@ hr:
           centre: Sportski  centar
           reserve: Rezervat prirode
           military: Vojno područje
-          school:
-          - Škola
-          - Sveučilište
+          school: Škola
+          university: Sveučilište
           building: Zgrada
           station: Željeznički kolodvor
-          summit:
-          - Vrh
-          - vrhunac
+          summit: Vrh
+          peak: vrhunac
           tunnel: Iscrtkani rubovi = tunel
           bridge: Crni rubovi = most
           private: Privatni pristup
@@ -1688,7 +1658,6 @@ hr:
       ct status: 'Uvjeti doprinositelja:'
       ct undecided: Neopredjeljen
       ct declined: Odbio
-      latest edit: 'Najnovija izmjena (%{ago}):'
       email address: 'Email adresa:'
       created from: 'Napravljeno iz:'
       status: 'Stanje:'
@@ -1783,8 +1752,8 @@ hr:
     revoke:
       title: Opozivanje blokade na %{block_on}
       heading_html: Opozivanje blokade na %{block_on} od %{block_by}
-      time_future: Blokada će završiti za %{time}.
-      past: Blokada je završila u %{time} i ne može se sada opozvati.
+      time_future_html: Blokada će završiti za %{time}.
+      past_html: Blokada je završila u %{time} i ne može se sada opozvati.
       confirm: Jeste li sigurni da želite opozvati ovu blokadu?
       revoke: Opozovi!
       flash: Ova blokada je opozvana.
index 9c28c2cada880a5da3af63644fcac64913521b97..20dd33bd1781dd10f4416e828eb21b5d9265c40d 100644 (file)
@@ -234,7 +234,6 @@ hsb:
   auth:
     providers:
       none: Žane
-      openid: OpenID
       google: Google
       facebook: Facebook
       github: GitHub
@@ -336,12 +335,8 @@ hsb:
       way_paginated: Puće (%{x}-%{y} z %{count})
       relation: Relacije (%{count})
       relation_paginated: Relacije (%{x}-%{y} z %{count})
-      comment: Komentary (%{count})
       changesetxml: Sadźba změnow XML
       osmchangexml: osmChange XML
-      feed:
-        title: Sadźba změnow %{id}
-        title_comment: Sadźba změnow %{id} - %{comment}
       join_discussion: Přizjew so, zo by móhł(a) sobu diskutować
       discussion: Diskusija
       still_open: Sadźba změnow je hišće wočinjena. Diskusija so wočinja, ručež je
@@ -454,6 +449,9 @@ hsb:
       no_more_area: Žane dalše sadźby změnow w tutej kónčinje.
       no_more_user: Žane dalše sadźby změnow wot tutoho wužiwarja.
       load_more: Wjace začitać
+      feed:
+        title: Sadźba změnow %{id}
+        title_comment: Sadźba změnow %{id} - %{comment}
     timeout:
       sorry: Bohužel je předołho trało, požadanu lisćinu změnow wotwołać.
   changeset_comments:
@@ -471,6 +469,7 @@ hsb:
     contact:
       km away: '%{count} km zdaleny'
       m away: '%{count} m zdaleny'
+      latest_edit_html: 'Najnowša změna (%{ago}):'
     popup:
       your location: Twoje městno
       nearby mapper: Kartěrowar w bliskosći
@@ -1362,9 +1361,9 @@ hsb:
         zero: Žane rozprawy
         one: Jedna rozprawa
         other: '%{count} rozprawje'
-      report_created_at: Prěni raz rozprawjene dnja %{datetime}
-      last_resolved_at: Posledni raz rozrisany dnja %{datetime}
-      last_updated_at: Posledni raz aktualizowany dnja %{datetime} wot %{displayname}
+      report_created_at_html: Prěni raz rozprawjene dnja %{datetime}
+      last_resolved_at_html: Posledni raz rozrisany dnja %{datetime}
+      last_updated_at_html: Posledni raz aktualizowany dnja %{datetime} wot %{displayname}
       resolve: Rozrisać
       ignore: Ignorować
       reopen: Zaso wočinić
@@ -1634,8 +1633,6 @@ hsb:
   messages:
     inbox:
       title: Póštowy kašćik
-      my_inbox: Moja póšta
-      my_outbox: Mój póstowy wuchad
       messages: Maš %{new_messages} a %{old_messages}
       new_messages:
         few: '%{count} nowe powěsće'
@@ -1647,12 +1644,14 @@ hsb:
         one: '%{count} staru powěsć'
         two: '%{count} starej powěsći'
         other: '%{count} starych powěsćow'
-      from: Wot
-      subject: Tema
-      date: Datum
       no_messages_yet_html: Hišće nimaš powěsće. Chceš z %{people_mapping_nearby_link}
         styki nawjazać?
       people_mapping_nearby: ludźimi, kotřiž w bliskosći kartěruja
+    messages_table:
+      from: Wot
+      to: Komu
+      subject: Tema
+      date: Datum
     message_summary:
       unread_button: Jako njepřečitanu markěrować
       read_button: Jako přečitanu markěrować
@@ -1672,16 +1671,11 @@ hsb:
       body: Bohužel njeje powěsć z tutej ID.
     outbox:
       title: Pósłane
-      my_inbox: Mój póstowy dochad
-      my_outbox: Mój póstowy wuchad
       messages:
         few: Sy %{count} powěsće pósłał(a)
         one: Sy %{count} powěsć pósłał(a)
         two: Sy %{count} powěsći pósłał(a)
         other: Sy  %{count} powěsćow pósłał(a)
-      to: Komu
-      subject: Tema
-      date: Datum
       no_sent_messages_html: Hišće njejsy žane powěsće pósłał(a). Chceš z %{people_mapping_nearby_link}
         styki nawjazać?
       people_mapping_nearby: ludźimi, kotřiž w bliskosći kartěruja
@@ -1698,28 +1692,33 @@ hsb:
         na druheho wužiwarja pósłana. Prošu přizjew so z prawym kontom, zo by ju čitał(a).
     sent_message_summary:
       destroy_button: Wotstronić
+    heading:
+      my_inbox: Moja póšta
+      my_outbox: Mój póstowy wuchad
     mark:
       as_read: Powěsć jako přečitanu markěrowana
       as_unread: Powěsć jako njepřečitanu markěrowana
     destroy:
       destroyed: Powěsć wotstronjena
   passwords:
-    lost_password:
+    new:
       title: Hesło zabyte
       heading: Sy hesło zabył?
       email address: 'E-mejlowa adresa:'
       new password button: Hesło wróćo stajić
       help_text: Zapódaj mejlowu adresu, kotruž sy za registrowanje wužił, pósćelemy
         wotkaz na nju, kotryž móžeš za wróćostajenje hesła wužić.
+    create:
       notice email on way: Sy jo zabył :-(, ale e-mejl je po puću, zo by móhł jo borze
         wróćo stajić.
       notice email cannot find: Wodaj, ale njemóžachmy tutu e-mejlowu adresu namakać.
-    reset_password:
+    edit:
       title: Hesło wróćo stajić
       heading: Hesło za wužiwarja %{user} wróćo stajić
       reset: Hesło wróćo stajić
-      flash changed: Twoje hesło je so změniło.
       flash token bad: Njemóžachmy tutón kod namakać, prošu přepruwuj URL.
+    update:
+      flash changed: Twoje hesło je so změniło.
   preferences:
     show:
       title: Moje nastajenja
@@ -1763,7 +1762,6 @@ hsb:
       heading: Přizjewjenje
       email or username: 'E-mejlowa adresa abo wužiwarske mjeno:'
       password: 'Hesło:'
-      openid_html: '%{logo} OpenID:'
       remember: Spomjatkować sej
       lost password link: Swoje hesło zabył?
       login_button: Přizjewjenje
@@ -1888,12 +1886,7 @@ hsb:
         tutu funkciju trěbne.
     export:
       title: Eksportować
-      area_to_export: Wobłuk za eksport
       manually_select: Druhi wobłuk manuelnje wubrać
-      format_to_export: Format za eksport
-      osm_xml_data: OpenStreetMap XML-daty
-      map_image: Kartowy wobraz (pokazuje standardnu runinu)
-      embeddable_html: Zasadźujomny HTML
       licence: Licenca
       too_large:
         advice: 'Jeli horni eksport so njeradźi, prošu wuwaž, hač wužiwaš jednu ze
@@ -1916,17 +1909,6 @@ hsb:
         other:
           title: Druhe žórła
           description: Přidatne žórła nalistowane na wikiju OpenStreetMap
-      options: Opcije
-      format: 'Format:'
-      scale: Měritko
-      max: maks.
-      image_size: 'Wobrazowa wulkosć:'
-      zoom: Skalowanje
-      add_marker: Marku karće přidać
-      latitude: 'Šěrokostnik:'
-      longitude: 'Dołhostnik:'
-      output: Wudaće
-      paste_html: HTML-kod kopěrować, zo by so do websydła zasunył
       export_button: Eksport
     fixthemap:
       title: Problem zdźělić / Kartu poprawić
@@ -1953,10 +1935,6 @@ hsb:
         url: http://wiki.openstreetmap.org/wiki/hsb:Beginners%27_guide
         title: Instrukcije za nowačkow
         description: Přez zhromadźenstwo wothladowany nawod za započatkowarjow.
-      help:
-        title: Forum pomocy
-        description: Prašej so za něčim abo pytaj za wotmołwami na stronje prašenjow
-          a wotmołwow OpenStreetMap.
       mailing_lists:
         title: Rozesyłanske lisćiny
         description: Staj prašenje abo diskutuj zajimawe wěcy w šěrokim wobłuku temow
@@ -2006,34 +1984,24 @@ hsb:
           footway: Chódnik
           rail: Železnica
           subway: Podzemska železnica
-          tram:
-          - Měšćanska železnica
-          - nadróžna
-          cable:
-          - Kablowa nadróžna
-          - sydłowy lift
-          runway:
-          - Přizemišćo
-          - lětadłowa jězdnja
-          apron:
-          - Lětanišćowe předpolo
-          - terminal
+          cable_car: Kablowa nadróžna
+          chair_lift: sydłowy lift
+          runway: Přizemišćo
+          taxiway: lětadłowa jězdnja
+          apron: Lětanišćowe předpolo
           admin: Zarjadniska hranica
           forest: Hajina
           wood: Lěs
           golf: Golfownišćo
           park: Park
+          common: Powšitkowny
           resident: Bydlenski wobwod
-          common:
-          - Powšitkowny
-          - łuka
           retail: Nakupowanišćo
           industrial: Industrijowa kónčina
           commercial: Přemysłowa kónčina
           heathland: Hola
-          lake:
-          - Jězor
-          - spjaty jězor
+          lake: Jězor
+          reservoir: spjaty jězor
           farm: Farma
           brownfield: Industrijowe lado
           cemetery: Kěrchow
@@ -2042,14 +2010,12 @@ hsb:
           centre: Sportowy centrum
           reserve: Přirodoškitne pasmo
           military: Wojerske pasmo
-          school:
-          - Šula
-          - uniwersita
+          school: Šula
+          university: uniwersita
           building: Wuznamne twarjenje
           station: Dwórnišćo
-          summit:
-          - Wjeršk
-          - kónčk hory
+          summit: Wjeršk
+          peak: kónčk hory
           tunnel: Smužkowana kroma = tunl
           bridge: Čorna kroma = móst
           private: Priwatny přistup
@@ -2384,7 +2350,6 @@ hsb:
       ct status: 'Wuměnjenja za sobuskutkowarjow:'
       ct undecided: Njerozsudźeny
       ct declined: Wotpokazany
-      latest edit: 'Najnowša změna (%{ago}):'
       email address: 'E-mejlowa adresa:'
       created from: 'Wutworjeny z:'
       status: 'Status:'
@@ -2495,8 +2460,8 @@ hsb:
     revoke:
       title: Zběhnje so blokowanje přećiwo %{block_on}
       heading_html: Zběhnje so blokowanje přećiwo %{block_on} wot %{block_by}
-      time_future: Tute blokowanje skónči so %{time}.
-      past: Tute blokowanje je so %{time} skónčiło a njeda so nětko zběhnyć.
+      time_future_html: Tute blokowanje skónči so %{time}.
+      past_html: Tute blokowanje je so %{time} skónčiło a njeda so nětko zběhnyć.
       confirm: Chceš woprawdźe tute blokowanje zběhnyć?
       revoke: Zběhnyć!
       flash: Tute blokowanje je so zběhnyło.
@@ -2645,11 +2610,9 @@ hsb:
           other: Sće mjenje hač %{count} stopow wot tutoho dypka zdaleny
       base:
         standard: Standard
-        cyclosm: CyclOSM
         cycle_map: Kolesowa karta
         transport_map: Wobchadna karta
         hot: Sobuskutkowacy humanitarneje pomocy
-        opnvkarte: ÖPNVKarte
       layers:
         header: Kartowe runiny
         notes: Pokazki
index 440fde6e7729bf47b3a4be6fcc506eba10f73397..106e86b5b61b730d4f48c65a3d0e14ab6656f358 100644 (file)
@@ -73,6 +73,11 @@ hu:
       messages:
         invalid_email_address: nem tűnik érvényes e-mail-címnek
         email_address_not_routable: nem irányítható
+        display_name_is_user_n: nem lehet user_n, hacsak nem az n a Te felhasználói
+          azonosítód
+      models:
+        user_mute:
+          is_already_muted: már el van némítva
     models:
       acl: Hozzáférés-szabályzási lista
       changeset: Módosításcsomag
@@ -244,7 +249,6 @@ hu:
   auth:
     providers:
       none: Nincs
-      openid: OpenID
       google: Google
       facebook: Facebook
       microsoft: Microsoft
@@ -376,14 +380,10 @@ hu:
       way_paginated: 'Vonalak (%{x}-%{y} ennyiből: %{count})'
       relation: Kapcsolatok (%{count})
       relation_paginated: 'Kapcsolatok (%{x}-%{y} ennyiből: %{count})'
-      comment: Hozzászólások (%{count})
       hidden_comment_by_html: Rejtett hozzászólás %{user} felhasználótól %{time_ago}
       comment_by_html: Hozzászólt %{user} %{time_ago}
       changesetxml: Módosításcsomag adatai (XML)
       osmchangexml: Módosításcsomag tartalma (osmChange XML)
-      feed:
-        title: '%{id} módosításcsomag'
-        title_comment: '%{id} módosításcsomag - %{comment}'
       join_discussion: Jelentkezz be, hogy bekapcsolódhass a megbeszélésbe
       discussion: Megbeszélés
       still_open: A módosításcsomag még nyitva van – a megbeszélés akkor nyílik meg,
@@ -493,6 +493,9 @@ hu:
       no_more_area: Nincs több módosításcsomag ezen a területen.
       no_more_user: Nincs több módosításcsomag ettől a felhasználótól.
       load_more: Továbbiak betöltése
+      feed:
+        title: '%{id} módosításcsomag'
+        title_comment: '%{id} módosításcsomag - %{comment}'
     timeout:
       sorry: Sajnáljuk, az általad kért módosításcsomagok listájának beolvasása túl
         sokáig tartott.
@@ -513,6 +516,7 @@ hu:
     contact:
       km away: '%{count} km távolságra'
       m away: '%{count} m távolságra'
+      latest_edit_html: 'Utolsó szerkesztés (%{ago}):'
     popup:
       your location: Helyed
       nearby mapper: Közeli térképszerkesztő
@@ -611,10 +615,32 @@ hu:
       newer_comments: Újabb hozzászólások
       older_comments: Régebbi hozzászólások
   doorkeeper:
+    errors:
+      messages:
+        account_selection_required: Az engedélyezési szerver megköveteli a végfelhasználói
+          fiók kiválasztását
+        consent_required: Az engedélyezési szerverhez a végfelhasználó beleegyezése
+          szükséges
+        interaction_required: Az engedélyezési szerver végfelhasználói interakciót
+          igényel
+        login_required: Az engedélyezési szerver végfelhasználói hitelesítést igényel
     flash:
       applications:
         create:
           notice: Alkalmazás regisztrálva.
+    openid_connect:
+      errors:
+        messages:
+          auth_time_from_resource_owner_not_configured: A Doorkeeper::OpenidConnect.configure.auth_time_from_resource_owner
+            konfiguráció hiánya miatti hiba.
+          reauthenticate_resource_owner_not_configured: A Doorkeeper::OpenidConnect.configure.reauthenticate_resource_owner
+            hiányzó konfiguráció miatt nem sikerült.
+          resource_owner_from_access_token_not_configured: A Doorkeeper::OpenidConnect.configure.resource_owner_from_access_token
+            hiányzó konfigurációja miatt nem sikerült.
+          select_account_for_resource_owner_not_configured: A Doorkeeper::OpenidConnect.configure.select_account_for_resource_owner
+            konfiguráció hiánya miatti hiba.
+          subject_not_configured: Az azonosítótoken generálása meghiúsult a Doorkeeper::OpenidConnect.configure.subject
+            konfiguráció hiánya miatt.
     scopes:
       address: Tartózkodási cím megtekintése
       email: Email cím megtekintése
@@ -1467,9 +1493,9 @@ hu:
         one: '%{count} bejelentés'
         other: '%{count} bejelentés'
       no_reports: Nincs bejelentés
-      report_created_at: Először bejelentve %{datetime} időpontban
-      last_resolved_at: Utoljára megoldva %{datetime} időpontban
-      last_updated_at: Utoljára frissítve %{displayname} által %{datetime} időpontban
+      report_created_at_html: Először bejelentve %{datetime} időpontban
+      last_resolved_at_html: Utoljára megoldva %{datetime} időpontban
+      last_updated_at_html: Utoljára frissítve %{displayname} által %{datetime} időpontban
       resolve: Megoldás
       ignore: Figyelmen kívül hagyás
       reopen: Újramegnyitás
@@ -1627,6 +1653,8 @@ hu:
         one: sikeresen betöltődött a lehetséges %{count} pontból %{trace_points} ponttal.
         other: sikeresen betöltődött a lehetséges %{count} pontból %{trace_points}
           ponttal.
+      all_your_traces_html: 'Az összes sikeresen feltöltött GPX nyomkövetés megtalálható
+        itt: %{url}.'
       subject: '[OpenStreetMap] Sikeres GPX importálás'
     signup_confirm:
       subject: '[OpenStreetMap] Üdvözlünk az OpenStreetMapen'
@@ -1745,8 +1773,6 @@ hu:
   messages:
     inbox:
       title: Beérkezett üzenetek
-      my_inbox: Beérkezett üzenetek
-      my_outbox: Elküldött üzenetek
       messages: '%{new_messages} és %{old_messages} van'
       new_messages:
         one: 1 új üzeneted
@@ -1754,17 +1780,21 @@ hu:
       old_messages:
         one: 1 régi üzeneted
         other: '%{count} régi üzeneted'
-      from: Feladó
-      subject: Tárgy
-      date: Érkezett
       no_messages_yet_html: Nincs még üzeneted. Miért nem veszed fel a kapcsolatot
         néhány %{people_mapping_nearby_link}vel?
       people_mapping_nearby: közeli térképszerkesztő
+    messages_table:
+      from: Feladó
+      to: Címzett
+      subject: Tárgy
+      date: Érkezett
+      actions: Műveletek
     message_summary:
       unread_button: Jelölés olvasatlanként
       read_button: Jelölés olvasottként
       reply_button: Válasz
       destroy_button: Törlés
+      unmute_button: Áthelyezés a Beérkezett üzenetek mappába
     new:
       title: Üzenet küldése
       send_message_to_html: 'Új üzenet küldése neki: %{name}'
@@ -1779,17 +1809,18 @@ hu:
       body: Sajnáljuk, nincs ilyen azonosítójú üzenet.
     outbox:
       title: Elküldött üzenetek
-      my_inbox: Beérkezett üzenetek
-      my_outbox: Elküldött üzenetek
+      actions: Műveletek
       messages:
         one: Egy elküldött üzeneted van
         other: '%{count} elküldött üzeneted van'
-      to: Címzett
-      subject: Tárgy
-      date: Elküldve
       no_sent_messages_html: Nincs még elküldött üzeneted. Miért nem veszed fel a
         kapcsolatot néhány %{people_mapping_nearby_link}vel?
       people_mapping_nearby: közeli térképszerkesztő
+    muted:
+      title: Elnémított üzenetek
+      messages:
+        one: '%{count} némított üzeneted van'
+        other: '%{count} némított üzeneted van'
     reply:
       wrong_user: „%{user}” néven jelentkeztél be, de azt az üzenetet, amelyre válaszolni
         szeretnél, nem ez a felhasználó kapta. A válaszadáshoz jelentkezz be a helyes
@@ -1805,26 +1836,36 @@ hu:
         be a helyes felhasználónévvel.
     sent_message_summary:
       destroy_button: Törlés
+    heading:
+      my_inbox: Beérkezett üzenetek
+      my_outbox: Elküldött üzenetek
+      muted_messages: Elnémított üzenetek
     mark:
       as_read: Üzenet megjelölve olvasottként
       as_unread: Üzenet megjelölve olvasatlanként
+    unmute:
+      notice: Az üzenet átkerült a Beérkezett üzenetek mappába
+      error: Az üzenetet nem sikerült áthelyezni a Beérkezett üzenetek mappába.
     destroy:
       destroyed: Üzenet törölve
   passwords:
-    lost_password:
+    new:
       title: Elvesztett jelszó
       heading: Elfelejtetted jelszavad?
-      email address: 'E-mail-cím:'
+      email address: E-mail-cím
       new password button: Jelszó alaphelyzetbe állítása
       help_text: Add meg az e-mail-címed, amellyel regisztráltál. Küldeni fogunk egy
         hivatkozást, amellyel visszaállíthatod a jelszavad.
+    create:
       notice email on way: Sajnáljuk, hogy elvesztetted :-( de már úton van egy e-mail,
         így nemsokára alaphelyzetbe állíthatod.
       notice email cannot find: Sajnáljuk, az e-mail-cím nem található.
-    reset_password:
+    edit:
       title: Jelszó alaphelyzetbe állítása
       heading: '%{user} jelszavának alaphelyzetbe állítása'
       reset: Jelszó alaphelyzetbe állítása
+      flash token bad: Nem találtad meg a tokent? Esetleg ellenőrizd az URL-t.
+    update:
       flash changed: Jelszavad megváltozott.
       flash token bad: Nem találtad meg a tokent? Esetleg ellenőrizd az URL-t.
   preferences:
@@ -1861,6 +1902,7 @@ hu:
       no home location: Nem adtad meg az otthonod helyét.
       update home location on click: Frissüljön-e az otthonom helye, amikor a térképre
         kattintok?
+      show: Megjelenítés
       delete: Törlés
       undelete: Törlés visszavonása
     update:
@@ -1870,9 +1912,8 @@ hu:
     new:
       title: Bejelentkezés
       heading: Bejelentkezés
-      email or username: 'E-mail-cím vagy felhasználónév:'
-      password: 'Jelszó:'
-      openid_html: '%{logo} OpenID:'
+      email or username: E-mail-cím vagy felhasználónév
+      password: Jelszó
       remember: Emlékezz rám
       lost password link: Elfelejtetted a jelszavad?
       login_button: Bejelentkezés
@@ -1930,6 +1971,7 @@ hu:
       image: Kép
       alt: Alternatív szöveg
       url: URL
+      codeblock: Kódblokk
     richtext_field:
       edit: Szerkesztés
       preview: Előnézet
@@ -2061,10 +2103,19 @@ hu:
         contributors_au_australia: Ausztrália
         contributors_au_geoscape_australia: Geoscape Australia
         contributors_ca_canada: Kanada
+        contributors_cz_czechia: Csehország
+        contributors_fi_finland: Finnország
+        contributors_fr_france: Franciaország
+        contributors_nl_netherlands: Hollandia
+        contributors_nz_new_zealand: Új-Zéland
+        contributors_rs_serbia: Szerbia
         contributors_si_slovenia: Szlovénia
+        contributors_si_mkgp: Mezőgazdasági, Erdészeti és Élelmiszerügyi Minisztérium
         contributors_es_spain: Spanyolország
         contributors_es_cc_by: CC BY 4.0
+        contributors_za_south_africa: Dél-Afrika
         contributors_gb_united_kingdom: Egyesült Királyság
+        contributors_2_contributors_page: Közreműködők oldala
         contributors_footer_2_html: Az adatok befoglalása az OpenStreetMapbe nem jelenti
           azt, hogy az eredeti adatszolgáltató támogatja az OpenStreetMapet, garanciát
           nyújt vagy felelősséget vállal rá.
@@ -2073,6 +2124,9 @@ hu:
           ne adjanak hozzá adatokat egyetlen szerzői jogvédett forrásból se (pl. Google
           Térkép vagy nyomtatott térképek) a szerzői jog tulajdonosának kifejezett
           engedélye nélkül.
+        infringement_2_1_online_filing_page: on-line bejelentési oldal
+        trademarks_title: Védjegyek
+        trademarks_1_1_trademark_policy: Védjegypolitika
     index:
       js_1: Vagy egy olyan böngészőt használsz, amely nem támogatja a JavaScriptet,
         vagy letiltottad a JavaScriptet.
@@ -2095,12 +2149,7 @@ hu:
         funkcióhoz szükséges.
     export:
       title: Exportálás
-      area_to_export: Exportálandó terület
       manually_select: Más terület kézi kijelölése
-      format_to_export: Exportálás formátuma
-      osm_xml_data: OpenStreetMap XML adatok
-      map_image: Térkép képe (az alapréteget jeleníti meg)
-      embeddable_html: Beágyazható HTML
       licence: Licenc
       licence_details_html: Az OpenStreetMap adatokra az %{odbl_link} (ODbL) licenc
         vonatkozik.
@@ -2125,17 +2174,6 @@ hu:
         other:
           title: Más források
           description: További források az OpenStreetMap wiki oldalán találhatók
-      options: Beállítások
-      format: 'Formátum:'
-      scale: Méretarány
-      max: max.
-      image_size: Képméret
-      zoom: Nagyítási szint
-      add_marker: Jelölő hozzáadása a térképhez
-      latitude: 'Földrajzi szélesség:'
-      longitude: 'Földrajzi hosszúság:'
-      output: Kimenet
-      paste_html: Webhelyekbe való beágyazáshoz illeszd be a HTML kódot
       export_button: Exportálás
     fixthemap:
       title: Probléma bejelentése / Térkép javítása
@@ -2148,6 +2186,7 @@ hu:
             és kijavítod az adatot saját magad.
       other_concerns:
         title: Egyéb aggályok
+        copyright: szerzői jogi oldal
     help:
       title: Segítségkérés
       introduction: Az OpenStreetMap számos anyagot kínál fel ahhoz, hogy ismerkedj
@@ -2161,17 +2200,13 @@ hu:
         url: https://wiki.openstreetmap.org/wiki/Hu:Beginners%27_guide
         title: Kezdők kézikönyve
         description: A közösség által karbantartott útmutató kezdőknek.
-      help:
-        title: Segítségnyújtó fórum
-        description: Kérdezz vagy keress válaszokat az OpenStreetMap kérdések-és-válaszok
-          lapján.
+      community:
+        title: Közösségi portál
+        description: Egy hely, ahol az OpenStreetMap a téma.
       mailing_lists:
         title: Levelezőlisták
         description: Kérdezz vagy beszélgess érdekességekről a számos tematikus vagy
           helyi levelezőlistán.
-      community:
-        title: Közösségi portál
-        description: Egy hely, ahol az OpenStreetMap a téma.
       irc:
         title: IRC
         description: Interaktív chat számos nyelven, számos témában.
@@ -2190,6 +2225,7 @@ hu:
     potlatch:
       removed: Az alapértelmezett szerkesztőd a Potlatch. Mivel az Adobe Flash Playert
         visszavonták, a Potlatch webböngészőben már nem futtatható.
+      change_preferences: Itt módosíthatja beállításait
     any_questions:
       title: Kérdésed van?
       paragraph_1_html: |-
@@ -2220,67 +2256,83 @@ hu:
           primary: Főút
           secondary: Összekötő út
           unclassified: Egyéb út
+          pedestrian: Sétálóutca
           track: Mezőgazdasági/erdészeti út
           bridleway: Lovaglóút
           cycleway: Kerékpárút
           cycleway_national: Országos kerékpárút
           cycleway_regional: Regionális kerékpárút
           cycleway_local: Helyi kerékpárút
+          cycleway_mtb: Hegyikerékpáros útvonal
           footway: Gyalogút
           rail: Vasút
+          train: Vonat
           subway: Metró
-          tram:
-          - HÉV
-          - villamos
-          cable:
-          - Nagykabinos felvonó
-          - függőszékes felvonó
-          runway:
-          - Kifutópálya
-          - gurulóút
-          apron:
-          - Forgalmi előtér
-          - utasterminál
+          ferry: Komp
+          light_rail: HÉV
+          tram: Villamos
+          trolleybus: Trolibusz
+          bus: Busz
+          cable_car: Nagykabinos felvonó
+          chair_lift: Ülőlift
+          runway: Kifutópálya
+          taxiway: Gurulóút
+          apron: Forgalmi előtér
           admin: Közigazgatási határ
+          capital: Főváros
+          city: Nagyváros
+          orchard: Gyümölcsös
+          vineyard: Szőlő
           forest: Erdő
-          wood: Erdő
+          wood: Természetes erdő
+          farmland: Mezőgazdasági terület
+          grass: Fű
+          meadow: Rét
+          bare_rock: Csupasz szikla
+          sand: Homok
           golf: Golfpálya
           park: Park
+          common: Füves terület
+          built_up: Beépített terület
           resident: Gyalogos övezet
-          common:
-          - Füves terület
-          - rét
-          - kert
           retail: Kereskedelmi terület
           industrial: Ipari terület
           commercial: Kereskedelmi terület
           heathland: Fenyér
-          lake:
-          - Tó
-          - víztározó
+          scrubland: Bozót
+          lake: Tó
+          reservoir: Víztározó
+          intermittent_water: Időszakos víztest
+          glacier: Gleccser
+          reef: Zátony
+          wetland: Vizenyős terület
           farm: Tanya
           brownfield: Bontási terület
           cemetery: Temető
           allotments: Kiskertek
           pitch: Sportpálya
           centre: Sportközpont
+          beach: Természetes strand
           reserve: Természetvédelmi terület
           military: Katonai terület
-          school:
-          - Iskola
-          - egyetem
+          school: Iskola; egyetem
+          university: Egyetem
+          hospital: Kórház
           building: Fontosabb épület
           station: Vasútállomás
-          summit:
-          - Hegycsúcs
-          - magaslat
+          summit: Hegycsúcs
+          peak: Hegycsúcs
           tunnel: Szaggatott szegély = alagút
           bridge: Fekete szegély = híd
           private: Behajtás csak engedéllyel
           destination: Csak célforgalom
           construction: Épülő utak
+          bus_stop: Buszmegálló
+          stop: Megálló
           bicycle_shop: Kerékpárbolt
+          bicycle_rental: Kerékpárkölcsönzés
           bicycle_parking: Kerékpártároló
+          bicycle_parking_small: Kis kerékpártároló
           toilets: WC
     welcome:
       title: Üdvözlünk!
@@ -2322,6 +2374,7 @@ hu:
         imports: Importálások
         automated_edits: automatizált szerkesztések
       start_mapping: Térképezés indítása
+      continue_authorization: Engedélyezés folytatása
       add_a_note:
         title: Nincs időd szerkeszteni? Küldj be jegyzetet!
         para_1: Ha valami apróságot szeretnél kijavíttatni és nincs időd regisztrálni
@@ -2349,6 +2402,7 @@ hu:
         list_text: 'A következő közösségek hivatalosan is Helyi Csoportként működnek:'
       other_groups:
         title: Más csoportok
+        communities_wiki: Közösségek wikioldala
   traces:
     visibility:
       private: Magán (megosztva csak névtelenül, rendezetlen pontok)
@@ -2470,6 +2524,7 @@ hu:
       oauth1_settings: OAuth 1 beállítások
       oauth2_applications: OAuth 2 alkalmazások
       oauth2_authorizations: OAuth 2 engedélyek
+      muted_users: Elnémított felhasználók
   oauth:
     authorize:
       title: A fiókodhoz való hozzáférés engedélyezése
@@ -2668,6 +2723,8 @@ hu:
       my_dashboard: Irányítópult
       blocks on me: Engem sújtó blokkolások
       blocks by me: Általam kiosztott blokkolások
+      create_mute: Felhasználó elnémítása
+      destroy_mute: Felhasználó elnémításának feloldása
       edit_profile: Profil szerkesztése
       send message: Üzenet küldése
       diary: Napló
@@ -2677,10 +2734,10 @@ hu:
       remove as friend: Ismerős eltávolítása
       add as friend: Felvétel ismerősnek
       mapper since: 'Térképszerkesztő ezóta:'
+      uid: 'Felhasználói azonosító:'
       ct status: 'Hozzájárulási feltételek:'
       ct undecided: Nem eldöntött
       ct declined: Elutasítva
-      latest edit: 'Utolsó szerkesztés (%{ago}):'
       email address: 'E-mail-cím:'
       created from: 'Készítve innen:'
       status: 'Állapot:'
@@ -2688,12 +2745,15 @@ hu:
       role:
         administrator: Ez a felhasználó adminisztrátor
         moderator: Ez a felhasználó moderátor
+        importer: Ez a felhasználó importálhat
         grant:
           administrator: Adminisztrátori hozzáférés megadása
           moderator: Moderátori hozzáférés megadása
+          importer: Importálási jog megadása
         revoke:
           administrator: Adminisztrátori hozzáférés visszavonása
           moderator: Moderátori hozzáférés viszzavonása
+          importer: Importálási hozzáférés visszavonása
       block_history: Aktív blokkolások
       moderator_history: Kiosztott blokkolások
       comments: Hozzászólások
@@ -2798,8 +2858,8 @@ hu:
     revoke:
       title: '%{block_on} blokkolásának visszavonása'
       heading_html: '%{block_on} blokkolásának visszavonása %{block_by} által'
-      time_future: Ez a blokkolás %{time} múlva véget ér.
-      past: Ez a tiltás véget ért %{time} időpontban, és már nem vonható vissza.
+      time_future_html: Ez a blokkolás %{time} múlva véget ér.
+      past_html: Ez a tiltás véget ért %{time} időpontban, és már nem vonható vissza.
       confirm: Biztosan vissza szeretnéd vonni ezt a blokkolást?
       revoke: Visszavonás!
       flash: Ez a blokkolás vissza lett vonva.
@@ -2861,6 +2921,19 @@ hu:
       showing_page: '%{page}. oldal'
       next: Következő »
       previous: « Előző
+  user_mutes:
+    index:
+      title: Elnémított felhasználók
+      my_muted_users: Elnémított felhasználóim
+      table:
+        thead:
+          muted_user: Elnémított felhasználó
+          actions: Műveletek
+        tbody:
+          unmute: Némítás feloldása
+          send_message: Üzenet küldése
+    create:
+      notice: 'Elnémítottad őt: %{name}.'
   notes:
     index:
       title: '%{user} által beküldött vagy kommentált jegyzetek'
@@ -2952,11 +3025,9 @@ hu:
           other: '%{count} lábnál közelebb vagy ehhez a ponthoz'
       base:
         standard: Alapértelmezett
-        cyclosm: CyclOSM
         cycle_map: Kerékpártérkép
         transport_map: Tömegközlekedés
         hot: Humanitárius
-        opnvkarte: ÖPNVKarte (tömegközlekedés)
       layers:
         header: Térképnézetek
         notes: Térképjegyzetek
@@ -2974,6 +3045,7 @@ hu:
       map_data_zoom_in_tooltip: Nagyítsd fel a térképet a térképadatok megjelenítéséhez
       queryfeature_tooltip: Objektumok lekérdezése
       queryfeature_disabled_tooltip: Objektumok lekérdezéséhez nagyíts a térképre
+      embed_html_disabled: Ezen a térképrétegen nem lehet HTML-t beágyazni
     changesets:
       show:
         comment: Hozzászólás
index db05cc33a6b5b1f612cbe4316684fcd0587814a6..714f6538009af7f6d4e8ed390af128456cd51ab9 100644 (file)
@@ -45,6 +45,10 @@ ia:
       messages:
         invalid_email_address: non pare esser un adresse de e-mail valide
         email_address_not_routable: non es attingibile
+        display_name_is_user_n: non pote esser user_n si n non es tu ID de usator
+      models:
+        user_mute:
+          is_already_muted: es ja silentiate
     models:
       acl: Lista de controlo de accesso
       changeset: Gruppo de modificationes
@@ -215,7 +219,6 @@ ia:
   auth:
     providers:
       none: Necun
-      openid: OpenID
       google: Google
       facebook: Facebook
       microsoft: Microsoft
@@ -269,6 +272,9 @@ ia:
         retain_changeset_discussions: Tu discussiones sur gruppos de modificationes,
           si existe, essera retenite.
         retain_email: Tu adresse de e-mail essera retenite.
+        recent_editing_html: Post que tu ha recentemente apportate modificationes,
+          tu conto non pote esser delite al momento. Le deletion essera possibile
+          in %{time}.
         confirm_delete: Es tu secur?
         cancel: Cancellar
   accounts:
@@ -349,14 +355,10 @@ ia:
       way_paginated: Vias (%{x}-%{y} de %{count})
       relation: Relationes (%{count})
       relation_paginated: Relationes (%{x}-%{y} de %{count})
-      comment: Commentos (%{count})
       hidden_comment_by_html: Commento celate de %{user} %{time_ago}
       comment_by_html: Commento de %{user} %{time_ago}
       changesetxml: XML del gruppo de modificationes
       osmchangexml: XML osmChange
-      feed:
-        title: Gruppo de modificationes %{id}
-        title_comment: Gruppo de modificationes %{id} - %{comment}
       join_discussion: Aperi session pro unir te al discussion
       discussion: Discussion
       still_open: Le gruppo de modificationes es ancora aperte. Le discussion se aperira
@@ -438,6 +440,15 @@ ia:
       introduction: Clicca sur le carta pro cercar objectos a proximitate.
       nearby: Objectos proxime
       enclosing: Objectos inglobante
+  old_nodes:
+    not_found:
+      sorry: Guai, le version %{version} del nodo №%{id} non pote esser trovate.
+  old_ways:
+    not_found:
+      sorry: Guai, le version %{version} del via №%{id} non pote esser trovate.
+  old_relations:
+    not_found:
+      sorry: Guai, le version %{version} del relation №%{id} non pote esser trovate.
   changesets:
     changeset_paging_nav:
       showing_page: Pagina %{page}
@@ -466,6 +477,9 @@ ia:
       no_more_area: Nulle altere gruppo de modificationes in iste area.
       no_more_user: Nulle altere gruppo de modificationes facite per iste usator.
       load_more: Cargar plus
+      feed:
+        title: Gruppo de modificationes %{id}
+        title_comment: Gruppo de modificationes %{id} - %{comment}
     timeout:
       sorry: Le lista de gruppos de modificationes que tu requestava tardava troppo
         de tempore pro esser recuperate.
@@ -488,6 +502,7 @@ ia:
     contact:
       km away: a %{count} km de distantia
       m away: a %{count} m de distantia
+      latest_edit_html: 'Ultime modification (%{ago}):'
     popup:
       your location: Tu position
       nearby mapper: Cartographo vicin
@@ -1464,9 +1479,9 @@ ia:
         one: '%{count} reporto'
         other: '%{count} reportos'
       no_reports: Nulle reporto
-      report_created_at: 'Prime reporto: %{datetime}'
-      last_resolved_at: 'Ultime resolution: %{datetime}'
-      last_updated_at: 'Ultime actualisation: %{datetime} per %{displayname}'
+      report_created_at_html: 'Prime reporto: %{datetime}'
+      last_resolved_at_html: 'Ultime resolution: %{datetime}'
+      last_updated_at_html: 'Ultime actualisation: %{datetime} per %{displayname}'
       resolve: Resolver
       ignore: Ignorar
       reopen: Reaperir
@@ -1631,6 +1646,8 @@ ia:
           puncto.
         other: ha essite cargate con successo con %{trace_points} ex un maximo de
           %{count} punctos.
+      all_your_traces_html: Tote le tracias GPX que tu ha incargate con successo pote
+        esser trovate a %{url}.
       subject: '[OpenStreetMap] Importation GPX succedite'
     signup_confirm:
       subject: '[OpenStreetMap] Benvenite a OpenStreetMap'
@@ -1754,8 +1771,6 @@ ia:
   messages:
     inbox:
       title: Cassa de entrata
-      my_inbox: Mi cassa de entrata
-      my_outbox: Mi cassa de exito
       messages: Tu ha %{new_messages} e %{old_messages}
       new_messages:
         one: '%{count} nove message'
@@ -1763,17 +1778,21 @@ ia:
       old_messages:
         one: '%{count} ancian message'
         other: '%{count} ancian messages'
-      from: De
-      subject: Subjecto
-      date: Data
       no_messages_yet_html: Tu non ha ancora messages. Proque non contactar alcun
         %{people_mapping_nearby_link}?
       people_mapping_nearby: cartographos vicin
+    messages_table:
+      from: De
+      to: A
+      subject: Subjecto
+      date: Data
+      actions: Actiones
     message_summary:
       unread_button: Marcar como non legite
       read_button: Marcar como legite
       reply_button: Responder
       destroy_button: Deler
+      unmute_button: Displaciar al cassa de entrata
     new:
       title: Inviar message
       send_message_to_html: Inviar un nove message a %{name}
@@ -1788,17 +1807,18 @@ ia:
       body: Non existe un message con iste ID.
     outbox:
       title: Cassa de exito
-      my_inbox: Mi cassa de entrata
-      my_outbox: Mi cassa de exito
+      actions: Actiones
       messages:
         one: Tu ha %{count} message inviate
         other: Tu ha %{count} messages inviate
-      to: A
-      subject: Subjecto
-      date: Data
       no_sent_messages_html: Tu non ha ancora inviate alcun message. Proque non contactar
         alcun %{people_mapping_nearby_link}?
       people_mapping_nearby: cartographos vicin
+    muted:
+      title: Messages silentiate
+      messages:
+        one: '%{count message silentiate'
+        other: Tu ha %{count} messages silentiate
     reply:
       wrong_user: Tu es authenticate como "%{user}", ma le message al qual tu vole
         responder non ha essite inviate a iste usator. Per favor aperi un session
@@ -1814,26 +1834,36 @@ ia:
         le usator correcte pro poter leger lo.
     sent_message_summary:
       destroy_button: Deler
+    heading:
+      my_inbox: Mi cassa de entrata
+      my_outbox: Mi cassa de exito
+      muted_messages: Messages silentiate
     mark:
       as_read: Message marcate como legite
       as_unread: Message marcate como non legite
+    unmute:
+      notice: Le message ha essite displaciate al cassa de entrata
+      error: Le message non poteva esser displaciate al cassa de entrata.
     destroy:
       destroyed: Message delite
   passwords:
-    lost_password:
+    new:
       title: Contrasigno perdite
       heading: Contrasigno oblidate?
-      email address: 'Adresse de e-mail:'
+      email address: Adresse de e-mail
       new password button: Reinitialisar contrasigno
       help_text: Entra le adresse de e-mail que tu usava pro inscriber te, e nos te
         inviara un ligamine que tu pote usar pro reinitialisar tu contrasigno.
+    create:
       notice email on way: Es infortunate que tu lo perdeva :-( ma nos te ha inviate
         un e-mail que te permittera de reinitialisar lo.
       notice email cannot find: Non poteva trovar iste adresse de e-mail, pardono.
-    reset_password:
+    edit:
       title: Reinitialisar contrasigno
       heading: Reinitialisar le contrasigno de %{user}
       reset: Reinitialisar contrasigno
+      flash token bad: Token non trovate. Verifica le URL.
+    update:
       flash changed: Tu contrasigno ha essite cambiate.
       flash token bad: Token non trovate. Verifica le URL.
   preferences:
@@ -1880,9 +1910,8 @@ ia:
     new:
       title: Aperir session
       heading: Aperir session
-      email or username: 'Adresse de e-mail o nomine de usator:'
-      password: 'Contrasigno:'
-      openid_html: 'OpenID de %{logo}:'
+      email or username: Adresse de e-mail o nomine de usator
+      password: Contrasigno
       remember: Memorar me
       lost password link: Contrasigno perdite?
       login_button: Aperir session
@@ -1940,6 +1969,7 @@ ia:
       image: Imagine
       alt: Texto alternative
       url: URL
+      codeblock: Bloco de codice
     richtext_field:
       edit: Modificar
       preview: Previsualisar
@@ -2176,12 +2206,7 @@ ia:
         iste functionalitate.
     export:
       title: Exportar
-      area_to_export: Area a exportar
       manually_select: Seliger manualmente un altere area
-      format_to_export: Formato de exportation
-      osm_xml_data: Datos XML de OpenStreetMap
-      map_image: Imagine de carta (monstra le strato standard)
-      embeddable_html: HTML incorporabile
       licence: Licentia
       licence_details_html: Le datos de OpenStreetMap data es sub licentia %{odbl_link}
         (ODbL).
@@ -2207,17 +2232,6 @@ ia:
         other:
           title: Altere fontes
           description: Fontes additional listate in le wiki de OpenStreetMap
-      options: Optiones
-      format: 'Formato:'
-      scale: Scala
-      max: max
-      image_size: 'Dimension del imagine:'
-      zoom: Zoom
-      add_marker: Adder un marcator al carta
-      latitude: 'Lat:'
-      longitude: 'Lon:'
-      output: Resultato
-      paste_html: Colla HTML pro incorporar in sito web
       export_button: Exportar
     fixthemap:
       title: Reportar un problema / Corriger le carta
@@ -2253,17 +2267,13 @@ ia:
         url: https://wiki.openstreetmap.org/wiki/Ia:Beginners%27_guide
         title: Guida pro comenciantes
         description: Guida pro comenciantes, mantenite per le communitate.
-      help:
-        title: Foro de adjuta
-        description: Pone un question o cerca responsas sur le sito de questiones
-          e responsas de OpenStreetMap.
+      community:
+        title: Foro del communitate
+        description: Un sito commun de conversation sur OpenStreetMap.
       mailing_lists:
         title: Listas de diffusion
         description: Pone un question o discute cosas interessante sur un varietate
           de listas de diffusion thematic o regional.
-      community:
-        title: Foro del communitate
-        description: Un sito commun de conversation sur OpenStreetMap.
       irc:
         title: IRC
         description: Conversation interactive in multe linguas differente e sur multe
@@ -2318,67 +2328,83 @@ ia:
           primary: Via primari
           secondary: Via secundari
           unclassified: Via non classificate
+          pedestrian: Via pro pedones
           track: Pista
           bridleway: Sentiero pro cavallos
           cycleway: Via cyclabile
           cycleway_national: Pista cyclabile national
           cycleway_regional: Pista cyclabile regional
           cycleway_local: Pista cyclabile local
+          cycleway_mtb: Percurso de bicycletta de montania
           footway: Sentiero pro pedones
           rail: Ferrovia
+          train: Traino
           subway: Metro
-          tram:
-          - Ferrovia legier
-          - tram
-          cable:
-          - Telepherico
-          - Telesedia
-          runway:
-          - Pista de aeroporto
-          - via de circulation pro aviones
-          apron:
-          - Platteforma pro aviones
-          - terminal
+          ferry: Ferry-boat
+          light_rail: Ferrovia legier
+          tram: Tram
+          trolleybus: Trolleybus
+          bus: Autobus
+          cable_car: Telepherico
+          chair_lift: Telesedia
+          runway: Pista de aeroporto
+          taxiway: Via de circulation pro aviones
+          apron: Platteforma pro aviones
           admin: Limite administrative
+          capital: Capital
+          city: Citate
+          orchard: Verdiero
+          vineyard: Vinia
           forest: Foreste
           wood: Bosco
+          farmland: Terra agricole
+          grass: Herba
+          meadow: Prato
+          bare_rock: Rocca nude
+          sand: Sablo
           golf: Percurso de golf
           park: Parco
+          common: Commun
+          built_up: Area edificate
           resident: Area residential
-          common:
-          - Commun
-          - prato
-          - jardin
           retail: Zona de commercio al detalio
           industrial: Area industrial
           commercial: Area commercial
           heathland: Landa
-          lake:
-          - Laco
-          - bassino
+          scrubland: Terreno de brossas
+          lake: Laco
+          reservoir: Reservoir
+          intermittent_water: Massa de aqua intermittente
+          glacier: Glaciero
+          reef: Scolio
+          wetland: Terra humide
           farm: Ferma
           brownfield: Terra in reposo
           cemetery: Cemeterio
           allotments: Jardines familial
           pitch: Campo de sport
           centre: Centro de sport
+          beach: Plagia
           reserve: Reserva natural
           military: Area militar
-          school:
-          - Schola
-          - universitate
+          school: Schola
+          university: Universitate
+          hospital: Hospital
           building: Edificio significante
           station: Station ferroviari
-          summit:
-          - Summitate
-          - picco
+          summit: Summitate
+          peak: Picco
           tunnel: Bordo a lineettas = tunnel
           bridge: Bordo nigre = ponte
           private: Accesso private
           destination: Traffico local
           construction: Vias in construction
+          bus_stop: Halto de autobus
+          stop: Halto
           bicycle_shop: Magazin de bicyclettas
+          bicycle_rental: Location de bicyclettas
           bicycle_parking: Parcamento de bicyclettas
+          bicycle_parking_small: Micre spatio de parcamento pro bicyclettas
           toilets: Toilettes
     welcome:
       title: Benvenite!
@@ -2420,6 +2446,7 @@ ia:
         imports: Importationes
         automated_edits: Modificationes automatisate
       start_mapping: comenciar le cartographia
+      continue_authorization: Continuar autorisation
       add_a_note:
         title: Non ha tempore pro modificar? Adde un nota!
         para_1: Si tu vole meliorar un micre cosa e non ha le tempore pro crear un
@@ -2580,6 +2607,7 @@ ia:
       oauth1_settings: Configuration OAuth 1
       oauth2_applications: Applicationes OAuth 2
       oauth2_authorizations: Autorisationes OAuth 2
+      muted_users: Usatores silentiate
   oauth:
     authorize:
       title: Autorisar accesso a tu conto
@@ -2616,6 +2644,7 @@ ia:
       read_gpx: Leger tracias GPS private
       write_gpx: Incargar tracias GPS
       write_notes: Modificar notas
+      write_redactions: Censurar datos del carta
       read_email: Leger le adresse de e-mail del usator
       skip_authorization: Approbar automaticamente le application
   oauth_clients:
@@ -2789,6 +2818,8 @@ ia:
       my_dashboard: Mi pannello
       blocks on me: Blocadas concernente me
       blocks by me: Blocadas facite per me
+      create_mute: Silentiar iste usator
+      destroy_mute: Non silentiar iste usator
       edit_profile: Modificar profilo
       send message: Inviar message
       diary: Diario
@@ -2802,7 +2833,6 @@ ia:
       ct status: 'Conditiones de contributor:'
       ct undecided: Indecise
       ct declined: Declinate
-      latest edit: 'Ultime modification (%{ago}):'
       email address: 'Adresse de e-mail:'
       created from: 'Create ex:'
       status: 'Stato:'
@@ -2810,14 +2840,18 @@ ia:
       role:
         administrator: Iste usator es un administrator
         moderator: Iste usator es un moderator
+        importer: Iste usator es un importator
         grant:
           administrator: Conceder accesso de administrator
           moderator: Conceder accesso de moderator
+          importer: Conceder le accesso de importator
         revoke:
           administrator: Revocar accesso de administrator
           moderator: Revocar accesso de moderator
+          importer: Revocar le accesso de importator
       block_history: Blocadas active
       moderator_history: Blocadas imponite
+      revoke_all_blocks: Revocar tote le blocadas
       comments: Commentos
       create_block: Blocar iste usator
       activate_user: Activar iste usator
@@ -2920,11 +2954,21 @@ ia:
     revoke:
       title: Revoca blocada de %{block_on}
       heading_html: Revoca blocada de %{block_on} per %{block_by}
-      time_future: Iste blocada expirara in %{time}.
-      past: Iste blocada expirava %{time} e non pote esser revocate ora.
+      time_future_html: Iste blocada expirara in %{time}.
+      past_html: Iste blocada expirava %{time} e non pote esser revocate ora.
       confirm: Es tu secur de voler revocar iste blocada?
       revoke: Revocar!
       flash: Iste blocada ha essite revocate.
+    revoke_all:
+      title: Revocation de tote le blocadas de %{block_on}
+      heading_html: Revocation de tote le blocadas de %{block_on}
+      empty: '%{name} non ha blocadas active.'
+      confirm: Es tu secur de voler revocar %{active_blocks}?
+      active_blocks:
+        one: '%{count} blocada active'
+        other: '%{count} blocadas active'
+      revoke: Revocar!
+      flash: Tote le blocadas active ha essite revocate.
     helper:
       time_future_html: Expira in %{time}.
       until_login: Active usque le usator aperi session.
@@ -2983,6 +3027,31 @@ ia:
       showing_page: Pagina %{page}
       next: Sequente »
       previous: « Precedente
+  user_mutes:
+    index:
+      title: Usatores silentiate
+      my_muted_users: Mi usatores silentiate
+      you_have_muted_n_users:
+        one: Tu ha silentiate %{count} usator
+        other: Tu ha silentiate %{count} usatores
+      user_mute_explainer: Le messages de usatores silentiate es displaciate a un
+        cassa de entrata separate e tu non recipera notificationes de e-mail.
+      user_mute_admins_and_moderators: Tu pote silentiar administratores e moderatores,
+        ma lor messages non essera silentiate.
+      table:
+        thead:
+          muted_user: Usator silentiate
+          actions: Actiones
+        tbody:
+          unmute: Non silentiar
+          send_message: Inviar message
+    create:
+      notice: Tu ha silentiate %{name}.
+      error: '%{name} non poteva esser silentiate. %{full_message}.'
+    destroy:
+      notice: Tu non plus silentia %{name}.
+      error: Non esseva possibile disfacer le silentiamento del usator. Per favor
+        essaya lo de novo.
   notes:
     index:
       title: Notas submittite o commentate per %{user}
@@ -3020,6 +3089,7 @@ ia:
       reactivate: Reactivar
       comment_and_resolve: Commentar e resolver
       comment: Commento
+      log_in_to_comment: Aperi session pro commentar iste nota
       report_link_html: Si iste nota contine information sensibile que debe esser
         removite, tu pote %{link}.
       other_problems_resolve: Pro tote altere problema con le nota, per favor resolve
@@ -3077,12 +3147,10 @@ ia:
           other: Tu es minus de %{count} pedes distante de iste puncto
       base:
         standard: Standard
-        cyclosm: CyclOSM
         cycle_map: Carta cyclista
         transport_map: Carta de transporto
         tracestracktop_topo: Tracestrack Topo
         hot: Humanitario
-        opnvkarte: ÖPNVKarte
       layers:
         header: Stratos de carta
         notes: Notas de carta
@@ -3097,8 +3165,6 @@ ia:
       osm_france: OpenStreetMap Francia
       thunderforest_credit: Tegulas fornite per %{thunderforest_link}
       andy_allan: Andy Allan
-      opnvkarte_credit: Tegulas fornite per %{memomaps_link}
-      memomaps: MeMoMaps
       tracestrack_credit: Tegulas fornite per %{tracestrack_link}
       hotosm_credit: Stilo de tegulas per %{hotosm_link} albergate per %{osm_france_link}
       hotosm_name: le Equipa Humanitari de OpenStreetMap
@@ -3111,6 +3177,8 @@ ia:
       map_data_zoom_in_tooltip: Face zoom avante pro vider le datos del carta
       queryfeature_tooltip: Cercar objectos
       queryfeature_disabled_tooltip: Face zoom avante pro cercar objectos
+      embed_html_disabled: Le incastration de HTML non es disponibile pro iste strato
+        cartographic
     changesets:
       show:
         comment: Commento
index 69501f68c772d48a00d45083f630f06e41806867..c930a0a2b87cfc61dd94e4f8969e03333ffb9ebf 100644 (file)
@@ -78,6 +78,11 @@ id:
       messages:
         invalid_email_address: nampaknya bukan alamat surel yang sah
         email_address_not_routable: tidak dapat dirutekan
+        display_name_is_user_n: tidak bisa menjadi user_n kecuali n adalah id pengguna
+          Anda
+      models:
+        user_mute:
+          is_already_muted: sudah dibisukan
     models:
       acl: Daftar Kontrol Akses
       changeset: Set Perubahan
@@ -199,41 +204,29 @@ id:
   datetime:
     distance_in_words_ago:
       about_x_hours:
-        one: sekitar 1 jam yang lalu
         other: sekitar %{count} jam yang lalu
       about_x_months:
-        one: sekitar 1 bulan yang lalu
         other: sekitar %{count} bulan yang lalu
       about_x_years:
-        one: sekitar 1 tahun yang lalu
         other: sekitar %{count} tahun yang lalu
       almost_x_years:
-        one: hampir 1 tahun yang lalu
         other: hampir %{count} tahun yang lalu
       half_a_minute: setengah menit yang lalu
       less_than_x_seconds:
-        one: tak sampai 1 detik yang lalu
         other: tak sampai %{count} detik yang lalu
       less_than_x_minutes:
-        one: tak sampai 1 menit yang lalu
         other: tak sampai %{count} menit yang lalu
       over_x_years:
-        one: lebih dari 1 tahun yang lalu
         other: lebih dari %{count} tahun yang lalu
       x_seconds:
-        one: 1 detik yang lalu
         other: '%{count} detik yang lalu'
       x_minutes:
-        one: 1 menit yang lalu
         other: '%{count} menit yang lalu'
       x_days:
-        one: 1 hari yang lalu
         other: '%{count} hari yang lalu'
       x_months:
-        one: 1 bulan yang lalu
         other: '%{count} bulan yang lalu'
       x_years:
-        one: 1 tahun yang lalu
         other: '%{count} tahun yang lalu'
   editor:
     default: Standar (saat ini %{name})
@@ -246,9 +239,9 @@ id:
   auth:
     providers:
       none: Tidak ada
-      openid: OpenID
       google: Google
       facebook: Facebook
+      microsoft: Microsoft
       github: GitHub
       wikipedia: Wikipedia
   api:
@@ -264,6 +257,7 @@ id:
         reopened_at_by_html: Diaktifkan kembali %{when} yang lalu oleh %{user}
       rss:
         title: Catatan OpenStreetMap
+        description_all: Daftar catatan yang dilaporkan, dikomentari, atau ditutup
         description_area: Daftar catatan, laporan, komentar atau ditutup di daerah
           Anda [( %{min_lat}|%{min_lon})--( %{max_lat}|%{max_lon})]
         description_item: Sebuah rss feed untuk catatan %{id}
@@ -297,6 +291,8 @@ id:
           disembunyikan dari publik.
         retain_changeset_discussions: Diskusi perubahan Anda tidak akan dihapus.
         retain_email: Alamat surel Anda akan dipertahankan.
+        recent_editing_html: Karena Anda baru saja mengedit, akun Anda saat ini tidak
+          dapat dihapus. Penghapusan dapat dilakukan pada %{time}.
         confirm_delete: Apakah Anda yakin?
         cancel: Batal
   accounts:
@@ -360,10 +356,8 @@ id:
     no_comment: (tidak ada komentar)
     part_of: Bagian dari
     part_of_relations:
-      one: 1 relasi
       other: '%{count} relasi'
     part_of_ways:
-      one: 1 arah
       other: '%{count} arah'
     download_xml: Unduh XML
     view_history: Versi terdahulu
@@ -378,14 +372,10 @@ id:
       way_paginated: Jalan (%{x}-%{y} dari %{count})
       relation: Hubungan (%{count})
       relation_paginated: Hubungan (%{x}-%{y} dari %{count})
-      comment: Komentar %{count}
       hidden_comment_by_html: Komentar tersembunyi dari %{user} %{time_ago}
       comment_by_html: Komentar dari %{user} %{time_ago}
       changesetxml: Set Perubahan XML
       osmchangexml: osmChange XML
-      feed:
-        title: Set Perubahan %{id}
-        title_comment: Set Perubahan %{id} - %{comment}
       join_discussion: Masuk untuk bergabung diskusi
       discussion: Diskusi
       still_open: Set perubahan masih terbuka - diskusi akan dibuka ketika set perubahan
@@ -407,7 +397,6 @@ id:
       history_title_html: 'Riwayat Hubungan: %{name}'
       members: Anggota
       members_count:
-        one: 1 anggota
         other: '%{count} anggota'
     relation_member:
       entry_role_html: '%{type} %{name} sebagai %{role}'
@@ -465,6 +454,15 @@ id:
       introduction: Klik di peta untuk mencari fitur terdekat.
       nearby: Fitur terdekat
       enclosing: Fitur sekitar
+  old_nodes:
+    not_found:
+      sorry: 'Maaf, titik #%{id} versi %{version} tidak dapat ditemukan.'
+  old_ways:
+    not_found:
+      sorry: 'Maaf, rute #%{id} versi %{version} tidak dapat ditemukan.'
+  old_relations:
+    not_found:
+      sorry: 'Maaf, relasi #%{id} versi %{version} tidak dapat ditemukan.'
   changesets:
     changeset_paging_nav:
       showing_page: Halaman %{page}
@@ -493,6 +491,9 @@ id:
       no_more_area: Tidak ada set perubahan lainnya di daerah ini.
       no_more_user: Tidak ada set perubahan lainnya oleh pengguna ini.
       load_more: Muat lebih lanjut
+      feed:
+        title: Set Perubahan %{id}
+        title_comment: Set Perubahan %{id} - %{comment}
     timeout:
       sorry: Maaf, daftar kumpulan set perubahan yang Anda minta terlalu lama untuk
         diambil.
@@ -512,6 +513,7 @@ id:
     contact:
       km away: sejauh %{count}km
       m away: sejauh %{count} meter
+      latest_edit_html: 'Hasil edit terakhir (%{ago}):'
     popup:
       your location: Lokasi Anda
       nearby mapper: Pembuat peta disekitar Anda
@@ -569,9 +571,8 @@ id:
       comment_link: Komentar di entri ini
       reply_link: Kirim pesan ke penulis
       comment_count:
-        one: '%{count} komentar'
-        zero: Tidak ada komentar
         other: '%{count} komentar'
+      no_comments: Tidak ada komentar
       edit_link: Edit entri ini
       hide_link: Sembunyikan entri ini
       unhide_link: Tampilkan kembali entri ini
@@ -609,10 +610,36 @@ id:
       newer_comments: Komentar Baru
       older_comments: Komentar Lama
   doorkeeper:
+    errors:
+      messages:
+        account_selection_required: Server otorisasi memerlukan pemilihan akun pengguna
+          akhir
+        consent_required: Server otorisasi memerlukan persetujuan pengguna akhir
+        interaction_required: Server otorisasi memerlukan interaksi pengguna akhir
+        login_required: Server otorisasi memerlukan otentikasi pengguna akhir
     flash:
       applications:
         create:
           notice: Aplikasi Didaftarkan.
+    openid_connect:
+      errors:
+        messages:
+          auth_time_from_resource_owner_not_configured: Gagal karena tidak ada konfigurasi
+            Doorkeeper::OpenidConnect.configure.auth_time_from_resource_owner.
+          reauthenticate_resource_owner_not_configured: Gagal karena tidak ada konfigurasi
+            Doorkeeper::OpenidConnect.configure.reauthenticate_resource_owner.
+          resource_owner_from_access_token_not_configured: Gagal karena tidak ada
+            konfigurasi Doorkeeper::OpenidConnect.configure.resource_owner_from_access_token.
+          select_account_for_resource_owner_not_configured: Gagal karena tidak ada
+            konfigurasi  Doorkeeper::OpenidConnect.configure.select_account_for_resource_owner.
+          subject_not_configured: Pembuatan Token ID gagal karena tidak ada konfigurasi
+            Doorkeeper::OpenidConnect.configure.subject.
+    scopes:
+      address: Lihat alamat fisik Anda
+      email: Lihat alamat email Anda
+      openid: Otentikasi akun Anda
+      phone: Lihat nomor telepon Anda
+      profile: Lihat informasi profil Anda
   errors:
     contact:
       contact_url_title: Penjelasan berbagai kanal kontak
@@ -1447,7 +1474,6 @@ id:
       last_updated_time_ago_user_html: '%{time_ago} oleh %{user}'
       link_to_reports: Lihat Laporan
       reports_count:
-        one: 1 Laporan
         other: '%{count} Laporan'
       reported_item: Butir dilaporkan
       states:
@@ -1457,12 +1483,11 @@ id:
     show:
       title: '%{status} Isu #%{issue_id}'
       reports:
-        zero: Tak ada
-        one: satu
         other: '%{count} laporan'
-      report_created_at: Pertama dilaporkan pada %{datetime}
-      last_resolved_at: Terakhir diselesaikan pada %{datetime}
-      last_updated_at: Terakhir diubah pada %{datetime} oleh %{displayname}
+      no_reports: Tidak ada laporan
+      report_created_at_html: Pertama dilaporkan pada %{datetime}
+      last_resolved_at_html: Terakhir diselesaikan pada %{datetime}
+      last_updated_at_html: Terakhir diubah pada %{datetime} oleh %{displayname}
       resolve: Selesaikan
       ignore: Abaikan
       reopen: Buka lagi
@@ -1480,6 +1505,7 @@ id:
       reopened: Status isu telah diset ke 'Terbuka'
     comments:
       comment_from_html: Komentar dari %{user_link} pada %{comment_created_at}
+      reassign_param: Tugaskan Kembali Masalah?
     reports:
       reported_by_html: Dilaporkan sebagai %{category} oleh %{user} pada %{updated_at}
     helper:
@@ -1489,6 +1515,8 @@ id:
   issue_comments:
     create:
       comment_created: Komentar Anda telah berhasil dibuat
+      issue_reassigned: Komentar Anda telah dibuat dan masalahnya telah ditugaskan
+        kembali
   reports:
     new:
       title_html: Laporkan %{link}
@@ -1617,6 +1645,10 @@ id:
       subject: '[OpenStreetMap] gagal impor GPX'
     gpx_success:
       hi: Halo %{to_user},
+      loaded:
+        other: berhasil dimuat dengan %{trace_points} dari %{count} titik yang mungkin.
+      all_your_traces_html: Semua jejak GPX Anda yang berhasil diunggah dapat ditemukan
+        di %{url}.
       subject: '[OpenStreetMap] impor GPX sukses'
     signup_confirm:
       subject: '[OpenStreetMap] Selamat datang di OpenStreetMap'
@@ -1743,8 +1775,6 @@ id:
   messages:
     inbox:
       title: Kotak Masuk
-      my_inbox: Kotak Masuk Saya
-      my_outbox: Kotak Keluar Saya
       messages: Anda memiliki %{new_messages} dan %{old_messages}
       new_messages:
         one: '%{count} pesan baru'
@@ -1752,17 +1782,21 @@ id:
       old_messages:
         one: '%{count} pesan lama'
         other: '%{count} pesan lama'
-      from: Dari
-      subject: Subyek
-      date: Tanggal
       no_messages_yet_html: Anda belum memiliki pesan. Mengapa tidak  berhubungan
         dengan beberapa %{people_mapping_nearby_link}?
       people_mapping_nearby: orang-orang disekitar Anda yang melakukan pemetaan
+    messages_table:
+      from: Dari
+      to: Kepada
+      subject: Subyek
+      date: Tanggal
+      actions: Tindakan
     message_summary:
       unread_button: Tandai belum dibaca
       read_button: Tandai sudah dibaca
       reply_button: Balas
       destroy_button: Hapus
+      unmute_button: Pindahkan ke Kotak Masuk
     new:
       title: Kirim Pesan
       send_message_to_html: Kirim pesan baru ke %{name}
@@ -1777,17 +1811,17 @@ id:
       body: Maaf tidak ada pesan dengan id tersebut.
     outbox:
       title: Kotak keluar
-      my_inbox: Kotak Masuk Saya
-      my_outbox: Kotak Keluar Saya
+      actions: Tindakan
       messages:
         one: Anda memiliki %{count} pesan terkirim
         other: Anda memiliki %{count} pesan terkirim
-      to: Kepada
-      subject: Subjek
-      date: Tanggal
       no_sent_messages_html: Anda belum memiliki pesan. Mengapa tidak  berhubungan
         dengan beberapa %{people_mapping_nearby_link}?
       people_mapping_nearby: orang-orang disekitar Anda yang melakukan pemetaan
+    muted:
+      title: Pesan yang Dibisukan
+      messages:
+        other: '%{count} pesan yang dibisukan'
     reply:
       wrong_user: Anda login sebagai '%{user}' tapi pesan yang Anda balas tidak terkirim
         ke pengguna. Silahkan login sebagai pengguna yang benar untuk membalas.
@@ -1802,29 +1836,40 @@ id:
         yang benar untuk membacanya.
     sent_message_summary:
       destroy_button: Hapus
+    heading:
+      my_inbox: Kotak Masuk Saya
+      my_outbox: Kotak Keluar Saya
+      muted_messages: Pesan yang dibisukan
     mark:
       as_read: Pesan ditandai sebagai telah dibaca
       as_unread: Pesan ditandai sebagai belum dibaca
+    unmute:
+      notice: Pesan berhasil dipindahkan ke Kotak Masuk
+      error: Pesan tidak berhasil dipindahkan ke Kotak Masuk
     destroy:
       destroyed: Pesan dihapus
   passwords:
-    lost_password:
+    new:
       title: Kehilangan kata sandi
       heading: Lupa Kata Sandi?
-      email address: 'Alamat Email:'
+      email address: Alamat Email
       new password button: Setel ulang kata sandi
       help_text: Masukkan alamat email yang Anda gunakan untuk mendaftar, kami akan
         mengirim link ke alamat tersebut yang dapat Anda gunakan untuk menyetel ulang
         kata sandi Anda.
+    create:
       notice email on way: Maaf sudah hilang :-( namun sebuah email telah dikirimkan
         agar Anda dapat segera mengatur ulang.
       notice email cannot find: Tidak dapat menemukan alamat email tersebut, maaf.
-    reset_password:
+    edit:
       title: Setel ulang kata sandi
       heading: Setel ulang kata sandi untuk %{user}
       reset: Setel Ulang Kata Sandi
-      flash changed: Kata sandi Anda telah diubah.
       flash token bad: Tidak dapat menemukan token tersebut, cek URL nya mungkin?
+    update:
+      flash changed: Kata sandi Anda telah diubah.
+      flash token bad: Tidak dapat menemukan token tersebut, mungkin sebaiknya URL-nya
+        diperiksa?
   preferences:
     show:
       title: Preferensi Saya
@@ -1860,6 +1905,9 @@ id:
       no home location: Anda telah memasukkan lokasi rumah Anda.
       update home location on click: Memperbarui lokasi rumah ketika saya klik pada
         peta?
+      show: Tampilkan
+      delete: Hapus
+      undelete: Batal hapus
     update:
       success: Profil telah diperbarui.
       failure: Tidak dapat memperbarui profil.
@@ -1867,9 +1915,8 @@ id:
     new:
       title: Login
       heading: Login
-      email or username: 'Alamat Email atau Nama Pengguna:'
-      password: 'Kata Sandi:'
-      openid_html: '%{logo} OpenID:'
+      email or username: Alamat Email atau Nama Pengguna
+      password: Kata Sandi
       remember: Ingat saya
       lost password link: Kehilangan kata sandi Anda?
       login_button: Login
@@ -1889,8 +1936,8 @@ id:
           title: Masuk dengan Facebook
           alt: Masuk dengan akun Facebook
         microsoft:
-          title: Masuk dengan Windows Live
-          alt: Masuk dengan akun Windows Live
+          title: Masuk dengan Microsoft
+          alt: Masuk dengan akun Microsoft
         github:
           title: Masuk dengan GitHub.
           alt: Masuk dengan Akun GitHub.
@@ -1926,6 +1973,7 @@ id:
       image: Gambar
       alt: Teks alternatif
       url: URL
+      codeblock: Blok kode
     richtext_field:
       edit: Sunting
       preview: Pratayang
@@ -2060,6 +2108,11 @@ id:
           %{canada}: Mengandung data dari
           GeoBase&reg;, GeoGratis (&copy; Departemen Sumber Daya Alam Kanada), CanVec (&copy; Departemen Sumber Daya Alam Kanada), dan StatCan (Divisi Geografi, Badan Pusat Statistik Kanada).
         contributors_ca_canada: Kanada
+        contributors_cz_credit_html: '%{czechia}: Mengandung data dari Administrasi
+          Survei Tanah dan Kadaster Negara yang dilisensikan di bawah %{cc_licence_link}'
+        contributors_cz_czechia: Ceko
+        contributors_cz_cc_licence: Lisensi Creative Commons Attribution 4.0 International
+          (CC BY 4.0)
         contributors_fi_credit_html: '%{finland}: Mengandung data dari Pusat Data
           Topografi Survei Pertanahan Nasional Finlandia dan sumber data lain, berlisensi
           %{nlsfi_license_link}.'
@@ -2078,6 +2131,12 @@ id:
         contributors_nz_new_zealand: Selandia Baru
         contributors_nz_linz_data_service: LINZ Data Service
         contributors_nz_cc_by: CC BY 4.0
+        contributors_rs_credit_html: |-
+          %{serbia}: Mengandung data dari %{rgz_link} dan %{open_data_portal}
+          (informasi publik Serbia), 2018.
+        contributors_rs_serbia: Serbia
+        contributors_rs_rgz: Otoritas Geodesi Serbia
+        contributors_rs_open_data_portal: Portal Data Terbuka Nasional
         contributors_si_credit_html: |-
           %{slovenia}: Mengandung data dari %{gu_link} dan %{mkgp_link}
           (penerangan umum Slovenia).
@@ -2141,12 +2200,7 @@ id:
         untuk fitur ini.
     export:
       title: Ekspor
-      area_to_export: Wilayah untuk diekspor
       manually_select: Pilih wilayah berbeda secara manual
-      format_to_export: Format untuk diekspor
-      osm_xml_data: Data XML OpenStreetMap
-      map_image: Gambar Peta (menunjukkan layer standar)
-      embeddable_html: HTML yang terkait
       licence: Lisensi
       licence_details_html: Data OpenStreetMap dilindungi oleh lisensi %{odbl_link}
         (ODbL).
@@ -2171,17 +2225,6 @@ id:
         other:
           title: Sumber Lain
           description: Sumber-sumber tambahan yang tercantum di wiki OpenStreetMap
-      options: Pilihan
-      format: Format
-      scale: Skala
-      max: Maks
-      image_size: Ukuran gambar
-      zoom: Perbesar
-      add_marker: Tambahkan penanda ke peta
-      latitude: 'Lintang:'
-      longitude: 'Bujur:'
-      output: Hasil
-      paste_html: Salin HTML untuk menyimpan di website
       export_button: Ekspor
     fixthemap:
       title: Laporkan kesalahan / Perbaiki peta
@@ -2217,17 +2260,13 @@ id:
         url: http://wiki.openstreetmap.org/wiki/Panduan%27_pemula
         title: Pedoman Pemula
         description: Panduan yang ditunjang komunitas bagi pemula.
-      help:
-        title: Forum Bantuan
-        description: Ajukan pertanyaan atau mencari jawaban di situs tanya-jawab OpenStreetMap
-          ini.
+      community:
+        title: Forum komunitas
+        description: Forum bincang-bincang OpenStreetMap.
       mailing_lists:
         title: Daftar Alamat
         description: Bertanya atau berdiskusi hal-hal menarik dalam daftar alamat
           menurut berbagai topik dan daerah.
-      community:
-        title: Forum komunitas
-        description: Forum bincang-bincang OpenStreetMap.
       irc:
         title: IRC
         description: Obrolan interaktif dalam berbagai bahasa mengenai bermacam-macam
@@ -2281,67 +2320,83 @@ id:
           primary: Jalan Primer
           secondary: Jalan Sekunder
           unclassified: Jalan Tidak Terklasifikasi
+          pedestrian: Jalur pejalan kaki
           track: Trek
           bridleway: Jalan Tanah
           cycleway: Jalur Sepeda
           cycleway_national: Jalur sepeda nasional
           cycleway_regional: Jalur sepeda daerah
           cycleway_local: Jalur sepeda lokal
+          cycleway_mtb: Rute sepeda gunung
           footway: Jalan Setapak
           rail: Rel Kereta
+          train: Kereta
           subway: Kereta bawah tanah
-          tram:
-          - Kereta listrik
-          - trem
-          cable:
-          - Kereta Kabel
-          - Kereta Gantung
-          runway:
-          - Landasan bandara
-          - landas hubung
-          apron:
-          - Tempat Parkir Pesawat
-          - terminal
+          ferry: Feri
+          light_rail: Kereta api ringan
+          tram: Trem
+          trolleybus: Kereta dorong
+          bus: Bus
+          cable_car: Kereta Kabel
+          chair_lift: Kereta gantung
+          runway: Landasan bandara
+          taxiway: Landas hubung
+          apron: Tempat Parkir Pesawat
           admin: Batas administrasi
+          capital: Ibu kota
+          city: Kota
+          orchard: Kebun buah
+          vineyard: Kebun anggur
           forest: Hutan
           wood: Kayu
+          farmland: Lahan pertanian
+          grass: Rumput
+          meadow: Padang rumput
+          bare_rock: Daratan batu
+          sand: Pasir
           golf: Lapangan Golf
           park: Taman
+          common: Umum
+          built_up: Daerah yang dibangun
           resident: Area Permukiman
-          common:
-          - Umum
-          - Padang rumput
-          - kebun
           retail: Area pertokoan
           industrial: Kawasan industri
           commercial: Area komersial
           heathland: Semak
-          lake:
-          - Danau
-          - Wilayah Serapan (Reservoir)
+          scrubland: Semak belukar
+          lake: Danau
+          reservoir: Wilayah Serapan (Reservoir)
+          intermittent_water: Perairan yang terputus-putus
+          glacier: Gletser
+          reef: Batu karang
+          wetland: Lahan basah
           farm: Pertanian
           brownfield: Lahan kosong
           cemetery: Pemakaman
           allotments: Tanah garap
           pitch: Lapangan Olahraga
           centre: Pusat Olahraga
+          beach: Pantai
           reserve: Cagar Alam
           military: Kawasan militer
-          school:
-          - Sekolah
-          - universitas
+          school: Sekolah
+          university: Universitas
+          hospital: Rumah sakit
           building: Bangunan Penting
           station: Stasiun Kereta Api
-          summit:
-          - Puncak
-          - puncak
+          summit: Puncak
+          peak: Puncak
           tunnel: Dashed Casing = terowongan
           bridge: Black casing = jembatan
           private: Akses pribadi
           destination: Akses tujuan
           construction: Jalan sedang diperbaiki
+          bus_stop: Halte bus
+          stop: Perhentian
           bicycle_shop: Toko sepeda
+          bicycle_rental: Penyewaan sepeda
           bicycle_parking: Tempat parkir sepeda
+          bicycle_parking_small: Parkir sepeda kecil
           toilets: Toilet
     welcome:
       title: Selamat datang!
@@ -2384,6 +2439,7 @@ id:
         imports: Impor
         automated_edits: Edit Otomatis
       start_mapping: Mulai pemetaan
+      continue_authorization: Lanjutkan Otorisasi
       add_a_note:
         title: Keberatan menyunting? Tambahkan catatan!
         para_1: Jika Anda ingin memberi perbaikan kecil dan tidak mau mendaftar ataupun
@@ -2477,7 +2533,8 @@ id:
       newer: Trek-trek terbaru
     trace:
       pending: TERTUNDA
-      count_points: '%{count} titik'
+      count_points:
+        other: '%{count} titik'
       more: selebihnya
       trace_details: Lihat Perincian Jejak
       view_map: Lihat peta
@@ -2540,6 +2597,7 @@ id:
       oauth1_settings: Setelah OAuth 1
       oauth2_applications: Aplikasi OAuth 2
       oauth2_authorizations: Otorisasi OAuth 2
+      muted_users: Pengguna yang Dibisukan
   oauth:
     authorize:
       title: Otorisasi akses ke akun Anda
@@ -2568,6 +2626,7 @@ id:
     permissions:
       missing: Anda tidak mengizinkan akses aplikasi ke fasilitas ini
     scopes:
+      openid: Masuk menggunakan OpenStreetMap
       read_prefs: Baca preferensi pengguna
       write_prefs: Ubah preferensi pengguna
       write_diary: Buat entri buku harian, komentar dan berteman
@@ -2575,6 +2634,7 @@ id:
       read_gpx: Baca jejak GPS pribadi
       write_gpx: Unggah jejak GPS
       write_notes: Ubah catatan
+      write_redactions: Sunting data peta
       read_email: Baca alamat surel pengguna
       skip_authorization: Setujui aplikasi secara otomatis
   oauth_clients:
@@ -2747,6 +2807,8 @@ id:
       my_dashboard: Dasbor Saya
       blocks on me: Blok kepada saya
       blocks by me: Blok oleh saya
+      create_mute: Bisukan Pengguna ini
+      destroy_mute: Batalkan pembisuan Pengguna ini
       edit_profile: Sunting Profil
       send message: Kirim Pesan
       diary: Catatan Harian
@@ -2756,10 +2818,10 @@ id:
       remove as friend: Hapus pertemanan
       add as friend: Jadikan Teman
       mapper since: 'Melakukan pemetaan sejak:'
+      uid: 'ID pengguna:'
       ct status: 'Syarat-syarat kontributor:'
       ct undecided: Belum diputuskan
       ct declined: Tolak
-      latest edit: 'Hasil edit terakhir (%{ago}):'
       email address: 'Alamat email:'
       created from: 'Dibuat pada:'
       status: 'Status:'
@@ -2767,14 +2829,18 @@ id:
       role:
         administrator: Pengguna ini merupakan administrator
         moderator: Pengguna ini adalah moderator
+        importer: Pengguna ini adalah seorang importir
         grant:
           administrator: Memberikan akses administrator
           moderator: Memberikan akses moderator
+          importer: Berikan izin importir
         revoke:
           administrator: Mencabut akses administrator
           moderator: Mencabut akses moderator
+          importer: Cabut izin importir
       block_history: Blok Aktif
       moderator_history: Blok yang Diberikan
+      revoke_all_blocks: Cabut semua pemblokiran
       comments: Komentar
       create_block: Blokir Pengguna Ini
       activate_user: Aktifkan Pengguna Ini
@@ -2879,11 +2945,21 @@ id:
     revoke:
       title: Membatalkan lokir pada %{block_on}
       heading_html: Membatalkan blokir pada %{block_on} oleh %{block_by}
-      time_future: Blokir ini akan berakhir pada %{time}.
-      past: Blokir ini telah berakhir %{time} dan tidak dapat dibatalkan kembali sekarang.
+      time_future_html: Blokir ini akan berakhir pada %{time}.
+      past_html: Blokir ini telah berakhir %{time} dan tidak dapat dibatalkan kembali
+        sekarang.
       confirm: Apakah Anda yakin untuk membatalkan blokir ini?
       revoke: Batalkan!
       flash: Blokir ini telah dibatalkan.
+    revoke_all:
+      title: Mencabut semua pemblokiran pada %{block_on}
+      heading_html: Mencabut semua pemblokiran pada %{block_on}
+      empty: '%{name} tidak sedang diblokir.'
+      confirm: Apakah Anda yakin untuk membatalkan %{active_blocks}?
+      active_blocks:
+        other: '%{count} blokir yang aktif'
+      revoke: Batalkan!
+      flash: Semua blokir aktif telah dicabut.
     helper:
       time_future_html: Berakhir pada %{time}.
       until_login: Aktif sampai pengguna melakukan log in.
@@ -2892,19 +2968,14 @@ id:
       time_past_html: Berakhir %{time} yang lalu.
       block_duration:
         hours:
-          one: 1 hour
-          other: '%{count} hours'
+          other: '%{count} jam'
         days:
-          one: 1 hari
           other: '%{count} hari'
         weeks:
-          one: 1 pekan
           other: '%{count} pekan'
         months:
-          one: 1 bulan
           other: '%{count} bulan'
         years:
-          one: 1 tahun
           other: '%{count} tahun'
     blocks_on:
       title: Diblokir pada %{name}
@@ -2942,11 +3013,36 @@ id:
       showing_page: Halaman %{page}
       next: Berikutnya »
       previous: « Sebelumnya
+  user_mutes:
+    index:
+      title: Pengguna yang Dibisukan
+      my_muted_users: Pengguna yang saya bisukan
+      you_have_muted_n_users:
+        other: Anda telah membisukan %{count} pengguna
+      user_mute_explainer: Pesan dari pengguna yang dibisukan akan dipindahkan ke
+        Kotak Masuk terpisah dan Anda tidak akan menerima pemberitahuan email.
+      user_mute_admins_and_moderators: Anda dapat membisukan Admin dan Moderator tetapi
+        pesan mereka tidak akan dibisukan.
+      table:
+        thead:
+          muted_user: Pengguna yang Dibisukan
+          actions: Tindakan
+        tbody:
+          unmute: Batalkan pembisuan
+          send_message: Kirim pesan
+    create:
+      notice: Anda membisukan %{name}.
+      error: '%{name} tidak dapat dibisukan. %{full_message}.'
+    destroy:
+      notice: Anda berhenti membisukan %{name}.
+      error: Pengguna tidak dapat dihentikan pembisuannya. Silakan coba lagi.
   notes:
     index:
       title: Catatan dimasukkan atau dikomentari oleh %{user}
       heading: catatan oleh %{user}
-      subheading_html: Catatan dimasukkan atau dikomentari oleh %{user}
+      subheading_html: Catatan %{submitted} atau %{commented} oleh %{user}
+      subheading_submitted: dimasukkan
+      subheading_commented: dikomentari
       no_notes: Tidak ada catatan
       id: Id
       creator: Pembuat
@@ -2976,6 +3072,7 @@ id:
       reactivate: Aktifkan kembali
       comment_and_resolve: Komentar & Selesaikan
       comment: Komentar
+      log_in_to_comment: Masuk untuk mengomentari catatan ini
       report_link_html: Bila catatan ini mengandung informasi sensitif yang perlu
         dihapus, Anda bisa %{link}.
       other_problems_resolve: Kalau ada masalah lain, mohon tutup/selesaikan dengan
@@ -3027,18 +3124,15 @@ id:
       locate:
         title: Tampilkan Lokasiku
         metersPopup:
-          one: Anda berjarak satu meter dari titik ini
           other: Anda berjarak %{count} meter dari titik ini
         feetPopup:
-          one: Anda berjarak satu kaki dari titik ini
           other: Anda berjarak %{count} kaki dari titik ini
       base:
         standard: Standar
-        cyclosm: CyclOSM
         cycle_map: Peta Sepeda
         transport_map: Peta Transportasi
+        tracestracktop_topo: Tracestrack Topo
         hot: Kemanusiaan
-        opnvkarte: ÖPNVKarte
       layers:
         header: Layer Peta
         notes: Catatan Peta
@@ -3053,8 +3147,7 @@ id:
       osm_france: OpenStreetMap France
       thunderforest_credit: Kotak peta oleh %{thunderforest_link}
       andy_allan: Andy Allan
-      opnvkarte_credit: Kotak peta oleh %{memomaps_link}
-      memomaps: MeMoMaps
+      tracestrack_credit: Kotak peta oleh %{tracestrack_link}
       hotosm_credit: Desain kotak peta oleh %{hotosm_link}, diproses oleh %{osm_france_link}
       hotosm_name: Humanitarian OpenStreetMap Team
     site:
@@ -3066,6 +3159,7 @@ id:
       map_data_zoom_in_tooltip: Perbesar untuk melihat data peta
       queryfeature_tooltip: Fitur kueri
       queryfeature_disabled_tooltip: Perbesar ke fitur kueri
+      embed_html_disabled: Penyematan HTML tidak tersedia untuk lapisan peta ini
     changesets:
       show:
         comment: Komentar
index efc567067850db4133f09144ca6cfed5718b5ccf..dc7dd7427b4fd76709f00533191ce13a747eb144 100644 (file)
@@ -214,7 +214,6 @@ is:
         one: fyrir %{count} ári síðan
         other: fyrir %{count} árum síðan
   printable_name:
-    with_version: '%{id}, útgáfa %{version}'
     with_name_html: '%{name} (%{id})'
   editor:
     default: Sjálfgefið (núna %{name})
@@ -227,7 +226,6 @@ is:
   auth:
     providers:
       none: Ekkert
-      openid: OpenID
       google: Google
       facebook: Facebook
       github: GitHub
@@ -366,14 +364,10 @@ is:
       way_paginated: Leiðir (%{x}-%{y} af %{count})
       relation: Vensl (%{count})
       relation_paginated: Vensl (%{x}-%{y} af %{count})
-      comment: Athugasemdir (%{count})
       hidden_comment_by_html: Falin umsögn frá %{user} %{time_ago}
       comment_by_html: Umsögn frá %{user} %{time_ago}
       changesetxml: XML breytingasetts
       osmchangexml: XML osmChange
-      feed:
-        title: Breytingasett %{id}
-        title_comment: Breytingasett %{id} - %{comment}
       join_discussion: Skráðu þig inn til að taka þátt í umræðunni
       discussion: Umræða
       still_open: Breytingasett er enn opið - Umræða mun opnast þegar breytingasettinu
@@ -485,6 +479,9 @@ is:
       no_more_area: Engin fleiri breytingasett á þessu svæði.
       no_more_user: Engin fleiri breytingasett eftir þennan notanda.
       load_more: Hlaða inn fleiri
+      feed:
+        title: Breytingasett %{id}
+        title_comment: Breytingasett %{id} - %{comment}
     timeout:
       sorry: Því miður, það tók of langan tíma að ná í listann yfir þau breytingasett
         sem þú baðst um.
@@ -504,6 +501,7 @@ is:
     contact:
       km away: í %{count} km fjarlægð
       m away: í %{count} m fjarlægð
+      latest_edit_html: 'Síðasta breyting %{ago}:'
     popup:
       your location: Staðsetning þín
       nearby mapper: Nálægur notandi
@@ -1458,9 +1456,9 @@ is:
         one: '%{count} skýrsla'
         other: '%{count} skýrslur'
       no_reports: Engar skýrslur
-      report_created_at: Fyrst tilkynnt %{datetime}
-      last_resolved_at: Síðast leyst %{datetime}
-      last_updated_at: Síðast uppfært %{datetime} af %{displayname}
+      report_created_at_html: Fyrst tilkynnt %{datetime}
+      last_resolved_at_html: Síðast leyst %{datetime}
+      last_updated_at_html: Síðast uppfært %{datetime} af %{displayname}
       resolve: Leysa
       ignore: Hunsa
       reopen: Enduropna
@@ -1750,8 +1748,6 @@ is:
   messages:
     inbox:
       title: Innhólf
-      my_inbox: Innhólfið mitt
-      my_outbox: Úthólfið mitt
       messages: Þú átt %{new_messages} og %{old_messages}
       new_messages:
         one: '%{count} ný skilaboð'
@@ -1759,17 +1755,21 @@ is:
       old_messages:
         one: '%{count} eldri skilaboð'
         other: '%{count} eldri skilaboð'
-      from: Frá
-      subject: Viðfangsefni
-      date: Dagsetning
       no_messages_yet_html: Þú hefur ekki fengið nein skilboð. Hví ekki að hafa samband
         við einhverja %{people_mapping_nearby_link}?
       people_mapping_nearby: nálæga notendur
+    messages_table:
+      from: Frá
+      to: Til
+      subject: Viðfangsefni
+      date: Dagsetning
+      actions: Aðgerðir
     message_summary:
       unread_button: Merkja sem ólesin
       read_button: Merkja sem lesin
       reply_button: Svara
       destroy_button: Eyða
+      unmute_button: Færa í innhólf
     new:
       title: Senda skilaboð
       send_message_to_html: Senda skilaboð til %{name}
@@ -1784,17 +1784,15 @@ is:
       body: Því miður er ekkert skilaboð með þetta auðkenni.
     outbox:
       title: Úthólf
-      my_inbox: Innhólfið mitt
-      my_outbox: Úthólfið mitt
+      actions: Aðgerðir
       messages:
         one: Þú hefur sent %{count} skilaboð
         other: Þú hefur sent %{count} skilaboð
-      to: Til
-      subject: Viðfangsefni
-      date: Dags
       no_sent_messages_html: Þú hefur enn ekki seint nein skilaboð, því ekki að hafa
         samband við einhverja %{people_mapping_nearby_link}?
       people_mapping_nearby: nálæga notendur
+    muted:
+      title: Þögguð skilaboð
     reply:
       wrong_user: Þú hefur skráð þig inn sem `%{user}' en skilaboðin sem þú baðst
         um að svara voru ekki send til þess notanda. Skráðu þig inn sem réttan notanda
@@ -1810,27 +1808,32 @@ is:
         notanda til að geta svarað.
     sent_message_summary:
       destroy_button: Eyða
+    heading:
+      my_inbox: Innhólfið mitt
+      my_outbox: Úthólfið mitt
     mark:
       as_read: Skilaboðin voru merkt sem lesin
       as_unread: Skilaboðin voru merkt sem ólesin
     destroy:
       destroyed: Skilaboðunum var eytt
   passwords:
-    lost_password:
+    new:
       title: Glatað lykilorð
       heading: Gleymt lykilorð?
-      email address: 'Tölvupóstfang:'
+      email address: Tölvupóstfang
       new password button: Endurstilla lykilorð
       help_text: Sláðu inn netfangið sem þú skráðir þig með, við munum senda tengil
         á það sem þú getur notað til að breyta lykilorðinu þínu.
+    create:
       notice email on way: Nýtt lykilorð er á leiðinni í innhólfið þitt.
       notice email cannot find: Þetta netfang fannst ekki.
-    reset_password:
+    edit:
       title: Endurstilla lykilorð
       heading: Endurstilla lykilorð fyrir %{user}
       reset: Endurstilla lykilorð
-      flash changed: Lykilorðinu þínu hefur verið breytt
       flash token bad: Þessi leynistrengur fannst ekki, kannski er slóðin röng?
+    update:
+      flash changed: Lykilorðinu þínu hefur verið breytt
   preferences:
     show:
       title: Kjörstillingar
@@ -1874,9 +1877,8 @@ is:
     new:
       title: Innskrá
       heading: Innskrá
-      email or username: 'Netfang eða notandanafn:'
-      password: 'Lykilorð:'
-      openid_html: '%{logo} OpenID:'
+      email or username: Tölvupóstur eða notandanafn
+      password: Lykilorð
       remember: Muna innskráninguna
       lost password link: Gleymdirðu lykilorðinu þínu?
       login_button: Innskrá
@@ -2098,6 +2100,7 @@ is:
           Resources Canada), og StatCan (Geography Division,
           Statistics Canada).
         contributors_ca_canada: Kanada
+        contributors_cz_czechia: Tékkland
         contributors_fi_credit_html: |-
           %{finland}: Inniheldur gögn frá
           landupplýsingagagnagrunni Landmælinga Finnlands
@@ -2211,12 +2214,7 @@ is:
         ef nota á þennan eiginleika.
     export:
       title: Flytja út
-      area_to_export: Svæði til útflutnings
       manually_select: Veldu annað svæði handvirkt
-      format_to_export: Skráasnið
-      osm_xml_data: OpenStreetMap XML gögn
-      map_image: Kortamynd (sýnir staðallagið)
-      embeddable_html: HTML til að bæta á vefsíðu
       licence: Leyfi
       licence_details_html: OpenStreetMap gögnin eru með %{odbl_link}.
       odbl: Open Data Commons Open Database License (ODbL) notkunarleyfi
@@ -2239,17 +2237,6 @@ is:
         other:
           title: Aðrar heimildir
           description: Aðrir gagnagjafar sem taldir eru upp á kviku/wiki OpenStreetMap
-      options: Valmöguleikar
-      format: Snið
-      scale: Kvarði
-      max: hámark
-      image_size: Stærð myndar
-      zoom: Aðdráttur
-      add_marker: Bæta kortamerki á kortið
-      latitude: 'Lengd:'
-      longitude: 'Breidd:'
-      output: Úttak
-      paste_html: Notaðu þennan HTML kóða til að bæta kortinu á vefsíðu
       export_button: Flytja út
     fixthemap:
       title: Tilkynna vandamál / Laga kortið
@@ -2287,18 +2274,14 @@ is:
         url: https://wiki.openstreetmap.org/wiki/Beginners%27_guide
         title: Leiðbeiningar fyrir byrjendur
         description: Leiðarvísir fyrir byrjendur sem haldið er við af samfélaginu.
-      help:
-        url: https://help.openstreetmap.org/
-        title: Hjálparvefur
-        description: Spyrðu spurninga eða flettu upp svörum á spyrja/svara hluta OpenStreetMap-vefsvæðisins.
+      community:
+        url: https://community.openstreetmap.org/
+        title: Aðstoð og samfélagsgátt
+        description: Sameiginlegur staður fyrir aðstoð og umræður um OpenStreetMap.
       mailing_lists:
         title: Póstlistar
         description: Spyrðu spurninga eða spjallaðu um áhugaverð málefni á einhverjum
           af fjölmörgum póstlistum tengdum tungumálum eða viðfangsefnum.
-      community:
-        url: https://community.openstreetmap.org/
-        title: Samfélagsgátt
-        description: Sameiginlegur staður fyrir umræður um OpenStreetMap.
       irc:
         title: IRC
         description: Gagnvirkt spjall á mörgum tungumálum og um margvísleg málefni.
@@ -2357,66 +2340,76 @@ is:
           primary: Stofnvegur
           secondary: Tengivegur
           unclassified: Héraðsvegur
+          pedestrian: Gönguleið
           track: Slóði
           bridleway: Reiðstígur
           cycleway: Hjólaleið
           cycleway_national: Hjólaleið á landsneti
           cycleway_regional: Svæðisbundin hjólaleið
           cycleway_local: Staðbundin hjólaleið
+          cycleway_mtb: Fjallahjólaleið
           footway: Gönguleið
           rail: Lestarteinar
+          train: Lest
           subway: Neðanjarðarlest
-          tram:
-          - Léttlest
-          - sporvagn
-          cable:
-          - Kláflyfta
-          - stólalyfta
-          runway:
-          - Flugbraut
-          - akstursbraut
-          apron:
-          - Flughlað
-          - flugstöð
+          ferry: Ferja
+          light_rail: Léttlest
+          tram: Sporvagn
+          bus: Strætó
+          cable_car: Kláflyfta
+          chair_lift: Stólalyfta
+          runway: Flugbraut
+          taxiway: Akbraut flugvéla
+          apron: Flughlað
           admin: Stjórnsýslumörk
+          capital: Höfuðborg
+          city: Borg
+          vineyard: Vínekra
           forest: Ræktaður skógur
-          wood: Náttúrulegur skógur
+          wood: Skógur
+          farmland: Ræktarland
+          grass: Gras
+          bare_rock: Berar klappir
+          sand: Sandur
           golf: Golfvöllur
           park: Almenningsgarður
+          common: Almenningur
+          built_up: Byggt svæði
           resident: Íbúðasvæði
-          common:
-          - Almenningur
-          - lundur
-          - garður
           retail: Smásölusvæði
           industrial: Iðnaðarsvæði
           commercial: Verslunarsvæði
           heathland: Heiðalönd
-          lake:
-          - Vatn
-          - uppistöðulón
+          scrubland: Kjarrlendi
+          lake: Vatn
+          reservoir: Uppistöðulón
+          glacier: Jökull
+          reef: Sker
+          wetland: Votlendi
           farm: Bóndabær
           brownfield: Nýbyggingarsvæði
           cemetery: Grafreitur
           allotments: Ræktuð svæði úthlutuð í einkaeigu
           pitch: Íþróttavöllur
           centre: Íþróttamiðstöð
+          beach: Strönd
           reserve: Náttúruverndarsvæði
           military: Hersvæði
-          school:
-          - Skóli
-          - Háskóli
+          school: Skóli
+          university: Háskóli
+          hospital: Sjúkrahús
           building: Merkisbygging
           station: Lestarstöð
-          summit:
-          - Fjallstindur
-          - tindur
+          summit: Fjallstindur
+          peak: Tindur
           tunnel: Umkringt punktalínum = göng
           bridge: Umkringt svartri línu = brú
           private: Einkaaðgangur
           destination: Umferð leyfileg á ákveðinn áfangastað
           construction: Vegir í byggingu
+          bus_stop: Strætisvagnabiðstöð
           bicycle_shop: Hjólaverslun
+          bicycle_rental: Reiðhjólaleiga
           bicycle_parking: Reiðhjólastæði
           toilets: Salerni
     welcome:
@@ -2625,6 +2618,7 @@ is:
       oauth1_settings: OAuth 1 stillingar
       oauth2_applications: OAuth 2 forrit
       oauth2_authorizations: OAuth 2 auðkenningar
+      muted_users: Þaggaðir notendur
   oauth:
     authorize:
       title: Auðkenndu aðgang að notandaaðganginum þínum
@@ -2657,6 +2651,7 @@ is:
     permissions:
       missing: Þú hefur ekki gefið forritinu heimild fyrir aðgang að þessum eiginleikum
     scopes:
+      openid: Skráðu þig inn með OpenStreetMap
       read_prefs: Lesa notandastillingar
       write_prefs: Breyta notandastillingum
       write_diary: Búa til bloggfærslur, setja inn athugasemdir og bæta við vinum
@@ -2714,7 +2709,6 @@ is:
       no_applications_html: Ert þú að nota forrit sem þú myndir vilja skrá til notkunar
         hjá okkur með %{oauth2} staðlinum? Þú verður að skrá vefforritið áður en það
         fer að senda OAuth-beiðnir á þessa þjónustu.
-      oauth_2: OAuth 2
       new: Skrá nýtt forrit
       name: Nafn
       permissions: Heimildir
@@ -2841,6 +2835,7 @@ is:
       my_dashboard: Stjórnborðið mitt
       blocks on me: Bönn gegn mér
       blocks by me: Bönn eftir mig
+      create_mute: Þagga þennan notanda
       edit_profile: Breyta notandasíðu
       send message: Senda skilaboð
       diary: Blogg
@@ -2853,7 +2848,6 @@ is:
       ct status: 'Skilmálar vegna framlags:'
       ct undecided: Óvíst
       ct declined: Hafnað
-      latest edit: 'Síðasta breyting %{ago}:'
       email address: 'Netfang:'
       created from: 'Búin til frá:'
       status: 'Staða:'
@@ -2971,8 +2965,9 @@ is:
     revoke:
       title: Eyði banni á %{block_on}
       heading_html: Eyði banni á %{block_on} eftir %{block_by}
-      time_future: Bannið endar eftir %{time}.
-      past: Bannið endaði fyrir %{time} síðan og er ekki hægt að afturkalla það núna.
+      time_future_html: Bannið endar eftir %{time}.
+      past_html: Bannið endaði fyrir %{time} síðan og er ekki hægt að afturkalla það
+        núna.
       confirm: Staðfestu að þú viljir eyða þessu banni.
       revoke: Eyða banninu
       flash: Banninu var eytt.
@@ -3034,12 +3029,20 @@ is:
       showing_page: Síða %{page}
       next: Næsta »
       previous: « Fyrri
+  user_mutes:
+    index:
+      table:
+        thead:
+          muted_user: Þaggaður notandi
+          actions: Aðgerðir
+        tbody:
+          send_message: Senda skilaboð
   notes:
     index:
       title: Minnispunktar sem hafa verið sendir inn eða gerðar athugasemdir við af
         %{user}
       heading: Minnispunktar frá %{user}
-      subheading_html: Minnispunktar sem hafa verið sendir inn eða gerðar athugasemdir
+      subheading_html: Minnispunktar sem hafa verið %{submitted} eða gerð %{commented}
         við af %{user}
       no_notes: Engir minnispunktar
       id: Auðkenni (ID)
@@ -3129,11 +3132,9 @@ is:
           other: Þú ert minna en %{count} fet frá þessum punkti
       base:
         standard: Staðlað
-        cyclosm: CyclOSM
         cycle_map: Hjólakort
         transport_map: Umferðarkort
         hot: Hjálparstarf
-        opnvkarte: ÖPNVKarte
       layers:
         header: Lög á korti
         notes: Minnispunktar á korti
@@ -3150,8 +3151,6 @@ is:
       osm_france: OpenStreetMap Frakklandi
       thunderforest_credit: Kortatíglar frá %{thunderforest_link}
       andy_allan: Andy Allan
-      opnvkarte_credit: Kortatíglar frá %{memomaps_link}
-      memomaps: MeMoMaps
       hotosm_credit: Stíll kortatígla frá %{hotosm_link} hýst af %{osm_france_link}
       hotosm_name: Humanitarian OpenStreetMap teyminu
     site:
index bf78df0135832b021d3a0135d05fbfe7767e6991..712fbe1e5ec83591451a89da7bfe1c5ef455f458 100644 (file)
@@ -98,6 +98,9 @@ it:
       messages:
         invalid_email_address: non sembra essere un indirizzo e-mail valido
         email_address_not_routable: non è instradabile
+      models:
+        user_mute:
+          is_already_muted: è già silenziato
     models:
       acl: Lista di controllo degli accessi
       changeset: Gruppo di modifiche
@@ -269,7 +272,6 @@ it:
   auth:
     providers:
       none: Nessuno
-      openid: OpenID
       google: Google
       facebook: Facebook
       microsoft: Microsoft
@@ -324,6 +326,9 @@ it:
         retain_changeset_discussions: Le discussioni su tuoi gruppi di modifiche e
           i commenti inseriti su altri gruppi di modifiche, se presenti, saranno mantenute.
         retain_email: Il tuo indirizzo e-mail sarà conservato.
+        recent_editing_html: Dato che hai effettuato delle modifiche di recente, al
+          momento la tua utenza non può essere eliminata. Sarà possibile farlo tra
+          %{time}.
         confirm_delete: Sei sicuro?
         cancel: Annulla
   accounts:
@@ -406,14 +411,10 @@ it:
       way_paginated: Percorsi (%{x}-%{y} di %{count})
       relation: Relazioni (%{count})
       relation_paginated: Relazioni (%{x}-%{y} di %{count})
-      comment: Commenti (%{count})
       hidden_comment_by_html: Commento nascosto da %{user} %{time_ago}
       comment_by_html: Commento da %{user} %{time_ago}
       changesetxml: Gruppo di modifiche XML
       osmchangexml: XML in formato osmChange
-      feed:
-        title: Gruppo di modifiche %{id}
-        title_comment: Gruppo di modifiche %{id} - %{comment}
       join_discussion: Accedi per unirti alla discussione
       discussion: Discussione
       still_open: Il gruppo di modifiche è ancora aperto - le discussioni saranno
@@ -524,6 +525,9 @@ it:
       no_more_area: Nessun altro gruppo di modifiche in quest'area.
       no_more_user: Nessun altro gruppo di modifiche da questo utente.
       load_more: Caricane ancora
+      feed:
+        title: Gruppo di modifiche %{id}
+        title_comment: Gruppo di modifiche %{id} - %{comment}
     timeout:
       sorry: Spiacenti, l'elenco dei gruppi di modifiche che hai richiesto ha impiegato
         troppo tempo per poter essere recuperato.
@@ -543,6 +547,7 @@ it:
     contact:
       km away: distante %{count} km
       m away: '%{count}m di distanza'
+      latest_edit_html: 'Ultima modifica (%{ago}):'
     popup:
       your location: Propria posizione
       nearby mapper: Mappatore vicino
@@ -586,6 +591,7 @@ it:
     show:
       title: Diario di %{user} | %{title}
       user_title: Diario di %{user}
+      discussion: Discussione
       leave_a_comment: Lascia un commento
       login_to_leave_a_comment_html: '%{login_link} per lasciare un commento'
       login: Entra
@@ -1521,9 +1527,9 @@ it:
         one: '%{count} segnalazione'
         other: '%{count} segnalazioni'
       no_reports: Nessuna segnalazione
-      report_created_at: Segnalato per la prima volta il %{datetime}
-      last_resolved_at: Risolto per l’ultima volta il %{datetime}
-      last_updated_at: Aggiornato per l’ultima volta il %{datetime} da %{displayname}
+      report_created_at_html: Segnalato per la prima volta il %{datetime}
+      last_resolved_at_html: Risolto per l’ultima volta il %{datetime}
+      last_updated_at_html: Aggiornato per l’ultima volta il %{datetime} da %{displayname}
       resolve: Risolvi
       ignore: Ignora
       reopen: Riapri
@@ -1809,8 +1815,6 @@ it:
   messages:
     inbox:
       title: Posta in arrivo
-      my_inbox: Posta in arrivo
-      my_outbox: Posta in uscita
       messages: Hai %{new_messages} e %{old_messages}
       new_messages:
         one: '%{count} nuovo messaggio'
@@ -1818,17 +1822,21 @@ it:
       old_messages:
         one: '%{count} vecchio messaggio'
         other: '%{count} messaggi vecchi'
-      from: Da
-      subject: Oggetto
-      date: Data
       no_messages_yet_html: Non ci sono ancora messaggi. Perché non contatti qualcuna
         di queste %{people_mapping_nearby_link}?
       people_mapping_nearby: persone che mappano nelle vicinanze
+    messages_table:
+      from: Da
+      to: A
+      subject: Oggetto
+      date: Data
+      actions: Azioni
     message_summary:
       unread_button: Segna come non letto
       read_button: Segna come già letto
       reply_button: Rispondi
       destroy_button: Cancella
+      unmute_button: Sposta nella Posta in arrivo
     new:
       title: Invia messaggio
       send_message_to_html: Spedisci un nuovo messaggio a %{name}
@@ -1843,17 +1851,18 @@ it:
       body: Siamo spiacenti, non ci sono messaggi con l'id indicato.
     outbox:
       title: Posta in uscita
-      my_inbox: Posta in arrivo
-      my_outbox: Posta in uscita
+      actions: Azioni
       messages:
         one: Hai %{count} messaggio inviato
         other: Hai %{count} messaggi inviati
-      to: A
-      subject: Oggetto
-      date: Data
       no_sent_messages_html: Non ci sono ancora messaggi inviati. Perché non contatti
         qualcuno di questi %{people_mapping_nearby_link}?
       people_mapping_nearby: persone che mappano nelle vicinanze
+    muted:
+      title: Messaggi silenziati
+      messages:
+        one: '%{count} messaggio silenziato'
+        other: Hai %{count} messaggi silenziati
     reply:
       wrong_user: Hai effettuato l'accesso come '%{user}', ma il messaggio al quale
         hai chiesto di rispondere non era diretto a quell'utente. Se vuoi rispondere,
@@ -1869,31 +1878,41 @@ it:
         accedi con l'utenza interessata.
     sent_message_summary:
       destroy_button: Cancella
+    heading:
+      my_inbox: Posta in arrivo
+      my_outbox: Posta in uscita
+      muted_messages: Messaggi silenziati
     mark:
       as_read: Messaggio marcato come già letto
       as_unread: Messaggio marcato come non letto
+    unmute:
+      notice: Il messaggio è stato spostato nella Posta in arrivo
+      error: Non è stato possibile spostare il messaggio nella Posta in arrivo.
     destroy:
       destroyed: Messaggio eliminato
   passwords:
-    lost_password:
+    new:
       title: password persa
       heading: Password dimenticata?
-      email address: 'Indirizzo email:'
+      email address: Indirizzo email
       new password button: Reimposta password
       help_text: Inserire l'indirizzo email che si è utilizzato per l'iscrizione,
         a cui verrà inviato un collegamento che permetterà la reimpostazione della
         propria password.
+    create:
       notice email on way: Siamo spiacenti che tu l'abbia persa :-( ma una email ti
         è stata spedita in modo che tu la possa presto reimpostare.
       notice email cannot find: Spiacenti, ma non è possibile trovare l'indirizzo
         email.
-    reset_password:
+    edit:
       title: Reimposta password
       heading: Reimposta password per %{user}
       reset: Reimposta password
-      flash changed: La propria password è stata modificata.
       flash token bad: Non è stato possibile trovare il codice. Controllare l'indirizzo
         URL.
+    update:
+      flash changed: La propria password è stata modificata.
+      flash token bad: Non è stato trovato quel token, controlla l'URL forse?
   preferences:
     show:
       title: Preferenze
@@ -1937,9 +1956,8 @@ it:
     new:
       title: Entra
       heading: Entra
-      email or username: 'Indirizzo email o nome utente:'
-      password: 'Password:'
-      openid_html: '%{logo} OpenID:'
+      email or username: Indirizzo e-mail o nome utente
+      password: Password
       remember: Ricordati di me
       lost password link: Persa la password?
       login_button: Entra
@@ -1997,6 +2015,7 @@ it:
       image: Immagine
       alt: Testo alternativo
       url: URL
+      codeblock: Blocco di codice
     richtext_field:
       edit: Modifica
       preview: Anteprima
@@ -2133,6 +2152,10 @@ it:
           Resources Canada), e della StatCan (Geography Division,
           Statistics Canada).
         contributors_ca_canada: Canada
+        contributors_cz_credit_html: '%{czechia}: contiene dati dell''Amministrazione
+          statale dei rilevamenti topografici e del Catasto pubblicati con licenza
+          %{cc_licence_link}'
+        contributors_cz_czechia: Repubblica Ceca
         contributors_cz_cc_licence: Licenza internazionale Creative Commons Attribuzione
           4.0 (CC BY 4.0)
         contributors_cz_cc_licence_url: https://creativecommons.org/licenses/by/4.0/deed.it
@@ -2226,12 +2249,7 @@ it:
         per questa funzionalità.
     export:
       title: Esporta
-      area_to_export: Area da esportare
       manually_select: Seleziona manualmente un'area differente
-      format_to_export: Formato di esportazione
-      osm_xml_data: Dati XML OpenStreetMap
-      map_image: Immagine Mappa (mostra livello standard)
-      embeddable_html: HTML incapsulabile
       licence: Licenza
       licence_details_html: I dati OpenStreetMap sono rilasciati con licenza %{odbl_link}
         (ODbL).
@@ -2256,17 +2274,6 @@ it:
         other:
           title: Altre fonti
           description: Ulteriori fonti elencate sul wiki di OpenStreetMap
-      options: Opzioni
-      format: Formato
-      scale: Scala
-      max: max
-      image_size: Dimensione immagine
-      zoom: Ingrandimento
-      add_marker: Aggiungi un marcatore alla mappa
-      latitude: 'Lat:'
-      longitude: 'Lon:'
-      output: Risultato
-      paste_html: Incolla l'HTML per incapsulare nel sito web
       export_button: Esporta
     fixthemap:
       title: Segnala un problema / Correggi la mappa
@@ -2303,17 +2310,13 @@ it:
         url: https://wiki.openstreetmap.org/wiki/IT:Beginners%27_guide
         title: Guida per principianti
         description: Guida per i principianti gestita dalla comunità.
-      help:
-        title: Forum di aiuto
-        description: Fai una domanda o cerca risposte sul sito di domande e risposte
-          di OpenStreetMap.
+      community:
+        title: Forum di assistenza e comunità
+        description: Un luogo condiviso dove cercare aiuto e conversare su OpenStreetMap.
       mailing_lists:
         title: Mailing List
         description: Poni la tua domanda o discuti questioni di interesse su una vasta
           gamma di mailing list tematiche o regionali.
-      community:
-        title: Forum della comunità
-        description: Un luogo condiviso per le conversazioni su OpenStreetMap.
       irc:
         title: IRC
         description: Chat interattiva in molte lingue diverse e su molti argomenti.
@@ -2366,66 +2369,80 @@ it:
           primary: Strada primaria
           secondary: Strada secondaria
           unclassified: Strada non classificata
+          pedestrian: Percorso pedonale
           track: Strada forestale o agricola
           bridleway: Percorso per equitazione
           cycleway: Pista ciclabile
           cycleway_national: Pista ciclabile nazionale
           cycleway_regional: Pista ciclabile regionale
           cycleway_local: Pista ciclabile locale
+          cycleway_mtb: Percorso in mountain bike
           footway: Percorso pedonale
           rail: Ferrovia
+          train: Treno
           subway: Metropolitana
-          tram:
-          - Metropolitana leggera
-          - tram
-          cable:
-          - Funivia
-          - seggiovia
-          runway:
-          - Pista di decollo/atterraggio
-          - pista di rullaggio
-          apron:
-          - Area di parcheggio aeroportuale
-          - terminal
+          ferry: Traghetto
+          light_rail: Metropolitana leggera
+          tram: Tram
+          trolleybus: Filobus
+          bus: Autobus
+          cable_car: Funivia
+          chair_lift: Seggiovia
+          runway: Pista di decollo/atterraggio
+          taxiway: Pista di rullaggio
+          apron: Area di parcheggio aeroportuale
           admin: Confine amministrativo
+          capital: Capitale
+          city: Città
+          orchard: Frutteto
+          vineyard: Vigneto
           forest: Foresta
           wood: Bosco
+          farmland: Terreno agricolo
+          grass: Prato
+          meadow: Prato
+          bare_rock: Roccia nuda
+          sand: Sabbia
           golf: Campo da golf
           park: Parco
+          common: Area comune
           resident: Zona residenziale
-          common:
-          - Area comune
-          - prato
-          - giardino
           retail: Zona con negozi
           industrial: Zona industriale
           commercial: Zona di uffici
           heathland: Brughiera
-          lake:
-          - Lago
-          - riserva d'acqua
+          scrubland: Macchia
+          lake: Lago
+          reservoir: Riserva idrica
+          intermittent_water: Corpo idrico intermittente
+          glacier: Ghiacciaio
+          reef: Scogliera
+          wetland: Zona umida
           farm: Azienda agricola
           brownfield: Area soggetta ad interventi di ridestinazione d'uso
           cemetery: Cimitero
           allotments: Area comune orti casalinghi
           pitch: Campo sportivo
           centre: Centro sportivo
+          beach: Spiaggia
           reserve: Riserva naturale
           military: Area militare
-          school:
-          - Scuola
-          - università
+          school: Scuola
+          university: Università
+          hospital: Ospedale
           building: Edificio significativo
           station: Stazione ferroviaria
-          summit:
-          - Vetta
-          - picco montuoso
+          summit: Vetta
+          peak: Picco montuoso
           tunnel: Linea tratteggiata = tunnel
           bridge: Quadrettatura nera = ponte
           private: Accesso privato
           destination: Servitù di passaggio
           construction: Strade in costruzione
+          bus_stop: Fermata dell'autobus
+          stop: Fermata
           bicycle_shop: Negozio di biciclette
+          bicycle_rental: Noleggio biciclette
           bicycle_parking: Parcheggio per biciclette
           toilets: Bagni pubblici
     welcome:
@@ -2470,6 +2487,7 @@ it:
         imports: Importazioni
         automated_edits: Contributi automatici
       start_mapping: Inizia a mappare
+      continue_authorization: Continua l'autorizzazione
       add_a_note:
         title: Non hai tempo per editare? Aggiungi una nota!
         para_1: Se vuoi fare solo una piccola correzione, ma non hai abbastanza tempo
@@ -2637,6 +2655,7 @@ it:
       oauth1_settings: Impostazioni OAuth
       oauth2_applications: Applicazioni OAuth 2
       oauth2_authorizations: Autorizzazioni OAuth 2
+      muted_users: Utenti silenziati
   oauth:
     authorize:
       title: Autorizzare l'accesso al tuo account
@@ -2846,6 +2865,8 @@ it:
       my_dashboard: La mia dashboard
       blocks on me: Blocchi su di me
       blocks by me: Blocchi applicati da me
+      create_mute: Silenzia questo utente
+      destroy_mute: Non silenziare più questo utente
       edit_profile: Modifica profilo
       send message: Invia messaggio
       diary: Diario
@@ -2859,7 +2880,6 @@ it:
       ct status: 'Termini di collaborazione:'
       ct undecided: Indeciso
       ct declined: Non accetto
-      latest edit: 'Ultima modifica (%{ago}):'
       email address: 'Indirizzo email:'
       created from: 'Creato da:'
       status: 'Stato:'
@@ -2867,14 +2887,18 @@ it:
       role:
         administrator: Questo utente è un amministratore
         moderator: Questo utente è un moderatore
+        importer: Questo utente è un importatore
         grant:
           administrator: Assegna l'accesso come amministratore
           moderator: Assegna l'accesso come moderatore
+          importer: Concedi l'accesso come importatore
         revoke:
           administrator: Revoca l'accesso come amministratore
           moderator: Revoca l'accesso come moderatore
+          importer: Revoca l'accesso come importatore
       block_history: Blocchi attivi
       moderator_history: Blocchi applicati
+      revoke_all_blocks: Revoca tutti i blocchi
       comments: Commenti
       create_block: Blocca questo utente
       activate_user: Attiva questo utente
@@ -2979,11 +3003,21 @@ it:
     revoke:
       title: Revoca del blocco su %{block_on}
       heading_html: Revoca del blocco su %{block_on} imposto da %{block_by}
-      time_future: Questo blocco terminerà fra %{time}.
-      past: Questo blocco è terminato %{time} e non può essere revocato ora.
+      time_future_html: Questo blocco terminerà fra %{time}.
+      past_html: Questo blocco è terminato %{time} e non può essere revocato ora.
       confirm: Sei sicuro di voler revocare questo blocco?
       revoke: Revoca!
       flash: Questo blocco è stato revocato.
+    revoke_all:
+      title: Revoca tutti i blocchi su %{block_on}
+      heading_html: Revoca tutti i blocchi su %{block_on}
+      empty: '%{name} non ha blocchi attivi.'
+      confirm: Sei sicuro di voler revocare %{active_blocks}?
+      active_blocks:
+        one: '%{count} blocco attivo'
+        other: '%{count} blocchi attivi'
+      revoke: Revoca!
+      flash: Tutti i blocchi attivi sono stati revocati.
     helper:
       time_future_html: Termina fra %{time}.
       until_login: Attivo finché l'utente non si collega.
@@ -3042,6 +3076,31 @@ it:
       showing_page: Pagina %{page}
       next: Successivo »
       previous: « Precedente
+  user_mutes:
+    index:
+      title: Utenti silenziati
+      my_muted_users: I miei utenti silenziati
+      you_have_muted_n_users:
+        one: Hai silenziato %{count} utente
+        other: Hai silenziato %{count} utenti
+      user_mute_explainer: I messaggi degli utenti silenziati vengono spostati in
+        una Posta in arrivo separata e non riceverai le notifiche via e-mail.
+      user_mute_admins_and_moderators: Puoi silenziare amministratori e moderatori
+        ma i loro messaggi non saranno silenziati.
+      table:
+        thead:
+          muted_user: Utente silenziato
+          actions: Azioni
+        tbody:
+          unmute: Non silenziare
+          send_message: Invia messaggio
+    create:
+      notice: Hai silenziato %{name}.
+      error: Non è stato possibile silenziare %{name}. %{full_message}.
+    destroy:
+      notice: Non rimosso %{name} dagli utenti silenziati.
+      error: Non è stato possibile rimuovere dagli utenti silenziati. Riprova più
+        tardi.
   notes:
     index:
       title: Note inserite o commentate da %{user}
@@ -3078,6 +3137,7 @@ it:
       reactivate: Riattiva
       comment_and_resolve: Commenta e chiudi
       comment: Commenta
+      log_in_to_comment: Accedi per commentare questa nota
       report_link_html: Se questa nota contiene informazioni sensibili che devono
         essere rimosse, puoi %{link}.
       other_problems_resolve: Per tutti gli altri problemi con la nota, risolvilo
@@ -3135,12 +3195,10 @@ it:
           other: Ti trovi entro %{count} piedi da questo punto
       base:
         standard: Standard
-        cyclosm: CyclOSM
         cycle_map: Mappa ciclabile
         transport_map: Mappa dei trasporti
         tracestracktop_topo: Tracestrack Topo
         hot: Umanitario
-        opnvkarte: ÖPNVKarte
       layers:
         header: Livelli mappa
         notes: Note sulla mappa
@@ -3155,8 +3213,6 @@ it:
       osm_france: OpenStreetMap France
       thunderforest_credit: Tasselli per gentile concessione di %{thunderforest_link}
       andy_allan: Andy Allan
-      opnvkarte_credit: Tasselli per gentile concessione di %{memomaps_link}
-      memomaps: MeMoMaps
       tracestrack_credit: Tasselli per gentile concessione di %{tracestrack_link}
       hotosm_credit: Stile tasselli di %{hotosm_link} ospitato da %{osm_france_link}
       hotosm_name: La squadra di OpenStreetMap Humanitarian
@@ -3169,6 +3225,8 @@ it:
       map_data_zoom_in_tooltip: Zooma per vedere i dati della mappa
       queryfeature_tooltip: Ricerca di elementi
       queryfeature_disabled_tooltip: Ingrandisci per ricercare elementi
+      embed_html_disabled: L'incorporamento HTML non è disponibile per questo livello
+        mappa
     changesets:
       show:
         comment: Commenta
index df50d12f065ed897555e2d77bde3c27179f3cf16..a0e69c09e0fa5273748960b8f8b0b4bf789acdf5 100644 (file)
@@ -12,6 +12,7 @@
 # Author: Ffff23
 # Author: Foomin10
 # Author: Fryed-peach
+# Author: Great ones
 # Author: Hayashi
 # Author: Higa4
 # Author: Hiro884
@@ -242,8 +243,6 @@ ja:
         other: '%{count}ヶ月前'
       x_years:
         other: '%{count}年前'
-  printable_name:
-    with_version: '%{id}、第%{version}版'
   editor:
     default: 既定 (現在は %{name})
     id:
@@ -255,7 +254,6 @@ ja:
   auth:
     providers:
       none: なし
-      openid: OpenID
       google: Google
       facebook: Facebook
       microsoft: マイクロソフト
@@ -274,6 +272,7 @@ ja:
         reopened_at_by_html: '%{user}さんが%{when}に再開'
       rss:
         title: OpenStreetMap メモ
+        description_all: 報告されたメモ、コメントされたメモ、または閉じられたメモのリスト
         description_area: あなたのエリア [(%{min_lat}|%{min_lon}) -- (%{max_lat}|%{max_lon})]
           に関する注記で報告済みまたはコメント付きあるいは解決済みの一覧
         description_item: メモ %{id} の RSS フィード
@@ -300,6 +299,7 @@ ja:
         retain_notes: 日記のエントリと日記のコメントがある場合は保持されますが、表示されません。
         retain_changeset_discussions: 変更セットのディスカッションがあれば、保持されます。
         retain_email: メールアドレスは保持されます。
+        recent_editing_html: 最近編集したため、現在アカウントを削除できません。 %{time}以内に削除可能になります。
         confirm_delete: 本当によろしいですか?
         cancel: キャンセル
   accounts:
@@ -329,7 +329,12 @@ ja:
       delete_account: アカウントを削除
     go_public:
       heading: 公開編集
+      currently_not_public: 現在、あなたの編集内容は匿名であり、他の人があなたにメッセージを送ったり、あなたの位置情報を確認したりすることはできません。編集内容を表示し、Web
+        サイトを通じて他の人があなたに連絡できるようにするには、下のボタンをクリックしてください。
+      only_public_can_edit: 0.6 API 変更以来,地図データを公開ユーザーだけが編集できます.
       find_out_why: 理由を明らかにする
+      email_not_revealed: あなたのメールアドレスが公開されることはありません
+      not_reversible: このアクションを元に戻すことはできず、すべての新規ユーザーはデフォルトで公開になります。
       make_edits_public_button: 自分の編集をすべて公開する
     update:
       success_confirm_needed: 利用者情報を更新しました。新着メールを確認して新しいメール アドレスを検証してください。
@@ -367,12 +372,8 @@ ja:
       way_paginated: ウェイ (%{x}-%{y} / %{count})
       relation: リレーション (%{count}件)
       relation_paginated: リレーション (%{x}-%{y} / %{count})
-      comment: コメント (%{count}件)
       changesetxml: 変更セット XML
       osmchangexml: OSM 差分 XML
-      feed:
-        title: 変更セット %{id}
-        title_comment: 変更セット %{id} - %{comment}
       join_discussion: 議論に参加するにはログインしてください
       discussion: 議論
       still_open: 変更セットが開いたままです - 議論を行うには変更セットを閉じる必要があります。
@@ -476,6 +477,9 @@ ja:
       no_more_area: この領域には変更セットはこれ以上ありません。
       no_more_user: この利用者による変更セットはこれ以上ありません。
       load_more: 続きを読み込む
+      feed:
+        title: 変更セット %{id}
+        title_comment: 変更セット %{id} - %{comment}
     timeout:
       sorry: 申し訳ありませんが、要求した変更セットの一覧は時間がかかりすぎたため取得できませんでした。
   changeset_comments:
@@ -493,6 +497,7 @@ ja:
     contact:
       km away: 距離 %{count} km
       m away: 距離 %{count} m
+      latest_edit_html: '最終編集 %{ago}:'
     popup:
       your location: 自分の位置
       nearby mapper: 周辺のマッパー
@@ -1418,9 +1423,9 @@ ja:
       reports:
         other: '%{count}件のレポート'
       no_reports: 報告はありません
-      report_created_at: 最初の通報は%{datetime}です
-      last_resolved_at: 最近の更新は%{datetime}です
-      last_updated_at: 最近の更新は%{displayname}による%{datetime}の版です
+      report_created_at_html: 最初の通報は%{datetime}です
+      last_resolved_at_html: 最近の更新は%{datetime}です
+      last_updated_at_html: 最近の更新は%{displayname}による%{datetime}の版です
       resolve: 解決
       ignore: 無視
       reopen: 再開
@@ -1646,18 +1651,18 @@ ja:
   messages:
     inbox:
       title: 受信箱
-      my_inbox: 自分の受信箱
-      my_outbox: 自分の送信ボックス
       messages: '%{new_messages}、%{old_messages}があります'
       new_messages:
         other: '%{count} 件の新着メッセージ'
       old_messages:
         other: '%{count} 件の古いメッセージ'
+      no_messages_yet_html: まだメッセージがありません。%{people_mapping_nearby_link}とお近づきになってはいかがですか?
+      people_mapping_nearby: 近所でマッピングしている人々
+    messages_table:
       from: 差出人
+      to: 宛先
       subject: 件名
       date: 日付
-      no_messages_yet_html: まだメッセージがありません。%{people_mapping_nearby_link}とお近づきになってはいかがですか?
-      people_mapping_nearby: 近所でマッピングしている人々
     message_summary:
       unread_button: 未読にする
       read_button: 既読にする
@@ -1676,13 +1681,8 @@ ja:
       body: 申し訳ありませんが、この ID のメッセージはありません。
     outbox:
       title: 送信箱
-      my_inbox: 自分の受信箱
-      my_outbox: 自分の送信ボックス
       messages:
         other: '%{count} 件の送信済みメッセージがあります'
-      to: 宛先
-      subject: 件名
-      date: 日付
       no_sent_messages_html: 送信したメッセージはまだありません。%{people_mapping_nearby_link}とお近づきになってはいかがですか?
       people_mapping_nearby: 近所でマッピングしている人々
     reply:
@@ -1696,26 +1696,31 @@ ja:
       wrong_user: あなたは「%{user}」としてログインしていますが、閲覧しようとしたメッセージは、この利用者が送信したものでも、この利用者宛てのものでもありません。メッセージを閲覧するには、正しいユーザーとしてログインしてください。
     sent_message_summary:
       destroy_button: 削除
+    heading:
+      my_inbox: 自分の受信箱
+      my_outbox: 自分の送信ボックス
     mark:
       as_read: 既読メッセージ
       as_unread: 未読メッセージ
     destroy:
       destroyed: メッセージを削除しました
   passwords:
-    lost_password:
+    new:
       title: パスワードを忘れた
       heading: パスワードを忘れた場合はこちら
-      email address: 'メール アドレス:'
+      email address: 'メールアドレス:'
       new password button: パスワードを再設定
       help_text: ユーザー登録に使用したメール アドレスを入力してください。そのアドレス宛に、パスワードを再設定するためのリンクをお送りします。
+    create:
       notice email on way: すみません。紛失してしまいました :-( しかし、メールをお送りしたので、すぐにリセットできるでしょう。
       notice email cannot find: 申し訳ありませんが、このメール アドレスは見つかりません。
-    reset_password:
+    edit:
       title: パスワードの再設定
       heading: '%{user} のパスワードのリセット'
       reset: パスワードを初期化
-      flash changed: あなたのパスワードは変更されました。
       flash token bad: キーワードが見つかりません。URL を確認してください。
+    update:
+      flash changed: あなたのパスワードは変更されました。
   preferences:
     show:
       title: 個人設定
@@ -1757,9 +1762,8 @@ ja:
     new:
       title: ログイン
       heading: ログイン
-      email or username: 'メール アドレスまたは利用者名:'
+      email or username: 'メールアドレスまたは利用者名:'
       password: 'パスワード:'
-      openid_html: '%{logo} OpenID:'
       remember: ログイン状態を保持
       lost password link: パスワードを忘れた場合はこちら
       login_button: ログイン
@@ -1901,12 +1905,7 @@ ja:
       no_iframe_support: あなたのブラウザーは、この機能に必須の HTML iframe に未対応です。
     export:
       title: エクスポート
-      area_to_export: エクスポートする領域
       manually_select: ドラッグして別の領域を選択
-      format_to_export: エクスポートするファイル形式
-      osm_xml_data: OpenStreetMap XML データ
-      map_image: 地図画像 (標準レイヤーを表示)
-      embeddable_html: 埋め込み HTML
       licence: ライセンス
       too_large:
         advice: '上のエクスポートが失敗した場合は、以下に列挙した情報源のいずれかの使用を検討してください:'
@@ -1923,17 +1922,6 @@ ja:
         other:
           title: 他の情報源
           description: OpenStreetMap ウィキに記載されている追加の情報源
-      options: オプション
-      format: ファイル形式
-      scale: 縮尺
-      max: 最大
-      image_size: 画像サイズ
-      zoom: ズーム
-      add_marker: マーカーを地図に追加
-      latitude: '緯度:'
-      longitude: '経度:'
-      output: 出力
-      paste_html: 以下の HTML をあなたのサイトに貼り付けてください
       export_button: エクスポート
     fixthemap:
       title: 問題点の報告 / 地図の修正
@@ -1956,14 +1944,11 @@ ja:
       beginners_guide:
         title: 初心者向けの手引き
         description: コミュニティは、初心者向けガイドが整備しています。
-      help:
-        title: ヘルプフォーラム
-        description: OpenStreetMap の Q&A サイトで質問したり回答を検索したりする。
+      community:
+        title: コミュニティフォーラム
       mailing_lists:
         title: メーリング リスト
         description: メーリングリストは話題や地域ごとに多種多様で、質問や興味のある事項について議論できる場です。
-      community:
-        title: コミュニティフォーラム
       irc:
         title: IRC
         description: 多様な言語によるいろいろな話題を取上げた双方向性チャット
@@ -2016,35 +2001,24 @@ ja:
           footway: 歩道
           rail: 鉄道
           subway: 地下鉄
-          tram:
-          - 軽便鉄道
-          - 路面電車
-          cable:
-          - 交走式ロープウェイ
-          - チェアリフト
-          runway:
-          - 空港滑走路
-          - 空港誘導路
-          apron:
-          - 空港ビル
-          - 空港ターミナル
+          cable_car: 交走式ロープウェイ
+          chair_lift: チェアリフト
+          runway: 空港滑走路
+          taxiway: 空港誘導路
+          apron: 空港ビル
           admin: 行政境界
           forest: 森
           wood: 森林
           golf: ゴルフ場
           park: 公園
+          common: 共有地
           resident: 住宅地
-          common:
-          - 共有地
-          - 牧草地
-          - 庭園
           retail: 小売業地域
           industrial: 工業地域
           commercial: オフィス地域
           heathland: 荒地
-          lake:
-          - 湖
-          - 溜池
+          lake: 湖
+          reservoir: 溜池
           farm: 農牧場
           brownfield: 褐色地
           cemetery: 墓地
@@ -2053,14 +2027,12 @@ ja:
           centre: スポーツセンター
           reserve: 自然保護区
           military: 軍用地域
-          school:
-          - 学校
-          - 大学
+          school: 学校
+          university: 大学
           building: 重要建造物
           station: 鉄道駅
-          summit:
-          - 山脈
-          - 山頂
+          summit: 山脈
+          peak: 山頂
           tunnel: 点線の枠 = トンネル
           bridge: 黒枠 = 橋梁
           private: 私的通行
@@ -2390,6 +2362,7 @@ ja:
       my_dashboard: 私のダッシュボード
       blocks on me: 自分に与えられたブロック
       blocks by me: 自分が実行したブロック
+      create_mute: この利用者をミュートする
       edit_profile: プロフィールを編集
       send message: メッセージを送信
       diary: 日記
@@ -2402,7 +2375,6 @@ ja:
       ct status: '協力者規約:'
       ct undecided: 未決定
       ct declined: 拒否
-      latest edit: '最終編集 %{ago}:'
       email address: 'メール アドレス:'
       created from: '作成日:'
       status: '状態:'
@@ -2509,8 +2481,8 @@ ja:
     revoke:
       title: '%{block_on} のブロックの取り消し'
       heading_html: ブロックは %{block_on} に %{block_by} によって取り消されました。
-      time_future: このブロックは %{time} に終了します。
-      past: このブロックは%{time}に終了したため、もう取り消せません。
+      time_future_html: このブロックは %{time} に終了します。
+      past_html: このブロックは%{time}に終了したため、もう取り消せません。
       confirm: このブロックを本当に取り消しますか?
       revoke: 取り消す!
       flash: このブロックは取り消されました。
@@ -2639,11 +2611,9 @@ ja:
           other: この地点まで%{count}フィート
       base:
         standard: 標準
-        cyclosm: CyclOSM
         cycle_map: サイクリングマップ
         transport_map: 交通マップ
         hot: Humanitarian
-        opnvkarte: ÖPNVKarte
       layers:
         header: 地図のレイヤー
         notes: 地図メモ
index 747ff26f02624e5c2f3f66989be406f37d1c475b..baf9f28ed311b00f53e03fdb6ca75f00b203ee7d 100644 (file)
@@ -156,12 +156,8 @@ ka:
       way_paginated: ხაზები (%{x}-%{y} %{count}-დან)
       relation: ურთიერთობები (%{count})
       relation_paginated: ურთიერთობები (%{x}-%{y} %{count}-დან)
-      comment: კომენტარები (%{count})
       changesetxml: ცვლილებების პაკეტის XML
       osmchangexml: osmChange XML
-      feed:
-        title: ცვლილებების პაკეტი %{id}
-        title_comment: ცვლილებების პაკეტი %{id} - %{comment}
       discussion: განხილვა
     node:
       title_html: 'წერტილი: %{name}'
@@ -229,6 +225,9 @@ ka:
     index:
       title: ცვლილებების პაკეტი
       load_more: მეტის ჩატვირთვა
+      feed:
+        title: ცვლილებების პაკეტი %{id}
+        title_comment: ცვლილებების პაკეტი %{id} - %{comment}
   changeset_comments:
     comment:
       commented_at_by_html: განაახლა %{when} წინ მომხმარებელმა %{user}
@@ -236,6 +235,7 @@ ka:
     contact:
       km away: '%{count}კმ თქვენგან'
       m away: '%{count}მ თქვენგან'
+      latest_edit_html: 'ბოლო რედაქტირება %{ago}:'
     popup:
       your location: თქვენი ადგილმდებარეობა
       friend: მეგობარი
@@ -794,7 +794,6 @@ ka:
   messages:
     inbox:
       title: მიღებული
-      my_inbox: ჩემი მიღებული
       messages: თქვენ გაქვთ %{new_messages} და %{old_messages}
       new_messages:
         one: '%{count} ახალი შეტყობინება'
@@ -802,12 +801,14 @@ ka:
       old_messages:
         one: '%{count} ძველი შეტყობინება'
         other: '%{count} ძველი შეტყობინება'
-      from: გამომგზავნი
-      subject: თემა
-      date: თარიღი
       no_messages_yet_html: თქვენ ჯერ არ გაქვთ შეტყობინებები. რატომ არ უნდა გავესაუბრო
         ვინმეს %{people_mapping_nearby_link}?
       people_mapping_nearby: ახლოს მყოფი ხალხი
+    messages_table:
+      from: გამომგზავნი
+      to: ვის
+      subject: თემა
+      date: თარიღი
     message_summary:
       unread_button: მონიშნეთ როგორც წაუკითხავი
       read_button: მონიშნეთ როგორც წაკითხული
@@ -830,9 +831,6 @@ ka:
       messages:
         one: თქვენ გაქვთ %{count} გაგზავნილი შეტყობინება
         other: თქვენ გაქვთ %{count} გაგზავნილი შეტყობინება
-      to: ვის
-      subject: თემა
-      date: თარიღი
       no_sent_messages_html: თქვენ ჯერ არ გაქვთ გაგზავნილი შეტყობინებები. რატომ არ
         უნდა გავესაუბრო ვინმეს %{people_mapping_nearby_link}?
       people_mapping_nearby: ახლოს მყოფი ხალხი
@@ -849,17 +847,19 @@ ka:
         როგორც შესაბამისი მომხმარებელი, რათა წაიკითხოთ ის.
     sent_message_summary:
       destroy_button: წაშლა
+    heading:
+      my_inbox: ჩემი მიღებული
     mark:
       as_read: შეტყობინება მონიშნულია როგორც წაკითხული
       as_unread: შეტყობინება მონიშნულია როგორც წაუკითხავი
     destroy:
       destroyed: შეტყობინება წაშლილია
   passwords:
-    lost_password:
+    new:
       title: პაროლის აღდგენა
       heading: დაგავიწყდათ პაროლი?
       email address: 'ელ. ფოსტის მისამართი:'
-    reset_password:
+    update:
       flash changed: თქვენი პაროლი შეიცვალა.
   profiles:
     edit:
@@ -872,7 +872,6 @@ ka:
       heading: შესვლა
       email or username: 'ელ. ფოსტის მისამართი, ან მომხმარებლის სახელი:'
       password: 'პაროლი:'
-      openid_html: '%{logo} OpenID:'
       remember: დამიმახსოვრე
       lost password link: დაგავიწყდათ პაროლი?
       login_button: შესვლა
@@ -901,25 +900,11 @@ ka:
       user_page_link: მომხმარებლის გვერდი
     export:
       title: ექსპორტი
-      area_to_export: ტერიტორია ექსპორტისათვის
       manually_select: სხვა რეგიონის გამოყოფა ხელით
-      format_to_export: ექსპორტის ფორმატი
-      osm_xml_data: OpenStreetMap XML–ის მონაცემები
-      map_image: რუკის სურათი (სტანდარტული ფენის ჩვენება)
       licence: ლიცენზია
       too_large:
         planet:
           title: პლანეტა OSM
-      options: პარამეტრები
-      format: ფორმატი
-      scale: მასშტაბი
-      max: მაქს.
-      image_size: გამოსახულების ზომა
-      zoom: გადიდება
-      add_marker: რუკაზე ნიშნულის დასმა
-      latitude: 'განედი:'
-      longitude: 'გრძედი:'
-      output: შედეგი
       export_button: ექსპორტი
     sidebar:
       search_results: ძიების შედეგები
@@ -941,14 +926,8 @@ ka:
           footway: საფეხმავლო გზა
           rail: რკინიგზა
           subway: მეტრო
-          tram:
-            1: ტრამვაი
-          cable:
-          - საბაგირო გზა
-          runway:
-          - აეროპორტის ასაფრენ-დასაფრენი ბილიკი
-          apron:
-            1: ტერმინალი
+          cable_car: საბაგირო გზა
+          runway: აეროპორტის ასაფრენ-დასაფრენი ბილიკი
           admin: ადმინისტრაციული საზღვარი
           forest: ტყე
           wood: ტყე
@@ -956,22 +935,19 @@ ka:
           park: პარკი
           resident: საცხოვრებელი ტერიტორია
           commercial: კომერციული ტერიტორია
-          lake:
-          - ტბა
-          - წყალსაცავი
+          lake: ტბა
+          reservoir: წყალსაცავი
           farm: ფერმა
           cemetery: სასაფლაო
           pitch: სპორტული მოედანი
           centre: სპორტული ცენტრი
           reserve: ნაკრძალი
           military: სამხედრო ტერიტორია
-          school:
-          - სკოლა
-          - უნივერსიტეტი
+          school: სკოლა
+          university: უნივერსიტეტი
           station: რკინიგზის სადგური
-          summit:
-          - მწვერვალი
-          - პიკი
+          summit: მწვერვალი
+          peak: პიკი
   traces:
     new:
       visibility_help: ეს რას ნიშნავს?
@@ -1036,7 +1012,6 @@ ka:
       edits: რედაქტირებები
       remove as friend: მეგობრებიდან წაშლა
       add as friend: მეგობრებში დამატება
-      latest edit: 'ბოლო რედაქტირება %{ago}:'
       email address: 'ელ. ფოსტის მისამართი:'
       created from: 'შექმნილია:'
       status: 'სტატუსი:'
@@ -1075,8 +1050,8 @@ ka:
       title: მომხმარებლის ბლოკირებები
       heading: მომხმარებლის ბლოკირებების სია
     revoke:
-      time_future: ეს ბლოკირება დასრულდა %{time}.
-      past: ეს ბლოკირება დასრულდა %{time} წინ და მისი გაუქმება უკვე შეუძლებელია.
+      time_future_html: ეს ბლოკირება დასრულდა %{time}.
+      past_html: ეს ბლოკირება დასრულდა %{time} წინ და მისი გაუქმება უკვე შეუძლებელია.
       confirm: დარწმუნებული ხართ, რომ ამ ბლოკირების მოხსნა გსურთ?
       revoke: განბლოკვა!
       flash: ეს ბლოკირება მოიხსნა.
index a5abc42d71a5ac365c218fdddb45eac3c025508f..bde2c84e104e7d92eadc2f85838e9e6469e3223b 100644 (file)
@@ -252,12 +252,8 @@ kab:
       way_paginated: Iberdan (%{x}-%{y} si %{count})
       relation: Assaɣen (%{count})
       relation_paginated: Assaɣen (%{x}-%{y} si %{count})
-      comment: Iwenniten (%{count})
       changesetxml: XML n ugraw n ibeddilen
       osmchangexml: XML osmChange
-      feed:
-        title: Agraw n usnifel %{id}
-        title_comment: Agraw n ubeddel %{id} - %{comment}
       join_discussion: Qqen akken ad tedduḍ ar usqerdec
       discussion: Asqerdec
       still_open: Tagrumma isenfilen zgan ldin - asqerdec ad yili mara isenfilen meṛṛa
@@ -357,6 +353,9 @@ kab:
       no_more_area: Ulac agraw-nniḍen n usnifel yettwafen di temnaḍt-agi.
       no_more_user: Ulac agraw-nniḍen n usnifel n useqdac-agi.
       load_more: Sali ugar
+      feed:
+        title: Agraw n usnifel %{id}
+        title_comment: Agraw n ubeddel %{id} - %{comment}
     timeout:
       sorry: Suref-aɣ, tabdart n igrawen n usnifel i d-sutreḍ tettwai ddeqs n wakud
         akkena d d-ali.
@@ -376,6 +375,7 @@ kab:
     contact:
       km away: '%{count} km'
       m away: yebɛed s %{count} m
+      latest_edit_html: 'Asnifel aneggaru %{ago} :'
     popup:
       your location: Adig-ik
       friend: Amdakkel
@@ -902,9 +902,10 @@ kab:
   messages:
     inbox:
       title: Tanaka n urmas
-      my_inbox: Tanaka-iw n urmas
       messages: Ɣur-k %{new_messages} akked %{old_messages}
+    messages_table:
       from: Seg
+      to: I
       subject: Asentel
       date: Azemz
     message_summary:
@@ -922,9 +923,6 @@ kab:
       body: Suref-aɣ, ulac izen s usulay-agi.
     outbox:
       title: Tanaka n tuzna
-      to: I
-      subject: Asentel
-      date: Azemz
     show:
       title: Ɣeṛ izen
       reply_button: Err
@@ -933,23 +931,26 @@ kab:
       back: Uɣal
     sent_message_summary:
       destroy_button: Kkes
+    heading:
+      my_inbox: Tanaka-iw n urmas
     mark:
       as_read: Izen yettwacred yettwaɣra
       as_unread: Izen yettwacred ur yettwaɣra ara
     destroy:
       destroyed: Izen yettwakkes
   passwords:
-    lost_password:
+    new:
       title: Awal uffir iṛuḥ
       heading: Tettuḍ awal uffir?
       email address: 'Tansa imayl:'
       new password button: Ales awennez n wawal uffir
-    reset_password:
+    edit:
       title: Ales awennez n wawal uffir
       heading: Ales awennez n wawal uffir i %{user}
       reset: Ales awennez n wawal uffir
-      flash changed: Awal-ik uffir ibeddel.
       flash token bad: Ajiṭun-agi ulac-it, ahat tuccḍa di tansa URL?
+    update:
+      flash changed: Awal-ik uffir ibeddel.
   profiles:
     edit:
       image: 'Tugna:'
@@ -967,7 +968,6 @@ kab:
       heading: Qqen
       email or username: 'Tansa imayl neɣ isem n useqdac:'
       password: 'Awal uffir:'
-      openid_html: '%{logo} OpenID:'
       remember: Cfu fell-i
       lost password link: Tweddreḍ awal-ik uffir?
       login_button: Qqen
@@ -1035,12 +1035,7 @@ kab:
       user_page_link: asebter n useqdac
     export:
       title: Sifeḍ
-      area_to_export: Tamnaḍt n usifeḍ
       manually_select: Fren s ufus tamnadt-nniḍen
-      format_to_export: Amasal n usifeḍ
-      osm_xml_data: Isefka XML OpenStreetMap
-      map_image: Tugna n tkarḍa (ad tesken akalku n tegnut)
-      embeddable_html: HTML yettwaslaɣen
       licence: Turagt
       too_large:
         advice: 'Ma yella asifed ddaw-a yeɣli, seqdec ma ulac aɣilif tiɣbula yettwabedren
@@ -1061,17 +1056,6 @@ kab:
         other:
           title: Iɣbula-nniḍen
           description: Ibula-nniḍen yettwabedren deug uwiki OpenStreetMap
-      options: Iɣewwaṛen
-      format: Amasal
-      scale: Sellum
-      max: afellay
-      image_size: Teɣzi n tugna
-      zoom: Semɣeṛ
-      add_marker: Rnu taṛekkizt ɣef tkarḍa
-      latitude: 'Tarrut:'
-      longitude: 'Tazegrart:'
-      output: Tuffɣa
-      paste_html: Senteḍ tangalt HTML deg usmel Web
       export_button: Sifeḍ
     fixthemap:
       how_to_help:
@@ -1092,9 +1076,6 @@ kab:
       beginners_guide:
         title: Amnir n ulemad
         description: Aminir i yinelmaden imaynuten i t-xeddem tmezdagnut.
-      help:
-        title: help.openstreetmap.org
-        description: Steqsi neɣ nadi tiririyin deg usmel akked isteqsiyen n OSM.
       mailing_lists:
         title: Tabraṭṭ n tnezwit
       irc:
@@ -1119,11 +1100,9 @@ kab:
       table:
         entry:
           forest: Tiẓgi
-          lake:
-          - Amdun
-          school:
-          - Aɣerbaz
-          - Tasdawit
+          lake: Amdun
+          school: Aɣerbaz
+          university: Tasdawit
     welcome:
       title: Anṣuf!
       whats_on_the_map:
@@ -1280,7 +1259,6 @@ kab:
       add as friend: Rnu amdakkel
       ct status: 'Tiwtilin n iwiziw:'
       ct declined: Yettwagi
-      latest edit: 'Asnifel aneggaru %{ago} :'
       email address: 'Tansa imayl:'
       created from: 'Yettwarna seg:'
       status: 'Addad:'
index 9a7569784c77e2777ff004e2f75389aa42836543..da3d4ddfc5348920bff3c727ecfa8e0905dab917 100644 (file)
@@ -189,7 +189,6 @@ kk-cyrl:
   auth:
     providers:
       none: Жоқ
-      openid: OpenID
       google: Google
       facebook: Facebook
       github: GitHub
@@ -249,11 +248,8 @@ kk-cyrl:
       node: Нүктелер (%{count})
       way: Сызықтар (%{count})
       relation: Қатынастар (%{count})
-      comment: Пікірлер (%{count})
       changesetxml: Өңдеме дестесінің XML-і
       osmchangexml: osmChange XML
-      feed:
-        title: Өңдеме дестесі %{id}
       discussion: Талқылау
     node:
       title_html: 'Нүкте: %{name}'
@@ -323,6 +319,8 @@ kk-cyrl:
       title_user_link_html: '%{user_link} жасаған өңдеме дестелері'
       title_friend: Достарымның өңдемелер дестелері
       load_more: Көбірек жүктеу
+      feed:
+        title: Өңдеме дестесі %{id}
   changeset_comments:
     comment:
       commented_at_by_html: '%{when} %{user} жаңартқан'
@@ -852,7 +850,7 @@ kk-cyrl:
     lost_password:
       subject: '[OpenStreetMap] Құпиясөзді арылту сұранысы'
   messages:
-    inbox:
+    messages_table:
       subject: Тақырып
     message_summary:
       unread_button: Оқылмаған деп белгілеу
@@ -866,10 +864,11 @@ kk-cyrl:
     sent_message_summary:
       destroy_button: Жою
   passwords:
-    lost_password:
+    new:
       email address: 'Е-пошта мекенжайы:'
-    reset_password:
+    edit:
       title: Құпиясөзді арылту
+    update:
       flash changed: Құпия сөзіңіз өзгертілді.
   preferences:
     show:
@@ -899,7 +898,6 @@ kk-cyrl:
       title: Кіру
       heading: Кіру
       password: 'Құпиясөз:'
-      openid_html: '%{logo} OpenID:'
       remember: Жүйеде қалу
       login_button: Кіру
       no account: Тіркелгіңіз жоқ па?
@@ -937,7 +935,6 @@ kk-cyrl:
           title: OSM ғаламшары
         overpass:
           title: Overpass API
-      image_size: 'Сурет өлшемі:'
       export_button: Экспорттау
     fixthemap:
       how_to_help:
@@ -971,36 +968,26 @@ kk-cyrl:
           unclassified: Жергілікті жол
           rail: Темір жол
           subway: Метро
-          tram:
-          - Жеңіл рельсті көлік
-          apron:
-          - Әуежай перроны
-          - терминал
+          apron: Әуежай перроны
           admin: Әкімшілік шекара
           forest: Орман
           golf: Гольф алаңы
           park: Саябақ
           resident: Тұрғын аудан
-          common:
-            1: шабындық
-            2: бақ
           retail: Сауда аймағы
           industrial: Өнеркәсіп аймағы
-          lake:
-          - Көл
+          lake: Көл
           farm: Ферма
           cemetery: Зират
           allotments: Саяжайлар
           pitch: Спорт алаңы
           centre: Спорт орталығы
           military: Әскери аймақ
-          school:
-          - Мектеп
-          - университет
+          school: Мектеп
+          university: университет
           building: Елеулі ғимарат
           station: Темір жол бекеті
-          summit:
-            1: шың
+          peak: шың
           bicycle_shop: Велосипед дүкені
           toilets: Дәретхана
     welcome:
@@ -1139,9 +1126,7 @@ kk-cyrl:
         out: Кішірейту
       base:
         standard: Cтандартты
-        cyclosm: CyclOSM
         transport_map: Көлік картасы
-        opnvkarte: ÖPNVKarte
       layers:
         header: Карта қабаттары
         title: Қабаттар
index d32001d7b5675f6a0fd5b3549671c8291e2ad8eb..88cc6e7b8603e552a8e42c8451832be432502658 100644 (file)
@@ -131,11 +131,7 @@ km:
       way_paginated: ផ្លូវចំនួន (%{x}-%{y} ក្នុងចំណោម %{count})
       relation: ទំនាក់ទំនងចំនួន (%{count})
       relation_paginated: ទំនាក់ទំនងចំនួន (%{x}-%{y} ក្នុងចំណោម %{count})
-      comment: មតិយោបល់ (%{count})
       changesetxml: សំណុំបន្លាស់ប្ដូរ​ XML
-      feed:
-        title: សំណុំបន្លាស់ប្ដូរ​ %{id}
-        title_comment: សំណុំបន្លាស់ប្តូរ​ %{id} - %{comment}
       join_discussion: កត់ឈ្មោះចូលដើម្បីចូលរួមពិភាក្សា
       discussion: ការពិភាក្សា
     node:
@@ -207,6 +203,9 @@ km:
       no_more_area: គ្មានសំណុំបន្លាស់ប្ដូរថែមទៀតទេក្នុងតំបន់នេះ។
       no_more_user: គ្មានសំណុំបន្លាស់ប្ដូរដោយអ្នកប្រើប្រាស់នេះថែមទៀតទេ។
       load_more: ផ្ទុកបន្ថែម
+      feed:
+        title: សំណុំបន្លាស់ប្ដូរ​ %{id}
+        title_comment: សំណុំបន្លាស់ប្តូរ​ %{id} - %{comment}
   dashboards:
     contact:
       km away: ចម្ងាយ %{count} គ.ម.
@@ -650,16 +649,13 @@ km:
       button: បញ្ជាក់​
       success: បានបញ្ជាក់អាសយដ្ឋានអ៊ីមែលរបស់អ្នករូចរាល់ហើយ!
   messages:
-    inbox:
+    messages_table:
       from: ពី​
+      to: ទៅ​
       subject: ប្រធានបទ​
       date: កាលបរិច្ឆេទ​
     new:
       back_to_inbox: ត្រឡប់ទៅប្រអប់សំបុត្រ​
-    outbox:
-      to: ទៅ​
-      subject: ប្រធានបទ​
-      date: កាលបរិច្ឆេទ​
   sessions:
     new:
       title: កត់ឈ្មោះចូល
@@ -694,20 +690,10 @@ km:
       not_public: អ្នកមិនបានកំណត់​កំណែប្រែរបស់អ្នកជាសាធារណៈ​។
       user_page_link: ទំព័រអ្នកប្រើប្រាស់​
     export:
-      area_to_export: ផ្ទៃដើម្បីនាំចេញ​
       licence: អាជ្ញាបណ្ណ
       too_large:
         planet:
           title: Planet OSM
-      options: ជម្រើស
-      format: ទម្រង់
-      scale: រង្វាស់​
-      max: អតិ.
-      image_size: ទំហំ​រូបភាព​
-      zoom: ពង្រីកចូលឬបង្រួមចេញ
-      add_marker: បន្ថែមសញ្ញាសម្គាល់ទៅលើផែនទី
-      latitude: រយៈទទឹង៖
-      longitude: រយៈបណ្ដោយ៖
       export_button: នាំចេញ​
     sidebar:
       search_results: លទ្ធផលនៃការស្វែងរក​
@@ -726,17 +712,14 @@ km:
           cycleway_local: ផ្លូវទោចក្រយានតំបន់
           rail: ផ្លូវដែក
           subway: ផ្លូវដែកក្រោមដី
-          tram:
-          - ផ្លូវដែកធុនស្រាល
           admin: ព្រំដែនរដ្ឋបាល
           forest: ព្រៃឈើ​
           park: ឧទ្យាន​
           industrial: តំបន់ឧស្សាហកម្ម​
           farm: កសិដ្ឋាន​
           centre: មជ្ឈមណ្ឌល​កីឡា​
-          school:
-          - សាលារៀន​
-          - សាកលវិទ្យាល័យ​
+          school: សាលារៀន​
+          university: សាកលវិទ្យាល័យ​
           station: ស្ថានីយ៍ផ្លូវដែក
   traces:
     new:
index 1a2964d2073224d735a8dfc44ce12ea0f09a0b6a..af159d052c3547634510f3f7627a9ccdbe220150 100644 (file)
@@ -39,6 +39,7 @@ kn:
         update: ನವೀಕರಿಸಿ
       trace:
         create: ಅಪ್ಲೋಡ್
+        update: ಬದಲಾವಣೆಗಳನ್ನು ಉಳಿಸಿ
   activerecord:
     errors:
       messages:
@@ -121,6 +122,7 @@ kn:
         home_lon: ರೇಖಾಂಶ
         languages: ಅದ್ಯತೆಯ ಭಾಷೆಗಳು
         pass_crypt: ಪ್ರವೇಶಪದ
+        pass_crypt_confirmation: ಪ್ರವೇಶಪದವನ್ನು ಧೃಡೀಕರಿಸಿ
   datetime:
     distance_in_words_ago:
       about_x_hours:
@@ -146,8 +148,8 @@ kn:
         one: ೧ ಸೆಕೆಂಡ್ ಹಿಂದೆ
         other: '%{count} ಸೆಕೆಂಡುಗಳ ಹಿಂದೆ'
       x_minutes:
-        one: ೧ ಮಿನಿಟ್ ಹಿಂದೆ
-        other: '%{count} à²®à²¿à²¨à²¿à²\9fà³\81ಗಳ ಹಿಂದೆ'
+        one: '%{count} ನಿಮಿಷದ ಹಿಂದೆ'
+        other: '%{count} à²¨à²¿à²®à²¿à²·ಗಳ ಹಿಂದೆ'
       x_days:
         one: ೧ ದಿನದ ಹಿಂದೆ
         other: '%{count} ದಿನಗಳ ಹಿಂದೆ'
@@ -168,9 +170,10 @@ kn:
   auth:
     providers:
       none: ಯಾವುದೂ ಇಲ್ಲ
+      openid: ಓಪನ್ ಐಡಿ
       google: ಗೂಗಲ್
       facebook: ಫೇಸ್‍ಬುಕ್
-      microsoft: à²µà²¿à²\82ಡà³\8bಸà³\8d à²²à³\88ವ
+      microsoft: à²®à³\88à²\95à³\8dರà³\8bಸಾಫà³\8dà²\9f
       github: ಗಿಟ್‌ಹಬ್
       wikipedia: ವಿಕಿಪೀಡಿಯ
   api:
@@ -204,6 +207,16 @@ kn:
       external auth: ಬಾಹ್ಯ ದೃಢೀಕರಣ
       openid:
         link text: ಇದು ಏನು?
+      public editing:
+        enabled link text: ಇದು ಏನು?
+      contributor terms:
+        link text: ಇದು ಏನು?
+      save changes button: ಬದಲಾವಣೆಗಳನ್ನು ಉಳಿಸಿ
+      delete_account: ಖಾತೆಯನ್ನು ಅಳಿಸಿ
+    go_public:
+      heading: ಸಾರ್ವಜನಿಕ ಸಂಪಾದನೆ
+    destroy:
+      success: ಖಾತೆಯನ್ನು ಅಳಿಸಲಾಗಿದೆ.
   browse:
     created: ಸೃಷ್ಟಿಸಲ್ಪಟ್ಟ
     closed: ಮುಚ್ಚಲಾಗಿದೆ
@@ -225,10 +238,6 @@ kn:
       way_paginated: ದಾರಿಗಳು (%{x}-%{y} ರ %{count})
       relation: ಸಂಬಂಧಗಳು (%{count})
       relation_paginated: ಸಂಬಂಧಗಳು(%{x}-%{y} of %{count})
-      comment: ಕಾಮೆಂಟ್ಗಳನ್ನು (%{count})
-      feed:
-        title: ಬದಲಾವಣೆಗಳು %{id}
-        title_comment: ಬದಲಾವಣೆಗಳು %{id} - %{comment}
       join_discussion: ‍ಚರ್ಚೆಗೆ ಸೇರಲು ಲಾಗ್ ಇನ್ ಆಗಿರಿ
       discussion: ಚರ್ಚೆ
     node:
@@ -305,6 +314,9 @@ kn:
       no_more_area: ಈ ಪ್ರದೇಶದಲ್ಲಿ ಇನ್ಯಾವುದೇ ಬದಲಾವಣೆಗಳಿಲ್ಲ.
       no_more_user: ಈ ಬಳಕೆದಾರರಿಂದ ಇನ್ಯಾವುದೇ ಬದಲಾವಣೆಗಳಿಲ್ಲ.
       load_more: ಇನ್ನೂ ತೋರಿಸಿ
+      feed:
+        title: ಬದಲಾವಣೆಗಳು %{id}
+        title_comment: ಬದಲಾವಣೆಗಳು %{id} - %{comment}
     timeout:
       sorry: ಕ್ಷಮಿಸಿ, ನೀವು ಕೇಳಿದ ಬದಲಾವಣಾ ಪಟ್ಟಿ ಪಡೆಯಲು ದೀರ್ಘ ಸಮಯ ಬೇಕಾಯಿತು.
   changeset_comments:
@@ -319,6 +331,7 @@ kn:
       km away: '%{count} ಕಿಮೀ ದೂರ'
       m away: '%{count} ಮೀ ದೂರ'
     popup:
+      your location: ನಿಮ್ಮ ಸ್ಥಳ
       friend: ಗೆಳೆಯ
     show:
       my friends: ನನ್ನ ಗೆಳೆಯರು
@@ -337,6 +350,7 @@ kn:
       in_language_title: ದಿನಚರಿ ದಾಖಲಾತಿ %{language}ನಲ್ಲಿ
       new: ಹೊಸದಾದ ದಿನಚರಿ ದಾಖಲು
       new_title: ನನ್ನ ಬಳಕೆದಾರ ದಿನಚರಿಯಲ್ಲಿ ಹೊಸ ದಾಖಲಾತಿ ನಿರ್ಮಿಸಿ
+      my_diary: ನನ್ನ ಡೈರಿ
       no_entries: ದಿನಚರಿ ದಾಖಲಾತಿಗಳಿಲ್ಲ
       recent_entries: ಇತ್ತೀಚೆಗಿನ ದಿನಚರಿ ದಾಖಲಾತಿಗಳು
       older_entries: ಹಳೆಯ ದಾಖಲಾತಿಗಳು
@@ -382,15 +396,22 @@ kn:
       comment: ಟಿಪ್ಪಣಿ
       newer_comments: ಹೊಸ ಟಿಪ್ಪಣಿಗಳು
       older_comments: ಹಳೆ ಟಿಪ್ಪಣಿಗಳು
+  friendships:
+    make_friend:
+      button: ಸ್ನೇಹಿತರಾಗಿ ಸೇರಿಸಿ
   geocoder:
     search_osm_nominatim:
       prefix:
+        aeroway:
+          helipad: ಹೆಲಿಪ್ಯಾಡ್
         amenity:
+          arts_centre: ಕಲಾ ಕೇಂದ್ರ
           atm: ಎಟಿಎಂ
           bank: ಬ್ಯಾಂಕ್
           bar: ಬಾರ್
           bench: ‍ಬೆಂಚ್
           bicycle_parking: ‍‍ಸೈಕಲ್ ನಿಲುಗಡೆ
+          brothel: ವೇಶ್ಯಾಗೃಹ
           bus_station: ಬಸ್ ನಿಲ್ದಾಣ
           cafe: ಕೆಫೆ
           car_rental: ಬಾಡಿಗೆ ಕಾರು
@@ -410,7 +431,8 @@ kn:
           ferry_terminal: ‍‍ಹಾಯಿದೋಣಿ ನಿಲ್ದಾಣ
           fire_station: ‍‍ಅಗ್ನಿಶಾಮಕ ಠಾಣೆ
           fountain: ‍ಕಾರಂಜಿ
-          fuel: ‍ಇಂಧನ
+          fuel: ಪೆಟ್ರೊಲ್ ಪಂಪ್
+          gambling: ಜೂಜಾಟ
           grave_yard: ಸ್ಮಾಶಾನ
           hospital: ಆಸ್ಪತ್ರೆ
           ice_cream: ‍ಐಸ್ ಕ್ರೀಂ
@@ -418,17 +440,20 @@ kn:
           library: ಗ್ರಂಥಾಲಯ
           marketplace: ‍‍ಮಾರುಕಟ್ಟೆ
           monastery: ‍‍ಮಠ
+          parking: ಪಾರ್ಕಿಂಗ್
           pharmacy: ‍‍ಔ‍ಷಧಾಲಯ
           place_of_worship: ‍‍ಆರಾಧನಾ ಮಂದಿರ
           police: ಆರಕ್ಷಕ
           post_box: ಟಪಾಲು
           post_office: ಅಂಚೆ ಕಛೇರಿ
           prison: ಕಾರಾಗೃಹ
+          pub: ಪಬ್
           public_building: ಸಾರ್ವಜನಿಕ ಕಟ್ಟಡ
           restaurant: ‍‍ರೆಸ್ಟೋರೆಂಟ್
           school: ಶಾಲೆ
           social_centre: ಸಾಮಾಜಿಕ ತಾಣ
           swimming_pool: ಈಜು ಕೊಳ
+          taxi: ಟ್ಯಾಕ್ಸಿ
           theatre: ಕಲಾಭವನ
           toilets: ಶೌಚಾಲಯ
           townhall: ‍‍‍‍ಪುರಭವನ
@@ -444,12 +469,24 @@ kn:
         bridge:
           "yes": ಸೇತುವೆ
         building:
+          bungalow: ಬಂಗಲೆ
+          hospital: ಆಸ್ಪತ್ರೆ ಕಟ್ಟಡ
+          hotel: ಹೋಟೆಲ್ ಕಟ್ಟಡ
+          house: ಮನೆ
+          houseboat: ಹೌಸ್ ಬೋಟ್
+          hut: ಗುಡಿಸಲು
+          industrial: ಕೈಗಾರಿಕಾ ಕಟ್ಟಡ
+          kindergarten: ಶಿಶುವಿಹಾರ ಕಟ್ಟಡ
+          manufacture: ಉತ್ಪಾದನಾ ಕಟ್ಟಡ
+          office: ಕಚೇರಿ ಕಟ್ಟಡ
           public: ಸಾರ್ವಜನಿಕ ಕಟ್ಟಡ
+          residential: ವಸತಿ ಕಟ್ಟಡ
           roof: ಛಾವಣಿ
           school: ಶಾಲಾ ಕಟ್ಟಡ
           "yes": ಕಟ್ಟಡ
         craft:
           carpenter: ಬಡಗಿ
+          electrician: ಎಲೆಕ್ಟ್ರಿಷಿಯನ್
           photographer: ಛಾಯಾಗ್ರಾಹಕ
           tailor: ‍‍‍ದರ್ಜಿ
           "yes": ‍‍‍‍ಕರಕುಶಲ ಅಂಗಡಿಯು
@@ -478,13 +515,17 @@ kn:
           railway: ಐತಿಹಾಸಿಕ ರೈಲ್ವೆ
           roman_road: ರೋಮನ್ ರಸ್ತೆ
           stone: ಕಲ್ಲು
+          tomb: ಸಮಾಧಿ
           tower: ಗೋಪುರ
+        junction:
+          "yes": ಜಂಕ್ಷನ್
         landuse:
           cemetery: ಸ್ಮಶಾನ
           forest: ಅರಣ್ಯ
           grass: ‍ಹುಲ್ಲು
           mine: ಗಣಿ
           orchard: ತೋಟ
+          reservoir: ಜಲಾಶಯ
         leisure:
           dog_park: ಶ್ವಾನ ಉದ್ಯಾನ
           garden: ತೋಟ
@@ -527,9 +568,12 @@ kn:
           administrative: ಆಡಳಿತ
           architect: ವಾಸ್ತುಶಿಲ್ಪಿ
           company: ಕಂಪನಿ
+          educational_institution: ಶೈಕ್ಷಣಿಕ ಸಂಸ್ಥೆ
+          employment_agency: ಉದ್ಯೋಗ ಸಂಸ್ಥೆ
           government: ಸರ್ಕಾರಿ ಕಛೇರಿ
           lawyer: ವಕೀಲ
           ngo: ಸರ್ಕಾರೇತರ ಕಛೇರಿ
+          tax_advisor: ತೆರಿಗೆ ಸಲಹೆಗಾರರು
           "yes": ಕಛೇರಿ
         place:
           archipelago: ದ್ವೀಪ ಸಮೂಹ
@@ -549,6 +593,7 @@ kn:
           halt: ರೈಲು ನಿಲ್ದಾಣ
           junction: ರೈಲು ಜಂಕ್ಷನ್
           monorail: ಮೊನೊರೈಲು
+          rail: ರೈಲು
           station: ರೈಲು ನಿಲ್ದಾಣ
           stop: ರೈಲು ನಿಲ್ದಾಣ
         shop:
@@ -562,11 +607,13 @@ kn:
           chocolate: ಚಾಕೊಲೇಟ್
           clothes: ಬಟ್ಟೆಯ ಅಂಗಡಿ
           computer: ಗಣಕಯಂತ್ರದ ಅಂಗಡಿ
+          dairy: ಡೈರಿ ಅಂಗಡಿ
           florist: ಹೂವಿನಂಗಡಿ
           furniture: ‍‍‍‍‍ಪೀಠೋಪಕರಣ
           general: ಕಿರಾಣಿ ಅಂಗಡಿ
           gift: ಉಡುಗೊರೆ ಅಂಗಡಿ
           jewelry: ಆಭರಣಗಳ ಆಂಗಡಿ
+          kitchen: ಅಡುಗೆ ಅಂಗಡಿ
           "yes": ಅಂಗಡಿ
         tourism:
           hostel: ‍ವಸತಿ ನಿಲಯ
@@ -599,8 +646,15 @@ kn:
     index:
       search: ಹುಡುಕು
       user_not_found: ಬಳಕೆದಾರ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ
+      status: ಸ್ಥಿತಿಗತಿ
       reports: ವರದಿಗಳು
+      last_updated: ಕೊನೆಯ ಬದಲಾವಣೆ
+      states:
+        open: ತೆರೆ
+        resolved: ಪರಿಹರಿಸಲಾಗಿದೆ
     show:
+      resolve: ಪರಿಹರಿಸಿ
+      ignore: ನಿರ್ಲಕ್ಷಿಸಿ
       new_reports: ಹೊಸ ವರದಿಗಳು
   reports:
     new:
@@ -625,10 +679,13 @@ kn:
     export_data: ದತ್ತಾಂಶ ರಫ್ತುಮಾಡು
     intro_header: ಒಪನ್ ಸ್ಟ್ರೀಟ್ ಮ್ಯಾಪ್ ಗೆ  ಸುಸ್ವಾಗತ!
     intro_2_create_account: ಹೊಸ ಬಳಕೆದಾರ ಖಾತೆಯನ್ನು ರಚಿಸಿ
+    partners_ucl: ಯುಸಿಎಲ್
+    partners_bytemark: ಬೈಟ್ಮಾರ್ಕ್ ಹೋಸ್ಟಿಂಗ್
     tou: ಬಳಕೆಯ ನಿಬಂಧನೆಗಳು
     help: ಸಹಾಯ
     about: ನಮ್ಮ ಬಗ್ಗೆ
     copyright: ಕಾಯ್ದಿರಿಸಿದ ಹಕ್ಕುಗಳು
+    communities: ಸಮುದಾಯಗಳು
     community: ಸಮುದಾಯ
     community_blogs: ಸಮುದಾಯದ ಬ್ಲಾಗ್ ಗಳು
     make_a_donation:
@@ -651,9 +708,15 @@ kn:
       greeting: ನಮಸ್ತೆ,
     changeset_comment_notification:
       greeting: ನಮಸ್ತೆ,
+  confirmations:
+    confirm:
+      button: ಧೃಡಪಡಿಸಿ
+    confirm_email:
+      button: ಧೃಡಪಡಿಸಿ
   messages:
-    inbox:
+    messages_table:
       from: ಇಂದ
+      to: ಗೆ
       subject: ವಿಷಯ
       date: ದಿನಾಂಕ
     message_summary:
@@ -662,10 +725,10 @@ kn:
     new:
       title: ಸಂದೇಶ ಕಳುಹಿಸಿ
       send_message_to_html: ಹೊಸ ಸಂದೇಶವನ್ನು %{name} ಗೆ ಕಳುಹಿಸಿ
+    no_such_message:
+      title: ಅಂತಹ ಯಾವುದೇ ಸಂದೇಶವಿಲ್ಲ
+      heading: ಅಂತಹ ಯಾವುದೇ ಸಂದೇಶವಿಲ್ಲ
     outbox:
-      to: ಗೆ
-      subject: ವಿಷಯ
-      date: ದಿನಾಂಕ
       people_mapping_nearby: ನಿಮ್ಮ ಹತ್ತಿರವಿರುವ ಬಳಕೆದಾರರು
     show:
       title: ಸಂದೇಶವನ್ನು ಓದಿ
@@ -681,22 +744,42 @@ kn:
     destroy:
       destroyed: ಸಂದೇಶವನ್ನು ಅಳಿಸಿ ಹಾಕಲಾಗಿದೆ
   passwords:
-    lost_password:
+    new:
       email address: 'ಮಿಂಚಂಚೆ ವಿಳಾಸ:'
-    reset_password:
+    update:
       flash changed: ನಿಮ್ಮ ಪ್ರವೇಶಪದವನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ.
   preferences:
     show:
       title: ನನ್ನ ಪ್ರಾಶಸ್ತ್ಯಗಳು
+      preferred_languages: ಅದ್ಯತೆಯ ಭಾಷೆಗಳು
+      edit_preferences: ಪ್ರಾಶಸ್ತ್ಯಗಳನ್ನು ಸಂಪಾದಿಸಿ
+    edit:
+      title: ಪ್ರಾಶಸ್ತ್ಯಗಳನ್ನು ಸಂಪಾದಿಸಿ
   profiles:
     edit:
       image: ಚಿತ್ರ
+      show: ತೋರಿಸಿ
+      delete: ಅಳಿಸಿ
   sessions:
     new:
       title: ಲಾಗ್ ಇನ್
       heading: ಲಾಗಿನ್
       password: 'ಪ್ರವೇಶಪದ:'
       login_button: ಲಾಗಿನ್
+      auth_providers:
+        google:
+          title: ಗೂಗಲ್ ಮೂಲಕ ಲಾಗಿನ್ ಆಗಿರಿ
+          alt: ಗೂಗಲ್ ಓಪನ್ ಐಡಿಯೊಂದಿಗೆ ಲಾಗಿನ್ ಮಾಡಿ
+        facebook:
+          title: ಫೇಸ್ಬುಕ್ ಮೂಲಕ ಲಾಗಿನ್ ಆಗಿರಿ
+          alt: ಫೇಸ್ಬುಕ್ ಖಾತೆಯೊಂದಿಗೆ ಲಾಗಿನ್ ಮಾಡಿ
+        microsoft:
+          alt: ಮೈಕ್ರೋಸಾಫ್ಟ್ ಖಾತೆಯೊಂದಿಗೆ ಪ್ರವೇಶಿಸಿ
+        github:
+          alt: ಗಿಟ್ಹಬ್ ಖಾತೆಯೊಂದಿಗೆ ಲಾಗಿನ್ ಮಾಡಿ
+        wikipedia:
+          title: ವಿಕಿಪೀಡಿಯದೊಂದಿಗೆ ಪ್ರವೇಶಿಸಿ
+          alt: ವಿಕಿಪೀಡಿಯ ಖಾತೆಯೊಂದಿಗೆ ಪ್ರವೇಶಿಸಿ
     destroy:
       title: ಲಾಗ್ ಔಟ್
       logout_button: ಲಾಗ್ ಔಟ್
@@ -717,6 +800,7 @@ kn:
   site:
     about:
       next: ಮುಂದಿನ
+      local_knowledge_title: ಸ್ಥಳೀಯ ಜ್ಞಾನ
       open_data_title: ಮುಕ್ತ ದತ್ತಾಂಶ
     copyright:
       foreign:
@@ -727,14 +811,22 @@ kn:
         mapping_link: ನಕ್ಷೆಯನ್ನು ಸಂಪಾದಿಸಿಲು ಪ್ರಾರಂಭಿಸಿ
       legal_babble:
         title_html: ಕೃತಿಸ್ವಾಮ್ಯ ಮತ್ತು ಪರವಾನಗಿ
+        contributors_at_austria: ಆಸ್ಟ್ರಿಯಾ
+        contributors_au_australia: ಆಸ್ಟ್ರೇಲಿಯಾ
+        contributors_ca_canada: ಕೆನಡಾ
+        contributors_cz_czechia: ಜೆಕಿಯಾ
+        contributors_fi_finland: ಫಿನ್ಲ್ಯಾಂಡ್
+        contributors_fr_france: ಫ಼್ರಾನ್ಸ್
+        contributors_nl_netherlands: ನೆದರ್ಲೆಂಡ್
+        contributors_nz_new_zealand: ನ್ಯೂಜಿಲ್ಯಾಂಡ್
+        contributors_rs_serbia: ಸರ್ಬಿಯಾ
+        contributors_si_slovenia: ಸ್ಲೊವೆನಿಯಾ
+        contributors_es_spain: ಸ್ಪೇನ್
+        contributors_za_south_africa: ದಕ್ಷಿಣ ಆಫ್ರಿಕಾ
+        contributors_gb_united_kingdom: ಯುನೈಟೆಡ್ ಕಿಂಗ್ಡಮ್
     export:
       title: ರಫ್ತು ಮಾಡು
       licence: ಪರವಾನಗಿ
-      options: ಆಯ್ಕೆಗಳು
-      scale: ಮಾಪಕ
-      latitude: 'ಅಕ್ಷಾಂಶ:'
-      longitude: 'ರೇಖಾಂಶ:'
-      output: ಔಟ್‌ಪುಟ್
       export_button: ರಫ್ತು ಮಾಡು
     fixthemap:
       title: ಸಮಸ್ಯೆಯನ್ನು ವರದಿ ಮಾಡಿ / ನಕ್ಷೆಯನ್ನು ಸರಿಪಡಿಸಿ
@@ -749,8 +841,6 @@ kn:
       welcome:
         url: /welcome
         title: ಒಪನ್ ಸ್ಟ್ರೀಟ್ ಮ್ಯಾಪ್ ಗೆ  ಸುಸ್ವಾಗತ
-      help:
-        title: ಸಹಾಯ ವೇದಿಕೆ
       irc:
         title: ಐ ಆರ್ ಸಿ
       wiki:
@@ -773,14 +863,12 @@ kn:
           forest: ಅರಣ್ಯ
           park: ಉದ್ಯಾನ
           resident: ವಾಸ ಮಾಡುವ ಸ್ಥಳ
-          lake:
-          - ಕೆರೆ
-          - ಅಣೆಕಟ್ಟು
+          lake: ಕೆರೆ
+          reservoir: ಅಣೆಕಟ್ಟು
           farm: ಒಕ್ಕಲು ಜಮೀನು
           cemetery: ಸ್ಮಾಶಾಣ
-          school:
-          - ಪಾಠಶಾಲೆ
-          - ವಿಶ್ವವಿದ್ಯಾಲಯ
+          school: ಪಾಠಶಾಲೆ
+          university: ವಿಶ್ವವಿದ್ಯಾಲಯ
           station: ರೈಲು ನಿಲ್ದಾಣ
     welcome:
       title: ಸುಸ್ವಾಗತ!
@@ -792,11 +880,23 @@ kn:
   traces:
     new:
       help: ಸಹಾಯ
+  oauth_clients:
+    show:
+      edit: ವಿವರಗಳನ್ನು ಸಂಪಾದಿಸಿ
+  oauth2_applications:
+    application:
+      edit: ಸಂಪಾದಿಸಿ
+      delete: ಅಳಿಸಿ
+    show:
+      edit: ಸಂಪಾದಿಸಿ
   users:
     terms:
       legale_names:
         france: ಫ಼್ರಾನ್ಸ್
         italy: ಇಟಲಿ
+    show:
+      my messages: ನನ್ನ ಸಂದೇಶಗಳು
+      edits: ಸಂಪಾದನೆಗಳು
   user_blocks:
     show:
       created: 'ಸೃಷ್ಟಿಸಲ್ಪಟ್ಟಿದೆ:'
index 8783f551ec8c31366ab5b0c60a6ada2ab8912eb8..6e1f58c769d06748cd43c72e99c50c184bb41cb6 100644 (file)
@@ -62,7 +62,7 @@ ko:
         create: 게시
         update: 업데이트
       issue_comment:
-        create: ì£¼ì\84\9d 추가
+        create: ì\9d\98견 추가
       message:
         create: 보내기
       client_application:
@@ -78,19 +78,19 @@ ko:
         create: 올리기
         update: 바뀜 저장
       user_block:
-        create: 차단 만들
+        create: 차단
         update: 차단 업데이트
   activerecord:
     errors:
       messages:
         invalid_email_address: 유효한 이메일 주소로 보이지 않음
-        email_address_not_routable: 경로를 잡을 수 없음
+        email_address_not_routable: 라우팅할 수 없음
     models:
       acl: 접근 제어 목록
       changeset: 바뀜집합
       changeset_tag: 바뀜집합 태그
-      country: 나라
-      diary_comment: 일기 의견
+      country: 국가
+      diary_comment: 일기 댓글
       diary_entry: 일기 항목
       friend: 친구
       issue: 이슈
@@ -202,19 +202,31 @@ ko:
         new_email: (절대 공개하지 않습니다)
   datetime:
     distance_in_words_ago:
-      about_x_hours: 약 %{count}시간 전
-      about_x_months: 약 %{count}개월 전
-      about_x_years: 약 %{count}년 전
-      almost_x_years: 거의 %{count}년 전
+      about_x_hours:
+        other: 약 %{count}시간 전
+      about_x_months:
+        other: 약 %{count}개월 전
+      about_x_years:
+        other: 약 %{count}년 전
+      almost_x_years:
+        other: 근 %{count}년 전
       half_a_minute: 30초 전
-      less_than_x_seconds: '%{count}초 미만 전'
-      less_than_x_minutes: '%{count}분 미만 전'
-      over_x_years: '%{count}년 이상 전'
-      x_seconds: '%{count}초 전'
-      x_minutes: '%{count}분 전'
-      x_days: '%{count}일 전'
-      x_months: '%{count}개월 전'
-      x_years: '%{count}년 전'
+      less_than_x_seconds:
+        other: '%{count}초 미만 전'
+      less_than_x_minutes:
+        other: '%{count}분 미만 전'
+      over_x_years:
+        other: '%{count}년 이상 전'
+      x_seconds:
+        other: '%{count}초 전'
+      x_minutes:
+        other: '%{count}분 전'
+      x_days:
+        other: '%{count}일 전'
+      x_months:
+        other: '%{count}개월 전'
+      x_years:
+        other: '%{count}년 전'
   editor:
     default: 기본값 (현재 %{name})
     id:
@@ -226,9 +238,9 @@ ko:
   auth:
     providers:
       none: 없음
-      openid: OpenID
       google: 구글
       facebook: 페이스북
+      microsoft: 마이크로소프트
       github: 깃허브
       wikipedia: 위키백과
   api:
@@ -243,7 +255,8 @@ ko:
         reopened_at_html: '%{when}에 다시 활성화됨'
         reopened_at_by_html: '%{user}님이 %{when}에 다시 활성화함'
       rss:
-        title: OpenStreetMap 참고
+        title: 오픈스트리트맵 참고
+        description_all: 신고 처리, 의견 추가, 닫힘 처리된 메모 목록
         description_area: 내 지역 [(%{min_lat}|%{min_lon}) -- (%{max_lat}|%{max_lon})]
           내의 참고나 신고, 의견, 닫힘 목록
         description_item: '%{id} 참고에 대한 RSS 피드'
@@ -260,10 +273,10 @@ ko:
         title: 내 계정 삭제
         warning: 경고! 계속 진행하면 계정이 삭제되며 되돌릴 수 없습니다.
         delete_account: 계정 삭제
-        delete_introduction: 아래 버튼을 사용하여 OpenStreetMap 계정을 삭제할 수 있습니다. 다음 세부 사항에 유의하십시오.
+        delete_introduction: 아래 버튼을 사용하여 오픈스트리트맵 계정을 삭제할 수 있습니다. 다음 세부 사항에 유의하십시오.
         delete_profile: 아바타, 설명, 집 위치를 포함한 프로필 정보가 제거됩니다.
         delete_display_name: 표시되는 이름이 삭제되며 다른 계정에서 재사용될 수 있습니다.
-        retain_caveats: 그러나, 귀하의 정보가 삭제된 후 OpenStreetMap에서 일부 정보가 유지될 수 있습니다.
+        retain_caveats: 그러나, 귀하의 정보가 삭제된 후 오픈스트리트맵에서 일부 정보가 유지될 수 있습니다.
         retain_edits: 지도 데이터베이스에 편집 내역이 있을 경우 그대로 유지됩니다.
         retain_traces: 업로드된 경로가 있는 경우 그대로 유지됩니다.
         retain_diary_entries: 일기 항목과 일기에 달린 댓글이 있는 경우 유지되지만 보기에서 숨겨집니다.
@@ -299,6 +312,10 @@ ko:
       heading: 공개 편집
       currently_not_public: 현재 귀하가 편집한 내용은 익명이며 사람들은 귀하에게 메시지를 보내거나 귀하의 위치를 볼 수 없습니다.
         수정한 내용을 표시하고 사람들이 웹사이트를 통해 연락할 수 있도록 하려면 아래 버튼을 클릭하세요.
+      only_public_can_edit: 0.6 API 전환으로 공개 사용자만 지도 데이터를 편집할 수 있습니다.
+      find_out_why: 원인 알아보기
+      email_not_revealed: 귀하의 이메일 주소는 공개 처리 시에도 외부에 노출되지 않습니다.
+      not_reversible: 이 조치는 되돌릴 수 없으며 현재 신규 사용자는 모두 기본적으로 공개가 됩니다.
       make_edits_public_button: 내 편집을 공개하기
     update:
       success_confirm_needed: 사용자 정보를 성공적으로 업데이트했습니다. 새 이메일 주소를 확인하기 위해 이메일을 확인하세요.
@@ -308,14 +325,21 @@ ko:
   browse:
     created: 만들어짐
     closed: 닫힘
+    created_ago_html: '%{time_ago}에 생성됨'
+    closed_ago_html: '%{time_ago}에 닫힘'
+    created_ago_by_html: '%{time_ago}에 %{user}님이 생성함'
+    closed_ago_by_html: '%{time_ago}에 %{user}님이 닫음'
+    deleted_ago_by_html: '%{time_ago}에 %{user}님이 삭제함'
+    edited_ago_by_html: '%{time_ago}에 %{user}님이 편집함'
     version: 버전
     in_changeset: 바뀜집합
     anonymous: 익명
     no_comment: (댓글 없음)
     part_of: '다음의 일부:'
     part_of_relations:
-      one: 관계 1건
       other: 관계 %{count}건
+    part_of_ways:
+      other: 길 %{count}건
     download_xml: XML 다운로드
     view_history: 역사 보기
     view_details: 자세한 내용 보기
@@ -329,12 +353,10 @@ ko:
       way_paginated: 길(%{count}개 중 %{x}-%{y})
       relation: 관계(%{count})
       relation_paginated: 관계(%{count}개 중 %{x}-%{y})
-      comment: 의견(%{count}개)
+      hidden_comment_by_html: '%{time_ago} %{user}님의 비밀 의견'
+      comment_by_html: '%{time_ago} %{user}님의 의견'
       changesetxml: 바뀜집합 XML
       osmchangexml: osmChange XML
-      feed:
-        title: 바뀜집합 %{id}
-        title_comment: 바뀜집합 %{id} - %{comment}
       join_discussion: 토론에 참여하려면 로그인하세요
       discussion: 토론
       still_open: 바뀜집합이 아직 열려 있습니다 - 토론은 바뀜집합이 닫히면 시작됩니다.
@@ -355,8 +377,7 @@ ko:
       history_title_html: '관계 역사: %{name}'
       members: 구성 요소
       members_count:
-        one: 구성 항목 1개
-        other: 구성 항목 %{count}개
+        other: 구성 요소 %{count}개
     relation_member:
       entry_role_html: '%{type}에서 %{role}의 %{name}'
       type:
@@ -441,6 +462,9 @@ ko:
       no_more_area: 이 지역에서 바뀜집합이 더 없습니다.
       no_more_user: 이 사용자의 바뀜집합이 더 없습니다.
       load_more: 더 불러오기
+      feed:
+        title: 바뀜집합 %{id}
+        title_comment: 바뀜집합 %{id} - %{comment}
     timeout:
       sorry: 죄송합니다, 요청하는 바뀜집합 목록을 가져오는 데 너무 오래 걸렸습니다.
   changeset_comments:
@@ -450,14 +474,15 @@ ko:
     comments:
       comment: '바뀜집합 #%{changeset_id}에 %{author}님이 새 댓글을 남김'
     index:
-      title_all: OpenStreetMap 바뀜집합 토론
-      title_particular: 'OpenStreetMap 바뀜집합 #%{changeset_id} 토론'
+      title_all: 오픈스트리트맵 바뀜집합 토론
+      title_particular: '오픈스트리트맵 바뀜집합 #%{changeset_id} 토론'
     timeout:
       sorry: 죄송합니다, 요청하는 바뀜집합 댓글을 불러오는 데 너무 오래 걸렸습니다.
   dashboards:
     contact:
       km away: '%{count}km 거리'
       m away: '%{count}m 거리'
+      latest_edit_html: '마지막 편집 (%{ago}):'
     popup:
       your location: 내 위치
       nearby mapper: 근처 매퍼
@@ -512,9 +537,8 @@ ko:
       comment_link: 이 항목에 의견 남기기
       reply_link: 저자에게 메시지 보내기
       comment_count:
-        zero: 댓글 없음
-        one: 댓글 %{count}개
-        other: 댓글 %{count}개
+        other: 의견 %{count}개
+      no_comments: (댓글 없음)
       edit_link: 이 항목 편집
       hide_link: 이 항목 숨기기
       unhide_link: 이 항목 숨기기 취소
@@ -555,20 +579,32 @@ ko:
       applications:
         create:
           notice: 애플리케이션을 등록했습니다.
+    openid_connect:
+      errors:
+        messages:
+          subject_not_configured: Doorkeeper::OpenidConnect.configure.subject 설정 누락으로
+            인해 ID 토큰 생성에 실패했습니다.
+    scopes:
+      address: 내 주소 보기
+      email: 내 이메일 주소 보기
+      openid: 계정 인증하기
+      phone: 내 전화번호 보기
+      profile: 내 프로필 정보 보기
   errors:
     contact:
       contact_url_title: 다양한 연락 방법이 설명되어 있습니다.
       contact: 여러 연락 수단
-      contact_the_community_html: 끊어진 링크나 버그를 발견했다면 언제든지 OpenStreetMap 커뮤니티에 %{contact_link}으로
+      contact_the_community_html: 끊어진 링크나 버그를 발견했다면 언제든지 오픈스트리트맵 커뮤니티에 %{contact_link}으로
         알려주십시오. 요청의 정확한 URL을 기록해 두십시오.
     forbidden:
       title: 접근 거부됨
-      description: OpenStreetMap 서버에 요청한 이 작업은 관리자만 사용할 수 있습니다(HTTP 403).
+      description: 오픈스트리트맵 서버에 요청한 이 작업은 관리자만 사용할 수 있습니다(HTTP 403).
     internal_server_error:
       title: 애플리케이션 오류
+      description: 오픈스트리트맵 서버가 예상치 못한 상태에 빠져 요청을 수행하지 못했습니다 (HTTP 500)
     not_found:
       title: 파일을 찾을 수 없습니다
-      description: OpenStreetMap 서버에서 해당 이름으로 파일/디렉토리/API 작업을 찾을 수 없습니다(HTTP 404).
+      description: 오픈스트리트맵 서버에서 해당 이름으로 파일/디렉토리/API 작업을 찾을 수 없습니다(HTTP 404).
   friendships:
     make_friend:
       heading: '%{user} 님을 친구로 추가할까요?'
@@ -585,6 +621,7 @@ ko:
   geocoder:
     search:
       title:
+        results_from_html: '%{results_link}의 결과'
         latlon: 내부
     search_osm_nominatim:
       prefix:
@@ -615,6 +652,7 @@ ko:
           terminal: 공항 터미널
           windsock: 바람자루
         amenity:
+          animal_boarding: 반려동물 돌봄소
           animal_shelter: 동물 보호소
           arts_centre: 예술의 전당
           atm: ATM
@@ -672,6 +710,7 @@ ko:
           love_hotel: 러브 호텔
           marketplace: 시장
           monastery: 수도원
+          money_transfer: 송금
           motorcycle_parking: 오토바이 주차장
           music_school: 음악 학교
           nightclub: 나이트 클럽
@@ -716,6 +755,7 @@ ko:
           water_point: 급수장
           "yes": 시설
         boundary:
+          aboriginal_lands: 원주민 영역
           administrative: 행정 구역 경계
           census: 인구조사 구역 경계
           national_park: 국립 공원
@@ -741,6 +781,7 @@ ko:
           college: 대학 건물
           commercial: 상업용 건물
           construction: 건설 중인 건물
+          detached: 단독주택
           dormitory: 기숙사
           duplex: 땅콩집
           farm: 농가
@@ -763,7 +804,9 @@ ko:
           roof: 지붕
           ruins: 폐허가 된 건물
           school: 학교 건물
+          semidetached_house: 반연립주택
           service: 서비스 건물
+          shed: 광
           stable: 마구간
           static_caravan: 캐러밴
           temple: 사원 건물
@@ -773,6 +816,7 @@ ko:
           warehouse: 저장고
           "yes": 건물
         club:
+          scout: 스카우트단 기지
           sport: 스포츠 클럽
           "yes": 클럽
         craft:
@@ -781,27 +825,37 @@ ko:
           brewery: 양조장
           carpenter: 목공
           caterer: 조리소
+          confectionery: 사탕가게
           dressmaker: 양장점
           electrician: 전기공
           electronics_repair: 전자제품 수리점
           gardener: 정원사
           glaziery: 유리 공장
+          handicraft: 수공업체
+          metal_construction: 금속 시공업자
           painter: 화가
           photographer: 사진 작가
           plumber: 배관공
+          roofer: 지붕 시공업자
           sawmill: 제재소
           shoemaker: 구두공
           stonemason: 석공
           tailor: 재단사
+          window_construction: 창문 시공업자
           winery: 포도주 양조장
           "yes": 공예품점
         emergency:
+          access_point: 비상시 구조 지점
           ambulance_station: 구급 의료 센터
           assembly_point: 집합 장소
           defibrillator: 제세동기
+          fire_extinguisher: 소화기
+          fire_water_pond: 방화용 연못
           landing_site: 비상 착륙지
+          life_ring: 구명부표
           phone: 긴급 전화
           siren: 비상 사이렌
+          suction_point: 소방용 수원지
           water_tank: 긴급 물탱크
         highway:
           abandoned: 버려진 고속도로
@@ -814,6 +868,7 @@ ko:
           cycleway: 자전거 전용도로
           elevator: 엘리베이터
           emergency_access_point: 긴급 액세스 포인트
+          emergency_bay: 비상주차대
           footway: 보도
           ford: 여울
           give_way: 양보 표지
@@ -846,6 +901,7 @@ ko:
           track: 오솔길
           traffic_mirror: 도로반사경
           traffic_signals: 교통 신호
+          trailhead: 산책로 기점
           trunk: 간선 도로
           trunk_link: 간선 도로
           turning_loop: 방향전환 운전용 루프선
@@ -854,6 +910,7 @@ ko:
         historic:
           aircraft: 역사적인 항공기
           archaeological_site: 유적지
+          bomb_crater: 옛 폭탄 구덩이
           battlefield: 전쟁터
           boundary_stone: 경계석
           building: 역사적 건물
@@ -955,11 +1012,14 @@ ko:
           antenna: 안테나
           avalanche_protection: 눈사태 보호 시설
           beacon: 신호등
+          beam: 들보
           beehive: 벌통
           breakwater: 방파제
           bridge: 다리
           bunker_silo: 벙커
+          cairn: 돌무더기
           chimney: 굴뚝
+          clearcut: 개벌지
           crane: 기중기
           cross: 교차로
           dolphin: 계선주
@@ -1007,6 +1067,7 @@ ko:
           "yes": 산길
         natural:
           atoll: 환초
+          bare_rock: 노출 암반
           bay: 만
           beach: 해변
           cape: 곶
@@ -1025,6 +1086,7 @@ ko:
           hill: 언덕
           hot_spring: 온천
           island: 섬
+          isthmus: 지협
           land: 토지
           marsh: 습지
           moor: 습지
@@ -1039,6 +1101,7 @@ ko:
           sand: 모래
           scree: 자갈 비탈
           scrub: 우거진 숲
+          shingle: 자갈
           spring: 온천
           stone: 돌
           strait: 해협
@@ -1054,6 +1117,7 @@ ko:
         office:
           accountant: 회계사무소
           administrative: 관리
+          advertising_agency: 광고대행업체
           architect: 건축가
           association: 협회
           company: 회사
@@ -1090,6 +1154,7 @@ ko:
           locality: 지역
           municipality: 지방자치체
           neighbourhood: 마을
+          plot: 대지
           postcode: 우편 번호
           quarter: 구역
           region: 지역
@@ -1103,6 +1168,7 @@ ko:
           "yes": 장소
         railway:
           abandoned: 폐선된 철도
+          buffer_stop: 철도 차막이
           construction: 건설 중인 철도
           disused: 폐선된 철도
           funicular: 케이블 카
@@ -1138,6 +1204,7 @@ ko:
           bakery: 제과점
           bathroom_furnishing: 욕실 설치 업체
           beauty: 미용실
+          bed: 침구점
           beverages: 음료 가게
           bicycle: 자전거 가게
           bookmaker: 마권업자
@@ -1251,6 +1318,7 @@ ko:
           attraction: 관광 명소
           bed_and_breakfast: 민박
           cabin: 여행자 오두막
+          camp_pitch: 캠프장 피치
           camp_site: 캠프장
           caravan_site: 캐러밴 사이트
           chalet: 샬렛
@@ -1322,10 +1390,10 @@ ko:
       status: 상태
       reports: 보고서
       last_updated: 최근 업데이트
+      last_updated_time_ago_user_html: '%{time_ago} %{user}님'
       link_to_reports: 보고서 보기
       reports_count:
-        one: 보고서 1개
-        other: 보고서 %{count}개
+        other: 신고 %{count}건
       reported_item: 항목 신고함
       states:
         ignored: 무시됨
@@ -1334,12 +1402,11 @@ ko:
     show:
       title: '%{status} 문제 #%{issue_id}'
       reports:
-        zero: 보고서 없음
-        one: 보고서 1개
-        other: 보고서 %{count}개
-      report_created_at: '%{datetime}에 처음 보고됨'
-      last_resolved_at: '%{datetime}에 마지막으로 해결됨'
-      last_updated_at: '%{displayname}에 의해 %{datetime}에 마지막으로 갱신됨'
+        other: 신고 %{count}건
+      no_reports: 보고서 없음
+      report_created_at_html: '%{datetime}에 처음 보고됨'
+      last_resolved_at_html: '%{datetime}에 마지막으로 해결됨'
+      last_updated_at_html: '%{displayname}에 의해 %{datetime}에 마지막으로 갱신됨'
       resolve: 해결
       ignore: 무시
       reopen: 다시 열림
@@ -1367,6 +1434,7 @@ ko:
   issue_comments:
     create:
       comment_created: 덧글이 성공적으로 생성되었습니다
+      issue_reassigned: 당신의 댓글이 작성되었으며 해당 문제가 다시 제기되었습니다
   reports:
     new:
       title_html: '%{link} 보고'
@@ -1405,7 +1473,7 @@ ko:
     project_name:
       title: 오픈스트리트맵
     logo:
-      alt_text: OpenStreetMap 로고
+      alt_text: 오픈스트리트맵 로고
     home: 현재 위치로 가기
     logout: 로그아웃
     log_in: 로그인
@@ -1423,16 +1491,18 @@ ko:
     user_diaries_tooltip: 사용자 일기 보기
     edit_with: '%{editor} 계정으로 편집'
     tag_line: 자유로운 위키 세계지도
-    intro_header: OpenStreetMap에 오신 것을 환영합니다!
-    intro_text: OpenStreetMap은 여러분과 같은 사람들이 만들어, 개방형 라이선스에 따라 자유롭게 사용할 수 있는 세계 지도입니다.
+    intro_header: 오픈스트리트맵에 오신 것을 환영합니다!
+    intro_text: 오픈스트리트맵 (OpenStreetMap)은 여러분과 같은 사람들이 만들어, 개방형 라이선스에 따라 자유롭게 사용할 수
+      있는 세계 지도입니다.
     intro_2_create_account: 사용자 계정을 만드세요
     hosting_partners_html: 호스팅은 %{ucl}, %{fastly}, %{bytemark}, 다른 %{partners}에서 지원합니다.
     partners_ucl: UCL
+    partners_fastly: 빠르게
     partners_bytemark: 바이트마크 호스팅
     partners_partners: 협력단체
     tou: 이용 약관
-    osm_offline: 데이터베이스 점검을 위해 OpenStreetMap의 데이터가 현재 오프라인입니다.
-    osm_read_only: 데이터베이스 점검을 위해 OpenStreetMap의 데이터가 현재 읽기 전용입니다.
+    osm_offline: 데이터베이스 점검을 위해 현재 오픈스트리트맵의 데이터가 오프라인 상태에 있습니다.
+    osm_read_only: 데이터베이스 점검을 위해 현재 오픈스트리트맵의 데이터가 읽기 전용으로 되어 있습니다.
     donate: 하드웨어 업데이트 기금에서 %{link}에 의해 OpenStreet를 지원합니다.
     help: 도움말
     about: 소개
@@ -1440,9 +1510,9 @@ ko:
     communities: 커뮤니티
     community: 공동체
     community_blogs: 공동체 블로그
-    community_blogs_title: OpenStreetMap 커뮤니티 회원 블로그
+    community_blogs_title: 오픈스트리트맵 커뮤니티 회원 블로그
     make_a_donation:
-      title: ê¸\88ì \84ì \81ì\9d¸ ê¸°ë¶\80ì\99\80 OpenStreetMap ì§\80ì\9b\90
+      title: ê¸°ë¶\80ë¡\9c ì\98¤í\94\88ì\8a¤í\8a¸ë¦¬í\8a¸ë§µ í\9b\84ì\9b\90í\95\98기
       text: 기부하기
     learn_more: 더 알아보기
     more: 더 보기
@@ -1451,30 +1521,37 @@ ko:
       subject: '[오픈스트리트맵] %{user}님이 일기 항목에 덧글을 남겼습니다'
       hi: 안녕하세요 %{to_user}님,
       header: '%{from_user}님이 오픈스트리트맵 일기 항목 내 %{subject} 주제에 덧글을 남겼습니다:'
+      header_html: '%{from_user}님이 오픈스트리트맵 일기 항목 내 %{subject} 주제에 덧글을 남겼습니다:'
       footer: '%{readurl}에서 댓글을 읽을 수가 있으며, %{commenturl}에서 댓글을 남기거나 %{replyurl}에서
         저자에게 메시지를 보낼 수 있습니다.'
+      footer_html: '%{readurl}에서 댓글을 읽을 수가 있으며, %{commenturl}에서 댓글을 남기거나 %{replyurl}에서
+        저자에게 메시지를 보낼 수 있습니다.'
     message_notification:
       subject: '[오픈스트리트맵] %{message_title}'
       hi: 안녕하세요 %{to_user}님,
-      header: '%{from_user}님이 OpenStreetMap을 통해 %{subject} 제목으로 된 메시지를 보냈습니다:'
-      header_html: '%{from_user}님이 OpenStreetMap을 통해 %{subject} 제목으로 된 메시지를 보냈습니다:'
+      header: '%{from_user}님이 오픈스트리트맵을 통해 %{subject} 제목으로 된 메시지를 보냈습니다:'
+      header_html: '%{from_user}님이 오픈스트리트맵을 통해 %{subject} 제목으로 된 메시지를 보냈습니다:'
+      footer: 또한 %{readurl}에서 메시지를 읽을 수 있고 %{replyurl}에서 저자에게 메시지를 보낼 수 있습니다.
       footer_html: 또한 %{readurl}에서 메시지를 읽을 수 있고 %{replyurl}에서 저자에게 메시지를 보낼 수 있습니다.
     friendship_notification:
       hi: 안녕하세요 %{to_user}님,
       subject: '[OpenStreetMap] %{user}님이 당신을 친구로 추가했습니다'
-      had_added_you: '%{user}님이 당신을 OpenStreetMap 친구로 추가했습니다.'
+      had_added_you: '%{user}님이 당신을 오픈스트리트맵 친구로 추가했습니다.'
       see_their_profile: '%{userurl}에서 그들의 프로필을 볼 수 있습니다.'
       see_their_profile_html: '%{userurl}에서 그들의 프로필을 볼 수 있습니다.'
       befriend_them: 또한 %{befriendurl}에서 친구로 추가할 수 있습니다.
+      befriend_them_html: 또한 %{befriendurl}에서 친구로 추가할 수 있습니다.
     gpx_failure:
       hi: 안녕하세요 %{to_user}님,
       failed_to_import: '가져오기에 실패했습니다. 오류는 다음과 같습니다:'
       subject: '[OpenStreetMap] GPX 가져오기 실패'
     gpx_success:
       hi: 안녕하세요 %{to_user}님,
+      loaded:
+        other: 가능한 점 %{count}개 가운데 점 %{trace_points}개를 성공적으로 불러왔습니다.
       subject: '[OpenStreetMap] GPX 가져오기 성공'
     signup_confirm:
-      subject: '[OpenStreetMap] OpenStreetMap에 오신 것을 환영합니다'
+      subject: '[OpenStreetMap] 오픈스트리트맵에 오신 것을 환영합니다'
       greeting: 안녕하세요!
       created: 누군가가 아마도 자신이 %{site_url} 에 계정을 만들었습니다.
       confirm: '무엇을 하기 전에 당신에게 온 요청을 확인해야 하며 만약 당신에게 온 요청이 맞다면 계정을 확인하기 위해 아래 링크를
@@ -1497,20 +1574,29 @@ ko:
         subject_own: '[오픈스트리트맵] %{commenter}님이 내 참고에 덧글을 남겼습니다'
         subject_other: '[오픈스트리트맵] %{commenter}님이 내가 관심을 가진 참고에 덧글을 남겼습니다'
         your_note: '%{commenter}님이 %{place} 근처의 내 지도 참고에 덧글을 남겼습니다.'
+        your_note_html: '%{commenter}님이 %{place} 근처의 내 지도 참고에 덧글을 남겼습니다.'
         commented_note: '%{commenter}님이 내가 덧글을 남긴 지도 참고에 덧글을 남겼습니다. 참고는 %{place} 근처에
           있습니다.'
+        commented_note_html: '%{commenter}님이 내가 덧글을 남긴 지도 참고에 덧글을 남겼습니다. 참고는 %{place}
+          근처에 있습니다.'
       closed:
         subject_own: '[OpenStreetMap] %{commenter}님이 당신의 참고 중 하나를 해결했습니다'
         subject_other: '[OpenStreetMap] %{commenter}님이 당신이 관심 있는 참고를 해결했습니다'
         your_note: '%{commenter}님이 %{place} 근처의 당신의 지도 참고 중 하나를 해결했습니다.'
+        your_note_html: '%{commenter}님이 %{place} 근처의 당신의 지도 참고 중 하나를 해결 처리했습니다.'
         commented_note: '%{commenter}님이 내가 덧글을 남긴 지도 참고를 해결했습니다. 참고는 %{place} 근처에
           있습니다.'
+        commented_note_html: '%{commenter}님이 내가 덧글을 남긴 지도 참고를 해결 처리했습니다. 참고는 %{place}
+          근처에 있습니다.'
       reopened:
         subject_own: '[OpenStreetMap] %{commenter}님이 당신의 참고 중 하나를 다시 활성했습니다'
         subject_other: '[OpenStreetMap] %{commenter}님이 당신이 관심 있는 참고를 다시 활성했습니다'
         your_note: '%{commenter}님이 %{place} 근처의 당신의 지도 참고 중 하나를 다시 활성했습니다.'
+        your_note_html: '%{commenter}님이 %{place} 근처의 당신의 지도 참고 중 하나를 다시 활성화했습니다.'
         commented_note: '%{commenter}님이 내가 덧글을 남긴 지도 참고를 다시 활성했습니다. 참고는 %{place} 근처에
           있습니다.'
+        commented_note_html: '%{commenter}님이 내가 덧글을 남긴 지도 참고를 다시 활성화했습니다. 참고는 %{place}
+          근처에 있습니다.'
       details: 참고에 대한 자세한 사항은 %{url}에서 찾을 수 있습니다.
       details_html: 참고에 대한 자세한 사항은 %{url}에서 볼 수 있습니다.
     changeset_comment_notification:
@@ -1520,12 +1606,18 @@ ko:
         subject_own: '[오픈스트리트맵] %{commenter}님이 내 바뀜집합에 덧글을 남겼습니다'
         subject_other: '[오픈스트리트맵] %{commenter}님이 내가 관심을 가진 바뀜집합에 뎟글을 남겼습니다'
         your_changeset: '%{commenter}님이 %{time}에 내가 바뀜집합에 댓글을 달았습니다'
+        your_changeset_html: '%{commenter}님이 %{time}에 내 바뀜집합에 댓글을 달았습니다'
         commented_changeset: '%{commenter}님이 %{time}에 %{changeset_author}님이 만든 내가
           주시중인 바뀜집합에 댓글을 남겼습니다'
+        commented_changeset_html: '%{commenter}님이 %{time}에 내가 주시하고 있는 %{changeset_author}님이
+          만든 바뀜집합에 댓글을 남겼습니다'
         partial_changeset_with_comment: ‘%{changeset_comment}’ 덧글로
+        partial_changeset_with_comment_html: ‘%{changeset_comment}’ 댓글로
         partial_changeset_without_comment: 의견 없이
       details: 바뀜집합에 대한 자세한 사항은 %{url}에서 찾을 수 있습니다.
+      details_html: 바뀜집합에 대한 자세한 사항은 %{url}에서 찾을 수 있습니다.
       unsubscribe: 이 바뀜집합의 업데이트를 받지 않으려면 %{url} 에 방문하여 "구독 해지"를 클릭하십시오.
+      unsubscribe_html: 이 바뀜집합의 업데이트를 받지 않으려면 %{url} 에 방문하여 '구독 해지'를 클릭하세요.
   confirmations:
     confirm:
       heading: 이메일을 확인하세요!
@@ -1536,6 +1628,8 @@ ko:
       success: 계정을 확인했습니다, 가입해주셔서 감사합니다!
       already active: 이 계정은 이미 확인했습니다.
       unknown token: 확인 코드가 만료되었거나 존재하지 않습니다.
+      resend_html: 확인 이메일을 다시 보내려면 %{reconfirm_link}
+      click_here: 여기를 클릭하세요
     confirm_resend:
       failure: '%{name} 사용자를 찾을 수 없습니다.'
     confirm_email:
@@ -1545,11 +1639,14 @@ ko:
       success: 이메일 주소 변경을 확인했습니다!
       failure: 이미 이 토큰으로 이메일 주소를 확인했습니다.
       unknown_token: 확인 코드가 만료되었거나 존재하지 않습니다.
+    resend_success_flash:
+      confirmation_sent: '%{email}로 새로운 계정확인 알림을 보냈으며 귀하의 계정이 확인되면 곧바로 지도 편집에 나설 수
+        있습니다.'
+      whitelist: 확인 요청 알림을 스팸으로 처리하는 시스템을 사용 중이신 경우에는 확인 요청에 응할 수 없으므로 %{sender}을(를)
+        수신 허용 목록에 추가해 주세요.
   messages:
     inbox:
       title: 받은 쪽지함
-      my_inbox: 받은 쪽지함
-      my_outbox: 보낸 쪽지함
       messages: '%{new_messages}와 %{old_messages}가 있습니다'
       new_messages:
         one: 새 메시지 %{count}개
@@ -1557,12 +1654,14 @@ ko:
       old_messages:
         one: 오래된 메시지 %{count}개
         other: 오래된 메시지 %{count}개
-      from: 보낸 사람
-      subject: 제목
-      date: 날짜
       no_messages_yet_html: 아직 메시지가 없습니다. %{people_mapping_nearby_link}에서 마음에 드는 친구를
         찾아보는 것은 어떨까요?
       people_mapping_nearby: 근처에 매핑한 사람
+    messages_table:
+      from: 보낸 사람
+      to: 받는이
+      subject: 제목
+      date: 날짜
     message_summary:
       unread_button: 읽지 않음으로 표시
       read_button: 읽음으로 표시
@@ -1581,14 +1680,9 @@ ko:
       body: 죄송합니다 해당 id로 된 메시지가 없습니다.
     outbox:
       title: 보낸 쪽지함
-      my_inbox: 받은 쪽지함
-      my_outbox: 보낸 쪽지함
       messages:
         one: 메시지 %{count}개를 보냈습니다
         other: 메시지 %{count}개를 보냈습니다
-      to: 받는이
-      subject: 제목
-      date: 날짜
       no_sent_messages_html: 아직 보낸 메시지가 없습니다. %{people_mapping_nearby_link}에서 마음에
         드는 친구를 찾아보는 것은 어떨까요?
       people_mapping_nearby: 근처에 매핑한 사람
@@ -1605,26 +1699,31 @@ ko:
         올바른 사용자로 로그인하세요.'
     sent_message_summary:
       destroy_button: 삭제
+    heading:
+      my_inbox: 받은 쪽지함
+      my_outbox: 보낸 쪽지함
     mark:
       as_read: 메시지를 읽은 것으로 표시
       as_unread: 메시지를 읽지 않은 것으로 표시
     destroy:
       destroyed: 메시지가 삭제됨
   passwords:
-    lost_password:
+    new:
       title: 잊어버린 비밀번호
       heading: 비밀번호를 잊으셨나요?
       email address: '이메일 주소:'
       new password button: 비밀번호 재설정
       help_text: 가입할 때 사용한 이메일 주소를 입력하세요, 비밀번호를 재설정하여 사용할 수 있는 링크를 보내드립니다.
+    create:
       notice email on way: 비밀번호를 잊었다니, 안타깝습니다 :-( 비밀번호 재설정을 할 수 있도록 이메일이 발송되었습니다.
       notice email cannot find: 이메일 주소를 찾지 못해 죄송합니다.
-    reset_password:
+    edit:
       title: 비밀번호 재설정
       heading: '%{user}의 비밀번호 재설정'
       reset: 비밀번호 재설정
-      flash changed: 비밀번호가 바뀌었습니다.
       flash token bad: 토큰을 찾지 못했습니다. URL을 확인했습니까?
+    update:
+      flash changed: 비밀번호가 바뀌었습니다.
   preferences:
     show:
       title: 내 환경 설정
@@ -1658,6 +1757,9 @@ ko:
       home location: 집 위치
       no home location: 집 위치를 입력하지 않았습니다.
       update home location on click: 지도에서 클릭하면 집 위치로 업데이트할까요?
+      show: 보기
+      delete: 삭제
+      undelete: 삭제 취소
     update:
       success: 프로필이 갱신 됨.
       failure: 프로필을 갱신할 수 없음.
@@ -1667,7 +1769,6 @@ ko:
       heading: 로그인
       email or username: '이메일 주소 또는 사용자 이름:'
       password: '비밀번호:'
-      openid_html: '%{logo} OpenID:'
       remember: 로그인 상태를 기억하기
       lost password link: 비밀번호를 잊으셨나요?
       login_button: 로그인
@@ -1687,8 +1788,8 @@ ko:
           title: 페이스북으로 로그인
           alt: 페이스북 계정으로 로그인하기
         microsoft:
-          title: 윈도 라이브로 로그인하기
-          alt: 윈도 라이브 계정으로 로그인하기
+          title: 마이크로소프트로 로그인하기
+          alt: 마이크로소프트 계정으로 로그인하기
         github:
           title: GitHub로 로그인
           alt: GitHub 계정으로 로그인
@@ -1703,7 +1804,7 @@ ko:
           alt: AOL OpenID로 로그인하기
     destroy:
       title: 로그아웃
-      heading: OpenStreetMap에서 로그아웃
+      heading: 오픈스트리트맵에서 로그아웃
       logout_button: 로그아웃
     suspended_flash:
       suspended: 죄송합니다. 의심스러운 활동으로 인해 계정이 정지되었습니다.
@@ -1724,23 +1825,49 @@ ko:
       image: 이미지
       alt: 대체 텍스트
       url: URL
+      codeblock: 코드 블록
     richtext_field:
       edit: 편집
       preview: 미리 보기
   site:
     about:
       next: 다음
+      heading_html: '%{copyright}OpenStreetMap %{br} 기여자'
       used_by_html: '%{name}은 수많은 웹사이트와 모바일 앱, 하드웨어 장치를 위해 지도 자료를 제공합니다'
-      lede_text: OpenStreetMap은 전 세계의 도로나 오솔길, 카페, 기차역을 비롯한 다양한 정보를 관리하고 기여하는 지도 편집자
-        공동체가 만들어 나갑니다.
+      lede_text: 오픈스트리트맵은 전 세계의 도로나 오솔길, 카페, 기차역을 비롯한 다양한 정보를 관리하고 기여하는 지도 편집자 공동체가
+        만들어 나갑니다.
       local_knowledge_title: 지역 지식
-      local_knowledge_html: OpenStreetMap은 지역 지식을 강조합니다. 기여자는 OSM이 정확하고 최신 상태라는 것이
-        í\99\95ì\9d¸ë\90\98ë\8a\94 í\95­ê³µ ì\82¬ì§\84ì\9d´ë\82\98 GPS ì\9e¥ì¹\98, ì \80ì°¨ì\9b\90 ê¸°ì\88 ë¶\84ì\95¼ ì§\80ë\8f\84를 ì\82¬ì\9a©í\95©ë\8b\88ë\8b¤.
+      local_knowledge_html: 오픈스트리트맵은 지역 지식을 강조합니다. 기여자는 OSM이 정확하고 최신 상태라는 것이 확인되는
+        항공 사진이나 GPS 장치, 저차원 기술분야 지도를 사용합니다.
       community_driven_title: 공동체 주도
+      community_driven_1_html: |-
+        오픈스트리트맵 커뮤니티는 다채롭고 열정적이며 매일 성장하고 있습니다.
+        열정적인 지도 제작자, GIS 전문가, OSM 서버를 운영하는 기술자, 재난 피해 지역을 매핑하는 인도주의자, 그리고 더 많은 사람들이 모여 오픈스트리트맵의 기여자로 나섭니다.
+        커뮤니티에 관한 자세한 사항은 %{osm_blog_link}, %{user_diaries_link}, %{community_blogs_link},
+        %{osm_foundation_link} 홈페이지를 참조하세요.
+      community_driven_osm_blog: OpenStreetMap 블로그
+      community_driven_user_diaries: 사용자 일기
+      community_driven_community_blogs: 공동체 블로그
+      community_driven_osm_foundation: OSM 재단
       open_data_title: 개방형 자료
+      open_data_1_html: |-
+        오픈스트리트맵은 %{open_data}입니다. 오픈스트리트맵과 기여자를 저작자로 명시하는 한 어떤 목적으로든 자유롭게 사용할 수 있습니다.
+         특정 방식으로 데이터를 변경하거나 2차 제작의 기반으로 삼는 경우, 동일한 라이선스에 한하여 그 결과물을 배포할 수 있습니다
+         자세한 내용은 %{copyright_license_link}를 참조하세요.
+      open_data_open_data: 개방형 데이터
+      open_data_copyright_license: 저작권 및 라이선스 페이지
       legal_title: 법률
+      legal_1_1_html: |-
+        본 사이트와 기타 관련 서비스의 운영은 커뮤니티의 위탁으로
+        %{openstreetmap_foundation_link}(OSMF)가 공식적으로 맡고 있습니다. OSMF가 운영하는 모든 서비스의 이용 시 %{terms_of_use_link}, %{aup_link}, %{privacy_policy_link}이 적용됩니다.
       legal_1_1_openstreetmap_foundation: 오픈스트리트맵 재단
       legal_1_1_terms_of_use: 이용 약관
+      legal_1_1_aup: 사용 범위 정책
+      legal_1_1_privacy_policy: 개인정보처리방침
+      legal_2_1_html: 라이선스, 저작권 또는 그 밖의 법무 관련 질문이 있는 경우 %{contact_the_osmf_link}.
+      legal_2_1_contact_the_osmf: OSMF에 문의하세요
+      legal_2_2_html: 오픈스트리트맵 (OpenStreetMap)과 지도 위 돋보기 로고는 %{registered_trademarks_link}입니다.
+      legal_2_2_registered_trademarks: OSMF의 등록 상표
       partners_title: 파트너
     copyright:
       foreign:
@@ -1755,41 +1882,130 @@ ko:
         mapping_link: 매핑을 시작
       legal_babble:
         title_html: 저작권 및 라이선스
+        introduction_1_html: 오픈스트리트맵%{registered_trademark_link}은 %{open_data}이며,
+          %{osm_foundation_link} (OSMF)에 의해 %{odc_odbl_link} (ODbL) 라이선스가 부여되어 있습니다.
+        introduction_1_open_data: 개방형 데이터
+        introduction_1_odc_odbl: 오픈 데이터 커먼즈 오픈 데이터베이스 라이선스
+        introduction_1_osm_foundation: 오픈스트리트맵 재단
         introduction_2_html: 오픈스트리트맵과 기여진에 대해 밝히는 조건으로 데이터를 자유롭게 복사, 배포, 전송 및 바꿀 수
           있습니다. 오픈스트리트맵의 데이터를 바꾸거나 데이터를 기초로 작업할 때는 오로지 같은 라이선스에 따라서만 결과를 배포할 수 있습니다.
           전체 %{legal_code_link}에서 귀하의 권리와 책임에 대해 자세히 설명합니다.
+        introduction_2_legal_code: 법규
         introduction_3_html: 오픈스트리트맵 문서는 %{creative_commons_link} 라이선스(CC BY-SA 2.0)에
           따라 쓸 수 있습니다.
         introduction_3_creative_commons: 크리에이티브 커먼즈 저작자표시-동일조건변경허락 2.0
         credit_title_html: 오픈스트리트맵의 기여진(credit)을 밝히는 방법
         credit_1_html: 오픈스트리트맵 데이터를 이용하려면 다음 두 가지를 해야 합니다.
         credit_2_1: 저작권 표시를 통해 오픈스트리트맵에 대한 기여진(credit)을 밝히십시오.
+        credit_2_2: 데이터 활용 시 오픈 데이터베이스 라이선스 (Open Database License)에 따른 것임을 밝혀 주시기
+          바랍니다.
+        credit_3_attribution_guidelines: 기여 지침
+        credit_4_1_this_copyright_page: 이 저작권 페이지
         attribution_example:
-          alt: 웹페이지에 OpenStreetMap에 표시하는 방법의 예
+          alt: 웹페이지에 오픈스트리트맵를 표시하는 방법의 예시
           title: 권리 표시 보기
         more_title_html: 자세히 찾기
+        more_1_1_osmf_licence_page: OSMF 라이선스 페이지
+        more_2_1_html: |-
+          OpenStreetMap은 공개 데이터이지만 제3자에게 지도 API를 무료로 제공할 수 없습니다.
+          %{api_usage_policy_link}, %{tile_usage_policy_link}, %{nominatim_usage_policy_link}를 참조하세요.
+        more_2_1_api_usage_policy: API 사용 정책
+        more_2_1_tile_usage_policy: 타일 사용 정책
+        more_2_1_nominatim_usage_policy: 지명 사용 정책
         contributors_title_html: 우리의 기여자
         contributors_intro_html: |-
           우리의 기여자는 수천 명입니다. 또한 국립지도 제작 기관과
           같은 다른 소스의 공개 라이선스의 데이터를 포함하고 있습니다:
+        contributors_at_credit_html: '%{austria}: %{stadt_wien_link} (%{cc_by_link}),
+          %{land_vorarlberg_link}, Land Tirol (%{cc_by_at_with_amendments_link})의
+          데이터를 포함합니다.'
+        contributors_at_austria: 오스트리아
+        contributors_at_stadt_wien: 슈타트 빈
+        contributors_at_cc_by: CC-BY
+        contributors_at_land_vorarlberg: 란트 포어아를베르크
+        contributors_at_cc_by_at_with_amendments: 개정된 CC BY AT
+        contributors_au_credit_html: '%{australia}: 호주 연방정부의 라이선스를 받은 &copy; %{geoscape_australia_link}의
+          행정구역 경계 데이터를 취합 및 개발하였습니다. 해당 데이터의 저작권은 %{cc_licence_link}입니다.'
+        contributors_au_australia: 오스트레일리아
+        contributors_au_geoscape_australia: 지오스케이프 오스트레일리아
+        contributors_au_cc_licence: 크리에이티브 커먼즈 저작권 4.0 국제 라이선스 (CC BY 4.0)
+        contributors_ca_credit_html: '%{canada}: GeoBase&reg;, GeoGratis(&copy; 캐나다
+          자연자원부), CanVec(&copy; 캐나다 자연자원부), StatCan(캐나다 연방통계청 지리과)의 데이터를 포함합니다.'
+        contributors_ca_canada: 캐나다
+        contributors_cz_credit_html: '%{czechia}: 국가 토지측량 지적국의 데이터가 포함되어 있으며, 저작권은
+          %{cc_licence_link}을 따릅니다.'
+        contributors_cz_czechia: 체코
+        contributors_cz_cc_licence: 크리에이티브 커먼즈 저작권 4.0 국제 라이선스 (CC BY 4.0)
+        contributors_fi_credit_html: '%{finland}: 핀란드 국립 지질조사국 지도 데이터베이스 및 기타 데이터셋의
+          데이터가 포함되어 있으며, 저작권은 %{nlsfi_license_link}를 따릅니다.'
+        contributors_fi_finland: 핀란드
+        contributors_fi_nlsfi_license: NLSFI 라이선스
+        contributors_fr_credit_html: |-
+          %{france}: 프랑스 국세청 (Direction Générale des Impôts)이 제공한
+          데이터를 포함합니다.
+        contributors_fr_france: 프랑스
+        contributors_nl_credit_html: '%{netherlands}: 2007년 &copy; AND 데이터 (%{and_link})를
+          포함합니다.'
+        contributors_nl_netherlands: 네덜란드
+        contributors_nz_credit_html: |-
+          %{new_zealand}: %{linz_data_service_link}
+          에서 가져온 데이터가 포함되어 있으며 %{cc_by_link}로 재사용이 허가되었습니다.
+        contributors_nz_new_zealand: 뉴질랜드
+        contributors_nz_linz_data_service: LINZ 데이터 서비스
+        contributors_nz_cc_by: 크리에이티브 커먼즈 저작자표시 4.0
+        contributors_rs_credit_html: |-
+          %{serbia}: 2018년 %{rgz_link} / %{open_data_portal}
+          (세르비아 공개 정보) 데이터를 포함합니다.
         contributors_rs_serbia: 세르비아
+        contributors_rs_rgz: 세르비아 측량국
+        contributors_rs_open_data_portal: 국가 공개 데이터 포털
+        contributors_si_credit_html: |-
+          %{slovenia}: %{gu_link} 및 %{mkgp_link}
+          (슬로베니아 공개 정보)의 데이터를 포함합니다.
+        contributors_si_slovenia: 슬로베니아
+        contributors_si_gu: 측량 지도 제작국
+        contributors_si_mkgp: 농림산림식품부
+        contributors_es_credit_html: |-
+          %{spain}: 스페인 국립지리연구소 (%{ign_link})와
+          국립지도시스템 (%{scne_link})
+          에서 가져온 데이터가 포함되어 있으며, %{cc_by_link}에 따라 재사용이 허가되었습니다.
+        contributors_es_spain: 스페인
+        contributors_es_cc_by: 크리에이티브 커먼즈 저작자표시 4.0
+        contributors_za_credit_html: '%{south_africa}: %{ngi_link}에서 가져온 데이터를 포함합니다.
+          저작권은 남아프리카 공화국 정부에 있습니다.'
+        contributors_za_south_africa: 남아프리카 공화국
+        contributors_gb_united_kingdom: 영국
+        contributors_2_html: 이러한 정보와 오픈스트리트맵의 개선에 도움이 되는 기타 자료에 대한 자세한 내용은 오픈스트리트맵
+          위키의 %{contributors_page_link}를 참조하십시오.
+        contributors_2_contributors_page: 기여자 페이지
         contributors_footer_2_html: |-
-          OpenStreetMap에 포함된 데이터는 원래 데이터 제공자가
-          OpenStreetMap을 보증하거나 어떠한 보증도 제공하거나
-          ì\96´ë\96 í\95\9c ì±\85ì\9e\84ë\8f\84 ì§\84ë\8b¤ë\8a\94 ê²\83ì\9d\84 ì\9d\98미í\95\98ì§\80 ì\95\8aì\8aµë\8b\88ë\8b¤.
+          오픈스트리트맵에 포함된 데이터는 해당 데이터 제공자가
+          오픈스트리트맵을 보증하거나, 보증을 제공하거나,
+          ì±\85ì\9e\84ì\9d\84 ì§\84ë\8b¤ë\8a\94 ê²\83ì\9d\84 ì\9d\98미í\95\98ì§\80 ì\95\8aì\8aµë\8b\88ë\8b¤.
         infringement_title_html: 저작권 침해
         infringement_1_html: |-
           OSM 기여자는 저작권 소유자로부터 명시적 허가 없이
           저작권이 있는 자료(예를 들어 Google 지도 또는 인쇄된 지도)에서
           데이터를 반입하지 않도록 주의하여야 합니다.
+        infringement_2_1_html: |-
+          오픈스트리트맵 데이터베이스나 본 사이트에 저작권이 있는 자료가
+          추가되어 부적절하다고 생각되면 %{takedown_procedure_link}를 참조하거나
+          %{online_filing_page_link}로 직접 신고해 주시기 바랍니다.
+        infringement_2_1_takedown_procedure: 게시 중단 절차
+        infringement_2_1_online_filing_page: 온라인 접수 페이지
+        trademarks_title: 상표
+        trademarks_1_1_html: |-
+          오픈스트리트맵 (OpenStreetMap)과 지도 위 돋보기 로고는 오픈스트리트맵 재단 (OpenStreetMap Foundation)의 등록 상표입니다. 상표 이용에 대해 궁금한 점이 있으면
+          %{trademark_policy_link}를 참조하세요.
+        trademarks_1_1_trademark_policy: 상표 정책
     index:
       js_1: 자바스크립트를 지원하지 않는 브라우저를 사용 중이거나, 자바스크립트가 활성화되어 있지 않습니다.
-      js_2: OpenStreetMap은 매끄러운 지도를 위해 자바스크립트를 사용합니다.
+      js_2: 오픈스트리트맵은 매끄러운 지도를 위해 자바스크립트를 사용합니다.
       permalink: 고유링크
       shortlink: 짧은링크
       createnote: 참고 추가
       license:
-        copyright: 저작권 OpenStreetMap 및 기여자, 오픈 라이선스로 배포
+        copyright: 저작권 오픈스트리트맵 및 기여자, 오픈 라이선스로 배포
       remote_failed: 편집을 실패했습니다 - JOSM이나 Merkaartor를 불러왔고 원격 제어 설정이 활성화되어 있는지 확인하세요
     edit:
       not_public: 공개할 편집을 설정하지 않았습니다.
@@ -1801,41 +2017,26 @@ ko:
       no_iframe_support: 브라우저가 이 기능에 필요한 HTML iframe을 지원하지 않습니다.
     export:
       title: 내보내기
-      area_to_export: 지역 내보내기
       manually_select: 수동으로 다른 지역 선택
-      format_to_export: 내보내기 형식
-      osm_xml_data: OpenStreetMap XML 데이터
-      map_image: 지도 그림 (표준 레이어 보이기)
-      embeddable_html: 내장된 HTML
       licence: 라이선스
+      licence_details_html: OpenStreetMap 데이터의 라이선스는 %{odbl_link} (ODbL)를 따릅니다.
       odbl: 오픈 데이터 커먼즈 오픈 데이터베이스 라이선스
       too_large:
         advice: '위의 내보내기가 실패하면, 아래에 나열된 원본 중 하나를 사용하는 것을 고려해주세요:'
-        body: 이 지역은 OpenStreetMap XML 데이터로 내보내는 데 너무 넓습니다. 확대하거나 작은 지역을 선택하거나, 대량
-          ë\8d°ì\9d´í\84° ë\8b¤ì\9a´ë¡\9cë\93\9cì\97\90 ë\8c\80í\95\9c ì\95\84ë\9e\98ì\97\90 ë\82\98ì\97´ë\90\9c ì\9e\90ë£\8c ì¤\91 í\95\98ë\82\98를 ì\82¬ì\9a©í\95\98ì\84¸ì\9a\94.
+        body: 이 지역은 오픈스트리트맵 XML 데이터로 내보내기엔 너무 넓습니다. 확대를 하거나, 범위를 좁히거나, 대량 데이터 다운로드에
+          대한 아래에 나열된 자료 중 하나를 사용하세요.
         planet:
           title: 플래닛 OSM
-          description: 완전한 OpenStreetMap 데이터베이스가 정기적으로 업데이트되는 복사본
+          description: 완전한 오픈스트리트맵 데이터베이스가 정기적으로 업데이트되는 복사본
         overpass:
           title: Overpass API
-          description: OpenStreetMap 데이터베이스의 미러에서 이 테두리 상자를 다운로드
+          description: 오픈스트리트맵 데이터베이스의 미러에서 이 테두리 상자를 다운로드
         geofabrik:
           title: Geofabrik 다운로드
           description: 대륙, 국가 및 선택한 도시가 정기적으로 업데이트되는 추출본
         other:
           title: 다른 원본
           description: OpenStreetMap 위키에 나와있는 추가 원본
-      options: 옵션
-      format: 형식
-      scale: 축척
-      max: 최대
-      image_size: 그림 크기
-      zoom: 확대/축소
-      add_marker: 지도에 표시 추가
-      latitude: '위도:'
-      longitude: '경도:'
-      output: 출력
-      paste_html: HTML을 붙여 넣어 웹사이트에 포함시키세요
       export_button: 내보내기
     fixthemap:
       title: 문제 보고 / 지도 수정
@@ -1853,39 +2054,49 @@ ko:
             내용을 추가한 다음 저장하면 다른 매퍼가 조사할 것입니다.
       other_concerns:
         title: 기타 문제
+        concerns_html: |-
+          저희 데이터의 활용이나 콘텐츠와 관련해 우려 사항이 있는 경우, 자세한 법적 정보는 저희
+          %{copyright_link}를 참조하거나 해당 %{working_group_link}에 문의하세요.
+        copyright: 저작권 페이지
+        working_group: OSMF 실무진
     help:
       title: 도움말 얻기
       introduction: 오픈스트리트맵에는 프로젝트에 대해 배우고, 질문하고 답변하고, 매핑 주제에 대해 공동으로 토론하고 문서화할 수
         있는 수단이 많이 있습니다.
       welcome:
         url: /welcome
-        title: ì\98¤í\94\88ì\8a¤í\8a¸ë¦¬í\8a¸ë§µì\97\90 ì\9e\98 ì\98¤ì\85¨ì\8aµë\8b\88ë\8b¤.
+        title: ì\98¤í\94\88ì\8a¤í\8a¸ë¦¬í\8a¸ë§µì\97\90 ì\98¤ì\8b  ê²\83ì\9d\84 í\99\98ì\98\81í\95©ë\8b\88ë\8b¤
         description: 오픈스트리트맵의 기본 사항을 다루는 이 빠른 길라잡이와 함께 시작하세요.
       beginners_guide:
         url: https://wiki.openstreetmap.org/wiki/Ko:%EC%B4%88%EB%B3%B4%EC%9E%90_%EC%95%88%EB%82%B4%EC%84%9C
         title: 초보자 길라잡이
         description: 커뮤니티에서 관리하는 초보자 길라잡이
-      help:
-        title: 도움말 포럼
-        description: OpenStreetMap의 질문 및 답변 사이트에서 질문하거나 답변을 찾아보세요.
-      mailing_lists:
-        title: 메일링 리스트
-        description: 국소 또는 지역의 메일링 리스트의 넓은 범위에서 관심사에 대해 질문하거나 토론을 합니다.
       community:
         title: 공동체 포럼
         description: 오픈스트리트맵과 관련한 대화를 나누는 장소입니다.
+      mailing_lists:
+        title: 메일링 리스트
+        description: 국소 또는 지역의 메일링 리스트의 넓은 범위에서 관심사에 대해 질문하거나 토론을 합니다.
       irc:
         title: IRC
         description: 다양한 주제에서 많은 다른 언어로 된 대화형 채트입니다.
       switch2osm:
         title: switch2osm
-        description: 회사나 단체가 OpenStreetMap와 다른 서비스를 기반으로 전환하는 것에 도움을 주십시오.
+        description: 회사나 단체가 오픈스트리트맵와 다른 서비스를 기반으로 전환하는 것에 도움을 주십시오.
       welcomemat:
         title: 조직에 대해
-        description: 단체와의 오픈스트리트맵에 제작 계획이 있습니까? 환영판에서 알아야 할 것을 찾아보세요.
+        description: 오픈스트리트맵 관련 계획을 세우고 계신 기관이신가요? 환영판에서 알아야 할 것을 찾아보세요.
       wiki:
-        title: OpenStreetMap 위키
-        description: 깊이 있는 OpenStreetMap 설명문서에 대해서는 위키를 찾아보세요.
+        title: 오픈스트리트맵 위키
+        description: 오픈스트리트맵에 관한 심도 있는 설명문서는 위키를 찾아보세요.
+    potlatch:
+      removed: 당신의 OpenStreetMap 기본 편집기가 Potlatch로 설정되어 있습니다. 어도비 플래시의 지원이 중단된 관계로
+        Potlatch는 더 이상 웹 브라우저에서 사용할 수 없습니다.
+      desktop_application_html: '%{download_link}를 통해 계속해서 Potlatch를 사용할 수 있습니다.'
+      download: 맥 / 윈도우용 데스크톱 애플리케이션 다운로드
+      id_editor_html: 아니면 기본 편집기를 iD로 설정하실 수 있습니다. Potlatch처럼 웹 브라우저에서 실행되는 편집기입니다.
+        %{change_preferences_link}.
+      change_preferences: 여기에서 기본 설정을 변경하세요.
     any_questions:
       title: 궁금한 것이 있으신가요?
       paragraph_1_html: 오픈스트리트맵에는 프로젝트에 대해 배우고, 질문하고 답변하고, 매핑 주제에 대해 공동으로 토론하고 문서화할
@@ -1923,35 +2134,24 @@ ko:
           footway: 보도
           rail: 철도
           subway: 지하철
-          tram:
-          - 경전철
-          - 노면 전차
-          cable:
-          - 케이블 카
-          - 체어 리프트
-          runway:
-          - 공항 활주로
-          - 공항 유도로
-          apron:
-          - 공항 계류장
-          - 터미널
+          cable_car: 케이블 카
+          chair_lift: 체어 리프트
+          runway: 공항 활주로
+          taxiway: 공항 유도로
+          apron: 공항 계류장
           admin: 행정 구역 경계
           forest: 숲
           wood: 산림
           golf: 골프장
           park: 공원
+          common: 공유지
           resident: 주거 지역
-          common:
-          - 공유지
-          - 목초지
-          - 정원
           retail: 소매 지역
           industrial: 산업 지역
           commercial: 상업/관공서 지역
           heathland: 황무지
-          lake:
-          - 호수
-          - 저수지
+          lake: 호수
+          reservoir: 저수지
           farm: 농장
           brownfield: 재개발지역
           cemetery: 묘역
@@ -1960,14 +2160,12 @@ ko:
           centre: 스포츠 센터
           reserve: 자연 보호구역
           military: 군사 지역
-          school:
-          - 학교
-          - 대학
+          school: 학교
+          university: 대학
           building: 주요 건물
           station: 철도역
-          summit:
-          - 산꼭대기
-          - 봉우리
+          summit: 산꼭대기
+          peak: 봉우리
           tunnel: 점선 테두리 = 터널
           bridge: 검은 테두리 = 다리
           private: 개인 통행
@@ -1977,9 +2175,9 @@ ko:
           bicycle_parking: 자전거 주차장
           toilets: 화장실
     welcome:
-      title: ì\96´ì\84\9c ì\98¤ì\8b­ì\8b\9cì\98¤!
-      introduction: 편집 가능한 무료 세계 지도인 오픈스트리트맵에 잘 오셨습니다. 이제 가입을 하셨으니 지도 제작을 할 준비가 되었습니다.
-        다음은 여러분이 알아야 할 가장 중요한 사항을 담은 빠른 길라잡이입니다.
+      title: í\99\98ì\98\81í\95©ë\8b\88ë\8b¤!
+      introduction: 누구나 편집 가능한 세계 지도, 오픈스트리트맵에 오신 것을 환영합니다. 이제 가입이 완료된 이상 지도 제작에 나설
+        차례가 되었습니다. 다음은 여러분이 알아야 할 주요 사항을 담은 '빠른 길라잡이'입니다.
       whats_on_the_map:
         title: 지도의 내용
         on_the_map_html: 오픈스트리트맵은 수백만 개의 건물, 도로, 장소에 대한 기타 세부 정보를 포함하는 %{real_and_current}하는
@@ -1989,7 +2187,7 @@ ko:
           같은 독단적인 데이터입니다. 특별한 허가가 없는 한 온라인 또는 종이 지도를 복사하지 마십시오.
         doesnt: 않는
       basic_terms:
-        title: 매핑하는데 필요한 기본 낱말
+        title: 매핑을 위한 기본 용어
         paragraph_1: 오픈스트리트맵에는 고유한 용어가 몇 가지 있습니다. 다음은 쓸모 있는 몇 가지 핵심 낱말입니다.
         an_editor_html: '%{editor}는 지도를 편집하는 데 사용할 수 있는 프로그램이나 웹사이트입니다.'
         a_node_html: '%{node}는 지물의 위치를 나타내는 점입니다.'
@@ -2001,7 +2199,7 @@ ko:
         way: 길(Way)
         tag: 태그(Tag)
       rules:
-        title: 규칙?!
+        title: 규칙!
         para_1_html: 오픈스트리트맵에는 공식적인 규칙이 거의 없지만, 모든 참가자가 커뮤니티와 협력하고 소통하기를 기대합니다. 손수
           손으로 편집하는 수 말고 다른 방법을 찾고 있다면 %{imports_link}와 %{automated_edits_link}의 지침을
           읽고 따라해 보세요.
@@ -2092,7 +2290,6 @@ ko:
     trace:
       pending: 보류 중
       count_points:
-        one: 점 1개
         other: 점 %{count}개
       more: 더 보기
       trace_details: 궤적 상세보기
@@ -2110,6 +2307,10 @@ ko:
       public_traces_from: '%{user}님의 공개 GPS 궤적'
       description: 최근의 GPS 궤적 업로드 항목 둘러보기
       tagged_with: '%{tags}(으)로 태그함'
+      empty_title: 아직 아무것도 없습니다
+      empty_upload_html: '%{upload_link} 또는 %{wiki_link}에서 GPS 궤적에 대해 자세히 알아보세요.'
+      upload_new: 새 궤적 업로드하기
+      wiki_page: 위키 문서
       upload_trace: 궤적 올리기
       all_traces: 모든 궤적
       my_traces: 내 발자취
@@ -2175,6 +2376,7 @@ ko:
     permissions:
       missing: 이 애플리케이션이 이 기능을 사용할 수 있도록 승인하지 않았습니다
     scopes:
+      openid: 오픈스트리트맵으로 로그인
       read_prefs: 사용자 환경 설정 읽기
       write_prefs: 사용자 환경 설정 수정
       write_diary: 일기 항목을 생성하고 덧글을 남기며 친구를 만듭니다.
@@ -2272,21 +2474,30 @@ ko:
     new:
       title: 가입하기
       no_auto_account_create: 불행하게도 현재로서는 자동으로 계정을 만들 수 없습니다.
+      please_contact_support_html: 계정 생성 준비를 위해 %{support_link}(으)로 문의해 주세요. 요청 처리가
+        최대한 빨리 이뤄질 수 있도록 노력하겠습니다.
       support: 지원
       about:
         header: 자유롭게 편집 가능
+        paragraph_1: 다른 지도와 달리 오픈스트리트맵은 전부 여러분과 같은 사람들이 제작했으며 누구나 자유롭게 수정, 업데이트, 다운로드,
+          사용을 할 수 있습니다.
+        paragraph_2: 기여를 시작하려면 가입하세요. 당신의 계정 확인을 위해 이메일을 보내드리겠습니다.
       display name description: 공개적으로 표시되는 사용자 이름입니다. 나중에 환경 설정에서 바꿀 수 있습니다.
       external auth: '제3자 인증:'
       use external auth: 다른 제3자 로그인 방식 사용하기
       auth no password: 제3자 인증은 비밀번호가 필요하지 않지만, 일부 추가 도구나 서버는 여전히 필요할 수 있습니다.
       continue: 가입하기
       terms accepted: 새 기여자 약관에 동의해 주셔서 감사합니다!
+      email_confirmation_help_html: 당신의 주소는 공개적으로 노출되지 않습니다. 자세한 내용은 %{privacy_policy_link}를
+        참조하세요.
+      privacy_policy: 개인정보처리방침
+      privacy_policy_title: 이메일 주소 섹션을 포함한 OSMF 개인 정보 보호 정책
     terms:
       title: 약관
       heading: 약관
       heading_ct: 기여자 약관
       read and accept with tou: 기여자 동의 및 사용 약관을 읽고 두 개의 체크 상자에 체크한 다음 계속 버튼을 눌러 주십시오.
-      contributor_terms_explain: 이 동의는 기존 기여와 앞으로의 기여자의 약관에 적용됩니다.
+      contributor_terms_explain: 본 동의는 기존 기여분과 추후 기여분의 이용 약관에 적용됩니다.
       read_ct: 상기의 기여자 약관을 읽었고 동의합니다
       tou_explain_html: 이러한 %{tou_link}는 오픈스트리트맵 재단에서 제공하는 웹사이트 및 기타 인프라 사용을 관리합니다.
         링크를 클릭하여 텍스트를 읽고 동의하십시오.
@@ -2294,6 +2505,10 @@ ko:
       consider_pd: 위의 내용 외에도 내 기여가 퍼블릭 도메인에 있다고 간주합니다
       consider_pd_why: 무엇인가요?
       consider_pd_why_url: https://wiki.osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why_would_I_want_my_contributions_to_be_public_domain
+      guidance_info_html: '이러한 용어를 이해하는 데 도움이 되는 정보: %{readable_summary_link} / 일부
+        %{informal_translations_link}'
+      readable_summary: 해석 요약본
+      informal_translations: 비공식 번역
       continue: 계속
       declined: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
       decline: 거부
@@ -2335,10 +2550,10 @@ ko:
       remove as friend: 친구 제거
       add as friend: 친구 추가
       mapper since: '가입일:'
+      uid: '사용자 아이디:'
       ct status: '기여자 약관:'
       ct undecided: 정의되지 않음
       ct declined: 거부됨
-      latest edit: '마지막 편집 (%{ago}):'
       email address: '이메일 주소:'
       created from: '만든 위치:'
       status: '상태:'
@@ -2346,18 +2561,22 @@ ko:
       role:
         administrator: 이 사용자는 관리자입니다
         moderator: 이 사용자는 운영자입니다
+        importer: 이 사용자는 임포터입니다
         grant:
           administrator: 관리자 권한 부여
           moderator: 운영자 권한 부여
+          importer: 임포터 접근 권한 부여
         revoke:
           administrator: 관리자 권한 해제
           moderator: 운영자 권한 해제
+          importer: 임포터 접근 권한 취소
       block_history: 활성화된 차단
       moderator_history: 실행된 차단
       comments: 의견
       create_block: 이 사용자를 차단
       activate_user: 이 사용자 활성화
       confirm_user: 이 사용자 확인
+      unconfirm_user: 이 사용자 확인 취소
       unsuspend_user: 이 사용자 정지 해제
       hide_user: 이 사용자를 숨기기
       unhide_user: 이 사용자를 숨기기 취소
@@ -2446,8 +2665,8 @@ ko:
     revoke:
       title: '%{block_on}에 차단 해제함'
       heading_html: '%{block_by}에 의해 %{block_on}에 차단 해제함'
-      time_future: 이 차단은 %{time}에 끝납니다.
-      past: 이 차단은 %{time}에 끝났고 지금 해제할 수 없습니다.
+      time_future_html: 이 차단은 %{time}에 끝납니다.
+      past_html: 이 차단은 %{time}에 끝났고 지금 해제할 수 없습니다.
       confirm: 이 차단을 해제하겠습니까?
       revoke: 해제!
       flash: 이 차단을 해제했습니다.
@@ -2458,19 +2677,14 @@ ko:
       time_past_html: '%{time}에 끝났습니다.'
       block_duration:
         hours:
-          one: 1시간
           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}님에 대해 차단'
@@ -2512,7 +2726,9 @@ ko:
     index:
       title: '%{user} 님이 제출했거나 덧글을 남긴 참고'
       heading: '%{user}의 참고'
-      subheading_html: '%{user} 님이 제출했거나 덧글을 남긴 참고'
+      subheading_html: '%{user}님이 %{submitted}하거나 %{commented}한 참고'
+      subheading_submitted: 제출
+      subheading_commented: 의견 추가
       no_notes: 메모 없음
       id: ID
       creator: 만든이
@@ -2525,6 +2741,15 @@ ko:
       open_title: '해결되지 않은 참고 #%{note_name}'
       closed_title: '해결된 참고 #%{note_name}'
       hidden_title: '숨겨진 참고 #%{note_name}'
+      event_opened_by_html: '%{time_ago} %{user}님이 생성함'
+      event_opened_by_anonymous_html: '%{time_ago} 익명의 사용자가 생성함'
+      event_commented_by_html: '%{time_ago} %{user}님의 댓글'
+      event_commented_by_anonymous_html: '%{time_ago} 익명 사용자의 댓글'
+      event_closed_by_html: '%{time_ago} %{user}님이 해결 처리함'
+      event_closed_by_anonymous_html: '%{time_ago} 익명의 사용자가 해결 처리함'
+      event_reopened_by_html: '%{time_ago} %{user}님이 재활성화함'
+      event_reopened_by_anonymous_html: '%{time_ago} 익명 사용자가 재활성화함'
+      event_hidden_by_html: '%{time_ago} %{user}님이 숨김 처리함'
       report: 이 참고 신고
       anonymous_warning: 이 참고에는 익명 사용자의 덧글도 있으므로 별도로 확인해야 합니다.
       hide: 숨기기
@@ -2577,18 +2802,15 @@ ko:
       locate:
         title: 내 위치 보기
         metersPopup:
-          one: 이 지점은 1미터 이내
-          other: 이 지점까지 %{count}미터
+          other: 이 지점까지 %{count}미터 이내
         feetPopup:
-          one: 이 지점에서 1피트
-          other: 이 지점까지 %{count}피트
+          other: 이 지점까지 %{count}미터 이내
       base:
         standard: 표준
-        cyclosm: CyclOSM
         cycle_map: 사이클 지도
         transport_map: 교통 지도
+        tracestracktop_topo: 트레이스트랙 토포
         hot: 인도주의
-        opnvkarte: 대중교통 지도
       layers:
         header: 지도 레이어
         notes: 지도 참고
@@ -2596,7 +2818,16 @@ ko:
         gps: 공개 GPS 궤적
         overlays: 지도 문제를 해결하기 위해 오버레이를 활성화
         title: 레이어
+      openstreetmap_contributors: 오픈스트리트맵 기여자
       make_a_donation: 기부하기
+      website_and_api_terms: 홈페이지 및 API 약관
+      cyclosm_credit: '%{osm_france_link}에서 호스팅하는 %{cyclosm_link}의 타일 스타일'
+      osm_france: 오픈스트리트맵 프랑스
+      thunderforest_credit: '%{thunderforest_link} 제공 타일'
+      andy_allan: 앤디 앨런
+      tracestrack_credit: '%{tracestrack_link} 제공 타일'
+      hotosm_credit: '%{osm_france_link}에서 호스팅하는 %{hotosm_link}의 타일 스타일'
+      hotosm_name: 인도주의 오픈스트리트맵 팀
     site:
       edit_tooltip: 지도 편집
       edit_disabled_tooltip: 지도를 편집하려면 확대
index 3cf67f7b5c98e144885fc98c11d752d0b49ce011..0cbe9713c293f9a8afa5d70c79d6ec47410269e9 100644 (file)
@@ -190,12 +190,13 @@ ksh:
       heading: Donn en neue Adräß för de e-mail beschtäätejje
   messages:
     inbox:
-      from: Vum
-      subject: Theema
-      date: Et Dattum
       no_messages_yet_html: Do häs noch kein Nohreeschte krääje. Woröm deihs De nit
         ens met dä Lück kalle, di %{people_mapping_nearby_link}?
       people_mapping_nearby: en Dinge Nöhde och am Kaate maache sin
+    messages_table:
+      from: Vum
+      subject: Theema
+      date: Et Dattum
     outbox:
       no_sent_messages_html: Do häs noch kein Nohreeschte verscheck. Woröm deihs De
         nit ens met dä Lück kalle, di %{people_mapping_nearby_link}?
@@ -204,14 +205,15 @@ ksh:
     sent_message_summary:
       destroy_button: Fottschmiiße
   passwords:
-    lost_password:
+    new:
       title: Verloore Paßwoot
       heading: Paßwoot verjäße?
       email address: 'De Adräß för de e-mail:'
       new password button: Paßwoot neu säze
-    reset_password:
+    edit:
       title: Paßwoot neu säze
       reset: Paßwoot neu säze
+    update:
       flash changed: Ding Paßwoot es jeändert.
   sessions:
     new:
@@ -248,9 +250,6 @@ ksh:
         title: Övver di Sigg heh
     edit:
       anon_edits_link_text: Fengk eruß, woröm dadd esu es.
-    export:
-      osm_xml_data: OpenStreetMap sing XML Daate
-      options: Ennschtällonge
     help:
       beginners_guide:
         title: Aanleidong för Aanfänger
@@ -277,34 +276,24 @@ ksh:
           footway: Fohßwääsch udder Päddsche
           rail: Eiserbahn
           subway: U-Bahn
-          tram:
-          - Klëijnbahn
-          - Strohßebahn
-          cable:
-          - Seilbahn
-          - Sässelbahn
-          runway:
-          - Startbahn, Landebahn
-          - Rollwääsch om Fluchhaaven
-          apron:
-          - Halldepläz om Fluchveäld
-          - Terminal em Fluchhaaven
+          cable_car: Seilbahn
+          chair_lift: Sässelbahn
+          runway: Startbahn, Landebahn
+          taxiway: Rollwääsch om Fluchhaaven
+          apron: Halldepläz om Fluchveäld
           admin: Verwalldongsjränz
           forest: Wald, Bösch
           wood: Urwald
           golf: Jolfplaz
           park: Park
+          common: öffentlesch Land
           resident: Wohnjebeet
-          common:
-          - öffentlesch Land
-          - Wiß
           retail: Einkaufszentrum
           industrial: Industriejebeet
           commercial: Jewerbejebeet
           heathland: Heed
-          lake:
-          - See, Wejer
-          - Stausee
+          lake: See, Wejer
+          reservoir: Stausee
           farm: Buurehoff
           brownfield: Industriebrachland
           cemetery: Friedhoff
@@ -313,14 +302,12 @@ ksh:
           centre: Schpochtzäntom
           reserve: Naturschozjebeet
           military: Jebeet vum Kammiß
-          school:
-          - Scholl
-          - Univäsität
+          school: Scholl
+          university: Univäsität
           building: Weeschtesch Bouwärk
           station: Bahnhoff
-          summit:
-          - Bärschspez
-          - Bärschspez
+          summit: Bärschspez
+          peak: Bärschspez
           tunnel: Rand jeschtreschelt = Tunnell
           bridge: Fätte Rand = Bröck
           private: Der Zohjang es prėvaat
index fa820475292998d78d919b0496f966f3e1a7a58b..45a4c5007021f806128f6cc9c594fa08149c036f 100644 (file)
@@ -47,6 +47,9 @@ ku-Latn:
       messages:
         invalid_email_address: ne weke navnîşaneke e-peyamê ya derbasdar e
         email_address_not_routable: nikare were alîkirin
+      models:
+        user_mute:
+          is_already_muted: jixwe bêdengkirî ne
     models:
       acl: Lîsteya kontrola têketinan
       changeset: Qeyda guhartinan
@@ -218,7 +221,6 @@ ku-Latn:
   auth:
     providers:
       none: Ne yek
-      openid: OpenID
       google: Google
       facebook: Facebook
       microsoft: Microsoft
@@ -237,6 +239,7 @@ ku-Latn:
         reopened_at_by_html: '%{when} ji aliyê %{user} ve jinûve hate aktîvkirin'
       rss:
         title: Notên OpenStreetMapê
+        description_all: Lîsteyeke notên gilîkirî, şîrovekirî an girtî
         description_area: Lîsteya notên herêma te yên ku hatine raporkirin, şirovekirin
           an jî girtin [(%{min_lat}|%{min_lon}) -- (%{max_lat}|%{max_lon})]
         description_item: Ji bo nota %{id} xwedîkirina rss'ê
@@ -271,6 +274,8 @@ ku-Latn:
         retain_changeset_discussions: Gotûbêjên te yên qeyda guhartinan, ger hebin,
           wê bêne muhafezekirin.
         retain_email: Adresa te ya epeyamê wê were muhafezekirin.
+        recent_editing_html: Ji ber ku te hesabê xwe vê talîyê guherandîye, vê gavê
+          nayê jêbirin. Jêbirin wê di %{time} de mimkin be.
         confirm_delete: Tu piştrast î?
         cancel: Betal bike
   accounts:
@@ -301,6 +306,9 @@ ku-Latn:
       delete_account: Hesabê Jê bibe...
     go_public:
       heading: Guherandina ji her kesê re vekirî
+      currently_not_public: Vê gavê guhertinên te anonîm in û însan nikarin mesaj
+        bişînin te an lokasyona te bibînin. Ji bo nîşandan guhertinên te kirî û îzin
+        bidî însanan ku bi rêya malperê bi te re îrtîbat deynin, li bûtona jêrî bitikîne.
       make_edits_public_button: Hemû guherandinên min bila ji her kesê re vekirî be
     update:
       success_confirm_needed: Agahiyên bikarhêner bi awayekî serkeftî hate nûkirin.
@@ -335,14 +343,10 @@ ku-Latn:
       way_paginated: Rê (%{x}-%{y} ji %{count})
       relation: Eleqe (%{count})
       relation_paginated: Eleqe (%{x}-%{y} bi tevahî %{count})
-      comment: Şîrove (%{count})
       hidden_comment_by_html: Şîroveya veşartî ji %{user} %{time_ago}
       comment_by_html: Şîroveya ji %{user} %{time_ago}
       changesetxml: Desteya guhartinan a XML
       osmchangexml: osmChange XML
-      feed:
-        title: Desteya guhartinan %{id}
-        title_comment: Desteya guhartinan %{id} - %{comment}
       join_discussion: Ji bo ku beșdarî guftûgoyan bibî têkeve
       discussion: Gotûbêj
       still_open: Qeyda guhartinan hê jî vekirî ye - wê gotûbêj piştî ku qeyda guhartinan
@@ -453,6 +457,9 @@ ku-Latn:
       no_more_area: Li vê derê desteyên guhartinan zêdetir tine.
       no_more_user: Desteyên guhartinan yên vê bikarhênerê zêdetir tine.
       load_more: Zêdetir bar bike
+      feed:
+        title: Desteya guhartinan %{id}
+        title_comment: Desteya guhartinan %{id} - %{comment}
     timeout:
       sorry: Bibore, bidestxistina lîsteya desteyên guhartinan ê ku te xwest demeke
         dirêj girt.
@@ -474,6 +481,7 @@ ku-Latn:
     contact:
       km away: '%{count} km dûr e'
       m away: '%{count} m dûr e'
+      latest_edit_html: 'Guherandina axirkî (%{ago}):'
     popup:
       your location: Cihê te
       nearby mapper: Nexşesazên nêz
@@ -1422,10 +1430,10 @@ ku-Latn:
         one: '%{count} rapor'
         other: '%{count} raporan'
       no_reports: Ti raporekî tine
-      report_created_at: Pêşî di %{datetime} de hatiye raporkirin
-      last_resolved_at: Herî dawî di %{datetime} de hat çareserkirin
-      last_updated_at: Ji aliyê %{displayname} ve herî dawî di %{datetime} de hat
-        rojanekirin
+      report_created_at_html: Pêşî di %{datetime} de hatiye raporkirin
+      last_resolved_at_html: Herî dawî di %{datetime} de hat çareserkirin
+      last_updated_at_html: Ji aliyê %{displayname} ve herî dawî di %{datetime} de
+        hat rojanekirin
       resolve: Çareser bike
       ignore: Guh nedê
       reopen: Dîsa veke
@@ -1714,8 +1722,6 @@ ku-Latn:
   messages:
     inbox:
       title: Qutiya hatiyan
-      my_inbox: Qutiya min a hatiyan
-      my_outbox: Çûdanka min
       messages: '%{new_messages} û %{old_messages} hene.'
       new_messages:
         one: '%{count} peyama nû'
@@ -1723,12 +1729,14 @@ ku-Latn:
       old_messages:
         one: '%{count} peyama kevin'
         other: '%{count} peyamên kevin'
-      from: Ji
-      subject: Mijar
-      date: Dîrok
       no_messages_yet_html: Hêj peyama te tine ye. Çima ji ser %{people_mapping_nearby_link}
         bi kesên nêzîkê xwe re nakevî îrtîbatê?
       people_mapping_nearby: lînka nexşesazên li derdorên nêzîk
+    messages_table:
+      from: Ji
+      to: Ji bo
+      subject: Mijar
+      date: Dîrok
     message_summary:
       unread_button: Wek nexwendî nîşan bide
       read_button: Wek xwendî nîşan bide
@@ -1748,14 +1756,9 @@ ku-Latn:
       body: Li me bibore, bi vê id-yê ti peyam tine ye.
     outbox:
       title: Qutiya min a çûyiyan
-      my_inbox: Hatdanka min
-      my_outbox: Çûdanka min
       messages:
         one: Te %{count} peyam şand
         other: Te %{count} peyaman şand
-      to: Ji bo
-      subject: Mijar
-      date: Dîrok
       no_sent_messages_html: Te hêj ji kesî re peyam neşandiye. Çima ji ser %{people_mapping_nearby_link}
         bi hinek kesên nêzîkê xwe re nakevî îrtîbatê?
       people_mapping_nearby: lînka nexşesazên li derdorên nêzîk
@@ -1774,29 +1777,34 @@ ku-Latn:
         Xêra xwe ji bo xwendinê wekî bikarhênerê rast têbikeve.
     sent_message_summary:
       destroy_button: Jê bibe
+    heading:
+      my_inbox: Qutiya min a hatiyan
+      my_outbox: Çûdanka min
     mark:
       as_read: Peyam wek xwendî hate nîşankirin
       as_unread: Peyam wek nexwendî hate nîşankirin
     destroy:
       destroyed: Payam hate jêbirin
   passwords:
-    lost_password:
+    new:
       title: Şîfreya wenda
       heading: Te şîfreya xwe ji bîr kir?
       email address: 'Navnîşana E-peyamê:'
       new password button: Şîfreyê nû bike
       help_text: E-peyama ku te pê xwe qeydkiribû binivîse, em ê ji te re lînkek bişînin
         tu yê bi wê lînkê bikaribî şîfreya xwe nû bikî.
+    create:
       notice email on way: Bibore, te wê wenda kir :-( lê belê e-peyamekî nû di rê
         de ye. Lewma tu dikarî di nêz de wê nû bikî.
       notice email cannot find: Bibore, ev adrêsa e-peyamê nehate dîtin.
-    reset_password:
+    edit:
       title: Şîfreyê nû bike
       heading: Şîfreyê nû bike ji bo %{user}
       reset: Şîfreyê nû bike
-      flash changed: Şîfreya te hate guhartin.
       flash token bad: Eger te vê sembolê nedîtibe, belkî jî divê tu URLyê kontrol
         bikî?
+    update:
+      flash changed: Şîfreya te hate guhartin.
   preferences:
     show:
       title: Tercîhên min
@@ -1844,7 +1852,6 @@ ku-Latn:
       heading: Têkeve
       email or username: Adrêsa E-peyamê an jî Navê Bikarhêneriyêː
       password: 'Şîfre:'
-      openid_html: '%{logo} OpenID:'
       remember: Min bi bîr bîne
       lost password link: Te şîfreya xwe winda kir?
       login_button: Têkeve
@@ -1981,12 +1988,7 @@ ku-Latn:
         vê taybetmendiyê lazim e.
     export:
       title: Derxîne
-      area_to_export: Cihê ku wê were derxistin
       manually_select: Bi destê xwe cihekî din bibijêre
-      format_to_export: Awayê derxistinê
-      osm_xml_data: Daneyên OpenStreetMapê a bi şiklê XML'yê
-      map_image: Risma Xerîteyê (tebeqeya standart nîşan dide)
-      embeddable_html: HTML'a ku dikare were pêvekirin
       licence: Lîsans
       too_large:
         advice: Eger hûn ji yê jor nikaribin eksport bikin, xêra xwe yek ji van çavkaniyên
@@ -2010,17 +2012,6 @@ ku-Latn:
           title: Çavkaniyên din
           description: Çavkaniyên îlawe yên ku li ser wîkiya OpenStreetMapê hatine
             lîstekirin
-      options: Vebijêrk
-      format: Format
-      scale: Pîvan (miqyas)
-      max: maksîmum
-      image_size: Mezinahiya Rismê
-      zoom: Nêzîk bike
-      add_marker: Nîşankereke îlawe bike xerîteyê
-      latitude: Hêlîpanː
-      longitude: Hêlîlarː
-      output: Encam
-      paste_html: Vê koda HTML'yê dikarî bi ser malperra xwe ve kopî bikî
       export_button: Derxîne
     fixthemap:
       title: Pirgirêkek rabigihîne / Nexşeyê sererast bike
@@ -2047,17 +2038,13 @@ ku-Latn:
       beginners_guide:
         title: Rêbera ji bo kesên ku nû dest pê kirine
         description: Civata me, ji bo kesên ku nû dest pê kirine rêbertî dike.
-      help:
-        title: Foruma Alîkariyê
-        description: Pirsek bipirsin an binêrin cewabên li ser malpera OpenStreetMapê
-          ya pirs-û-bersivê.
+      community:
+        title: Foruma civatê
+        description: Cihê hevpar ji bo sohbetên di derbarê OpenStreetMapê de.
       mailing_lists:
         title: Lîsteya E-nameyan
         description: Di lîsteyên e-nameyan yên deverî an jî herêmî yên cur bi cur
           de hûn dikarin pirsan bipirsin an jî mijarên balkêş nîqaş bikin.
-      community:
-        title: Foruma civatê
-        description: Cihê hevpar ji bo sohbetên di derbarê OpenStreetMapê de.
       irc:
         title: IRC
         description: Sohbeta înteraktîv yê bi gelek zimanan û di gelek mijaran de.
@@ -2109,35 +2096,24 @@ ku-Latn:
           footway: Rêya peyayan
           rail: Rêhesin
           subway: Metro
-          tram:
-          - Rêya trênê yê bi xeta teng
-          - tramway
-          cable:
-          - Teleferîk
-          - teleferîk
-          runway:
-          - Pîsta balafirgehê
-          - rêya balafirgehê yê çûnûhatinê
-          apron:
-          - Aprona balafirgehê
-          - termînal
+          cable_car: Teleferîk
+          chair_lift: Teleferîk
+          runway: Pîsta balafirgehê
+          taxiway: Rêya balafirgehê yê çûnûhatinê
+          apron: Aprona balafirgehê
           admin: Sînorê îdarî
           forest: Daristan
-          wood: Daristan
+          wood: Daristan (bêçavdêrî, wek-xwe-hêlayî)
           golf: Cihê golfê
           park: Park
+          common: Erda mişterek
           resident: Cihê îkametê
-          common:
-          - Erda mişterek
-          - mêrg
-          - bexçe
           retail: Saheya Perakendeyê (Maxazayan)
           industrial: Cihê endustriyê
           commercial: Herêma bazirganiyê
           heathland: Erdê qeraç
-          lake:
-          - Gol
-          - mexzen
+          lake: Gol
+          reservoir: Gola sûnî
           farm: Cotgeh
           brownfield: Erdê vala
           cemetery: Gorristan
@@ -2146,14 +2122,12 @@ ku-Latn:
           centre: Navenda sporê
           reserve: Herêma muhefezekirî ya tebîetê
           military: Qada eskerî
-          school:
-          - Dibistan
-          - zanîngeh
+          school: Dibistan
+          university: Unîversîte
           building: Avahiya girîng
           station: Stasyona trênê
-          summit:
-          - Lûtke
-          - lûtke
+          summit: Lûtke
+          peak: Lûtke
           tunnel: Xeta qutqutî = tûnel
           bridge: Xeta reş = pir
           private: Têketina taybet
@@ -2257,8 +2231,8 @@ ku-Latn:
     trace:
       pending: LI BENDÊ YE
       count_points:
-        one: Nuqteyekê
-        other: '%{count} nuqte'
+        one: Niqteyekê
+        other: '%{count} niqte'
       more: dêtay
       trace_details: Dêtayên Şopê Bibîne
       view_map: Nexşeyê bibîne
@@ -2528,7 +2502,6 @@ ku-Latn:
       ct status: Şertên beşdariyêː
       ct undecided: Bêqerar
       ct declined: Redkirî
-      latest edit: 'Guherandina axirkî (%{ago}):'
       email address: 'Navnîşana e-nameyê:'
       created from: Ji van hate çêkirinː
       status: 'Rewş:'
@@ -2651,8 +2624,8 @@ ku-Latn:
       title: Rakirina astengiyên li ser %{block_on}
       heading_html: Rakirina astengiya ku ji aliyê %{block_by} ve li ser %{block_on}
         hatiye çêkirin
-      time_future: Wê astengî di %{time} de xilas bibe.
-      past: Ev astengî %{time} xilas bûye û niha nikare were rakirin.
+      time_future_html: Wê astengî di %{time} de xilas bibe.
+      past_html: Ev astengî %{time} xilas bûye û niha nikare were rakirin.
       confirm: Tu bawer î ku tu dixwazî vî astengiyê rabikî?
       revoke: Betal bike!
       flash: Ev astengî hate betalkirin.
@@ -2809,11 +2782,9 @@ ku-Latn:
           other: Tu di nava %{count} gavên vê nuqteyê de yî
       base:
         standard: Standard
-        cyclosm: CyclOSM
         cycle_map: Nexşeya bisiklête
         transport_map: Nexşeya transportê
         hot: Mirovatî
-        opnvkarte: ÖPNVKarte
       layers:
         header: Tebeqeyên nexşeyê
         notes: Notên nexşeyê
index 1e25c9f58e6e888ea6c5ae8b6b9cc6268fa85706..a17ce9aab093ace25196658e5c0e4e2d40b9175e 100644 (file)
@@ -207,6 +207,9 @@ lb:
       x_years:
         one: virun %{count} Joer
         other: viru(n) %{count} Joer
+  printable_name:
+    version: v%{version}
+    current_and_old_links_html: '%{current_link}, %{old_link}'
   editor:
     default: Standard (elo %{name})
     id:
@@ -218,7 +221,6 @@ lb:
   auth:
     providers:
       none: Keng
-      openid: OpenID
       google: Google
       facebook: Facebook
       github: GitHub
@@ -336,12 +338,8 @@ lb:
       way_paginated: Weeër (%{x}–%{y} vu(n) %{count})
       relation: Relatiounen (%{count})
       relation_paginated: Relatiounen (%{x}-%{y} vu(n) %{count})
-      comment: Bemierkungen (%{count})
       changesetxml: XML mam Set vun Ännerungen
       osmchangexml: osmChange XML
-      feed:
-        title: 'Set vun Ännerungen: %{id}'
-        title_comment: Set vun Ännerungen %{id} - %{comment}
       join_discussion: Loggt Iech an, fir bei der Diskussioun matzemaachen
       discussion: Diskussioun
       still_open: Den Ännerungssaz ass nach op. 'Diskussioun gëtt opgemaach, esoubal
@@ -451,6 +449,9 @@ lb:
       no_more_area: Keng weider Grupp vun Ännerungen an dëser Géigend.
       no_more_user: Keng weider Gruppe vun Ännerunge vun dësem Benotzer.
       load_more: Méi lueden
+      feed:
+        title: 'Set vun Ännerungen: %{id}'
+        title_comment: Set vun Ännerungen %{id} - %{comment}
     timeout:
       sorry: Et leider ze laang gedauert, déi ugefuerdert Ännerungssätz ofzeruffen.
   changeset_comments:
@@ -469,6 +470,7 @@ lb:
     contact:
       km away: '%{count} km ewech'
       m away: '%{count} m ewech'
+      latest_edit_html: 'Lescht Ännerung (%{ago}):'
     popup:
       your location: Äre Standuert
       nearby mapper: Mapper an der Emgéigend
@@ -512,6 +514,7 @@ lb:
     show:
       title: Blog vun %{user} | %{title}
       user_title: Blog vun %{user}
+      discussion: Diskussioun
       leave_a_comment: Eng Bemierkung maachen
       login_to_leave_a_comment_html: '%{login_link} fir eng Bemierkung ze schreiwen'
       login: Aloggen
@@ -1400,9 +1403,9 @@ lb:
       reports:
         one: '%{count} Meldung'
         other: '%{count} Meldungen'
-      report_created_at: Fir d'éischt gemellt den %{datetime}
-      last_resolved_at: Fir d'lescht erleedegt den %{datetime}
-      last_updated_at: Fir d'lescht aktualiséiert den %{datetime} vun %{displayname}
+      report_created_at_html: Fir d'éischt gemellt den %{datetime}
+      last_resolved_at_html: Fir d'lescht erleedegt den %{datetime}
+      last_updated_at_html: Fir d'lescht aktualiséiert den %{datetime} vun %{displayname}
       resolve: Léisen
       ignore: Ignoréieren
       reopen: Nees opmaachen
@@ -1690,8 +1693,6 @@ lb:
   messages:
     inbox:
       title: Postagang
-      my_inbox: Mäi Postagang
-      my_outbox: Mäi Postausgang
       messages: Dir hutt %{new_messages} a(n) %{old_messages}
       new_messages:
         one: '%{count} neie mMssage'
@@ -1699,12 +1700,15 @@ lb:
       old_messages:
         one: '%{count} ale Message'
         other: '%{count} al Messagen'
-      from: Vu(n)
-      subject: Sujet
-      date: Datum
       no_messages_yet_html: Du hues nach keng Noriichte versent. Wëlls de mat %{people_mapping_nearby_link}
         Kontakt ophuelen?
       people_mapping_nearby: Mapperen an der Noperschaft
+    messages_table:
+      from: Vu(n)
+      to: Un
+      subject: Sujet
+      date: Datum
+      actions: Aktiounen
     message_summary:
       unread_button: Als net gelies markéieren
       read_button: Als gelies markéieren
@@ -1724,14 +1728,10 @@ lb:
       body: Leider gëtt et kee Message mat där ID.
     outbox:
       title: Outbox
-      my_inbox: Mäi Postagang
-      my_outbox: Mäi Postausgang
+      actions: Aktiounen
       messages:
         one: Du hues %{count} Noriicht gesent
         other: Du hues %{count} Noriichte gesent
-      to: Un
-      subject: Sujet
-      date: Datum
       no_sent_messages_html: Du hues nach keng Noriichte versent. Wëlls de mat %{people_mapping_nearby_link}
         Kontakt ophuelen?
       people_mapping_nearby: Mapperen an der Noperschaft
@@ -1750,30 +1750,35 @@ lb:
         mat dem richtege Benotzer un.
     sent_message_summary:
       destroy_button: Läschen
+    heading:
+      my_inbox: Mäi Postagang
+      my_outbox: Mäi Postausgang
     mark:
       as_read: Message als gelies markéiert
       as_unread: Message als net gelies markéiert
     destroy:
       destroyed: Message geläscht
   passwords:
-    lost_password:
+    new:
       title: Passwuert vergiess
       heading: Passwuert vergiess?
-      email address: 'E-Mail-Adress:'
+      email address: E-Mail-Adress
       new password button: Passwuert zrécksetzen
       help_text: Wannechgelift gëff deng E-Mail-Adress an, mat däers du dech ugemellt
         has. Mir wäerten dir dann e Link schécken, mat dems du däi Passwuert zerécksetze
         kanns.
+    create:
       notice email on way: Eng E-Mail mat Hiweiser fir d'Zerécksetze vum Passwuert
         gouf un dech versent.
       notice email cannot find: Déi E-Mail-Adress konnt net fonnt ginn, pardon.
-    reset_password:
+    edit:
       title: Passwuert zrécksetzen
       heading: Passwuert fir %{user} zrécksetzen
       reset: Passwuert zrécksetzen
-      flash changed: Äert Passwuert gouf geännert.
       flash token bad: Mir konnten dëst Kierzel leider net fannen. Du hues dech méiglecherweis
         vertippt oder du hues en ongëltege Link opgemaach.
+    update:
+      flash changed: Äert Passwuert gouf geännert.
   preferences:
     show:
       title: Meng Benotzerastellungen
@@ -1819,9 +1824,8 @@ lb:
     new:
       title: Umellen
       heading: Umellen
-      email or username: 'E-Mail-Adress oder Benotzernumm:'
-      password: 'Passwuert:'
-      openid_html: '%{logo} OpenID:'
+      email or username: E-Mail-Adress oder Benotzernumm
+      password: Passwuert
       remember: Sech u mech erënneren
       lost password link: Hutt Dir Äert Passwuert vergiess?
       login_button: Umellen
@@ -1895,6 +1899,7 @@ lb:
       community_driven_title: Communautéitsbedriwwen
       open_data_title: Open Data
       legal_title: Rechtlech Hiweiser
+      legal_1_1_privacy_policy: Dateschutzrichtlinnen
       partners_title: Partneren
     copyright:
       foreign:
@@ -1947,11 +1952,7 @@ lb:
       anon_edits_link_text: Fannt eraus firwat dat de Fall ass.
     export:
       title: Exportéieren
-      area_to_export: Beräich fir den Export
       manually_select: Sicht manuell eng aner Géigend eraus
-      format_to_export: Format fir z'exportéieren
-      osm_xml_data: OpenStreetMap-XML-Daten
-      embeddable_html: HTML fir anzebannen
       licence: Lizenz
       too_large:
         body: Dëse Beräich ass ze grouss, fir als OpenStreetMap-XML-Donnéeën exportéiert
@@ -1966,17 +1967,6 @@ lb:
         other:
           title: Aner Quellen
           description: Zousätzlech Quelle stinn an der OpenStreetMap Wiki
-      options: Optiounen
-      format: Format
-      scale: Maassstab
-      max: max
-      image_size: Gréisst vum Bild
-      zoom: Zoom
-      add_marker: Eng Markéierung op der Kaart bäifügen
-      latitude: 'Geographesch Breet:'
-      longitude: 'Geographesch Längt:'
-      output: Resultat
-      paste_html: HTML-Code kopéieren, fir en an eng Websäit anzefügen
       export_button: Exportéieren
     fixthemap:
       title: E Probleem mellen / D'Kaart verbesseren
@@ -1993,10 +1983,6 @@ lb:
         title: Wëllkomm bei OpenStreetMap
       beginners_guide:
         title: Guide fir nei Benotzer
-      help:
-        title: Hëllefs-Forum
-        description: Stellt eng Fro oder kuckt no Äntwerten um OpenStreetMap-Site
-          mat de Froen an Äntwerten.
       mailing_lists:
         title: Mailing-Lëschten
       irc:
@@ -2022,6 +2008,7 @@ lb:
           main_road: Haaptstrooss
           secondary: Niewestrooss
           unclassified: Net klasséiert Strooss
+          pedestrian: Foussgängerwee
           track: Spuer
           bridleway: Wee fir Päerd
           cycleway: Vëlospiste
@@ -2030,32 +2017,33 @@ lb:
           cycleway_local: Lokale Vëloswee
           footway: Fousswee
           rail: Eisebunn
+          train: Zuch
           subway: Metro
-          tram:
-            1: Tram
-          cable:
-          - Seelbunn
-          - Sessellift
-          runway:
-          - Start- a Landebunn
-          - Rullbunn
-          apron:
-            1: Terminal
+          ferry: Fär
+          tram: Tram
+          bus: Bus
+          cable_car: Seelbunn
+          chair_lift: Sessellift
+          runway: Start- a Landebunn
+          taxiway: Rullbunn
           admin: Verwaltungsgrenz
+          capital: Haaptstad
+          city: Stad
+          orchard: Bongert
+          vineyard: Wéngert
           forest: Bësch
           wood: Bësch
+          grass: Wiss
+          sand: Sand
           golf: Golfterrain
           park: Park
-          common:
-          - ëffentlech Gréngfläch (brit.)
-          - Wiss
-          - Gaart
+          common: ëffentlech Gréngfläch (brit.)
           retail: Akaafszentrum
           industrial: Industriezone
           commercial: Commercëgebitt
           heathland: Heed
-          lake:
-          - Séi
+          lake: Séi
+          glacier: Gletscher
           farm: Bauerenhaff
           brownfield: Broochland
           cemetery: Kierfecht
@@ -2064,16 +2052,16 @@ lb:
           centre: Sportszenter
           reserve: Naturschutzgebitt
           military: Militärgebitt
-          school:
-          - Schoul
-          - Universitéit
+          school: Schoul
+          university: Universitéit
+          hospital: Spidol
           building: Bedeitend Gebai
           station: Gare (Eisebunn)
-          summit:
-          - Spëtzt
+          summit: Spëtzt
           private: Privaten Terrain
           destination: Nëmme fir Leit mat Uleies
           construction: Stroossen am Bau
+          bus_stop: Busarrêt
           bicycle_shop: Vëlosgeschäft
           bicycle_parking: Vëlosparking
           toilets: Toiletten
@@ -2246,6 +2234,7 @@ lb:
       display name description: Däin ëffentlech ugewisene Benotzernumm. E ka spéider
         an den Astellunge geännert ginn.
       continue: Mellt Iech un
+      privacy_policy: Dateschutzrichtlinnen
     terms:
       heading: Bedingungen
       consider_pd: Zousätzlech zu den uewe genannte Konditioune betruechten ech meng
@@ -2281,7 +2270,6 @@ lb:
       notes: Notizen op der Kaart
       remove as friend: Frënd ewechhuelen
       add as friend: Frënd derbäisetzen
-      latest edit: 'Lescht Ännerung (%{ago}):'
       email address: 'E-Mail-Adress:'
       status: 'Status:'
       role:
@@ -2406,6 +2394,13 @@ lb:
       showing_page: Säit %{page}
       next: Nächst »
       previous: « Vireg
+  user_mutes:
+    index:
+      table:
+        thead:
+          actions: Aktiounen
+        tbody:
+          send_message: Message schécken
   notes:
     index:
       no_notes: Keng Notizen
@@ -2459,11 +2454,9 @@ lb:
           other: Dir sidd manner wéi %{count} Féiss vun dësem Punkt ewech
       base:
         standard: Standard
-        cyclosm: CyclOSM
         cycle_map: Vëloskaart
         transport_map: Verkéierskaart
         hot: Humanitär
-        opnvkarte: Bus-Zuch-Kaart
       layers:
         header: Kaartenniveauen
         notes: Hiweiser/Feelermeldungen
index 7447cf52140db13012679a28a83e27f5c9344f16..7c569cd1616a30add6905646c621591d7870fa25 100644 (file)
@@ -7,6 +7,7 @@
 # Author: Eitvys200
 # Author: Empers
 # Author: Garas
+# Author: Hugo.arg
 # Author: Kris2paz
 # Author: Macofe
 # Author: Mantak111
@@ -63,6 +64,10 @@ lt:
       messages:
         invalid_email_address: nepanašus į tinkamą e-pašto adresą
         email_address_not_routable: nemaršrutizuojamas
+        display_name_is_user_n: negali būti user_n, nebent n yra jūsų naudotojo id
+      models:
+        user_mute:
+          is_already_muted: jau nutildytas
     models:
       acl: Prieigos valdymo sąrašas
       changeset: Pakeitimas
@@ -257,7 +262,6 @@ lt:
   auth:
     providers:
       none: Nei vienas
-      openid: OpenID
       google: Google
       facebook: Facebook
       github: GitHub
@@ -275,6 +279,8 @@ lt:
         reopened_at_by_html: '%{user} iš naujo suaktyvino %{when}'
       rss:
         title: OpenStreetMap pastabos
+        description_all: Pastabų, apie kurias pranešta, kurios buvo pakomentuotos
+          ar uždarytos, sąrašas
         description_area: sąrašas pastabų, pranešta, pakomentuota arba uždaryta jūsų
           srityje (%{min_lat}|%{min_lon}) -- (%{max_lat}|%{max_lon})]
         description_item: Rss kanalas pastabai %{id}
@@ -309,6 +315,8 @@ lt:
         retain_changeset_discussions: Jūsų pakeitimų diskusijos, jei tokių yra, bus
           išsaugotos.
         retain_email: Jūsų el. pašto adresas bus išsaugotas.
+        recent_editing_html: Kadangi neseniai redagavote, jūsų paskyros šiuo metu
+          ištrinti negalima. Ištrinti bus galima po %{time}.
         confirm_delete: Ar tikrai?
         cancel: Atšaukti
   accounts:
@@ -394,14 +402,10 @@ lt:
       way_paginated: Keliai (%{x}-%{y} iš %{count})
       relation: Ryšiai (%{count})
       relation_paginated: Ryšiai (%{x}-%{y} iš %{count})
-      comment: Komentarai (%{count})
       hidden_comment_by_html: Paslėptas komentaras nuo %{user} %{time_ago}
       comment_by_html: Komentaras nuo %{user} %{time_ago}
       changesetxml: Pakeitimo XML
       osmchangexml: osmChange XML
-      feed:
-        title: Pakeitimas %{id}
-        title_comment: Pakeitimas %{id} - %{comment}
       join_discussion: Prisijunkite norėdami dalyvauti aptarime
       discussion: Diskusija
       still_open: Pakeitimas vis dar atidarytas - diskusija prasidės tik uždarius
@@ -487,6 +491,9 @@ lt:
       introduction: Spauskite ant žemėlapio, norėdami rasti gretimus objektus
       nearby: Artimi objektai
       enclosing: Gaubiantys objektai
+  old_relations:
+    not_found:
+      sorry: Atsiprašome, santykio %{id} versijos %{version} nepavyko rasti.
   changesets:
     changeset_paging_nav:
       showing_page: Puslapis %{page}
@@ -515,6 +522,9 @@ lt:
       no_more_area: Daugiau pakeitimų šioje vietoje nėra.
       no_more_user: Daugiau šio naudotojo pakeitimų nėra.
       load_more: Įkelti daugiau
+      feed:
+        title: Pakeitimas %{id}
+        title_comment: Pakeitimas %{id} - %{comment}
     timeout:
       sorry: Atsiprašome, bet jūsų prašytų pakeitimų ištraukimas užtruko per ilgai.
   changeset_comments:
@@ -533,6 +543,7 @@ lt:
     contact:
       km away: Nutolęs %{count}km
       m away: nutolęs %{count}m
+      latest_edit_html: 'Paskutinis pakeitimas (%{ago}):'
     popup:
       your location: Jūsų pozicija
       nearby mapper: Šalia esantis žemėlapių kūrėjas
@@ -634,6 +645,12 @@ lt:
       applications:
         create:
           notice: Aplikacija užregistruota.
+    scopes:
+      address: Žiūrėti savo fizinį adresą
+      email: Žiūrėti savo el. pašto adresą
+      openid: Autentifikuokite savo paskyrą
+      phone: Žiūrėti savo telefono ryšio numerį
+      profile: Žiūrėti savo profilio informaciją
   errors:
     contact:
       contact_url_title: Įvairių susisiekimo būdų paaiškinimas
@@ -686,15 +703,19 @@ lt:
           "yes": Lyninis keltuvas
         aeroway:
           aerodrome: Aerodromas
+          airstrip: Pakilimo takas
           apron: Oro uosto aikštelė
           gate: Oro uosto vartai
           hangar: Angaras
           helipad: Sraigtasparnių aikštelė
           holding_position: Užlaikymo pozicija
+          navigationaid: Aviacijos navigacijos pagalba
           parking_position: Stovėjimo Pozicija
           runway: Pakilimo takas
+          taxilane: Taksi linija
           taxiway: Riedėjimo takas
           terminal: Oro uosto terminalas
+          windsock: Vėjarodis
         amenity:
           animal_boarding: Gyvūnų viešbutis
           animal_shelter: Gyvūnų prieglauda
@@ -773,8 +794,10 @@ lt:
           public_bath: Vieša Pirtis
           public_bookcase: Knygų dalinimosi lentyna
           public_building: Visuomeninis pastatas
+          ranger_station: Reindžerio stotis
           recycling: Perdirbimo punktas
           restaurant: Restoranas
+          sanitary_dump_station: Sanitarinis sąvartynas
           school: Mokykla
           shelter: Pastogė
           shower: Dušas
@@ -787,6 +810,7 @@ lt:
           theatre: Teatras
           toilets: Tualetas
           townhall: Rotušė
+          training: Mokymų įstaiga
           university: Universitetas
           vehicle_inspection: Automobilių Apžiūra
           vending_machine: Vendingas
@@ -794,9 +818,13 @@ lt:
           village_hall: Nedidelio miestelio valdžios būstinė
           waste_basket: Atliekų krepšelis
           waste_disposal: Atliekų šalinimas
+          waste_dump_site: Atliekų sąvartynas
+          watering_place: Laistymo vieta
           water_point: Vandens Punktas
           weighbridge: Svarstyklės
+          "yes": Patogumai
         boundary:
+          aboriginal_lands: Čiabuvių žemės
           administrative: Administracinė riba
           census: Gyventojų surašymo teritorijos riba
           national_park: Nacionalinis parkas
@@ -805,6 +833,7 @@ lt:
           "yes": Riba
         bridge:
           aqueduct: Akvedukas
+          boardwalk: Promenada
           suspension: Kabantis tiltas
           swing: Siūbuojantis tiltas
           viaduct: Viadukas
@@ -813,8 +842,11 @@ lt:
           apartment: Apartamentas
           apartments: Apartamentai
           barn: Tvartas
+          bungalow: Vila
+          cabin: Trobelė
           chapel: Koplyčia
           church: Bažnyčios Pastatas
+          civic: Civilinis statinys
           college: Koledžo Pastatas
           commercial: Komercinės paskirties pastatas
           construction: Statomas pastatas
@@ -822,6 +854,7 @@ lt:
           dormitory: Bendrabutis
           duplex: Dvibutis
           farm: Ūkinis Namas
+          farm_auxiliary: Pagalbinis ūkis
           garage: Garažas
           garages: Garažai
           greenhouse: Šiltnamis
@@ -829,9 +862,11 @@ lt:
           hospital: Ligoninės pastatas
           hotel: Viešbučio Pastatas
           house: Namas
+          houseboat: Plaukiojantis namas
           hut: Trobelė
           industrial: Pramoninis pastatas
           kindergarten: Darželio Pastatas
+          manufacture: Pramoninis statinys
           office: Biurų pastatas
           public: Visuomeninis pastatas
           residential: Gyvenamasis pastatas
@@ -839,15 +874,19 @@ lt:
           roof: Stogas
           ruins: Sugriuvęs pastatas
           school: Mokyklos pastatas
+          semidetached_house: Pusiau atskiras namas
+          service: Pagalbinis statinys
           shed: Pašiūrė
           stable: Arklidė
           static_caravan: Karavanas
+          temple: Šventyklos pastatas
           terrace: Terasos Pastatas
           train_station: Traukinių Stoties Pastatas
           university: Universiteto pastatas
           warehouse: Sandėlis
           "yes": Pastatas
         club:
+          scout: Skautų bazė
           sport: Sporto klubas
           "yes": Klubas
         craft:
@@ -855,28 +894,39 @@ lt:
           blacksmith: Kalvis
           brewery: Alaus darykla
           carpenter: Dailidė
+          caterer: Maisto tiekėjas
           confectionery: Konditerija
+          dressmaker: Siuvėjas
           electrician: Elektrikas
           electronics_repair: Elektronikos taisykla
           gardener: Sodininkas
+          glaziery: Stiklius
           handicraft: Rankdarbiai
+          metal_construction: Metalo gamykla
           painter: Dažytojas
           photographer: Fotografas
           plumber: Santechnikas
           roofer: Stogdengys
           sawmill: Lentpjūvė
           shoemaker: Batsiuvys
+          stonemason: Akmenskaldys
           tailor: Siuvėjas
+          window_construction: Langų gamintojas
           winery: Vyno darykla
           "yes": Amatų parduotuvė
         emergency:
+          access_point: Prieigos taškas
           ambulance_station: Greitosios medicinos pagalbos stotis
           assembly_point: Susirinkimo taškas
           defibrillator: Defibriliatorius
           fire_extinguisher: Gesintuvas
+          fire_water_pond: Priešgaisrinis telkinys
           landing_site: Avarinio nusileidimo aikštelė
           life_ring: Gelbėjimo ratas
           phone: Avarinis telefonas
+          siren: Avarinė sirena
+          suction_point: Avarinis siurbimo taškas
+          water_tank: Priešgaisrinis telkinys
         highway:
           abandoned: Apleistas kelias
           bridleway: Jodinėjimo takas
@@ -917,18 +967,23 @@ lt:
           tertiary: Trečios reikšmės kelias
           tertiary_link: Trečios reikšmės kelias
           track: Vėžės
+          traffic_mirror: Eismo veidrodis
           traffic_signals: Šviesoforas
           trunk: Magistralinis kelias
           trunk_link: Magistralinis kelias
           unclassified: Neklasifikuotas kelias
           "yes": Kelias
         historic:
+          aircraft: Istorinis lėktuvas
           archaeological_site: Archeologinė vieta
+          bomb_crater: Istorinis bombos krateris
           battlefield: Mūšio vieta
           boundary_stone: Pasienio akmuo
           building: Istorinis pastatas
           bunker: Bunkeris
+          cannon: Istorinė patranka
           castle: Pilis
+          charcoal_pile: Istorinė anglių krūva
           church: Bažnyčia
           city_gate: Miesto vartai
           citywalls: Miesto sienos
@@ -938,13 +993,16 @@ lt:
           manor: Dvaras
           memorial: Memorialas
           mine: Kasykla
+          mine_shaft: Kasyklos šachta
           monument: Paminklas
           railway: Istorinis geležinkelis
           roman_road: Romėnų kelias
           ruins: Griuvėsiai
+          rune_stone: Runų akmuo
           stone: Akmuo
           tomb: Kapas
           tower: Bokštas
+          wayside_chapel: Pakelės koplytėlė
           wayside_cross: Pakelės kryžius
           wayside_shrine: Koplytstulpis
           wreck: Nuskendęs laivas
@@ -953,6 +1011,7 @@ lt:
           "yes": Sandūra
         landuse:
           allotments: Sodai/sodininkų bendrijos
+          aquaculture: Akvakultūra
           basin: Baseinas
           brownfield: Apleista teritorija
           cemetery: Kapinės
@@ -971,9 +1030,11 @@ lt:
           military: Karinė zona
           mine: Kasykla
           orchard: vaisių sodas
+          plant_nursery: Daigynas
           quarry: Karjeras
           railway: Geležinkelis
           recreation_ground: Rekreacinė zona
+          religious: Šventvietė
           reservoir: Rezervuaras
           reservoir_watershed: Vandens rezervuaras
           residential: Gyvenamasis rajonas
@@ -982,8 +1043,12 @@ lt:
           vineyard: Vynuogynas
           "yes": Žemėnauda
         leisure:
+          adult_gaming_centre: Suaugusiųjų žaidimų centras
+          bandstand: Estrada
           beach_resort: Pajūrio kurortas
           bird_hide: paukščių stebėjimo vieta
+          bleachers: Tribūnos
+          bowling_alley: Boulingas
           common: Bendra žemė
           dance: Šokių salė
           dog_park: Šunų parkas
@@ -999,6 +1064,7 @@ lt:
           miniature_golf: Mini golfas
           nature_reserve: Gamtos draustinis
           park: Parkas
+          picnic_table: Pikniko stalas
           pitch: Sporto aikštė
           playground: Žaidimų aikštelė
           recreation_ground: Rekreacinis plotas
@@ -1027,25 +1093,32 @@ lt:
           cross: Kryžius
           dyke: Pylimas
           flagpole: Vėliavos stiebas
+          kiln: Krosnis
           lighthouse: Švyturys
+          manhole: Liukas
           mast: Stiebas
           mine: Kasykla
           mineshaft: Kasyklos šachta
           monitoring_station: Stebėjimo Stotis
           petroleum_well: Naftos šulinys
+          pier: Pirsas
           pipeline: Vamzdynas
           pumping_station: Siurblinė
           reservoir_covered: Uždengtas rezervuaras
           silo: Siloso bokštas
           snow_cannon: Sniego patranka
           snow_fence: Sniego tvora
+          storage_tank: Rezervuaras
           surveillance: Stebėjimas
           telescope: Teleskopas
           tower: Bokštas
+          utility_pole: Elektros stulpas
+          wastewater_plant: Vandenvalda
           watermill: Vandens Malūnas
           water_tap: Vandens čiaupas
           water_tower: Vandens Bokštas
           water_well: Šulinys
+          water_works: Vandentiekis
           windmill: Vėjo malūnas
           works: Gamykla
           "yes": Žmogaus sukurta
@@ -1053,11 +1126,14 @@ lt:
           airfield: Karinis aerodromas
           barracks: Kareivinės
           bunker: Bunkeris
+          checkpoint: Patikros punktas
+          trench: Tranšėja
           "yes": Karinis
         mountain_pass:
           "yes": Kalnų perėja
         natural:
           atoll: Atolas
+          bare_rock: Plikos uolos
           bay: Įlanka
           beach: Paplūdimys
           cape: Kyšulys
@@ -1102,6 +1178,7 @@ lt:
           water: Vanduo
           wetland: Pelkė
           wood: Medžiai
+          "yes": Gamtinis objektas
         office:
           accountant: Buhalteris
           administrative: Administracija
@@ -1123,7 +1200,9 @@ lt:
           newspaper: Laikraščio biuras
           ngo: NGO įstaiga
           notary: Notaro biuras
+          religion: Religinė įstaiga
           research: Tyrimų biuras
+          tax_advisor: Mokesčių patarėjas
           telecommunication: Telekomunikacijų tarnyba
           travel_agent: Kelionių agentūra
           "yes": Biuras
@@ -1146,6 +1225,7 @@ lt:
           neighbourhood: Rajonas
           plot: Sklypas
           postcode: Pašto kodas
+          quarter: Mikrorajonas
           region: Regionas
           sea: Jūra
           square: Aikštė
@@ -1183,12 +1263,14 @@ lt:
         shop:
           alcohol: Licencijuotos parduotuvės
           antiques: Antikvariniai daiktai
+          appliance: Buitinės technikos parduotuvė
           art: Meno parduotuvė
           baby_goods: Kūdikių prekių parduotuvė
           bag: Rankinių parduotuvė
           bakery: Kepykla
           bathroom_furnishing: Vonios kambario baldų parduotuvė
           beauty: Grožio salonas
+          bed: Patalynės gaminiai
           beverages: Gėrimų parduotuvė
           bicycle: Dviračių parduotuvė
           bookmaker: Žymė
@@ -1255,6 +1337,7 @@ lt:
           massage: Masažas
           medical_supply: Medicinos reikmenų parduotuvė
           mobile_phone: Mobiliųjų telefonų parduotuvė
+          money_lender: Pinigų skolintojas
           motorcycle: Motociklų parduotuvė
           motorcycle_repair: Motociklų remonto dirbtuvės
           music: Muzikos prekių parduotuvė
@@ -1269,6 +1352,7 @@ lt:
           pawnbroker: Lombardas
           perfumery: Parfumerijos parduotuvė
           pet: Naminių gyvūnėlių parduotuvė
+          pet_grooming: Naminių gyvūnėlių priežiūra
           photo: Foto prekių parduotuvė
           seafood: Jūros gėrybės
           second_hand: Dėvėtų parduotuvė
@@ -1276,6 +1360,7 @@ lt:
           shoes: Batų parduotuvė
           sports: Sporto prekių parduotuvė
           stationery: Raštinės reikmenys
+          storage_rental: Sandėliavimo nuoma
           supermarket: Prekybos centras
           tailor: Siuvėjas
           tattoo: Tatuiruočių salonas
@@ -1285,9 +1370,11 @@ lt:
           toys: Žaislų parduotuvė
           travel_agency: Kelionių agentūra
           tyres: Padangų Parduotuvė
+          vacant: Laisva parduotuvė
           variety_store: Įvairių prekių parduotuvė
           video: Video parduotuvė
           video_games: Vaizdo žaidimų parduotuvė
+          wholesale: Didmeninė parduotuvė
           wine: Vyno Parduotuvė
           "yes": Parduotuvė
         tourism:
@@ -1310,6 +1397,7 @@ lt:
           picnic_site: Poilsiavietė
           theme_park: Nuotykių parkas
           viewpoint: Apžvalgos aikštelė
+          wilderness_hut: Trobelė gamtoje
           zoo: Zoologijos sodas
         tunnel:
           building_passage: Praėjimas pro pastatą
@@ -1336,12 +1424,15 @@ lt:
           "yes": Vandens vektorius
       admin_levels:
         level2: Šalies sienos
+        level3: Regiono riba
         level4: Valstybės sienos
         level5: Regiono ribos
         level6: Apskrities ribos
+        level7: Savivaldybės riba
         level8: Miesto sienos
         level9: Kaimo riba
         level10: Priemiesčio riba
+        level11: Mikrorajono riba
       types:
         cities: Miestai
         towns: Miestai
@@ -1354,6 +1445,7 @@ lt:
       title: Problemos
       select_status: Parinkite būseną
       select_type: Pasirinkite tipą
+      reported_user: Pranešęs naudotojas
       not_updated: Neatnaujinta
       search: Ieškoti
       search_guidance: 'Problemų paieška:'
@@ -1362,6 +1454,7 @@ lt:
       status: Būsena
       reports: Pranešimai
       last_updated: Paskutinis atnaujinimas
+      last_updated_time_ago_user_html: '%{time_ago} %{user}'
       link_to_reports: Žiūrėti pranešimus
       reports_count:
         one: '{%count} pranešimas'
@@ -1381,9 +1474,9 @@ lt:
         many: '{%count} pranešimas'
         other: '%{count} pranešimų'
       no_reports: Jokių ataskaitų
-      report_created_at: Pirmą kartą pranešta %{datetime}
-      last_resolved_at: Paskutinį kartą išspręsta %{datetime}
-      last_updated_at: Paskutinį kartą atnaujinta %{datetime} naudotojo %{displayname}
+      report_created_at_html: Pirmą kartą pranešta %{datetime}
+      last_resolved_at_html: Paskutinį kartą išspręsta %{datetime}
+      last_updated_at_html: Paskutinį kartą atnaujinta %{datetime} naudotojo %{displayname}
       resolve: Išspręsti
       ignore: Ignoruoti
       reopen: Iš naujo atidaryti
@@ -1658,8 +1751,6 @@ lt:
   messages:
     inbox:
       title: Gautieji
-      my_inbox: Mano gauti
-      my_outbox: Išsiųsti
       messages: Jūs turite %{new_messages} ir %{old_messages}
       new_messages:
         one: '%{count} naujas pranešimas'
@@ -1667,17 +1758,21 @@ lt:
       old_messages:
         one: '%{count} senas pranešimas'
         other: '%{count} seni pranešimai'
-      from: Nuo
-      subject: Tema
-      date: Data
       no_messages_yet_html: Jūs dar negavote nei vienos žinutės. Kodėl gi nesusisiekus
         su %{people_mapping_nearby_link}?
       people_mapping_nearby: netoliese žyminčiais naudotojais
+    messages_table:
+      from: Nuo
+      to: Kam
+      subject: Tema
+      date: Data
+      actions: Veiksmai
     message_summary:
       unread_button: Žymėti neskaitytu
       read_button: Žymėti skaitytu
       reply_button: Atsakyti
       destroy_button: Ištrinti
+      unmute_button: Perkelti į gautuosius
     new:
       title: Siųsti žinutę
       send_message_to_html: Siųsti naują žinutę naudotojui %{name}
@@ -1692,17 +1787,15 @@ lt:
       body: Gaila, bet žinutės su tokiu id nėra.
     outbox:
       title: Išsiųstieji
-      my_inbox: Gautieji
-      my_outbox: Išsiųsti
+      actions: Veiksmai
       messages:
         one: Jūs %{count} nusiųstą pranešimą
         other: Jūs %{count} nusiųstus(-ų) pranešimus(-ų)
-      to: Kam
-      subject: Tema
-      date: Data
       no_sent_messages_html: Jūs dar negavote nei vienos žinutės. Kodėl gi nesusisiekus
         su %{people_mapping_nearby_link}?
       people_mapping_nearby: netoliese žyminčiais naudotojais
+    muted:
+      title: Nutildyti pranešimai
     reply:
       wrong_user: Jūs prisijungęs kaip „%{user}“, bet pranešimas, kuriuo jūsų prašyta
         atsakyti, nebuvo nusiųstas tam naudotojui. Prisijunkite prie teisingos naudotojo
@@ -1718,29 +1811,39 @@ lt:
         naudotojo paskyros, jei norite tai perskaityti.
     sent_message_summary:
       destroy_button: Ištrinti
+    heading:
+      my_inbox: Mano gauti
+      my_outbox: Išsiųsti
+      muted_messages: Nutildyti pranešimai
     mark:
       as_read: Pranešimas pažymėtas kaip skaitytas
       as_unread: Pranešimas pažymėtas kaip neskaitytas
+    unmute:
+      notice: Žinutė perkelta į gautuosius
+      error: Žinutės nepavyko perkelti į gautuosius.
     destroy:
       destroyed: Pranešimas ištrintas
   passwords:
-    lost_password:
+    new:
       title: Pamiršau slaptažodį
       heading: Pamiršote slaptažodį?
-      email address: 'E-pašto adresas:'
+      email address: El. pašto adresas
       new password button: Atstatyti slaptažodį
       help_text: Įveskite elektroninio pašto adresą, kurį naudojote užsiregistruodami.
         Mes atsiųsime nuorodą į elektroninį paštą, kurią galėsite naudoti norėdami
         iš naujo nustatyti slaptažodį.
+    create:
       notice email on way: Apgailestaujame, kad praradote slaptažodį :-( bet elektroninis
         laiškas jau išsiųstas, tad greitai slaptažodį atstatysite.
       notice email cannot find: Gaila, bet toks e-pašto adresas nerastas.
-    reset_password:
+    edit:
       title: Iš naujo nustatyti slaptažodį
       heading: Iš naujo nustatyti naudotojo %{user} slaptažodį
       reset: Iš naujo nustatyti slaptažodį
-      flash changed: Jūsų slaptažodis sėkmingai pakeistas.
       flash token bad: Ženklas nerastas, galbūt bloga nuoroda?
+    update:
+      flash changed: Jūsų slaptažodis sėkmingai pakeistas.
+      flash token bad: Prieigos raktas nerastas, galbūt blogai nurodytas URL?
   preferences:
     show:
       title: Mano parinktys
@@ -1785,9 +1888,8 @@ lt:
     new:
       title: Prisijungti
       heading: Prisijungti
-      email or username: 'E-pašto adresas arba naudotojo vardas:'
-      password: 'Slaptažodis:'
-      openid_html: '%{logo} OpenID:'
+      email or username: 'El. pašto adresas ar naudotojo vardas:'
+      password: Slaptažodis
       remember: Prisiminti prisijungimą
       lost password link: Pamiršote slaptažodį?
       login_button: Prisijungti
@@ -1807,8 +1909,8 @@ lt:
           title: Prisijungti su Facebook
           alt: Prisijungti su Facebook paskyra
         microsoft:
-          title: Prisijungti su Windows Live
-          alt: Prisijungti su Windows Live paskyra
+          title: Prisijungti su Microsoft
+          alt: Prisijungti su Microsoft paskyra
         github:
           title: Prisijungti su GitHub
           alt: Prisijungti su GitHub Paskyra
@@ -1844,12 +1946,14 @@ lt:
       image: Paveikslėlis
       alt: Alternatyvusis tekstas
       url: Interneto adresas (URL)
+      codeblock: Kodo blokas
     richtext_field:
       edit: Redaguoti
       preview: Peržiūrėti
   site:
     about:
       next: Kitas
+      heading_html: '%{copyright}OpenStreetMap %{br} bendradarbiai'
       used_by_html: '%{name} pateikia žemėlapio duomenis tūkstančiams interneto puslapių,
         mobilių aplikacijų ir techninės įrangos įrenginių'
       lede_text: OpenStreetMap kuria bendruomenė žymėtojų, kuriančių ir prižiūrinčių
@@ -1859,6 +1963,8 @@ lt:
         orotofoto nuotraukas, GPS įrenginius ir paprastus lauko žemėlapius, tikrindami,
         kad OSM duomenys yra teisingi ir aktualūs.
       community_driven_title: Bendruomenės vystomas
+      community_driven_osm_blog: OpenStreetMap tinklaraštis
+      community_driven_user_diaries: naudotojų dienoraščiai
       community_driven_community_blogs: bendruomenių tinklaraščiai
       community_driven_osm_foundation: OSM fondas
       open_data_title: Atviri duomenys
@@ -1869,9 +1975,20 @@ lt:
       open_data_open_data: atviri duomenys
       open_data_copyright_license: Autorių teisių ir licencijos puslapis
       legal_title: Teisės
+      legal_1_1_html: |-
+        Ši svetainė ir daugelis susijusių paslaugų formaliai valdomi
+        %{openstreetmap_foundation_link} (OSMF)
+        bendruomenės vardu. Visų OSMF valdovų paslaugų naudojimui taikoma
+        %{terms_of_use_link}, %{aup_link} ir mūsų %{privacy_policy_link}.
       legal_1_1_openstreetmap_foundation: OpenStreetMap fondas
       legal_1_1_terms_of_use: Naudojimo sąlygos
+      legal_1_1_aup: Priimtino naudojimo politika
+      legal_1_1_privacy_policy: Privatumo politika
+      legal_2_1_html: |-
+        Prašome %{contact_the_osmf_link}
+        Jei turite licencijų, autorių teisių ar kitų teisinių klausimų.
       legal_2_1_contact_the_osmf: susisiekti su OSMF
+      legal_2_2_registered_trademarks: OSMF registruotie prekių ženklai
       partners_title: Partneriai
     copyright:
       foreign:
@@ -1888,28 +2005,97 @@ lt:
         mapping_link: pradėti žymėjimą
       legal_babble:
         title_html: Autorinės teisės ir licencija
+        introduction_1_html: |-
+          OpenStreetMap%{registered_trademark_link} yra %{open_data}, licencijuota pagal
+          %{odc_odbl_link} (ODbL) pagal %{osm_foundation_link} (OSMF).
+        introduction_1_open_data: atviri duomenys
+        introduction_1_odc_odbl: Open Data Commons Open Database licencija
+        introduction_1_osm_foundation: OpenStreetMap fondas
+        introduction_3_html: Mūsų dokumentai yra licencijuoti pagal %{creative_commons_link}
+          licenciją (CC BY-SA 2.0).
+        introduction_3_creative_commons: Creative Commons Attribution-ShareAlike 2.0
         credit_title_html: Kaip paminėti OpenStreetMap
         credit_1_html: 'Naudodami OpenStreetMap duomenis, privalote atlikti šiuos
           du dalykus:'
+        credit_2_1: Nurodykite priskyrimą naudojant OpenStreetMap autorių teisių pranešimą.
+        credit_2_2: Paaiškinkite, kad duomenys yra prieinami pagal atviros duomenų
+          bazės licenciją.
+        credit_3_attribution_guidelines: Priskyrimo gairės
+        credit_4_1_this_copyright_page: šį autorių teisių puslapį
         attribution_example:
           alt: Pavyzdys kaip galima priskirti paskyrimus OpenStreetMap svetainėje
           title: Priskyrimo pavyzdys
         more_title_html: Papildoma informacija
+        more_1_1_html: Skaitykite daugiau apie mūsų duomenų naudojimą ir kaip mums
+          priskirti autorystę apsilankę %{osmf_licence_page_link}.
+        more_1_1_osmf_licence_page: OSMF licencijos puslapis
+        more_2_1_api_usage_policy: API naudojimo politika
         contributors_title_html: Mūsų autoriai
         contributors_intro_html: Mūsų autoriai yra tūkstančiai įvairių žmonių. Taip
           pat įtrauktas ir laisvai prieinamas turinys iš valstybinių kartografijos
           agentūrų bei įvairių kitų šaltinių.
         contributors_at_austria: Austrija
+        contributors_at_cc_by_at_with_amendments: CC BY AT su pakeitimais
         contributors_au_australia: Australija
+        contributors_au_geoscape_australia: Geoscape Australia
+        contributors_au_cc_licence: Creative Commons Attribution 4.0 tarptautinė licencija
+          (CC BY 4.0)
+        contributors_ca_credit_html: |-
+          %{canada}: yra duomenų iš
+          GeoBase&reg;, GeoGratis (&copy; Kanados gamtos
+          šaltinių departamentas), CanVec (&copy; Kanados gamtos
+          šaltinių departamentas), ir StatCan (Kanados statistikos
+          Geografijos skyriaus).
         contributors_ca_canada: Kanada
+        contributors_cz_credit_html: '%{czechia}: yra duomenų iš Valstybinės žemėtvarkos
+          administracijos ir kadastro, licencijuojama pagal %{cc_licence_link}'
+        contributors_cz_czechia: Čekija
+        contributors_cz_cc_licence: Creative Commons Attribution 4.0 tarptautinė licencija
+          (CC BY 4.0)
+        contributors_fi_credit_html: |-
+          %{finland}: yra duomenų iš
+          Suomijos topografinės duomenų bazės nacionalinės žemės tyrimo tarnybos
+          ir kitų duomenų rinkinių, pagal %{nlsfi_license_link}.
         contributors_fi_finland: Suomija
+        contributors_fi_nlsfi_license: NLSFI licencija
+        contributors_fr_credit_html: |-
+          %{france}: yra duomenų iš
+          Bendrojo mokesčių valdytojo.
         contributors_fr_france: Prancūzija
+        contributors_nl_credit_html: '%{netherlands}: Yra &copy; AND duomenų, 2007
+          (%{and_link})'
         contributors_nl_netherlands: Nyderlandai
+        contributors_nz_credit_html: |-
+          %{new_zealand}: yra duomenų iš %{linz_data_service_link}
+          licencijuojama antriniam panaudojimui pagal %{cc_by_link}.
         contributors_nz_new_zealand: Naujoji Zelandija
+        contributors_nz_linz_data_service: LINZ duomenų tarnyba
+        contributors_nz_cc_by: CC BY 4.0
+        contributors_rs_credit_html: |-
+          %{serbia}: yra duomenų iš %{rgz_link} ir %{open_data_portal}
+          (vieša Serbijos informacija), 2018.
+        contributors_rs_serbia: Serbija
+        contributors_rs_rgz: Serbijos geodezijos tarnyba
+        contributors_rs_open_data_portal: Nacionalinis atvirų duomenų portalas
+        contributors_si_credit_html: |-
+          %{slovenia}: yra duomenų iš %{gu_link} ir %{mkgp_link}
+          (vieša Slovėnijos informacija).
         contributors_si_slovenia: Slovėnija
+        contributors_si_gu: Matavimo ir žemėlapių tarnyba
+        contributors_si_mkgp: Žemės ūkio, miškų ir maisto ministerija
+        contributors_es_credit_html: |-
+          %{spain}: yra duomenų iš
+          Ispanijos nacionalinio geografijos instituto (%{ign_link}) ir
+          Nacionalinės kartografinės sistemos (%{scne_link})
+          licenzijuojama pakartotiniam naudojimui pagal %{cc_by_link}.
         contributors_es_spain: Ispanija
+        contributors_za_credit_html: '%{south_africa}: yra duomenų iš %{ngi_link},
+          valstybės teisės saugomos.'
         contributors_za_south_africa: Pietų Afrika
+        contributors_za_ngi: 'Vyriausiasis direktoratas: Nacionalinė geografinė erdvinė
+          informacija'
         contributors_gb_united_kingdom: Jungtinė Karalystė
+        contributors_2_contributors_page: Pagalbininkų puslapis
         contributors_footer_2_html: Duomenų įtraukimas į OpenStreetMap nereiškia,
           kad originalių duomenų tiekėjas remia OpenStreetMap. Nenumatomos jokios
           garantijos ir neprisiimama jokia atsakomybė.
@@ -1917,6 +2103,8 @@ lt:
         infringement_1_html: OSM pildytojai primenami niekada nesinaudoti autorių
           teisėmis apsaugotų šaltinių (pvz. Google Maps ar spausdintų žemėlapių) be
           leidimo naudoti.
+        infringement_2_1_takedown_procedure: pašalinimo procedūra
+        infringement_2_1_online_filing_page: pildymo internetu puslapis
     index:
       js_1: Jūs arba naudojate naršyklę, nepalaikančią JavaScript, arba išjungėte
         JavaScript palaikymą.
@@ -1940,12 +2128,7 @@ lt:
         būtini.
     export:
       title: Eksportuoti
-      area_to_export: Eksportuotinas plotas
       manually_select: Rankiniu būdu parinkti kitą sritį
-      format_to_export: Eksporto formatas
-      osm_xml_data: OpenStreetMap XML duomenys
-      map_image: Žemėlapio vaizdas (rodo standartinį sluoksnį)
-      embeddable_html: Pritaikomas HTML
       licence: Licencija
       licence_details_html: OpenStreetMap duomenys yra licencijuoti pagal %{odbl_link}
         (ODbL).
@@ -1970,17 +2153,6 @@ lt:
         other:
           title: Kiti šaltiniai
           description: Papildomi šaltiniai išvardinti OpenStreetMap wiki
-      options: Parinktys
-      format: Formatas
-      scale: Mastelis
-      max: maksimalus
-      image_size: Žemėlapio dydis
-      zoom: Padidinti
-      add_marker: Pridėti žymeklį žemėlapyje
-      latitude: 'Plat:'
-      longitude: 'Ilg:'
-      output: Rezultatas
-      paste_html: Įkelkite šį HTML į svetainę
       export_button: Eksportuoti
     fixthemap:
       title: Pranešti apie problemą / taisyti žemėlapį
@@ -2010,17 +2182,13 @@ lt:
         url: http://wiki.openstreetmap.org/wiki/Lt:Beginners%27_guide
         title: Pradedančiojo vadovas
         description: Bendruomenės palaikomas vadovas pradedantiesiems.
-      help:
-        title: Pagalbos forumas
-        description: Užduokite klausimą arba ieškokite atsakymų OpenStreetMap klausimų-ir-atsakymų
-          svetainėje.
+      community:
+        title: Bendruomenės forumas
+        description: Bendra vieta pokalbiams apie OpenStreetMap.
       mailing_lists:
         title: El. pašto grupės
         description: Užduokite klausimą ar diskutuokite apie įdomius dalykus daugelyje
           teminių ar regioninių el. pašto grupių.
-      community:
-        title: Bendruomenės forumas
-        description: Bendra vieta pokalbiams apie OpenStreetMap.
       irc:
         title: IRC
         description: Interaktyvūs pokalbiai daugeliu kalbų, daugeliu temų.
@@ -2074,60 +2242,76 @@ lt:
           cycleway_national: Nacionalinis dviračių takas
           cycleway_regional: Regioninis dviračių takas
           cycleway_local: Vietinis dviračių takas
+          cycleway_mtb: Kalnų dviračių maršrutas
           footway: Pėsčiųjų takas
           rail: Geležinkelis
+          train: Traukinys
           subway: Metropoliteno linija
-          tram:
-          - Lengvasis geležinkelis
-          - tramvajus
-          cable:
-          - Lyno keltuvas
-          - keltuvas
-          runway:
-          - Kilimo takas
-          - Riedėjimo takas
-          apron:
-          - Oro uosto lėktuvų aikštelė
-          - terminalas
+          ferry: Keltas
+          light_rail: Greitasis traukinys
+          tram: Tramvajus
+          trolleybus: Troleibusas
+          bus: Autobusas
+          cable_car: Lyno keltuvas
+          chair_lift: Keltuvas
+          runway: Kilimo takas
+          taxiway: Riedėjimo takas
+          apron: Oro uosto lėktuvų aikštelė
           admin: Administracinės ribos
+          capital: Sostinė
+          city: Miestas
+          orchard: Vaismedžių plantacija
+          vineyard: Vynuogynas
           forest: Miškas
-          wood: Medžių teritorija
+          wood: Miškas
+          farmland: Pasėliai
+          grass: Žolės
+          meadow: Pieva
+          bare_rock: Plikos uolos
+          sand: Smėlynas
           golf: Golfo laukas
           park: Parkas
+          common: Bendras
+          built_up: Užstatyta teritorija
           resident: Gyvenamoji zona
-          common:
-          - Bendras
-          - pieva
           retail: Mažmeninis rajonas
           industrial: Pramoninė zona
           commercial: Komericinis plotas
           heathland: Šilynas
-          lake:
-          - Ežeras
-          - rezervuaras
+          scrubland: Krūmynai
+          lake: Ežeras
+          reservoir: Tvenkinys
+          intermittent_water: Išdžiūstantis vandentakis
+          glacier: Ledynas
+          reef: Rifas
+          wetland: Šlapynė
           farm: Ūkis
           brownfield: Apleista teritorija
           cemetery: Kapinės
           allotments: Sodai
           pitch: Sportinis laukas
           centre: Sporto centras
+          beach: Paplūdimys
           reserve: Gamtos rezervatas
           military: Karinis rajonas
-          school:
-          - Mokykla
-          - universitetas
+          school: Mokykla
+          university: Universitetas
+          hospital: Ligoninė
           building: Didelis pastatas
           station: Geležinkelio stotis
-          summit:
-          - Viršūnė
-          - Viršukalnė
+          summit: Viršūnė
+          peak: Viršukalnė
           tunnel: Punktyriniai kraštai = tiltas
           bridge: Tamsūs kraštai = tiltas
           private: Privati prieiga
           destination: Atvykimo susisiekimas
           construction: Statomi keliai
+          bus_stop: Autobusų stotelė
+          stop: Sustojimas
           bicycle_shop: Dviračių parduotuvė
+          bicycle_rental: Dviračių nuoma
           bicycle_parking: Dviračių stovėjimo aikštelė
+          bicycle_parking_small: Maža dviračių stovėjimo aikštelė
           toilets: Tualetai
     welcome:
       title: Sveiki atvykę!
@@ -2493,7 +2677,6 @@ lt:
       ct status: Talkininkų sąlygos
       ct undecided: Nenuspręsta
       ct declined: Atmesta
-      latest edit: 'Paskutinis pakeitimas (%{ago}):'
       email address: 'E-pašto adresas:'
       created from: 'Sukurta iš:'
       status: 'Būsena:'
@@ -2615,8 +2798,8 @@ lt:
       title: Atšaukiamas naudotojo %{block_on} blokavimas
       heading_html: Atšaukiamas naudotojo %{block_on} blokavimas, sukurtas naudotojo
         %{block_by}
-      time_future: Šis blokavimas pasibaigs po %{time}.
-      past: Šis blokavimas baigėsi %{time}, todėl nebegali būti atšauktas.
+      time_future_html: Šis blokavimas pasibaigs po %{time}.
+      past_html: Šis blokavimas baigėsi %{time}, todėl nebegali būti atšauktas.
       confirm: Ar tikrai norite atšaukti šį blokavimą?
       revoke: Atšaukti!
       flash: Šis blokavimas buvo atšauktas
@@ -2780,11 +2963,9 @@ lt:
           other: Jūs esate %{count} pėdų atstumu nuo šio taško
       base:
         standard: Standartinis
-        cyclosm: CyclOSM
         cycle_map: Dviračių žemėlapis
         transport_map: Transporto žemėlapis
         hot: Humanitarinis
-        opnvkarte: ÖPNVKarte
       layers:
         header: Žemėlapio sluoksniai
         notes: Žemėlapio pastabos
@@ -2793,6 +2974,7 @@ lt:
         overlays: Įjungti papildomus sluoksnius problemų pranešimui
         title: Sluoksniai
       osm_france: OpenStreetMap Prancūzija
+      andy_allan: Endis Alanas
     site:
       edit_tooltip: Redaguoti žemėlapį
       edit_disabled_tooltip: Norėdami redaguoti, priartinkite
index 3edc42d98c4a4b0e4cc727df3d7b01dcf4bc44e3..7dfbe95f70f91f1e80407f20b3747ae8f3311628 100644 (file)
@@ -44,6 +44,7 @@ lv:
         create: Reģistrēties
         update: Atjaunināt
       oauth2_application:
+        create: Reģistrēties
         update: Atjaunināt
       redaction:
         create: Izveidot redakciju
@@ -172,7 +173,6 @@ lv:
   auth:
     providers:
       none: Nav
-      openid: OpenID
       google: Google
       facebook: Facebook
       github: GitHub
@@ -232,6 +232,7 @@ lv:
           Domēnā.
         link text: kas tas ir?
       save changes button: Saglabāt izmaiņas
+      delete_account: Dzēst kontu...
     go_public:
       heading: Publiska rediģēšana
       currently_not_public: Pašlaik jūsu labojumi ir anonīmi, un cilvēki nevar jums
@@ -275,12 +276,8 @@ lv:
       way_paginated: Ceļi (%{x}-%{y} no %{count})
       relation: Relācijas (%{count})
       relation_paginated: Relācijas (%{x}-%{y} no %{count})
-      comment: Komentāri (%{count})
       changesetxml: Izmaiņu kopas XML
       osmchangexml: osmChange XML
-      feed:
-        title: Izmaiņu kopa %{id}
-        title_comment: Izmaiņu kopa %{id} - %{comment}
       join_discussion: Ieejiet sistēmā lai pievienotos diskusijai
       discussion: Diskusija
     node:
@@ -375,6 +372,9 @@ lv:
       no_more_area: Nav vairāk izmaiņu kopu šajā apgabalā.
       no_more_user: Nav vairāk izmaiņu kopu no šī lietotāja.
       load_more: Ielādēt vairāk
+      feed:
+        title: Izmaiņu kopa %{id}
+        title_comment: Izmaiņu kopa %{id} - %{comment}
     timeout:
       sorry: Atvainojiet, jūsu pieprasīto izmaiņu kopu ielāde prasīja pārāk daudz
         laika.
@@ -389,6 +389,7 @@ lv:
     contact:
       km away: '%{count} km attālumā'
       m away: '%{count} m attālumā'
+      latest_edit_html: 'Pēdējais labojums %{ago}:'
     popup:
       your location: Jūsu atrašanās vieta
       nearby mapper: Kartētājs tuvējā apkārtnē
@@ -410,7 +411,7 @@ lv:
       title: Jauns dienasgrāmatas ieraksts
     form:
       location: 'Atrašanās vieta:'
-      use_map_link: izmantot karti
+      use_map_link: Izmantot karti
     index:
       title: Lietotāju dienasgrāmatas
       title_friends: Draugu dienasgrāmatas
@@ -447,6 +448,7 @@ lv:
         one: '%{count} komentārs'
         zero: Nav komentāru
         other: '%{count} komentāri'
+      no_comments: Nav komentāru
       edit_link: Rediģēt šo ierakstu
       hide_link: Slēpt šo ierakstu
       confirm: Apstiprināt
@@ -497,6 +499,7 @@ lv:
           chair_lift: Krēslu Pacēlājs
           drag_lift: Vilkšanas Pacēlājs
           gondola: Gondola Lifts
+          pylon: Pilons
           station: Pacēlāja Stacija
           "yes": Gaisa ceļš
         aeroway:
@@ -609,6 +612,7 @@ lv:
           census: Skaitīšanas robeža
           national_park: Nacionālais parks
           protected_area: Aizsargājamās teritorijas
+          "yes": Robeža
         bridge:
           aqueduct: Akvedukts
           suspension: Piekartitls
@@ -665,6 +669,7 @@ lv:
           blacksmith: Kalējs
           brewery: Alus darītava
           carpenter: Galdnieks
+          caterer: Ēdinātājs
           dressmaker: Drēbnieks
           electrician: Elektriķis
           electronics_repair: Elektronikas remonts
@@ -844,6 +849,7 @@ lv:
           flagpole: Karoga masts
           kiln: Ceplis
           lighthouse: Bāka
+          manhole: Lūka
           mine: Raktuves
           mineshaft: Raktuves šahta
           monitoring_station: Uzraudzības stacija
@@ -1172,6 +1178,8 @@ lv:
       resolve: Atrisināt
       ignore: Ignorēt
       reopen: Atkārtoti atvērt
+      read_reports: Lasīt ziņojumus
+      new_reports: Jauni ziņojumi
   layouts:
     logo:
       alt_text: OpenStreetMap logo
@@ -1334,8 +1342,6 @@ lv:
   messages:
     inbox:
       title: iesūtne
-      my_inbox: Mana iesūtne
-      my_outbox: Mana izsūtne
       messages: Jums ir %{new_messages} un  %{old_messages}
       new_messages:
         one: '%{count} jauna ziņa'
@@ -1343,12 +1349,14 @@ lv:
       old_messages:
         one: '%{count} veca ziņa'
         other: '%{count} vecas ziņas'
-      from: "No"
-      subject: Temats
-      date: Datums
       no_messages_yet_html: Jums vēl nav ziņojumu. Kāpēc gan nesazināties ar kādu
         no %{people_mapping_nearby_link}?
       people_mapping_nearby: cilvēkiem, kuri zīmē karti tavā apkaimē
+    messages_table:
+      from: "No"
+      to: Kam
+      subject: Temats
+      date: Datums
     message_summary:
       unread_button: Atzīmēt kā nelasītu
       read_button: Atzīmēt kā lasītu
@@ -1368,14 +1376,9 @@ lv:
       body: Atvainojiet, ziņa ar norādīto identifikatoru nav atrodama.
     outbox:
       title: izsūtne
-      my_inbox: Mana iesūtne
-      my_outbox: Mana izsūtne
       messages:
         one: Tev ir %{count} nosūtīta ziņa
         other: Tev ir %{count} nosūtītas ziņas
-      to: Kam
-      subject: Temats
-      date: Datums
       no_sent_messages_html: Tev pašlaik nav ziņojumu. Kāpēc nesazināties ar kādu
         no %{people_mapping_nearby_link}?
       people_mapping_nearby: cilvēki kartē tuvā apkārtnē
@@ -1394,28 +1397,33 @@ lv:
         lai izlasītu to.
     sent_message_summary:
       destroy_button: Dzēst
+    heading:
+      my_inbox: Mana iesūtne
+      my_outbox: Mana izsūtne
     mark:
       as_read: Ziņa atzīmēta kā lasīta
       as_unread: Ziņa atzīmēta kā nelasīta
     destroy:
       destroyed: Ziņa izdzēsta
   passwords:
-    lost_password:
+    new:
       title: Aizmirsāt paroli
       heading: Aizmirsi paroli?
       email address: 'E-pasta adrese:'
       new password button: Atiestatīt paroli
       help_text: Ievadiet e-pasta adresi, kuru izmantojāt, lai reģistrētos, mēs Jums
         nosūtīsim saiti uz to, lai Jūs varētu atjaunot savu paroli.
+    create:
       notice email on way: Atvaino, tu to pazaudēji :-( , bet e-pasts jau ir ceļā,
         lai tu viņu drīz varētu atjaunot.
       notice email cannot find: Atvaino, nevaru atrast šo epasta adresi.
-    reset_password:
+    edit:
       title: Atiestatīt paroli
       heading: Atcelt %{user} paroli
       reset: Atcelt paroli
-      flash changed: Jūsu parole ir nomainīta.
       flash token bad: Neatradu to pilnvaru, varbūt pārbaudi URL?
+    update:
+      flash changed: Jūsu parole ir nomainīta.
   preferences:
     show:
       title: Mani uzstādījumi
@@ -1456,7 +1464,6 @@ lv:
       heading: Pieslēgties
       email or username: 'E-pasta adrese vai lietotājvārds:'
       password: 'Parole:'
-      openid_html: '%{logo} OpenID:'
       remember: Atcerēties mani
       lost password link: Aizmirsi paroli?
       login_button: Pieslēgties
@@ -1590,12 +1597,7 @@ lv:
         šai iezīmei.
     export:
       title: Eksportēt
-      area_to_export: Apgabals, kuru eksportēt
       manually_select: Manuāli izvēlēties citu teritoriju
-      format_to_export: Eksportēšanas formāts
-      osm_xml_data: OpenStreetMap XML dati
-      map_image: Kartes attēls (parāda standarta slāni)
-      embeddable_html: Ievietojams HTML kods
       licence: Licence
       too_large:
         advice: 'Ja augstāk esošais eksports neizdodas, lūdzu apsver iespēj lietot
@@ -1615,17 +1617,6 @@ lv:
         other:
           title: Citi Avoti
           description: Papildus avoti, kas norādīti OpenStreetMap wiki
-      options: Iespējas
-      format: Formāts
-      scale: Mērogs
-      max: līdz
-      image_size: Attēla izmērs
-      zoom: Palielināt
-      add_marker: Pievienot atzīmi kartei
-      latitude: 'Platums:'
-      longitude: 'Garums:'
-      output: Izvade
-      paste_html: Ielīmēt HTML mājas lapā
       export_button: Eksportēt
     fixthemap:
       title: Ziņot par problēmu / Labot karti
@@ -1650,17 +1641,12 @@ lv:
         url: http://wiki.openstreetmap.org/wiki/Lv:Beginners%27_guide
         title: Iesācēja Rokasgrāmata
         description: Lietotāju uzturēta pamācība priekš iesācējiem.
-      help:
-        url: http://forum.openstreetmap.org/viewforum.php?id=59
-        title: Palīdzības forums
-        description: Uzdod jautājumu vai atrodi atbildes iekš OSM jautājumu un atbilžu
-          lapas.
+      community:
+        title: Kopienas forums
       mailing_lists:
         title: Adresātu Saraksti
         description: Uzdodiet jautājumu vai apspriediet interesējošās tēmas par vispārējajiem
           vai reģionālajiem adresātu sarakstiem.
-      community:
-        title: Kopienas forums
       irc:
         title: IRC
         description: Interaktīvais čats dažādās valodās par dažādām tēmām.
@@ -1709,35 +1695,24 @@ lv:
           footway: Gājēju ceļš
           rail: Dzelzceļš
           subway: Metro
-          tram:
-          - Tramvaja sliedes
-          - Tramvajs
-          cable:
-          - Trošu ceļš
-          - krēslu pacēlājs
-          runway:
-          - Lidostas skrejceļš
-          - manevrēšanas ceļš
-          apron:
-          - Lidostas rampa
-          - termināls
+          cable_car: Trošu ceļš
+          chair_lift: krēslu pacēlājs
+          runway: Lidostas skrejceļš
+          taxiway: manevrēšanas ceļš
+          apron: Lidostas rampa
           admin: Administratīvā robeža
           forest: Mežs
           wood: Pirmatnējs mežs
           golf: Golfa laukums
           park: Parks
+          common: Koplietošanas zeme
           resident: Dzīvojamā zona
-          common:
-          - Koplietošanas zeme
-          - Pļava
-          - dārzs
           retail: Mazumtirdzniecības zona
           industrial: Rūpniecības zona
           commercial: Tirdzniecības zona
           heathland: Tīrelis
-          lake:
-          - Ezeri
-          - ūdenskrātuves
+          lake: Ezeri
+          reservoir: ūdenskrātuves
           farm: Saimniecība
           brownfield: Nekopta vieta
           cemetery: Kapsēta
@@ -1746,14 +1721,12 @@ lv:
           centre: Sporta centrs
           reserve: Dabas rezervāts
           military: Militārā zona
-          school:
-          - Skola
-          - universitāte
+          school: Skola
+          university: universitāte
           building: Ēka
           station: Dzelzceļa stacija
-          summit:
-          - Virsotne
-          - smaile
+          summit: Virsotne
+          peak: smaile
           tunnel: Tunelis
           bridge: Tilts
           private: Privāta pieeja
@@ -2025,7 +1998,6 @@ lv:
       ct status: 'Dalībnieka noteikumi:'
       ct undecided: Nav izlēmis
       ct declined: Noraidīti
-      latest edit: 'Pēdējais labojums %{ago}:'
       email address: 'E-pasta adrese:'
       created from: 'Izveidota no:'
       status: 'Statuss:'
@@ -2133,8 +2105,8 @@ lv:
     revoke:
       title: Atcelt liegumu uz %{block_on}
       heading_html: Atceļ liegumu uz %{block_on} pēc %{block_by}
-      time_future: Šis liegums beigsies %{time}.
-      past: Šis liegums beidzās %{time} atpakaļ un nevar tikt atsaukts.
+      time_future_html: Šis liegums beigsies %{time}.
+      past_html: Šis liegums beidzās %{time} atpakaļ un nevar tikt atsaukts.
       confirm: Vai jūs tiešām vēlaties atcelt šo bloku?
       revoke: Atsaukt!
       flash: Šis bloks ir atsaukts.
@@ -2258,7 +2230,6 @@ lv:
         title: Rādīt manu atrašanās vietu
       base:
         standard: Standarta
-        cyclosm: CyclOSM
         cycle_map: Velokarte
         transport_map: Transporta karte
         hot: Humanitārās
index e0b1eeb2514bec85cbe5df323a6dd0d489d917d0..a846672a5352278af51378b8643dda35cf1fbbf4 100644 (file)
@@ -46,6 +46,11 @@ mk:
       messages:
         invalid_email_address: не претставува важечка е-пошта
         email_address_not_routable: не е насочлива
+        display_name_is_user_n: не може да биде user_n освен ако n е вашата корисничка
+          назнака
+      models:
+        user_mute:
+          is_already_muted: е веќе замолкнат
     models:
       acl: Список за контрола на пристап
       changeset: Измени
@@ -205,7 +210,8 @@ mk:
         one: пред %{count} година
         other: пред %{count} години
   printable_name:
-    with_version: '%{id}, вер. %{version}'
+    version: вер. %{version}
+    current_and_old_links_html: '%{current_link}, %{old_link}'
   editor:
     default: По основно (моментално %{name})
     id:
@@ -217,7 +223,6 @@ mk:
   auth:
     providers:
       none: Нема
-      openid: OpenID
       google: Google
       facebook: Фејсбук
       microsoft: Microsoft
@@ -267,12 +272,14 @@ mk:
         retain_notes: Вашите белешки и коментари на картата (но нема да бидат видливи).
         retain_changeset_discussions: Вашите разговори за збировите промени.
         retain_email: Вашите е-поштенски адреси.
+        recent_editing_html: Бидејќи неодамна уредувавте, вашата сметка засега не
+          може да се избрише. Бришењето ќе може да се изведе за %{time}.
         confirm_delete: Дали сте сигурни?
         cancel: Откажи
   accounts:
     edit:
       title: Уреди сметка
-      my settings: Ð\9cои Ð¿Ñ\80илагодувања
+      my settings: Ð\9cои Ð½агодувања
       current email address: Тековна е-пошта
       external auth: Надворешна заверка
       openid:
@@ -348,14 +355,10 @@ mk:
       way_paginated: Патишта (%{x}-%{y} од вкупно %{count})
       relation: Односи (%{count})
       relation_paginated: Односи (%{x}-%{y} од вкупно %{count})
-      comment: Коментари (%{count})
       hidden_comment_by_html: Скриен коментар од %{user} %{time_ago}
       comment_by_html: Коментар од %{user} %{time_ago}
       changesetxml: XML за измените
       osmchangexml: osmChange XML
-      feed:
-        title: Измени %{id}
-        title_comment: Измени %{id} - %{comment}
       join_discussion: Најавете се за да се приклучите во разговорот
       discussion: Разговор
       still_open: Измените сè уште се отворени — разговорот ќе се отвори штом ќе се
@@ -436,6 +439,15 @@ mk:
       introduction: Стиснете на картата за да ги најдете елементите во близина.
       nearby: Елементи во близина
       enclosing: Обиколни елементи
+  old_nodes:
+    not_found:
+      sorry: 'За жал, не го најдов јазолот #%{id} верзија %{version}.'
+  old_ways:
+    not_found:
+      sorry: 'За жал, не го најдов патот #%{id} верзија %{version}.'
+  old_relations:
+    not_found:
+      sorry: 'За жал, не го најдов односот #%{id} верзија %{version}.'
   changesets:
     changeset_paging_nav:
       showing_page: Страница %{page}
@@ -464,6 +476,9 @@ mk:
       no_more_area: Нема повеќе промени на ова подрчаје.
       no_more_user: Нема повеќе промени од овој корисник.
       load_more: Вчитај уште
+      feed:
+        title: Измени %{id}
+        title_comment: Измени %{id} - %{comment}
     timeout:
       sorry: За жал, на списокот на промени што го побаравте му требаше предолго за
         да се добие.
@@ -483,6 +498,7 @@ mk:
     contact:
       km away: '%{count} км од вас'
       m away: '%{count} м од вас'
+      latest_edit_html: 'Последно уредување (%{ago}):'
     popup:
       your location: Ваша местоположба
       nearby mapper: Соседен картограф
@@ -526,6 +542,7 @@ mk:
     show:
       title: Дневникот на %{user} | %{title}
       user_title: Дневникот на %{user}
+      discussion: Разговор
       leave_a_comment: Напиши коментар
       login_to_leave_a_comment_html: '%{login_link} за да оставите коментар'
       login: Најава
@@ -579,6 +596,12 @@ mk:
       comment: Коментар
       newer_comments: Понови коментари
       older_comments: Постари коментари
+    subscribe:
+      heading: Да ве претплатам на разговорот во следната дневничка ставка?
+      button: Претплати се на разговорот
+    unsubscribe:
+      heading: Да ве отпишам од претплатата на разговорот во следната дневничка ставка?
+      button: Отпиши се од разговорот
   doorkeeper:
     errors:
       messages:
@@ -1159,7 +1182,7 @@ mk:
           valley: Долина
           volcano: Вулкан
           water: Вода
-          wetland: Мочуриште
+          wetland: Моклиште
           wood: Шума
           "yes": Природен елемент
         office:
@@ -1459,9 +1482,9 @@ mk:
         one: '%{count} пријава'
         other: '%{count} пријави'
       no_reports: Нема пријави
-      report_created_at: Првпат пријавено на %{datetime}
-      last_resolved_at: Последно пријавено на %{datetime}
-      last_updated_at: Последно пријавено на %{datetime} од %{displayname}
+      report_created_at_html: Првпат пријавено на %{datetime}
+      last_resolved_at_html: Последно пријавено на %{datetime}
+      last_updated_at_html: Последно пријавено на %{datetime} од %{displayname}
       resolve: Реши
       ignore: Занемари
       reopen: Повторно отвори
@@ -1586,6 +1609,9 @@ mk:
         %{commenturl} или пак да му испратите порака на авторот на %{replyurl}
       footer_html: Можете и да го прочитате коментарот на %{readurl}, да коментирате
         на %{commenturl} или пак да му испратите порака на авторот на %{replyurl}
+      footer_unsubscribe: Можете да ја отпишете претплатата на разговорот на %{unsubscribeurl}
+      footer_unsubscribe_html: Можете да ја отпишете претплатата на разговорот на
+        %{unsubscribeurl}
     message_notification:
       subject: '[OpenStreetMap] %{message_title}'
       hi: Здраво %{to_user},
@@ -1621,6 +1647,8 @@ mk:
       loaded:
         one: успешно вчитано со %{trace_points} од %{count} можни точки.
         other: успешно вчитано со %{trace_points} од %{count} можни точки.
+      all_your_traces_html: Сите ваши успешно подигнати GPX-траги ќе ги најдете на
+        %{url}.
       subject: '[OpenStreetMap] Успешен увоз на GPX-податотека'
     signup_confirm:
       subject: '[OpenStreetMap] Добре дојдовте на OpenStreetMap'
@@ -1739,8 +1767,6 @@ mk:
   messages:
     inbox:
       title: Примени
-      my_inbox: Моето сандаче
-      my_outbox: Моја излезна пошта
       messages: Имате %{new_messages} и %{old_messages}
       new_messages:
         one: '%{count} нова порака'
@@ -1748,21 +1774,25 @@ mk:
       old_messages:
         one: '%{count} стара порака'
         other: '%{count} стари пораки'
-      from: Од
-      subject: Наслов
-      date: Датум
       no_messages_yet_html: Сè уште немате пораки. Зошто не се поврзете со некој од
         %{people_mapping_nearby_link}?
       people_mapping_nearby: картографите во вашата близина
+    messages_table:
+      from: Од
+      to: До
+      subject: Наслов
+      date: Датум
+      actions: Дејства
     message_summary:
       unread_button: Означи како непрочитано
       read_button: Означи како прочитано
       reply_button: Одговори
       destroy_button: Избриши
+      unmute_button: Премести во Примени
     new:
       title: Испрати ја пораката
       send_message_to_html: Испрати нова порака за %{name}
-      back_to_inbox: Ð\9dазад Ð²Ð¾ Ð¿Ñ\80имени
+      back_to_inbox: Ð\9dазад Ð½Ð° Ð¿Ñ\80имениÑ\82е
     create:
       message_sent: Пораката е испратена
       limit_exceeded: Во последно време имате испратено многу пораки. Почекајте малку,
@@ -1773,17 +1803,18 @@ mk:
       body: За жал, нема порака со таа назнака.
     outbox:
       title: За праќање
-      my_inbox: Мое сандаче
-      my_outbox: Моја излезна пошта
+      actions: Дејства
       messages:
         one: Имате %{count} испратена порака
         other: Имате %{count} испратени пораки
-      to: До
-      subject: Наслов
-      date: Датум
       no_sent_messages_html: Сè уште немате испратено пораки. Зошто да не исконтактирате
         некои %{people_mapping_nearby_link}?
       people_mapping_nearby: картографите во вашата близина
+    muted:
+      title: Замолкнати пораки
+      messages:
+        one: '%{count} замолкната порака'
+        other: Имате %{count} замолкнати пораки
     reply:
       wrong_user: Најавени сте како „%{user}“, но пораката на којашто побаравте да
         одговорите не е испратена до тој корисник. Најавете се под правилно корисничко
@@ -1799,26 +1830,36 @@ mk:
         име за да ја прочитате.
     sent_message_summary:
       destroy_button: Избриши
+    heading:
+      my_inbox: Примени
+      my_outbox: Моја излезна пошта
+      muted_messages: Замолкнати пораки
     mark:
       as_read: Пораката е означена како прочитана
       as_unread: Пораката е означена како непрочитана
+    unmute:
+      notice: Пораката е преместена во Примени
+      error: Пораката не можеше да се премести во Примени.
     destroy:
       destroyed: Пораката е избришана
   passwords:
-    lost_password:
+    new:
       title: Загубена лозинка
       heading: Ја заборавивте лозинката?
-      email address: 'Е-пошта:'
+      email address: Е-пошта
       new password button: Смени лозинка
       help_text: Внесете ја е-поштенската адреса со која се зачленивте, и ќе ви пратиме
         врска каде ќе наведете нова лозинка.
+    create:
       notice email on way: Жалиме, ова истече :-( но ви пративме нова порака на е-пошта,
         па наскоро повторно ќе можете да ја смените.
       notice email cannot find: Жалам, не можев да ја пронајдам таа адреса
-    reset_password:
+    edit:
       title: Смени лозинка
       heading: Смени лозинка за %{user}
       reset: Смени лозинка
+      flash token bad: Не ја пронајдов таа шифра. Проверете ја URL-адресата.
+    update:
       flash changed: Лозинката ви е сменета.
       flash token bad: Не ја пронајдов таа шифра. Проверете ја URL-адресата.
   preferences:
@@ -1867,8 +1908,7 @@ mk:
       title: Најава
       heading: Најава
       email or username: Е-пошта или корисничко име
-      password: 'Лозинка:'
-      openid_html: '%{logo} OpenID:'
+      password: Лозинка
       remember: Запомни ме
       lost password link: Ја заборавивте лозинката?
       login_button: Најава
@@ -1926,6 +1966,7 @@ mk:
       image: Слика
       alt: Алтернативен текст
       url: URL
+      codeblock: Коден блок
     richtext_field:
       edit: Уреди
       preview: Преглед
@@ -2167,12 +2208,7 @@ mk:
         без кои оваа можност не може да работи.
     export:
       title: Извези
-      area_to_export: Подрачје за извоз
       manually_select: Рачно изберете друга површина
-      format_to_export: Формат за извоз
-      osm_xml_data: OpenStreetMap XML податоци
-      map_image: Слика на картата (прикажува стандарден слој)
-      embeddable_html: HTML-код за вметнување
       licence: Лиценца
       licence_details_html: Податоците на OpenStreetMap се лиценцирани според  %{odbl_link}
         (ODbL).
@@ -2196,17 +2232,6 @@ mk:
         other:
           title: Други извори
           description: Другите извори се наведени на викито на OpenStreetMap
-      options: Нагодувања
-      format: Формат
-      scale: Размер
-      max: најв.
-      image_size: Големина на сликата
-      zoom: Приближи
-      add_marker: Додај бележник на картата
-      latitude: Г.Ш.
-      longitude: Г.Д.
-      output: Извод
-      paste_html: Ископирајте го HTML кодот за да го вметнете во страницата.
       export_button: Извези
     fixthemap:
       title: Пријава на проблем / Исправка на картата
@@ -2240,17 +2265,13 @@ mk:
       beginners_guide:
         title: Почетен курс
         description: Напатствија за почетници, напишани од заедницата.
-      help:
-        title: Форум за помош
-        description: Поставете прашање или побарајте во одговорите на порталот за
-          прашања и одговори на OpenStreetMap.
+      community:
+        title: Форум за помош и заедница
+        description: Заедничко место за барање помош и разговори за OpenStreetMap.
       mailing_lists:
         title: Поштенски списоци
         description: Поставете прашање или разговарајте за интересни прашања на широк
           опсег на тематски и регионални поштенски списоци.
-      community:
-        title: Форум на заедницата
-        description: Заедничко место за разговори за OpenStreetMap.
       irc:
         title: IRC
         description: Разговор во живо на најразлични јазици и на многу теми.
@@ -2305,67 +2326,83 @@ mk:
           primary: Главен пат
           secondary: Спореден пат
           unclassified: Некласификуван пат
+          pedestrian: Пешачки пат
           track: Патека
           bridleway: Пешачко-влечен пат
           cycleway: Велосипедска патека
           cycleway_national: Државна велосипедска патека
           cycleway_regional: Регионална велосипедска патека
           cycleway_local: Месна велосипедска патека
+          cycleway_mtb: Пат за планински велосипедизам
           footway: Пешачка патека
           rail: Железница
+          train: Воз
           subway: Метро
-          tram:
-          - Лека железница
-          - трамвај
-          cable:
-          - Клупна жичница
-          - клупна жичница
-          runway:
-          - Аеродромска писта
-          - рулажна патека
-          apron:
-          - Аеродромска платформа
-          - терминал
+          ferry: Траект
+          light_rail: Лека железница
+          tram: Трамвај
+          trolleybus: Тролејбус
+          bus: Автобус
+          cable_car: Клупна жичница
+          chair_lift: Клупна жичница
+          runway: Аеродромска писта
+          taxiway: Рулажна патека
+          apron: Аеродромска платформа
           admin: Административна граница
+          capital: Главен град
+          city: Град
+          orchard: Овоштарник
+          vineyard: Лозје
           forest: Шума
-          wood: Шумичка
+          wood: Шума
+          farmland: Земјоделско земјиште
+          grass: Трева
+          meadow: Ливада
+          bare_rock: Гола карпа
+          sand: Песок
           golf: Голф-терен
           park: Парк
+          common: Општествена земја
+          built_up: Изградено подрачје
           resident: Станбено подрачје
-          common:
-          - Општествена земја
-          - ливада
-          - градина
           retail: Трговско подрачје
           industrial: Индустриско подрачје
           commercial: Комерцијално подрачје
           heathland: Вресиште
-          lake:
-          - Езеро
-          - резервоар
+          scrubland: Шикара
+          lake: Езеро
+          reservoir: Резервоар
+          intermittent_water: Повремена водна површина
+          glacier: Ледник
+          reef: Гребен
+          wetland: Моклиште
           farm: Фарма
           brownfield: Запуштено подрачје
           cemetery: Гробишта
           allotments: Парцели
           pitch: Спортски терен
           centre: Спортски центар
+          beach: Плажа
           reserve: Природен резерват
           military: Воено подрачје
-          school:
-          - Училиште
-          - универзитет
+          school: Училиште
+          university: Универзитет
+          hospital: Болница
           building: Значајно здание
           station: Железничка станица
-          summit:
-          - Врв
-          - врв
+          summit: Врв
+          peak: Врв
           tunnel: Испрекината линија = тунел
           bridge: Црна линија = мост
           private: Доверлив пристап
           destination: Пристап до одредницата
           construction: Патишта во изградба
+          bus_stop: Автобуска постојка
+          stop: Постојка
           bicycle_shop: Точкар
+          bicycle_rental: Изнајмување велосипеди
           bicycle_parking: Паркирање велосипеди
+          bicycle_parking_small: Мал паркинг за велосипеди
           toilets: Тоалет
     welcome:
       title: Добре дојдовте!
@@ -2406,6 +2443,7 @@ mk:
         imports: Увози
         automated_edits: Автоматски уредувања
       start_mapping: Почнете да ги работите картите
+      continue_authorization: Продолжи со овластувањето
       add_a_note:
         title: Немате време да уредувате? Ставете белешка.
         para_1: Ако сакате да направите само поситна поправка и немате време да се
@@ -2565,6 +2603,7 @@ mk:
       oauth1_settings: Поставки за OAuth 1
       oauth2_applications: Поставки за OAuth 2
       oauth2_authorizations: Овластувања за OAuth 2
+      muted_users: Замолкнати корисници
   oauth:
     authorize:
       title: Овластете пристап до вашата сметка
@@ -2601,11 +2640,13 @@ mk:
       read_gpx: Читање на приватни ГПС-траги
       write_gpx: Подигање на ГПС-траги
       write_notes: Менување на белешки
+      write_redactions: Прикриј податоци за картата
       read_email: Читање на корисничка е-пошта
       skip_authorization: Автоодобрување на прилог
   oauth_clients:
     new:
       title: Пријавете нов прилог
+      disabled: Пријавувањето на прилози OAuth 1 е оневозможено
     edit:
       title: Уредете го прилогот
     show:
@@ -2688,6 +2729,7 @@ mk:
       title: Мои овластени прилози
       application: Прилог
       permissions: Дозволи
+      last_authorized: Последно овластено
       no_applications_html: Сè уште немате овластено ниеден %{oauth2}-прилог.
     application:
       revoke: Одземи пристап
@@ -2767,12 +2809,14 @@ mk:
       my notes: Мои белешки
       my messages: Мои пораки
       my profile: Мојот профил
-      my settings: Ð\9cои Ð½Ð°Ð³Ð¾Ð´Ñ\83ваÑ\9aа
+      my settings: Ð\9cои Ð¿Ð¾Ñ\81Ñ\82авки
       my comments: Мои коментари
       my_preferences: Мои нагодувања
       my_dashboard: Моја управувачница
       blocks on me: Добиени блокови
       blocks by me: Извршени болокови
+      create_mute: Замолкни го корисников
+      destroy_mute: Одмолкни го корисников
       edit_profile: Уреди профил
       send message: Испрати порака
       diary: Дневник
@@ -2786,7 +2830,6 @@ mk:
       ct status: 'Услови за учество:'
       ct undecided: Неодлучено
       ct declined: Одбиен
-      latest edit: 'Последно уредување (%{ago}):'
       email address: Е-пошта
       created from: 'Создадено од:'
       status: 'Статус:'
@@ -2794,14 +2837,18 @@ mk:
       role:
         administrator: Овој корисник е администратор
         moderator: Овој корисник е модератор
+        importer: Овој корисник е увозник
         grant:
           administrator: Додели администраторски пристап
           moderator: Додели модераторски пристап
+          importer: Дај увознички пристап
         revoke:
           administrator: Лиши од администраторски пристап
           moderator: Лиши од модераторски пристап
+          importer: Одземи увознички пристап
       block_history: Активни блокови
       moderator_history: Зададени блокови
+      revoke_all_blocks: Отповикај ги сите блокови
       comments: Коментари
       create_block: Блокирај го корисников
       activate_user: Активирај го корисников
@@ -2906,11 +2953,21 @@ mk:
     revoke:
       title: Поништување на блок за %{block_on}
       heading_html: Поништување на блок за %{block_on} од %{block_by}
-      time_future: Овој блок истекува за %{time}.
-      past: Овој блок истекол %{time} и сега не може да се отповика.
+      time_future_html: Овој блок истекува за %{time}.
+      past_html: Овој блок истекол %{time} и сега не може да се отповика.
       confirm: Дали сигурно дакате да го поништите овој блок?
       revoke: Поништи!
       flash: Овој блок е поништен.
+    revoke_all:
+      title: Отповикување на сите блокови на %{block_on}
+      heading_html: Отповикување на сите блокови на %{block_on}
+      empty: '%{name} нема активни блокови.'
+      confirm: Дали сигурно сакате да отповикате %{active_blocks}?
+      active_blocks:
+        one: '%{count} активен блок'
+        other: '%{count} активни блокови'
+      revoke: Отповикај!
+      flash: Сите активни блокови се отповикани.
     helper:
       time_future_html: Истекува за %{time}.
       until_login: Активно додека не се најави корисникот.
@@ -2969,6 +3026,30 @@ mk:
       showing_page: Страница %{page}
       next: Следна »
       previous: « Претходна
+  user_mutes:
+    index:
+      title: Замолкнати корисници
+      my_muted_users: Мои замолкнати корисници
+      you_have_muted_n_users:
+        one: Имате замолкнато %{count} корисник
+        other: Имате замолкнато %{count} корисници
+      user_mute_explainer: Пораките на замолкнатите корисници се преместуваат во посебно
+        сандаче Примени, и за нив нема да добивате известувања по е-пошта.
+      user_mute_admins_and_moderators: Можете да замолкнувате администратори и модератори,
+        но нивните пораки нема да бидат замолкнати.
+      table:
+        thead:
+          muted_user: Замолкнат корисник
+          actions: Дејства
+        tbody:
+          unmute: Одмолкни
+          send_message: Испрати порака
+    create:
+      notice: Го замолкнавте %{name}.
+      error: '%{name} не можеше да се замолкне. %{full_message}.'
+    destroy:
+      notice: Го одмолкнавте %{name}.
+      error: Корисникот не можеше да се одмолкне. Обидете се повторно.
   notes:
     index:
       title: Белешки создадени или коментирани од %{user}
@@ -3005,6 +3086,7 @@ mk:
       reactivate: Преактивирај
       comment_and_resolve: Коментирај и реши
       comment: Коментирај
+      log_in_to_comment: Најавете се за да коментирате на оваа белешка
       report_link_html: Доколку оваа белешка содржи чувствителни информации кои треба
         да се остранат, можете да %{link}.
       other_problems_resolve: За сите други проблеми со белешката, решете ги самите
@@ -3062,12 +3144,10 @@ mk:
           other: Се наоѓате на %{count} стапки од оваа точка
       base:
         standard: Стандардна
-        cyclosm: CyclOSM
         cycle_map: Велосипедска
         transport_map: Сообраќајна
         tracestracktop_topo: Tracestrack Топо
         hot: Хуманитарна
-        opnvkarte: ÖPNVKarte
       layers:
         header: Слоеви на картата
         notes: Белешки на картата
@@ -3082,8 +3162,6 @@ mk:
       osm_france: OpenStreetMap Франција
       thunderforest_credit: Полињата се доставени од %{thunderforest_link}
       andy_allan: Енди Алан
-      opnvkarte_credit: Полињата се доставени од %{memomaps_link}
-      memomaps: MeMoMaps
       tracestrack_credit: Полињата се доставени од %{tracestrack_link}
       hotosm_credit: Стилот на полињата е од %{hotosm_link} вдомен од %{osm_france_link}
       hotosm_name: Екипа на Хуманитарната OpenStreetMap
@@ -3096,6 +3174,7 @@ mk:
       map_data_zoom_in_tooltip: Приближете за да ги видите податоците
       queryfeature_tooltip: Пребарување на елементи
       queryfeature_disabled_tooltip: Зголеми на пребарувањето на елементи
+      embed_html_disabled: Вградувањето на HTML не е достапно за овој слој на картата
     changesets:
       show:
         comment: Коментирај
index b8183b232ddf858878525ed3809b19a262c83b66..0588febb397b0f64781cfb4c3660bd2ca19337cc 100644 (file)
@@ -111,7 +111,6 @@ mo:
       way_paginated: Кэй (%{x}-%{y} дин %{count})
       relation: Релаций (%{count})
       relation_paginated: Релаций (%{x}-%{y} дин %{count})
-      comment: Коментарий (%{count})
       join_discussion: Вэ ругэм сэ ынтраць ын конт пентру а вэ алэтура дискуцией
       discussion: Дискуцие
     node:
@@ -546,7 +545,7 @@ mo:
     learn_more: Афлаць май мулте
     more: Май мулте
   passwords:
-    lost_password:
+    new:
       title: Рестабилиря паролей
       heading: Аць уйтат парола?
       email address: 'Адреса де поштэ електроникэ:'
index c3b0736e24c2dfa2e84e2621b1af87098ff7e696..f5d0fcc0e47878b2cbe35c6457b2c6e2cc01a33c 100644 (file)
@@ -222,9 +222,6 @@ mr:
       relation_paginated: संबंध (%{x}-%{y}, %{count} पैकी)
       changesetxml: बदलसंच XML
       osmchangexml: osmChange XML
-      feed:
-        title: बदलसंच %{id}
-        title_comment: बदलसंच %{id} - %{comment}
       join_discussion: चर्चेत सहभागी होण्यासाठी सनोंद प्रवेश करा
     node:
       title_html: 'गाठ: %{name}'
@@ -311,6 +308,9 @@ mr:
       no_more_area: या भागात अधिक बदलसंच नाहीत.
       no_more_user: या सदस्याचे अधिक बदलसंच नाहीत.
       load_more: अधिक प्रभारण करा
+      feed:
+        title: बदलसंच %{id}
+        title_comment: बदलसंच %{id} - %{comment}
     timeout:
       sorry: क्षमा असावी, आपण मागितलेली बदलसंचाची यादी मिळविण्यास फार वेळ लागला.
   changeset_comments:
@@ -321,6 +321,7 @@ mr:
     contact:
       km away: '%{count} कि.मी. दूर'
       m away: '%{count} मी. दूर'
+      latest_edit_html: 'नवीनतम संपादन %{ago}:'
     popup:
       your location: आपले ठिकाण
       nearby mapper: जवळपासचे नकाशाकार
@@ -926,7 +927,6 @@ mr:
   messages:
     inbox:
       title: अंतर्पेटी
-      my_inbox: माझी अंतर्पेटी
       messages: आपल्यासाठी %{new_messages} आणि %{old_messages} आहेत
       new_messages:
         one: '%{count} नवा संदेश'
@@ -934,12 +934,14 @@ mr:
       old_messages:
         one: '%{count} जुना संदेश'
         other: '%{count} जुने संदेश'
-      from: पासून
-      subject: विषय
-      date: दिनांक
       no_messages_yet_html: आपल्यासाठी अद्याप संदेश नाहीत. %{people_mapping_nearby_link}
         संपर्क साधावा काय?
       people_mapping_nearby: जवळपासच्या इतर नकाशाकारांशी
+    messages_table:
+      from: पासून
+      to: प्रति
+      subject: विषय
+      date: दिनांक
     message_summary:
       unread_button: न वाचलेले अशी खूण करा
       read_button: वाचले अशी खूण करा
@@ -961,9 +963,6 @@ mr:
       messages:
         one: आपण पाठविलेला %{count} संदेश
         other: आपण पाठविलेले %{count} संदेश
-      to: प्रति
-      subject: विषय
-      date: दिनांक
       no_sent_messages_html: आपण अद्याप कुठलेही संदेश पाठविलेले नाहीत. %{people_mapping_nearby_link}
         संपर्क साधावा काय?
       people_mapping_nearby: जवळपासच्या इतर नकाशाकारांशी
@@ -981,20 +980,23 @@ mr:
         सदस्य म्हणून दाखल व्हा.
     sent_message_summary:
       destroy_button: वगळा
+    heading:
+      my_inbox: माझी अंतर्पेटी
     mark:
       as_read: संदेश वाचला आहे अशी खूण केली
       as_unread: संदेश वाचला नाही अशी खूण केली
     destroy:
       destroyed: संदेश वगळला
   passwords:
-    lost_password:
+    new:
       heading: परवलीचा शब्द विसरला?
       email address: 'विपत्र पत्ता:'
       new password button: परवलीचा शब्द पुनर्स्थापित करा
-    reset_password:
+    edit:
       title: परवलीचा शब्द पुनर्स्थापित करा
       heading: '%{user}साठी परवलीचा शब्द पुनर्स्थापित करा'
       reset: परवलीचा शब्द पुनर्स्थापित करा
+    update:
       flash changed: आपला परवलीचा शब्द बदलण्यात आला आहे.
   preferences:
     show:
@@ -1088,12 +1090,7 @@ mr:
       anon_edits_link_text: असे का आहे ते जाणून घ्या.
     export:
       title: निर्यात
-      area_to_export: निर्यात करावयाचे क्षेत्र
       manually_select: वेगळे क्षेत्र निवडा
-      format_to_export: निर्यातीचे प्रारुप
-      osm_xml_data: ओपनस्ट्रीटमॅप XML डाटा
-      map_image: नकाशा चित्र (प्रमाणित स्तर दाखविते)
-      embeddable_html: अंतःस्थापन करण्याजोगी HTML
       licence: परवाना
       too_large:
         advice: 'जर वरील निर्यात करण्यास अपयश आले, तर कृपया खालील स्रोत वापरण्याचा
@@ -1114,17 +1111,6 @@ mr:
         other:
           title: इतर स्रोत
           description: ओपनस्ट्रीटमॅप विकीवर सूचीबद्ध अतिरिक्त स्रोत
-      options: विकल्प
-      format: आराखडा
-      scale: प्रमाण
-      max: कमाल
-      image_size: चित्राचा आकार
-      zoom: मोठे करा
-      add_marker: नकाशावर दर्शकचिन्ह जोडा
-      latitude: 'अक्षांश:'
-      longitude: 'रेखांश:'
-      output: उत्पादन
-      paste_html: संकेतस्थळावर अंतःस्थापनासाठी HTML चिकटवा
       export_button: निर्यात
     fixthemap:
       title: समस्या नोंदवा/नकाशा नीयत करा
@@ -1137,10 +1123,6 @@ mr:
       welcome:
         url: /welcome
         title: ओएसएम वर स्वागत आहे
-      help:
-        title: help.openstreetmap.org
-        description: OSMच्या प्रश्नोत्तरासाठीच्या संकेतस्थळावर प्रश्न विचारा किंवा
-          उत्तरे शोधा.
       wiki:
         title: wiki.openstreetmap.org
         description: सखोल OSM प्रलेखनासाठी विकी वाचा.
@@ -1170,33 +1152,23 @@ mr:
           footway: पदपथ
           rail: लोहमार्ग
           subway: मेट्रो
-          tram:
-          - हलकी रेल्वे
-          - ट्राम
-          cable:
-          - रज्जुमार्ग
-          - खुर्ची उद्वाहन
-          runway:
-          - विमानतळ धावपट्टी
-          - खेचमार्ग
-          apron:
-          - विमानतळावरील भरणतळ
-          - अग्र
+          cable_car: रज्जुमार्ग
+          chair_lift: खुर्ची उद्वाहन
+          runway: विमानतळ धावपट्टी
+          taxiway: खेचमार्ग
+          apron: विमानतळावरील भरणतळ
           admin: प्रशासकीय सीमा
           forest: वन
           wood: जंगल
           golf: गोल्फ कोर्स
           park: उद्यान
+          common: सार्वजनिक जमीन
           resident: निवासी क्षेत्र
-          common:
-          - सार्वजनिक जमीन
-          - कुरण
           retail: विक्री क्षेत्र
           industrial: औद्योगिक क्षेत्र
           commercial: वाणिज्यिक क्षेत्र
-          lake:
-          - तलाव
-          - जलाशय
+          lake: तलाव
+          reservoir: जलाशय
           farm: मळा
           cemetery: दफनभूमी
           allotments: वाटप
@@ -1204,14 +1176,12 @@ mr:
           centre: क्रीडाकेंद्र
           reserve: अभयारण्य
           military: लष्करी क्षेत्र
-          school:
-          - शाळा
-          - विद्यापीठ
+          school: शाळा
+          university: विद्यापीठ
           building: महत्वपूर्ण इमारत
           station: रेल्वे स्थानक
-          summit:
-          - शिखर
-          - शिखर
+          summit: शिखर
+          peak: शिखर
           tunnel: तुटक कड = बोगदा
           bridge: काळी कड = पूल
           private: खाजगी प्रवेश
@@ -1378,7 +1348,6 @@ mr:
       ct status: 'योगदात्यांसाठी अटी:'
       ct undecided: अनिर्णीत
       ct declined: अमान्य
-      latest edit: 'नवीनतम संपादन %{ago}:'
       email address: 'ईमेल पत्ता:'
       status: 'स्थिती:'
       report: या वापरकर्त्याची तक्रार करा
index 176c877d400329d89ec47b9278eadf0449475a69..7f60547208f5f5eff103e01fc42d56b555e99eed 100644 (file)
@@ -198,7 +198,6 @@ ms:
   auth:
     providers:
       none: Tiada
-      openid: OpenID
       google: Google
       facebook: Facebook
       microsoft: Microsoft
@@ -291,12 +290,8 @@ ms:
       way_paginated: Jalan (%{x}-%{y} / %{count})
       relation: Hubungan (%{count})
       relation_paginated: Hubungan (%{x}-%{y} / %{count})
-      comment: Komen (%{count})
       changesetxml: XML Set Ubah
       osmchangexml: XML osmChange
-      feed:
-        title: Set Ubah %{id}
-        title_comment: Set Ubah %{id} - %{comment}
       join_discussion: Daftar masuk untuk perbincangan
       discussion: Perbincangan
     node:
@@ -394,6 +389,9 @@ ms:
       no_more_area: Tiada lagi set perubahan di kawasan ini.
       no_more_user: Tiada lagi set perubahan oleh pengguna ini.
       load_more: Selanjutnya
+      feed:
+        title: Set Ubah %{id}
+        title_comment: Set Ubah %{id} - %{comment}
     timeout:
       sorry: Maaf, senarai set perubahan yang anda minta mengambil masa yang terlalu
         lama untuk diambil.
@@ -405,6 +403,7 @@ ms:
     contact:
       km away: '%{count}km jauhnya'
       m away: '%{count}m jauhnya'
+      latest_edit_html: 'Suntingan terkini %{ago}:'
     popup:
       your location: Lokasi anda
       nearby mapper: Pemeta berdekatan
@@ -1336,16 +1335,17 @@ ms:
   messages:
     inbox:
       title: Peti Masuk
-      my_inbox: Peti masuk saya
       messages: Anda ada %{new_messages} dan %{old_messages}
       new_messages: '%{count} pesanan baru'
       old_messages: '%{count} pesanan lama'
-      from: Daripada
-      subject: Subjek
-      date: Tarikh
       no_messages_yet_html: Anda belum ada pesanan. Apa kata anda berhubung dengan
         %{people_mapping_nearby_link}?
       people_mapping_nearby: pemeta-pemeta yang berdekatan
+    messages_table:
+      from: Daripada
+      to: Kepada
+      subject: Subjek
+      date: Tarikh
     message_summary:
       unread_button: Tanda sebagai belum dibaca
       read_button: Tanda sebagai sudah dibaca
@@ -1366,9 +1366,6 @@ ms:
     outbox:
       title: Peti Keluar
       messages: Anda ada %{count} pesanan terhantar
-      to: Kepada
-      subject: Subjek
-      date: Tarikh
       no_sent_messages_html: Anda belum menghantar pesanan. Apa kata anda berhubung
         dengan %{people_mapping_nearby_link}?
       people_mapping_nearby: pemeta-pemeta yang berdekatan
@@ -1387,29 +1384,33 @@ ms:
         masuk sebagai pengguna yang betul untuk membacanya.
     sent_message_summary:
       destroy_button: Hapuskan
+    heading:
+      my_inbox: Peti masuk saya
     mark:
       as_read: Pesanan ditandai sebagai sudah dibaca
       as_unread: Pesanan ditandai sebagai belum dibaca
     destroy:
       destroyed: Pesanan dihapuskan
   passwords:
-    lost_password:
+    new:
       title: Terlupa kata laluan
       heading: Lupa Kata Laluan?
       email address: 'Alamat E-mel:'
       new password button: Set semula kata laluan
       help_text: Isikan alamat e-mel yang anda gunakan untuk mendaftar. Kami akan
         menge-melkan pautan untuk anda mengeset semula kata laluan anda.
+    create:
       notice email on way: Kesiannya anda sudah terlupa kata laluan :-( tetapi kami
         akan menghantar satu pesanan e-mel untuk anda mengesetnya semula tidak lama
         lagi.
       notice email cannot find: Maaf, alamat e-mel itu tidak dapat dijumpai.
-    reset_password:
+    edit:
       title: Set semula kata laluan
       heading: Set Semula Kata Laluan untuk %{user}
       reset: Set Semula Kata Laluan
-      flash changed: Kata laluan anda telah ditukar.
       flash token bad: Token itu tidak dijumpai; sila semak URL-nya.
+    update:
+      flash changed: Kata laluan anda telah ditukar.
   preferences:
     show:
       title: Keutamaan Saya
@@ -1447,7 +1448,6 @@ ms:
       heading: Log masuk
       email or username: 'Alamat E-mel atau Nama Pengguna:'
       password: 'Kata laluan:'
-      openid_html: 'OpenID %{logo}:'
       remember: Ingati saya
       lost password link: Lupa kata laluan anda?
       login_button: Log masuk
@@ -1599,12 +1599,7 @@ ms:
         untuk ciri ini.
     export:
       title: Eksport
-      area_to_export: Kawasan untuk Dieksport
       manually_select: Pilih kawasan yang lain secara insani
-      format_to_export: Format untuk Dieksport
-      osm_xml_data: Data XML OpenStreetMap
-      map_image: Imej Peta (memaparkan paparan piawai)
-      embeddable_html: HTML Boleh Benam
       licence: Lesen
       too_large:
         advice: 'Jika pengeksportan di atas gagal, sila pertimbangkan untuk menggunakan
@@ -1626,17 +1621,6 @@ ms:
         other:
           title: Sumber-sumber Lain
           description: Sumber-sumber lanjutan yang tersenarai di wiki OpenStreetMap
-      options: Pilihan
-      format: Format
-      scale: Skala
-      max: maks
-      image_size: Saiz Imej
-      zoom: Zum
-      add_marker: Bubuh penanda pada peta
-      latitude: 'GL:'
-      longitude: 'GB:'
-      output: Output
-      paste_html: Tampalkan HTML untuk dibenamkan dalam tapak web
       export_button: Eksport
     fixthemap:
       title: Laporkan masalah / Baiki peta
@@ -1668,13 +1652,10 @@ ms:
           OpenStreetMap.
       beginners_guide:
         title: Panduan Pemula
-      help:
-        title: help.openstreetmap.org
-        description: Tanyakan soalan atau cari jawapan di tapak soal jawab OSM.
-      mailing_lists:
-        title: Senarai Mel
       community:
         title: Forum masyarakat
+      mailing_lists:
+        title: Senarai Mel
       irc:
         title: IRC
         description: Chat interaktif dalam pelbagai bahasa dan pelbagai topik.
@@ -1721,34 +1702,24 @@ ms:
           footway: Laluan pejalan kaki
           rail: Landasan keretapi
           subway: Landasan bawah tanah
-          tram:
-          - Rel ringan
-          - tram
-          cable:
-          - Kereta kabel
-          - lif kerusi
-          runway:
-          - Landasan kapal terbang
-          - jalan rayap
-          apron:
-          - Kawasan gerak lapangan terbang
-          - terminal
+          cable_car: Kereta kabel
+          chair_lift: lif kerusi
+          runway: Landasan kapal terbang
+          taxiway: jalan rayap
+          apron: Kawasan gerak lapangan terbang
           admin: Sempadan pentadbiran
           forest: Hutan
           wood: Hutan kecil
           golf: Padang golf
           park: Taman
+          common: Tanah awam
           resident: Kawasan perumahan
-          common:
-          - Tanah awam
-          - padang rumput
           retail: Kawasan peruncitan
           industrial: Kawasan perindustrian
           commercial: Kawasan perdagangan
           heathland: Kawasan rawa
-          lake:
-          - Tasik
-          - takungan
+          lake: Tasik
+          reservoir: takungan
           farm: Ladang
           brownfield: Tanah terbiar
           cemetery: Perkuburan
@@ -1757,14 +1728,12 @@ ms:
           centre: Pusat sukan
           reserve: Cagar alam
           military: Kawasan tentera
-          school:
-          - Sekolah
-          - universiti
+          school: Sekolah
+          university: universiti
           building: Bangunan penting
           station: Stesen keretapi
-          summit:
-          - Kemuncak
-          - puncak
+          summit: Kemuncak
+          peak: puncak
           tunnel: Kasing bertitik-titik = terowong
           bridge: Kasing hitam = jambatan
           private: Jalan masuk persendirian
@@ -2055,7 +2024,6 @@ ms:
       ct status: 'Terma-terma penyumbang:'
       ct undecided: Belum diputuskan
       ct declined: Ditolak
-      latest edit: 'Suntingan terkini %{ago}:'
       email address: 'Alamat e-mel:'
       created from: 'Dibuat daripada:'
       status: 'Status:'
@@ -2154,8 +2122,9 @@ ms:
     revoke:
       title: Sekatan terhadap %{block_on} sedang ditarik balik
       heading_html: Sekatan terhadap %{block_on} sedang ditarik balik oleh %{block_by}
-      time_future: Sekatan ini akan berakhir pada %{time}.
-      past: Sekatan ini telah tamat %{time} dahulu dan tidak boleh ditarik balik sekarang.
+      time_future_html: Sekatan ini akan berakhir pada %{time}.
+      past_html: Sekatan ini telah tamat %{time} dahulu dan tidak boleh ditarik balik
+        sekarang.
       confirm: Adakah anda benar-benar ingin membuang sekatan ini?
       revoke: Tarik Balik!
       flash: Sekatan ini telah ditarik balik.
@@ -2269,7 +2238,6 @@ ms:
         title: Paparkan Lokasi Saya
       base:
         standard: Piawai
-        cyclosm: CyclOSM
         cycle_map: Peta Basikal
         transport_map: Peta Pengangkutan
         hot: Kemanusiaan
index 4e978e7c96aacf47836e2e48fb79e52de0fb668e..3cd4ae52b9cf106e322145705e6c6a0f1d63eec6 100644 (file)
@@ -146,7 +146,6 @@ my:
     location: 'တည်နေရာ:'
     changeset:
       belongs_to: စာရေးသူ
-      comment: မှတ်ချက်များ (%{count})
       join_discussion: ဆွေးနွေးရန် လော့အင်ဝင်ပါ
       discussion: ဆွေးနွေးချက်
     relation:
@@ -562,7 +561,9 @@ my:
   messages:
     inbox:
       title: အဝင်စာ
+    messages_table:
       from: မှ
+      to: သို့
       subject: အကြောင်းအရာ
       date: နေ့စွဲ
     message_summary:
@@ -578,9 +579,6 @@ my:
       heading: ယင်းကဲ့သို့မက်ဆေ့မရှိပါ
     outbox:
       title: အထွက်စာ
-      to: သို့
-      subject: အကြောင်းအရာ
-      date: နေ့စွဲ
     show:
       title: မက်ဆေ့ ဖတ်ရန်
       reply_button: အကြောင်းပြန်ရန်
@@ -589,15 +587,16 @@ my:
     sent_message_summary:
       destroy_button: ဖျက်​ပါ​
   passwords:
-    lost_password:
+    new:
       title: စကားဝှက် ပျောက်ဆုံးသွား
       heading: စကားဝှက် မေ့နေပါသလား
       email address: 'အီးမေး လိပ်စာ :'
       new password button: စကားဝှက်ကို ပြန်ချိန်ရန်
-    reset_password:
+    edit:
       title: စကားဝှက်ကို ပြန်ချိန်ရန်
       heading: '%{user} အတွက် စကားဝှက်ကို ပြန်ချိန်ရန်'
       reset: စကားဝှက်ကို ပြန်ချိန်ရန်
+    update:
       flash changed: သင့်စကားဝှက်ကို ပြောင်းလဲပြီးပါပြီ
   sessions:
     new:
@@ -605,7 +604,6 @@ my:
       heading: အကောင့်ထဲဝင်ရန်
       email or username: အီးမေးလ်လိပ်စာ သို့မဟုတ် အသုံးပြုသူအမည်
       password: စကားဝှက်
-      openid_html: '%{logo} OpenID:'
       remember: မိမိကို မှတ်မိပါ
       lost password link: စကားဝှက် မေ့နေသလား။
       login_button: အကောင့်ထဲဝင်ရန်
@@ -655,18 +653,11 @@ my:
       too_large:
         other:
           title: အခြားရင်းမြစ်များ
-      options: ရွေးပိုင်ခွင့်
-      image_size: ရုပ်ပုံ အရွယ်အစား
-      zoom: ချုံ့/ချဲ့ကြည့်ရန်
-      latitude: 'လတ္တီ:'
-      longitude: 'လောင်ဂျီ:'
       export_button: တင်ပို့ရန်
     fixthemap:
       how_to_help:
         title: မည်ကဲ့သို့ ကူညီမည်
     help:
-      help:
-        title: အကူညီဖိုရမ်
       welcomemat:
         title: အဖွဲ့အစည်းများအတွက်
       wiki:
@@ -689,16 +680,13 @@ my:
           bridleway: မြင်းစီးလမ်း
           cycleway: စက်ဘီးသွားလမ်း
           rail: ရထားလမ်း
-          runway:
-          - လေယာဉ်ကွင်းပြေးလမ်း
+          runway: လေယာဉ်ကွင်းပြေးလမ်း
           forest: သစ်တော
           park: ပန်းခြံ
-          lake:
-          - ရေကန်
+          lake: ရေကန်
           cemetery: သုဿန်
-          school:
-          - ကျောင်း
-          - တက္ကသိုလ်
+          school: ကျောင်း
+          university: တက္ကသိုလ်
           station: ရထားဘူတာ
           construction: ဖောက်နေဆဲ လမ်းများ
           toilets: အိမ်သာများ
index 8c842cbb3643b197a118840ba478d6d0feb661f0..e793981a55d7ca316e15977fbc4f6dff5536090d 100644 (file)
@@ -68,6 +68,11 @@ nb:
       messages:
         invalid_email_address: later ikke til å være en gyldig e-postadresse
         email_address_not_routable: kan ikke rutes
+        display_name_is_user_n: kan ikke være user_n med mindre n allerede er bruker-ID-en
+          din
+      models:
+        user_mute:
+          is_already_muted: er allerede dempet
     models:
       acl: Tilgangskontrolliste
       changeset: Endringssett
@@ -231,11 +236,10 @@ nb:
       description: iD (redigering i nettleseren)
     remote:
       name: Lokalt installert program
-      description: Fjernkontroll (JOSM, Potlatch, Merkaartor)
+      description: eksternt program (JOSM, Potlatch, Merkaartor)
   auth:
     providers:
       none: Ingen
-      openid: OpenID
       google: Google
       facebook: Facebook
       github: GitHub
@@ -339,12 +343,8 @@ nb:
       way_paginated: Strekninger (%{x}-%{y} av %{count})
       relation: Forbindelser (%{count})
       relation_paginated: Forbindelser (%{x}-%{y} av %{count})
-      comment: Kommentarer (%{count})
       changesetxml: XML for endringssett
       osmchangexml: osmChange-XML
-      feed:
-        title: Endringssett %{id}
-        title_comment: 'Endringsforløp: %{id} - %{comment}'
       join_discussion: Logg inn for å delta i diskusjonen
       discussion: Diskusjon
       still_open: Endringssettet er fortsatt åpent – diskusjonen åpner når endringssettet
@@ -449,6 +449,9 @@ nb:
       no_more_area: Ingen flere endringssett i dette området.
       no_more_user: Ingen flere endringssett av denne brukeren.
       load_more: Last inn mer
+      feed:
+        title: Endringssett %{id}
+        title_comment: 'Endringsforløp: %{id} - %{comment}'
     timeout:
       sorry: Listen over endringssett du ba om tok for lang tid å hente.
   changeset_comments:
@@ -466,6 +469,7 @@ nb:
     contact:
       km away: '%{count}km unna'
       m away: '%{count}m unna'
+      latest_edit_html: 'Siste redigering (%{ago}):'
     popup:
       your location: Din posisjon
       nearby mapper: Bruker i nærheten
@@ -505,6 +509,7 @@ nb:
     show:
       title: '%{user} sin dagbok | %{title}'
       user_title: Dagboken til %{user}
+      discussion: Diskusjon
       leave_a_comment: Legg igjen en kommentar
       login_to_leave_a_comment_html: '%{login_link} for å legge inn en kommentar'
       login: Logg inn
@@ -553,6 +558,13 @@ nb:
       comment: Kommentar
       newer_comments: Nyere kommentarer
       older_comments: Eldre kommentarer
+  errors:
+    contact:
+      contact: kontakt
+    forbidden:
+      title: Forbudt
+    not_found:
+      title: Fil ikke funnet
   friendships:
     make_friend:
       heading: Legge til %{user} som venn?
@@ -650,6 +662,7 @@ nb:
           library: Bibliotek
           marketplace: Markedsplass
           monastery: Kloster
+          money_transfer: Pengeoverføring
           motorcycle_parking: Motorsykkelparkering
           music_school: Musikkskole
           nightclub: Nattklubb
@@ -1027,22 +1040,27 @@ nb:
         office:
           accountant: Revisor
           administrative: Administrasjon
+          advertising_agency: Reklamebyrå
           architect: Arkitekt
           association: Forening
           company: Firma
           educational_institution: Utdanningsinstitusjon
           employment_agency: Bemanningsfirma
           estate_agent: Eiendomsmegler
+          financial: Finanskontor
           government: Statlig kontor
           insurance: Forsikringskontor
           it: IT-kontor
           lawyer: Advokat
+          logistics: Logistikkontor
+          newspaper: Aviskontor
           ngo: Ikke-statlig kontor
           telecommunication: Telekommunikasjonskontor
           travel_agent: Reisebyrå
           "yes": Kontor
         place:
           allotments: Jordlapper
+          archipelago: Øygruppe
           city: By
           city_block: Bykvartal
           country: Land
@@ -1057,6 +1075,7 @@ nb:
           locality: Plass
           municipality: Kommune
           neighbourhood: Naboskap
+          plot: Tomt
           postcode: Postnummer
           quarter: Kvartal
           region: Område
@@ -1261,9 +1280,11 @@ nb:
       status: Status
       reports: Rapporter
       last_updated: Sist oppdatert
+      last_updated_time_ago_user_html: '%{time_ago} av %{user}'
       link_to_reports: Se på rapporter
       reports_count:
-        other: 1 rapport
+        one: '%{count} rapport'
+        other: '%{count} rapporter'
       reported_item: Rapportert element
       states:
         ignored: Sett bort fra
@@ -1275,9 +1296,9 @@ nb:
         one: '%{count} rapport'
         other: '%{count} rapporter'
       no_reports: Ingen rapporter
-      report_created_at: Første gang rapportert %{datetime}
-      last_resolved_at: Siste gang løst %{datetime}
-      last_updated_at: Siste gang oppdatert %{datetime} av %{displayname}
+      report_created_at_html: Første gang rapportert %{datetime}
+      last_resolved_at_html: Siste gang løst %{datetime}
+      last_updated_at_html: Siste gang oppdatert %{datetime} av %{displayname}
       resolve: Løs
       ignore: Se bort fra
       reopen: Gjenåpne
@@ -1305,6 +1326,7 @@ nb:
   issue_comments:
     create:
       comment_created: Din kommentar ble feilfritt opprettet
+      issue_reassigned: Kommentaren din ble opprettet, og saken ble tildelt på nytt
   reports:
     new:
       title_html: Rapport %{link}
@@ -1364,7 +1386,8 @@ nb:
     intro_text: OpenStreetMap er et kart over verden, skapt av mennesker som deg,
       og gratis å bruke under en åpen lisens.
     intro_2_create_account: Opprett en brukerkonto
-    hosting_partners_html: Hosting støttes av %{ucl}, %{bytemark}, og andre %{partners}.
+    hosting_partners_html: Hosting støttes av %{ucl}, %{fastly}, %{bytemark}, og andre
+      %{partners}.
     partners_ucl: UCL
     partners_bytemark: Bytemark Hosting
     partners_partners: partnere
@@ -1405,11 +1428,15 @@ nb:
       subject: '[OpenStreetMap] %{user} la deg til som en venn'
       had_added_you: '%{user} har lagt deg til som venn på OpenStreetMap.'
       see_their_profile: Du kan se profilen deres på %{userurl}.
+      see_their_profile_html: Du kan se profilen hens på %{userurl}.
       befriend_them: Du kan også legge dem til som venn på %{befriendurl}.
+      befriend_them_html: Du kan også legge hen til som venn på %{befriendurl}.
     gpx_failure:
+      hi: Hei, %{to_user},
       failed_to_import: 'klarte ikke importere. Her er feilen:'
       subject: '[OpenStreetMap] Feil under import av GPX'
     gpx_success:
+      hi: Hei, %{to_user},
       subject: '[OpenStreetMap] Vellykket import av GPX'
     signup_confirm:
       subject: '[OpenStreetMap] Velkommen til OpenStreetMap'
@@ -1484,6 +1511,7 @@ nb:
       success: Kontoen din er bekreftet - takk for at du registrerte deg.
       already active: Denne kontoen har allerede blitt bekreftet.
       unknown token: Denne bekreftelseskoden finnes ikke eller har utløpt.
+      click_here: trykk her
     confirm_resend:
       failure: Fant ikke brukeren %{name}.
     confirm_email:
@@ -1496,7 +1524,6 @@ nb:
   messages:
     inbox:
       title: Innboks
-      my_inbox: Min innboks
       messages: Du har %{new_messages} og %{old_messages}
       new_messages:
         one: '%{count} ny melding'
@@ -1504,17 +1531,21 @@ nb:
       old_messages:
         one: '%{count} gammel melding'
         other: '%{count} gamle meldinger'
-      from: Fra
-      subject: Emne
-      date: Dato
       no_messages_yet_html: Du har ingen meldinger ennå. Kanskje du kan prøve å komme
         i kontakt med %{people_mapping_nearby_link}?
       people_mapping_nearby: folk som kartlegger i nærheten
+    messages_table:
+      from: Fra
+      to: Til
+      subject: Emne
+      date: Dato
+      actions: Handlinger
     message_summary:
       unread_button: Marker som ulest
       read_button: Marker som lest
       reply_button: Svar
       destroy_button: Slett
+      unmute_button: Flytt til innboksen
     new:
       title: Send melding
       send_message_to_html: Send en ny melding til %{name}
@@ -1529,16 +1560,18 @@ nb:
       body: Det er ingen melding med den ID-en.
     outbox:
       title: Utboks
-      my_inbox: Min innboks
+      actions: Handlinger
       messages:
         one: Du har %{count} sendt melding
         other: Du har %{count} sendte meldinger
-      to: Til
-      subject: Emne
-      date: Dato
       no_sent_messages_html: Du har ikke sendt noen meldinger ennå. Hvorfor ikke bli
         kjent med noen %{people_mapping_nearby_link}?
       people_mapping_nearby: folk i nærheten som lager kart
+    muted:
+      title: Dempede meldinger
+      messages:
+        one: '%{count} dempet melding'
+        other: Du har %{count} dempede meldinger
     reply:
       wrong_user: Du er logget inn som «%{user}», men meldingen du ønsker å svare
         på ble ikke sendt til den brukeren. Logg inn som korrekt bruker for å svare.
@@ -1552,38 +1585,55 @@ nb:
         ikke sendt fra eller til den brukeren. Logg inn som korrekt bruker for å lese.
     sent_message_summary:
       destroy_button: Slett
+    heading:
+      my_inbox: Min innboks
+      my_outbox: Min utboks
+      muted_messages: Dempede meldinger
     mark:
       as_read: Melding markert som lest
       as_unread: Melding markert som ulest
+    unmute:
+      notice: Meldingen har blitt flyttet til innboksen
+      error: Meldingen kunne ikke flyttes til innboksen.
     destroy:
       destroyed: Melding slettet
   passwords:
-    lost_password:
+    new:
       title: Glemt passord
       heading: Glemt passord?
-      email address: 'E-postadresse:'
+      email address: E-postadresse
       new password button: Nullstill passord
       help_text: Skriv inn e-postadressen du brukte for å registrere deg, og vi vil
         sende deg ei lenke som du kan bruke til å nullstille passordet ditt.
+    create:
       notice email on way: Synd at du mistet det, men en e-post er på vei slik at
         du kan tilbakestille det snart.
       notice email cannot find: Klarte ikke finne den e-postadressen. Beklager.
-    reset_password:
+    edit:
       title: Nullstill passord
       heading: Nullstill passord for %{user}
       reset: Nullstill passord
-      flash changed: Ditt passord er endret.
       flash token bad: Kunne ikke finne den nøkkelen. Sjekke URLen kanskje?
+    update:
+      flash changed: Ditt passord er endret.
   preferences:
     show:
+      title: Mine innstillinger
+      preferred_editor: Foretrukket redigeringsverktøy
       preferred_languages: Foretrukne språk
       edit_preferences: Endre innstillinger
     edit:
       title: Endre innstillinger
+      save: Oppdater innstillingene
       cancel: Avbryt
+    update:
+      failure: Kunne ikke oppdatere innstillingene.
+    update_success_flash:
+      message: Innstillinger oppdatert.
   profiles:
     edit:
       title: Rediger profil
+      save: Oppdater profil
       cancel: Avbryt
       image: Bilde
       gravatar:
@@ -1602,13 +1652,15 @@ nb:
       show: Vis
       delete: Slett
       undelete: Angre sletting
+    update:
+      success: Profil oppdatert.
+      failure: Kunne ikke oppdatere profil.
   sessions:
     new:
       title: Logg inn
       heading: Logg inn
-      email or username: 'E-postadresse eller brukernavn:'
-      password: 'Passord:'
-      openid_html: '%{logo} OpenID:'
+      email or username: E-postadresse eller brukernavn
+      password: Passord
       remember: Husk meg
       lost password link: Mistet passordet ditt?
       login_button: Logg inn
@@ -1690,6 +1742,19 @@ nb:
         contributors_intro_html: 'Vi har tusenvis av individuelle bidragsytere. Vi
           inkluderer også åpne datasett fra nasjonale karttjenester og andre kilder,
           blant annet fra:'
+        contributors_at_austria: Østerrike
+        contributors_au_australia: Australia
+        contributors_ca_canada: Canada
+        contributors_cz_czechia: Tsjekkia
+        contributors_fi_finland: Finland
+        contributors_fr_france: Frankrike
+        contributors_nl_netherlands: Nederland
+        contributors_nz_new_zealand: New Zealand
+        contributors_rs_serbia: Serbia
+        contributors_si_slovenia: Slovenia
+        contributors_es_spain: Spania
+        contributors_za_south_africa: Sør-Afrika
+        contributors_gb_united_kingdom: Storbritannia
         contributors_footer_2_html: |2-
             Inkludering av data i OpenStreetMap innebærer ikke at den opprinnelige
             dataleverandøren støtter OpenStreetMap, gir noen garanti eller
@@ -1720,12 +1785,7 @@ nb:
         for denne egenskapen.
     export:
       title: Eksporter
-      area_to_export: Område som skal eksporteres
       manually_select: Velg et annet område manuelt
-      format_to_export: Eksportformat
-      osm_xml_data: OpenStreetMap XML-data
-      map_image: Kartbilde (viser standardlag)
-      embeddable_html: HTML som kan bygges inn
       licence: Lisens
       too_large:
         advice: 'Hvis eksporten over skulle feile kan du forsøke å bruke av en av
@@ -1746,17 +1806,6 @@ nb:
         other:
           title: Andre kilder
           description: Ytterliger kilder listet på OpenStreetMap-wikien
-      options: Valg
-      format: Format
-      scale: Skala
-      max: maks
-      image_size: Bildestørrelse
-      zoom: Zoom
-      add_marker: Legg til en markør på kartet
-      latitude: 'Bre:'
-      longitude: 'Len:'
-      output: Utdata
-      paste_html: Lim inn HTML som skal bygges inn i nettsted
       export_button: Eksporter
     fixthemap:
       title: Rapporter et problem / Korriger kartet
@@ -1783,10 +1832,6 @@ nb:
         url: http://wiki.openstreetmap.org/wiki/Nn:Beginners%27_guide
         title: Hjelp for nybegynnere
         description: Dugnadsbasert guide for nybegynnere.
-      help:
-        title: Hjelpeforum
-        description: Still spørsmål eller sjekk svar på OpenStreetMaps spørsmål- og
-          svar-sider.
       mailing_lists:
         title: E-postlister
         description: Still et spørsmål eller diskuter interessante tema på en rekke
@@ -1839,57 +1884,56 @@ nb:
           footway: Gangvei
           rail: Jernbane
           subway: Undergrunnsbane
-          tram:
-          - Bybane
-          - trikk
-          cable:
-          - Kabelvogn
-          - stolheis
-          runway:
-          - Flystripe
-          - taksebane
-          apron:
-          - terminal
-          - terminal
+          cable_car: Kabelvogn
+          chair_lift: stolheis
+          runway: Flystripe
+          taxiway: taksebane
+          apron: terminal
           admin: Administrativ grense
+          capital: Hovedstad
+          city: By
           forest: Skog
           wood: Ved
           golf: Golfbane
           park: Park
+          common: Vanlig
           resident: Boligområde
-          common:
-          - Vanlig
-          - eng
           retail: Detaljsalgområde
           industrial: Industriområde
           commercial: Kommersielt område
           heathland: Heilandskap
-          lake:
-          - Innsjø
-          - reservoar
+          lake: Innsjø
+          reservoir: reservoar
+          glacier: Isbre
+          reef: Rev
+          wetland: Våtmark
           farm: Gård
           brownfield: Tidligere industriområde
           cemetery: Gravplass
           allotments: Kolonihager
           pitch: Sportsarena
           centre: Sportssenter
+          beach: Strand
           reserve: Naturreservat
           military: Militært område
-          school:
-          - Skole
-          - universitet
+          school: Skole
+          university: Universitet
+          hospital: Sykehus
           building: Viktig bygning
           station: Jernbanestasjon
-          summit:
-          - Topp
-          - fjelltopp
+          summit: Topp
+          peak: Fjelltopp
           tunnel: Streket kant = tunnel
           bridge: Sort kant = bru
           private: Privat tilgang
           destination: Destinasjonstilgang
           construction: Veier under konstruksjon
+          bus_stop: Busstopp
+          stop: Stopp
           bicycle_shop: Sykkelbutikk
+          bicycle_rental: Sykkelutleie
           bicycle_parking: Sykkelparkering
+          bicycle_parking_small: Liten sykkelparkering
           toilets: Toaletter
     welcome:
       title: Velkommen!
@@ -2178,7 +2222,6 @@ nb:
       ct status: 'Bidragsyters vilkår:'
       ct undecided: Usikker
       ct declined: Avslått
-      latest edit: 'Siste redigering (%{ago}):'
       email address: 'E-postadresse:'
       created from: 'Opprettet fra:'
       status: 'Status:'
@@ -2288,8 +2331,8 @@ nb:
     revoke:
       title: Tilbakekaller blokkering på %{block_on}
       heading_html: Tilbakekaller blokkering på %{block_on} av %{block_by}
-      time_future: Denne blokkeringen ender om %{time}
-      past: Denne blokkeringen endte for %{time} og kan ikke tilbakekalles nå.
+      time_future_html: Denne blokkeringen ender om %{time}
+      past_html: Denne blokkeringen endte for %{time} og kan ikke tilbakekalles nå.
       confirm: Er du sikker på at du vil tilbakekalle denne blokkeringen?
       revoke: Tilbakekall!
       flash: Denne blokkeringen har blitt tilbakekalt.
@@ -2427,7 +2470,6 @@ nb:
         cycle_map: Sykkelkart
         transport_map: Transport-kart
         hot: Humanitært
-        opnvkarte: ÖPNVKarte
       layers:
         header: Kartlag
         notes: Kartmerknader
index 0a465ab790eb30b73f678d101702fd7977c8d9f1..3ed6f362433bf7e3a0bbf90d32c97e992ad0d221 100644 (file)
@@ -70,7 +70,6 @@ nds:
       name: iD
   auth:
     providers:
-      openid: OpenID
       google: Google
       facebook: Facebook
       github: GitHub
@@ -429,10 +428,11 @@ nds:
   messages:
     inbox:
       title: Postfack Ingang
-      my_inbox: Mien Postfack Ingang
+      people_mapping_nearby: Koortenmakers in de Neegd
+    messages_table:
       from: Von
+      to: An
       date: Datum
-      people_mapping_nearby: Koortenmakers in de Neegd
     message_summary:
       unread_button: as ‚noch nich leest‘ kennteken
       read_button: as ‚leest‘ kennteken
@@ -445,25 +445,25 @@ nds:
       message_sent: Naricht afsennt
     outbox:
       title: Postfack Utgang
-      to: An
-      subject: Thema
-      date: Datum
     show:
       reply_button: Antern
     sent_message_summary:
       destroy_button: Wegdoon
+    heading:
+      my_inbox: Mien Postfack Ingang
     destroy:
       destroyed: Naricht wegdaan
   passwords:
-    lost_password:
+    new:
       title: Passwoord vergeten
       heading: Passwoord vergeten?
       email address: 'E-Mail-Adress:'
       new password button: Passwoord trüchsetten
-    reset_password:
+    edit:
       title: Passwoord trüchsetten
       heading: Passwoord för %{user} trüchsetten
       reset: Passwoord trüchsetten
+    update:
       flash changed: Dien Passwoord is nu ännert.
   profiles:
     edit:
@@ -489,15 +489,6 @@ nds:
       user_page_link: Brukersied
     export:
       licence: Lizenz
-      format: 'Format:'
-      scale: Skaal
-      max: max.
-      image_size: 'Bildgrött:'
-      zoom: Zoom
-      add_marker: Sett en Markteken op de Koort
-      latitude: 'Breed:'
-      longitude: 'Läng:'
-      output: Utgaav
       export_button: Export
     sidebar:
       close: Sluten
@@ -519,34 +510,24 @@ nds:
           footway: Footpadd
           rail: Iesenbahn
           subway: U-Bahn
-          tram:
-          - Stadtbahn
-          - Stratenbahn
-          cable:
-          - Kavelbahn
-          - Skilift
-          runway:
-          - Fleger-Lannbahn
-          - Fleger-Rullweg
-          apron:
-          - Terminal
-          - Terminal
+          cable_car: Kavelbahn
+          chair_lift: Skilift
+          runway: Fleger-Lannbahn
+          taxiway: Fleger-Rullweg
+          apron: Terminal
           admin: Grenz
           forest: Forst
           wood: Woold
           golf: Golfplatz
           park: Park
+          common: Wisch
           resident: Wahnrebeed
-          common:
-          - Wisch
-          - Wisch
           retail: Ladenrebeed
           industrial: Industrierebeed
           commercial: Hannelsrebeed
           heathland: Heid
-          lake:
-          - See
-          - Stausee
+          lake: See
+          reservoir: Stausee
           farm: Buurnhoff
           brownfield: Industrie-Braakland
           cemetery: Karkhoff
@@ -555,14 +536,12 @@ nds:
           centre: Sportzentrum
           reserve: Naturpark
           military: Militärrebeed
-          school:
-          - School
-          - Universität
+          school: School
+          university: Universität
           building: Wichtig Bowark
           station: Bahnhoff
-          summit:
-          - Bargtopp
-          - Bargtopp
+          summit: Bargtopp
+          peak: Bargtopp
           tunnel: Strekel-Rand = Tunnel
           bridge: Fett Rand = Brügg
           private: Privat Togang
index 68536eaf8d71e889dd052d659d2975fac97b01d6..79f9b86742835eb70784651d7762be24051498bd 100644 (file)
@@ -170,12 +170,8 @@ ne:
       way_paginated: बाटोहरू (जम्मा %{count} मध्येबाट %{x}-%{y})
       relation: सम्बन्धहरू (%{count})
       relation_paginated: सम्बन्धहरू (जम्मा %{count} मध्येबाट %{x}-%{y})
-      comment: टिप्पणीहरू (%{count})
       changesetxml: चेन्जसेट XML
       osmchangexml: osmChange XML
-      feed:
-        title: 'परिवर्तनहरू: %{id}'
-        title_comment: परिवर्तनहरू %{id} - %{comment}
       join_discussion: छलफलमा भाग लिन लग इन गर्नुहोस्
       discussion: छलफल
     node:
@@ -272,6 +268,9 @@ ne:
       no_more_area: यो क्षेत्रमा अन्य कुनै परिवर्तनहरू छैनन्।
       no_more_user: यस प्रयोगकर्तटद्वारा अन्य कुनै परिवर्तनहरू गरिएका छैनन् ।
       load_more: अझै बढी खोल्नुहोस्
+      feed:
+        title: 'परिवर्तनहरू: %{id}'
+        title_comment: परिवर्तनहरू %{id} - %{comment}
     timeout:
       sorry: माफ गर्नुहोला, तपाईंले खोज्नुभएको परिवर्तनहरूको सूची प्राप्त गर्न निकै
         समय लाग्यो ।
@@ -822,8 +821,9 @@ ne:
   messages:
     inbox:
       title: इनबक्स
-      my_inbox: मेरो इनबक्स
+    messages_table:
       from: बाट
+      to: लाई
       subject: विषय
       date: मिति
     message_summary:
@@ -842,9 +842,6 @@ ne:
       heading: त्यस्तो कुनै पनि सन्देश छैन
     outbox:
       title: आउटबक्स
-      to: लाई
-      subject: विषय
-      date: मिति
     show:
       title: सन्देश पढ्नुहोस्
       reply_button: जवाफ दिने
@@ -853,18 +850,21 @@ ne:
       back: पछाडि
     sent_message_summary:
       destroy_button: हटाउनुहोस्
+    heading:
+      my_inbox: मेरो इनबक्स
     destroy:
       destroyed: सन्देश मेटियो
   passwords:
-    lost_password:
+    new:
       title: पासवर्ड बिर्सियो
       heading: पासवर्ड बिर्सिनुभयो ?
       email address: 'इमेल ठेगाना:'
       new password button: प्रवेस शब्द परिवर्तन गर्ने
-    reset_password:
+    edit:
       title: प्रवेस शब्द परिवर्तन गर्ने
       heading: '%{user}को लागि प्रवेस शब्द परिवर्तन गर्ने'
       reset: नयाँ प्रवेशशव्द
+    update:
       flash changed: तपाईंको प्रवेश शब्द परिवर्तन गरिएको छ।
   profiles:
     edit:
@@ -908,12 +908,7 @@ ne:
       user_page_link: प्रयोगकर्ता पृष्ठ
     export:
       title: निर्यात गर्नुहोस्
-      area_to_export: निर्यात गर्ने क्षेत्र
       manually_select: आफै अर्को क्षेत्र छान्नुहोस
-      format_to_export: निर्यात गर्ने ढाँचा
-      osm_xml_data: OpenStreetMap XML डेटा
-      map_image: नक्साको तस्वीर (सर्वस्वीकृत सतहहरू देखाउँछ)
-      embeddable_html: थप्नलायक HTML
       licence: इजाजतपत्र
       too_large:
         advice: निर्यात गर्ने प्रक्रिया असफल भएमा तल दिइएका स्रोतहरू प्रयोग गर्नुहोस्-
@@ -934,17 +929,6 @@ ne:
         other:
           title: अन्य स्रोतहरू
           description: ओपनस्ट्रीटम्याप विकिमा सूचीत थप स्रोतहरू
-      options: विकल्पहरू
-      format: ढाँचा
-      scale: स्केल
-      max: अधिकतम
-      image_size: तस्वीर आकार
-      zoom: जुम
-      add_marker: नक्शामा चिह्न थप्नुहोस्
-      latitude: 'अक्षांश:'
-      longitude: 'देशान्तर:'
-      output: उत्पादन
-      paste_html: वेबसाइट इम्बेड गर्न HTML पेस्ट गर्नुहोस्
       export_button: निर्यात गर्नुहोस्
     fixthemap:
       how_to_help:
@@ -961,8 +945,6 @@ ne:
       beginners_guide:
         title: सुरुवातकर्ताहरूको लागि मार्गदर्शन
         description: सुरुवातकर्ताहरूको लागि समुदायद्वारा निर्मित निर्देशिका
-      help:
-        title: help.openstreetmap.org
       mailing_lists:
         title: मेलिङ्ग सूचीहरू
       irc:
@@ -990,25 +972,21 @@ ne:
           cycleway: साइकल मार्ग
           rail: रेलमार्ग
           subway: सबवे
-          cable:
-          - केबल कार
-          - कुर्सी लिफ्ट
+          cable_car: केबल कार
+          chair_lift: कुर्सी लिफ्ट
           forest: वन
           wood: कुञ्ज
           golf: गल्फ कोर्स
           park: उद्यान
           resident: आवासीय क्षेत्र
-          lake:
-          - ताल
-          - मुहान
+          lake: ताल
+          reservoir: मुहान
           farm: खेती
           cemetery: अन्त्यष्टी स्थल
-          school:
-          - विद्यालय
-          - विश्वविद्यालय
-          summit:
-          - शिखर
-          - शिखर
+          school: विद्यालय
+          university: विश्वविद्यालय
+          summit: शिखर
+          peak: शिखर
           bicycle_shop: साइकल पसल
           bicycle_parking: साकल पार्किङ
           toilets: शौचालय
index d3d735894597bad9d3e51a1e38d80b1caee82424..c0d7323d4f6d009bf2311d51325faa18129434d4 100644 (file)
@@ -39,6 +39,7 @@
 # Author: MatthiasS
 # Author: McDutchie
 # Author: MedShot
+# Author: Mitsjol
 # Author: MrLeopold
 # Author: Mvexel
 # Author: Nickthijssen1994
@@ -191,7 +192,7 @@ nl:
         details: Geef wat meer details over het probleem (verplicht).
       user:
         auth_provider: Authenticatiedienst
-        auth_uid: Authenticatie UID
+        auth_uid: Authenticatie-UID
         email: E-mail
         email_confirmation: E-mailbevestiging
         new_email: Nieuw e-mailadres
@@ -206,8 +207,9 @@ nl:
         pass_crypt_confirmation: Wachtwoord bevestigen
     help:
       doorkeeper/application:
-        confidential: Toepassing wordt gebruikt waar het clientgeheim vertrouwelijk
-          kan worden gehouden (native mobiele apps en éénpagina-apps zijn niet vertrouwelijk)
+        confidential: De applicatie wordt gebruikt waar het clientgeheim vertrouwelijk
+          kan worden gehouden (voor mobiele apparaten ontworpen apps en éénpagina-apps
+          zijn niet vertrouwelijk)
         redirect_uri: Gebruik één regel per URI
       trace:
         tagstring: kommagescheiden
@@ -269,7 +271,6 @@ nl:
   auth:
     providers:
       none: Geen
-      openid: OpenID
       google: Google
       facebook: Facebook
       microsoft: Microsoft
@@ -325,6 +326,9 @@ nl:
         retain_changeset_discussions: Uw overleg over wijzigingensets, indien van
           toepassing, blijft behouden.
         retain_email: Uw e-mailadres blijft behouden.
+        recent_editing_html: Omdat u onlangs bewerkingen hebt aangebracht, kan uw
+          account momenteel niet worden verwijderd. Verwijderen is pas over %{time}
+          mogelijk.
         confirm_delete: Weet u het zeker?
         cancel: Annuleren
   accounts:
@@ -406,14 +410,10 @@ nl:
       way_paginated: Wegen (%{x}-%{y} van %{count})
       relation: Relaties (%{count})
       relation_paginated: Relaties (%{x}-%{y} van %{count})
-      comment: Reacties (%{count})
       hidden_comment_by_html: Verborgen reactie van %{user}, %{time_ago}
       comment_by_html: Reactie van %{user}, %{time_ago}
       changesetxml: Wijzigingenset-XML
       osmchangexml: osmChange-XML
-      feed:
-        title: Wijzigingenset %{id}
-        title_comment: Wijzigingenset %{id} - %{comment}
       join_discussion: Meld u aan om mee te praten
       discussion: Overleg
       still_open: Wijzigingenset is nog open – overleg gaat open zodra de wijzigingenset
@@ -525,6 +525,9 @@ nl:
       no_more_area: Geen wijzigingensets meer in dit gebied.
       no_more_user: Geen wijzigingensets meer van deze gebruiker.
       load_more: Meer laden
+      feed:
+        title: Wijzigingenset %{id}
+        title_comment: Wijzigingenset %{id} - %{comment}
     timeout:
       sorry: Het oproepen van de lijst met wijzigingensets die u hebt opgevraagd duurde
         te lang.
@@ -544,6 +547,7 @@ nl:
     contact:
       km away: '%{count} km verwijderd'
       m away: '%{count} m verwijderd'
+      latest_edit_html: 'Laatste bewerking (%{ago}):'
     popup:
       your location: Uw locatie
       nearby mapper: Dichtbijzijnde mapper
@@ -1520,9 +1524,9 @@ nl:
         one: '%{count} rapport'
         other: '%{count} rapporten'
       no_reports: Geen rapporten
-      report_created_at: Voor het eerst vermeld op %{datetime}
-      last_resolved_at: Laatst opgelost op %{datetime}
-      last_updated_at: Laatst bijgewerkt op %{datetime} door %{displayname}
+      report_created_at_html: Voor het eerst vermeld op %{datetime}
+      last_resolved_at_html: Laatst opgelost op %{datetime}
+      last_updated_at_html: Laatst bijgewerkt op %{datetime} door %{displayname}
       resolve: Oplossen
       ignore: Negeren
       reopen: Heropenen
@@ -1811,8 +1815,6 @@ nl:
   messages:
     inbox:
       title: Postvak IN
-      my_inbox: Mijn Postvak IN
-      my_outbox: Mijn Postvak UIT
       messages: U hebt %{new_messages} en %{old_messages}
       new_messages:
         one: '%{count} nieuw bericht'
@@ -1820,12 +1822,14 @@ nl:
       old_messages:
         one: '%{count} oud bericht'
         other: '%{count} oude berichten'
-      from: Van
-      subject: Onderwerp
-      date: Datum
       no_messages_yet_html: U hebt nog geen berichten. Waarom legt u geen contact
         met %{people_mapping_nearby_link}?
       people_mapping_nearby: dichtbijzijnde mappers
+    messages_table:
+      from: Van
+      to: Aan
+      subject: Onderwerp
+      date: Datum
     message_summary:
       unread_button: Markeren als ongelezen
       read_button: Markeren als gelezen
@@ -1845,14 +1849,9 @@ nl:
       body: Er is geen bericht met dat ID.
     outbox:
       title: Postvak UIT
-      my_inbox: Mijn Postvak IN
-      my_outbox: Mijn Postvak UIT
       messages:
         one: U hebt één verzonden bericht
         other: U hebt %{count} verzonden berichten
-      to: Aan
-      subject: Onderwerp
-      date: Datum
       no_sent_messages_html: U hebt nog geen berichten verzonden. Waarom legt u geen
         contact met %{people_mapping_nearby_link}?
       people_mapping_nearby: dichtbijzijnde mappers
@@ -1871,13 +1870,16 @@ nl:
         Meld u aan als de juiste gebruiker om het te lezen.
     sent_message_summary:
       destroy_button: Verwijderen
+    heading:
+      my_inbox: Mijn Postvak IN
+      my_outbox: Mijn Postvak UIT
     mark:
       as_read: Gemarkeerd als gelezen
       as_unread: Gemarkeerd als ongelezen
     destroy:
       destroyed: Het bericht is verwijderd
   passwords:
-    lost_password:
+    new:
       title: Wachtwoord vergeten
       heading: Wachtwoord vergeten?
       email address: 'E-mailadres:'
@@ -1885,13 +1887,16 @@ nl:
       help_text: Voer het e-mailadres in dat u hebt opgegeven bij uw registratie.
         We sturen u dan een webkoppeling die u kunt gebruiken om uw wachtwoord opnieuw
         in te stellen.
+    create:
       notice email on way: Spijtig om te horen dat u het vergeten bent, maar er is
         een e-mail onderweg zodat u uw wachtwoord opnieuw kunt instellen.
       notice email cannot find: Dat e-mailadres kon helaas niet worden gevonden.
-    reset_password:
+    edit:
       title: Wachtwoord opnieuw instellen
       heading: Wachtwoord voor %{user} opnieuw instellen
       reset: Wachtwoord opnieuw instellen
+      flash token bad: Het token kon niet gevonden worden. Controleer de URL.
+    update:
       flash changed: Uw wachtwoord is gewijzigd.
       flash token bad: Het token kon niet gevonden worden. Controleer de URL.
   preferences:
@@ -1941,7 +1946,6 @@ nl:
       heading: Aanmelden
       email or username: 'E-mailadres of gebruikersnaam:'
       password: 'Wachtwoord:'
-      openid_html: '%{logo} OpenID:'
       remember: Aanmeldgegevens onthouden
       lost password link: Wachtwoord vergeten?
       login_button: Aanmelden
@@ -2248,12 +2252,7 @@ nl:
         deze functie.
     export:
       title: Exporteren
-      area_to_export: Te exporteren gebied
       manually_select: Handmatig een ander gebied selecteren
-      format_to_export: Bestandsformaat
-      osm_xml_data: OpenStreetMap XML-gegevens
-      map_image: Kaartafbeelding (geeft de standaard laag weer)
-      embeddable_html: HTML-code
       licence: Licentie
       licence_details_html: OpenStreetMap-gegevens zijn gelicentieerd onder de %{odbl_link}
         (ODbL).
@@ -2277,17 +2276,6 @@ nl:
         other:
           title: Andere bronnen
           description: Extra bronnen die worden vermeld op de OpenStreetMap-wiki
-      options: Opties
-      format: 'Formaat:'
-      scale: Schaal
-      max: max
-      image_size: 'Afbeeldingsgrootte:'
-      zoom: Zoomen
-      add_marker: Marker op de kaart zetten
-      latitude: 'Breedte:'
-      longitude: 'Lengte:'
-      output: Uitvoer
-      paste_html: Kopieer de HTML-code en voeg deze toe aan uw website
       export_button: Exporteren
     fixthemap:
       title: Een probleem melden / de kaart corrigeren
@@ -2325,17 +2313,14 @@ nl:
         url: https://wiki.openstreetmap.org/wiki/NL:Beginnershandleiding
         title: Handleiding voor beginners
         description: Handleiding voor beginners, onderhouden door de gemeenschap.
-      help:
-        title: Help Forum
-        description: Stel een vraag of zoek antwoorden op de vraag- en antwoordsite
-          van OpenStreetMap.
+      community:
+        title: Hulp- en gemeenschapsforum
+        description: Een gedeelde plek waar je hulp kunt zoeken en gesprekken kunt
+          voeren over OpenStreetMap.
       mailing_lists:
         title: Mailinglijsten
         description: Stel een vraag of bespreek interessante zaken op een hele reeks
           onderwerpsgebonden of regionale mailinglijsten.
-      community:
-        title: Gemeenschapsforum
-        description: Een gedeelde plek voor conversaties over OpenStreetMap.
       irc:
         title: IRC
         description: Interactieve chat in vele verschillende talen en over tal van
@@ -2398,36 +2383,41 @@ nl:
           cycleway_local: Lokale fietsroute
           footway: Voetpad
           rail: Spoorweg
+          train: Trein
           subway: Metro
-          tram:
-          - Lightrail
-          - tram
-          cable:
-          - Kabelbaan
-          - stoeltjeslift
-          runway:
-          - Start- en landingsbaan
-          - taxibaan
-          apron:
-          - Luchthavenplatform
-          - terminal
+          ferry: Veerboot
+          light_rail: Lightrail
+          tram: Tram
+          trolleybus: Trolleybus
+          bus: Bus
+          cable_car: Kabelbaan
+          chair_lift: Stoeltjeslift
+          runway: Start- en landingsbaan
+          taxiway: Taxibaan
+          apron: Luchthavenplatform
           admin: Bestuurlijke grens
+          orchard: Boomgaard
+          vineyard: Wijngaard
           forest: Bos
           wood: Bos
+          farmland: Landbouwgrond
+          grass: Gras
+          meadow: Weide
+          bare_rock: Kale rots
+          sand: Zand
           golf: Golfbaan
           park: Park
+          common: Gemene grond
+          built_up: Bebouwde kom
           resident: Woongebied
-          common:
-          - Gemene grond
-          - weide
-          - tuin
           retail: Winkelgebied
           industrial: Industriegebied
           commercial: Commercieel gebied
           heathland: Heide
-          lake:
-          - Meer
-          - reservoir
+          scrubland: Struikgewas
+          lake: Meer
+          reservoir: Reservoir
+          glacier: Gletsjer
           farm: Boerderij
           brownfield: Braakliggend terrein
           cemetery: Begraafplaats
@@ -2436,20 +2426,21 @@ nl:
           centre: Sportcentrum
           reserve: Natuurreservaat
           military: Militair gebied
-          school:
-          - School
-          - universiteit
+          school: School; universiteit
+          university: Universiteit
           building: Belangrijk gebouw
           station: Spoorwegstation
-          summit:
-          - Top
-          - piek
+          summit: Top
+          peak: Piek
           tunnel: Tunnel
           bridge: Brug
           private: Privétoegang
           destination: Bestemmingsverkeer
           construction: Weg in aanleg
+          bus_stop: Bushalte
+          stop: Halte
           bicycle_shop: Fietsenwinkel
+          bicycle_rental: Fietsverhuur
           bicycle_parking: Fietsenstalling
           toilets: Toiletten
     welcome:
@@ -2494,6 +2485,7 @@ nl:
         imports: Importeringen
         automated_edits: Geautomatiseerde bewerkingen
       start_mapping: Beginnen met kaarten maken
+      continue_authorization: Doorgaan met autoriseren
       add_a_note:
         title: Geen tijd om te bewerken? Voeg een opmerking toe!
         para_1: Als u gewoon iets kleins wilt verbeteren en niet de tijd hebt om u
@@ -2692,6 +2684,7 @@ nl:
   oauth_clients:
     new:
       title: Nieuwe toepassing registreren
+      disabled: Registratie van OAuth 1 applicaties is uitgeschakeld
     edit:
       title: Uw toepassing bewerken
     show:
@@ -2775,6 +2768,7 @@ nl:
       title: Mijn geautoriseerde toepassingen
       application: Toepassing
       permissions: Rechten
+      last_authorized: Laatst geautoriseerd
       no_applications_html: U heeft nog geen %{oauth2}-toepassingen geautoriseerd.
     application:
       revoke: Toegang intrekken
@@ -2872,7 +2866,6 @@ nl:
       ct status: 'Voorwaarden voor bijdragen:'
       ct undecided: Onbeslist
       ct declined: Afgewezen
-      latest edit: 'Laatste bewerking (%{ago}):'
       email address: 'E-mailadres:'
       created from: 'Aangemaakt door:'
       status: 'Status:'
@@ -2880,12 +2873,15 @@ nl:
       role:
         administrator: Deze gebruiker is beheerder
         moderator: Deze gebruiker is moderator
+        importer: Deze gebruiker is een importeur
         grant:
           administrator: Beheerdersrechten toekennen
           moderator: Moderatorrechten toekennen
+          importer: Importeurstoegang verlenen
         revoke:
           administrator: Beheerdersrechten intrekken
           moderator: Moderatorrechten intrekken
+          importer: Importeurstoegang intrekken
       block_history: Actieve blokkades
       moderator_history: Uitgevoerde blokkades
       comments: Reacties
@@ -2994,16 +2990,16 @@ nl:
     revoke:
       title: Blokkade voor %{block_on} intrekken
       heading_html: Blokkade voor %{block_on} door %{block_by} intrekken
-      time_future: Deze blokkade vervalt over %{time}.
-      past: De blokkade is %{time} vervallen en kan nu niet ingetrokken worden.
+      time_future_html: Deze blokkade vervalt over %{time}.
+      past_html: De blokkade is %{time} vervallen en kan nu niet ingetrokken worden.
       confirm: Weet u zeker dat u deze blokkade wilt intrekken?
       revoke: Intrekken
       flash: Deze blokkade is ingetrokken.
     helper:
       time_future_html: Vervalt over %{time}.
       until_login: Actief totdat de gebruiker zich aanmeldt.
-      time_future_and_until_login_html: Eindigt in %{time} en nadat de gebruiker ingelogd
-        is.
+      time_future_and_until_login_html: Eindigt in %{time} en nadat de gebruiker zich
+        heeft aangemeld.
       time_past_html: '%{time} vervallen.'
       block_duration:
         hours:
@@ -3152,12 +3148,10 @@ nl:
           other: U bevindt zich binnen %{count} voet van dit punt
       base:
         standard: Standaard
-        cyclosm: CyclOSM
         cycle_map: Fietskaart
         transport_map: Transportkaart
         tracestracktop_topo: Tracestrack Topo
         hot: Humanitair
-        opnvkarte: ÖPNVKarte
       layers:
         header: Kaartlagen
         notes: Kaartopmerkingen
@@ -3172,8 +3166,6 @@ nl:
       osm_france: OpenStreetMap Frankrijk
       thunderforest_credit: Tegels met dank aan %{thunderforest_link}
       andy_allan: Andy Allan
-      opnvkarte_credit: Tegels met dank aan %{memomaps_link}
-      memomaps: MeMoMaps
       tracestrack_credit: Tegels met dank aan %{tracestrack_link}
       hotosm_credit: Kaartstijl door %{hotosm_link} gehost door %{osm_france_link}
       hotosm_name: Humanitair OpenStreetMap-team
@@ -3186,6 +3178,8 @@ nl:
       map_data_zoom_in_tooltip: Inzoomen om kaartgegevens te bekijken
       queryfeature_tooltip: Nabije objecten opvragen
       queryfeature_disabled_tooltip: Inzoomen om objecten op te vragen
+      embed_html_disabled: Het inbedden van HTML-code is voor deze kaartlaag niet
+        mogelijk
     changesets:
       show:
         comment: Reageren
index 2b594f0bbf5565b08c7d083cfd77b5be512b67d7..ef6732bec1705b2be9e3969abb8371ace1e4b5d1 100644 (file)
@@ -5,6 +5,7 @@
 # Author: Amire80
 # Author: Bjorni
 # Author: Danieldegroot2
+# Author: Dimitar
 # Author: Dittaeva
 # Author: Eirik
 # Author: Gnonthgol
@@ -202,7 +203,6 @@ nn:
   auth:
     providers:
       none: Ingen
-      openid: OpenID
       google: Google
       facebook: Facebook
       microsoft: Microsoft
@@ -328,14 +328,10 @@ nn:
       way_paginated: Strekningar (%{x}-%{y} av %{count})
       relation: Samhøve (%{count})
       relation_paginated: Samhøve (%{x}–%{y} av %{count})
-      comment: Kommentarar (%{count})
       hidden_comment_by_html: Skylt kommentar frå %{user} %{time_ago}
       comment_by_html: Kommentar frå %{user} %{time_ago}
       changesetxml: XML for endringssett
       osmchangexml: osmChange XML
-      feed:
-        title: Endringssett %{id}
-        title_comment: 'Endringssett: %{id} - %{comment}'
       join_discussion: Logg inn for å vere med i diskusjonen
       discussion: Ordskifte
       still_open: Endringssettet er framleis ope – det vert opna for diskusjon når
@@ -443,6 +439,9 @@ nn:
       no_more_area: Ingen fleire endringssett i dette området.
       no_more_user: Ingen fleire endringssett av denne brukaren.
       load_more: Last inn meir
+      feed:
+        title: Endringssett %{id}
+        title_comment: 'Endringssett: %{id} - %{comment}'
     timeout:
       sorry: Lista over endringssett du ba om tok for lang tid å hente.
   changeset_comments:
@@ -460,6 +459,7 @@ nn:
     contact:
       km away: '%{count}km unna'
       m away: '%{count}m unna'
+      latest_edit_html: 'Siste redigering (%{ago}):'
     popup:
       your location: Posisjonen din
       nearby mapper: Brukarar i nærleiken
@@ -1381,9 +1381,9 @@ nn:
         one: '%{count} melding'
         other: '%{count} meldingar'
       no_reports: Ingen meldingar
-      report_created_at: Fyrst meld %{datetime}
-      last_resolved_at: Sist løyst %{datetime}
-      last_updated_at: Sis oppdatert %{datetime} av %{displayname}
+      report_created_at_html: Fyrst meld %{datetime}
+      last_resolved_at_html: Sist løyst %{datetime}
+      last_updated_at_html: Sis oppdatert %{datetime} av %{displayname}
       resolve: Løys
       ignore: Sjå bort frå
       reopen: Opna att
@@ -1657,8 +1657,6 @@ nn:
   messages:
     inbox:
       title: Mottekne
-      my_inbox: Mottekne
-      my_outbox: Sende
       messages: Du har %{new_messages} og %{old_messages}
       new_messages:
         one: '%{count} ny melding'
@@ -1666,12 +1664,14 @@ nn:
       old_messages:
         one: '%{count} gamal melding'
         other: '%{count} gamle meldingar'
-      from: Frå
-      subject: Emne
-      date: Dato
       no_messages_yet_html: Du har ingen meldingar endå. Kanskje du kan prøve å kome
         i kontakt med %{people_mapping_nearby_link}?
       people_mapping_nearby: folk i nærleiken som lagar kart
+    messages_table:
+      from: Frå
+      to: Til
+      subject: Emne
+      date: Dato
     message_summary:
       unread_button: Marker som ulese
       read_button: Marker som lese
@@ -1691,14 +1691,9 @@ nn:
       body: Det er inga melding med den ID-en.
     outbox:
       title: Sende
-      my_inbox: Mottekne
-      my_outbox: Sende
       messages:
         one: Du har %{count} send melding
         other: Du har %{count} sende meldingar
-      to: Til
-      subject: Emne
-      date: Dato
       no_sent_messages_html: Du har ikkje sendt nokre meldingar endå. Kanskje du kan
         prøve å kome i kontakt med %{people_mapping_nearby_link}?
       people_mapping_nearby: folk i nærleiken som lagar kart
@@ -1715,28 +1710,33 @@ nn:
         ikkje send til den brukaren. Logg inn som korrekt brukar for å lese.
     sent_message_summary:
       destroy_button: Slett
+    heading:
+      my_inbox: Mottekne
+      my_outbox: Sende
     mark:
       as_read: Melding markert som lese
       as_unread: Melding markert som ulese
     destroy:
       destroyed: Melding sletta
   passwords:
-    lost_password:
+    new:
       title: Gløymt passord
       heading: Gløymt passord?
       email address: 'E-postadresse:'
       new password button: Nullstill passord
       help_text: Skriv inn e-postadressa du brukte for å registrere deg, og me vil
         sende deg ei lenkje som du kan bruke til å nullstille passordet ditt.
+    create:
       notice email on way: Synd at du mista det, men ein e-post er på veg slik at
         du kan tilbakestille det snart.
       notice email cannot find: Klarte ikkje finne den e-postadressa. Beklagar.
-    reset_password:
+    edit:
       title: Nullstill passord
       heading: Nullstill passord for %{user}
       reset: Nullstill passord
-      flash changed: Passordet ditt er endra.
       flash token bad: Kunne ikkje finne den nøkkelen. Sjekke URLen kanskje?
+    update:
+      flash changed: Passordet ditt er endra.
   preferences:
     show:
       title: Innstillingar
@@ -1782,7 +1782,6 @@ nn:
       heading: Logg inn
       email or username: 'E-postadresse eller brukarnamn:'
       password: 'Passord:'
-      openid_html: '%{logo} OpenID:'
       remember: Hugs meg
       lost password link: Mista passordet ditt?
       login_button: Logg inn
@@ -2055,12 +2054,7 @@ nn:
         for denne eigenskapen.
     export:
       title: Eksporter
-      area_to_export: Område som skal eksporterast
       manually_select: Vel eit anna område manuelt
-      format_to_export: Format for eksport
-      osm_xml_data: OpenStreetMap XML-data
-      map_image: Kartblad (viser standard laget)
-      embeddable_html: HTML som kan byggjast inn
       licence: Lisens
       licence_details_html: Data frå OpenStreetMap er lisensert under %{odbl_link}
         (ODbL).
@@ -2082,17 +2076,6 @@ nn:
         other:
           title: Andre kjelder
           description: Yttarlegare kjelder hjå OpenStreetMap sin wiki
-      options: Val
-      format: Format
-      scale: Skala
-      max: maks
-      image_size: Bildestørrelse
-      zoom: Zoom
-      add_marker: Legg til ein markør på kartet
-      latitude: 'Brei:'
-      longitude: 'Len:'
-      output: Utdata
-      paste_html: Lim inn HTML som skal byggjast inn i nettstad
       export_button: Eksporter
     fixthemap:
       title: Rapporter eit problem/Korriger kartet
@@ -2128,17 +2111,13 @@ nn:
         url: http://wiki.openstreetmap.org/wiki/Nn:Beginners%27_guide
         title: Hjelp for nybegynnarar
         description: Dugnadsbasert guide for nybegynnarar.
-      help:
-        title: Hjelpeforum
-        description: Still spørsmål eller finn eit svar på spørsmål-og-svar-sidene
-          til OpenStreetMap.
+      community:
+        title: Fellesskapsforum
+        description: Ein stad for samtaler om OpenStreetMap.
       mailing_lists:
         title: E-postlister
         description: Spør eit spørsmål eller diskuter interessante tema på ei rekke
           av temabaserte eller regionale e-postlister.
-      community:
-        title: Fellesskapsforum
-        description: Ein stad for samtaler om OpenStreetMap.
       irc:
         title: IRC
       switch2osm:
@@ -2177,34 +2156,24 @@ nn:
           footway: Gangveg
           rail: Jernbane
           subway: Undergrunnsbane
-          tram:
-          - Bybane
-          - trikk
-          cable:
-          - Kabelvogn
-          - stolheis
-          runway:
-          - Flystripe
-          - taksebane
-          apron:
-          - terminal
-          - terminal
+          cable_car: Kabelvogn
+          chair_lift: stolheis
+          runway: Flystripe
+          taxiway: taksebane
+          apron: terminal
           admin: Administrativ grense
           forest: Skog
           wood: Ved
           golf: Golfbane
           park: Park
+          common: Vanleg
           resident: Boligområde
-          common:
-          - Vanleg
-          - snever
           retail: Detaljsalgområde
           industrial: Industriområde
           commercial: Kommersielt område
           heathland: Heilandskap
-          lake:
-          - Innsjø
-          - reservoar
+          lake: Innsjø
+          reservoir: reservoar
           farm: Gard
           brownfield: Tidlegare industriområde
           cemetery: Gravplass
@@ -2213,14 +2182,12 @@ nn:
           centre: Sportssenter
           reserve: Naturreservat
           military: Militært område
-          school:
-          - Skule
-          - universitet
+          school: Skule
+          university: universitet
           building: Viktig bygning
           station: Jernbanestasjon
-          summit:
-          - Topp
-          - fjelltopp
+          summit: Topp
+          peak: fjelltopp
           tunnel: Streka kant = tunnel
           bridge: Sort kant = bru
           private: Privat tilgjenge
@@ -2416,7 +2383,7 @@ nn:
       consider_pd: I tillegg til den ovannemnde avtala ansar eg bidraga mine for å
         vere i public domain
       consider_pd_why: kva er dette?
-      consider_pd_why_url: http://www.osmfoundation.org/wiki/License/Why_would_i_want_my_contributions_to_be_public_domain
+      consider_pd_why_url: https://www.osmfoundation.org/wiki/License/Why_would_i_want_my_contributions_to_be_public_domain
       decline: Avslå
       you need to accept or decline: Les og deretter anten godta eller avslå dei nye
         bidragsytervilkåra for å halde fram.
@@ -2453,7 +2420,6 @@ nn:
       ct status: 'Bidragsytarvilkår:'
       ct undecided: Usikker
       ct declined: Avslått
-      latest edit: 'Siste redigering (%{ago}):'
       email address: 'E-postadresse:'
       created from: 'Oppretta frå:'
       status: 'Status:'
@@ -2553,8 +2519,8 @@ nn:
     revoke:
       title: Tilbakekaller blokkering på %{block_on}
       heading_html: Tilbakekaller blokkering på %{block_on} av %{block_by}
-      time_future: Denne blokkeringa endar i %{time}
-      past: Denne blokkeringa enda %{time} sidan og kan ikkje tilbakekalles no.
+      time_future_html: Denne blokkeringa endar i %{time}
+      past_html: Denne blokkeringa enda %{time} sidan og kan ikkje tilbakekalles no.
       confirm: Er du sikker på at du vil tilbakekalle denne blokkeringa?
       revoke: Tilbakekall!
       flash: Denne blokkeringa har vorte tilbakekalt.
index 846b4375e54e2c7b714412c5f8b6ca0c81ddf7ff..e9ed1945f816c202523cc0cc15fe5aa3b5e7ef37 100644 (file)
@@ -304,14 +304,10 @@ nqo:
       way_paginated: ߛߌߟߊ (%{x}-%{y} ߦߋ߫ %{count})
       relation: ߕߍߓߊ߯ߦߊ (%{count})
       relation_paginated: ߕߍߓߊ߯ߦߊ (%{x}-%{y} %{count})
-      comment: ߡߙߌߣߊ߲ (%{count})
       hidden_comment_by_html: ߞߊ߲߬ߞߎߡߊ ߥߣߊ߬ߙߌ߬ߣߍ߲߬ ߦߋ߫ %{user} ߡߊ߬ %{time_ago} ߟߊ߫
       comment_by_html: ߞߊ߲߬ߞߎߡߊ ߞߊ߬ ߝߘߊ߫ %{user} ߟߊ߫ %{time_ago} ߡߊ߬
       changesetxml: XML ߟߊ߬ߘߏ߲߬ߠߌ߲ ߡߊߝߊ߬ߟߋ߲߫
       osmchangexml: ߏ.ߛ.ߡ ߡߝߊ߬ߟߋ߲߬ߠߌ߲ XML
-      feed:
-        title: ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲߬ ߞߙߎ %{id}
-        title_comment: ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲߬ ߞߙߎ %{id} - %{comment}
       join_discussion: ߌ ߜߊ߲߬ߞߎ߲߫ ߞߊ߬ ߕߘߍ߬ ߡߙߌߣߊ߲߫ ߦߌߘߊ ߘߐ߫
       discussion: ߘߊߘߐߖߊߥߏ
       still_open: ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲߬ ߠߊߞߊ߬ߝߏ߬ߣߍ߲ ߠߎ߬ ߟߊߞߊ߬ߣߍ߲߫ ߦߋ߫ ߡߎߣߎ߲߬ - ߘߊߘߐߖߊߥߏ
@@ -410,6 +406,9 @@ nqo:
       no_more_area: ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲ ߟߊ߬ߘߏ߲߬ߠߌ߲߬ ߜߘߍ߫ ߕߍ߫ ߕߌ߲߬ߞߎߘߎ߲ ߣߌ߲߬ ߘߐ߫.
       no_more_user: ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲߬ ߟߊߘߏ߲߬ߣߍ߲߬ ߜߘߍ߫ ߕߍ߫ ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ ߣߌ߲߬ ߓߟߏ߫
       load_more: ߘߏߜߘߍ߫ ߟߎ߫ ߟߊߢߎ߲߫
+      feed:
+        title: ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲߬ ߞߙߎ %{id}
+        title_comment: ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲߬ ߞߙߎ %{id} - %{comment}
     timeout:
       sorry: ߤߊߞߍ߬ߕߏ߫߸ ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲߬ ߠߊߞߊ߬ߝߏ߬ߣߍ߲ ߛߙߍߘߍ ߡߍ߲ ߡߊߢߌߣߌ߲ ߦߴߌ ߘߐ߫ ߌ ߓߟߏ߫߸
         ߊ߬ ߓߘߊ߫ ߥߛߎ߬ ߖߊ߲߬ߓߊ ߟߋ߬ ߕߵߊ߬ ߡߊߛߐ߬ߘߐ߲ ߘߐ߫.
@@ -1021,9 +1020,9 @@ nqo:
         resolved: ߊ߬ ߓߘߊ߫ ߢߊߓߐ߫
     show:
       title: '%{status} ߝߌ߬ߛߌ #%{issue_id}'
-      report_created_at: ߞߏߝߐߟߌ߫ ߝߟߐ ߞߍ߫ ߘߊ߫ %{datetime}
-      last_resolved_at: ߢߊߓߐߟߌ߫ ߟߊߓߊ߲ ߞߍ߫ ߘߊ߫ %{datetime}
-      last_updated_at: ߊ߬ ߟߊߛߋ߫ ߟߊߓߊ߲ ߞߍ߫ ߘߊ߫ ߘߊߞߎ߲ ߘߐ߫ %{datetime} ߊ߬ ߣߌ߫ %{displayname}
+      report_created_at_html: ߞߏߝߐߟߌ߫ ߝߟߐ ߞߍ߫ ߘߊ߫ %{datetime}
+      last_resolved_at_html: ߢߊߓߐߟߌ߫ ߟߊߓߊ߲ ߞߍ߫ ߘߊ߫ %{datetime}
+      last_updated_at_html: ߊ߬ ߟߊߛߋ߫ ߟߊߓߊ߲ ߞߍ߫ ߘߊ߫ ߘߊߞߎ߲ ߘߐ߫ %{datetime} ߊ߬ ߣߌ߫ %{displayname}
         ߓߟߏ߫
       resolve: ߊ߬ ߢߊߓߐ߫
       ignore: ߊ߬ ߡߋߓߌ߬ߟߊ߫
@@ -1235,15 +1234,15 @@ nqo:
   messages:
     inbox:
       title: ߗߋߛߓߍ߫ ߟߊߣߊ߬ߣߍ߲
-      my_inbox: ߒ ߠߊ߫ ߞߏ߲߬ߘߏ ߞߣߐߟߊ
-      my_outbox: ߒ ߠߊ߫ ߗߋߛߓߍ߫ ߗߋߣߍ߲
       messages: '%{new_messages} ߟߎ߬ ߣߌ߫ %{old_messages} ߠߎ߬ ߦߴߌ ߓߟߏ߫'
-      from: ߞߊ߬ ߝߘߊ߫
-      subject: ߝߐߡߊ
-      date: ߕߎ߬ߡߊ߬ߘߊ
       no_messages_yet_html: ߗߋߛߓߍ߫ ߕߴߌ ߓߟߏ߫ ߡߎߣߎ߲߬. ߡߎ߲߬ߠߊ߫ ߌ ߡߊ߫ ߕߘߍ߬ ߡߊ߰ߒ߬ߠߊ߬ߟߌ
         ߘߐ߫  %{people_mapping_nearby_link} ߟߊ߫؟
       people_mapping_nearby: ߛߌ߰ߢߐ߰ߡߊ ߡߍ߲ ߠߎ߬ ߦߋ߫ ߔߊ߬ߔߘߊ߬ߦߊ ߞߊ߲߬
+    messages_table:
+      from: ߞߊ߬ ߝߘߊ߫
+      to: ߞߊ߬ ߕߊ߯
+      subject: ߝߐߡߊ
+      date: ߕߎ߬ߡߊ߬ߘߊ
     message_summary:
       unread_button: ߊ߬ ߞߍ߫ ߞߊ߬ߙߊ߲߬ߓߊߟߌ ߘߌ߫
       read_button: ߊ߬ ߣߐ߬ߣߐ߫ ߘߐ߬ߞߊ߬ߙߊ߲߬ߣߍ߲ ߘߌ߫
@@ -1263,11 +1262,6 @@ nqo:
       body: ߤߊߞߍ߬ߕߏ߫߸ ߗߋߛߓߍ߫ ߛߌ߫ ߕߍ߫ ߛߊ߲߬ߓߊ߬ߕߐ߮ ߏ߬ ߟߊ߫.
     outbox:
       title: ߗߋߟߌ߫ ߞߏ߲ߘߏ
-      my_inbox: ߒ ߠߊ߫ ߗߋߛߓߍ߫ ߛߐ߬ߡߐ߲߲߬ߣߍ߲
-      my_outbox: ߒ ߠߊ߫ ߗߋߛߓߍ߫ ߗߋߣߍ߲
-      to: ߞߊ߬ ߕߊ߯
-      subject: ߝߐߡߊ
-      date: ߕߎ߬ߡߊ߬ߘߊ
       no_sent_messages_html: ߗߋߛߓߍ߫ ߗߋߣߍ߲߫ ߕߴߌ ߓߟߏ߫ ߡߎߣߎ߲߬. ߡߎ߲߬ߠߊ߫ ߌ ߡߊ߫ ߕߘߍ߬ ߓߌ߬ߟߊ߬ߒ߬ߡߊ߬ߟߌ
         ߘߐ߫ %{people_mapping_nearby_link}؟
       people_mapping_nearby: ߡߐ߱ ߡߍ߲ ߠߎ߬ ߦߋ߫ ߔߊ߬ߔߘߊ߬ߦߊ ߞߊ߲߬ ߌ ߕߙߐߝߍ߬
@@ -1286,28 +1280,33 @@ nqo:
         ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ߫ ߖߐ߲ߖߐ߲ ߘߌ߫ ߖߊ߰ߣߌ߲߫ ߛߴߌ ߘߌ߫ ߛߴߊ߬ ߘߐߞߊ߬ߙߊ߲߬ ߠߊ߫.
     sent_message_summary:
       destroy_button: ߊ߬ ߖߏ߬ߛߌ߬
+    heading:
+      my_inbox: ߒ ߠߊ߫ ߞߏ߲߬ߘߏ ߞߣߐߟߊ
+      my_outbox: ߒ ߠߊ߫ ߗߋߛߓߍ߫ ߗߋߣߍ߲
     mark:
       as_read: ߗߋߛߓߍ ߓߘߊ߫ ߣߐ߫ߣߐ߫ ߘߐ߬ߞߊ߬ߙߊ߲߬ߣߍ߲ ߘߌ߫
       as_unread: ߗߋߛߓߍ ߓߘߊ߫ ߣߐ߬ߣߐ߬ ߞߊ߬ߙߊ߲߬ߓߊߟߌ ߘߌ߫
     destroy:
       destroyed: ߗߋߛߓߍ ߓߘߊ߫ ߖߏ߬ߛߌ߫
   passwords:
-    lost_password:
+    new:
       title: ߓߣߐ߬ ߓߘߊ߫ ߞߍ߫ ߕߊ߬ߡߌ߲߬ߞߊ߲ ߘߐ߫
       heading: ߌ ߓߘߊ߫ ߢߌ߬ߣߊ߬ ߌ ߟߊ߫ ߕߊ߬ߡߌ߲߬ߞߊ߲ ߠߊ߫؟
       email address: 'ߢߎߡߍߙߋ߲߫ ߞߏ߲ߘߏ ߛߊ߲߬ߓߊ߬ߕߐ߮:'
       new password button: ߕߊ߬ߡߌ߲߬ߞߊ߲ ߡߊߦߟߍ߬ߡߊ߲߬
       help_text: ߢ:ߞߏ߲ߘߏ ߟߊߘߏ߲߬ ߌ ߞߊ߬ ߡߍ߲ ߠߊߓߊ߯ߙߊ߫ ߞߵߌ ߜߊ߲߬ߞߎ߲߫߸ ߊ߲ ߘߌ߫ ߛߘߌ߬ߜߋ߲ ߗߴߌ
         ߡߵߊ߬ ߟߊ߫ ߌ ߘߴߏ߬ ߟߊߓߊ߯ߙߊ߫ ߞߵߌ ߟߊ߫ ߕߊ߬ߡߌ߲߬ߞߊ߲ ߡߊߦߟߍ߬ߡߊ߲߫.
+    create:
       notice email on way: ߤߊߞߍ߬ߕߏ߫ ߌ ߓߘߊ߫ ߓߐߣߵߊ߬ ߘߐ߫:-(ߒ߬ߞߊ߬ ߗߋߛߓߍ ߘߏ߫ ߦߴߊ߬ ߞߣߐ߫
         ߏ߬ ߘߐ߫ ߌ ߘߌ߫ ߛߴߊ߬ ߡߊߦߟߍ߬ߡߊ߲߫ ߠߊ߫ ߖߏߣߊ߫.
       notice email cannot find: ߢ:ߞߏ߲ߘߏ ߛߊ߲߬ߓߊ߬ߕߐ߮ ߏ߬ ߕߴߛߋ߫ ߢߌߣߌ߲߫ ߠߊ߫߸ ߤߊߞߍ߬ߕߏ߫.
-    reset_password:
+    edit:
       title: ߕߊ߬ߡߌ߲߬ߞߊ߲ ߡߊߦߟߍ߬ߡߊ߲߬
       heading: ߕߊ߬ߡߌ߲߬ߞߊ߲ ߡߊߦߟߍ߬ߡߊ߲߫ %{user} ߦߋ߫
       reset: ߕߊ߬ߡߌ߲߬ߞߊ߲ ߡߊߦߟߍ߬ߡߊ߲߬
-      flash changed: ߌ ߟߊ߫ ߕߊ߬ߡߌ߲߬ߞߊ߲ ߓߘߊ߫ ߓߊ߲߫ ߡߊߝߊ߬ߟߋ߲߬ ߠߊ߫.
       flash token bad: ߌ ߞߊߣߊ߬ ߖߐߟߐ߲ߞߐ ߏ߬ ߢߌߣߌ߲߫߸ URL ߡߊߝߟߍ߫ ߕߎ߬ߡߊ߬ߘߐ߫؟
+    update:
+      flash changed: ߌ ߟߊ߫ ߕߊ߬ߡߌ߲߬ߞߊ߲ ߓߘߊ߫ ߓߊ߲߫ ߡߊߝߊ߬ߟߋ߲߬ ߠߊ߫.
   preferences:
     show:
       title: ߒ ߠߊ߫ ߦߟߌߡߊߛߙߋ ߟߎ߬
@@ -1351,7 +1350,6 @@ nqo:
       heading: ߌ ߜߊ߲߬ߞߎ߲߫
       email or username: 'ߢ:ߞߏ߲ߘߏ ߛߊ߲߬ߓߊ߬ߕߐ߮ ߥߟߊ߫ ߟߊ߬ߓߊ߰ߙߊ߬ߟߌ߬ ߕߐ߮:'
       password: 'ߕߊ߬ߡߌ߲߬ߞߊ߲:'
-      openid_html: '%{logo} ߘߊߦߟߍߟߌ߫ ID:'
       remember: ߒ ߖߊ߲߭ߓߌ߬ߟߊ߬
       lost password link: ߌ ߓߘߊ߫ ߢߌ߬ߣߊ߬ ߌ ߟߊ߫ ߕߊ߬ߡߌ߲߬ߞߊ߲ ߠߊ߫؟
       login_button: ߌ ߜߊ߲߬ߞߎ߲߫
@@ -1448,11 +1446,7 @@ nqo:
       id_not_configured: ID ߡߊ߫ ߘߊߘߐߓߍ߲߬ ߡߎߣߎ߲߬
     export:
       title: ߟߊ߬ߝߏ߬ߦߌ߬ߟߌ
-      area_to_export: ߟߊ߬ߝߏ߬ߦߌ߬ߟߌ ߞߍ߫ ߦߙߐ
       manually_select: ߦߙߐ߫ ߓߐߣߍ߲ߢߐ߲߰ߡߊ ߟߎ߬ ߓߊߕߐ߬ߡߐ߲߬ ߓߟߏߟߕߊߦߊ ߘߐ߫
-      format_to_export: ߖߙߎߡߎ߲߫ ߛߏ߲߯ߓߕߊ
-      osm_xml_data: ߏߔߌ߲ߛߑߕߙߌߕߑߡߊߔ XML ߟߐ߲ߕߊ
-      map_image: ߡߊߔ ߖߌ߬ߦߊ߬ߓߍ (ߓߊߖߎ ߟߊߟߊߟߌ ߦߌ߬ߘߊ߬ߟߌ)
       too_large:
         planet:
           title: ߖߊ߯ߓߊߟߌ OSM
@@ -1460,11 +1454,6 @@ nqo:
           title: ߛߎ߲߫ ߜߘߍ ߟߎ߬
           description: ߊ߬ ߛߎ߲߫ ߞߏ ߡߞߊ߬ߝߏ߬ߟߌ߬ ߜߘߍ߫ ߟߎ߫ ߛߙߍߘߍ ߦߋ߫ ߏߔߌ߲ߛߑߕߙߌߕߑߡߊߔ ߥߞߌ
             ߞߊ߲߬
-      options: ߢߣߊߕߊߟߌ
-      format: ߖߙߎߡߎ߲
-      image_size: ߖߌ߬ߦߊ߬ߓߍ ߢߊ߲ߞߊ߲
-      zoom: ߡߛߊ߬ߡߊ߲߬ߠߌ߲
-      add_marker: ߣߐ߬ߣߐ߬ߟߊ߲ ߓߌ߬ߟߊ߬ ߡߊߔ ߟߊ߫
       export_button: ߟߊ߬ߝߏ߬ߦߌ߬ߟߌ
     fixthemap:
       title: ߝߙߋߞߋ ߘߏ߫ ߟߊߞߏߝߐ߫\ߔߊ߬ߔߘߊ ߘߐߓߍ߲߬
@@ -1485,10 +1474,6 @@ nqo:
       beginners_guide:
         title: ߘߊߡߌߣߊߟߌߟߊ ߟߎ߬ ߢߍߡߌߘߊ
         description: ߘߍ߬ߘߊ ߦߋ߫ ߢߍߡߌߘߊ ߘߏ߫ ߘߐߓߍ߲߬ ߠߊ߫ ߘߊߡߌߣߊߟߌߟߊ ߟߎ߬ ߦߋ߫.
-      help:
-        title: ߘߍ߬ߡߍ߲߬ߠߌ߲ ߟߐ߯ߓߊߟߐ
-        description: ߢߌ߬ߣߌ߲߬ߞߊ߬ߟߌ ߘߏ߫ ߞߍ߫ ߤߊߡߊ߲ߕߍ߫ ߞߊ߬ ߖߋ߬ߓߌ ߘߏ߫ ߟߎ߫ ߡߊߝߟߍ߫ ߏߔߌ߲ߛߑߕߙߌߕߑߡߊߔ
-          ߢߌ߬ߣߌ߲߬ߞߊ߬ߟߌ-ߣߴߊ߬-ߖߋ߬ߓߌ ߞߍߦߙߐ ߞߊ߲߬.
       mailing_lists:
         title: ߢߎߡߍߙߋ߲ߦߊߟߌ ߛߙߍߘߍ ߟߎ߬
       welcomemat:
@@ -1520,30 +1505,25 @@ nqo:
           footway: ߛߋ߲߬ߡߊ߬ߛߌߟߊ
           rail: ߣߍ߰ߛߌߟߊ
           subway: ߘߎ߰ߞߘߐ߬ߛߌߟߊ
-          cable:
-          - ߘߎ߲ߞߎߟߎ߲
-          runway:
-          - ߛߊ߲ߡߊߘߊ߲ ߓߏ߬ߙߌ߬ ߛߌߟߊ
-          - ߥߊߟߌߥߊߟߌ ߫ ߛߌߟߊ
+          cable_car: ߘߎ߲ߞߎߟߎ߲
+          runway: ߛߊ߲ߡߊߘߊ߲ ߓߏ߬ߙߌ߬ ߛߌߟߊ
+          taxiway: ߥߊߟߌߥߊߟߌ ߫ ߛߌߟߊ
           admin: ߓߐߕߏ߲߫ ߞߎ߲߬ߠߊ߬ߛߌ߰ߟߊ߬ߞߊ
           forest: ߕߎ
           wood: ߦߙߌ
+          common: ߘߍ߬ߒ߬ߡߊ߬ ߞߣߍ
           resident: ߡߐ߰ߘߐ߬ ߛߌߟߊ
-          common:
-          - ߘߍ߬ߒ߬ߡߊ߬ ߞߣߍ
           retail: ߖߎ߬ߟߦߊ߬ ߞߣߍ
           industrial: ߘߍ߲߰ߦߊ߬ߟߌ ߕߌ߲߬ߞߎߘߎ߲
           commercial: ߖߊ߬ߥߏ ߘߌ߲߬ߞߌߙߊ
-          lake:
-          - ߞߐ߰ߖߌ߬ߘߟߊ
+          lake: ߞߐ߰ߖߌ߬ߘߟߊ
           farm: ߝߏ߬ߘߏ
           cemetery: ߞߊߓߙߎߟߏ
           centre: ߝߊ߬ߘߌ߬ߡߊ߬ߞߟߏ ߕߊ߲ߓߊ߲
           reserve: ߛߎ߲ߞߎ߲ ߦߙߐ߫ ߟߊߕߏߣߍ߲
           military: ߣߊ߲߬ߕߌ߰ ߕߌ߲ߞߎߘߎ߲
-          school:
-          - ߞߊ߬ߙߊ߲߬ߕߊ
-          - ߖߊ߯ߓߘߊ
+          school: ߞߊ߬ߙߊ߲߬ߕߊ
+          university: ߖߊ߯ߓߘߊ
           station: ߣߍ߰ߛߌߟߊ ߟߐ߬ߘߊ߮
           construction: ߛߌߟߊ ߡߍ߲ ߟߊ ߦߴߌ ߘߐ߫
           bicycle_shop: ߣߍ߰ߛߏ߬ ߝߎ߲ߞߎ߲
index 6d2b120acd270f4889bcb08f6d9eb62aab7ac0ad..d1ff013c15a4386f281f836f49f97ea69e32ae9d 100644 (file)
@@ -21,7 +21,7 @@ oc:
       prompt: Seleccionatz un fichier
     submit:
       diary_comment:
-        create: Sauvar
+        create: Comentari
       diary_entry:
         create: Publicar
         update: Actualizar
@@ -103,6 +103,7 @@ oc:
       diary_entry:
         user: Utilizaire
         title: Subjècte
+        body: Còrs
         latitude: Latitud
         longitude: Longitud
         language_code: Lenga
@@ -219,9 +220,9 @@ oc:
   auth:
     providers:
       none: Ges
-      openid: OpenID
       google: Google
       facebook: Facebook
+      microsoft: Microsoft
       github: GitHub
       wikipedia: Wikipèdia
   api:
@@ -237,6 +238,7 @@ oc:
         reopened_at_by_html: Reactivat fa %{when} per %{user}
       rss:
         title: Nòtas d'OpenStreetMap
+        description_all: Una lista de nòtas denonciadas, comentadas o barradas
         description_area: Una lista de nòtas, reportadas, comentadas o serradas dins
           vòstra zòna [(%{min_lat}|%{min_lon}) -- (%{max_lat}|%{max_lon})]
         description_item: Un fiu rss per la nòta %{id}
@@ -271,6 +273,8 @@ oc:
         retain_changeset_discussions: Lei discussions sus lei cambiaments, se n'i
           a, se conservaràn.
         retain_email: L'adreiça e-mail sarà conservada.
+        recent_editing_html: Coma avètz recentament modificat vòstre compte se pòt
+          pas suprimir per ara. La supression serà possibla en %{time}.
         confirm_delete: Siatz segur ?
         cancel: Anullar
   accounts:
@@ -336,12 +340,8 @@ oc:
       way_paginated: Linhas (%{x} a %{y} sus %{count})
       relation: Relacions (%{count})
       relation_paginated: Relacions (%{x} a %{y} sus %{count})
-      comment: Comentaris (%{count})
       changesetxml: Grop de modificacions XML
       osmchangexml: osmChange XML
-      feed:
-        title: Grop de modificacions %{id}
-        title_comment: Grop de modificacions %{id} – %{comment}
       join_discussion: Se connectar per rejónher la discussion
       discussion: Discussion
       still_open: Ensemble de modificacions totjorn dobèrt — la discussion se dobrirà
@@ -450,6 +450,9 @@ oc:
       no_more_area: Ges d'autre grop de modificacions dins aquesta zòna.
       no_more_user: Ges d'autre grop de modificacions per aqueste utilizaire.
       load_more: Cargar mai
+      feed:
+        title: Grop de modificacions %{id}
+        title_comment: Grop de modificacions %{id} – %{comment}
     timeout:
       sorry: O planhèm, la lista deis gropes de modificacions qu'avètz demandada met
         tròp de temps per èsser recuperada.
@@ -471,6 +474,7 @@ oc:
     contact:
       km away: '%{count} km'
       m away: distant de %{count} m
+      latest_edit_html: 'Darrièra modificacion %{ago} :'
     popup:
       your location: Vòstre emplaçament
       nearby mapper: Mapaire dins los environs
@@ -1246,7 +1250,7 @@ oc:
           hardware: Quicalhariá
           health_food: Botiga d'alimentacion naturala
           hearing_aids: Aparelhs auditius
-          herbalist: Erboristeria
+          herbalist: Erbolariá
           hifi: Botiga Hi-Fi
           houseware: Venda d’articles per l'ostau
           ice_cream: Glacier
@@ -1395,9 +1399,9 @@ oc:
         zero: Ges de rapòrt
         one: 1 rapport
         other: '%{count} rapòrts'
-      report_created_at: Raportat per premier còp lo %{datetime}
-      last_resolved_at: Reglat per darrier còp lo %{datetime}
-      last_updated_at: Actualizat per darrier còp lo %{datetime} per %{displayname}
+      report_created_at_html: Raportat per premier còp lo %{datetime}
+      last_resolved_at_html: Reglat per darrier còp lo %{datetime}
+      last_updated_at_html: Actualizat per darrier còp lo %{datetime} per %{displayname}
       resolve: Reglar
       ignore: Ignorar
       reopen: Tornar dobrir
@@ -1661,8 +1665,6 @@ oc:
   messages:
     inbox:
       title: Bóstia de recepcion
-      my_inbox: Ma bóstia de recepcion
-      my_outbox: Mon mandador
       messages: Avètz %{new_messages} e %{old_messages}
       new_messages:
         one: '%{count} messatge novèl'
@@ -1670,12 +1672,14 @@ oc:
       old_messages:
         one: '%{count} ancian messatge'
         other: '%{count} ancians messatges'
-      from: De
-      subject: Subjècte
-      date: Data
       no_messages_yet_html: Actualament, avètz pas cap de messatge. Perqué entratz
         pas en contacte amb qualques %{people_mapping_nearby_link} ?
       people_mapping_nearby: personas pròcha de vos
+    messages_table:
+      from: De
+      to: A
+      subject: Subjècte
+      date: Data
     message_summary:
       unread_button: Marcar coma pas legit
       read_button: Marcar coma legit
@@ -1695,14 +1699,9 @@ oc:
       body: O planhèm, i a pas cap de messatge amb aqueste identificant.
     outbox:
       title: Bóstia de mandadís
-      my_inbox: Mon recebedor
-      my_outbox: Mon mandador
       messages:
         one: Avètz %{count} messatge mandat
         other: Avètz %{count} messatges mandats
-      to: A
-      subject: Subjècte
-      date: Data
       no_sent_messages_html: Avètz pas encara mandat cap de messatge. Perqué entrar
         pas en contacte amb qualques %{people_mapping_nearby_link} ?
       people_mapping_nearby: personas pròcha de vos
@@ -1721,26 +1720,31 @@ oc:
         amb l'identificant corrècte per lo poder legir.
     sent_message_summary:
       destroy_button: Suprimir
+    heading:
+      my_inbox: Ma bóstia de recepcion
+      my_outbox: Mon mandador
     mark:
       as_read: Messatge marcat coma legit
       as_unread: Messatge marcat coma pas legit
     destroy:
       destroyed: Messatge suprimit
   passwords:
-    lost_password:
+    new:
       title: Senhal perdut
       heading: Avètz perdut vòstre senhal ?
       email address: 'Adreça de corrièr electronic :'
       new password button: Mandar un senhal novèl
+    create:
       notice email on way: Un e-mail vos es estat mandat per reïnicializar vòstre
         senhal.
       notice email cannot find: Adreça email introbabla, o planhèm.
-    reset_password:
+    edit:
       title: Reïnicializar lo senhal
       heading: Reïnicializar lo senhal de %{user}
       reset: Reïnicializar lo senhal
-      flash changed: Vòstre senhal es estat modificat.
       flash token bad: Avètz pas trobat aqueste geton, avètz verificat l'URL ?
+    update:
+      flash changed: Vòstre senhal es estat modificat.
   preferences:
     show:
       title: Preferéncias
@@ -1786,7 +1790,6 @@ oc:
       heading: Connexion
       email or username: 'Adreça e-mail o nom d''utilizaire :'
       password: 'Senhal :'
-      openid_html: '%{logo} OpenID :'
       remember: Se remembrar de ieu
       lost password link: Avètz perdut vòstre senhal ?
       login_button: Se connectar
@@ -1902,12 +1905,7 @@ oc:
       id_not_configured: iD es pas estat configurat
     export:
       title: Exportar
-      area_to_export: Zòna d'exportar
       manually_select: Seleccionar manualament una zòna diferenta
-      format_to_export: Format d'exportar
-      osm_xml_data: Donadas XML d'OpenStreetMap
-      map_image: Imatge de mapa (aficha un calc normal)
-      embeddable_html: HTML incorporable.
       licence: Licéncia
       too_large:
         advice: 'Se l’expòrt çaisús fracassa, envisatjatz l’utilizacion d’una de las
@@ -1930,17 +1928,6 @@ oc:
         other:
           title: Autras fonts
           description: Fonts suplementàrias listadas dins lo wiki d'OpenStreetMap
-      options: Opcions
-      format: Format
-      scale: Escala
-      max: max
-      image_size: Talha de l'imatge
-      zoom: Zoom
-      add_marker: Apondre un marcador a la mapa
-      latitude: 'Lat :'
-      longitude: 'Lon :'
-      output: Sortida
-      paste_html: Pegatz lo còdi HTML per incorporar dins un site web.
       export_button: Exportar
     fixthemap:
       title: Senhalar un problèma / Corregir la mapa
@@ -1963,16 +1950,12 @@ oc:
         url: https://wiki.openstreetmap.org/wiki/FR:Guide_du_d%C3%A9butant
         title: Guida per debutants
         description: Guida pels debutants mantengut per la comunautat.
-      help:
-        title: 'Fòrum d’ajuda : help.openstreetmap.org'
-        description: Pausar una question o cercar de respònsas sus lo site questions-e-respònsas
-          d'OSM.
+      community:
+        title: Comunautat
       mailing_lists:
         title: Listas de difusion
         description: Pausar una question o discutir de questions interessantas sus
           un larg ventalh de tematicas o de listas de difusion regionalas.
-      community:
-        title: Comunautat
       irc:
         title: IRC
         description: Discussion interactiva dins de fòrça lengas diferentas e sus
@@ -2020,35 +2003,24 @@ oc:
           footway: Via pietonièra
           rail: Via ferrada
           subway: Linha de mètro
-          tram:
-          - Pichona via ferrada
-          - tram
-          cable:
-          - Teleferic
-          - telesèti
-          runway:
-          - Pista d'aeropòrt
-          - via de circulacion d'aeropòrt
-          apron:
-          - Estacionament d'avions
-          - terminal
+          cable_car: Teleferic
+          chair_lift: telesèti
+          runway: Pista d'aeropòrt
+          taxiway: via de circulacion d'aeropòrt
+          apron: Estacionament d'avions
           admin: Limit administratiu
           forest: Sèuva
           wood: Bòsc
           golf: Percors de gòlf
           park: Pargue
+          common: Espaci comun
           resident: Zòna residenciala
-          common:
-          - Espaci comun
-          - prada
-          - Jardin
           retail: Zòna de comèrci
           industrial: Zòna industriala
           commercial: Zòna terciària
           heathland: Landa
-          lake:
-          - Lac
-          - Sèrva
+          lake: Lac
+          reservoir: Sèrva
           farm: Zòna agricòla
           brownfield: Zòna rasada
           cemetery: Cementèri
@@ -2057,14 +2029,12 @@ oc:
           centre: Centre esportiu
           reserve: Resèrva naturala
           military: Zòna militara
-          school:
-          - Escòla
-          - universitat
+          school: Escòla
+          university: universitat
           building: Bastissa significativa
           station: Gara ferroviària
-          summit:
-          - Som
-          - pic
+          summit: Som
+          peak: pic
           tunnel: Bòrd en puntilhats = tunèl
           bridge: Bòrd negre = pont
           private: Accès privat
@@ -2313,7 +2283,6 @@ oc:
       ct status: 'Condicions del contributor :'
       ct undecided: Pas decidit
       ct declined: Refusat
-      latest edit: 'Darrièra modificacion %{ago} :'
       email address: 'Adreça de corrièr electronic :'
       created from: 'Creat dempuèi :'
       status: 'Estatut :'
@@ -2407,8 +2376,9 @@ oc:
     revoke:
       title: Revòca un blocatge sus %{block_on}
       heading_html: Revòca un blocatge sus %{block_on} per %{block_by}
-      time_future: Aqueste blocatge s'acabarà dins %{time}.
-      past: Aqueste blocatge s'es acabat i a %{time} e pòt pas èsser revocat ara.
+      time_future_html: Aqueste blocatge s'acabarà dins %{time}.
+      past_html: Aqueste blocatge s'es acabat i a %{time} e pòt pas èsser revocat
+        ara.
       confirm: Sètz segur que volètz revocar aqueste blocatge ?
       revoke: Revocar !
       flash: Aqueste blocatge es estat revocat.
index 6d71349c586fb0cf719fbbe52816107847ad0cab..de583cce945b9e48b583172a7425609f34e441eb 100644 (file)
@@ -171,11 +171,7 @@ pa:
     changeset:
       title: 'ਤਬਦੀਲੀ ਲੜੀ: %{id}'
       belongs_to: ਲੇਖਕ
-      comment: ਟਿੱਪਣੀਆਂ (%{count})
       changesetxml: ਤਬਦੀਲੀ ਲੜੀ XML
-      feed:
-        title: ਤਬਦੀਲੀ ਲੜੀ %{id}
-        title_comment: ਤਬਦੀਲੀ ਲੜੀ %{id} - %{comment}
       discussion: ਚਰਚਾ
     relation:
       members: ਜੀਅ
@@ -227,10 +223,14 @@ pa:
     index:
       title: ਤਬਦੀਲੀਆਂ
       load_more: ਹੋਰ ਲੋਡ ਕਰੋ
+      feed:
+        title: ਤਬਦੀਲੀ ਲੜੀ %{id}
+        title_comment: ਤਬਦੀਲੀ ਲੜੀ %{id} - %{comment}
   dashboards:
     contact:
       km away: '%{count}ਕਿ.ਮੀ. ਪਰ੍ਹਾਂ'
       m away: '%{count}ਮੀਟਰ ਪਰ੍ਹਾਂ'
+      latest_edit_html: 'ਆਖ਼ਰੀ ਸੋਧ %{ago}:'
     popup:
       your location: ਤੁਹਾਡੀ ਸਥਿਤੀ
       friend: ਦੋਸਤ
@@ -776,8 +776,9 @@ pa:
   messages:
     inbox:
       title: ਇਨਬਾਕਸ
-      my_inbox: ਮੇਰਾ ਇਨਬਾਕਸ
+    messages_table:
       from: ਵੱਲੋਂ
+      to: ਵੱਲ
       subject: ਵਿਸ਼ਾ
       date: ਮਿਤੀ
     message_summary:
@@ -792,9 +793,6 @@ pa:
       heading: ਅਜਿਹਾ ਕੋਈ ਸੁਨੇਹਾ ਨਹੀਂ
     outbox:
       title: ਆਊਟਬਾਕਸ
-      to: ਵੱਲ
-      subject: ਵਿਸ਼ਾ
-      date: ਮਿਤੀ
     show:
       title: ਸੁਨੇਹਾ ਪੜ੍ਹੋ
       reply_button: ਜੁਆਬ
@@ -802,17 +800,20 @@ pa:
       back: ਪਿੱਛੇ
     sent_message_summary:
       destroy_button: ਮਿਟਾਉ
+    heading:
+      my_inbox: ਮੇਰਾ ਇਨਬਾਕਸ
     destroy:
       destroyed: ਸੁਨੇਹਾ ਮਿਟਾਇਆ ਗਿਆ
   passwords:
-    lost_password:
+    new:
       title: ਪਛਾਣ ਸ਼ਬਦ ਗੁੰਮ ਗਿਆ
       heading: ਪਛਾਣ ਸ਼ਬਦ ਭੁੱਲ ਗਿਆ?
       email address: 'ਈਮੇਲ ਪਤਾ:'
       new password button: ਪਛਾਣ ਸ਼ਬਦ ਮੁੜ-ਸੈੱਟ ਕਰੋ
-    reset_password:
+    edit:
       title: ਪਛਾਣ ਸ਼ਬਦ ਮੁੜ-ਸੈੱਟ ਕਰੋ
       reset: ਪਛਾਣ ਸ਼ਬਦ ਮੁੜ-ਸੈੱਟ ਕਰੋ
+    update:
       flash changed: ਤੁਹਾਡਾ ਪਛਾਣ ਸ਼ਬਦ ਬਦਲਿਆ ਜਾ ਚੁੱਕਾ ਹੈ।
   profiles:
     edit:
@@ -868,23 +869,11 @@ pa:
       anon_edits_link_text: ਪਤਾ ਕਰੋ ਕਿ ਮਾਮਲਾ ਇਸ ਤਰ੍ਹਾਂ ਕਿਉਂ ਹੈ।
     export:
       title: ਬਰਾਮਦ
-      area_to_export: ਬਰਾਮਦ ਵਾਸਤੇ ਇਲਾਕਾ
       manually_select: ਆਪਣੇ ਆਪ ਇੱਕ ਵੱਖਰਾ ਖੇਤਰ ਚੁਣੋ
-      format_to_export: ਬਰਾਮਦ ਵਾਸਤੇ ਰੂਪ
       licence: ਲਾਇਸੰਸ
       too_large:
         other:
           title: ਹੋਰ ਸਰੋਤ
-      options: ਚੋਣਾਂ
-      format: ਰੂਪ-ਰੇਖਾ
-      scale: ਪੈਮਾਨਾ
-      max: ਵੱਧ ਤੋਂ ਵੱਧ
-      image_size: ਤਸਵੀਰ ਦਾ ਅਕਾਰ
-      zoom: ਜ਼ੂਮ ਕਰੋ
-      add_marker: ਨਕਸ਼ੇ 'ਤੇ ਕੋਈ ਨਿਸ਼ਾਨਦੇਹੀ ਜੋੜੋ
-      latitude: 'ਅਕਸ਼ਾਂਸ਼:'
-      longitude: 'ਰੇਖਾਂਸ਼:'
-      output: ਆਊਟਪੁਟ
       export_button: ਬਰਾਮਦ
     fixthemap:
       title: ਕਿਸੇ ਔਕੜ ਦੀ ਇਤਲਾਹ ਦਿਉ / ਨਕਸ਼ਾ ਸਹੀ ਕਰੋ
@@ -901,8 +890,6 @@ pa:
         title: ਓ.ਐੱਸ.ਐੱਮ. 'ਤੇ ਜੀ ਆਇਆਂ ਨੂੰ
       beginners_guide:
         title: ਸ਼ੁਰੂਆਤੀ ਗਾਈਡ
-      help:
-        title: help.openstreetmap.org
       irc:
         title: ਆਈ.ਆਰ.ਸੀ
       wiki:
@@ -932,47 +919,35 @@ pa:
           footway: ਪੈਦਲ ਰਾਹ
           rail: ਰੇਲਵੇ
           subway: ਸਬ-ਵੇਅ
-          tram:
-          - ਹਲਕੀ ਰੇਲ
-          - ਟਰਾਮ
-          cable:
-          - ਕੇਬਲ ਕਾਰ
-          - ਕੁਰਸੀ ਲਿਫ਼ਟ
-          runway:
-          - ਹਵਾਈ ਅੱਡੇ ਦੀ ਉਡਾਣ ਪੱਟੀ
-          - ਟੈਕਸੀਵੇਅ
-          apron:
-          - ਹਵਾਈ ਅੱਡੇ ਦਾ ਐਪਰਨ
-          - ਟਰਮੀਨਲ
+          cable_car: ਕੇਬਲ ਕਾਰ
+          chair_lift: ਕੁਰਸੀ ਲਿਫ਼ਟ
+          runway: ਹਵਾਈ ਅੱਡੇ ਦੀ ਉਡਾਣ ਪੱਟੀ
+          taxiway: ਟੈਕਸੀਵੇਅ
+          apron: ਹਵਾਈ ਅੱਡੇ ਦਾ ਐਪਰਨ
           admin: ਪ੍ਰਸ਼ਾਸਕੀ ਸਰਹੱਦ
           forest: ਜੰਗਲ
           wood: ਜੰਗਲ
           golf: ਗੋਲਫ਼ ਮੈਦਾਨ
           park: ਪਾਰਕ
+          common: ਸ਼ਾਮਲਾਟ
           resident: ਰਿਹਾਇਸ਼ੀ ਇਲਾਕਾ
-          common:
-          - ਸ਼ਾਮਲਾਟ
-          - ਚਰਗਾਹ
           retail: ਪਰਚੂਨ ਖੇਤਰ
           industrial: ਉਦਯੋਗਿਕ ਖੇਤਰ
           commercial: ਵਪਾਰਕ ਖੇਤਰ
-          lake:
-          - ਝੀਲ
-          - ਕੁੰਡ
+          lake: ਝੀਲ
+          reservoir: ਕੁੰਡ
           farm: ਖੇਤ
           cemetery: ਸ਼ਮਸ਼ਾਨ
           pitch: ਖੇਡ ਦੀ ਪਿੱਚ
           centre: ਖੇਡ ਕੇਂਦਰ
           reserve: ਕੁਦਰਤੀ ਰੱਖ
           military: ਫ਼ੌਜੀ ਇਲਾਕਾ
-          school:
-          - ਸਕੂਲ
-          - ਯੂਨੀਵਰਸਿਟੀ
+          school: ਸਕੂਲ
+          university: ਯੂਨੀਵਰਸਿਟੀ
           building: ਮਹੱਤਵਪੂਰਨ ਇਮਾਰਤ
           station: ਰੇਲਵੇ ਸਟੇਸ਼ਨ
-          summit:
-          - ਸਿਖਰ
-          - ਚੋਟੀ
+          summit: ਸਿਖਰ
+          peak: ਚੋਟੀ
           construction: ਉਸਾਰੀ ਹੇਠ ਸੜਕਾਂ
     welcome:
       title: ਜੀ ਆਇਆਂ ਨੂੰ!
@@ -1083,7 +1058,6 @@ pa:
       ct status: 'ਯੋਗਦਾਨੀ ਦੀਆਂ ਸ਼ਰਤਾਂ:'
       ct undecided: ਦੁਚਿੱਤੀ 'ਚ
       ct declined: ਨਕਾਰੀ
-      latest edit: 'ਆਖ਼ਰੀ ਸੋਧ %{ago}:'
       email address: 'ਈਮੇਲ ਪਤਾ:'
       created from: 'ਕਿੱਥੋਂ ਉਸਾਰਿਆ:'
       status: 'ਦਰਜਾ:'
index f32c4267cb2ad01ef8cfbe0623c2ece925c6c100..9c36ded2eb4a2b9ffaa42d8dda0b4de1b5e422f5 100644 (file)
@@ -21,6 +21,7 @@
 # Author: Deejay1
 # Author: FunPL
 # Author: GlutPaprykarz
+# Author: Iketsi
 # Author: Ireun
 # Author: Kaligula
 # Author: Kastanoto
@@ -104,6 +105,11 @@ pl:
       messages:
         invalid_email_address: nie wygląda na poprawny adres e-mail
         email_address_not_routable: nie jest routowalny
+        display_name_is_user_n: nie może mieć wartości user_n, chyba że n jest Twoim
+          identyfikatorem użytkownika
+      models:
+        user_mute:
+          is_already_muted: jest już wyciszony
     models:
       acl: Lista kontroli dostępu
       changeset: Zestaw zmian
@@ -288,8 +294,6 @@ pl:
         few: '%{count} lata temu'
         many: '%{count} lat temu'
         other: '%{count} roku temu'
-  printable_name:
-    with_version: '%{id}, wersja %{version}'
   editor:
     default: edytorze domyślnym (obecnie %{name})
     id:
@@ -301,7 +305,6 @@ pl:
   auth:
     providers:
       none: Brak
-      openid: OpenID
       google: Google
       facebook: Facebook
       microsoft: Microsoft
@@ -354,6 +357,8 @@ pl:
         retain_changeset_discussions: Twoje ewentualne komentarze pod zestawami zmian
           zostaną zachowane.
         retain_email: Twój adres e-mail zostanie zachowany.
+        recent_editing_html: Ponieważ niedawno edytowałeś, Twoje konto nie może zostać
+          obecnie usunięte. Usunięcie będzie możliwe za %{time}.
         confirm_delete: Na pewno?
         cancel: Anuluj
   accounts:
@@ -437,14 +442,10 @@ pl:
       way_paginated: Linie (%{x}-%{y} z %{count})
       relation: Relacje (%{count})
       relation_paginated: Relacje (%{x}-%{y} z %{count})
-      comment: Komentarze (%{count})
       hidden_comment_by_html: Ukryty komentarz od użytkownika %{user} %{time_ago}
       comment_by_html: Komentarz od %{user} %{time_ago}
       changesetxml: XML w formacie zestawu zmian
       osmchangexml: XML w formacie osmChange
-      feed:
-        title: Zestaw zmian %{id}
-        title_comment: Zestaw zmian %{id} - %{comment}
       join_discussion: Zaloguj się, aby dołączyć do dyskusji
       discussion: Dyskusja
       still_open: Zestaw zmian jest wciąż otwarty – dyskusja będzie możliwa, gdy zostanie
@@ -558,6 +559,9 @@ pl:
       no_more_area: Brak zestawów zmian na tym obszarze.
       no_more_user: Brak zestawów zmian tego użytkownika.
       load_more: Wczytaj więcej
+      feed:
+        title: Zestaw zmian %{id}
+        title_comment: Zestaw zmian %{id} - %{comment}
     timeout:
       sorry: Niestety, pobieranie listy żądanych zestawów zmian trwało zbyt długo.
   changeset_comments:
@@ -576,6 +580,7 @@ pl:
     contact:
       km away: '%{count} km stąd'
       m away: '%{count} m stąd'
+      latest_edit_html: 'Ostatnia zmiana %{ago}:'
     popup:
       your location: Twoje położenie
       nearby mapper: Mapujący z okolicy
@@ -675,6 +680,10 @@ pl:
       newer_comments: Nowsze komentarze
       older_comments: Starsze komentarze
   doorkeeper:
+    errors:
+      messages:
+        account_selection_required: Serwer autoryzacji wymaga wybrania konta użytkownika
+          końcowego
     flash:
       applications:
         create:
@@ -1538,9 +1547,10 @@ pl:
         many: '%{count} zgłoszeń'
         other: '%{count} zgłoszeń'
       no_reports: Brak zgłoszeń
-      report_created_at: Pierwsze zgłoszenie z %{datetime}
-      last_resolved_at: Ostatnia reakcja z %{datetime}
-      last_updated_at: Ostatnio zaktualizowane %{datetime} przez użytkownika %{displayname}
+      report_created_at_html: Pierwsze zgłoszenie z %{datetime}
+      last_resolved_at_html: Ostatnia reakcja z %{datetime}
+      last_updated_at_html: Ostatnio zaktualizowane %{datetime} przez użytkownika
+        %{displayname}
       resolve: Rozwiąż
       ignore: Zignoruj
       reopen: Otwórz ponownie
@@ -1817,8 +1827,6 @@ pl:
   messages:
     inbox:
       title: Wiadomości odebrane
-      my_inbox: wiadomości odebrane
-      my_outbox: wiadomości wysłane
       messages: Masz %{new_messages} i %{old_messages}
       new_messages:
         few: '%{count} nowe wiadomości'
@@ -1830,12 +1838,15 @@ pl:
         many: '%{count} starych wiadomości'
         one: '%{count} starą wiadomość'
         other: '%{count} starych wiadomości'
-      from: Od
-      subject: Temat
-      date: Data
       no_messages_yet_html: Nie masz jeszcze wiadomości. Może skontaktujesz się z
         %{people_mapping_nearby_link}?
       people_mapping_nearby: użytkownikami z twojej okolicy
+    messages_table:
+      from: Od
+      to: Do
+      subject: Temat
+      date: Data
+      actions: Operacje
     message_summary:
       unread_button: Oznacz jako nieprzeczytaną
       read_button: Oznacz jako przeczytaną
@@ -1855,15 +1866,11 @@ pl:
       body: Niestety nie ma wiadomości o tym identyfikatorze.
     outbox:
       title: Wiadomości wysłane
-      my_inbox: wiadomości odebrane
-      my_outbox: wiadomości wysłane
+      actions: Operacje
       messages:
         one: '%{count} wysłana wiadomość'
         few: '%{count} wysłane wiadomości'
         other: '%{count} wysłanych wiadomości'
-      to: Do
-      subject: Temat
-      date: Nadano
       no_sent_messages_html: Nie masz jeszcze wysłanych wiadomości. Może skontaktujesz
         się z %{people_mapping_nearby_link}?
       people_mapping_nearby: użytkownikami z twojej okolicy
@@ -1882,28 +1889,33 @@ pl:
         właściwy użytkownik, aby ją przeczytać.
     sent_message_summary:
       destroy_button: Usuń
+    heading:
+      my_inbox: wiadomości odebrane
+      my_outbox: wiadomości wysłane
     mark:
       as_read: Wiadomość została oznaczona jako przeczytana
       as_unread: Wiadomość została oznaczona jako nieprzeczytana
     destroy:
       destroyed: Wiadomość usunięta
   passwords:
-    lost_password:
+    new:
       title: Zgubione hasło
       heading: Zapomniałeś hasła?
-      email address: 'Adres e-mail:'
+      email address: Adres e-mail
       new password button: Wyczyść hasło
       help_text: Proszę wprowadzić adres e-mail używany do logowania. Zostanie wysłany
         na niego odnośnik służący do wyczyszczenia hasła.
+    create:
       notice email on way: Przykro nam z powodu utraty hasła. Wiadomość, która umożliwi
         jego wyczyszczenie, jest już w drodze.
       notice email cannot find: Niestety, nie odnaleziono tego adresu e-mail.
-    reset_password:
+    edit:
       title: Wyczyść hasło
       heading: Czyszczenie hasła użytkownika %{user}
       reset: Wyczyść hasło
-      flash changed: Hasło zostało zmienione.
       flash token bad: Nie znaleziono tokenu, sprawdź URL
+    update:
+      flash changed: Hasło zostało zmienione.
   preferences:
     show:
       title: Preferencje
@@ -1948,9 +1960,8 @@ pl:
     new:
       title: Logowanie
       heading: Logowanie
-      email or username: 'Adres e-mail lub nazwa użytkownika:'
-      password: 'Hasło:'
-      openid_html: '%{logo} OpenID:'
+      email or username: Adres e-mail lub nazwa użytkownika
+      password: Hasło
       remember: Zapamiętaj dane uwierzytelniające
       lost password link: Zapomniałeś hasła?
       login_button: Zaloguj się
@@ -2007,6 +2018,7 @@ pl:
       image: Obraz
       alt: Tekst alternatywny
       url: Adres URL
+      codeblock: Blok kodu
     richtext_field:
       edit: Edytuj
       preview: Podgląd
@@ -2027,6 +2039,7 @@ pl:
       community_driven_community_blogs: blogi społecznościowe
       community_driven_osm_foundation: Fundacja OSM
       open_data_title: Otwarte dane
+      open_data_open_data: otwarte dane
       open_data_copyright_license: Strona dotycząca praw autorskich i licencji
       legal_title: Pytania prawne
       legal_1_1_openstreetmap_foundation: Fundacja OpenStreetMap
@@ -2118,6 +2131,7 @@ pl:
           (&copy; Department of Natural Resources Canada), CanVec (&copy; Department
           of Natural Resources Canada) i StatCan (Geography Division, Statistics Canada).'
         contributors_ca_canada: Kanada
+        contributors_cz_czechia: Czechy
         contributors_fi_credit_html: '%{finland}: Zawiera dane z National Land Survey
           of Finland''s Topographic Database i innych zbiorów danych, na podstawie
           %{nlsfi_license_link}.'
@@ -2135,6 +2149,7 @@ pl:
         contributors_nz_linz_data_service: LINZ Data Service
         contributors_nz_cc_by: CC BY 4.0
         contributors_rs_serbia: Serbia
+        contributors_rs_open_data_portal: Krajowy Portal Otwartych Danych
         contributors_si_credit_html: '%{slovenia}: Zawiera dane %{gu_link} oraz %{mkgp_link}
           (informacja publiczna Słowenii).'
         contributors_si_slovenia: Słowenia
@@ -2197,12 +2212,7 @@ pl:
         niezbędne do tej funkcji.
     export:
       title: Eksportuj
-      area_to_export: Obszar do wyeksportowania
       manually_select: Ręcznie zaznacz inny obszar
-      format_to_export: Format eksportu
-      osm_xml_data: Dane XML OpenStreetMap
-      map_image: Obraz mapy (standardowa warstwa)
-      embeddable_html: Kod HTML do osadzenia
       licence: Licencja
       licence_details_html: Dane OpenStreetMap są objęte licencją %{odbl_link} (ODbL).
       odbl: Open Data Commons Open Database License
@@ -2226,17 +2236,6 @@ pl:
         other:
           title: Inne zasoby
           description: Dodatkowe zasoby wymienione w OpenStreetMap Wiki
-      options: Opcje
-      format: Format
-      scale: Skala
-      max: maks
-      image_size: Rozmiar obrazu
-      zoom: Przybliżenie
-      add_marker: Dodaj znacznik na mapie
-      latitude: 'Szer:'
-      longitude: 'Dł:'
-      output: Wynik
-      paste_html: Wklej podany kod HTML do swojej strony
       export_button: Wyeksportuj
     fixthemap:
       title: Zgłoś błąd / Popraw mapę
@@ -2266,17 +2265,14 @@ pl:
         url: https://wiki.openstreetmap.org/wiki/Pl:Przewodnik_dla_pocz%C4%85tkuj%C4%85cych
         title: Podręcznik dla początkujących
         description: Podręcznik dla początkujących tworzony przez społeczność.
-      help:
-        title: Strona Pomocy OpenStreetMap
-        description: Zadaj pytanie lub odszukaj odpowiedzi na stronie pytań i odpowiedzi
-          OpenStreetMap.
+      community:
+        title: Pomoc i forum społeczności
+        description: Wspólne miejsce, w którym można szukać pomocy i prowadzić rozmowy
+          na temat OpenStreetMap.
       mailing_lists:
         title: Listy dyskusyjne
         description: Zadaj pytanie lub przedyskutuj interesujący temat niezależnie
           od wybranego tematu lub lokalizacji.
-      community:
-        title: Forum (nowe)
-        description: Wspólne miejsce do rozmów na temat OpenStreetMap.
       irc:
         title: IRC
         description: Interaktywny czat w różnych językach i na różne tematy.
@@ -2295,6 +2291,8 @@ pl:
     potlatch:
       removed: Twój domyślny edytor OpenStreetMap to Potlatch. Ponieważ Adobe Flash
         Player został wycofany, Potlatch nie jest już dostępny w przeglądarce.
+      desktop_application_html: Nadal możesz używać Potlatch przez %{download_link}.
+      download: pobranie aplikacji komputerowej dla komputerów Mac i Windows
       change_preferences: Zmień swoje preferencje tutaj
     any_questions:
       title: Czy masz jakieś pytania?
@@ -2321,66 +2319,79 @@ pl:
           primary: Droga pierwszorzędna
           secondary: Droga drugorzędna
           unclassified: Droga czwartorzędna
+          pedestrian: Droga dla pieszych
           track: Droga polna lub leśna
           bridleway: Droga dla koni
           cycleway: Droga rowerowa
           cycleway_national: Droga rowerowa znaczenia państwowego
           cycleway_regional: Droga rowerowa znaczenia regionalnego
           cycleway_local: Droga rowerowa znaczenia lokalnego
+          cycleway_mtb: Górska trasa rowerowa
           footway: Droga dla pieszych
           rail: Tor kolejowy
+          train: Kolej
           subway: Metro
-          tram:
-          - Kolej miejska
-          - tramwaj
-          cable:
-          - Kolej linowa
-          - wyciąg krzesełkowy
-          runway:
-          - Pas startowy
-          - kołowania
-          apron:
-          - Płyta lotniska
-          - terminal
+          ferry: Prom
+          light_rail: Kolej miejska
+          tram: Tramwaj
+          trolleybus: Trolejbus
+          bus: Autobus
+          cable_car: Kolej linowa
+          chair_lift: Wyciąg krzesełkowy
+          runway: Pas startowy
+          taxiway: Droga kołowania
+          apron: Płyta lotniska
           admin: Granica
+          capital: Stolica
+          city: Miasto
+          orchard: Sad
+          vineyard: Winnica
           forest: Las
-          wood: Drzewa
+          wood: Drewno
+          farmland: Grunty rolne
+          grass: Trawnik
+          meadow: Łąka
+          sand: Piaski
           golf: Pole golfowe
           park: Park
+          common: Pole
+          built_up: Obszar zabudowany
           resident: Teren mieszkalny
-          common:
-          - Pole
-          - łąka
-          - ogród
           retail: Zabudowa handlowo-usługowa
           industrial: Teren przemysłowy
           commercial: Teren komercyjny
           heathland: Wrzosowisko
-          lake:
-          - Jezioro
-          - zbiornik
+          scrubland: Zarośla
+          lake: Jezioro
+          reservoir: Zbiornik
+          glacier: Lodowiec
+          reef: Rafa
+          wetland: Mokradła
           farm: Gospodarstwo rolne
           brownfield: Teren powyburzeniowy
           cemetery: Cmentarz
           allotments: Ogródki działkowe
           pitch: Boisko sportowe
           centre: Centrum sportowe
+          beach: Plaża
           reserve: Rezerwat przyrody
           military: Teren wojskowy
-          school:
-          - Szkoła
-          - uniwersytet
+          school: Szkoła
+          university: Uniwersytet
+          hospital: Szpital
           building: Ważny budynek
           station: Stacja kolejowa
-          summit:
-          - Góra
-          - szczyt
+          summit: Góra
+          peak: Szczyt
           tunnel: Kreskowany obrys – tunel
           bridge: Czarny obrys – most
           private: Dostęp za zezwoleniem
           destination: Dostęp tylko do punktu docelowego
           construction: Drogi w budowie
+          bus_stop: Przystanek autobusowy
+          stop: Stop
           bicycle_shop: Sklep rowerowy
+          bicycle_rental: Wypożyczalnia rowerów
           bicycle_parking: Parking dla rowerów
           toilets: Toalety
     welcome:
@@ -2410,6 +2421,7 @@ pl:
         imports: Import
         automated_edits: Zautomatyzowane edycje
       start_mapping: Rozpocznij mapowanie
+      continue_authorization: Kontynuuj autoryzację
       add_a_note:
         title: Nie masz czasu na edycję? Dodaj uwagę!
         para_1: Jeśli chcesz wprowadzić małą zmianę, ale nie masz czasu na rejestrację
@@ -2603,11 +2615,13 @@ pl:
       read_gpx: Odczytywanie ich prywatnych śladów GPS
       write_gpx: Przesyłanie śladów GPS
       write_notes: Modyfikowanie uwag
+      write_redactions: Redagowanie danych mapy
       read_email: Odczytywanie adresu e-mail użytkownika
       skip_authorization: Automatycznie akceptuj aplikację
   oauth_clients:
     new:
       title: Rejestrowanie nowej aplikacji
+      disabled: Rejestracja aplikacji OAuth 1 została wyłączona
     edit:
       title: Edycja aplikacji
     show:
@@ -2691,6 +2705,7 @@ pl:
       title: Moje upoważnione aplikacje
       application: Nazwa aplikacji
       permissions: Uprawnienia
+      last_authorized: Ostatnia autoryzacja
       no_applications_html: Nie upoważniłeś jeszcze żadnych aplikacji %{oauth2}.
     application:
       revoke: Odwołaj!
@@ -2773,6 +2788,8 @@ pl:
       my_dashboard: Mój panel
       blocks on me: Otrzymane blokady
       blocks by me: Nałożone blokady
+      create_mute: wycisz tego użytkownika
+      destroy_mute: odcisz tego użytkownika
       edit_profile: Edytuj profil
       send message: wyślij wiadomość
       diary: dziennik
@@ -2786,7 +2803,6 @@ pl:
       ct status: 'Warunki uczestnictwa:'
       ct undecided: niezdecydowane
       ct declined: odrzucone
-      latest edit: 'Ostatnia zmiana %{ago}:'
       email address: Adres e‐mail
       created from: 'Stworzony z:'
       status: 'Stan:'
@@ -2905,8 +2921,8 @@ pl:
     revoke:
       title: Odwoływanie blokady użytkownika %{block_on}
       heading_html: Odwoływanie blokady użytkownika %{block_on} nałożonej przez %{block_by}
-      time_future: Blokada zakończy się za %{time}.
-      past: Blokada zakończyła się %{time} i nie można jej już odwołać.
+      time_future_html: Blokada zakończy się za %{time}.
+      past_html: Blokada zakończyła się %{time} i nie można jej już odwołać.
       confirm: Czy na pewno chcesz odwołać tę blokadę?
       revoke: Odwołaj!
       flash: Blokada została odwołana.
@@ -2978,12 +2994,21 @@ pl:
       showing_page: Strona %{page}
       next: Następna »
       previous: « Poprzednia
+  user_mutes:
+    index:
+      table:
+        tbody:
+          unmute: Wyłącz wyciszenie
+          send_message: Wyślij wiadomość
+    create:
+      notice: Wyciszyłeś %{name}.
   notes:
     index:
-      title: Uwagi utworzone lub skomentowane przez %{user}
+      title: Uwagi użytkownika %{user}
       heading: Uwagi użytkownika %{user}
-      subheading_html: Uwagi utworzone lub skomentowane przez %{user}
-      subheading_commented: skomentował
+      subheading_html: Uwagi %{submitted} lub %{commented} przez %{user}
+      subheading_submitted: utworzone
+      subheading_commented: skomentowane
       no_notes: Brak uwag
       id: Identyfikator
       creator: Autor
@@ -3013,6 +3038,7 @@ pl:
       reactivate: Ponownie aktywuj
       comment_and_resolve: Skomentuj i rozwiąż
       comment: Dodaj komentarz
+      log_in_to_comment: Zaloguj się, żeby skomentować tę uwagę
       report_link_html: Jeśli ta uwaga zawiera wrażliwe informacje, które należy usunąć,
         możesz %{link}.
       other_problems_resolve: W przypadku wszystkich innych problemów z tą uwagą,
@@ -3076,12 +3102,10 @@ pl:
           other: Jesteś w promieniu %{count} stopy od tego punktu
       base:
         standard: Podstawowa
-        cyclosm: CyclOSM
         cycle_map: Rowerowa
         transport_map: Transportu publicznego
         tracestracktop_topo: Tracestrack Topo
         hot: Humanitarna
-        opnvkarte: ÖPNVKarte
       layers:
         header: Warstwy
         notes: Uwagi
@@ -3097,8 +3121,6 @@ pl:
       osm_france: OpenStreetMap France
       thunderforest_credit: Kafelki dzięki uprzejmości %{thunderforest_link}
       andy_allan: Andy'ego Allana
-      opnvkarte_credit: Kafelki dzięki uprzejmości %{memomaps_link}
-      memomaps: MeMoMaps
       hotosm_credit: 'Styl kafelków: %{hotosm_link}. Hosting: %{osm_france_link}'
       hotosm_name: Humanitarian OpenStreetMap Team
     site:
@@ -3110,6 +3132,7 @@ pl:
       map_data_zoom_in_tooltip: Przybliż mapę, aby zobaczyć jej dane
       queryfeature_tooltip: Pobierz i wyświetl obiekty
       queryfeature_disabled_tooltip: Przybliż mapę, aby obejrzeć dane obiektów
+      embed_html_disabled: Osadzanie HTML nie jest dostępne dla tej warstwy mapy
     changesets:
       show:
         comment: Komentarz
index d085b897b587bcbf5f90ea88a376c04cac57ab74..b429a70a18a6aebec660016e3ecb43261753cfac 100644 (file)
@@ -194,7 +194,6 @@ pnb:
         one: ایہہ اِکّ سال پہلاں
         other: ایہہ %{count} سالاں پہلاں
   printable_name:
-    with_version: ایہہ %{id}، ورژن نمبر %{version}
     with_name_html: '%{name} (نمبر %{id})'
   editor:
     default: مول (مَوجودہ %{name})
@@ -305,12 +304,8 @@ pnb:
       way_paginated: راہ (⁠%{count} وچ %{x} توں %{y}⁠)
       relation: سمبندھ (⁠%{count}⁠)
       relation_paginated: سمبندھ (⁠%{count} وچ %{x} توں %{y}⁠)
-      comment: ٹپݨیاں (⁠%{count}⁠)
       changesetxml: تبدیلیاں لئی سروت دی فائل
       osmchangexml: تبدیلیاں لئی سروت دی فائل فارماٹ
-      feed:
-        title: 'تبدیلیاں: %{id}'
-        title_comment: تبدیلیاں نمبر %{id} • %{comment}
       join_discussion: ایہہ گل بات جوڑن لئی تسیں لوگ‌این کر سکدیو
       discussion: گل بات
     node:
@@ -411,6 +406,9 @@ pnb:
       no_more_area: اِتھے تبدیلیاں ہور نہیں اے۔
       no_more_user: ورتنوالے دیاں تبدیلیاں ہور نہیں لبھیاں۔
       load_more: ہور لوڈ کرو
+      feed:
+        title: 'تبدیلیاں: %{id}'
+        title_comment: تبدیلیاں نمبر %{id} • %{comment}
     timeout:
       sorry: افسوس، تبدیلیاں دیاں لڑیاں نہیں لبھ سکیاں، ٹائم آؤٹ ہوگیا سی۔
   changeset_comments:
@@ -428,6 +426,7 @@ pnb:
     contact:
       km away: ایہہ %{count} کیلو میٹر پرھاں
       m away: ایہہ %{count} میٹر پرھاں
+      latest_edit_html: پچھلی سودھ (%{ago})
     popup:
       your location: تہاڈیاں ستھتی
       nearby mapper: نیڑے تیڑے دا نقشہ والا
@@ -1138,10 +1137,10 @@ pnb:
       reports:
         other: zeroرپورٹ نہیں
         one: اِکّ رپورٹ
-      report_created_at: '%{datetime} رپورٹ بھیجی سی۔'
-      last_resolved_at: '%{datetime} مسئلہ بند کیتا سی۔'
-      last_updated_at: '%{datetime} مسئلے تے «%{displayname}» نویں کاݨکاری پائی گئی
-        سی۔'
+      report_created_at_html: '%{datetime} رپورٹ بھیجی سی۔'
+      last_resolved_at_html: '%{datetime} مسئلہ بند کیتا سی۔'
+      last_updated_at_html: '%{datetime} مسئلے تے «%{displayname}» نویں کاݨکاری پائی
+        گئی سی۔'
       resolve: حل کڈھو
       ignore: نظر انداز کرو
       reopen: ولدا کھُلھو
@@ -1337,8 +1336,6 @@ pnb:
   messages:
     inbox:
       title: اینباکس
-      my_inbox: اینباکس
-      my_outbox: میرا آؤٹباکس
       messages: تہاڈے %{new_messages} تے %{old_messages} اے
       new_messages:
         one: '%{count} نویں سنیہا'
@@ -1346,12 +1343,14 @@ pnb:
       old_messages:
         one: '%{count} پراݨا سنیہا'
         other: '%{count} پراݨے سنیہے'
-      from: ولّوں
-      subject: وشا
-      date: تریخ
       no_messages_yet_html: حالاں کوئی سنیہے نہیں اے۔ %{people_mapping_nearby_link}
         ویکھ سکیو۔
       people_mapping_nearby: نیڑے تیڑے دے نقشے والے
+    messages_table:
+      from: ولّوں
+      to: ول
+      subject: وشا
+      date: تریخ
     message_summary:
       unread_button: اݨ پڑھا نشان لاؤ
       read_button: پڑھا نشان لاؤ
@@ -1368,14 +1367,9 @@ pnb:
       body: ایہہ سنیہا نہیں لبھیا۔
     outbox:
       title: آؤٹباکس
-      my_inbox: اینباکس
-      my_outbox: میرا آؤٹباکس
       messages:
         one: تہاڈے %{count} بھیجݨ سنیہا اے
         other: تہاڈے  %{count} بھیجݨ سنیہے اے
-      to: ول
-      subject: وشا
-      date: تریخ
       people_mapping_nearby: نیڑے تیڑے دے نقشے والے
     show:
       title: مُنیہا پڑھو
@@ -1385,25 +1379,30 @@ pnb:
       back: پچھے
     sent_message_summary:
       destroy_button: مٹاؤ
+    heading:
+      my_inbox: اینباکس
+      my_outbox: میرا آؤٹباکس
     mark:
       as_read: سنیہا پڑھا نشان لایا گیا
       as_unread: سنیہا اݨ پڑھا نشان لایا گیا
     destroy:
       destroyed: سُنیہا مٹائا گیا
   passwords:
-    lost_password:
+    new:
       title: پاس‌ورڈ گُم گیا
       heading: پچھاݨ شبد بھّل گیا؟
       email address: 'ای‌میل پتہ:'
       new password button: پاس‌ورڈ فیر بݨایو
       help_text: تہاڈے ای‌میل دا پتہ جو پاس‌ورڈ فیر بݨاؤݨ دی کڑی بھیج سکاں‌گی اے۔
+    create:
       notice email on way: اچھا، ای‌میل تے مدد دی کڑی بھیجاں‌گی اے
       notice email cannot find: افسوس، اوہ ای‌میل دا پتہ نہیں لبھ سکیا
-    reset_password:
+    edit:
       title: پاس‌ورڈ فیر بݨایو
       reset: پاس‌ورڈ فیر بݨایو
-      flash changed: تہاڈے پاس‌ورڈ تبدیلی کیتی گئی سی۔
       flash token bad: ٹوکن نہیں لبھیا، خبر کڑی دا پتہ ویکھیو؟
+    update:
+      flash changed: تہاڈے پاس‌ورڈ تبدیلی کیتی گئی سی۔
   preferences:
     show:
       title: ترجیحاں
@@ -1444,7 +1443,6 @@ pnb:
       heading: لوگ‌این کرو
       email or username: 'ای‌میل دا پتہ یا ورتنوالے دا ناں:'
       password: 'پاس‌ورڈ:'
-      openid_html: '%{logo} اوپن آئی‌ڈی:'
       remember: مینوں یاد رکھو
       lost password link: آپݨا پاس‌ورڈ گوا دتا؟
       login_button: لوگ‌این
@@ -1555,12 +1553,7 @@ pnb:
         ورتݨے چاہیدے۔
     export:
       title: برامد کرو
-      area_to_export: برامد واسطے علاقہ
       manually_select: آپݨے آپ اِکّ وکھرا کھیتر چݨو
-      format_to_export: برامد واسطے فارماٹ
-      osm_xml_data: اوپن سٹریٹ میپ ایکس ایم ایل ڈیٹا
-      map_image: نقشے دی تصویر (میعری)
-      embeddable_html: ایچ ٹی ایم ایل ایمبیڈ
       licence: لائیسنس
       too_large:
         advice: 'جے برامد نہیں سکدا، خبرے تسیں ایہہ ہور سروت ورت سکدے:'
@@ -1578,17 +1571,6 @@ pnb:
         other:
           title: ہور سروت
           description: وِکی توں ہور سروت
-      options: چوݨاں
-      format: فارمیٹ
-      scale: پیمانہ
-      max: ودھ توں ودھ
-      image_size: تصویر دا اکار
-      zoom: وڈے چھوٹے کیتے
-      add_marker: نقشے تے کوئی نشاندیہی پایو
-      latitude: اکشانش
-      longitude: لمبکار
-      output: آؤٹپُٹ
-      paste_html: ایمبیڈ کوڈ پیسٹ کریو
       export_button: برامد کرو
     fixthemap:
       title: کسے اوکڑ دی اطلاع دیو، نقشہ دُرُست کریو
@@ -1609,14 +1591,11 @@ pnb:
       beginners_guide:
         title: شُرواتی لئی کتاب
         description: شرواتی لئی ایہہ لوک کم کردے اے۔
-      help:
-        title: مدد گل بات
-        description: سوال کریو یا جواب لبھیو
-      mailing_lists:
-        title: میل دیاں لسٹاں
       community:
         title: حالاں فورم
         description: نقشے بارے گل بات لئی تھاں
+      mailing_lists:
+        title: میل دیاں لسٹاں
       irc:
         title: آئی آر سی
         description: کئی بولیاں تے کئی چیزاں بارے وچ گل بات۔
@@ -1656,35 +1635,24 @@ pnb:
           footway: فُت‌وے
           rail: ریلوے
           subway: سبوے
-          tram:
-          - ہلکی ریلوے
-          - ٹرام‌وے
-          cable:
-          - کیبل کار
-          - کُرسی لِفٹ
-          runway:
-          - ہوائی اڈے اُڈاݨ پٹی
-          - ٹیکسی‌وے
-          apron:
-          - ہوائی اڈے دا ایپرن
-          - ٹرمینل
+          cable_car: کیبل کار
+          chair_lift: کُرسی لِفٹ
+          runway: ہوائی اڈے اُڈاݨ پٹی
+          taxiway: ٹیکسی‌وے
+          apron: ہوائی اڈے دا ایپرن
           admin: پرشاسکی سرحد
           forest: رکھّ
           wood: جنگل
           golf: گولف مَیدان
           park: پارک
+          common: شاملاٹ
           resident: رہائشی کھیتر
-          common:
-          - شاملاٹ
-          - چرگاہ
-          - باغ
           retail: پرچون کھیتر
           industrial: سناتی کھیتر
           commercial: وپارک کھیتر
           heathland: ہیتھ
-          lake:
-          - جھیل
-          - کُنڈ
+          lake: جھیل
+          reservoir: کُنڈ
           farm: کھیت
           brownfield: براؤنفیلڈ
           cemetery: شمشان
@@ -1693,14 +1661,12 @@ pnb:
           centre: کھیڈ کیندر
           reserve: کُدرتی رکھّ
           military: فَوجی کھیتر
-          school:
-          - سکول
-          - یونیورستی
+          school: سکول
+          university: یونیورستی
           building: مہتوپورن عمارت
           station: ریلوے سٹیشن
-          summit:
-          - سکھر
-          - چوٹی
+          summit: سکھر
+          peak: چوٹی
           tunnel: سُرنگ (ڈیش لائیناں)
           bridge: پُل (کالیاں لائیناں)
           private: نِجی ورتوں
@@ -1933,7 +1899,6 @@ pnb:
       ct status: 'لیکھک قواعد:'
       ct undecided: دچتی وچ
       ct declined: نکاری
-      latest edit: پچھلی سودھ (%{ago})
       email address: 'ای‌میل پتہ:'
       created from: 'کتھوں اُساریا:'
       status: حالت
@@ -2103,7 +2068,6 @@ pnb:
         cycle_map: سائیکل نقشہ
         transport_map: ٹرینسپورٹ
         hot: لوک سیوی
-        opnvkarte: ٹرینسپورٹ (اوپن کارٹ)
       layers:
         header: نقشے دیاں تہیاں
         notes: نقشے دے نوٹ
index 1ef959f570bd0d8e639492aaeba8efae0830aff2..a118d65ed2cc5e7c2323ed58e7b4dec03843ab44 100644 (file)
@@ -310,22 +310,20 @@ ps:
     confirm_email:
       button: تاييد
   messages:
-    inbox:
+    messages_table:
       date: نېټه
     message_summary:
       reply_button: ځوابول
       destroy_button: ړنگول
     new:
       title: پيغام لېږل
-    outbox:
-      date: نېټه
     show:
       title: پيغام لوستل
       reply_button: ځواب
     sent_message_summary:
       destroy_button: ړنگول
   passwords:
-    lost_password:
+    new:
       heading: آيا پټنوم مو هېر شوی؟
       email address: 'برېښليک پته:'
   profiles:
@@ -358,8 +356,6 @@ ps:
       user_page_link: د کارن مخ
     export:
       licence: منښتليک
-      options: خوښنې
-      format: بڼه
     sidebar:
       search_results: د پلټنې پايلې
       close: تړل
@@ -372,15 +368,13 @@ ps:
         entry:
           forest: ځنگل
           park: پارک
-          lake:
-          - ډنډ
-          - زېرمتون
+          lake: ډنډ
+          reservoir: زېرمتون
           farm: کرونده
           cemetery: هديره
           military: پوځي سيمه
-          school:
-          - ښوونځی
-          - پوهنتون
+          school: ښوونځی
+          university: پوهنتون
   traces:
     new:
       visibility_help: دا څه مانا لري؟
index ffe0f4ff8cd85e2d07751fe5afbd554bdcdde50e..b7c94fe4acb12b14269590e15f5ffbe96f1d6242 100644 (file)
@@ -3,6 +3,7 @@
 # Export driver: phpyaml
 # Author: AntMadeira
 # Author: Athena in Wonderland
+# Author: Caiofernandes
 # Author: Crazymadlover
 # Author: Danieldegroot2
 # Author: Eduardo Addad de Oliveira
@@ -29,6 +30,7 @@
 # Author: Malafaya
 # Author: Mansil
 # Author: Mansil alfalb
+# Author: Matheusgomesms
 # Author: McDutchie
 # Author: MokaAkashiyaPT
 # Author: Nemo bis
@@ -79,6 +81,11 @@ pt-PT:
       messages:
         invalid_email_address: não parece ser um endereço de correio eletrónico válido
         email_address_not_routable: não é atingível
+        display_name_is_user_n: não pode ser user_n a não ser que n seja a tua id
+          de utilizador
+      models:
+        user_mute:
+          is_already_muted: já está silenciado
     models:
       acl: Aceder à lista de controlo
       changeset: Conjunto de alterações
@@ -249,7 +256,6 @@ pt-PT:
   auth:
     providers:
       none: Nenhuma
-      openid: OpenID
       google: Google
       facebook: Facebook
       microsoft: Microsoft
@@ -268,6 +274,7 @@ pt-PT:
         reopened_at_by_html: Reaberto %{when} por %{user}
       rss:
         title: Notas OpenStreetMap
+        description_all: Uma lista de notas denunciadas, comentadas ou fechadas.
         description_area: Lista de notas reportadas, comentadas ou resolvidas na tua
           área [(%{min_lat}|%{min_lon}) -- (%{max_lat}|%{max_lon})]
         description_item: Um feed RSS para a nota %{id} reportada
@@ -303,6 +310,8 @@ pt-PT:
         retain_changeset_discussions: Se existirem, as tuas discussões nos conjuntos
           de edições serão mantidas.
         retain_email: O teu endereço eletrónico será mantido.
+        recent_editing_html: Como você editou recentemente, sua conta não pode ser
+          excluída no momento. A exclusão será possível em %{time}.
         confirm_delete: Tens a certeza?
         cancel: Cancelar
   accounts:
@@ -384,14 +393,10 @@ pt-PT:
       way_paginated: Linhas (%{x}-%{y} de %{count})
       relation: Relações (%{count})
       relation_paginated: Relações (%{x}-%{y} of %{count})
-      comment: Comentários (%{count})
       hidden_comment_by_html: Comentário ocultado por %{user} há %{time_ago}
       comment_by_html: Comentário de %{user} há %{time_ago}
       changesetxml: XML do conjunto de alterações
       osmchangexml: XML no formato osmChange
-      feed:
-        title: Conjunto de alterações %{id}
-        title_comment: Conjunto de alterações %{id} - %{comment}
       join_discussion: Inicia sessão para te juntares à discussão
       discussion: Discussão
       still_open: O conjunto de alterações continua aberto. A discussão será iniciada
@@ -503,6 +508,9 @@ pt-PT:
       no_more_area: Não há mais conjuntos de alterações nesta área.
       no_more_user: Não há mais conjuntos de alterações deste utilizador.
       load_more: Ver mais
+      feed:
+        title: Conjunto de alterações %{id}
+        title_comment: Conjunto de alterações %{id} - %{comment}
     timeout:
       sorry: Lamentamos, mas a lista de conjuntos de alterações que pediste excedeu
         o tempo limite de resposta.
@@ -525,6 +533,7 @@ pt-PT:
     contact:
       km away: '%{count} km de distância'
       m away: '%{count} m de distância'
+      latest_edit_html: 'Última edição (%{ago}):'
     popup:
       your location: A tua localização
       nearby mapper: Mapeador próximo de ti
@@ -623,10 +632,39 @@ pt-PT:
       newer_comments: Comentários mais recentes
       older_comments: Comentários mais antigos
   doorkeeper:
+    errors:
+      messages:
+        account_selection_required: O servidor de autorização requer seleção de conta
+          de utilizador final
+        consent_required: O servidor de autorização requer o consentimento do utilizador
+          final
+        interaction_required: O servidor de autorização requer interação com o utilizador
+          final
+        login_required: O servidor de autorização requer autenticação do utilizador
+          final
     flash:
       applications:
         create:
           notice: Aplicação registada.
+    openid_connect:
+      errors:
+        messages:
+          auth_time_from_resource_owner_not_configured: Falha devido a ausência de
+            configuração de Doorkeeper::OpenidConnect.configure.auth_time_from_resource_owner.
+          reauthenticate_resource_owner_not_configured: Falha devido a ausência de
+            configuração de Doorkeeper::OpenidConnect.configure.reauthenticate_resource_owner.
+          resource_owner_from_access_token_not_configured: Falha devido a ausência
+            de configuração de Doorkeeper::OpenidConnect.configure.resource_owner_from_access_token.
+          select_account_for_resource_owner_not_configured: Falha devido a ausência
+            de configuração de Doorkeeper::OpenidConnect.configure.select_account_for_resource_owner.
+          subject_not_configured: Falha na geração de token ID devido a ausência de
+            configuração de Doorkeeper::OpenidConnect.configure.subject.
+    scopes:
+      address: Ver o teu endereço físico
+      email: Ver o teu endereço eletrónico
+      openid: Autenticar a tua conta
+      phone: Ver o teu número de telefone
+      profile: Ver a tua informação de perfil
   errors:
     contact:
       contact_url_title: Vários canais de contacto explicados
@@ -1475,9 +1513,9 @@ pt-PT:
         one: '%{count} denúncia'
         other: '%{count} denúncias'
       no_reports: Sem denúncias
-      report_created_at: Denunciado pela primeira vez em %{datetime}
-      last_resolved_at: Resolvido pela última vez em %{datetime}
-      last_updated_at: Atualizado pela última vez em %{datetime} por %{displayname}
+      report_created_at_html: Denunciado pela primeira vez em %{datetime}
+      last_resolved_at_html: Resolvido pela última vez em %{datetime}
+      last_updated_at_html: Atualizado pela última vez em %{datetime} por %{displayname}
       resolve: Resolver
       ignore: Ignorar
       reopen: Reabrir
@@ -1638,6 +1676,8 @@ pt-PT:
       loaded:
         one: carregado com sucesso com %{trace_points} de %{count} point possível.
         other: carregado com sucesso com %{trace_points} de %{count} pontos possíveis.
+      all_your_traces_html: Todos os trajetos GPX que enviaste podem ser encontrados
+        em %{url}.
       subject: '[OpenStreetMap] Importação de GPX bem-sucedida'
     signup_confirm:
       subject: '[OpenStreetMap] Bem-vind@ ao OpenStreetMap'
@@ -1759,8 +1799,6 @@ pt-PT:
   messages:
     inbox:
       title: Caixa de Entrada
-      my_inbox: Caixa de entrada
-      my_outbox: Caixa de saída
       messages: Tens %{new_messages} e %{old_messages}
       new_messages:
         one: '%{count} mensagem nova'
@@ -1768,17 +1806,21 @@ pt-PT:
       old_messages:
         one: '%{count} mensagem antiga'
         other: '%{count} mensagens antigas'
-      from: De
-      subject: Assunto
-      date: Data
       no_messages_yet_html: Ainda não tens mensagens. Porque não entras em contacto
         com algumas %{people_mapping_nearby_link}?
       people_mapping_nearby: pessoas que mapeiam perto de ti
+    messages_table:
+      from: De
+      to: Para
+      subject: Assunto
+      date: Data
+      actions: Ações
     message_summary:
       unread_button: Marcar como não lida
       read_button: Marcar como lida
       reply_button: Responder
       destroy_button: Eliminar
+      unmute_button: Mover para caixa de entrada
     new:
       title: Enviar mensagem
       send_message_to_html: Enviar uma nova mensagem para %{name}
@@ -1793,17 +1835,18 @@ pt-PT:
       body: Lamentamos, não existe nenhuma mensagem com esse identificador (id).
     outbox:
       title: Caixa de saída
-      my_inbox: Caixa de entrada
-      my_outbox: Caixa de saída
+      actions: Ações
       messages:
         one: Tens %{count} mensagem enviada
         other: Tens %{count} mensagens enviadas
-      to: Para
-      subject: Assunto
-      date: Data
       no_sent_messages_html: Ainda não tens mensagens enviadas. Porque não entras
         em contacto com algumas %{people_mapping_nearby_link}?
       people_mapping_nearby: pessoas que mapeiam perto de ti
+    muted:
+      title: Mensagens Silenciadas
+      messages:
+        one: '%{count} mensagem silenciada'
+        other: Tens %{count} mensagens silenciadas
     reply:
       wrong_user: Estás autenticado como `%{user}', mas a mensagem a que pretendes
         responder não foi enviada para esse utilizador. Por favor, entra na conta
@@ -1819,29 +1862,39 @@ pt-PT:
         correta para poderes ler a mensagem.
     sent_message_summary:
       destroy_button: Eliminar
+    heading:
+      my_inbox: Caixa de entrada
+      my_outbox: Caixa de saída
+      muted_messages: Mensagens silenciadas
     mark:
       as_read: Mensagem marcada como lida
       as_unread: Mensagem marcada como não lida
+    unmute:
+      notice: A mensagem foi movida para a caixa de entrada
+      error: A mensagem não pôde ser movida para a caixa de entrada.
     destroy:
       destroyed: Mensagem eliminada
   passwords:
-    lost_password:
+    new:
       title: Palavra-passe esquecida
       heading: Esqueceste a palavra-passe?
       email address: 'Endereço eletrónico:'
       new password button: Repor palavra-passe
       help_text: Introduz o endereço de correio eletrónico que usaste para criar a
         conta. Enviar-te-emos uma ligação que poderás usar para repor a palavra-passe.
+    create:
       notice email on way: Lamentamos que a tenhas perdido :-( mas já te enviámos
         um e-mail para que possas repô-la em breve.
       notice email cannot find: Lamentamos, mas não foi possível encontrar esse endereço
         eletrónico.
-    reset_password:
+    edit:
       title: Repor palavra-passe
       heading: Repor palavra-passe para %{user}
       reset: Repor palavra-passe
-      flash changed: A tua palavra-passe foi alterada.
       flash token bad: Não encontrámos esse token. Confere o URL, por favor.
+    update:
+      flash changed: A tua palavra-passe foi alterada.
+      flash token bad: O token não foi encontrado. Talvez devas conferir o URL?
   preferences:
     show:
       title: Preferências
@@ -1888,7 +1941,6 @@ pt-PT:
       heading: Iniciar Sessão
       email or username: 'E-mail ou nome de utilizador:'
       password: 'Palavra-passe:'
-      openid_html: '%{logo} OpenID:'
       remember: Ficar autenticado entre sessões
       lost password link: Perdeste a tua palavra-passe?
       login_button: Iniciar sessão
@@ -1932,7 +1984,7 @@ pt-PT:
       support: apoio
   shared:
     markdown_help:
-      heading_html: Analisado com %{kramdown_link}
+      heading_html: Processado com %{kramdown_link}
       headings: Títulos
       heading: Cabeçalho
       subheading: Subtítulo
@@ -1945,6 +1997,7 @@ pt-PT:
       image: Imagem
       alt: Texto alternativo
       url: URL
+      codeblock: Bloco de código
     richtext_field:
       edit: Editar
       preview: Pré-visualizar
@@ -2077,6 +2130,11 @@ pt-PT:
           de Recursos Naturais do Canadá) e StatCan (Divisão de Geografia, Estatísticas
           do Canadá).'
         contributors_ca_canada: Canadá
+        contributors_cz_credit_html: '%{czechia}: contém dados da Administração Estatal
+          de Topografia e Cadastro sob licença %{cc_licence_link}'
+        contributors_cz_czechia: Chéquia
+        contributors_cz_cc_licence: Atribuição Creative Commons 4.0 Licença Internacional
+          (CC BY 4.0)
         contributors_fi_credit_html: '%{finland}: Contém dados do Serviço Topográfico
           Nacional da Base de Dados Topográfica da Finlândia e outros conjuntos de
           dados, sob a %{nlsfi_license_link}.'
@@ -2166,12 +2224,7 @@ pt-PT:
         são necessárias para esta funcionalidade.
     export:
       title: Exportar
-      area_to_export: Área a exportar
       manually_select: Selecionar manualmente outra área
-      format_to_export: Formato a exportar
-      osm_xml_data: Dados XML do OpenStreetMap
-      map_image: Imagem do mapa (mostra a camada padrão)
-      embeddable_html: HTML integrável
       licence: Licença
       licence_details_html: Os dados do OpenStreetMap são licenciados sob %{odbl_link}
         (ODbL).
@@ -2197,17 +2250,6 @@ pt-PT:
         other:
           title: Outras fontes
           description: Fontes adicionais listadas na wiki do OpenStreetMap
-      options: Opções
-      format: Formato
-      scale: Escala
-      max: máx
-      image_size: Tamanho da imagem
-      zoom: Zoom
-      add_marker: Adicionar marcador no mapa
-      latitude: 'Lat:'
-      longitude: 'Lon:'
-      output: Resultado
-      paste_html: Cole o HTML para incorporar no website
       export_button: Exportar
     fixthemap:
       title: Reportar um problema / Corrigir o mapa
@@ -2242,17 +2284,13 @@ pt-PT:
         url: https://wiki.openstreetmap.org/wiki/Pt:Beginners%27_guide
         title: Guia para Principiantes
         description: Guia para principiantes atualizado pela comunidade.
-      help:
-        title: Fórum de Ajuda
-        description: Faz uma pergunta ou procura respostas no fórum de perguntas e
-          respostas do OpenStreetMap.
+      community:
+        title: Fórum da comunidade
+        description: Um local partilhado para conversas sobre o OpenStreetMap.
       mailing_lists:
         title: Listas de E-mail
         description: Faz uma pergunta ou debate temas interessantes numa vasta gama
           de listas de e-mail temáticas ou regionais.
-      community:
-        title: Fórum da comunidade
-        description: Um local partilhado para conversas sobre o OpenStreetMap.
       irc:
         title: IRC
         description: Sala de discussão IRC em várias línguas e sobre muitos tópicos.
@@ -2306,67 +2344,83 @@ pt-PT:
           primary: Estrada primária
           secondary: Estrada secundária
           unclassified: Estrada sem classificação
+          pedestrian: Caminho pedestre
           track: Estrada florestal ou agrícola
           bridleway: Via equestre
           cycleway: Ciclovia
           cycleway_national: Ciclovia nacional
           cycleway_regional: Ciclovia regional
           cycleway_local: Ciclovia local
+          cycleway_mtb: Rota de bicicleta de montanha
           footway: Via pedonal
           rail: Ferrovia
+          train: Comboio
           subway: Metropolitano
-          tram:
-          - Metropolitano de superfície
-          - elétrico
-          cable:
-          - Teleférico
-          - telecadeira
-          runway:
-          - Pista de aviação
-          - Via de circulação
-          apron:
-          - Estacionamento de aviões
-          - terminal de aeroporto
+          ferry: Ferry
+          light_rail: Comboio ligeiro
+          tram: Elétrico
+          trolleybus: Troleicarro
+          bus: Autocarro
+          cable_car: Teleférico
+          chair_lift: Teleférico
+          runway: Pista de aviação
+          taxiway: Via de circulação
+          apron: Estacionamento de aviões
           admin: Fronteira administrativa
+          capital: Capital
+          city: Cidade
+          orchard: Pomar
+          vineyard: Vinha
           forest: Floresta gerida
           wood: Bosque
+          farmland: Terreno agrícola
+          grass: Relva
+          meadow: Prado
+          bare_rock: Rocha exposta
+          sand: Areia
           golf: Campo de golfe
           park: Parque público
+          common: Terrenos comunitários
+          built_up: Zona edificada
           resident: Área residencial
-          common:
-          - Terrenos comunitários
-          - prado
-          - Jardim
           retail: Área de retalho
           industrial: Área industrial
           commercial: Área comercial
           heathland: Charneca
-          lake:
-          - Lago
-          - reservatório hidrográfico
+          scrubland: Matagal
+          lake: Lago
+          reservoir: Reservatório
+          intermittent_water: Corpo de água intermitente
+          glacier: Glaciar
+          reef: Recife
+          wetland: Zona húmida
           farm: Quinta
           brownfield: Baldio industrial
           cemetery: Cemitério
           allotments: Hortas urbanas
           pitch: Campo desportivo
           centre: Centro desportivo
+          beach: Praia
           reserve: Reserva natural
           military: Área militar
-          school:
-          - Escola
-          - universidade
+          school: Escola
+          university: Universidade
+          hospital: Hospital
           building: Edifício importante
           station: Estação ferroviária
-          summit:
-          - Cume
-          - pico
+          summit: Cume
+          peak: Pico
           tunnel: Linha tracejada = túnel
           bridge: Linha cheia = ponte
           private: Acesso privado
           destination: Acesso explícito ao local
           construction: Estradas em construção
+          bus_stop: Paragem de autocarro
+          stop: Paragem
           bicycle_shop: Loja de bicicletas
+          bicycle_rental: Aluguer de bicicletas
           bicycle_parking: Estacionamento de bicicletas
+          bicycle_parking_small: Estacionamento para bicicletas
           toilets: Casas de banho
     welcome:
       title: Bem-vind@!
@@ -2407,6 +2461,7 @@ pt-PT:
         imports: Importações
         automated_edits: Edições automáticas
       start_mapping: Começar a mapear
+      continue_authorization: Continuar autorização
       add_a_note:
         title: Sem tempo para editar? Adiciona uma nota!
         para_1: Se pretendes que seja feita uma pequena correção, mas não tens disponibilidade
@@ -2567,6 +2622,7 @@ pt-PT:
       oauth1_settings: Definições OAuth 1
       oauth2_applications: Aplicações OAuth 2
       oauth2_authorizations: Autorizações OAuth 2
+      muted_users: Utilizadores Silenciados
   oauth:
     authorize:
       title: Autorizar Acesso À Tua Conta
@@ -2596,6 +2652,7 @@ pt-PT:
     permissions:
       missing: Não deste permissão à aplicação para aceder a este serviço
     scopes:
+      openid: Iniciar sessão com OpenStreetMap
       read_prefs: Ler preferências de utilizador
       write_prefs: Modificar preferências de utilizador
       write_diary: Criar entradas de diário, comentar e fazer amigos
@@ -2603,6 +2660,7 @@ pt-PT:
       read_gpx: Ler rotas GPS privadas
       write_gpx: Enviar rotas GPS
       write_notes: Modificar notas
+      write_redactions: Rever dados do mapa
       read_email: ‎Ler e-mail de utilizador
       skip_authorization: Aprovar a aplicação automaticamente
   oauth_clients:
@@ -2781,6 +2839,8 @@ pt-PT:
       my_dashboard: Painel de Controlo
       blocks on me: Quem me bloqueou
       blocks by me: Os meus bloqueios
+      create_mute: Silenciar este utilizador
+      destroy_mute: Ativar este utilizador
       edit_profile: Editar Perfil
       send message: Enviar mensagem
       diary: Diário
@@ -2790,10 +2850,10 @@ pt-PT:
       remove as friend: Remover amigo
       add as friend: Adicionar aos amigos
       mapper since: 'A mapear desde:'
+      uid: 'Id de utilizador:'
       ct status: 'Termos do Contribuidor:'
       ct undecided: Por decidir
       ct declined: Rejeitado
-      latest edit: 'Última edição (%{ago}):'
       email address: 'E-mail:'
       created from: 'Criado de:'
       status: 'Estado:'
@@ -2801,14 +2861,18 @@ pt-PT:
       role:
         administrator: Este utilizador é um administrador
         moderator: Este utilizador é um moderador
+        importer: Este utilizador é importador
         grant:
           administrator: Dar acesso de administrador
           moderator: Dar acesso de moderador
+          importer: Conceder acesso de importador
         revoke:
           administrator: Retirar acesso de administrador
           moderator: Retirar acesso de moderador
+          importer: Revogar acesso de importador
       block_history: Bloqueios ativos
       moderator_history: Bloqueios aplicados
+      revoke_all_blocks: Revogar todos os bloqueios
       comments: Comentários
       create_block: Bloquear este utilizador
       activate_user: Ativar este utilizador
@@ -2915,11 +2979,21 @@ pt-PT:
     revoke:
       title: A retirar o bloqueio de %{block_on}
       heading_html: A retirar o bloqueio de %{block_on} por %{block_by}
-      time_future: Este bloqueio terminará em %{time}.
-      past: Este bloqueio terminou a %{time} e já não pode ser revogado.
+      time_future_html: Este bloqueio terminará em %{time}.
+      past_html: Este bloqueio terminou a %{time} e já não pode ser revogado.
       confirm: Tens a certeza de que queres revogar este bloqueio?
       revoke: Revogar!
       flash: Este bloqueio foi revogado.
+    revoke_all:
+      title: A retirar o bloqueio de %{block_on}
+      heading_html: A retirar o bloqueio de %{block_on}
+      empty: '%{name} não tem bloqueios ativos.'
+      confirm: Tens a certeza de que queres revogar %{active_blocks}?
+      active_blocks:
+        one: '%{count} bloqueio ativo'
+        other: '%{count} bloqueios ativos'
+      revoke: Revogar!
+      flash: Todos os bloqueios ativos foram revogados.
     helper:
       time_future_html: Termina em %{time}.
       until_login: Ativo até o utilizador iniciar sessão.
@@ -2978,13 +3052,39 @@ pt-PT:
       showing_page: Página %{page}
       next: Seguinte »
       previous: « Anterior
+  user_mutes:
+    index:
+      title: Utilizadores Silenciados
+      my_muted_users: Os meus utilizadores silenciados
+      you_have_muted_n_users:
+        one: Silenciaste %{count} utilizador
+        other: Silenciaste %{count} utilizadores
+      user_mute_explainer: As mensagens de utilizadores silenciados são movidas para
+        uma caixa de entrada separada e não receberás notificações por e-mail.
+      user_mute_admins_and_moderators: Podes silenciar administradores e moderadores,
+        mas as suas mensagens não serão silenciadas.
+      table:
+        thead:
+          muted_user: Utilizador Silenciado
+          actions: Ações
+        tbody:
+          unmute: Ativar
+          send_message: Enviar mensagem
+    create:
+      notice: Silenciaste %{name}.
+      error: |-
+        %{name} não pôde ser silenciado.
+        %{full_message}.
+    destroy:
+      notice: Ativaste %{name}.
+      error: O utilizador não pôde ser silenciado. Por favor, tenta novamente.
   notes:
     index:
       title: Notas submetidas ou comentadas por %{user}
       heading: Notas de %{user}
       subheading_html: Notas %{submitted} ou %{commented} por %{user}
-      subheading_submitted: enviada
-      subheading_commented: comentada em
+      subheading_submitted: enviadas
+      subheading_commented: comentadas em
       no_notes: Sem notas
       id: Id
       creator: Criador
@@ -3014,6 +3114,7 @@ pt-PT:
       reactivate: Reabrir
       comment_and_resolve: Comentar e resolver
       comment: Comentar
+      log_in_to_comment: Inicia sessão para comentar esta nota
       report_link_html: Se esta nota contiver informações sensíveis que precisem de
         ser removidas, poderás %{link}.
       other_problems_resolve: Para qualquer outro problema com a nota, resolve-a pessoalmente
@@ -3072,11 +3173,10 @@ pt-PT:
           other: Estás a menos de %{count} pés deste ponto
       base:
         standard: Mapa Padrão
-        cyclosm: CyclOSM
         cycle_map: Mapa de Ciclismo
         transport_map: Transportes Públicos
+        tracestracktop_topo: Tracestrack Topo
         hot: Humanitário
-        opnvkarte: ÖPNVKarte
       layers:
         header: Camadas do mapa
         notes: Notas no mapa
@@ -3091,8 +3191,7 @@ pt-PT:
       osm_france: OpenStreetMap França
       thunderforest_credit: Mosaicos cortesia de %{thunderforest_link}
       andy_allan: Andy Allan
-      opnvkarte_credit: Mosaicos cortesia de %{memomaps_link}
-      memomaps: MeMoMaps
+      tracestrack_credit: Mosaicos cortesia de %{tracestrack_link}
       hotosm_credit: Estilo de mosaicos por %{hotosm_link} hospedado por %{osm_france_link}
       hotosm_name: Equipa Humanitária do OpenStreetMap
     site:
@@ -3104,6 +3203,8 @@ pt-PT:
       map_data_zoom_in_tooltip: Amplia para veres os dados do mapa
       queryfeature_tooltip: Consultar elementos em redor
       queryfeature_disabled_tooltip: Amplia para consultares elementos
+      embed_html_disabled: A incorporação de HTML não está disponível para esta camada
+        do mapa
     changesets:
       show:
         comment: Comentar
@@ -3122,7 +3223,7 @@ pt-PT:
         graphhopper_car: Carro (GraphHopper)
         graphhopper_foot: A pé (GraphHopper)
         fossgis_valhalla_bicycle: Bicicleta (Valhalla)
-        fossgis_valhalla_car: Automóvel (Valhalla)
+        fossgis_valhalla_car: Carro (Valhalla)
         fossgis_valhalla_foot: Pé (Valhalla)
       descend: Descida
       directions: Direções
index 7bc65119a3d990bf6bbad5991db1a658ff74271e..09c7525c535750ad7710d6b058127f4fb8bbe35f 100644 (file)
@@ -7,6 +7,7 @@
 # Author: BraulioBezerra
 # Author: Brunomelnic
 # Author: Cainamarques
+# Author: CorraleH
 # Author: Crazymadlover
 # Author: Cristofer Alves
 # Author: Danieldegroot2
@@ -52,6 +53,7 @@
 # Author: SandroHc
 # Author: Trigonometria87
 # Author: Tuliouel
+# Author: Vaniacfon
 # Author: Vgeorge
 # Author: ViriatoLusitano
 # Author: Vitalb
@@ -99,6 +101,11 @@ pt:
       messages:
         invalid_email_address: não parece ser um endereço de e-mail válido
         email_address_not_routable: não é roteável
+        display_name_is_user_n: não pode ser user_n a não ser que n seja o seu ID
+          de usuário
+      models:
+        user_mute:
+          is_already_muted: já está silenciado
     models:
       acl: Lista de controle de acesso
       changeset: Conjunto de alterações
@@ -123,7 +130,7 @@ pt:
       relation: Relação
       relation_member: Membro da relação
       relation_tag: Etiqueta de relação
-      report: Reportar
+      report: Denúncia
       session: Sessão
       trace: Trilha
       tracepoint: Ponto de trilha
@@ -185,7 +192,7 @@ pt:
         title: Título
         description: Descrição
       report:
-        category: Seleciona um motivo para o seu relatório
+        category: Selecione um motivo para a sua denúncia
         details: Por favor, forneça mais alguns detalhes sobre o problema (obrigatório).
       user:
         auth_provider: Provedor de autenticação
@@ -221,42 +228,42 @@ pt:
   datetime:
     distance_in_words_ago:
       about_x_hours:
-        one: cerca de %{count} hora atrás
-        other: cerca de %{count} horas atrás
+        one: há cerca de %{count} hora
+        other: há cerca de %{count} horas
       about_x_months:
-        one: cerca de %{count} mês atrás
-        other: cerca de %{count} meses atrás
+        one: há cerca de %{count} mês
+        other: há cerca de %{count} meses
       about_x_years:
-        one: cerca de %{count} ano atrás
-        other: cerca de %{count} anos atrás
+        one: há cerca de %{count} ano
+        other: há cerca de %{count} anos
       almost_x_years:
-        one: quase %{count} ano atrás
-        other: quase %{count} anos atrás
-      half_a_minute: meio minuto atrás
+        one: há quase %{count} ano
+        other: há quase %{count} anos
+      half_a_minute: há meio minuto
       less_than_x_seconds:
-        one: menos de %{count} segundo atrás
-        other: menos de %{count} segundos atrás
+        one: há menos de %{count} segundo
+        other: há menos de %{count} segundos
       less_than_x_minutes:
-        one: menos de %{count} minuto atras
-        other: menos de %{count} minutos atrás
+        one: há menos de %{count} minuto
+        other: há menos de %{count} minutos
       over_x_years:
-        one: mais de %{count} ano atrás
-        other: mais de %{count} anos atrás
+        one: há mais de %{count} ano
+        other: há mais de %{count} anos
       x_seconds:
-        one: '%{count} segundo atrás'
-        other: '%{count} segundos atrás'
+        one: há %{count} segundo
+        other: há %{count} segundos
       x_minutes:
-        one: '%{count} minuto atrás'
-        other: '%{count} minutos atrás'
+        one: há %{count} minuto
+        other: há %{count} minutos
       x_days:
-        one: '%{count} dia atrás'
-        other: '%{count} dias atrás'
+        one: ontem
+        other: há %{count} dias
       x_months:
-        one: '%{count} mês atrás'
-        other: '%{count} meses atrás'
+        one: há %{count} mês
+        other: há %{count} meses
       x_years:
-        one: '%{count} ano atrás'
-        other: '%{count} anos atrás'
+        one: há %{count} ano
+        other: há %{count} anos
   editor:
     default: Padrão (atualmente %{name})
     id:
@@ -268,7 +275,6 @@ pt:
   auth:
     providers:
       none: Nenhum
-      openid: OpenID
       google: Google
       facebook: Facebook
       microsoft: Microsoft
@@ -287,9 +293,9 @@ pt:
         reopened_at_by_html: Reativado %{when} por %{user}
       rss:
         title: Notas do OpenStreetMap
-        description_all: Uma lista de notas relatadas, comentadas ou fechadas
-        description_area: Uma lista de notas relatadas, comentadas ou encerradas na
-          sua área [(%{min_lat}|%{min_lon}) -- (%{max_lat}|%{max_lon})]
+        description_all: Uma lista de notas denunciadas, comentadas ou fechadas
+        description_area: Uma lista de notas reportadas, comentadas ou resolvidas
+          na sua área [(%{min_lat}|%{min_lon}) -- (%{max_lat}|%{max_lon})]
         description_item: Um feed RSS para a nota %{id}
         opened: nova nota (perto de %{place})
         commented: novo comentário (perto de %{place})
@@ -323,6 +329,8 @@ pt:
         retain_changeset_discussions: Suas discussões em conjuntos de edições, se
           existirem, serão retidas.
         retain_email: Seu endereço de e-mail será retido.
+        recent_editing_html: Como você editou recentemente, sua conta não pode ser
+          excluída no momento. A exclusão será possível em %{time}.
         confirm_delete: Tem certeza?
         cancel: Cancelar
   accounts:
@@ -375,9 +383,9 @@ pt:
     created: Criado
     closed: Fechado
     created_ago_html: Criado há %{time_ago}
-    closed_ago_html: Fechado há %{time_ago}
+    closed_ago_html: Fechado %{time_ago}
     created_ago_by_html: Criado há %{time_ago} por %{user}
-    closed_ago_by_html: Fechado há %{time_ago} por %{user}
+    closed_ago_by_html: Fechado %{time_ago} por %{user}
     deleted_ago_by_html: Excluído há %{time_ago} por %{user}
     edited_ago_by_html: Editado há %{time_ago} por %{user}
     version: Versão
@@ -404,14 +412,10 @@ pt:
       way_paginated: Linhas (%{x}-%{y} de %{count})
       relation: Relações (%{count})
       relation_paginated: Relações (%{x}-%{y} de %{count})
-      comment: Comentários (%{count})
       hidden_comment_by_html: Comentário ocultado por %{user} há %{time_ago}
       comment_by_html: Comentário de %{user} há %{time_ago}
       changesetxml: XML do conjunto de alterações
       osmchangexml: XML osmChange
-      feed:
-        title: Conjunto de alterações %{id}
-        title_comment: Conjunto de alterações %{id} - %{comment}
       join_discussion: Entrar para participar da discussão
       discussion: Discussão
       still_open: O conjunto de alterações continua em aberto - A discussão será iniciada
@@ -520,6 +524,9 @@ pt:
       no_more_area: Não há mais conjuntos de alterações nesta área.
       no_more_user: Não há mais conjuntos de alterações para este usuário.
       load_more: Carregar mais
+      feed:
+        title: Conjunto de alterações %{id}
+        title_comment: Conjunto de alterações %{id} - %{comment}
     timeout:
       sorry: A lista de conjuntos de alterações solicitada está demorando demais para
         chegar.
@@ -539,6 +546,7 @@ pt:
     contact:
       km away: '%{count}km de distância'
       m away: '%{count}m de distância'
+      latest_edit_html: 'Última edição (%{ago}):'
     popup:
       your location: Sua localização
       nearby mapper: Mapeador próximo
@@ -635,11 +643,35 @@ pt:
       newer_comments: Comentários mais recentes
       older_comments: Comentários mais antigos
   doorkeeper:
+    errors:
+      messages:
+        account_selection_required: O servidor de autorização requer a seleção da
+          conta do usuário final
+        consent_required: O servidor de autorização requer o consentimento do usuário
+          final
+        interaction_required: O servidor de autorização requer interação do usuário
+          final
+        login_required: O servidor de autorização requer a autenticação do usuário
+          final
     flash:
       applications:
         create:
           notice: Aplicação registada.
+    openid_connect:
+      errors:
+        messages:
+          auth_time_from_resource_owner_not_configured: Falha devido a falta de configuração
+            de Doorkeeper::OpenidConnect.configure.auth_time_from_resource_owner.
+          reauthenticate_resource_owner_not_configured: Falha devido a falta de configuração
+            de Doorkeeper::OpenidConnect.configure.reauthenticate_resource_owner.
+          resource_owner_from_access_token_not_configured: Falha devido a falta de
+            configuração de Doorkeeper::OpenidConnect.configure.resource_owner_from_access_token.
+          select_account_for_resource_owner_not_configured: Falha devido a falta de
+            configuração de Doorkeeper::OpenidConnect.configure.select_account_for_resource_owner.
+          subject_not_configured: A geração de tokens de identificação falhou devido
+            a falta de configuração de Doorkeeper::OpenidConnect.configure.subject.
     scopes:
+      address: Ver seu endereço físico
       email: Ver seu endereço de e-mail
       openid: Autenticar sua conta
       phone: Ver seu número de telefone
@@ -1468,21 +1500,21 @@ pt:
       select_status: Selecionar status
       select_type: Selecione o tipo
       select_last_updated_by: Selecione a última atualização por
-      reported_user: Reportar usuário
+      reported_user: Usuário denunciado
       not_updated: Não atualizado
       search: Pesquisar
       search_guidance: 'Pesquisar problemas:'
       user_not_found: Usuário não existe
       issues_not_found: Nenhum problema foi encontrado
       status: Status
-      reports: Relatórios
+      reports: Denúncias
       last_updated: Última Atualização
       last_updated_time_ago_user_html: Há %{time_ago} por %{user}
-      link_to_reports: Ver Denúncias
+      link_to_reports: Ver denúncias
       reports_count:
-        one: '%{count} Relatório'
-        other: '%{count} Relatórios'
-      reported_item: Item Reportado
+        one: '%{count} denúncia'
+        other: '%{count} denúncias'
+      reported_item: Elemento denunciado
       states:
         ignored: Ignorado
         open: Aberto
@@ -1490,18 +1522,18 @@ pt:
     show:
       title: '%{status} Problema #%{issue_id}'
       reports:
-        one: '%{count} relatório'
-        other: '%{count} relatórios'
-      no_reports: Sem relatórios
-      report_created_at: Primeiro relatado em %{datetime}
-      last_resolved_at: Resolvido pela última vez em %{datetime}
-      last_updated_at: Última atualização em %{datetime} por %{displayname}
+        one: '%{count} denúncia'
+        other: '%{count} denúncias'
+      no_reports: Sem denúncias
+      report_created_at_html: Denunciado pela primeira vez em %{datetime}
+      last_resolved_at_html: Resolvido pela última vez em %{datetime}
+      last_updated_at_html: Última atualização em %{datetime} por %{displayname}
       resolve: Resolvido
       ignore: Ignorar
       reopen: Reabrir
-      reports_of_this_issue: Denunciar este problema
-      read_reports: Ler Denúncia
-      new_reports: Novas Denúncias
+      reports_of_this_issue: Denúncias deste problema
+      read_reports: Ler denúncias
+      new_reports: Novas denúncias
       other_issues_against_this_user: Outros problemas contra este usuário
       no_other_issues: Nenhum outro problema contra este usuário.
       comments_on_this_issue: Comentários sobre este problema
@@ -1515,7 +1547,7 @@ pt:
       comment_from_html: Comentário de %{user_link} em %{comment_created_at}
       reassign_param: Reatribuir problema?
     reports:
-      reported_by_html: Reportado como %{category} por %{user} em %{updated_at}
+      reported_by_html: Denunciado como %{category} por %{user} em %{updated_at}
     helper:
       reportable_title:
         diary_comment: '%{entry_title}, comentário #%{comment_id}'
@@ -1526,8 +1558,8 @@ pt:
       issue_reassigned: O seu comentário foi criado e o problema foi reatribuído
   reports:
     new:
-      title_html: Denuncia %{link}
-      missing_params: Não é possível criar um novo relatório
+      title_html: Denunciar %{link}
+      missing_params: Não foi possível criar uma nova denúncia
       disclaimer:
         intro: 'Antes de enviar sua denúncia para os moderadores do site, certifique-se
           de que:'
@@ -1558,7 +1590,7 @@ pt:
           abusive_label: Esta nota é abusiva
           other_label: Outro
     create:
-      successful_report: Sua denúncia foi registrada com sucesso
+      successful_report: A sua denúncia foi registrada com sucesso
       provide_details: Por favor, forneça os detalhes necessários
   layouts:
     logo:
@@ -1777,8 +1809,6 @@ pt:
   messages:
     inbox:
       title: Caixa de Entrada
-      my_inbox: Minha Caixa de Entrada
-      my_outbox: Minha caixa de saída
       messages: Você tem %{new_messages} e %{old_messages}
       new_messages:
         one: '%{count} nova mensagem'
@@ -1786,17 +1816,21 @@ pt:
       old_messages:
         one: '%{count} mensagem antiga'
         other: '%{count} mensagens antigas'
-      from: De
-      subject: Assunto
-      date: Data
       no_messages_yet_html: Você ainda não tem mensagens. Por que não entrar em contato
         com %{people_mapping_nearby_link}?
       people_mapping_nearby: alguém mapeando por perto
+    messages_table:
+      from: De
+      to: Para
+      subject: Assunto
+      date: Data
+      actions: Ações
     message_summary:
       unread_button: Marcar como não lida
       read_button: Marcar como lida
       reply_button: Responder
       destroy_button: Apagar
+      unmute_button: Mover para caixa de entrada
     new:
       title: Enviar mensagem
       send_message_to_html: Enviar uma nova mensagem para %{name}
@@ -1811,17 +1845,18 @@ pt:
       body: Não existe uma mensagem com este id.
     outbox:
       title: Caixa de Saída
-      my_inbox: Minha caixa de entrada
-      my_outbox: Minha caixa de saída
+      actions: Ações
       messages:
         one: Você tem %{count} mensagem enviada
         other: Você tem %{count} mensagens enviadas
-      to: Para
-      subject: Assunto
-      date: Data
       no_sent_messages_html: Você ainda não enviou nenhuma mensagem. Por que não entrar
         em contato com %{people_mapping_nearby_link}?
       people_mapping_nearby: alguém mapeando por perto
+    muted:
+      title: Mensagens silenciadas
+      messages:
+        one: '%{count} mensagem silenciada'
+        other: Você tem %{count} mensagens silenciadas
     reply:
       wrong_user: Você está conectado como `%{user}' mas a mensagem que você quer
         responder não foi enviada para este usuário. Faça o login com o usuário correto
@@ -1837,28 +1872,38 @@ pt:
         para poder responder.
     sent_message_summary:
       destroy_button: Apagar
+    heading:
+      my_inbox: Minha Caixa de Entrada
+      my_outbox: Minha caixa de saída
+      muted_messages: Mensagens silenciadas
     mark:
       as_read: Mensagem marcada como lida
       as_unread: Mensagem marcada como não lida
+    unmute:
+      notice: A mensagem foi movida para a caixa de entrada
+      error: A mensagem não pôde ser movida para a caixa de entrada.
     destroy:
       destroyed: Mensagem apagada
   passwords:
-    lost_password:
+    new:
       title: Senha esquecida
       heading: Esqueceu sua senha?
-      email address: 'Endereço de E-mail:'
+      email address: Endereço de e-mail
       new password button: Redefinir senha
       help_text: Digite o endereço de e-mail que você usou para se conectar e enviaremos
         um link que você poderá usar para redefinir a sua senha.
+    create:
       notice email on way: Um e-mail foi enviado para que você possa escolher outra
         senha.
       notice email cannot find: Não foi possível encontrar esse endereço de e-mail.
-    reset_password:
+    edit:
       title: Redefinir senha
       heading: Redefinir Senha de %{user}
       reset: Redefinir Senha
-      flash changed: Sua senha foi alterada.
       flash token bad: O código não confere, verifique a URL.
+    update:
+      flash changed: Sua senha foi alterada.
+      flash token bad: O token não foi encontrado. Talvez deveria conferir o URL?
   preferences:
     show:
       title: Minhas preferências
@@ -1903,9 +1948,8 @@ pt:
     new:
       title: Entrar
       heading: Entrar
-      email or username: 'E-mail ou nome de usuário:'
-      password: 'Senha:'
-      openid_html: '%{logo} OpenID:'
+      email or username: E-mail ou nome de usuário
+      password: Senha
       remember: Lembrar neste computador
       lost password link: Esqueceu sua senha?
       login_button: Entrar
@@ -1963,6 +2007,7 @@ pt:
       image: Imagem
       alt: Texto alternativo
       url: URL
+      codeblock: Bloco de código
     richtext_field:
       edit: Editar
       preview: Pré-visualizar
@@ -2101,6 +2146,12 @@ pt:
           de Recursos Naturais do Canadá) e StatCan (Divisão de Geografia, Estatísticas
           do Canadá).'
         contributors_ca_canada: Canadá
+        contributors_cz_credit_html: |-
+          %{czechia}: Contém dados da Administração Estatal de Agrimensura
+          e Cadastro licenciados sob %{cc_licence_link}
+        contributors_cz_czechia: Tcheca
+        contributors_cz_cc_licence: Atribuição Creative Commons 4.0 Licença Internacional
+          (CC BY 4.0)
         contributors_fi_credit_html: '%{finland}: Contém dados do Serviço Topográfico
           Nacional da Base de Dados Topográfica da Finlândia e outros conjuntos de
           dados, sob a %{nlsfi_license_link}.'
@@ -2190,12 +2241,7 @@ pt:
         para esse recurso.
     export:
       title: Exportar
-      area_to_export: Área a Exportar
       manually_select: Selecionar outra área manualmente
-      format_to_export: Formato a Exportar
-      osm_xml_data: Dados XML do OpenStreetMap
-      map_image: Imagem do Mapa (exibe a camada padrão)
-      embeddable_html: HTML para embutir
       licence: Licença
       licence_details_html: Os dados do OpenStreetMap são licenciados por %{odbl_link}
         (ODbL).
@@ -2221,17 +2267,6 @@ pt:
         other:
           title: Outras Fontes
           description: Fontes adicionais listadas no wiki do OpenStreetMap
-      options: Opções
-      format: Formato
-      scale: Escala
-      max: máx
-      image_size: Tamanho da Imagem
-      zoom: Ampliação
-      add_marker: Incluir um marcador no mapa
-      latitude: 'Lat:'
-      longitude: 'Lon:'
-      output: Saída
-      paste_html: Cole o HTML para publicar no site
       export_button: Exportar
     fixthemap:
       title: Relatar um problema / Corrigir o mapa
@@ -2267,18 +2302,13 @@ pt:
         url: https://wiki.openstreetmap.org/wiki/Pt:Beginners%27_guide
         title: Introdução
         description: Guia para iniciantes mantido pela comunidade.
-      help:
-        url: http://help.openstreetmap.org/
-        title: Fórum de ajuda
-        description: Faça uma pergunta ou procure por respostas no fórum de perguntas
-          e respostas do OpenStreetMap.
+      community:
+        title: Fórum da comunidade
+        description: Un lugar compartilhado para conversas sobre o OpenStreetMap.
       mailing_lists:
         title: Listas de E-mail
         description: Tire uma dúvida ou discuta assuntos interessantes em várias listas
           regionais ou por assunto.
-      community:
-        title: Fórum da comunidade
-        description: Un lugar compartilhado para conversas sobre o OpenStreetMap.
       irc:
         title: IRC
         description: Bate-papo interativo em vários idiomas e sobre vários assuntos.
@@ -2335,67 +2365,83 @@ pt:
           primary: Via primária
           secondary: Via secundária
           unclassified: Via não classificada
+          pedestrian: Calçadão
           track: Estrada rústica
           bridleway: Hipovia
           cycleway: Ciclovia
           cycleway_national: Ciclovia nacional
           cycleway_regional: Ciclovia regional
           cycleway_local: Ciclovia local
+          cycleway_mtb: Rota de bicicleta de montanha
           footway: Caminho de pedestre
           rail: Ferrovia
+          train: Trem
           subway: Metrô
-          tram:
-          - Ferrovia metropolitana
-          - bonde
-          cable:
-          - Bonde aéreo
-          - telecadeira
-          runway:
-          - Pista de Pouso
-          - pista de taxiamento
-          apron:
-          - Pátio de aeródromo
-          - terminal
+          ferry: Balsa
+          light_rail: VLT
+          tram: Bonde
+          trolleybus: Trólebus
+          bus: Ônibus
+          cable_car: Bonde aéreo
+          chair_lift: Teleférico
+          runway: Pista de Pouso
+          taxiway: Pista de taxiamento
+          apron: Pátio de aeródromo
           admin: Limite administrativo
+          capital: Capital
+          city: Cidade
+          orchard: Pomar
+          vineyard: Vinha
           forest: Floresta manejada
           wood: Bosque nativo
+          farmland: Terreno agrícola
+          grass: Grama
+          meadow: Prado
+          bare_rock: Rocha exposta
+          sand: Areia
           golf: Campo de golfe
           park: Parque
+          common: Baldio comunitário
+          built_up: Zona edificada
           resident: Área residencial
-          common:
-          - Baldio comunitário
-          - prado
-          - Jardim
           retail: Área de varejo
           industrial: Área industrial
           commercial: Área de negócios
           heathland: Urzal
-          lake:
-          - Lago
-          - lago artificial
+          scrubland: Matagal
+          lake: Lago
+          reservoir: Reservatório
+          intermittent_water: Corpo de água intermitente
+          glacier: Geleira
+          reef: Recife
+          wetland: Pântano
           farm: Lavoura
           brownfield: Terreno abandonado
           cemetery: Cemitério secular
           allotments: Horta urbana
           pitch: Quadra esportiva
           centre: Centro/clube esportivo
+          beach: Praia
           reserve: Reserva ambiental
           military: Área militar
-          school:
-          - Escola
-          - universidade
+          school: Escola/Universidade
+          university: universidade
+          hospital: Hospital
           building: Edifício importante
           station: Estação ferroviária
-          summit:
-          - Cume
-          - cume
+          summit: Cume
+          peak: cume
           tunnel: Túnel (contorno tracejado)
           bridge: Ponte/viaduto (contorno contínuo)
           private: Acesso restrito
           destination: Acesso local apenas
           construction: Vias em construção
+          bus_stop: Ponto de ônibus
+          stop: Parada
           bicycle_shop: Loja de bicicletas
+          bicycle_rental: Aluguel de bicicletas
           bicycle_parking: Bicicletário
+          bicycle_parking_small: Estacionamento pequeno para bicicletas
           toilets: Banheiros
     welcome:
       title: Bem-vindo(a)!
@@ -2438,6 +2484,7 @@ pt:
         imports: Importações
         automated_edits: Edições automáticas
       start_mapping: Começando a Mapear
+      continue_authorization: Continuar autorização
       add_a_note:
         title: Sem tempo para editar? Inclua uma nota!
         para_1: Se você só quer que algo pequeno seja arrumado, e não tem tempo para
@@ -2597,6 +2644,7 @@ pt:
       oauth1_settings: Configurações do OAuth 1
       oauth2_applications: Aplicações OAuth 2
       oauth2_authorizations: Autorizações do OAuth 2
+      muted_users: Usuários silenciados
   oauth:
     authorize:
       title: Autorizar acesso à sua conta
@@ -2625,6 +2673,7 @@ pt:
     permissions:
       missing: Você não permitiu o acesso da aplicação a esta facilidade
     scopes:
+      openid: Iniciar sessão usando OpenStreetMap
       read_prefs: Ler preferências de usuário
       write_prefs: Modificar preferências de usuário
       write_diary: Criar entradas de diário, comentar e fazer amigos
@@ -2632,6 +2681,7 @@ pt:
       read_gpx: Ler rotas GPS privadas
       write_gpx: Enviar rotas GPS
       write_notes: Modificar notas
+      write_redactions: Rever dados do mapa
       read_email: Ler o endereço de e-mail do usuário
       skip_authorization: Aplicação de aprovação automática
   oauth_clients:
@@ -2806,6 +2856,8 @@ pt:
       my_dashboard: Meu painel
       blocks on me: Bloqueios sobre mim
       blocks by me: Bloqueios por mim
+      create_mute: Silenciar este usuário
+      destroy_mute: Deixar de silenciar este usuário
       edit_profile: Editar perfil
       send message: Enviar mensagem
       diary: Diário
@@ -2819,7 +2871,6 @@ pt:
       ct status: 'Termos do contribuidor:'
       ct undecided: Não decidido
       ct declined: Discordo
-      latest edit: 'Última edição (%{ago}):'
       email address: 'Endereço de e-mail:'
       created from: 'Criado de:'
       status: 'Estado:'
@@ -2827,14 +2878,18 @@ pt:
       role:
         administrator: Este usuário é um administrador
         moderator: Este usuário é um moderador
+        importer: Este usuário é importador
         grant:
           administrator: Conceder acesso de administrador
           moderator: Conceder acesso de moderador
+          importer: Conceder o acesso de importador
         revoke:
           administrator: Revogar acesso de administrador
           moderator: Revogar acesso de moderador
+          importer: Revogar o acesso de importador
       block_history: Bloqueios ativos
       moderator_history: Bloqueios aplicados
+      revoke_all_blocks: Revogar todos os bloqueios
       comments: Comentários
       create_block: Bloquear este usuário
       activate_user: Ativar este usuário
@@ -2935,16 +2990,21 @@ pt:
       success: Bloqueio atualizado.
     index:
       title: Bloqueios do usuário
-      heading: Lista de bloqueios do usuário.
+      heading: Lista de bloqueios de usuário
       empty: Nenhum bloqueio foi aplicado ainda.
     revoke:
       title: Retirando bloqueio de %{block_on}
       heading_html: Retirando bloqueio em %{block_on} por %{block_by}
-      time_future: Esse bloqueio terminará em %{time}.
-      past: Esse bloqueio terminou há %{time} e não pode ser retirado agora.
+      time_future_html: Esse bloqueio terminará em %{time}.
+      past_html: Esse bloqueio terminou há %{time} e não pode ser retirado agora.
       confirm: Deseja realmente retirar esse bloqueio?
       revoke: Cancelar!
       flash: Esse bloqueio foi retirado.
+    revoke_all:
+      title: Revogando todos os bloqueios em %{block_on}
+      heading_html: Revogando todos os bloqueios em %{block_on}
+      empty: '%{name} não tem bloqueios ativos.'
+      confirm: Você tem certeza de que quer revogar %{active_blocks}?
     helper:
       time_future_html: Termina em %{time}.
       until_login: Ativo até que o usuário se conecte.
@@ -3002,6 +3062,14 @@ pt:
       showing_page: Página %{page}
       next: Próximo »
       previous: « Anterior
+  user_mutes:
+    index:
+      title: Usuários silenciados
+      table:
+        tbody:
+          send_message: Enviar mensagem
+    destroy:
+      error: Não foi possível silenciar o usuário. Por favor tente novamente.
   notes:
     index:
       title: Notas postadas ou comentadas por %{user}
@@ -3038,6 +3106,7 @@ pt:
       reactivate: Reativar
       comment_and_resolve: Comentar e resolver
       comment: Comentar
+      log_in_to_comment: Entre na sua conta para comentar esta nota
       report_link_html: Se esta nota contiver informação sensível que tenha de ser
         removida, podes %{link}.
       other_problems_resolve: Para qualquer outro problema com a nota, resolve-a pessoalmente
@@ -3095,12 +3164,10 @@ pt:
           other: Você está dentro %{count} pés deste ponto
       base:
         standard: Padrão
-        cyclosm: CyclOSM
         cycle_map: Ciclístico
         transport_map: Transporte Público
         tracestracktop_topo: Tracestrack Topo
         hot: Humanitário
-        opnvkarte: ÖPNVKarte
       layers:
         header: Camadas do mapa
         notes: Notas de mapa
@@ -3115,8 +3182,6 @@ pt:
       osm_france: OpenStreetMap França
       thunderforest_credit: Mosaico cortesia de %{thunderforest_link}
       andy_allan: Andy Allan
-      opnvkarte_credit: Mosaico cortesia de %{memomaps_link}
-      memomaps: MeMoMaps
       tracestrack_credit: Mosaico cortesia de %{tracestrack_link}
       hotosm_credit: Estilo de mosaico por %{hotosm_link} hospedado por %{osm_france_link}
       hotosm_name: Humanitarian OpenStreetMap Team
@@ -3129,6 +3194,8 @@ pt:
       map_data_zoom_in_tooltip: Aproxime para ver dados do mapa
       queryfeature_tooltip: Consultar elementos
       queryfeature_disabled_tooltip: Aproxime para consultar elementos
+      embed_html_disabled: A incorporação de HTML não está disponível para esta camada
+        do mapa
     changesets:
       show:
         comment: Comentar
@@ -3139,7 +3206,7 @@ pt:
     edit_help: Mover o mapa e ampliar uma localização que pretende editar e clique
       aqui.
     directions:
-      ascend: Ascender
+      ascend: Ascenção
       engines:
         fossgis_osrm_bike: Bicicleta (OSRM)
         fossgis_osrm_car: Carro (OSRM)
@@ -3149,8 +3216,8 @@ pt:
         graphhopper_foot: A pé (GraphHopper)
         fossgis_valhalla_bicycle: Bicicleta (Valhalla)
         fossgis_valhalla_car: Carro (Valhalla)
-        fossgis_valhalla_foot: Pé (Valhalla)
-      descend: Descender
+        fossgis_valhalla_foot: A pé (Valhalla)
+      descend: Descida
       directions: Itinerário
       distance: Distância
       distance_m: '%{distance}m'
@@ -3159,63 +3226,63 @@ pt:
         no_route: Rota entre esses dois lugares não encontrada.
         no_place: Desculpe - não foi possível encontrar '%{place}'.
       instructions:
-        continue_without_exit: Continuar em %{name}
+        continue_without_exit: Continue em %{name}
         slight_right_without_exit: Curva suave à direita para %{name}
-        offramp_right: Conduza até a rampa do lado direito
-        offramp_right_with_exit: Pegue a saída %{exit} a direita
-        offramp_right_with_exit_name: Pegue a saída %{exit} à direita na %{name}
-        offramp_right_with_exit_directions: Pegue a saída %{exit} à direita para %{directions}
-        offramp_right_with_exit_name_directions: Pegue a saída %{exit} à direita na
-          %{name}, em direção %{directions}
-        offramp_right_with_name: Pegue a via de acesso à direita na %{name}
-        offramp_right_with_directions: Conduza até a rampa do lado direito em direção
+        offramp_right: Pegue a rampa à direita
+        offramp_right_with_exit: Pegue a saída %{exit} à direita
+        offramp_right_with_exit_name: Pegue a saída %{exit} à direita para %{name}
+        offramp_right_with_exit_directions: Pegue a saída %{exit} à direita em direção
           a %{directions}
-        offramp_right_with_name_directions: Conduza até a rampa do lado direito para
+        offramp_right_with_exit_name_directions: Pegue a saída %{exit} à direita para
           %{name}, em direção a %{directions}
-        onramp_right_without_exit: Vire à direita, na via de acesso, na %{name}
+        offramp_right_with_name: Pegue a rampa à direita para %{name}
+        offramp_right_with_directions: Pegue a rampa à direita em direção a %{directions}
+        offramp_right_with_name_directions: Pegue a rampa à direita para %{name},
+          em direção a %{directions}
+        onramp_right_without_exit: Vire à direita na rampa para %{name}
         onramp_right_with_directions: Vire à direita na rampa em direção a %{directions}
         onramp_right_with_name_directions: Vire à direita na rampa para %{name}, em
           direção a %{directions}
-        onramp_right_without_directions: Vire à direita na rampa
+        onramp_right_without_directions: Vire à direita para a rampa
         onramp_right: Vire à direita para a rampa
-        endofroad_right_without_exit: No fim da estrada, vire à direita na %{name}
-        merge_right_without_exit: Entre à direita na %{name}
-        fork_right_without_exit: Na bifurcação, vire à direita na %{name}
+        endofroad_right_without_exit: No fim da estrada, vire à direita para %{name}
+        merge_right_without_exit: Entre à direita para %{name}
+        fork_right_without_exit: Na bifurcação, vire à direita para %{name}
         turn_right_without_exit: Vire à direita para %{name}
         sharp_right_without_exit: Curva acentuada à direita para %{name}
         uturn_without_exit: Retorno em %{name}
         sharp_left_without_exit: Curva acentuada à esquerda para %{name}
         turn_left_without_exit: Vire à esquerda para %{name}
-        offramp_left: Conduza até a rampa do lado esquerdo
+        offramp_left: Pegue a rampa à esquerda
         offramp_left_with_exit: Pegue a saída %{exit} à esquerda
-        offramp_left_with_exit_name: Pegue a saída %{exit} à esquerda na %{name}
-        offramp_left_with_exit_directions: Pegue a saída %{exit} à esquerda para %{directions}
-        offramp_left_with_exit_name_directions: Pegue a saída %{exit} à esquerda na
-          %{name}, em direção %{directions}
-        offramp_left_with_name: Pegue a via de acesso à esquerda na %{name}
-        offramp_left_with_directions: Conduza até a rampa do lado esquerdo em direção
+        offramp_left_with_exit_name: Pegue a saída %{exit} à esquerda para %{name}
+        offramp_left_with_exit_directions: Pegue a saída %{exit} à esquerda em direção
           a %{directions}
-        offramp_left_with_name_directions: Conduza até a tampa do lado esquerdo para
+        offramp_left_with_exit_name_directions: Pegue a saída %{exit} à esquerda para
           %{name}, em direção a %{directions}
-        onramp_left_without_exit: Vire à esquerda, na via de acesso, na %{name}
+        offramp_left_with_name: Pegue a rampa à esquerda para %{name}
+        offramp_left_with_directions: Pegue a rampa à esquerda em direção a %{directions}
+        offramp_left_with_name_directions: Pegue a rampa à esquerda para %{name},
+          em direção a %{directions}
+        onramp_left_without_exit: Vire à esquerda na rampa para %{name}
         onramp_left_with_directions: Vire à esquerda na rampa em direção a %{directions}
         onramp_left_with_name_directions: Vire à esquerda na rampa para %{name}, em
           direção a %{directions}
-        onramp_left_without_directions: Vire à esquerda na rampa
+        onramp_left_without_directions: Vire à esquerda para a rampa
         onramp_left: Vire à esquerda para a rampa
-        endofroad_left_without_exit: No fim da estrada, vire à esquerda na %{name}
-        merge_left_without_exit: Entre à esquerda na %{name}
-        fork_left_without_exit: Na bifurcação, vire à esquerda na %{name}
-        slight_left_without_exit: Esquerda suave para %{name}
-        via_point_without_exit: (ponto de passagem)
+        endofroad_left_without_exit: No fim da estrada, vire à esquerda para %{name}
+        merge_left_without_exit: Entre à esquerda para %{name}
+        fork_left_without_exit: Na bifurcação, vire à esquerda para %{name}
+        slight_left_without_exit: Curva suave à esquerda para %{name}
+        via_point_without_exit: (ponto intermediário)
         follow_without_exit: Siga %{name}
         roundabout_without_exit: Na rotatória, pegue a saída para %{name}
         leave_roundabout_without_exit: Saia da rotatória - %{name}
         stay_roundabout_without_exit: Mantenha-se na rotatória - %{name}
         start_without_exit: Comece em %{name}
-        destination_without_exit: Chegue ao destino
-        against_oneway_without_exit: Vá contra o sentido da mão única em %{name}
-        end_oneway_without_exit: Final de mão única em %{name}
+        destination_without_exit: Chegada ao destino
+        against_oneway_without_exit: Vá na contra-mão em %{name}
+        end_oneway_without_exit: Fim de mão única em %{name}
         roundabout_with_exit: Na rotatória, pegue a saída %{exit} para %{name}
         roundabout_with_exit_ordinal: Na rotatória, pegue %{exit} saída para %{name}
         exit_roundabout: Saia da rotatória para %{name}
@@ -3241,8 +3308,8 @@ pt:
       error: 'Erro ao contatar %{server}: %{error}'
       timeout: Tempo esgotado com %{server}
     context:
-      directions_from: Início da rota
-      directions_to: Destino da rota
+      directions_from: Início de rota a partir daqui
+      directions_to: Fim de rota até daqui
       add_note: Adicionar uma nota aqui
       show_address: Mostrar endereço
       query_features: Consultar elementos
@@ -3254,9 +3321,9 @@ pt:
     index:
       empty: Nenhuma anulação para mostrar.
       heading: Lista de anulações
-      title: Lista de redações
+      title: Lista de anulações
     new:
-      heading: Digite informações para a nova anulação
+      heading: Introduza a informação da nova anulação
       title: Criando uma nova anulação
     show:
       description: 'Descrição:'
@@ -3264,7 +3331,7 @@ pt:
       title: Exibindo anulação
       user: 'Criador:'
       edit: Editar esta anulação
-      destroy: Remover esta redação
+      destroy: Remover esta anulação
       confirm: Tem certeza?
     create:
       flash: Anulação criada.
@@ -3273,8 +3340,8 @@ pt:
     destroy:
       not_empty: A anulação não está vazia. Desanule todas as versões pertencentes
         a esta anulação antes de destruí-la.
-      flash: Redação destruída.
-      error: Houve um erro ao destruir esta anulação.
+      flash: Anulação eliminada.
+      error: Houve um erro ao tentar eliminar esta anulação.
   validations:
     leading_whitespace: tem espaço em branco principal
     trailing_whitespace: tem espaço em branco à direita
index 17b67a124b4a16515d5d928f4023993638cbb0d9..a99bce959e3e5d586e877f6419ee361eb3afe719 100644 (file)
@@ -9,6 +9,7 @@
 # Author: EddyPetrisor
 # Author: GabiBil
 # Author: Gravitystorm
+# Author: Heron702
 # Author: Kyouko
 # Author: Lucdrei
 # Author: MSClaudiu
@@ -240,7 +241,6 @@ ro:
   auth:
     providers:
       none: Fără
-      openid: OpenID
       google: OpenID
       facebook: OpenID
       microsoft: Microsoft
@@ -295,6 +295,8 @@ ro:
         retain_changeset_discussions: Discuțiile dvs. privind setul de modificări,
           dacă există, vor fi păstrate.
         retain_email: Adresa dvs. de e-mail va fi păstrată.
+        recent_editing_html: Deoarece ați editat recent, contul dvs. nu poate fi șters
+          în prezent. Ștergerea va fi posibilă în %{time}.
         confirm_delete: Sunteți sigur(ă)?
         cancel: Anulează
   accounts:
@@ -377,14 +379,10 @@ ro:
       way_paginated: Căi (%{x}-%{y} din %{count})
       relation: Comunicații (%{count})
       relation_paginated: Comunicații (%{x}-%{y} din %{count})
-      comment: Comentarii (%{count})
       hidden_comment_by_html: Comentariu ascuns de la %{user} %{time_ago}
       comment_by_html: Comentariu de la %{user} %{time_ago}
       changesetxml: Set de modificări XML
       osmchangexml: XML osmChange
-      feed:
-        title: 'Set de modificări: %{id}'
-        title_comment: Set de modificări %{id} — %{comment}
       join_discussion: Conectați-vă pentru a vă alătura discuției
       discussion: Discuție
       still_open: Setul de schimbări este deschis - discuția se va deschide atunci
@@ -497,6 +495,9 @@ ro:
       no_more_area: Nu s-au mai găsit seturi de modificări în această zonă.
       no_more_user: Nu s-au mai găsit seturi de modificări făcute de acest utilizator.
       load_more: Încarcă mai multe
+      feed:
+        title: 'Set de modificări: %{id}'
+        title_comment: Set de modificări %{id} — %{comment}
     timeout:
       sorry: Ne pare rău, preluarea listei de modificări pe care ați solicitat-o a
         durat prea mult.
@@ -516,6 +517,7 @@ ro:
     contact:
       km away: '%{count} km depărtare'
       m away: '%{count} m depărtare'
+      latest_edit_html: 'Ultima modificare %{ago}:'
     popup:
       your location: Locația utilizatorului
       nearby mapper: Cartograful din apropiere
@@ -1493,9 +1495,9 @@ ro:
         few: '%{count} raporturi'
         other: ""
       no_reports: Fara rapoarte
-      report_created_at: Prima dată raportată la %{datetime}
-      last_resolved_at: Ultima rezolvată la %{datetime}
-      last_updated_at: Ultima actualizare la %{datetime} de către %{displayname}
+      report_created_at_html: Prima dată raportată la %{datetime}
+      last_resolved_at_html: Ultima rezolvată la %{datetime}
+      last_updated_at_html: Ultima actualizare la %{datetime} de către %{displayname}
       resolve: Rezolvat
       ignore: Ignoră
       reopen: Redeschide
@@ -1775,8 +1777,6 @@ ro:
   messages:
     inbox:
       title: Mesaje primite
-      my_inbox: Mesaje primite
-      my_outbox: Mesaje trimise
       messages: Aveți mesaje %{new_messages} și %{old_messages}
       new_messages:
         one: '%{count} mesaj nou'
@@ -1784,12 +1784,15 @@ ro:
       old_messages:
         one: '%{count} mesaj vechi'
         other: '%{count} mesaje vechi'
-      from: De la
-      subject: Subiect
-      date: Dată
       no_messages_yet_html: Nu aveți încă mesaje. De ce să nu intri în legătură cu
         unele dintre %{people_mapping_nearby_link}?
       people_mapping_nearby: oameni care cartografiază în apropiere
+    messages_table:
+      from: De la
+      to: Către
+      subject: Subiect
+      date: Dată
+      actions: Acțiuni
     message_summary:
       unread_button: Marchează ca necitit
       read_button: Marchează ca citit
@@ -1809,14 +1812,10 @@ ro:
       body: Ne pare rău că nu există niciun mesaj cu acel id.
     outbox:
       title: Mesaje trimise
-      my_inbox: Mesaje primite
-      my_outbox: Mesaje trimise
+      actions: Acțiuni
       messages:
         one: Aveți %{count} mesaj trimis
         other: Aveți %{count} (de) mesaje trimise
-      to: Către
-      subject: Subiect
-      date: Dată
       no_sent_messages_html: Nu aveți mesaje trimise încă. De ce să nu intri în legătură
         cu unele dintre %{people_mapping_nearby_link}?
       people_mapping_nearby: oameni care cartografiază în apropiere
@@ -1835,28 +1834,34 @@ ro:
         ca utilizatorul corect pentru a-l citi.
     sent_message_summary:
       destroy_button: Șterge
+    heading:
+      my_inbox: Mesaje primite
+      my_outbox: Mesaje trimise
     mark:
       as_read: Mesaj marcat ca fiind citit
       as_unread: Mesaj marcat ca necitit
     destroy:
       destroyed: Mesaj șters
   passwords:
-    lost_password:
+    new:
       title: Parola pierdută
       heading: Ai uitat parola?
       email address: 'Adresa de e-mail:'
       new password button: Resetare parolă
       help_text: Introduceți adresa de e-mail pe care ați utilizat-o pentru a vă înscrie,
         vom trimite un link la aceasta pe care îl puteți utiliza pentru a reseta parola.
+    create:
       notice email on way: Ne pare rău că ați pierdut-o :-( dar un e-mail este pe
         drum, astfel încât să puteți să-l resetați în curând.
       notice email cannot find: Nu am putut găsi adresa de e-mail, îmi pare rău.
-    reset_password:
+    edit:
       title: Resetare parolă
       heading: Resetați parola pentru %{user}
       reset: Resetează parola
-      flash changed: Parola dumneavoastră a fost schimbată.
       flash token bad: Nu ați găsit acel simbol, verificați adresa URL?
+    update:
+      flash changed: Parola dumneavoastră a fost schimbată.
+      flash token bad: Nu s-a găsit acel simbol, poate verificați adresa URL?
   preferences:
     show:
       title: Preferințe
@@ -1903,7 +1908,6 @@ ro:
       heading: Autentificare
       email or username: 'Adresa de e-mail sau numele de utilizator:'
       password: 'Parolă:'
-      openid_html: '%{logo} OpenID:'
       remember: Ține-mă minte
       lost password link: Parolă pierdută/uitată?
       login_button: Autentificare
@@ -1961,6 +1965,7 @@ ro:
       image: Imagine
       alt: Text alternativ
       url: URL
+      codeblock: Bloc cod sursă
     richtext_field:
       edit: Editează
       preview: Previzualizare
@@ -2112,6 +2117,9 @@ ro:
           Resources Canada) și StatCan (Divizia de Geografie,
           Statistics Canada).
         contributors_ca_canada: Canada
+        contributors_cz_czechia: Cehia
+        contributors_cz_cc_licence: Creative Commons Attribution 4.0 International
+          licence (CC BY 4.0)
         contributors_fi_credit_html: |-
           %{finland}: Conține date din
           National Land Survey of Finland's Topographic Database
@@ -2207,12 +2215,7 @@ ro:
         pentru această caracteristică.
     export:
       title: Exportare
-      area_to_export: Zona pentru export
       manually_select: Selectați manual o altă zonă
-      format_to_export: Format de exportat
-      osm_xml_data: Date XML OpenStreetMap
-      map_image: Imagine hartă (arată stratul standard)
-      embeddable_html: HTML încorporabil
       licence: Licență
       licence_details_html: Datele OpenStreetMap sunt licențiate sub %{odbl_link}
         (ODbL).
@@ -2237,17 +2240,6 @@ ro:
         other:
           title: Alte surse
           description: Surse suplimentare listate pe wiki-ul OpenStreetMap
-      options: Opțiuni
-      format: Format
-      scale: Scară
-      max: max
-      image_size: Dimensiune imagine
-      zoom: Zoom
-      add_marker: Adaugă un marcator pe hartă
-      latitude: 'Lat:'
-      longitude: 'Long:'
-      output: Date de ieșire
-      paste_html: Inserați HTML pentru a încorpora în site-ul web
       export_button: Exportare
     fixthemap:
       title: Raportați o problemă / Reparați harta
@@ -2285,17 +2277,13 @@ ro:
         url: http://wiki.openstreetmap.org/wiki/Ro:Beginners%27_guide
         title: Ghidul începătorilor
         description: Ghid menținut de comunitate pentru începători.
-      help:
-        title: Ajutor Forum
-        description: Adresează o întrebare sau caută răspunsuri pe site-ul OpenStreetMap
-          de întrebări și răspunsuri.
+      community:
+        title: Forumul Comunității
+        description: Un loc comun pentru discuții despre OpenStreetMap.
       mailing_lists:
         title: Lista de e-mail-uri
         description: Adresați o întrebare sau discutați despre probleme interesante
           pe o gamă largă de liste de discuții de actualitate sau regionale.
-      community:
-        title: Forumul Comunității
-        description: Un loc comun pentru discuții despre OpenStreetMap.
       irc:
         title: IRC
         description: Chat interactiv în multe limbi diferite și pe mai multe subiecte.
@@ -2349,6 +2337,7 @@ ro:
           primary: Drum primar
           secondary: Drum secundar
           unclassified: Drum neclasificat
+          pedestrian: Cale pietonală
           track: Înregistrare GPS
           bridleway: Traseu de călărie
           cycleway: Pistă de biciclete
@@ -2357,36 +2346,41 @@ ro:
           cycleway_local: Rețeaua locală de ciclism
           footway: Trotuar
           rail: Cale ferată
+          train: Tren
           subway: Stație de metrou
-          tram:
-          - Metrou
-          - tramvai
-          cable:
-          - Telecabină
-          - Telescaun
-          runway:
-          - Pistă de Aeroport
-          - taxiway
-          apron:
-          - Aeronavă
-          - terminal
+          ferry: Feribot
+          tram: Tramvai
+          trolleybus: Troleibuz
+          bus: Autobuz
+          cable_car: Telecabină
+          chair_lift: Telescaun
+          runway: Pistă de Aeroport
+          taxiway: taxiway
+          apron: Aeronavă
           admin: Graniță administrativă
+          orchard: Livadă
+          vineyard: Podgorie
           forest: Pădure
           wood: Lemn
+          farmland: Teren agricol
+          grass: Iarbă
+          meadow: Luncă
+          bare_rock: Stâncă goală
+          sand: Nisip
           golf: Teren de golf
           park: Parc
+          common: Comun
+          built_up: Zonă construită
           resident: Zonă rezidențială
-          common:
-          - Comun
-          - luncă
-          - grădină
           retail: Spațiul de retail
           industrial: Zonă industrială
           commercial: Zonă comercială
           heathland: Landă
-          lake:
-          - Lac
-          - Rezervor
+          lake: Lac
+          reservoir: Rezervor
+          intermittent_water: Corp de apă intermitent
+          glacier: Ghețar
+          reef: Recif
           farm: Fermă
           brownfield: Terenuri industriale dezafectate
           cemetery: Cimitir
@@ -2395,19 +2389,20 @@ ro:
           centre: Centru de sport
           reserve: Rezervație naturală
           military: Zonă militară
-          school:
-          - Școală
-          - Universitate
+          school: School; university
+          university: Universitate
+          hospital: Spital
           building: Clădire importantă
           station: Gară
-          summit:
-          - Vârf de munte
-          - Vârf
+          summit: Vârf de munte
+          peak: Vârf
           tunnel: Dashed casing = tunel
           bridge: Black casing = pod
           private: Acces privat
           destination: Accesul la destinație
           construction: Drumuri în construcție
+          bus_stop: Stație de autobuz
+          stop: Stație
           bicycle_shop: Magazin de biciclete
           bicycle_parking: Parcare pentru biciclete
           toilets: Toalete
@@ -2453,6 +2448,7 @@ ro:
         imports: Importurile
         automated_edits: Editări automate
       start_mapping: Începeți să cartografiați
+      continue_authorization: Continuați autorizarea
       add_a_note:
         title: Nu aveți timp pentru editare? Adaugați o notă!
         para_1: |-
@@ -2649,6 +2645,7 @@ ro:
       read_gpx: Citiți track-urile GPS private
       write_gpx: Încărcați track-uri GPS
       write_notes: Modificați notele
+      write_redactions: Redactați datele hărții
       read_email: Citiți adresa de e-mail a utilizatorului
       skip_authorization: Aprobare automată a cererii
   oauth_clients:
@@ -2838,7 +2835,6 @@ ro:
       ct status: 'Termenii colaboratorului:'
       ct undecided: Nedefinit
       ct declined: Declinat
-      latest edit: 'Ultima modificare %{ago}:'
       email address: 'Adresa de e-mail:'
       created from: 'Creat de la:'
       status: 'Statut:'
@@ -2846,12 +2842,15 @@ ro:
       role:
         administrator: Acest utilizator este un administrator
         moderator: Acest utilizator este un moderator
+        importer: Acest utilizator este un importator
         grant:
           administrator: Acordați permisiunile de administrator
           moderator: Acordați accesul de moderator
+          importer: Acordați acces de importator
         revoke:
           administrator: Revocă accesul de administrator
           moderator: Revocă accesul de moderator
+          importer: Revocați accesul de importator
       block_history: Blocări active
       moderator_history: Blocări acordate
       comments: Comentarii
@@ -2961,8 +2960,8 @@ ro:
     revoke:
       title: Revocarea blocării pe %{block_on}
       heading_html: Revocarea blocării pe %{block_on} de %{block_by}
-      time_future: Această blocare se va termina pe %{time}.
-      past: Această blocare s-a încheiat în urmă cu %{time} și nu poate fi revocată
+      time_future_html: Această blocare se va termina pe %{time}.
+      past_html: Această blocare s-a încheiat în urmă cu %{time} și nu poate fi revocată
         acum.
       confirm: Sigur doriți să revocați această blocare?
       revoke: Revocă!
@@ -3031,6 +3030,13 @@ ro:
       showing_page: Pagina %{page}
       next: Următoarea »
       previous: « Precedenta
+  user_mutes:
+    index:
+      table:
+        thead:
+          actions: Acțiuni
+        tbody:
+          send_message: Trimite mesajul
   notes:
     index:
       title: Notele trimise sau comentate de %{user}
@@ -3126,12 +3132,10 @@ ro:
           other: Sunteți la %{count} de picioare de acest punct
       base:
         standard: Standard
-        cyclosm: CyclOSM
         cycle_map: Hartă de ciclism
         transport_map: Hartă de transport
         tracestracktop_topo: Tracestrack Topo
         hot: Umanitară
-        opnvkarte: ÖPNVKarte
       layers:
         header: Straturile hărții
         notes: Notație hartă
@@ -3146,8 +3150,6 @@ ro:
       osm_france: OpenStreetMap Franța
       thunderforest_credit: Plăci prin amabilitatea lui %{thunderforest_link}
       andy_allan: Andy Allan
-      opnvkarte_credit: Tile-uri prin amabilitatea lui %{memomaps_link}
-      memomaps: MeMoMaps
       tracestrack_credit: Tile-uri prin amabilitatea lui %{tracestrack_link}
       hotosm_credit: Stilul tile-urilor creat de %{hotosm_link} găzduit de %{osm_france_link}
       hotosm_name: Echipa Umanitară OpenStreetMap
@@ -3160,6 +3162,8 @@ ro:
       map_data_zoom_in_tooltip: Mărește pentru a vedea datele hărții
       queryfeature_tooltip: Funcții de interogare
       queryfeature_disabled_tooltip: Mărește caracteristicile de interogare
+      embed_html_disabled: Încorporarea HTML nu este disponibilă pentru acest strat
+        de hartă
     changesets:
       show:
         comment: Comentariu
index 9930c2f18b825307d450eddfd06d9c5f79cf0213..d22c9bbf16b63036a50a4086ef09838a331ed23c 100644 (file)
@@ -329,7 +329,6 @@ ru:
   auth:
     providers:
       none: Отсутствует
-      openid: OpenID
       google: Google
       facebook: Facebook
       github: GitHub
@@ -458,13 +457,9 @@ ru:
       way_paginated: Линии (%{x}-%{y} из %{count})
       relation: Отношения (%{count})
       relation_paginated: Отношения (%{x}-%{y} из %{count})
-      comment: Комментарии (%{count})
       comment_by_html: Комментарий от %{user} %{time_ago}
       changesetxml: XML пакета правок
       osmchangexml: osmChange XML
-      feed:
-        title: Пакет правок %{id}
-        title_comment: Пакет правок %{id} — %{comment}
       join_discussion: Войдите в систему, чтобы присоединиться к обсуждению
       discussion: Обсуждение
       still_open: Пакет правок ещё открыт. Обсуждение будет доступно, как только пакет
@@ -533,7 +528,7 @@ ru:
       feature_warning: Необходимо загрузить %{num_features} объектов, что может замедлить
         ваш браузер. Вы уверены что хотите просмотреть эти данные?
       load_data: Загрузить данные
-      loading: Ð\97агÑ\80Ñ\83зка...
+      loading: Ð\97агÑ\80Ñ\83жаеÑ\82Ñ\81Ñ\8fâ\80¦
     tag_details:
       tags: Теги
       wiki_link:
@@ -578,6 +573,9 @@ ru:
       no_more_area: Нет больше пакетов правок в этой области.
       no_more_user: Нет больше пакетов правок от этого пользователя.
       load_more: Загрузить ещё
+      feed:
+        title: Пакет правок %{id}
+        title_comment: Пакет правок %{id} — %{comment}
     timeout:
       sorry: К сожалению, список пакетов правок, который вы запросили, требует слишком
         много времени для извлечения.
@@ -597,6 +595,7 @@ ru:
     contact:
       km away: '%{count} км от вас'
       m away: '%{count} м от вас'
+      latest_edit_html: 'Последняя правка (%{ago}):'
     popup:
       your location: Ваше местоположение
       nearby mapper: Ближайший картограф
@@ -900,7 +899,7 @@ ru:
           college: Здание колледжа
           commercial: Офисное здание
           construction: Строящееся здание
-          detached: Ð\9eÑ\81обнÑ\8fк
+          detached: Ð\9eÑ\82делÑ\8cноÑ\81Ñ\82оÑ\8fÑ\89ий Ð¶Ð¸Ð»Ð¾Ð¹ Ð´Ð¾Ð¼
           dormitory: Общежитие
           duplex: Дуплекс
           farm: Ферма
@@ -920,7 +919,7 @@ ru:
           office: Офисное здание
           public: Общественное здание
           residential: Жилой дом
-          retail: Ð\97дание Ð½Ð° Ð¿Ñ\80одажÑ\83
+          retail: Ð¢Ð¾Ñ\80говое Ð·Ð´Ð°Ð½Ð¸Ðµ
           roof: Крыша
           ruins: Разрушенное здание
           school: Здание школы
@@ -930,7 +929,7 @@ ru:
           stable: Конюшня
           static_caravan: Передвижной дом
           temple: Здание храма
-          terrace: Ð\97дание Ñ\81 Ñ\82еÑ\80Ñ\80аÑ\81ой
+          terrace: Ð Ñ\8fд Ð´Ð¾Ð¼Ð¾Ð²
           train_station: Железнодорожный вокзал
           university: Университет
           warehouse: Склад
@@ -1531,9 +1530,9 @@ ru:
         zero: Нет сообщений
         one: 1 сообщение
         other: '%{count} сообщений'
-      report_created_at: Впервые сообщено %{datetime}
-      last_resolved_at: Последний раз обработано %{datetime}
-      last_updated_at: Последнее обновление %{datetime} пользователем %{displayname}
+      report_created_at_html: Впервые сообщено %{datetime}
+      last_resolved_at_html: Последний раз обработано %{datetime}
+      last_updated_at_html: Последнее обновление %{datetime} пользователем %{displayname}
       resolve: Обработать
       ignore: Игнорировать
       reopen: Переоткрыть
@@ -1811,8 +1810,6 @@ ru:
   messages:
     inbox:
       title: Входящие
-      my_inbox: Мои входящие
-      my_outbox: Мои исходящие
       messages: У вас %{new_messages} и %{old_messages}
       new_messages:
         few: '%{count} новых сообщения'
@@ -1824,11 +1821,14 @@ ru:
         many: '%{count} старых'
         one: '%{count} старое'
         other: '%{count} старых'
+      no_messages_yet_html: У вас пока нет сообщений. Почему бы не пообщаться с %{people_mapping_nearby_link}?
+      people_mapping_nearby: пользователями поблизости
+    messages_table:
       from: От
+      to: Кому
       subject: Тема
       date: Дата
-      no_messages_yet_html: У вас пока нет сообщений. Почему бы не пообщаться с %{people_mapping_nearby_link}?
-      people_mapping_nearby: пользователями поблизости
+      actions: Действия
     message_summary:
       unread_button: Пометить как непрочитанное
       read_button: Пометить как прочитанное
@@ -1854,16 +1854,12 @@ ru:
         Извините, но сообщения с таким ID нет.
     outbox:
       title: Исходящие
-      my_inbox: Мои входящие
-      my_outbox: Мои исходящие
+      actions: Действия
       messages:
         few: У вас %{count} отправленных сообщения
         many: У вас %{count} отправленных сообщений
         one: У вас %{count} отправленное сообщение
         other: У вас %{count} отправленных сообщений
-      to: Кому
-      subject: Тема
-      date: Дата
       no_sent_messages_html: Нет отправленных сообщений. Почему бы не пообщаться с
         %{people_mapping_nearby_link}?
       people_mapping_nearby: пользователями поблизости
@@ -1882,28 +1878,33 @@ ru:
         вашему вопросу пользователь, чтобы прочитать его.
     sent_message_summary:
       destroy_button: Удалить
+    heading:
+      my_inbox: Мои входящие
+      my_outbox: Мои исходящие
     mark:
       as_read: Сообщение отмечено как прочитанное
       as_unread: Сообщение отмечено как непрочитанное
     destroy:
       destroyed: Сообщение удалено
   passwords:
-    lost_password:
+    new:
       title: Восстановление пароля
       heading: Забыли пароль?
       email address: 'Адрес электронной почты:'
       new password button: Вышлите мне новый пароль
       help_text: Введите адрес вашей электронной почты, который вы использовали для
         подписки, и мы вышлем инструкции, как можно обновить ваш пароль.
+    create:
       notice email on way: Жаль, что вы потеряли пароль :-( но ничего, скоро придёт
         письмо и вы сможете поменять свой пароль.
       notice email cannot find: Такой адрес не зарегистрирован.
-    reset_password:
+    edit:
       title: Повторная установка пароля
       heading: Повторная установка пароля для %{user}
       reset: Установить пароль
-      flash changed: Ваш пароль был изменён.
       flash token bad: Невозможно найти такой код подтверждения, проверьте ссылку.
+    update:
+      flash changed: Ваш пароль был изменён.
   preferences:
     show:
       title: Мои предпочтения
@@ -1951,8 +1952,7 @@ ru:
       title: Представьтесь
       heading: Представьтесь
       email or username: 'Эл. почта или имя пользователя:'
-      password: 'Пароль:'
-      openid_html: '%{logo} OpenID:'
+      password: Пароль
       remember: Запомнить меня
       lost password link: Забыли пароль?
       login_button: Представиться
@@ -2166,12 +2166,7 @@ ru:
         этого режима.
     export:
       title: Экспортировать
-      area_to_export: Область для экспорта
       manually_select: Выделить другую область
-      format_to_export: Формат экспорта
-      osm_xml_data: Данные в формате OpenStreetMap XML
-      map_image: Изображение карты (показывает стандартный слой)
-      embeddable_html: Встраиваемый HTML
       licence: Лицензия
       too_large:
         advice: 'Если этот экспорт пройдёт неудачно, пожалуйста, попробуйте один из
@@ -2193,17 +2188,6 @@ ru:
         other:
           title: Другие источники
           description: Дополнительные источники, перечисленные в вики OpenStreetMap
-      options: Настройки
-      format: Формат
-      scale: Масштаб
-      max: макс.
-      image_size: 'Размер изображения:'
-      zoom: Приблизить
-      add_marker: Добавить маркер на карту
-      latitude: 'Широта:'
-      longitude: 'Долгота:'
-      output: Результат
-      paste_html: HTML-код для встраивания на сайт
       export_button: Экспортировать
     fixthemap:
       title: Сообщить о проблеме / исправить карту
@@ -2235,17 +2219,13 @@ ru:
         url: https://wiki.openstreetmap.org/wiki/RU:%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BD%D0%BE%D0%B2%D0%B8%D1%87%D0%BA%D0%B0
         title: Руководство для начинающих
         description: Сообщество поддерживает руководство для начинающих.
-      help:
-        title: Справочный форум
-        description: Задайте вопрос или найдите ответы на сайте вопросов и ответов
-          OpenStreetMap.
+      community:
+        title: Форум сообщества
+        description: Общедоступное место для разговоров об OpenStreetMap.
       mailing_lists:
         title: Списки рассылок
         description: Задайте вопрос или обсудите насущные вопросы в списке рассылок
           (количество активных пользователей зависит от языка).
-      community:
-        title: Форум сообщества
-        description: Общедоступное место для разговоров об OpenStreetMap.
       irc:
         title: IRC
         description: Интерактивный чат на разных языках и на разные темы.
@@ -2309,58 +2289,61 @@ ru:
           cycleway_local: Велодорожка местного значения
           footway: Пешеходная дорожка
           rail: Железная дорога
+          train: Поезд
           subway: Линия метро
-          tram:
-          - Легкорельсовый транспорт
-          - трамвай
-          cable:
-          - Канатная дорога
-          - кресельный подъёмник
-          runway:
-          - Взлётно-посадочная полоса аэропорта
-          - рулёжная дорожка
-          apron:
-          - Перрон аэродрома
-          - терминал
+          ferry: Паром
+          tram: Трамвай
+          trolleybus: Троллейбус
+          bus: Автобус
+          cable_car: Канатная дорога
+          chair_lift: кресельный подъёмник
+          runway: Взлётно-посадочная полоса аэропорта
+          taxiway: рулёжная дорожка
+          apron: Перрон аэродрома
           admin: Административная граница
+          orchard: Фруктовый сад
+          vineyard: Виноградник
           forest: Лес
           wood: Роща
+          farmland: Сельхозугодья
+          grass: Трава
+          meadow: Луг
           golf: Площадка для гольфа
           park: Парк
+          common: Общественная земля
+          built_up: Площадь застройки
           resident: Жилой район
-          common:
-          - Общественная земля
-          - луг
-          - сад
           retail: Торговый район
           industrial: Промышленный район
           commercial: Коммерческий район
           heathland: Вересковая пустошь
-          lake:
-          - Озеро
-          - водохранилище
+          lake: Озеро
+          reservoir: Водохранилище
+          glacier: Ледник
           farm: Ферма
           brownfield: Расчистка под застройку
           cemetery: Кладбище
           allotments: Сады-огороды, дачные участки
           pitch: Спортивная площадка
           centre: Спортивный центр
+          beach: Пляж
           reserve: Заповедник
           military: Военная территория
-          school:
-          - Школа
-          - университет
+          school: Школа, университет
+          university: Университет
+          hospital: Больница
           building: Значительное здание
           station: Железнодорожная станция
-          summit:
-          - Вершина
-          - пик
+          summit: Вершина
+          peak: Вершина горы
           tunnel: Туннель (пунктир)
           bridge: Мост (жирная линия)
           private: Частный доступ
           destination: Целевой доступ
           construction: Строительство дороги
+          bus_stop: Автобусная остановка
           bicycle_shop: Магазин велосипедов
+          bicycle_rental: Прокат велосипедов
           bicycle_parking: Парковка для велосипедов
           toilets: Туалет
     welcome:
@@ -2784,10 +2767,10 @@ ru:
       remove as friend: Удалить из друзей
       add as friend: Добавить в друзья
       mapper since: 'Зарегистрирован:'
+      uid: 'ID пользователя:'
       ct status: 'Условия участия:'
       ct undecided: Неопределено
       ct declined: Отклонены
-      latest edit: 'Последняя правка (%{ago}):'
       email address: 'Адрес Email:'
       created from: 'Создано из:'
       status: 'Статус:'
@@ -2795,6 +2778,7 @@ ru:
       role:
         administrator: Этот пользователь является администратором
         moderator: Этот пользователь является модератором
+        importer: Этот пользователь является импортером
         grant:
           administrator: Присвоить права администратора
           moderator: Присвоить права модератора
@@ -2910,8 +2894,8 @@ ru:
       title: Снять блокировку для %{block_on}
       heading_html: Отмена блокировки для пользователя %{block_on}, которую создал
         %{block_by}
-      time_future: Эта блокировка закончится через %{time}.
-      past: Эта блокировка закончилась %{time} и уже не может быть отменена.
+      time_future_html: Эта блокировка закончится через %{time}.
+      past_html: Эта блокировка закончилась %{time} и уже не может быть отменена.
       confirm: Вы уверены, что хотите снять эту блокировку?
       revoke: Снять блокировку!
       flash: Эта блокировка была снята.
@@ -2978,6 +2962,13 @@ ru:
       showing_page: Страница %{page}
       next: Следующая →
       previous: ← Предыдущая
+  user_mutes:
+    index:
+      table:
+        thead:
+          actions: Действия
+        tbody:
+          send_message: Отправить сообщение
   notes:
     index:
       title: Заметки, созданные или прокомментированный участником %{user}
@@ -3073,11 +3064,9 @@ ru:
           other: Вы находитесь в %{count} футах от этой точки
       base:
         standard: Стандартный
-        cyclosm: CyclOSM
         cycle_map: Велосипедная карта
         transport_map: Карта транспорта
         hot: Гуманитарная
-        opnvkarte: ÖPNVKarte
       layers:
         header: Слои карты
         notes: Заметки
@@ -3091,7 +3080,6 @@ ru:
       osm_france: OpenStreetMap Франция
       thunderforest_credit: Тайлы предоставлены %{thunderforest_link}
       andy_allan: Энди Аллан
-      opnvkarte_credit: Тайлы предоставлены %{memomaps_link}
       hotosm_credit: Стиль тайлов от %{hotosm_link} размещен на %{osm_france_link}
     site:
       edit_tooltip: Править карту
@@ -3102,6 +3090,7 @@ ru:
       map_data_zoom_in_tooltip: Увеличьте масштаб, чтобы увидеть данные карты
       queryfeature_tooltip: Что здесь?
       queryfeature_disabled_tooltip: Приблизьте карту для информации об объектах
+      embed_html_disabled: Встраивание HTML недоступно для этого слоя карты
     changesets:
       show:
         comment: Комментировать
index c48c8e850a534f8dd36a6b33c14757fa2e33d800..bc6fff49d9c114c2ae75b27c6c7c729da2f9247b 100644 (file)
@@ -113,7 +113,6 @@ sat:
   auth:
     providers:
       none: ᱚᱠᱟᱦᱚᱸ ᱵᱟᱝ
-      openid: OpenID
       google: ᱜᱩᱜᱟᱹᱞ
       facebook: ᱯᱷᱮᱥᱵᱩᱠ
       github: ᱜᱤᱴᱦᱚᱵ
@@ -155,7 +154,6 @@ sat:
       way: (%{count}) ᱦᱚᱨᱠᱚ
       relation: ᱥᱟᱹᱜᱟᱹᱭᱠᱩ (%{count})
       relation_paginated: ᱥᱟᱹᱜᱟᱹᱭᱠᱩ (%{x}-%{y} of %{count})
-      comment: (%{count})ᱚᱠᱛᱟᱠᱚ
       discussion: ᱜᱟᱞᱢᱟᱨᱟᱣ
     node:
       title_html: ᱜᱟᱸᱴᱷ:%{name}
@@ -505,26 +503,23 @@ sat:
     confirm_email:
       button: ᱜᱚᱴᱟᱭ ᱢᱮ
   messages:
-    inbox:
+    messages_table:
       subject: ᱵᱤᱥᱚᱭ
       date: ᱢᱟᱹᱦᱤᱛ
     message_summary:
       destroy_button: ᱜᱮᱫ ᱜᱤᱰᱤ
     new:
       title: ᱠᱷᱚᱵᱚᱨ ᱠᱩᱞ ᱢᱮ
-    outbox:
-      subject: ᱵᱤᱥᱚᱭ
-      date: ᱢᱟᱹᱦᱤᱛ
     show:
       destroy_button: ᱜᱮᱫ ᱜᱤᱰᱤ
       back: ᱛᱟᱭᱚᱢ
     sent_message_summary:
       destroy_button: ᱜᱮᱫ ᱜᱤᱰᱤ
   passwords:
-    lost_password:
+    new:
       title: ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱟᱫ ᱠᱮᱫᱟᱢ
       email address: 'ᱤᱢᱮᱞ ᱴᱷᱤᱠᱟᱹᱬᱟ:'
-    reset_password:
+    update:
       flash changed: ᱟᱢᱟᱜ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱫᱚ ᱵᱚᱫᱚᱞᱮᱱᱟ ᱾
   profiles:
     edit:
@@ -570,7 +565,6 @@ sat:
       user_page_link: ᱵᱮᱵᱦᱟᱨᱤᱭᱟᱜ ᱥᱟᱦᱴᱟ
     export:
       title: ᱵᱷᱮᱡᱟ
-      zoom: ᱞᱟᱹᱴᱩ
       export_button: ᱵᱷᱮᱡᱟ
     help:
       welcome:
@@ -589,8 +583,7 @@ sat:
           forest: ᱵᱤᱨ
           wood: ᱠᱟᱴᱷ
           park: ᱵᱟᱜᱟᱱ
-          school:
-          - ᱤᱛᱩᱱ ᱟᱥᱲᱟ
+          school: ᱤᱛᱩᱱ ᱟᱥᱲᱟ
           bicycle_shop: ᱥᱟᱭᱠᱤᱞ ᱫᱩᱠᱟᱹᱱ
           bicycle_parking: ᱥᱟᱭᱠᱤᱞ ᱯᱟᱨᱠᱤᱝ
           toilets: ᱴᱚᱭᱞᱮᱴᱠᱚ
index 4b22cd44f23ad07f4126df9216b4e8a990c076fc..b96c20584007b7cb7dbe27791f91bef01f458a85 100644 (file)
@@ -75,7 +75,7 @@ sc:
       tracetag: Eticheta de su sestadu
       user: Utente
       user_preference: Preferèntzias de s'utente
-      user_token: Còdighe de s'utente
+      user_token: Getone de s'utente
       way: Lìnia
       way_node: Nodu de su caminu
       way_tag: Eticheta de sa lìnia
@@ -218,7 +218,6 @@ sc:
   auth:
     providers:
       none: Niunu
-      openid: OpenID
       google: Google
       facebook: Facebook
       microsoft: Microsoft
@@ -274,6 +273,8 @@ sc:
         retain_changeset_discussions: Sos arresonos tuos in sos annantos de modìficas,
           si bi nd'at, s'ant a cunservare.
         retain_email: S'indiritzu tuo de posta eletrònica s'at a cunservare.
+        recent_editing_html: Sende chi as modificadu dae pagu su contu tuo non si
+          podet iscantzellare. Sa cantzelladura at a èssere possìbile in %{time}.
         confirm_delete: Seguru ses?
         cancel: Annulla
   accounts:
@@ -357,14 +358,10 @@ sc:
       way_paginated: Lìnias (%{x}-%{y} de %{count})
       relation: Relatziones (%{count})
       relation_paginated: Relatziones (%{x}-%{y} de %{count})
-      comment: Cummentos (%{count})
       hidden_comment_by_html: Cummentu cuadu de %{user} %{time_ago}
       comment_by_html: Cummentu de %{user} %{time_ago}
       changesetxml: XML de s'annantu de modìficas
       osmchangexml: XML in formadu osmChange
-      feed:
-        title: Annantu de modìficas %{id}
-        title_comment: Grupu de modìficas %{id} - %{comment}
       join_discussion: Intra pro t'aunire a s'arresonu
       discussion: Arresonu
       still_open: Annantu de modìficas galu abertu - s'arresonu s'at a abèrrere cando
@@ -476,6 +473,9 @@ sc:
       no_more_area: Perunu àteru annantu de modìficas in custa àrea.
       no_more_user: Perunu àteru grupu de modìficas de custu utente.
       load_more: Càrriga·nde de prus
+      feed:
+        title: Annantu de modìficas %{id}
+        title_comment: Grupu de modìficas %{id} - %{comment}
     timeout:
       sorry: S'elencu de annantos de modìficas chi as pedidu at bisongiadu de tropu
         tempus pro lu recuperare.
@@ -495,6 +495,7 @@ sc:
     contact:
       km away: ' a %{count} km de distàntzia'
       m away: ' a %{count} m de distàntzia'
+      latest_edit_html: 'Ùrtima modìfica (%{ago}):'
     popup:
       your location: Sa positzione tua
       nearby mapper: Mapadore a curtzu
@@ -600,10 +601,31 @@ sc:
           de s'utente finale
         interaction_required: Su serbidore de autorizatzione tenet bisòngiu de s'interatzione
           de s'utente finale
+        login_required: Su serbidore de autorizatzione tenet bisòngiu de s'autenticatzione
+          de s'utente finale
     flash:
       applications:
         create:
           notice: Aplicatzione registrada.
+    openid_connect:
+      errors:
+        messages:
+          auth_time_from_resource_owner_not_configured: Errore pro neghe de sa cunfiguratzione
+            mancante de Doorkeeper::OpenidConnect.configure.auth_time_from_resource_owner.
+          reauthenticate_resource_owner_not_configured: Errore pro neghe de sa cunfiguratzione
+            mancante de Doorkeeper::OpenidConnect.configure.reauthenticate_resource_owner.
+          resource_owner_from_access_token_not_configured: Errore pro neghe de sa
+            cunfiguratzione mancante de Doorkeeper::OpenidConnect.configure.resource_owner_from_access_token.
+          select_account_for_resource_owner_not_configured: Errore pro neghe de sa
+            cunfiguratzione mancante de Doorkeeper::OpenidConnect.configure.select_account_for_resource_owner.
+          subject_not_configured: Sa generatzione de su getone ID est fallida pro
+            neghe de sa cunfiguratzione mancante de Doorkeeper::OpenidConnect.configure.subject.
+    scopes:
+      address: Pòmpia s'indiritzu fìsicu tuo
+      email: Pòmpia s'indiritzu de posta eletrònica tuo
+      openid: Autèntica su contu tuo
+      phone: Pòmpia su nùmeru tuo de telèfonu
+      profile: Pòmpia sas informatziones de su profilu tuo
   errors:
     contact:
       contact_url_title: Canales de cuntatu diferentes ispiegados
@@ -1455,9 +1477,9 @@ sc:
         one: '%{count} sinnalatzione'
         other: '%{count} sinnalatziones'
       no_reports: Perunu informe
-      report_created_at: Sinnaladu pro sa prima borta su %{datetime}
-      last_resolved_at: Risoltu pro s'ùrtima borta su %{datetime}
-      last_updated_at: Ùrtima atualizatzione de %{displayname} su %{datetime}
+      report_created_at_html: Sinnaladu pro sa prima borta su %{datetime}
+      last_resolved_at_html: Risoltu pro s'ùrtima borta su %{datetime}
+      last_updated_at_html: Ùrtima atualizatzione de %{displayname} su %{datetime}
       resolve: Risolve
       ignore: Ignora
       reopen: Torra a abèrrere
@@ -1746,8 +1768,6 @@ sc:
   messages:
     inbox:
       title: Posta in intrada
-      my_inbox: Posta in intrada mea
-      my_outbox: Posta in essida mea
       messages: Tenes %{new_messages} e %{old_messages}
       new_messages:
         one: '%{count} messàgiu nou'
@@ -1755,12 +1775,14 @@ sc:
       old_messages:
         one: '%{count} messàgiu betzu'
         other: '%{count} messàgios betzos'
-      from: Dae
-      subject: 'Sugetu:'
-      date: Data
       no_messages_yet_html: Non tenes galu messàgios. Proite non chircas a calicuna
         de sas %{people_mapping_nearby_link}?
       people_mapping_nearby: persones chi mapant a curtzu a tie
+    messages_table:
+      from: Dae
+      to: Cara a
+      subject: 'Sugetu:'
+      date: Data
     message_summary:
       unread_button: Sinna comente no lèghidu
       read_button: Sinna comente lèghidu
@@ -1780,14 +1802,9 @@ sc:
       body: Non b'at perunu messàgiu cun custu id.
     outbox:
       title: Posta in essida
-      my_inbox: Posta in intrada mea
-      my_outbox: Posta in essida mea
       messages:
         one: Tenes %{count} messàgiu imbiadu
         other: Tenes %{count} messàgios imbiados
-      to: Cara a
-      subject: 'Sugetu:'
-      date: Data
       no_sent_messages_html: Non tenes galu messàgios imbiados. Proite non chircas
         a calicuna de sas %{people_mapping_nearby_link}?
       people_mapping_nearby: persones chi mapant a curtzu a tie
@@ -1806,13 +1823,16 @@ sc:
         s'utente curretu pro lu lèghere.
     sent_message_summary:
       destroy_button: Cantzella
+    heading:
+      my_inbox: Posta in intrada mea
+      my_outbox: Posta in essida mea
     mark:
       as_read: Messàgiu marcadu comente lèghidu
       as_unread: Messàgiu marcadu comente non lèghidu
     destroy:
       destroyed: Messàgiu iscantzelladu
   passwords:
-    lost_password:
+    new:
       title: Crae de intrada pèrdida
       heading: Ais ismentigadu sa crae de intrada?
       email address: 'Indiritzu de posta eletrònica:'
@@ -1820,16 +1840,18 @@ sc:
       help_text: Inserta s'indiritzu de posta chi as impreadu pro ti registrare, l'amus
         a imbiare unu ligàmene chi as a pòdere impreare pro ripristinare sa crae de
         intrada tua.
+    create:
       notice email on way: Nos dispraghet chi l'apas pèrdida :-( ma t'amus imbiadu
         unu messàgiu de posta eletrònica pro chi la potzas ripristinare.
       notice email cannot find: A dolu mannu non semus resèssidos a agatare custu
         indiritzu de posta eletrònica.
-    reset_password:
+    edit:
       title: Riprìstina sa crae de intrada
       heading: Riprìstina sa crae de intrada pro %{user}
       reset: Riprìstina sa crae de intrada
-      flash changed: Sa crae de intrada tua est istada mudada.
       flash token bad: No amus agatadu custu getone, proa a verificare s'URL.
+    update:
+      flash changed: Sa crae de intrada tua est istada mudada.
   preferences:
     show:
       title: Preferèntzias meas
@@ -1877,7 +1899,6 @@ sc:
       heading: Intra
       email or username: 'Indiritzu de posta o nùmene de utente:'
       password: 'Crae:'
-      openid_html: '%{logo} OpenID:'
       remember: Ammenta·ti de mene
       lost password link: Ais pèrdidu sa crae de intrada tua?
       login_button: Intra
@@ -2083,6 +2104,12 @@ sc:
           Naturales de su Cànada), e StatCan (Divisione de Geografia,
           Istatìsticas de su Cànada).
         contributors_ca_canada: Cànada
+        contributors_cz_credit_html: '%{czechia}: Cuntenet datos de s''Amministratzione
+          Istatale pro sa Medida de su Terrinu e de su Catastu cun litzèntzia suta
+          de sa %{cc_licence_link}'
+        contributors_cz_czechia: Tzèchia
+        contributors_cz_cc_licence: Litzèntzia internatzionale Creative Commons Atributzione
+          4.0 (CC BY 4.0)
         contributors_fi_credit_html: |-
           %{finland}: Cuntenet datos dae sa
           base de datos topogràficos de su Servìtziu Natzionale de su Territòriu Finlandesu e àteros annantos de datos, suta de sa %{nlsfi_license_link}.
@@ -2176,12 +2203,7 @@ sc:
         chi sunt netzessàrios pro custa funtzionalidade.
     export:
       title: Esporta
-      area_to_export: Àrea de esportare
       manually_select: Seletziona un'àrea diferente in manera manuale
-      format_to_export: Formadu de esportatzione
-      osm_xml_data: Datos XML de OpenStreetMap
-      map_image: Immàgine de sa mapa (ammustrat s'istratu istandard)
-      embeddable_html: HTML incorporàbile
       licence: Litzèntzia
       licence_details_html: Sos datos de OpenStreetMap sunt suta de sa litzèntzia
         %{odbl_link} (ODbL).
@@ -2207,17 +2229,6 @@ sc:
         other:
           title: Àteras fontes
           description: Fontes additzionales postas in lista in sa wiki de OpenStreetMap
-      options: Optziones
-      format: Formadu
-      scale: Iscala
-      max: màssimu
-      image_size: Mannària de s'immàgine
-      zoom: Ismanniamentu
-      add_marker: Annanghe unu marcadore a sa mapa
-      latitude: 'Lat:'
-      longitude: 'Lon:'
-      output: Resurtadu
-      paste_html: Incolla s'HTML pro l'integrare in su situ web
       export_button: Esporta
     fixthemap:
       title: Sinnala unu problema / Acontza sa mapa
@@ -2254,18 +2265,14 @@ sc:
       beginners_guide:
         title: Ghia pro printzipiantes
         description: Ghia pro printzipiante mantenta dae sa comunidade.
-      help:
-        title: Fòrum de agiudu
-        description: Faghe una pregunta o chirca rispostas in sa pàgina de preguntas
-          e rispostas de OpenStreetMap.
+      community:
+        title: Forum de sa comunidade
+        description: Unu logu cumpartzidu pro sos arresonos subra de OpenStreetMap.
       mailing_lists:
         title: Listas de posta eletrònica
         description: Faghe una pregunta o piga parte a una dibata subra de chistiones
           de interessu in un'elencu mannu de listas de posta eletrònica temàticas
           e regionales.
-      community:
-        title: Forum de sa comunidade
-        description: Unu logu cumpartzidu pro sos arresonos subra de OpenStreetMap.
       irc:
         title: IRC
         description: Tzarrada interativa in medas limbas diferentes e subra de temas
@@ -2331,35 +2338,24 @@ sc:
           footway: Caminu pro pedones
           rail: Ferrovia
           subway: Metropolitana
-          tram:
-          - Trenu lèbiu/metropolitana lèbia
-          - Tram
-          cable:
-          - Funivia
-          - ascensore carrotzina
-          runway:
-          - Pista de aeroportu
-          - carrera de furriada
-          apron:
-          - Àrea de parchègiu de sos aèreos
-          - terminale
+          cable_car: Funivia
+          chair_lift: ascensore carrotzina
+          runway: Pista de aeroportu
+          taxiway: carrera de furriada
+          apron: Àrea de parchègiu de sos aèreos
           admin: Làcana amministrativa
           forest: Litu
           wood: Buscu
           golf: Campu de golf
           park: Parcu
+          common: Comunu
           resident: Àrea de residèntzia
-          common:
-          - Comunu
-          - pradu
-          - giardinu
           retail: Àrea cummertziale
           industrial: Àrea industriale
           commercial: Àrea cummertziale
           heathland: Istruvina
-          lake:
-          - Lagu
-          - riserva de abba
+          lake: Lagu
+          reservoir: riserva de abba
           farm: Fatoria
           brownfield: Terrinu industriale abbandonadu
           cemetery: Campusantu
@@ -2368,14 +2364,12 @@ sc:
           centre: Tzentru isportivu
           reserve: Reserva naturale
           military: Zona militare
-          school:
-          - Iscola
-          - universidade
+          school: Iscola
+          university: universidade
           building: Edifìtziu significativu
           station: Istatzione ferroviària
-          summit:
-          - Cùcuru de monte
-          - cùcuru
+          summit: Cùcuru de monte
+          peak: cùcuru
           tunnel: Lìnia trategiada = galleria
           bridge: Oros nieddos = ponte
           private: Atzessu privadu
@@ -2621,6 +2615,7 @@ sc:
     permissions:
       missing: No as cuntzèdidu s'atzessu a custa caraterìstica  a s'aplicatzione
     scopes:
+      openid: Intra impreende OpenStreetMap
       read_prefs: Leghe sas preferèntzias de utente
       write_prefs: Modìfica sas preferèntzias de utente
       write_diary: Crea intradas de su diàriu, cummentos e faghe amistades
@@ -2819,7 +2814,6 @@ sc:
       ct status: 'Tèrmines de collaboratzione:'
       ct undecided: Indetzisu
       ct declined: Refudados
-      latest edit: 'Ùrtima modìfica (%{ago}):'
       email address: 'Indiritzu de posta eletrònica:'
       created from: 'Creadu dae:'
       status: 'Istadu:'
@@ -2827,12 +2821,15 @@ sc:
       role:
         administrator: Custu utente est un'amministradore
         moderator: Custu utente est unu moderadore
+        importer: Custu impitadore est un'importadore
         grant:
           administrator: Cuntzede s'atzessu comente amministradore
           moderator: Cuntzede s'atzessu comente moderadore
+          importer: Cuntzede s'atzessu comente importadore
         revoke:
           administrator: Rèvoca s'atzessu comente amministradore
           moderator: Rèvoca s'atzessu comente moderadore
+          importer: Rèvoca s'atzessu comente importadore
       block_history: Blocos ativos
       moderator_history: Blocos fatos
       comments: Cummentos
@@ -2942,8 +2939,8 @@ sc:
     revoke:
       title: Revochende su blocu pro %{block_on}
       heading_html: Revochende su blocu pro %{block_on} fatu dae %{block_by}
-      time_future: Custu blocu at a agabbare a pustis de %{time}.
-      past: Custu blocu est agabbadu %{time} e non si podet revocare como.
+      time_future_html: Custu blocu at a agabbare a pustis de %{time}.
+      past_html: Custu blocu est agabbadu %{time} e non si podet revocare como.
       confirm: Ses seguru de bòlere revocare custu blocu?
       revoke: Rèvoca!
       flash: Custu blocu est istadu revocadu.
@@ -3101,11 +3098,10 @@ sc:
           other: Ses a %{count} pees dae custu puntu
       base:
         standard: Istandard
-        cyclosm: CyclOSM
         cycle_map: Mapa tziclìstica
         transport_map: Mapa de sos trasportos
+        tracestracktop_topo: Tracestrack Topo
         hot: Umanitàriu
-        opnvkarte: ÖPNVKarte
       layers:
         header: Istratos de sa mapa
         notes: Notas de sa mapa
@@ -3121,8 +3117,7 @@ sc:
       osm_france: OpenStreetMap Frantza
       thunderforest_credit: Tasseddos frunidos pro cortesia dae %{thunderforest_link}
       andy_allan: Andy Allan
-      opnvkarte_credit: Tasseddos frunidos pro cortesia dae %{memomaps_link}
-      memomaps: MeMoMaps
+      tracestrack_credit: Tasseddos frunidos pro cortesia dae %{tracestrack_link}
       hotosm_credit: Istile de sos tasseddos de %{hotosm_link} acasagiadu dae %{osm_france_link}
       hotosm_name: Iscuadra umanitària de OpenStreetMap
     site:
index bf4cf06d15ac4475705f4501be52b954e3a8b902..a5f351844fb354882b42ce3a327e490046786312 100644 (file)
@@ -160,9 +160,9 @@ scn:
   auth:
     providers:
       none: Nuddu
-      openid: OpenID
       google: Google
       facebook: Facebook
+      microsoft: Microsoft
       github: GitHub
       wikipedia: Wikipedia
   api:
@@ -191,6 +191,7 @@ scn:
   account:
     deletions:
       show:
+        title: Cancella lu mè cuntu
         delete_account: Cancella cuntu
         confirm_delete: Sî sicuru?
         cancel: Annulla
@@ -252,12 +253,8 @@ scn:
       way_paginated: Camini (%{x}-%{y} di %{count})
       relation: Rilazzioni (%{count})
       relation_paginated: Rilazzioni (%{x}-%{y} di %{count})
-      comment: Cummenti (%{count})
       changesetxml: XML dû gruppu di canciamenti
       osmchangexml: XML osmChange
-      feed:
-        title: Gruppu di canciamenti %{id}
-        title_comment: Gruppu di canciamenti %{id} - %{comment}
       join_discussion: Pi participari ntâ discussioni trasi
       discussion: Discussioni
     node:
@@ -325,8 +322,10 @@ scn:
         tag: La pàggina dâ wiki chi discrivi l'etichetta %{key}=%{value}
       wikidata_link: Lu suggettu %{page} supra a Wikidata
       wikipedia_link: L'artìculu %{page} supra a Wikipedia
+      wikimedia_commons_link: L'elementu %{page} supra Wikimedia Commons
       telephone_link: Chiama lu %{phone_number}
       colour_preview: Antiprima culuri %{colour_value}
+      email_link: Email %{email}
     query:
       title: Arricerca di l'elimenti
       introduction: Clicca supra â cartina pi circari l'elimenti vicini.
@@ -359,6 +358,9 @@ scn:
       no_more_area: Nuddu àutru gruppu di canciamenti nta st'ària.
       no_more_user: Nuddu àutru gruppu di canciamenti fattu di st'utenti.
       load_more: Carrìcanni àutri
+      feed:
+        title: Gruppu di canciamenti %{id}
+        title_comment: Gruppu di canciamenti %{id} - %{comment}
     timeout:
       sorry: Purtroppu, ci vosi troppu tempu pi pigghiari la lista dî gruppi di canciamenti
         c'addumannasti.
@@ -374,6 +376,7 @@ scn:
     contact:
       km away: luntanu %{count} km
       m away: luntanu %{count} m
+      latest_edit_html: 'Ùrtimu canciamentu (%{ago}):'
     popup:
       your location: La tò pusizzioni
       nearby mapper: Mappaturi vicinu
@@ -1167,7 +1170,6 @@ scn:
   messages:
     inbox:
       title: Posta arrivata
-      my_inbox: La mè posta arrivata
       messages: Hai %{new_messages} e %{old_messages}
       new_messages:
         one: '%{count} missaggiu novu'
@@ -1175,12 +1177,14 @@ scn:
       old_messages:
         one: '%{count} missaggiu vecchiu'
         other: '%{count} missaggî vecchî'
-      from: Di
-      subject: Oggettu
-      date: Data
       no_messages_yet_html: Ancora nun hai nuddu missaggiu. Pirchì nun fai canuscenza
         cu quarchidunu dî %{people_mapping_nearby_link}?
       people_mapping_nearby: mappatura vicinu a tìa
+    messages_table:
+      from: Di
+      to: A
+      subject: Oggettu
+      date: Data
     message_summary:
       unread_button: Signa comu di lèggiri
       read_button: Signa comu già liggiutu
@@ -1203,9 +1207,6 @@ scn:
       messages:
         one: Hai %{count} missaggiu mannatu
         other: Hai %{count} missaggî mannati
-      to: A
-      subject: Oggettu
-      date: Data
       no_sent_messages_html: Ancora nun mannasti nuddu missaggiu. Pirchì nun fai canuscenza
         cu quarchidunu dî %{people_mapping_nearby_link}?
       people_mapping_nearby: mappatura vicinu a tìa
@@ -1223,28 +1224,32 @@ scn:
         fu mannatu a dd'utenti. Pi favuri trasi comu l'utenti giustu pi putiri liggìrilu.
     sent_message_summary:
       destroy_button: Cancella
+    heading:
+      my_inbox: La mè posta arrivata
     mark:
       as_read: Missaggiu signatu comu già liggiutu
       as_unread: Missaggiu marcatu comu di lèggiri
     destroy:
       destroyed: Missaggiu cancillatu
   passwords:
-    lost_password:
+    new:
       title: Palora d'òrdini pirduta
       heading: Ti scurdasti la palora d'òrdini?
       email address: 'Nnirizzu di posta elittrònica:'
       new password button: Azzera la palora d'òrdini
       help_text: Scrivi lu nnirizzu di posta elittrònica c'adupirasti quannu ti scrivisti,
         e ci mannamu nu culligamentu chi poi adupirari p'azzirari la tò palora d'òrdini.
+    create:
       notice email on way: Ni dispiaci chi la pirdisti :-( pirò ti sta arrivannu nu
         missaggiu di posta elittrònica pi menzu dû quali prestu la poi azzirari.
       notice email cannot find: Putroppu nun s'attrova stu nnirizzu di posta elittrònica.
-    reset_password:
+    edit:
       title: Azzera la palora d'òrdini
       heading: Azziramentu dâ palora d'òrdini di %{user}
       reset: Azzera la palora d'òrdini
-      flash changed: La tò palora d'òrdini fu canciata.
       flash token bad: Stu còdici nun s'attrova, pirchì nun cuntrolli l'URL?
+    update:
+      flash changed: La tò palora d'òrdini fu canciata.
   preferences:
     show:
       title: Li mè prifirenzi
@@ -1278,7 +1283,6 @@ scn:
       heading: Trasi
       email or username: 'Nnirizzu di posta elittrònica o nomu utenti:'
       password: 'Palora d''òrdini:'
-      openid_html: '%{logo} OpenID:'
       remember: Arricòrdati di mìa
       lost password link: Pirdisti la tò palora d'òrdini?
       login_button: Trasi
@@ -1402,12 +1406,7 @@ scn:
         nicissarî pi sta funziunalità.
     export:
       title: Espurtazzioni
-      area_to_export: Ària d'espurtari
       manually_select: Scegghî manualmenti n'ària diffirenti
-      format_to_export: Furmatu d'espurtari
-      osm_xml_data: Dati XML d'OpenStreetMap
-      map_image: Mmàggini dâ cartina (ammustra lu stratu standard)
-      embeddable_html: HTML ncurpuràbbili
       licence: Licenza
       too_large:
         advice: 'Si la spurtazzioni ccassupra nun arrinesci, poi pruvari cu una dî
@@ -1429,17 +1428,6 @@ scn:
         other:
           title: Àutri fonti
           description: Àutri fonti elincati ntâ wiki d'OpenStreetMap
-      options: Opzioni
-      format: Furmatu
-      scale: Scala
-      max: max
-      image_size: Grannizza dâ mmàggini
-      zoom: Ngrannimentu
-      add_marker: Agghiunci un signu ntâ cartina
-      latitude: 'Lat:'
-      longitude: 'Lun:'
-      output: Pruduttu
-      paste_html: Ncodda l'HTML pi ncurpurari ntôn situ web
       export_button: Esporta
     fixthemap:
       title: Assignalari prubblemi / Cunzari la cartina
@@ -1466,10 +1454,6 @@ scn:
         url: http://wiki.openstreetmap.org/wiki/IT:Beginners%27_guide
         title: Guida dî principianti
         description: Guida pî principianti mantinuta dâ cumunità.
-      help:
-        title: help.openstreetmap.org
-        description: Fai n'addumannata o cerca n'arrispunnuta ntô situ d'addumannati
-          e arrispunnuti d'OSM.
       mailing_lists:
         title: Mailing list
         description: Fai addumannati o discuti di quistioni ntirissanti nta na gamma
@@ -1513,34 +1497,24 @@ scn:
           footway: Caminu pidunali
           rail: Ferruvìa
           subway: Mitrupulitana
-          tram:
-          - Mitrupulitana leggia
-          - tram
-          cable:
-          - Funivìa
-          - seggiuvìa
-          runway:
-          - Pista d’attirraggiu
-          - pista di rullaggiu
-          apron:
-          - Ària di parcheggiu ariupurtuali
-          - terminal
+          cable_car: Funivìa
+          chair_lift: seggiuvìa
+          runway: Pista d’attirraggiu
+          taxiway: pista di rullaggiu
+          apron: Ària di parcheggiu ariupurtuali
           admin: Cunfini amministrativu
           forest: Furesta
           wood: Voscu
           golf: Campu di golf
           park: Villa
+          common: Cumuni
           resident: Zona risidinziali
-          common:
-          - Cumuni
-          - Pratu
           retail: Zona di nigozzî
           industrial: Zona nnustriali
           commercial: Zona cummirciali
           heathland: Brughiera
-          lake:
-          - Lacu
-          - lacu artificiali
+          lake: Lacu
+          reservoir: lacu artificiali
           farm: Massarìa
           brownfield: Zona di bunìfica
           cemetery: Cimiteru
@@ -1549,14 +1523,12 @@ scn:
           centre: Centru spurtivu
           reserve: Riserva naturali
           military: Zona militari
-          school:
-          - Scola
-          - univirsità
+          school: Scola
+          university: univirsità
           building: Edificiu mpurtanti
           station: Stazzioni dâ ferruvìa
-          summit:
-          - Muntagna
-          - Muntagna
+          summit: Muntagna
+          peak: Muntagna
           tunnel: Cuntornu trattiatu = jallarìa
           bridge: Cuntornu niurittu = ponti
           private: Accessu privatu
@@ -1828,7 +1800,6 @@ scn:
       ct status: 'Cunnizzioni di cuntribbuzzioni:'
       ct undecided: Nun dicisi
       ct declined: Rifiutati
-      latest edit: 'Ùrtimu canciamentu (%{ago}):'
       email address: 'Nnirizzu di posta elittrònica:'
       created from: 'Criatu di:'
       status: 'Statu:'
@@ -1929,8 +1900,8 @@ scn:
     revoke:
       title: Rèvuca dû bloccu di %{block_on}
       heading_html: Rèvuca dû bloccu di %{block_on} fattu di %{block_by}
-      time_future: Stu bloccu finisci tra %{time}.
-      past: Stu bloccu finìu %{time} e ora nun si pò arrivucari cchiù.
+      time_future_html: Stu bloccu finisci tra %{time}.
+      past_html: Stu bloccu finìu %{time} e ora nun si pò arrivucari cchiù.
       confirm: Sî sicuru chi voi arrivucari stu bloccu?
       revoke: Rèvuca!
       flash: Stu bloccu fu arrivucatu.
@@ -2053,11 +2024,9 @@ scn:
         title: Ammustra unni sugnu
       base:
         standard: Standard
-        cyclosm: CyclOSM
         cycle_map: Cartina pî bicicletti
         transport_map: Mappa dî trasporti
         hot: Umanitaria
-        opnvkarte: ÖPNVKarte
       layers:
         header: Strati dâ cartina
         notes: Noti dâ cartina
index a5c01105967a2f2f6fb941b8be8454c2c100d883..53982031b4a2a37a54eb56551a3491df9194a368 100644 (file)
@@ -124,12 +124,8 @@ sco:
       way_paginated: Ways (%{x}-%{y} of %{count})
       relation: Relations (%{count})
       relation_paginated: Relations (%{x}-%{y} of %{count})
-      comment: Comments (%{count})
       changesetxml: Chyngeset XML
       osmchangexml: osmChange XML
-      feed:
-        title: Chyngeset %{id}
-        title_comment: Chyngeset %{id} - %{comment}
       join_discussion: Log in tae jyn the discussion
       discussion: Discussion
     node:
@@ -217,6 +213,9 @@ sco:
       no_more_area: No mair chyngesets in this aurie.
       no_more_user: No mair chyngesets bi this uiser.
       load_more: Load mair
+      feed:
+        title: Chyngeset %{id}
+        title_comment: Chyngeset %{id} - %{comment}
     timeout:
       sorry: Sorry, the leet o chyngesets ye requestit teuk too lang tae retrieve.
   changeset_comments:
@@ -797,7 +796,7 @@ sco:
         subject_other: '[OpenStreetMap] %{commenter} haes commentit on a note ye are
           interestit in'
   passwords:
-    lost_password:
+    new:
       title: Lost password
       heading: Forgotten Passwird?
   sessions:
@@ -860,12 +859,7 @@ sco:
         infringement_title_html: Copyricht infringement
     export:
       title: Export
-      area_to_export: Area tae Export
       manually_select: Manually select a different aurie
-      format_to_export: Format tae Export
-      osm_xml_data: OpenStreetMap XML Data
-      map_image: Cairt Image (shaws staundart layer)
-      embeddable_html: Embeddable HTML
       licence: Licence
       too_large:
         advice: 'If the abuin export fails, please consider uisin ane o the soorces
@@ -887,17 +881,6 @@ sco:
         other:
           title: Ither Soorces
           description: Addeetional soorces leetit on the OpenStreetMap wiki
-      options: Options
-      format: Format
-      scale: Scale
-      max: max
-      image_size: Image Size
-      zoom: Zuim
-      add_marker: Add a marker tae the cairt
-      latitude: 'Lat:'
-      longitude: 'Lon:'
-      output: Ootput
-      paste_html: Paste HTML tae embed in wabsteid
       export_button: Export
     fixthemap:
       how_to_help:
@@ -923,13 +906,11 @@ sco:
           retail: Retail aurie
           industrial: Industrial aurie
           commercial: Commercial aurie
-          lake:
-          - Loch
+          lake: Loch
           farm: Ferm
           military: Militar aurie
-          school:
-          - Schuil
-          - varsity
+          school: Schuil
+          university: varsity
           building: Signeeficant biggin
     welcome:
       title: Walcome!
@@ -988,7 +969,7 @@ sco:
         stay_roundabout_without_exit: Stay on roondaboot - %{name}
         start_without_exit: Stairt at end o %{name}
         destination_without_exit: Reak destination
-        against_oneway_without_exit: Gae against ane-wey on %{name}
+        against_oneway_without_exit: Gae agin ane-wey on %{name}
         end_oneway_without_exit: End o ane-wey on %{name}
         roundabout_with_exit: At roondaboot tak exit %{exit} ontae %{name}
         unnamed: unnamed road
index b529925dfa972b8e37a058cacbb78d08ff3673ca..2644b50e08dd73c9fe31459b36e072ba96b94a45 100644 (file)
@@ -159,7 +159,6 @@ sh:
   auth:
     providers:
       none: Nijedan
-      openid: OpenID
       google: Google
       facebook: Facebook
       github: GitHub
@@ -557,6 +556,8 @@ sh:
     confirm_email:
       heading: Potvrda promjene e-adrese
   messages:
+    messages_table:
+      to: Za
     message_summary:
       reply_button: Odgovori
       destroy_button: Izbriši
@@ -574,9 +575,6 @@ sh:
       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
@@ -600,7 +598,6 @@ sh:
       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
@@ -699,12 +696,7 @@ sh:
         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
@@ -730,34 +722,24 @@ sh:
           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
+          cable_car: Kabinska žičara
+          chair_lift: sedežnica
+          runway: Aerodromska pista
+          taxiway: rulna staza
+          apron: Parking za avione
           admin: Administrativna granica
           forest: Šuma
           wood: Šume (prirodne, neodržavane)
           golf: Golf teren
           park: Park
+          common: Travnjaci
           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
+          lake: Jezero
+          reservoir: rezervoar
           farm: Farma
           brownfield: Gradilište
           cemetery: Groblje
@@ -766,14 +748,12 @@ sh:
           centre: Sportski centar
           reserve: Rezervat prirode
           military: Vojno područje
-          school:
-          - Škola
-          - univerzitet
+          school: Škola
+          university: univerzitet
           building: Značajna zgrada
           station: Željeznička stanica
-          summit:
-          - Vrh
-          - vrh
+          summit: Vrh
+          peak: vrh
     welcome:
       title: Dobrodošli!
       introduction: Dobrodošli u OpenStreetMap — slobodnu i uredljivu kartu svijeta.
index 69551cb832657cf900a103fd76e1c6ade7333393..c3800d3167bfe6fccdaf870b7a9d4af1d9e17782 100644 (file)
@@ -63,6 +63,7 @@ sk:
       messages:
         invalid_email_address: nevyzerá ako platná e-mailová adresa
         email_address_not_routable: nie je routovateľná
+        display_name_is_user_n: nemôže byť user_n, pokiaľ n nie je vaše ID používateľa
     models:
       acl: Zoznam prístupových práv
       changeset: Sada zmien
@@ -256,7 +257,6 @@ sk:
   auth:
     providers:
       none: Žiadna
-      openid: OpenID
       google: Google
       facebook: Facebook
       github: GitHub
@@ -336,6 +336,7 @@ sk:
       delete_account: Odstrániť účet...
     go_public:
       heading: Verejné úpravy
+      find_out_why: zistite prečo
       make_edits_public_button: Zverejniť všetky moje úpravy
     update:
       success_confirm_needed: Používateľské údaje boli úspešne aktualizované. Skontrolujte
@@ -380,14 +381,10 @@ sk:
       way_paginated: Cesty (%{x}–%{y} z %{count})
       relation: Relácie (%{count})
       relation_paginated: Relácie (%{x}–%{y} z %{count})
-      comment: Komentáre (%{count})
       hidden_comment_by_html: Skrytý komentár od používateľa %{user} %{time_ago}
       comment_by_html: Komentár od používateľa %{user} %{time_ago}
       changesetxml: XML sady zmien
       osmchangexml: osmChange XML
-      feed:
-        title: Sada zmien %{id}
-        title_comment: Sada zmien %{id} - %{comment}
       join_discussion: Zapojte sa do diskusie
       discussion: Diskusia
       still_open: Sada zmien stále otvorená - diskusia bude otvorená, keď bude sada
@@ -501,6 +498,9 @@ sk:
       no_more_area: Nie sú ďalšie sady zmien v tejto oblasti.
       no_more_user: Nie sú ďalšie sady zmien tohoto používateľa.
       load_more: Načítať ďalšie
+      feed:
+        title: Sada zmien %{id}
+        title_comment: Sada zmien %{id} - %{comment}
     timeout:
       sorry: Ľutujeme, ale vami požadovaný zoznam sád zmien sa načítaval príliš dlho.
   changeset_comments:
@@ -519,6 +519,7 @@ sk:
     contact:
       km away: vzdialený %{count}km
       m away: vzdialený %{count}m
+      latest_edit_html: 'Posledné úpravy %{ago}:'
     popup:
       your location: Vaša poloha
       nearby mapper: Používateľ v okolí
@@ -579,6 +580,7 @@ sk:
         few: '%{count} komentáre'
         many: '%{count} komentárov}'
         other: '%{count} komentárov'
+      no_comments: Žiadne komentáre
       edit_link: Upraviť tento záznam
       hide_link: Skryť tento záznam
       unhide_link: Odkryť tento záznam
@@ -1371,7 +1373,9 @@ sk:
       reported_user: Nahlásený používateľ
       not_updated: Neaktualizované
       search: Hľadať
+      search_guidance: 'Hľadať hlásenia:'
       user_not_found: Používateľ neexistuje
+      issues_not_found: Nenašli sa žiadne také hlásenia
       status: Stav
       reports: Hlásenia
       last_updated: Posledná úprava
@@ -1394,9 +1398,10 @@ sk:
         few: '%{count} hlásenia'
         many: '%{count} hlásení'
         other: '%{count} hlásení'
-      report_created_at: Prvýkrát nahlásené %{datetime}
-      last_resolved_at: Naposledy vyriešené %{datetime}
-      last_updated_at: Naposledy aktualizované %{datetime} používateľom %{displayname}
+      no_reports: Žiadne hlásenia
+      report_created_at_html: Prvýkrát nahlásené %{datetime}
+      last_resolved_at_html: Naposledy vyriešené %{datetime}
+      last_updated_at_html: Naposledy aktualizované %{datetime} používateľom %{displayname}
       resolve: Vyriešiť
       ignore: Ignorovať
       reopen: Znovu otvoriť
@@ -1643,8 +1648,6 @@ sk:
   messages:
     inbox:
       title: Doručená pošta
-      my_inbox: Doručená pošta
-      my_outbox: Odoslané
       messages: Máte %{new_messages} a %{old_messages}
       new_messages:
         few: '%{count} nové správy'
@@ -1654,11 +1657,13 @@ sk:
         few: '%{count} staré správy'
         one: '%{count} starú správu'
         other: '%{count} starých správ'
+      no_messages_yet_html: Zatiaľ nemáte žiadne správy. Čo napr. kontaktovať %{people_mapping_nearby_link}?
+      people_mapping_nearby: používateľov v okolí
+    messages_table:
       from: Od
+      to: Komu
       subject: Predmet
       date: Dátum
-      no_messages_yet_html: Zatiaľ nemáte žiadne správy. Čo napr. kontaktovať %{people_mapping_nearby_link}?
-      people_mapping_nearby: používateľov v okolí
     message_summary:
       unread_button: Označiť ako neprečítané
       read_button: Označiť ako prečítané
@@ -1678,15 +1683,10 @@ sk:
       body: Ľutujeme, neexistuje správa s takým ID.
     outbox:
       title: Odoslaná pošta
-      my_inbox: Doručená pošta
-      my_outbox: Odoslané
       messages:
         few: Máte %{count} odeslané správy
         one: Máte %{count} odoslanú správu
         other: Máte %{count} odoslaných správ
-      to: Komu
-      subject: Predmet
-      date: Dátum
       no_sent_messages_html: Nemáte odoslané správy. Prečo ste sa nespojili s niekým
         z %{people_mapping_nearby_link}?
       people_mapping_nearby: blízko mapujúci ľudia
@@ -1705,28 +1705,33 @@ sk:
         sa pod príslušným kontom.
     sent_message_summary:
       destroy_button: Zmazať
+    heading:
+      my_inbox: Doručená pošta
+      my_outbox: Odoslané
     mark:
       as_read: Správa označená ako prečítaná
       as_unread: Správa označená ako neprečítaná
     destroy:
       destroyed: Správa vymazaná
   passwords:
-    lost_password:
+    new:
       title: Stratené heslo
       heading: Zabudli ste heslo?
-      email address: 'E-mailová adresa:'
+      email address: E-mailová adresa
       new password button: Resetnúť heslo
       help_text: Vložte emailovú adresu, ktorú ste uviedli pri registrácii, pošleme
         vám odkaz, pomocou ktorého si budete môcť nastaviť nové heslo.
+    create:
       notice email on way: Škoda zabudnutého hesla :-( ale e-mail je už na ceste,
         takže si čoskoro budete môcť zvoliť nové.
       notice email cannot find: Ľutujeme, túto e-mailovú adresu nie je možné nájsť.
-    reset_password:
+    edit:
       title: Resetnúť heslo
       heading: Resetnúť heslo pre %{user}
       reset: Vynulovať heslo
-      flash changed: Vaše heslo bolo zmenené.
       flash token bad: Zodpovedajúci kód nebol nájdený, skontrolujte prípadne URL.
+    update:
+      flash changed: Vaše heslo bolo zmenené.
   preferences:
     show:
       title: Moje predvoľby
@@ -1760,9 +1765,8 @@ sk:
     new:
       title: Prihlásiť sa
       heading: Prihlásenie
-      email or username: 'E-mailová adresa alebo prihlasovacie meno:'
-      password: 'Heslo:'
-      openid_html: '%{logo} OpenID:'
+      email or username: E-mailová adresa alebo prihlasovacie meno
+      password: Heslo
       remember: Zapamätať
       lost password link: Stratili ste heslo?
       login_button: Prihlásiť
@@ -1782,8 +1786,8 @@ sk:
           title: Prihlásenie sa pomocou Facebooku
           alt: Prihlásenie sa pomocou účtu na Facebooku
         microsoft:
-          title: Prihlásenie sa pomocou Windows Live
-          alt: Prihlásenie sa pomocou účtu Windows Live
+          title: Prihlásenie sa pomocou účtu Microsoft
+          alt: Prihlásenie sa pomocou účtu Microsoft
         github:
           title: Prihlásiť sa cez GitHub
           alt: Prihlásiť sa pomocou účtu na GitHube
@@ -1997,12 +2001,7 @@ sk:
         sú pre túto funkciu nevyhnutné.
     export:
       title: Export
-      area_to_export: Oblasť pre export
       manually_select: Manuálne vybrať inú oblasť
-      format_to_export: Formát pre export
-      osm_xml_data: OpenStreetMap XML dáta
-      map_image: Obrázok (obsahuje štandardné vrstvy)
-      embeddable_html: Vložiteľné HTML
       licence: Licencia
       licence_details_html: Údaje OpenStreetMap sú licencované pod %{odbl_link} (ODbL).
       odbl: Open Data Commons Open Database License
@@ -2024,17 +2023,6 @@ sk:
         other:
           title: Iné zdroje
           description: Ďalšie zdroje sú uvedené na OpenStreetMap wiki
-      options: Možnosti
-      format: Formát
-      scale: Mierka
-      max: max
-      image_size: Rozmery obrázku
-      zoom: Zväčšenie
-      add_marker: Pridať do mapy značku
-      latitude: 'Zem.šírka:'
-      longitude: 'Zem. dĺžka:'
-      output: Výstup
-      paste_html: Pre vloženie do stránky použite toto HTML
       export_button: Export
     fixthemap:
       title: Nahlásiť problém / Opraviť mapu
@@ -2061,16 +2049,12 @@ sk:
         url: http://wiki.openstreetmap.org/wiki/Sk:Beginners%27_guide
         title: Sprievodca pre začiatočníkov
         description: Komunitou spravovaná príručka pre začiatočníkov.
-      help:
-        title: Fórum pomoci
-        description: Spýtajte sa otázku alebo vyhľadajte odpovede na stránke otázok
-          a odpovedí OpenStreetMap.
+      community:
+        title: Pomoc & Komunitné fórum
       mailing_lists:
         title: E-mailové konferencie
         description: Spýtajte sa otázku alebo diskutuje zaujímavé témy v tematických
           alebo regionálnych emailových diskusných skupinách.
-      community:
-        title: Komunitné fórum
       irc:
         title: IRC
         description: Interaktívna diskusia v rôznych jazykoch na mnohé témy.
@@ -2118,34 +2102,24 @@ sk:
           footway: Chodník pre peších
           rail: Železnica
           subway: Metro
-          tram:
-          - Rýchloelektrička
-          - električka
-          cable:
-          - Lanovka
-          - sedačková lanovka
-          runway:
-          - Letisková dráha
-          - pojazdová dráha
-          apron:
-          - Letisková odbavovacia plocha
-          - terminál
+          cable_car: Lanovka
+          chair_lift: Sedačková lanovka
+          runway: Letisková dráha
+          taxiway: Pojazdová dráha
+          apron: Letisková odbavovacia plocha
           admin: Administratívne hranice
           forest: Les (udržiavaný)
-          wood: Les (neudržiavaný)
+          wood: Les
           golf: Golfové ihrisko
           park: Park
+          common: Pastvina
           resident: Obytná oblasť
-          common:
-          - Pastvina
-          - lúka
           retail: Nákupná oblasť
           industrial: Priemyselná oblasť
           commercial: Komerčná oblasť
           heathland: Vresovisko
-          lake:
-          - Jazero
-          - nádrž
+          lake: Jazero
+          reservoir: Nádrž
           farm: Farma
           brownfield: Zborenisko
           cemetery: Cintorín
@@ -2154,14 +2128,12 @@ sk:
           centre: Športové centrum
           reserve: Prírodná rezervácia
           military: Vojenský priestor
-          school:
-          - Škola
-          - univerzita
+          school: Škola
+          university: Univerzita
           building: Významná budova
           station: Železničná stanica
-          summit:
-          - Vrchol
-          - vrchol
+          summit: Vrchol
+          peak: Vrchol
           tunnel: Čiarkovaný obrys = tunel
           bridge: Čireny obrys = most
           private: Súkromný prístup
@@ -2489,7 +2461,6 @@ sk:
       ct status: 'Podmienky prispievania:'
       ct undecided: Nerozhodnuté
       ct declined: Odmietnuté
-      latest edit: 'Posledné úpravy %{ago}:'
       email address: 'Emailová adresa:'
       created from: 'Vytvorené od:'
       status: 'Stav:'
@@ -2589,8 +2560,8 @@ sk:
     revoke:
       title: Zrušenie bloku pre %{block_on}
       heading_html: Zrušenie bloku pre %{block_on} od %{block_by}
-      time_future: Tento blok skončí v %{time}.
-      past: Tento blok už skončil pred %{time} a nemôže byť zrušený.
+      time_future_html: Tento blok skončí v %{time}.
+      past_html: Tento blok už skončil pred %{time} a nemôže byť zrušený.
       confirm: Ste si istí, že chcete zrušiť tento blok?
       revoke: Odvolať!
       flash: Tento blok bol zrušený.
@@ -2665,7 +2636,7 @@ sk:
     index:
       title: Poznámky vytvorené alebo komentované používateľom %{user}
       heading: Poznámky používateľa %{user}
-      subheading_html: Poznámky vytvorené alebo komentované používateľom %{user}
+      subheading_html: Poznámky %{submitted} alebo %{commented}používateľom %{user}
       no_notes: Žiadne poznámky
       id: ID
       creator: Autor
@@ -2757,11 +2728,9 @@ sk:
           other: Ste menej než %{count} stôp od tohto bodu
       base:
         standard: Štandardná
-        cyclosm: CyclOSM
         cycle_map: Cyklomapa
         transport_map: Dopravná mapa
         hot: Humanitárna
-        opnvkarte: ÖPNVKarte
       layers:
         header: Mapové vrstvy
         notes: Poznámky k mape
@@ -2776,8 +2745,6 @@ sk:
       osm_france: OpenStreetMap Francúzsko
       thunderforest_credit: Dlaždice s dovolením od %{thunderforest_link}
       andy_allan: Andyho Allana
-      opnvkarte_credit: Dlaždice s dovolením od %{memomaps_link}
-      memomaps: MeMoMaps
       hotosm_credit: Štýl dlaždíc od %{hotosm_link} poskytuje %{osm_france_link}
       hotosm_name: Humanitárneho tímu OpenStreetMap
     site:
index 4fba080b7cdba0052eb578398e834fc880a097e5..ef823dfc9babad53c99035a9e7b32254da68921c 100644 (file)
@@ -207,7 +207,6 @@ skr-arab:
       belongs_to: مصنف
       node: نوݙاں(%{count})
       way: رستے(%{count})
-      comment: تبصرے (%{count})
       discussion: بحث مباحثہ
     node:
       title_html: 'نوڈ: %{name}'
@@ -1038,11 +1037,12 @@ skr-arab:
   messages:
     inbox:
       title: ان باکس
-      my_inbox: میݙا انباکس
-      my_outbox: میݙا آؤٹ باکس
+    messages_table:
       from: کنوں
+      to: تائیں
       subject: موضوع
       date: تریخ
+      actions: عمل
     message_summary:
       unread_button: نشان لاؤ جو کائنی پڑھا
       read_button: نشان لاؤ جو پڑھ گھدے
@@ -1054,11 +1054,7 @@ skr-arab:
       back_to_inbox: انباکس تے واپس
     outbox:
       title: آؤٹ باکس
-      my_inbox: میݙا انباکس
-      my_outbox: میݙا آؤٹ باکس
-      to: تائیں
-      subject: موضوع
-      date: تریخ
+      actions: عمل
     show:
       title: سنیہا پڑھو
       reply_button: جواب
@@ -1067,15 +1063,19 @@ skr-arab:
       back: پچھوں
     sent_message_summary:
       destroy_button: مٹاؤ
+    heading:
+      my_inbox: میݙا انباکس
+      my_outbox: میݙا آؤٹ باکس
     destroy:
       destroyed: سنیہا مٹ ڳیا
   passwords:
-    lost_password:
-      email address: 'ای میل پتہ:'
+    new:
+      email address: ای میل پتہ
       new password button: پاس ورڈ ولدا ٹھیک کرو
-    reset_password:
+    edit:
       title: پاس ورڈ ولدا ٹھیک کرو
       reset: پاس ورڈ ولدا ٹھیک کرو
+    update:
       flash changed: تہاݙا پاس ورڈ تبدیل تھی ڳیا۔
   preferences:
     show:
@@ -1099,8 +1099,8 @@ skr-arab:
     new:
       title: لاگ ان
       heading: لاگ ان
-      password: 'پاس ورڈ:'
-      openid_html: '%{logo} اوپن آئی ڈی:'
+      email or username: ای میل پتہ یا ورتݨ ناں
+      password: پاس ورڈ
       remember: میکوں یاد رکھو
       lost password link: پاسورڈ بھل ڳئے ہو؟
       login_button: لاگ ان
@@ -1187,15 +1187,6 @@ skr-arab:
       too_large:
         other:
           title: ٻئے ماخذ
-      options: اختیارات
-      format: فارمیٹ
-      scale: پیمانہ
-      max: ودھ و ودھ
-      image_size: فوٹو دا سائز
-      zoom: وݙا چھوٹا کرݨ
-      latitude: عرض بلد
-      longitude: طول بلد
-      output: آؤٹ پٹ
       export_button: ٻاہر بھیڄو
     help:
       irc:
@@ -1213,29 +1204,40 @@ skr-arab:
       table:
         entry:
           track: ٹرَیک
-          tram:
-            1: ٹرام
-          cable:
-          - کیبل کار
-          - چیئر لفٹ
+          train: ڳَݙی
+          light_rail: لائٹ ریل
+          tram: ٹرام
+          trolleybus: ٹرالی بس
+          bus: بس
+          cable_car: کیبل کار
+          chair_lift: چیئر لفٹ
+          taxiway: ٹیکسی دا راہ
+          capital: دار الحکومت
+          city: شَہر
+          orchard: بغیچا
           forest: جنگل
           wood: لکڑ
+          grass: گھا
+          meadow: چراگاہ
+          sand: ریت
           golf: گولف مَیدان
           park: پارک
-          common:
-          - وقف
-          - چراگاہ
-          - باغ
+          common: وقف
           retail: پرچون علاقہ
           industrial: صنعتی علاقہ
           commercial: کمرشل ایریا
-          lake:
-          - جھیل
+          lake: جھیل
+          reservoir: ذخائر
+          glacier: گلیشیئر
           farm: کھیت
-          school:
-          - سکول
-          - یونی ورسٹی
+          beach: ساحل
+          school: سکول
+          university: یونی ورسٹی
+          hospital: ہسپتال
           station: ریلوے ٹیشݨ
+          peak: چوٹی
+          bus_stop: بساں دا اݙا
+          stop: اݙہ
     welcome:
       title: ست بسم اللہ!
       basic_terms:
@@ -1322,6 +1324,13 @@ skr-arab:
     block:
       show: ݙِکھاؤ
       edit: تبدیلی کرو
+  user_mutes:
+    index:
+      table:
+        thead:
+          actions: عمل
+        tbody:
+          send_message: سنیہا پٹھو
   notes:
     index:
       subheading_submitted: جمع تھی ڳیا
index c50b5f5e118747db2773ad5ad026ca012a12aa84..c5eccb8269dbb2c28534f7fab58b265cef6571ee 100644 (file)
@@ -58,6 +58,11 @@ sl:
       messages:
         invalid_email_address: ni videti veljaven e-poštni naslov
         email_address_not_routable: ni preusmerljiv
+        display_name_is_user_n: ne more biti user_n, razen če je n vaš uporabniški
+          ID
+      models:
+        user_mute:
+          is_already_muted: je že utišan
     models:
       acl: Seznam nadzora dostopa
       changeset: Nabor sprememb
@@ -240,8 +245,6 @@ sl:
         two: pred %{count} letoma
         few: pred %{count} leti
         other: pred %{count} leti
-  printable_name:
-    with_version: '%{id}, %{version}. različica'
   editor:
     default: Privzeti (trenutno %{name})
     id:
@@ -253,9 +256,9 @@ sl:
   auth:
     providers:
       none: Brez
-      openid: OpenID
       google: Google
       facebook: Facebook
+      microsoft: Microsoft
       github: GitHub
       wikipedia: Wikipedija
   api:
@@ -306,6 +309,8 @@ sl:
         retain_changeset_discussions: Ohranjeni bodo vaši pogovori o naborih sprememb,
           če obstajajo.
         retain_email: Ohranjen bo vaš e-poštni naslov.
+        recent_editing_html: Pred kratkim ste urejali, zato vašega računa trenutno
+          ni mogoče izbrisati. Brisanje bo mogoče čez %{time}.
         confirm_delete: Ali ste prepričani?
         cancel: Prekliči
   accounts:
@@ -390,14 +395,10 @@ sl:
       way_paginated: Poti (%{x}-%{y} od %{count})
       relation: Relacije (%{count})
       relation_paginated: Zveze (%{x}-%{y} od %{count})
-      comment: Komentarji (%{count})
       hidden_comment_by_html: Skrit komentar %{user} %{time_ago}
       comment_by_html: Komentar %{user} %{time_ago}
       changesetxml: Nabor sprememb XML
       osmchangexml: osmChange XML
-      feed:
-        title: Nabor sprememb %{id}
-        title_comment: Nabor sprememb %{id} – %{comment}
       join_discussion: Prijavite se za pridružitev pogovoru
       discussion: Pogovor
       still_open: Nabor sprememb je še vedno odprt – pogovor se bo začel, ko bo nabor
@@ -482,6 +483,15 @@ sl:
       introduction: Kliknite na zemljevid za iskanje bližnjih značilnosti.
       nearby: Značilnosti v neposredni bližini
       enclosing: Vsebujoče značilnosti
+  old_nodes:
+    not_found:
+      sorry: 'Žal vozlišča #%{id} različice %{version} ni bilo mogoče najti.'
+  old_ways:
+    not_found:
+      sorry: 'Žal načina #%{id} različice %{version} ni bilo mogoče najti.'
+  old_relations:
+    not_found:
+      sorry: 'Žal relacije #%{id} različice %{version} ni bilo mogoče najti.'
   changesets:
     changeset_paging_nav:
       showing_page: Stran %{page}
@@ -510,6 +520,9 @@ sl:
       no_more_area: Na tem območju ni drugih množic sprememb.
       no_more_user: Ni drugih naborov sprememb tega uporabnika.
       load_more: Naloži več
+      feed:
+        title: Nabor sprememb %{id}
+        title_comment: Nabor sprememb %{id} – %{comment}
     timeout:
       sorry: Žal je trajalo pridobivanje zahtevanega nabora sprememb predolgo.
   changeset_comments:
@@ -528,6 +541,7 @@ sl:
     contact:
       km away: oddaljen %{count} km
       m away: oddaljen %{count} m
+      latest_edit_html: 'Zadnje urejanje (%{ago}):'
     popup:
       your location: Vaša lokacija
       nearby mapper: Bližnji kartograf
@@ -1508,9 +1522,9 @@ sl:
         few: '%{count} prijave'
         other: '%{count} prijav'
       no_reports: Ni prijav
-      report_created_at: Prvič prijavljeno %{datetime}
-      last_resolved_at: Zadnjič razrešeno %{datetime}
-      last_updated_at: Zadnjič %{datetime} posodobil_a %{displayname}
+      report_created_at_html: Prvič prijavljeno %{datetime}
+      last_resolved_at_html: Zadnjič razrešeno %{datetime}
+      last_updated_at_html: Zadnjič %{datetime} posodobil_a %{displayname}
       resolve: Razreši
       ignore: Prezri
       reopen: Znova odpri
@@ -1680,6 +1694,7 @@ sl:
         other: |-
           bila uspešno naložena z %{trace_points} od možnih
           %{count} točk
+      all_your_traces_html: Vse vaše uspešno naložene sledi GPX najdete na %{url}.
       subject: '[OpenStreetMap] Uspeh uvoza datoteke GPX'
     signup_confirm:
       subject: '[OpenStreetMap] Pozdravljeni v OpenStreetMap'
@@ -1803,8 +1818,6 @@ sl:
   messages:
     inbox:
       title: Prejeta pošta
-      my_inbox: Prejeta pošta
-      my_outbox: Poslana pošta
       messages: Imate %{new_messages} in %{old_messages}.
       new_messages:
         few: '%{count} nova sporočila'
@@ -1816,17 +1829,21 @@ sl:
         one: '%{count} staro sporočilo'
         two: '%{count} stari sporočili'
         other: '%{count} starih sporočil'
-      from: Od
-      subject: Zadeva
-      date: Datum
       no_messages_yet_html: Prejeli niste še nobenih sporočil. Zakaj ne bi stopili
         v stik z %{people_mapping_nearby_link}?
       people_mapping_nearby: ljudmi, ki kartirajo blizu vas
+    messages_table:
+      from: Od
+      to: Za
+      subject: Zadeva
+      date: Datum
+      actions: Dejanja
     message_summary:
       unread_button: Označi kot neprebrano
       read_button: Označi kot prebrano
       reply_button: Odgovori
       destroy_button: Izbriši
+      unmute_button: Prestavi v mapo »Prejeto«.
     new:
       title: Pošiljanje sporočila
       send_message_to_html: Pošlji novo sporočilo uporabniku %{name}
@@ -1841,19 +1858,22 @@ sl:
       body: Žal ni sporočila s tem id-jem.
     outbox:
       title: Poslana pošta
-      my_inbox: Prejeta pošta
-      my_outbox: Poslana pošta
+      actions: Dejanja
       messages:
         few: Imate %{count} poslana sporočila
         one: Imate %{count} poslano sporočilo
         two: Imate %{count} poslani sporočili
         other: Imate %{count} poslanih sporočil
-      to: Za
-      subject: Zadeva
-      date: Datum
       no_sent_messages_html: Poslali niste še nobenih sporočil. Zakaj ne bi stopili
         v stik z %{people_mapping_nearby_link}?
       people_mapping_nearby: ljudmi, ki kartirajo blizu vas
+    muted:
+      title: Utišana sporočila
+      messages:
+        one: '%{count} novo sporočilo'
+        two: '%{count} novi sporočili'
+        few: '%{count} novih sporočil'
+        other: '%{count} novih sporočil'
     reply:
       wrong_user: Prijavljeni ste kot '%{user}', toda sporočilo, na katerega odgovarjate,
         ni bilo poslano temu uporabniku. Za odgovor se prijavite kot pravi uporabnik.
@@ -1867,27 +1887,38 @@ sl:
         ni bilo poslano vam. Prosimo, prijavite se, kot pravi uporabnik za branje.
     sent_message_summary:
       destroy_button: Izbriši
+    heading:
+      my_inbox: Prejeta pošta
+      my_outbox: Poslana pošta
+      muted_messages: Utišana sporočila
     mark:
       as_read: Sporočilo označeno kot prebrano
       as_unread: Sporočilo označeno kot neprebrano
+    unmute:
+      notice: Sporočilo je bilo prestavljeno v mapo »Prejeto«.
+      error: Sporočila ni bilo mogoče premakniti v mapo »Prejeto«.
     destroy:
       destroyed: Sporočilo izbrisano
   passwords:
-    lost_password:
+    new:
       title: pozabljeno geslo
       heading: Ste pozabili geslo?
-      email address: 'E-poštni naslov:'
+      email address: E-poštni naslov
       new password button: Pošlji mi novo geslo
       help_text: Vpišite e-poštni naslov, s katerim ste se registrirali. Poslali vam
         bomo povezavo za ponastavitev gesla.
+    create:
       notice email on way: E-pismo z vsemi potrebnimi podatki za nastavitev novega
         gesla je že na poti.
       notice email cannot find: Oprostite, toda vnesenega e-poštnega naslova ni bilo
         mogoče najti.
-    reset_password:
+    edit:
       title: Ponastavitev gesla
       heading: Ponastavi geslo za %{user}
       reset: Ponastavitev gesla
+      flash token bad: Tega žetona ni bilo mogoče najti.  Predlagamo, da preverite
+        naslov URL.
+    update:
       flash changed: Vaše geslo je bilo spremenjeno.
       flash token bad: Tega žetona ni bilo mogoče najti.  Predlagamo, da preverite
         naslov URL.
@@ -1934,9 +1965,8 @@ sl:
     new:
       title: Prijava
       heading: Prijava
-      email or username: 'E-poštni naslov ali uporabniško ime:'
-      password: 'Geslo:'
-      openid_html: '%{logo} OpenID:'
+      email or username: E-poštni naslov ali uporabniško ime
+      password: Geslo
       remember: Zapomni si me
       lost password link: Ste pozabili geslo?
       login_button: Prijava
@@ -1993,6 +2023,7 @@ sl:
       image: Slika
       alt: nadomestno besedilo
       url: URL
+      codeblock: Blok kode
     richtext_field:
       edit: Uredi
       preview: Predogled
@@ -2241,12 +2272,7 @@ sl:
         to funkcijo.
     export:
       title: Izvozi
-      area_to_export: Območje za izvoz
       manually_select: Ročno izberite drugo območje
-      format_to_export: Oblika izvoženih podatkov
-      osm_xml_data: Podatki OpenStreetMap v zapisu XML
-      map_image: Slika zemljevida (prikaže standardni izris)
-      embeddable_html: HTML za vključitev na spletno stran
       licence: Licenca
       licence_details_html: Podatki OpenStreetMap so licencirani pod %{odbl_link}
         (ODbL).
@@ -2269,17 +2295,6 @@ sl:
         other:
           title: Drugi viri
           description: Dodatni viri, navedeni v vikiju OpenStreetMap
-      options: Možnosti
-      format: Oblika
-      scale: Merilo
-      max: največ
-      image_size: Velikost slike
-      zoom: Povečava
-      add_marker: Dodaj označevalec na zemljevid
-      latitude: 'Šir:'
-      longitude: 'Dol:'
-      output: Izhod
-      paste_html: Uporabite ta HTML za vključitev zemljevida na spletno stran
       export_button: Izvozi
     fixthemap:
       title: Prijavi napako / Popravi zemljevid
@@ -2315,17 +2330,13 @@ sl:
         url: https://wiki.openstreetmap.org/wiki/Sl:Beginners%27_guide
         title: Vodnik za začetnike
         description: Vodnik za začetnike, ki ga vzdržuje skupnost.
-      help:
-        title: Forum za pomoč
-        description: Postavite vprašanje ali poiščite odgovore v zbirki vprašanj in
-          odgovorov OpenStreetMap.
+      community:
+        title: Forum skupnosti
+        description: Skupno mesto za pogovore o OpenStreetMap.
       mailing_lists:
         title: Dopisni seznami
         description: Postavite vprašanje ali razpravljajte o različnih krajevnih ali
           regionalnih temah v številnih dopisnih seznamih.
-      community:
-        title: Forum skupnosti
-        description: Skupno mesto za pogovore o OpenStreetMap.
       irc:
         title: IRC
         description: Interaktivni klepet v številnih različnih jezikih in o številnih
@@ -2379,67 +2390,83 @@ sl:
           primary: Glavna cesta
           secondary: Regionalna cesta
           unclassified: Ostale ceste izven naselij
+          pedestrian: Pot za pešce
           track: Kolovoz
           bridleway: Jahalna pot
           cycleway: Kolesarska steza
           cycleway_national: Nacionalna kolesarska steza
           cycleway_regional: Regionalna kolesarska steza
           cycleway_local: Krajevna kolesarska steza
+          cycleway_mtb: Gorskokolesarska pot
           footway: Pešpot
           rail: Železnica
+          train: Vlak
           subway: Podzemna železnica
-          tram:
-          - Mestna železnica
-          - tramvaj
-          cable:
-          - Nihalka
-          - sedežnica
-          runway:
-          - Vzletno-pristajalna steza
-          - povezave
-          apron:
-          - Letališka ploščad
-          - terminal
+          ferry: Trajekt
+          light_rail: Lahka železnica
+          tram: Tramvaj
+          trolleybus: Trolejbus
+          bus: Avtobus
+          cable_car: Nihalka
+          chair_lift: Sedežnica
+          runway: Vzletno-pristajalna steza
+          taxiway: Vozna steza
+          apron: Letališka ploščad
           admin: Upravna razmejitev
+          capital: Glavno mesto
+          city: Mesto
+          orchard: Sadovnjak
+          vineyard: Vinograd
           forest: Gozd
-          wood: Pragozd
+          wood: Gozd
+          farmland: Kmetijsko zemljišče
+          grass: Trava
+          meadow: Travnik
+          bare_rock: Gola skala
+          sand: Pesek
           golf: Igrišče za golf
           park: Park
+          common: Travniki
+          built_up: Pozidano območje
           resident: Naselje
-          common:
-          - Travniki
-          - travnik
-          - vrt
           retail: Trgovinsko območje
           industrial: Industrijsko območje
           commercial: Poslovno območje
           heathland: Grmičevje
-          lake:
-          - Jezero
-          - vodni zbiralnik
+          scrubland: Grmičevje
+          lake: Jezero
+          reservoir: Vodni zbiralnik
+          intermittent_water: Presihajoče vodno telo
+          glacier: Ledenik
+          reef: Greben
+          wetland: Mokrišče
           farm: Kmetija
           brownfield: Gradbišče
           cemetery: Pokopališče
           allotments: Vrtički
           pitch: Športno igrišče
           centre: Športni center
+          beach: Plaža
           reserve: Naravni rezervat
           military: Vojaško območje
-          school:
-          - Šola
-          - univerza
+          school: Šola; univerza
+          university: Univerza
+          hospital: Bolnišnica
           building: Pomembna stavba
           station: Železniška postaja
-          summit:
-          - Vrh
-          - vrh
+          summit: Vrh
+          peak: Vrh
           tunnel: Črtkana obroba = predor
           bridge: Krepka obroba = most
           private: Zasebni dostop
           destination: Dovoljeno za dostavo
           construction: Ceste v gradnji
+          bus_stop: Avtobusno postajališče
+          stop: Postajališče
           bicycle_shop: Kolesarska trgovina
+          bicycle_rental: Izposoja koles
           bicycle_parking: Parkirišče za kolesa
+          bicycle_parking_small: Majhno parkirišče za kolesa
           toilets: Stranišče
     welcome:
       title: Pozdravljeni!
@@ -2483,6 +2510,7 @@ sl:
         imports_url: https://wiki.openstreetmap.org/wiki/SL:Import/Guidelines
         automated_edits: Avtomatizirana urejanja
       start_mapping: Začnite kartirati
+      continue_authorization: Nadaljuj avtorizacijo
       add_a_note:
         title: Nimate časa za urejanje? Dodajte opombo!
         para_1: Če si želite popraviti kakšno majhno napako in nimate časa za prijavo
@@ -2640,6 +2668,7 @@ sl:
       oauth1_settings: Nastavitve OAuth 1
       oauth2_applications: Aplikacije OAuth 2
       oauth2_authorizations: Pooblastila OAuth 2
+      muted_users: Utišani uporabniki
   oauth:
     authorize:
       title: Dovoli dostop do vašega računa
@@ -2678,6 +2707,7 @@ sl:
       read_gpx: Branje zasebnih sledi GPS
       write_gpx: Nalaganje sledi GPS
       write_notes: Spreminjanje opomb
+      write_redactions: Skrij podatke na zemljevidu
       read_email: Branje uporabnikovega e-poštnega naslova
       skip_authorization: Samodejna odobritev aplikacije
   oauth_clients:
@@ -2768,7 +2798,7 @@ sl:
       no_applications_html: Pooblastili še niste nobene aplikacije %{oauth2}.
     application:
       revoke: Prekliči dostop
-      confirm_revoke: Želite za to aplikacijo preklicati dostop?
+      confirm_revoke: Želite tej aplikaciji odvzeti dostop?
   users:
     new:
       title: Registracija
@@ -2851,6 +2881,8 @@ sl:
       my_dashboard: Moja nadzorna plošča
       blocks on me: Blokiranja mene
       blocks by me: Moja blokiranja
+      create_mute: Utišaj tega uporabnika
+      destroy_mute: Vklopi zvok tega uporabnika
       edit_profile: Uredi profil
       send message: Pošlji sporočilo
       diary: Dnevnik
@@ -2864,7 +2896,6 @@ sl:
       ct status: 'Pogoji sodelovanja:'
       ct undecided: Neodločen
       ct declined: Zavrnjeni
-      latest edit: 'Zadnje urejanje (%{ago}):'
       email address: 'E-poštni naslov:'
       created from: 'Ustvarjen iz:'
       status: 'Stanje:'
@@ -2872,14 +2903,18 @@ sl:
       role:
         administrator: Ta uporabnik je administrator
         moderator: Ta uporabnik je moderator
+        importer: Ta uporabnik je uvoznik
         grant:
           administrator: Podeli administratorski dostop
           moderator: Podeli moderatorski dostop
+          importer: Podeli dostop uvoznika
         revoke:
           administrator: Odvzemi administratorski dostop
           moderator: Odvzemi moderatorski dostop
+          importer: Odvzemi dostop uvoznika
       block_history: Aktivna blokiranja
       moderator_history: Izvedena blokiranja
+      revoke_all_blocks: Prekliči vsa blokiranja
       comments: Komentarji
       create_block: Blokiraj uporabnika
       activate_user: Aktiviraj uporabnika
@@ -2910,8 +2945,8 @@ sl:
       support: podpora
       automatically_suspended: Oprostite, vaš račun je bil blokiran zaradi sumljive
         dejavnosti.
-      contact_support_html: To odločitev bo kmalu pregledal skrbnik, lahko pa se obrnete
-        na %{support_link}, če se želite o tem pogovoriti.
+      contact_support_html: To odločitev bo kmalu pregledal administrator, lahko pa
+        se obrnete na %{support_link}, če se želite o tem pogovoriti.
     auth_failure:
       connection_failed: Povezava do ponudnika avtentikacije ni uspela
       invalid_credentials: Neveljavne avtentikacijske poverilnice
@@ -2930,8 +2965,8 @@ sl:
       not_a_role: Besedilo `%{role}' ni pravilna vloga.
       already_has_role: Uporabnik že ima vlogo %{role}.
       doesnt_have_role: Uporabnik nima vloge %{role}.
-      not_revoke_admin_current_user: Trenutnemu uporabniku ni mogoče preklicati vloge
-        skrbnika.
+      not_revoke_admin_current_user: Trenutnemu uporabniku ni mogoče odvzeti vloge
+        administratorja.
     grant:
       title: Potrdi dodeljevanje vloge
       heading: Potrdi dodeljevanje vloge
@@ -2979,11 +3014,23 @@ sl:
     revoke:
       title: Preklic blokiranja za %{block_on}
       heading_html: Preklic blokiranja %{block_on} od %{block_by}
-      time_future: To blokiranje se bo končalo v %{time}.
-      past: To blokiranje se je končalo ob %{time} in ga ni več mogoče preklicati.
+      time_future_html: To blokiranje se bo končalo v %{time}.
+      past_html: To blokiranje se je končalo ob %{time} in ga ni več mogoče preklicati.
       confirm: Ali res želite preklicati blokiranje?
       revoke: Prekliči!
       flash: To blokiranje je bilo preklicano.
+    revoke_all:
+      title: Preklic vseh blokiranj v %{block_on}
+      heading_html: Preklic vseh blokiranj v %{block_on}
+      empty: '%{name} nima aktivnih blokiranj.'
+      confirm: Ste prepričani, da želite preklicati %{active_blocks}?
+      active_blocks:
+        one: '%{count} aktivno blokiranje'
+        two: '%{count} aktivni blokiranji'
+        few: '%{count} aktivna blokiranja'
+        other: '%{count} aktivnih blokiranj'
+      revoke: Prekliči!
+      flash: Vsa aktivna blokiranja so bila preklicana.
     helper:
       time_future_html: Konča se čez %{time}.
       until_login: Aktivna dokler uporabnik se prijavi.
@@ -3051,6 +3098,32 @@ sl:
       showing_page: Stran %{page}
       next: Naprej »
       previous: « Prejšnja
+  user_mutes:
+    index:
+      title: Utišani uporabniki
+      my_muted_users: Moji utišani uporabniki
+      you_have_muted_n_users:
+        one: Utišali ste %{count} uporabnika
+        two: Utišali ste %{count} uproabnika
+        few: Utišali ste %{count} uporabnikov
+        other: Utišali ste %{count} uporabnikov
+      user_mute_explainer: Sporočila utišanih uporabnikov so premaknjena v ločeno
+        mapo »Prejeto« in ne boste prejemali e-poštnih obvestil.
+      user_mute_admins_and_moderators: Administratorje in moderatorje lahko utišate,
+        vendar njihova sporočila ne bodo utišana.
+      table:
+        thead:
+          muted_user: Utišani uporabnik
+          actions: Dejanja
+        tbody:
+          unmute: Vklopi zvok
+          send_message: Pošlji sporočilo
+    create:
+      notice: Utišali ste %{name}.
+      error: '%{name} ni bilo mogoče utišati. %{full_message}.'
+    destroy:
+      notice: Vklopili ste zvok %{name}.
+      error: Zvoka uporabnika ni bilo mogoče vklopiti. Prosimo, poskusite znova.
   notes:
     index:
       title: Opombe, ki jih je posredoval_a ali komentiral_a %{user}
@@ -3087,6 +3160,7 @@ sl:
       reactivate: Znova aktiviraj
       comment_and_resolve: Komentiraj in razreši
       comment: Komentiraj
+      log_in_to_comment: Za komentiranje te opombe se prijavite
       report_link_html: Če ta opomba vsebuje občutljive podatke, ki jih je treba odstraniti,
         lahko %{link}.
       other_problems_resolve: Vse preostale težave z opombo rešite sami s komentarjem.
@@ -3148,12 +3222,10 @@ sl:
           other: Ste znotraj %{count} čevljev od te točke
       base:
         standard: Privzeta karta
-        cyclosm: CyclOSM
         cycle_map: Kolesarska karta
         transport_map: Prometna karta
         tracestracktop_topo: Tracestrack Topo
         hot: Humanitarno
-        opnvkarte: ÖPNVKarte
       layers:
         header: Sloji zemljevida
         notes: Opombe na zemljevidu
@@ -3168,8 +3240,6 @@ sl:
       osm_france: OpenStreetMap France
       thunderforest_credit: Ploščice z dovoljenjem %{thunderforest_link}
       andy_allan: Andy Allan
-      opnvkarte_credit: Ploščice z dovoljenjem %{memomaps_link}
-      memomaps: MeMoMaps
       tracestrack_credit: Ploščice z dovoljenjem %{tracestrack_link}
       hotosm_credit: Slog ploščic %{hotosm_link}, gosti jih %{osm_france_link}
       hotosm_name: Humanitarna ekipa OpenStreetMap
@@ -3182,6 +3252,7 @@ sl:
       map_data_zoom_in_tooltip: Približajte za ogled podatkov zemljevida
       queryfeature_tooltip: Preveri značilnosti
       queryfeature_disabled_tooltip: Približajte za preverjanje značilnosti
+      embed_html_disabled: Za ta sloj zemljevida vdelava HTML ni na voljo
     changesets:
       show:
         comment: Komentiraj
@@ -3302,7 +3373,7 @@ sl:
       add_note: Tu dodaj opombo
       show_address: Prikaži naslov
       query_features: Preveri značilnosti
-      centre_map: Premakni na sredino
+      centre_map: Osredini zemljevid tukaj
   redactions:
     edit:
       heading: Uredi redakcijo
index b85cfc647f910e1fbc9d222d992b60f7ed0eddae..604314a0d3ec3f3712acd1d7b316055299804945 100644 (file)
@@ -2,6 +2,7 @@
 # Exported from translatewiki.net
 # Export driver: phpyaml
 # Author: Bjakupi
+# Author: Dimitar
 # Author: Eraldkerciku
 # Author: Euriditi
 # Author: Fanjiayi
@@ -175,12 +176,8 @@ sq:
       way_paginated: Mënyrat (%{x}-%{y} nga %{count})
       relation: Marrëdhëniet (%{count})
       relation_paginated: Marrëdhëniet (%{x}-%{y} nga %{count})
-      comment: Komentet (%{count})
       changesetxml: Grupi i ndryshimeve në XML
       osmchangexml: osmNdrsyhimi XML
-      feed:
-        title: 'Grupi i ndryshimeve: %{id}'
-        title_comment: Grupi i ndryshimeve %{id} - %{comment}
       join_discussion: Identifikohuni për t'iu bashkuar diskutimit
       discussion: Diskutim
     node:
@@ -277,6 +274,9 @@ sq:
       no_more_area: Nuk ka më ndryshime në këtë zonë.
       no_more_user: Nuk ka më ndryshime nga ky përdorues.
       load_more: Ngarko më shumë
+      feed:
+        title: 'Grupi i ndryshimeve: %{id}'
+        title_comment: Grupi i ndryshimeve %{id} - %{comment}
     timeout:
       sorry: Na vjen keq, lista e ndryshimeve që ju kërkuat zgjati shumë për t'u rikuperuar.
   changeset_comments:
@@ -290,6 +290,7 @@ sq:
     contact:
       km away: '%{count}km larg'
       m away: '%{count}m larg'
+      latest_edit_html: 'Redaktimi i fundit %{ago}:'
     popup:
       your location: Vendndodhja e jote
       nearby mapper: Hartuesi aty pranë
@@ -854,8 +855,8 @@ sq:
         ignored: Injoruar
         open: E hapur
     show:
-      report_created_at: E raportuar së pari tek %{datetime}
-      last_updated_at: Herën e fundit i ri- freskuar%{datetime}nga%{displayname}
+      report_created_at_html: E raportuar së pari tek %{datetime}
+      last_updated_at_html: Herën e fundit i ri- freskuar%{datetime}nga%{displayname}
       resolve: Zgjidh
       ignore: injoro
       reports_of_this_issue: Raportimet e këtij problemi
@@ -958,14 +959,15 @@ sq:
   messages:
     inbox:
       title: Kutia mbërritëse
-      my_inbox: Kutia ime mbërritëse
       messages: Ti ke %{new_messages} dhe %{old_messages}
-      from: Prej
-      subject: Titulli
-      date: Data
       no_messages_yet_html: Ti nuk ke mesazhe ende. Pse nuk kontakton ndonjërin nga
         %{people_mapping_nearby_link}?
       people_mapping_nearby: hartografët aty pranë
+    messages_table:
+      from: Prej
+      to: Për
+      subject: Titulli
+      date: Data
     message_summary:
       unread_button: Shëno si të palexuar
       read_button: Shëno si të lexuar
@@ -985,9 +987,6 @@ sq:
       body: Na vjen keq, nuk ka mesazh me këtë id.
     outbox:
       title: Dalje
-      to: Për
-      subject: Titulli
-      date: Data
     show:
       reply_button: Përgjigje
       unread_button: Shëno si të palexuar
@@ -997,11 +996,13 @@ sq:
         si përdorues i saktë për të lexuar atë.'
     sent_message_summary:
       destroy_button: Fshi
+    heading:
+      my_inbox: Kutia ime mbërritëse
     mark:
       as_read: Mesazhi është shënuar si të lexuar
       as_unread: Mesazhi është shënuar si i palexuar
   passwords:
-    lost_password:
+    new:
       title: Fjalëkalimi i humbur
       heading: Ke harruar fjalëkalimin?
       email address: 'Adresa e emailit:'
@@ -1009,16 +1010,18 @@ sq:
       help_text: Shkruani adresën e emailit që keni përdorur për tu regjistruar, ne
         do të dërgojmë një lidhje të cilën mund të përdorni për të rivendosur fjalëkalimin
         tuaj.
+    create:
       notice email on way: Na vjen keq e keni humbur atë :-( por një email është në
         rrugëtim kështu që ju mund të rivendosni atë së shpejti.
       notice email cannot find: Na vjen keq, ne nuk arritë ta gjejmë adresën e emailit
         të dhënë.
-    reset_password:
+    edit:
       title: Rivendos fjalëkalimin
       heading: Rivendos fjalëkalimin për %{user}
       reset: Rivendos fjalëkalimin
-      flash changed: Fjalëkalimi yt është ndryshuar.
       flash token bad: Nuk e gjet atë shenjë, kontrollo URL-në?
+    update:
+      flash changed: Fjalëkalimi yt është ndryshuar.
   profiles:
     edit:
       image: Imazhi
@@ -1094,12 +1097,7 @@ sq:
       user_page_link: '{{GENDER:{{ROOTPAGENAME}}|faqja e përdoruesit|faqja e përdorueses}}'
     export:
       title: Eksporto
-      area_to_export: Zona për tu eksportuar
       manually_select: Zgjidh me dorë një zonë tjetër
-      format_to_export: Formati per eksportim
-      osm_xml_data: Të dhëna XML të OpenStreetMap
-      map_image: Imzhi i hartës (shfaq shtresën e parazgjedhur)
-      embeddable_html: HTML i inkorporueshëm
       licence: Licensa
       too_large:
         advice: 'Në qoftë se dështon eksporti i mësipërm, të lutem konsidero përdorimin
@@ -1122,17 +1120,6 @@ sq:
         other:
           title: Burime të tjera
           description: Burime shtesë të listuara në faqen e OpenStreetMap wiki
-      options: Opsionet
-      format: Formati
-      scale: Shkallë
-      max: max
-      image_size: Madhësia e imazhit
-      zoom: Zmadho
-      add_marker: Shto një shënues në hartë
-      latitude: 'Lat:'
-      longitude: 'Lon:'
-      output: Dalja
-      paste_html: Ngjite HTML për ta inkorporuar në uebfaqe
       export_button: Eksporto
     fixthemap:
       how_to_help:
@@ -1158,10 +1145,6 @@ sq:
         url: http://wiki.openstreetmap.org/wiki/Sq:Beginners%27_guide
         title: Udhëzues për fillestarë.
         description: Një udhëzues për fillestarë që mirëmbahet nga komuniteti.
-      help:
-        title: Forumi i Ndihmës
-        description: Bëni një pyetje ose shikoni përgjigjet në faqen e pyetjeve dhe
-          përgjigjeve të OpenStreetMap.
       mailing_lists:
         title: Listat E Postimeve
         description: Bëni një pyetje ose diskutoni çështje interesante në një gamë
@@ -1179,14 +1162,12 @@ sq:
         entry:
           centre: Qendër sportive
           military: Zonë ushtarake
-          school:
-          - Shkollë
-          - Universitet
+          school: Shkollë
+          university: Universitet
           building: Ndërtesë
           station: Stacioni hekurudhor
-          summit:
-          - Samit
-          - majë
+          summit: Samit
+          peak: majë
     welcome:
       title: Mirësevjen
       whats_on_the_map:
@@ -1298,7 +1279,7 @@ sq:
       consider_pd: Përveç marrëveshjes së mësipërme, unë i konsideroj kontributet
         e mia të jenë në Domeinin Publik
       consider_pd_why: çfarë është kjo?
-      consider_pd_why_url: http://www.osmfoundation.org/wiki/License/Why_would_I_want_my_contributions_to_be_public_domain
+      consider_pd_why_url: https://www.osmfoundation.org/wiki/License/Why_would_I_want_my_contributions_to_be_public_domain
       decline: Nuk e pranoj
       legale_select: 'Vendi i banimit:'
       legale_names:
@@ -1329,7 +1310,6 @@ sq:
       remove as friend: Largo mikun
       add as friend: Shto si mik
       mapper since: 'Hartues që prej:'
-      latest edit: 'Redaktimi i fundit %{ago}:'
       email address: 'Adresa e emailit:'
       created from: 'Krijuar nga:'
       status: 'Statusi:'
index 470019435c0f6b3fdea99edacb7f07f351c5b65c..5ec3fd8796395e40a09d12463cfe0a74dd523c49 100644 (file)
@@ -115,8 +115,6 @@ sr-Latn:
         needs_view: Da li korisnik mora da se prijavi da bi blokada bila uklonjena?
       user:
         new_email: (nikada se ne prikazuje javno)
-  printable_name:
-    with_version: '%{id}, ver. %{version}'
   editor:
     default: Podrazumevano (trenutno %{name})
     remote:
@@ -157,9 +155,6 @@ sr-Latn:
       title: Skup izmena
       changesetxml: XML skup izmena
       osmchangexml: osmChange XML
-      feed:
-        title: Skup izmena %{id}
-        title_comment: Skup izmena %{id} – %{comment}
     relation_member:
       entry_role_html: '%{type} %{name} kao %{role}'
       type:
@@ -220,12 +215,16 @@ sr-Latn:
       title_user: Skupovi izmena korisnika %{user}
       title_friend: Izmene vaših prijatelja
       title_nearby: Izmene od okolnih korisnika
+      feed:
+        title: Skup izmena %{id}
+        title_comment: Skup izmena %{id} – %{comment}
     timeout:
       sorry: Žao nam je, ali spisak izmena koji ste zahtevali je predugačak.
   dashboards:
     contact:
       km away: udaljeno %{count} km
       m away: udaljeno %{count} m
+      latest_edit_html: 'Poslednja izmena pre %{ago}:'
     popup:
       your location: Vaša lokacija
       nearby mapper: Obližnji kartograf
@@ -828,7 +827,6 @@ sr-Latn:
   messages:
     inbox:
       title: Primljene
-      my_inbox: Primljene
       messages: Imate %{new_messages} i %{old_messages}
       new_messages:
         one: '%{count} nova poruka'
@@ -836,12 +834,14 @@ sr-Latn:
       old_messages:
         one: '%{count} stara poruka'
         other: '%{count} stare poruke'
-      from: Od
-      subject: Naslov
-      date: Datum
       no_messages_yet_html: Još uvek nemate poruka. Zašto ne biste stupili u kontakt
         s %{people_mapping_nearby_link}?
       people_mapping_nearby: maperima u vašoj okolini
+    messages_table:
+      from: Od
+      to: Za
+      subject: Naslov
+      date: Datum
     message_summary:
       unread_button: Označi kao nepročitano
       read_button: Označi kao pročitano
@@ -864,9 +864,6 @@ sr-Latn:
       messages:
         one: Imate %{count} poslatu poruku
         other: Imate %{count} poslate poruke
-      to: Za
-      subject: Naslov
-      date: Datum
       no_sent_messages_html: Još uvek nemate poslatih poruka. Zašto ne biste stupili
         u kontakt s %{people_mapping_nearby_link}?
       people_mapping_nearby: maperima u vašoj okolini
@@ -882,27 +879,31 @@ sr-Latn:
         pročitali.
     sent_message_summary:
       destroy_button: Obriši
+    heading:
+      my_inbox: Primljene
     mark:
       as_read: Poruka je označena kao pročitana
       as_unread: Poruka je označena kao nepročitana
     destroy:
       destroyed: Poruka je obrisana
   passwords:
-    lost_password:
+    new:
       title: Povratak lozinke
       heading: Zaboravili ste lozinku?
       email address: 'E-adresa:'
       new password button: Poništi lozinku
       help_text: Unesite e-adresu koju ste uneli pri upisu, a mi ćemo vam poslati
         vezu pomoću koje možete da poništite lozinku.
+    create:
       notice email on way: Poruka za poništavanje lozinke je poslata.
       notice email cannot find: E-adresa nije pronađena.
-    reset_password:
+    edit:
       title: Poništi lozinku
       heading: Poništavanje lozinke za %{user}
       reset: Poništi lozinku
-      flash changed: Vaša lozinka je promenjena.
       flash token bad: Takav novčić nije pronađen. Proverite adresu.
+    update:
+      flash changed: Vaša lozinka je promenjena.
   profiles:
     edit:
       image: 'Slika:'
@@ -920,7 +921,6 @@ sr-Latn:
       heading: Prijava
       email or username: 'Imejl adresa ili korisničko ime:'
       password: 'Lozinka:'
-      openid_html: '%{logo} OpenID:'
       remember: Zapamti me
       lost password link: Zaboravili ste lozinku?
       login_button: Prijavi me
@@ -985,27 +985,11 @@ sr-Latn:
       no_iframe_support: Vaš pregledač ne podržava HTML iframes, a oni su potrebni
         za ovu mogućnost.
     export:
-      area_to_export: Područje za izvoz
       manually_select: Ručno izaberite drugo područje
-      format_to_export: Format za izvoz
-      osm_xml_data: Openstritmap XML podaci
-      map_image: Slika mape (prikazuje standardni sloj)
-      embeddable_html: Ugradivi HTML kod
       licence: Licenca
       too_large:
         body: Ovo područje je preveliko da bi bilo izvezeno u formatu XML. Uvećajte
           prikaz ili izaberite manju površinu.
-      options: Mogućnosti
-      format: Format
-      scale: Razmera
-      max: najviše
-      image_size: Veličina slike
-      zoom: Uvećanje
-      add_marker: Dodaj marker na mapu
-      latitude: 'GŠ:'
-      longitude: 'GD:'
-      output: Izlaz
-      paste_html: Ubacite HTML kod za ugrađivanje na stranice
       export_button: Izvezi
     sidebar:
       search_results: Rezultati pretrage
@@ -1029,34 +1013,24 @@ sr-Latn:
           footway: Pešačka staza
           rail: Železnička pruga
           subway: Podzemna železnica
-          tram:
-          - Laka železnica
-          - tramvaj
-          cable:
-          - Žičara
-          - sedišnica
-          runway:
-          - Aerodromska pista
-          - rulne staze
-          apron:
-          - Aerodromski peron
-          - terminal
+          cable_car: Žičara
+          chair_lift: sedišnica
+          runway: Aerodromska pista
+          taxiway: rulne staze
+          apron: Aerodromski peron
           admin: Administrativna granica
           forest: Šuma
           wood: Šuma
           golf: Golf teren
           park: Park
+          common: Poljana
           resident: Stambeno područje
-          common:
-          - Poljana
-          - livada
           retail: Maloprodajno područje
           industrial: Industrijsko područje
           commercial: Poslovno područje
           heathland: Pustoš
-          lake:
-          - Jezero
-          - rezervoar
+          lake: Jezero
+          reservoir: rezervoar
           farm: Farma
           brownfield: Građevinsko zemljište
           cemetery: Groblje
@@ -1065,14 +1039,12 @@ sr-Latn:
           centre: Sportski centar
           reserve: Rezervat prirode
           military: Vojno područje
-          school:
-          - Škola
-          - univerzitet
+          school: Škola
+          university: univerzitet
           building: Značajna zgrada
           station: Železnička stanica
-          summit:
-          - Uzvišenje
-          - vrh
+          summit: Uzvišenje
+          peak: vrh
           tunnel: Isprekidan okvir – tunel
           bridge: Crni okvir – most
           private: Privatni posed
@@ -1263,7 +1235,6 @@ sr-Latn:
       ct status: 'Uslovi za učešće:'
       ct undecided: Neodlučeno
       ct declined: Odbijeno
-      latest edit: 'Poslednja izmena pre %{ago}:'
       email address: 'E-adresa:'
       created from: 'Napravljeno iz:'
       status: 'Stanje:'
@@ -1357,8 +1328,8 @@ sr-Latn:
     revoke:
       title: Opozivanje blokade na %{block_on}
       heading_html: Opozivanje blokade na %{block_on} od %{block_by}
-      time_future: Ova blokada će se završiti za %{time}.
-      past: Ova blokada je završena pre %{time} i ne može se sada opozvati.
+      time_future_html: Ova blokada će se završiti za %{time}.
+      past_html: Ova blokada je završena pre %{time} i ne može se sada opozvati.
       confirm: Želite li da opozovete ovu blokadu?
       revoke: Opozovi
       flash: Ova blokada je opozvana.
index 967969d34bd3e9c566afcc1c137fe997a51cb95e..be5b9e49a3fc1cacd5fb1bec9253b6c283e26653 100644 (file)
@@ -115,6 +115,7 @@ sr:
       diary_entry:
         user: Корисник
         title: Наслов
+        body: Текст
         latitude: Географска ширина
         longitude: Географска дужина
         language_code: Језик
@@ -175,9 +176,55 @@ sr:
         new_email: (никада се не приказује јавно)
   datetime:
     distance_in_words_ago:
+      about_x_hours:
+        one: пре око %{count} сата
+        few: пре око %{count} сата
+        other: пре око %{count} сати
+      about_x_months:
+        one: пре око %{count} месец
+        few: пре око %{count} месеца
+        other: пре око %{count} месеци
+      about_x_years:
+        one: пре око %{count} године
+        few: пре око %{count} године
+        other: пре око %{count} година
+      almost_x_years:
+        one: пре скоро %{count} године
+        few: пре скоро %{count} године
+        other: пре скоро %{count} година
       half_a_minute: пре пола минута
-  printable_name:
-    with_version: '%{id}, вер. %{version}'
+      less_than_x_seconds:
+        one: пре мање од %{count} секунде
+        few: пре мање од %{count} секунде
+        other: пре мање од %{count} секунди
+      less_than_x_minutes:
+        one: пре мање од %{count} минута
+        few: пре мање од %{count} минута
+        other: пре мање од %{count} минута
+      over_x_years:
+        one: пре више од %{count} године
+        few: пре више од %{count} године
+        other: пре више од %{count} година
+      x_seconds:
+        one: пре %{count} секунде
+        few: пре %{count} секунде
+        other: пре %{count} секунди
+      x_minutes:
+        one: пре %{count} минут
+        few: пре %{count} минута
+        other: пре %{count} минута
+      x_days:
+        one: пре %{count} дан
+        few: пре %{count} дана
+        other: пре %{count} дана
+      x_months:
+        one: пре %{count} месец
+        few: пре %{count} месеца
+        other: пре %{count} месеци
+      x_years:
+        one: пре %{count} године
+        few: пре %{count} године
+        other: пре %{count} година
   editor:
     default: Подразумевано (тренутно %{name})
     id:
@@ -189,7 +236,6 @@ sr:
   auth:
     providers:
       none: Ниједан
-      openid: OpenID
       google: Google
       facebook: Фејсбук
       github: GitHub
@@ -217,6 +263,16 @@ sr:
       entry:
         comment: Коментар
         full: Потпуна белешка
+  account:
+    deletions:
+      show:
+        title: Обришите мој налог
+        warning: Упозорење! Брисање налога је неповратан процес.
+        delete_account: Обриши налог
+        retain_edits: Ваше измене картографске базе (ако их има), биће задржане.
+        retain_email: Ваша имејл адреса ће бити задржана.
+        confirm_delete: Јесте ли сигурни?
+        cancel: Откажи
   accounts:
     edit:
       title: Уреди налог
@@ -241,8 +297,10 @@ sr:
         agreed_with_pd: Такође се слажете да ваше измене буду у јавном власништву.
         link text: шта је ово?
       save changes button: Сачувај промене
+      delete_account: Брисање налога...
     go_public:
       heading: Јавно уређивање
+      find_out_why: сазнајте зашто
       make_edits_public_button: Нека све моје измене буду јавне
     update:
       success_confirm_needed: Подаци о кориснику су успешно ажурирани. Проверите имејл
@@ -253,6 +311,10 @@ sr:
   browse:
     created: Направљено
     closed: Затворено
+    created_ago_html: Направљено %{time_ago}
+    closed_ago_html: Затворено %{time_ago}
+    created_ago_by_html: Направљено %{time_ago} од %{user}
+    edited_ago_by_html: Уређено %{time_ago} од %{user}
     version: Верзија
     in_changeset: Скуп промена
     anonymous: анониман
@@ -271,12 +333,10 @@ sr:
       way_paginated: Линије (%{x}-%{y} од %{count})
       relation: Односи (%{count})
       relation_paginated: Односи (%{x}-%{y} од %{count})
-      comment: Коментари (%{count})
+      hidden_comment_by_html: Сакривени коментар корисника %{user} %{time_ago}
+      comment_by_html: '%{user} коментарисао(ла) пре %{time_ago}'
       changesetxml: XML скуп промена
       osmchangexml: osmChange XML
-      feed:
-        title: Скуп промена %{id}
-        title_comment: Скуп промена %{id} – %{comment}
       join_discussion: Пријавите се да бисте се придружили дискусији
       discussion: Дискусија
     node:
@@ -340,6 +400,7 @@ sr:
       wikidata_link: Ставка %{page} на Википодацима
       wikipedia_link: Чланак %{page} на Википедији
       telephone_link: Позови %{phone_number}
+      email_link: Имејл %{email}
     query:
       title: Информације о објектима
       introduction: Кликните на мапу да бисте пронашли објекте у близини.
@@ -372,6 +433,9 @@ sr:
       no_more_area: Нема више скупова промена у овој области.
       no_more_user: Нема више скупова промена овог корисника.
       load_more: Учитај још
+      feed:
+        title: Скуп промена %{id}
+        title_comment: Скуп промена %{id} – %{comment}
     timeout:
       sorry: Преузимање захтеваних скупова промена је трајало предуго.
   changeset_comments:
@@ -390,11 +454,14 @@ sr:
     contact:
       km away: удаљено %{count} км
       m away: удаљено %{count} м
+      latest_edit_html: 'Последња измена (%{ago}):'
     popup:
       your location: Ваша локација
       nearby mapper: Оближњи картограф
       friend: Пријатељ
     show:
+      title: Tабла
+      edit_your_profile: Уредите Ваш профил
       my friends: Моји пријатељи
       no friends: Нисте додали ниједног пријатеља.
       nearby users: 'Остали оближњи корисници:'
@@ -428,6 +495,7 @@ sr:
     show:
       title: Дневник корисника/це %{user} | %{title}
       user_title: Дневник корисника/це %{user}
+      discussion: Дискусија
       leave_a_comment: Остави коментар
       login_to_leave_a_comment_html: '%{login_link} да бисте оставили коментар'
       login: Пријавите се
@@ -441,9 +509,9 @@ sr:
       comment_link: Коментариши овај унос
       reply_link: Пошаљи поруку аутору
       comment_count:
-        zero: Нема коментара
         one: '%{count} коментар'
         other: '%{count} коментара'
+      no_comments: Нема коментара
       edit_link: Уреди овај унос
       hide_link: Сакриј овај унос
       unhide_link: Откриј овај унос
@@ -475,6 +543,20 @@ sr:
       comment: Коментар
       newer_comments: Новији коментари
       older_comments: Старији коментари
+  doorkeeper:
+    scopes:
+      address: Види своју физичку адресу
+      email: Види своју имејл адресу
+      phone: Види своју број телефона
+  errors:
+    contact:
+      contact: контакт
+    forbidden:
+      title: Забрањено
+    internal_server_error:
+      title: Грешка у апликацији
+    not_found:
+      title: Датотека није пронађена
   friendships:
     make_friend:
       heading: Додати корисника %{user} као пријатеља?
@@ -530,7 +612,7 @@ sr:
           car_sharing: Краткорочно изнајмљивање аутомобила
           car_wash: Ауто-перионица
           casino: Казино
-          charging_station: Ð\90кÑ\83мÑ\83лаÑ\82оÑ\80Ñ\81ка Ñ\81Ñ\82аниÑ\86а
+          charging_station: Ð¡Ñ\82аниÑ\86а Ð·Ð° Ð¿Ñ\83Ñ\9aеÑ\9aе Ð\95Ð\92
           childcare: Агенција за чување деце
           cinema: Биоскоп
           clinic: Клиника
@@ -596,11 +678,14 @@ sr:
           toilets: Тоалет
           townhall: Градска скупштина
           university: Универзитет
+          vehicle_inspection: Технички преглед
           vending_machine: Аутомат
           veterinary: Ветеринарска клиника
           village_hall: Сеоска месна заједница
           waste_basket: Корпа за отпатке
           waste_disposal: Контејнер
+          waste_dump_site: Депонија
+          weighbridge: Теретна вага
         boundary:
           administrative: Административна граница
           census: Пописна граница
@@ -615,6 +700,7 @@ sr:
           viaduct: Вијадукт
           "yes": Мост
         building:
+          apartment: Стан
           apartments: Станови
           barn: Штала
           bungalow: Бунгалов
@@ -631,11 +717,13 @@ sr:
           farm_auxiliary: Помоћна штала
           garage: Гаража
           garages: Гараже
+          greenhouse: Стакленик
           hangar: Хангар
           hospital: Болница
           hotel: Хотел
           house: Кућа
           houseboat: Кућа на води
+          hut: Колиба
           industrial: Индустријска зграда
           kindergarten: Зграда вртића
           manufacture: Зграда фабрике
@@ -666,6 +754,7 @@ sr:
           brewery: Пивара
           carpenter: Столар
           confectionery: Кондитор
+          dressmaker: Кројач
           electrician: Електричар
           electronics_repair: Поправка електронике
           gardener: Баштован
@@ -675,6 +764,7 @@ sr:
           roofer: Кровник
           sawmill: Пилана
           shoemaker: Обућар
+          stonemason: Каменорезац
           tailor: Кројач
           winery: Винарија
           "yes": Занатска радња
@@ -683,6 +773,7 @@ sr:
           ambulance_station: Хитна помоћ
           assembly_point: Тачка окупљања
           defibrillator: Дефибрилатор
+          fire_extinguisher: ПП апарат
           landing_site: Место за хитно слетање
           phone: Телефон за хитне случајеве
         highway:
@@ -692,6 +783,7 @@ sr:
           bus_stop: Аутобуска станица
           construction: Пут у изградњи
           corridor: Коридор
+          crossing: Пешачки прелаз
           cycleway: Бициклистичка стаза
           elevator: Лифт
           emergency_access_point: Прва помоћ
@@ -764,6 +856,7 @@ sr:
           "yes": Раскрсница
         landuse:
           allotments: Парцеле
+          aquaculture: Рибњак
           basin: Басен
           brownfield: Запуштена локација
           cemetery: Гробље
@@ -795,6 +888,7 @@ sr:
         leisure:
           beach_resort: Приобално одмаралиште
           bird_hide: Осматрачница за птице
+          bowling_alley: Куглана
           common: Општинско земљиште
           dog_park: Парк за псе
           firepit: Камин
@@ -829,7 +923,9 @@ sr:
           bridge: Мост
           bunker_silo: Бункер
           chimney: Димњак
+          communications_tower: Репетитор
           crane: Кран
+          cross: Крст
           dyke: Насип
           embankment: Насип
           flagpole: Јарбол за заставу
@@ -846,9 +942,13 @@ sr:
           pipeline: Цевовод
           pumping_station: Црпна станица
           silo: Силос
+          street_cabinet: Улични орман
           surveillance: Присмотра
+          telescope: Телескоп
           tower: Кула
+          utility_pole: Бандера
           watermill: Водени млин
+          water_tap: Чесма
           water_tower: Водени торањ
           water_well: Бунар
           windmill: Ветрењача
@@ -858,6 +958,8 @@ sr:
           airfield: Војни аеродром
           barracks: Касарна
           bunker: Бункер
+          checkpoint: Контролна тачка
+          trench: Ров
           "yes": Војска
         mountain_pass:
           "yes": Планински прелаз
@@ -909,6 +1011,7 @@ sr:
           administrative: Администрација
           advertising_agency: Маркетиншка агенција
           architect: Архитекта
+          association: Удружење
           company: Предузеће
           diplomatic: Дипломатска канцеларија
           educational_institution: Образовна установа
@@ -942,6 +1045,7 @@ sr:
           municipality: Општина
           neighbourhood: Кварт
           postcode: Поштански број
+          quarter: Четврт
           region: Регион
           sea: Море
           square: Трг
@@ -966,6 +1070,7 @@ sr:
           platform: Железнички перон
           preserved: Очувана железница
           proposed: Пројектована железница
+          rail: Железница
           spur: Огранак железничке пруге
           station: Железничка станица
           stop: Железничко стајалиште
@@ -986,6 +1091,7 @@ sr:
           beauty: Козметички салон
           beverages: Продавница пића
           bicycle: Продавница бицикала
+          bookmaker: Кладионица
           books: Књижара
           boutique: Бутик
           butcher: Месара
@@ -1005,6 +1111,7 @@ sr:
           copyshop: Фотокопирница
           cosmetics: Козметичка радња
           curtain: Продавница драперија
+          dairy: Продавница млечних производа
           deli: Сендвичара
           department_store: Робна кућа
           discount: Дисконт
@@ -1017,11 +1124,13 @@ sr:
           fabric: Продавница тканине
           farm: Пољопривредна апотека
           fashion: Продавница модне одеће
+          fishing: Рибарница
           florist: Цвећара
           food: Продавница хране
           funeral_directors: Погребно предузеће
           furniture: Продавница намештаја
           garden_centre: Вртни центар
+          gas: Пунионица ТНГ-а
           general: Продавница робе широке потрошње
           gift: Продавница поклона
           greengrocer: Продавница воћа и поврћа
@@ -1030,10 +1139,12 @@ sr:
           hardware: Продавница алата
           health_food: Продавница здраве хране
           hifi: Продавница аудио-опреме
+          ice_cream: Сладоледџиница
           interior_decoration: Декорација ентеријера
           jewelry: Јувелирница
           kiosk: Трафика
           laundry: Перионица веша
+          locksmith: Бравар
           lottery: Лутрија
           mall: Тржни центар
           massage: Масажа
@@ -1046,6 +1157,7 @@ sr:
           outdoor: Продавница опреме за спортове на отвореном
           paint: Фарбара
           pawnbroker: Залагаоничар
+          perfumery: Парфимерија
           pet: Продавница за кућне љубимце
           photo: Фотографска радња
           seafood: Морски плодови
@@ -1061,7 +1173,10 @@ sr:
           toys: Продавница играчака
           travel_agency: Туристичка агенција
           tyres: Продавница гума
+          vacant: Упражњен локал
           video: Видеотека
+          video_games: Продавница видео-игара
+          wholesale: Велепродаја
           wine: Винарија
           "yes": Продавница
         tourism:
@@ -1110,9 +1225,11 @@ sr:
           "yes": Водоток
       admin_levels:
         level2: Државна граница
+        level3: Граница региона
         level4: Граница савезне државе
         level5: Граница региона
         level6: Граница округа
+        level7: Граница општине/града
         level8: Граница града
         level9: Граница села
         level10: Граница насеља
@@ -1144,6 +1261,7 @@ sr:
         open: Отвори
         resolved: Решено
     show:
+      no_reports: Нема пријава
       resolve: Разреши
       ignore: Игнориши
       reopen: Поново отвори
@@ -1179,6 +1297,8 @@ sr:
           personal_label: Ова напомена садржи личне податке
           abusive_label: Ова белешка је увредљива
           other_label: Друго
+    create:
+      provide_details: Молимо наведите потребне детаље
   layouts:
     logo:
       alt_text: Логотип OpenStreetMap-а
@@ -1203,8 +1323,10 @@ sr:
     intro_text: OpenStreetMap је мапа света коју су направили људи попут вас. Слободна
       је за коришћење под отвореном лиценцом.
     intro_2_create_account: Отворите кориснички налог
+    hosting_partners_html: Хостинг пружају %{ucl}, %{fastly}, %{bytemark}, и други
+      %{partners}.
     partners_ucl: UCL
-    partners_bytemark: хостинг Bytemark
+    partners_bytemark: Bytemark Hosting
     partners_partners: партнери
     tou: Услови коришћења
     osm_offline: База OpenStreetMap-а је тренутно недоступна док се не заврше неопходни
@@ -1215,6 +1337,7 @@ sr:
     help: Помоћ
     about: О нама
     copyright: Ауторска права
+    communities: Заједнице
     community: Заједница
     community_blogs: Блогови заједнице
     community_blogs_title: Блогови чланова заједнице OpenStreetMap
@@ -1243,10 +1366,12 @@ sr:
       see_their_profile: Можете видети његов/њен профил на %{userurl}.
       befriend_them: Можете га/је додати и као пријатеља на %{befriendurl}.
     gpx_failure:
+      hi: Здарво %{to_user},
       failed_to_import: 'Увоз није успео. Грешка:'
       import_failures_url: https://wiki.openstreetmap.org/wiki/GPX_Import_Failures?uselang=sr-ec
       subject: '[OpenStreetMap] GPX увоз није успео'
     gpx_success:
+      hi: Здарво %{to_user},
       subject: '[OpenStreetMap] GPX увоз је успео'
     signup_confirm:
       subject: '[OpenStreetMap] Добро дошли на ОпенСтритМап'
@@ -1307,7 +1432,7 @@ sr:
         subject_other: '[OpenStreetMap] %{commenter} је коментарисао о чејнџсету за
           који сте заинтересовани'
         your_changeset: '%{commenter} је оставио коментар на једном од Ваших чејнџсетова
-          у %{time}'
+          %{time}'
         commented_changeset: '%{commenter} је у %{time} оставио коментар на чејнџсету
           мапе који надгледате и који је направио %{changeset_author}'
         partial_changeset_with_comment: са коментаром „%{changeset_comment}”
@@ -1326,6 +1451,7 @@ sr:
       success: Ваш налог је потврђен. Хвала вам на упису!
       already active: Овај налог је већ потврђен.
       unknown token: Тај код за потврду је истекао или не постоји.
+      click_here: кликните овде
     confirm_resend:
       failure: Корисник %{name} није пронађен.
     confirm_email:
@@ -1339,20 +1465,23 @@ sr:
   messages:
     inbox:
       title: Примљене
-      my_inbox: Примљене
       messages: Имате %{new_messages} и %{old_messages}
       new_messages:
         one: '%{count} нова порука'
+        few: '%{count} нове поруке'
         other: '%{count} нових порука'
       old_messages:
         one: '%{count} стара порука'
         other: '%{count} старих порука'
-      from: Од
-      subject: Наслов
-      date: Датум
       no_messages_yet_html: Још увек немате порука. Зашто не бисте ступили у контакт
         с %{people_mapping_nearby_link}?
       people_mapping_nearby: маперима у вашој околини
+    messages_table:
+      from: Од
+      to: За
+      subject: Наслов
+      date: Датум
+      actions: Радње
     message_summary:
       unread_button: Означи као непрочитано
       read_button: Означи као прочитано
@@ -1372,15 +1501,15 @@ sr:
       body: Нажалост, нема поруке с тим ИБ.
     outbox:
       title: Послате
+      actions: Радње
       messages:
         one: Имате %{count} послату поруку
         other: Имате %{count} послате поруке
-      to: За
-      subject: Наслов
-      date: Датум
       no_sent_messages_html: Још увек немате послатих порука. Зашто не бисте ступили
         у контакт с %{people_mapping_nearby_link}?
       people_mapping_nearby: маперима у вашој околини
+    muted:
+      title: Пригушене поруке
     reply:
       wrong_user: Пријављени сте као %{user}, али порука на коју сте желели да одговорите
         није послата том кориснику. Пријавите се као исправан корисник да бисте одговорили.
@@ -1395,29 +1524,49 @@ sr:
         прочитали.
     sent_message_summary:
       destroy_button: Обриши
+    heading:
+      my_inbox: Примљене
+      my_outbox: Послате
     mark:
       as_read: Порука је означена као прочитана
       as_unread: Порука је означена као непрочитана
     destroy:
       destroyed: Порука је обрисана
   passwords:
-    lost_password:
+    new:
       title: Повратак лозинке
       heading: Заборавили сте лозинку?
-      email address: 'Имејл адреса:'
+      email address: Имејл адреса
       new password button: Поништи лозинку
       help_text: Унесите е-адресу коју сте унели при упису, а ми ћемо вам послати
         везу помоћу које можете да поништите лозинку.
+    create:
       notice email on way: Порука за поништавање лозинке је послата.
       notice email cannot find: Имејл адреса није пронађена, жао нам је.
-    reset_password:
+    edit:
       title: Поништи лозинку
       heading: Поништавање лозинке за %{user}
       reset: Поништи лозинку
-      flash changed: Ваша лозинка је промењена.
       flash token bad: Такав новчић није пронађен. Проверите адресу.
+    update:
+      flash changed: Ваша лозинка је промењена.
+  preferences:
+    show:
+      title: Моја подешавања
+      preferred_editor: Жељени уређивач
+      preferred_languages: Жељени језици
+      edit_preferences: Уреди подешавања
+    edit:
+      title: Моја подешавања
+      save: Сачувај подешавања
+      cancel: Откажи
+    update_success_flash:
+      message: Подешавања сачувана.
   profiles:
     edit:
+      title: Уреди профил
+      save: Ажурирај профил
+      cancel: Откажи
       image: Слика
       gravatar:
         gravatar: Користи Граватар
@@ -1432,13 +1581,17 @@ sr:
       home location: Место становања
       no home location: Нисте унели место становања.
       update home location on click: Ажурирати место становања када кликнем на мапу?
+      show: Прикажи
+      delete: Обриши
+      undelete: Поништи брисање
+    update:
+      success: Профил ажуриран.
   sessions:
     new:
       title: Пријава
       heading: Пријава
-      email or username: 'Имејл адреса или корисничко име:'
-      password: 'Лозинка:'
-      openid_html: '%{logo} OpenID:'
+      email or username: Имејл адреса или корисничко име
+      password: Лозинка
       remember: Запамти ме
       lost password link: Заборавили сте лозинку?
       login_button: Пријави ме
@@ -1476,6 +1629,19 @@ sr:
       title: Одјава
       heading: Одјава
       logout_button: Одјави ме
+    suspended_flash:
+      support: подршка
+  shared:
+    markdown_help:
+      first: Прва ставка
+      second: Друга ставка
+      link: Веза
+      text: Текст
+      image: Слика
+      alt: Алтернативни текст
+    richtext_field:
+      edit: Уреди
+      preview: Преглед
   site:
     about:
       next: Следеће
@@ -1489,14 +1655,23 @@ sr:
         користе снимке из ваздуха, GPS уређаје и обичне теренске мапе у циљу провере
         исправности и ажурности OSM-а.
       community_driven_title: Заједница је покретач
+      community_driven_osm_foundation: OSM фондација
       open_data_title: Отворени подаци
       legal_title: Правни аспекти
+      legal_1_1_html: |-
+        Овим сајтом и многим другим сродним сервисима управља
+        %{openstreetmap_foundation_link} (OSMF)
+        а у име заједнице. Коришћење OSMF сервиса предмет је наших %{terms_of_use_link}, %{aup_link} и %{privacy_policy_link}.
+      legal_1_1_openstreetmap_foundation: OpenStreetMap фондација
+      legal_1_1_terms_of_use: услова коришћења
+      legal_1_1_aup: политике прихватљиве употребе
+      legal_1_1_privacy_policy: политике приватности
       partners_title: Партнери
     copyright:
       foreign:
         title: О овом преводу
-        html: У случају сукоба између преведене странице и %{english_original_link},
-          ÐµÐ½Ð³Ð»ÐµÑ\81ка Ñ\81Ñ\82Ñ\80аниÑ\86а Ð¸Ð¼Ð° Ð¿Ñ\80едноÑ\81т
+        html: У случају неслагања између преведене странице и %{english_original_link},
+          ÐµÐ½Ð³Ð»ÐµÑ\81ка Ñ\81Ñ\82Ñ\80аниÑ\86а Ð¸Ð¼Ð° Ð¿Ñ\80имат
         english_link: енглеског оригинала
       native:
         title: О овој страници
@@ -1507,9 +1682,19 @@ sr:
         mapping_link: почни с уређивањем карте
       legal_babble:
         title_html: Ауторска права и лиценца
-        credit_title_html: Како да именујете OpenStreetMap
+        introduction_2_html: Можете да умножавате, делите, преносите и прилагођавате
+          наше податке, све док наводите OpenStreetMap и њене уреднике. Ако желите
+          да мењате и дограђујете наше податке, можете их делити само под истом лиценцом.
+          Овај %{legal_code_link} наводи Ваша права и обавезе.
+        introduction_2_legal_code: правни текст
+        introduction_3_html: Наша документација је доступна под лиценцом %{creative_commons_link}
+          (CC BY-SA 2.0).
+        introduction_3_creative_commons: Creative Commons Ауторство-Делити под истим
+          условима 2.0
+        credit_title_html: Како да наведете OpenStreetMap
         credit_1_html: 'Када користите податке са OpenStreetMap-а, захтевамо да урадите
           две ствари:'
+        credit_3_attribution_guidelines: Смернице за приписивање
         attribution_example:
           alt: Пример како да наведете Опенстритмап на некој страници
           title: Пример за навођење
@@ -1519,17 +1704,34 @@ sr:
           У нашем пројекту учествује на хиљаде појединаца. Користимо и
           податке с отвореном лиценцом од државних картографских установа
           и других извора, међу којима су:
+        contributors_at_austria: Аустрија
+        contributors_au_australia: Аустралија
+        contributors_au_cc_licence: Creative Commons Ауторство 4.0 међународна (CC
+          BY 4.0)
+        contributors_ca_canada: Канада
         contributors_cz_czechia: Чешка
         contributors_cz_cc_licence: Creative Commons Ауторство 4.0 међународна (CC
           BY 4.0)
-        contributors_footer_2_html: |2-
-            Укључивање података у Опенстритмап не подразумева да изворни
-            власник података прихвата Опенстритмап, обезбеђује било какву
-            гаранцију или прихвата одговорност.
+        contributors_fi_finland: Финска
+        contributors_fr_france: Француска
+        contributors_nl_netherlands: Холандија
+        contributors_nz_new_zealand: Нови Зеланд
+        contributors_rs_serbia: Србија
+        contributors_rs_rgz: Републички геодетски завод
+        contributors_si_slovenia: Словенија
+        contributors_es_spain: Шпанија
+        contributors_za_south_africa: Јужна Африка
+        contributors_gb_united_kingdom: Уједињено Краљевство
+        contributors_2_contributors_page: доприносиоци
+        contributors_footer_2_html: Укључивањем података у OpenStreetMap не значи
+          да изворни власник података подржава OpenStreetMap, обезбеђује било какву
+          гаранцију или прихвата одговорност.
         infringement_title_html: Кршење ауторских права
-        infringement_1_html: ОСМ сарадници се подсећају да никад не додају податке
-          из извора заштићених ауторским правима (нпр. Гугл карте или штампане карте)
-          без изричите дозволе власника ауторских права.
+        infringement_1_html: OSM сарадници се подсећају да никад не додају податке
+          из извора заштићених ауторским правима (нпр. Гугл мапе или штампане карте)
+          без изричите дозволе носиоца ауторских права.
+        trademarks_title: Заштитни знаци
+        trademarks_1_1_trademark_policy: Робне марке
     index:
       js_1: Користите прегледач који не подржава јаваскрипт или сте га онемогућили.
       js_2: OpenStreetMap користи јаваскрипт за приказивање мапа.
@@ -1551,12 +1753,7 @@ sr:
         за ову могућност.
     export:
       title: Извоз
-      area_to_export: Област за извоз
       manually_select: Ручно изаберите другу област
-      format_to_export: Формат за извоз
-      osm_xml_data: Подаци у XML формату
-      map_image: Слика мапе (приказује стандардни слој)
-      embeddable_html: Уградиви HTML код
       licence: Лиценца
       too_large:
         advice: 'Ако буде проблема при извозу, послужите се неким од доленаведених
@@ -1576,17 +1773,6 @@ sr:
         other:
           title: Други извори
           description: Додатни извори наведени на викију OpenStreetMap-а
-      options: Опције
-      format: Формат
-      scale: Размера
-      max: макс.
-      image_size: Величина слике
-      zoom: Приближи
-      add_marker: Постави маркер на мапу
-      latitude: 'Ширина:'
-      longitude: 'Дужина:'
-      output: Исход
-      paste_html: HTML код за уградњу на сајт
       export_button: Извези
     fixthemap:
       title: Пријави проблем / Поправи карту
@@ -1612,10 +1798,8 @@ sr:
         url: http://wiki.openstreetmap.org/wiki/Sr:Beginners%27_guide
         title: Водич за почетничке
         description: Водич за почетнике
-      help:
-        title: Форум за помоћ
-        description: Постави питање или нађи одговор на OpenStreetMap страници за
-          питања и одговоре.
+      community:
+        title: Форум заједнице
       mailing_lists:
         title: Дописне листе
         description: Поставите питање или дискутујте о питањима од значаја која се
@@ -1665,58 +1849,64 @@ sr:
           cycleway_local: Локална бициклистичка стаза
           footway: Пешачка стаза
           rail: Железничка пруга
+          train: Воз
           subway: Подземна железница
-          tram:
-          - Лака железница
-          - трамвај
-          cable:
-          - Жичара
-          - седишница
-          runway:
-          - Аеродромска писта
-          - рулне стазе
-          apron:
-          - Аеродромски перон
-          - терминал
+          ferry: Трајект
+          tram: Трамвај
+          trolleybus: Тролејбус
+          bus: Аутобус
+          cable_car: Жичара
+          chair_lift: седишница
+          runway: Аеродромска писта
+          taxiway: Рулна стаза
+          apron: Аеродромски перон
           admin: Административна граница
+          capital: Престоница
+          city: Град
+          vineyard: Виноград
           forest: Шума
           wood: Шума
+          grass: Трава
+          meadow: Ливада
+          sand: Песак
           golf: Голф терен
           park: Парк
+          common: Пољана
           resident: Стамбено подручје
-          common:
-          - Пољана
-          - ливада
           retail: Малопродајно подручје
           industrial: Индустријско подручје
           commercial: Пословно подручје
           heathland: Пустош
-          lake:
-          - Језеро
-          - резервоар
+          lake: Језеро
+          reservoir: Резервоар
+          glacier: Глечер
           farm: Фарма
           brownfield: Грађевинско земљиште
           cemetery: Гробље
           allotments: Баште
           pitch: Спортско игралиште
           centre: Спортски центар
+          beach: Плажа
           reserve: Резерват природе
           military: Војно подручје
-          school:
-          - Школа
-          - универзитет
+          school: Школа
+          university: Универзитет
+          hospital: Болница
           building: Значајна зграда
           station: Железничка станица
-          summit:
-          - Узвишење
-          - врх
+          summit: Узвишење
+          peak: Врх
           tunnel: Испрекидан оквир – тунел
           bridge: Црни оквир – мост
           private: Приватни посед
           destination: Приступ одредишту
           construction: Путеви у изградњи
+          bus_stop: Аутобуска станица
+          stop: Стоп
           bicycle_shop: Продавница бицикала
+          bicycle_rental: Изнајмљивање бицикала
           bicycle_parking: Паркинг за бицикле
+          bicycle_parking_small: Мали паркинг за бицикле
           toilets: Тоалети
     welcome:
       title: Добро дошли!
@@ -1729,13 +1919,21 @@ sr:
         title: Основни картографски термини
         paragraph_1: ОпенСтритМап има свој жаргон. Ево пар кључних речи које могу
           да буду корисне.
+        tag: ознака
       rules:
         title: Правила!
+        automated_edits: Аутоматизоване измене
       start_mapping: Почни са цртањем карте
       add_a_note:
         title: Немаш времена да уредиш? Додај белешку!
         para_1: Ако хоћеш нешто ситно да поправиш а немаш времена да се пријавиш или
           да научиш да уређујеш, једноставно додај белешку.
+    communities:
+      title: Заједнице
+      local_chapters:
+        title: Локални огранци
+      other_groups:
+        title: Друге групе
   traces:
     visibility:
       private: Приватни (приказује се као анонимне, непоређане тачке)
@@ -1813,6 +2011,8 @@ sr:
       public_traces_from: Јавни GPS трагови корисника %{user}
       description: Претражите недавне аплоуде GPS путева
       tagged_with: ' означени са %{tags}'
+      empty_title: Нема ништа
+      wiki_page: вики страница
       upload_trace: Отпреми траг
       my_traces: Моји трагови
     destroy:
@@ -1847,6 +2047,7 @@ sr:
         их видите.
     settings_menu:
       account_settings: Подешавња налога
+      muted_users: Пригушени корисници
   oauth:
     authorize:
       title: Ауторизујте приступ свом налогу
@@ -1912,13 +2113,39 @@ sr:
       flash: Подаци о клијенту су успешно ажурирани
     destroy:
       flash: Уништена је регистрација клијентског програма
+  oauth2_applications:
+    index:
+      name: Назив
+      permissions: Дозволе
+    application:
+      edit: Уреди
+      delete: Обриши
+      confirm_delete: Обриши ову апликацију?
+    show:
+      edit: Уреди
+      delete: Обриши
+      permissions: Дозволе
+  oauth2_authorizations:
+    new:
+      authorize: Одобри
+      deny: Одбиј
+    error:
+      title: Дошло је до грешке
+  oauth2_authorized_applications:
+    index:
+      application: Апликација
+      permissions: Дозволе
   users:
     new:
       title: Регистрација
       no_auto_account_create: Нажалост, тренутно нисмо у могућности да отворимо нови
         налог.
+      support: подршка
       about:
         header: Слободно и изменљиво
+        paragraph_1: За разлику од других мапа, OpenStreetMap-е употпуности праве
+          људи као Ви. И слободна је за све да је поправљају, ажурирају, преузимају
+          и користе.
       display name description: Јавно приказано корисничко име. Касније га можете
         променити у поставкама.
       external auth: 'Аутентификација треће стране:'
@@ -1927,12 +2154,20 @@ sr:
         али неки додатни алати или сервер можда је ипак буду захтевали.
       continue: Отвори налог
       terms accepted: Хвала вам што прихватате нове услове уређивања.
+      privacy_policy: политика приватности
     terms:
       title: Услови
       heading: Услови
+      read_ct: Прочитао сам и прихватам горе наведене услове
+      read_tou: Прочитао сам и прихватам Услове коришћења
       consider_pd: Према горенаведеном, сматрам да моји доприноси припадају јавном
         власништву
       consider_pd_why: шта је ово?
+      guidance_info_html: 'Информације за разумевање ових услова: a %{readable_summary_link}
+        и %{informal_translations_link}'
+      readable_summary: сумарум
+      informal_translations: неформални преводи
+      continue: Настави
       declined: http://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined?uselang=sr-ec
       decline: Одбаци
       you need to accept or decline: Молимо вас да прочитате уговор пре него што га
@@ -1959,8 +2194,11 @@ sr:
       my profile: Мој профил
       my settings: Моје поставке
       my comments: Моји коментари
+      my_preferences: Моја подешавања
+      my_dashboard: Tабла
       blocks on me: Мени забрањено
       blocks by me: Моје забране
+      edit_profile: Уреди профил
       send message: Пошаљи поруку
       diary: Дневник
       edits: Измене
@@ -1972,7 +2210,6 @@ sr:
       ct status: 'Услови за учешће:'
       ct undecided: Неодлучено
       ct declined: Одбијено
-      latest edit: 'Последња измена (%{ago}):'
       email address: 'Имејл адреса:'
       created from: 'Направљено из:'
       status: 'Стање:'
@@ -1988,6 +2225,7 @@ sr:
           moderator: Опозови овлашћења уредника
       block_history: Активне блокаде
       moderator_history: Извршене блокаде
+      revoke_all_blocks: Опозови све блокаде
       comments: Коментари
       create_block: Блокирај корисника
       activate_user: Активирај корисника
@@ -2013,6 +2251,9 @@ sr:
     suspended:
       title: Суспендован налог
       heading: Суспендован налог
+      support: подршка
+      automatically_suspended: Жао нам је, Ваш налог је аутоматски суспендован због
+        сумљивих радњи.
     auth_failure:
       connection_failed: Повезивање до аутентификационог провајдера неуспешно
       invalid_credentials: Невалидни аутентификациони акредитиви
@@ -2082,11 +2323,14 @@ sr:
     revoke:
       title: Опозивање блокаде на %{block_on}
       heading_html: Опозивање блокаде на %{block_on} од %{block_by}
-      time_future: Ова блокада ће се завршити за %{time}.
-      past: Ова блокада је завршена у %{time} и не може се сада опозвати.
+      time_future_html: Ова блокада ће се завршити за %{time}.
+      past_html: Ова блокада је завршена у %{time} и не може се сада опозвати.
       confirm: Желите ли да опозовете ову блокаду?
       revoke: Опозови
       flash: Ова блокада је опозвана.
+    revoke_all:
+      heading_html: Опозивање свих блокада на %{block_on}
+      flash: Све активне блокаде су опозване.
     helper:
       time_future_html: Завршава се у %{time}.
       until_login: Активно све док се корисник не пријави.
@@ -2109,6 +2353,7 @@ sr:
       title: '%{block_on} је блокиран/а од %{block_by}'
       heading_html: '%{block_on} је блокиран/а од %{block_by}'
       created: 'Направљено:'
+      duration: 'Трајање:'
       status: 'Стање:'
       show: Прикажи
       edit: Уреди
@@ -2132,11 +2377,19 @@ sr:
       showing_page: Страница %{page}
       next: Следеће »
       previous: « Претходно
+  user_mutes:
+    index:
+      table:
+        thead:
+          actions: Радње
+        tbody:
+          send_message: Пошаљи поруку
   notes:
     index:
       title: Белешке послао или коментарисао %{user}
       heading: Белешке корисника %{user}
       subheading_html: Белешке послао или коментарисао %{user}
+      no_notes: Нема белешки
       id: Id
       creator: Творац
       description: Опис
@@ -2148,6 +2401,7 @@ sr:
       open_title: Нерешена белешка бр. %{note_name}
       closed_title: Решена белешка бр. %{note_name}
       hidden_title: Скривена белешка бр. %{note_name}
+      event_opened_by_html: Направио %{user} %{time_ago}
       report: пријави ову белешку
       anonymous_warning: Ова белешка садржи коментаре анонимних корисника које би
         требало посебно проверити.
@@ -2209,6 +2463,9 @@ sr:
         gps: Јавне GPS трасе
         overlays: Омогући преклапање за тражење грешака на карти
         title: Слојеви
+      openstreetmap_contributors: OpenStreetMap сарадници
+      make_a_donation: Донација
+      website_and_api_terms: Веб-сајт и API услови
     site:
       edit_tooltip: Уредите мапу
       edit_disabled_tooltip: Увећајте приказ да бисте уредили мапу
index 3c97e55abdeae6309685d4336d0c7615497a1eab..2f18d5892f6d74a696a9a6508a7cf536e50a6394 100644 (file)
@@ -5,6 +5,7 @@
 # Author: Abbedabb
 # Author: Adrianod
 # Author: Ainali
+# Author: Andreasl
 # Author: Balp
 # Author: Bengtsson96
 # Author: Carlbacker
@@ -18,6 +19,7 @@
 # Author: Jas
 # Author: Jenniesarina
 # Author: Jopparn
+# Author: Kakan spelar
 # Author: Larske
 # Author: Liftarn
 # Author: Lokal Profil
@@ -77,8 +79,8 @@ sv:
         create: Registrera
         update: Uppdatera
       redaction:
-        create: Skapa redaktering
-        update: Spara redaktering
+        create: Skapa maskering
+        update: Spara maskering
       trace:
         create: Uppladdning
         update: Spara ändringar
@@ -90,6 +92,10 @@ sv:
       messages:
         invalid_email_address: verkar inte vara en giltig e-postadress.
         email_address_not_routable: kan inte ruttas
+        display_name_is_user_n: kan inte vara user_n om inte n är ditt användar-id
+      models:
+        user_mute:
+          is_already_muted: är redan tystad
     models:
       acl: Tillgångskontrollista (ACL)
       changeset: Ändringsuppsättning
@@ -110,7 +116,7 @@ sv:
       old_relation_tag: Gammal relationstagg
       old_way: Gammal sträcka
       old_way_node: Gammal sträcknod
-      old_way_tag: Gammal sträcketagg
+      old_way_tag: Gammal sträcktagg
       relation: Relation
       relation_member: Relationsmedlem
       relation_tag: Relationstagg
@@ -258,7 +264,6 @@ sv:
   auth:
     providers:
       none: Ingen
-      openid: OpenID
       google: Google
       facebook: Facebook
       microsoft: Microsoft
@@ -312,6 +317,8 @@ sv:
         retain_changeset_discussions: Dina diskussioner på ändringsuppsätningar, om
           du gjort några, kommer bevaras.
         retain_email: Din e-postadress kommer bevaras.
+        recent_editing_html: Eftersom du nyligen har redigerat kan ditt konto för
+          närvarande inte raderas. Radering kommer att vara tillåtet om %{time}.
         confirm_delete: Är du säker?
         cancel: Avbryt
   accounts:
@@ -346,11 +353,16 @@ sv:
         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.
+      only_public_can_edit: Sedan övergången till 0.6-API:n kan bara offentliga användare
+        redigera kartdata.
       find_out_why: ta reda på varför
+      email_not_revealed: Din e-postadress kommer inte avslöjas när du blir offentlig.
+      not_reversible: Denna åtgärd kan inte ångras och alla nya användare är nu offentliga
+        som standard.
       make_edits_public_button: Gör alla mina redigeringar offentliga
     update:
       success_confirm_needed: Användarinformation uppdaterades. Kontrollera din e-post
-        för att bekräfta din e-postadress.
+        för att bekräfta din nya e-postadress.
       success: Användarinformation uppdaterades.
     destroy:
       success: Kontot har raderats.
@@ -387,14 +399,10 @@ sv:
       way_paginated: Sträckor (%{x}-%{y} av %{count})
       relation: Förbindelser (%{count})
       relation_paginated: Förbindelser (%{x}-%{y} av %{count})
-      comment: Kommentarer (%{count})
-      hidden_comment_by_html: Dolde kommentar från %{user} %{time_ago}
+      hidden_comment_by_html: Dold kommentar från %{user} %{time_ago}
       comment_by_html: Kommenterades från %{user} %{time_ago}
       changesetxml: XML för ändringsuppsättning
       osmchangexml: osmChange XML
-      feed:
-        title: Ändringsuppsättning %{id}
-        title_comment: Ändringsset %{id} - %{comment}
       join_discussion: Logga in för att delta i diskussionen
       discussion: Diskussion
       still_open: Ändringsuppsättningen är fortfarande öppen - diskussionen kommer
@@ -470,12 +478,21 @@ sv:
       wikimedia_commons_link: Sidan %{page} finner du på Wikimedia Commons
       telephone_link: Ring %{phone_number}
       colour_preview: Förhandsgranskning av färgen %{colour_value}
-      email_link: E-posta %{email}
+      email_link: Mejla %{email}
     query:
       title: Undersök kartobjekt
       introduction: Klicka på kartan för att hitta funktioner i närheten.
       nearby: Finns i närheten
       enclosing: Omgivande kartobjekt
+  old_nodes:
+    not_found:
+      sorry: 'Tyvärr, nod #%{id} version %{version} kunde inte hittas.'
+  old_ways:
+    not_found:
+      sorry: 'Tyvärr, sträckan #%{id} version %{version} kunde inte hittas.'
+  old_relations:
+    not_found:
+      sorry: 'Tyvärr, sträckan #%{id} version %{version} kunde inte hittas.'
   changesets:
     changeset_paging_nav:
       showing_page: Sida %{page}
@@ -504,6 +521,9 @@ sv:
       no_more_area: Inga fler ändringsuppsättningar i det här området.
       no_more_user: Inga fler ändringsuppsättningar av den här användaren.
       load_more: Läs in fler
+      feed:
+        title: Ändringsuppsättning %{id}
+        title_comment: Ändringsset %{id} - %{comment}
     timeout:
       sorry: Kunde tyvärr inte lista begärda ändringsuppsättningar. Begäran tog för
         lång tid att hämta.
@@ -524,6 +544,7 @@ sv:
     contact:
       km away: '%{count}km bort'
       m away: '%{count}m bort'
+      latest_edit_html: 'Senaste redigering (%{ago}):'
     popup:
       your location: Din position
       nearby mapper: Användare i närheten
@@ -653,6 +674,8 @@ sv:
     contact:
       contact_url_title: Olika kontaktkanaler förklaras
       contact: kontakta
+      contact_the_community_html: Gå gärna till %{contact_link} OpenStreetMap-gemenskapen
+        om du har hittat en trasig länk/bugg. Anteckna din förfrågas exakta webbadress.
     forbidden:
       title: Förbjudet
       description: Åtgärden du begärde på OpenStreetMap-servern är endast tillgänglig
@@ -696,12 +719,12 @@ sv:
           pylon: Pylon
           station: Linbanestation
           t-bar: Ankarlift
-          "yes": Svävarbana
+          "yes": Luftväg
         aeroway:
           aerodrome: Flygfält
           airstrip: Landningsbana
-          apron: Flygplatsplatta
-          gate: Flygplatsgate
+          apron: Flygplatsramp
+          gate: Flygplatsport
           hangar: Hangar
           helipad: Helikopterplatta
           holding_position: Väntplats
@@ -796,9 +819,9 @@ sv:
           restaurant: Restaurang
           sanitary_dump_station: Sanitär tömningsstation
           school: Skola
-          shelter: Hydda
+          shelter: Skydd
           shower: Dusch
-          social_centre: Nöjescenter
+          social_centre: Socialcenter
           social_facility: Socialtjänst
           studio: Studio
           swimming_pool: Simbassäng
@@ -807,7 +830,7 @@ sv:
           theatre: Teater
           toilets: Toaletter
           townhall: Rådhus
-          training: Träningsanstalt
+          training: Träningsanläggning
           university: Universitet
           vehicle_inspection: Fordonsbesiktning
           vending_machine: Varuautomat
@@ -844,7 +867,7 @@ sv:
           chapel: Kapell
           church: Kyrkbyggnad
           civic: Offentlig byggnad
-          college: Universitetsbyggnad
+          college: Högskolebyggnad
           commercial: Kommersiell byggnad
           construction: Byggnad under uppförande
           detached: Fristående hus
@@ -853,7 +876,7 @@ sv:
           farm: Gård
           farm_auxiliary: Utbyggnad på en gård
           garage: Garage
-          garages: Garage
+          garages: Garagelänga
           greenhouse: Växthus
           hangar: Hangar
           hospital: Sjukhusbyggnad
@@ -883,8 +906,8 @@ sv:
           warehouse: Varuhus
           "yes": Byggnad
         club:
-          scout: Scoutklubbhus
-          sport: Sportklubb
+          scout: Scoutkollo
+          sport: Idrottsförening
           "yes": Klubb
         craft:
           beekeeper: Biodlare
@@ -899,7 +922,7 @@ sv:
           gardener: Trädgårdsmästare
           glaziery: Glasmästeri
           handicraft: Konsthantverk
-          hvac: Värme- och ventilationsverk
+          hvac: VVS-hantverk
           metal_construction: Metallkonstruktör
           painter: Målare
           photographer: Fotograf
@@ -1018,7 +1041,7 @@ sv:
           allotments: Kolonilotter
           aquaculture: Akvakultur
           basin: Bäcken
-          brownfield: Outvecklat område
+          brownfield: Övergiven industrimark
           cemetery: Begravningsplats
           commercial: Kommersiellt område
           conservation: Naturskyddsområde
@@ -1026,9 +1049,9 @@ sv:
           farmland: Jordbruksmark
           farmyard: Gårdsplan
           forest: Skog
-          garages: Garage
+          garages: Garagelänga
           grass: Gräs
-          greenfield: Outvecklat område
+          greenfield: Outvecklad jordbruksmark
           industrial: Industriområde
           landfill: Soptipp
           meadow: Äng
@@ -1078,7 +1101,7 @@ sv:
           resort: Resort
           sauna: Bastu
           slipway: Stapelbädd
-          sports_centre: Sporthall
+          sports_centre: Idrottsanläggning
           stadium: Stadium
           swimming_pool: Simbassäng
           track: Löparbana
@@ -1101,12 +1124,12 @@ sv:
           communications_tower: Kommunikationstorn
           crane: Kran
           cross: Kors
-          dolphin: Dykdalb
+          dolphin: Förtöjningsstolpe
           dyke: Dike
           embankment: Fördämning
           flagpole: Flaggstång
-          gasometer: Gasometer
-          groyne: Vågbrytare
+          gasometer: Gasklocka
+          groyne: Hövd
           kiln: Kalkugn
           lighthouse: Fyr
           manhole: Gatubrunn
@@ -1127,13 +1150,13 @@ sv:
           surveillance: Övervakning
           telescope: Teleskop
           tower: Torn
-          utility_pole: Bruksstolpe
-          wastewater_plant: Avfallsfabrik
+          utility_pole: Elstolpe
+          wastewater_plant: Vattenreningsverk
           watermill: Vattenkvarn
           water_tap: Vattenkran
           water_tower: Vattentorn
           water_well: Brunn
-          water_works: Vattenreningsverk
+          water_works: Vattenverk
           windmill: Väderkvarn
           works: Fabrik
           "yes": Konstgjord
@@ -1148,7 +1171,7 @@ sv:
           "yes": Bergspass
         natural:
           atoll: Atoll
-          bare_rock: Klippa
+          bare_rock: Blottat berggrund
           bay: Bukt
           beach: Strand
           cape: Udde
@@ -1204,7 +1227,7 @@ sv:
           company: Företag
           diplomatic: Diplomatiskt kontor
           educational_institution: Utbildningsinstitution
-          employment_agency: Bemanningsföretag
+          employment_agency: Arbetsförmedling
           energy_supplier: Energileverantörskontor
           estate_agent: Fastighetsmäklare
           financial: Finanskontor
@@ -1215,7 +1238,7 @@ sv:
           logistics: Logistik kontor
           newspaper: Tidningskontor
           ngo: Icke-statligt kontor
-          notary: Notar
+          notary: Notarie
           religion: Religiöst kontor
           research: Forskningskontor
           tax_advisor: Skatterådgivare
@@ -1302,7 +1325,7 @@ sv:
           carpet: Mattaffär
           charity: Välgörenhetsbutik
           cheese: Ostbutik
-          chemist: Apotek
+          chemist: Apotek (Chemist)
           chocolate: Choklad
           clothes: Klädbutik
           coffee: Kaffebutik
@@ -1322,14 +1345,14 @@ sv:
           e-cigarette: E-cigarettbutik
           electronics: Elektronikbutik
           erotic: Sexbutik
-          estate_agent: Egendomsmäklare
+          estate_agent: Fastighetsmäklare
           fabric: Tygaffär
           farm: Gårdsbutik
           fashion: Modebutik
           fishing: Fiskebutik
           florist: Florist
           food: Mataffär
-          frame: Ramhandlare
+          frame: Rambutik
           funeral_directors: Begravningsentreprenör
           furniture: Möbler
           garden_centre: Trädgårdshandel
@@ -1365,10 +1388,10 @@ sv:
           newsagent: Tidningskiosk
           nutrition_supplements: Kosttillskottsbutik
           optician: Optiker
-          organic: Ekologiska livsmedelsaffär
+          organic: Ekologisk matbutik
           outdoor: Friluftsbutik
           paint: Färgbutik
-          pastry: Kafeteria
+          pastry: Konditori
           pawnbroker: Pantlånare
           perfumery: Parfymbutik
           pet: Djuraffär
@@ -1407,7 +1430,7 @@ sv:
           camp_pitch: Campingplats
           camp_site: Campingplats
           caravan_site: Husvagnsuppställningsplats
-          chalet: Stuga
+          chalet: Fjällstuga
           gallery: Galleri
           guest_house: Gäststuga
           hostel: Vandrarhem
@@ -1492,9 +1515,9 @@ sv:
         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}
+      report_created_at_html: Rapporterades först %{datetime}
+      last_resolved_at_html: Löstes senast %{datetime}
+      last_updated_at_html: Uppdaterades senast %{datetime} av %{displayname}
       resolve: Lös
       ignore: Ignorera
       reopen: Öppna igen
@@ -1653,6 +1676,7 @@ sv:
       loaded:
         one: inläst med %{trace_points} av %{count} möjlig punkt.
         other: inläst med %{trace_points} av %{count} möjliga punkter.
+      all_your_traces_html: Alla dina framgångsrikt uppladdade GPX-spår finns på %{url}.
       subject: '[OpenStreetMap] Lyckades importera GPX'
     signup_confirm:
       subject: '[OpenStreetMap] Välkommen till OpenStreetMap'
@@ -1724,14 +1748,14 @@ sv:
         subject_own: '[OpenStreetMap] %{commenter} har kommenterat på en av dina ändringsuppsättningar'
         subject_other: '[OpenStreetMap] %{commenter} har kommenterat på ett ändringsuppsättning
           du är intresserad av'
-        your_changeset: '%{commenter} har lämnat en kommentar på en av dina ändringsuppsättningar
-          skapt den %{time}'
+        your_changeset: '%{commenter} lämnade en kommentar vid %{time} på en av dina
+          ändringar'
         your_changeset_html: '%{commenter} lämnade en kommentar kl. %{time} på en
           av dina ändringsuppsättningar'
-        commented_changeset: '%{commenter} har lämnat en kommentar på en ändringsuppsättning
-          på en karta du bevakar, skapad av %{changeset_author} %{time}'
-        commented_changeset_html: '%{commenter} har lämnat en kommentar på en ändringsuppsättning
-          på en karta du bevakar, skapad av %{changeset_author} %{time}'
+        commented_changeset: '%{commenter} lämnade en kommentar vid %{time} på en
+          ändringsuppsättning du tittar på skapad av %{changeset_author}'
+        commented_changeset_html: '%{commenter} lämnade en kommentar vid %{time} på
+          en ändringsuppsättning du tittar på skapad av %{changeset_author}'
         partial_changeset_with_comment: med kommentar '%{changeset_comment}'
         partial_changeset_with_comment_html: med kommentar '%{changeset_comment}'
         partial_changeset_without_comment: utan kommentar
@@ -1773,8 +1797,6 @@ sv:
   messages:
     inbox:
       title: Inkorg
-      my_inbox: Min inkorg
-      my_outbox: Min utkorg
       messages: Du har %{new_messages} och %{old_messages}
       new_messages:
         one: '%{count} nytt meddelande'
@@ -1782,17 +1804,21 @@ sv:
       old_messages:
         one: '%{count} gammalt meddelande'
         other: '%{count} gamla meddelanden'
-      from: Från
-      subject: Ärende
-      date: Datum
       no_messages_yet_html: Du har inga meddelanden ännu. Varför inte ta kontakt med
         någon %{people_mapping_nearby_link}?
       people_mapping_nearby: folk som kartlägger i närheten
+    messages_table:
+      from: Från
+      to: Till
+      subject: Ärende
+      date: Datum
+      actions: Åtgärder
     message_summary:
       unread_button: Markera som oläst
       read_button: Markera som läst
       reply_button: Svara
       destroy_button: Radera
+      unmute_button: Flytta till inkorg
     new:
       title: Skicka meddelande
       send_message_to_html: Skicka ett nytt meddelande till %{name}
@@ -1807,17 +1833,18 @@ sv:
       body: Det finns inget meddelande med det ID:et.
     outbox:
       title: Utkorg
-      my_inbox: Min inkorg
-      my_outbox: Min utkorg
+      actions: Åtgärder
       messages:
         one: Du har %{count} skickat ett meddelande
         other: Du har %{count} skickat meddelanden
-      to: Till
-      subject: Ärende
-      date: Datum
       no_sent_messages_html: Du har inte skickat några meddelanden ännu. Varför inte
         ta kontakt med någon av de %{people_mapping_nearby_link}?
       people_mapping_nearby: folk som kartlägger i närheten
+    muted:
+      title: Tystade meddelanden
+      messages:
+        one: '%{count} tystat meddelande'
+        other: '%{count} nya meddelanden'
     reply:
       wrong_user: Du är inloggad som '%{user}', men meddelandet du har bett om att
         besvara skickades inte till den användaren. Logga in med korrekt användare
@@ -1833,27 +1860,38 @@ sv:
         användare för att läsa det.
     sent_message_summary:
       destroy_button: Radera
+    heading:
+      my_inbox: Min inkorg
+      my_outbox: Min utkorg
+      muted_messages: Tystade meddelanden
     mark:
       as_read: Meddelandet markerat som läst
       as_unread: Meddelandet markerat som oläst
+    unmute:
+      notice: Meddelandet har flyttats till inkorgen
+      error: Meddelandet kunde inte flyttas till inkorgen.
     destroy:
       destroyed: Meddelande raderat
   passwords:
-    lost_password:
+    new:
       title: Förlorat lösenord
       heading: Glömt lösenord?
-      email address: 'E-postadress:'
+      email address: E-postadress
       new password button: Återställ lösenord
       help_text: Ange e-postadressen du använde för att registrera dig så skickar
         vi en länk till den som du kan använda för att återställa ditt lösenord.
-      notice email on way: Synd att du förlorade det, men ett nytt är på väg via e-post.
-      notice email cannot find: Kunde inte hitta den e-postadressen.
-    reset_password:
+    create:
+      notice email on way: Ledsen att du tappade bort det :-( men ett mejl är på väg
+        så du kan återställa det snart.
+      notice email cannot find: Kunde inte hitta den e-postadressen, tyvärr.
+    edit:
       title: Återställ lösenord
       heading: Återställ lösenord för %{user}
       reset: Återställ lösenord
-      flash changed: Ditt lösenord har ändrats.
       flash token bad: Hittade inte den nyckeln, kontrollera webbadressen.
+    update:
+      flash changed: Ditt lösenord har ändrats.
+      flash token bad: Hittade inte den nyckeln, kontrollera webbadressen kanske?
   preferences:
     show:
       title: Mina alternativ
@@ -1897,9 +1935,8 @@ sv:
     new:
       title: Logga in
       heading: Logga in
-      email or username: 'E-postadress eller användarnamn:'
-      password: 'Lösenord:'
-      openid_html: '%{logo} OpenID:'
+      email or username: E-postadress eller Användarnamn
+      password: Lösenord
       remember: Kom ihåg mig
       lost password link: Glömt ditt lösenord?
       login_button: Logga in
@@ -1956,6 +1993,7 @@ sv:
       image: Bild
       alt: Alt-text
       url: Webbadress
+      codeblock: Kodblock
     richtext_field:
       edit: Redigera
       preview: Förhandsgranska
@@ -2030,13 +2068,22 @@ sv:
           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_odc_odbl: Open Data Commons Open Database License
         introduction_1_osm_foundation: OpenStreetMap-stiftelsen
+        introduction_2_html: |-
+          Du är fri att kopiera, distribuera, överföra och anpassa vår data,
+          så länge du anger OpenStreetMap och dess bidragsgivare som källa.
+          Om du ändrar eller bygger vidare på vår data kan du
+          endast distribuera resultatet under samma licens. Den
+          fullständiga %{legal_code_link} förklarar dina rättigheter och skyldigheter.
         introduction_2_legal_code: juridiska texten
         introduction_3_html: Vår dokumentation är licensierad under licensen %{creative_commons_link}
           (CC BY-SA 2.0).
+        introduction_3_creative_commons: Creative Commons Erkännande-DelaLika 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_1: Tillskriva datan till OpenStreetMap genom att visa vårt upphovsrättsmeddelande.
         credit_2_2: Gör klart att uppgifterna är tillgängliga under Öppen Database
           Licensen.
         credit_3_html: |-
@@ -2044,6 +2091,7 @@ sv:
           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_3_attribution_guidelines: Riktlinjer för tillskrivning
         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
@@ -2057,12 +2105,16 @@ sv:
           alt: Exempel på hur en webbsida kan ange OpenStreetMap som källa
           title: Exempel på attribuering.
         more_title_html: Mer information
+        more_1_1_html: Läs mer om hur du använder vår data och hur du krediterar oss
+          på %{osmf_licence_page_link}.
         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}.
         more_2_1_api_usage_policy: API-användningspolicy
+        more_2_1_tile_usage_policy: Användningspolicy för Brickor
+        more_2_1_nominatim_usage_policy: Nominativ användningspolicy
         contributors_title_html: Våra bidragsgivare
         contributors_intro_html: |-
           Våra bidragsgivare är tusentals individer. Vi inkluderar också
@@ -2075,7 +2127,15 @@ sv:
         contributors_at_stadt_wien: Staden Wien
         contributors_at_cc_by: CC BY
         contributors_at_land_vorarlberg: Förbundsland Vorarlberg
+        contributors_at_cc_by_at_with_amendments: CC BY AT med tillägg
         contributors_au_australia: Australien
+        contributors_au_geoscape_australia: Geoscape Australien
+        contributors_ca_credit_html: |-
+          %{canada}: Innehåller data från
+          GeoBase&reg;, GeoGratis (&copy; Department of Natural
+          Resources Canada), CanVec (&copy; Department of Natural
+          Resources Canada), och StatCan (Geography Division,
+          Statistics Canada).
         contributors_ca_canada: Kanada
         contributors_cz_czechia: Tjeckien
         contributors_fi_finland: Finland
@@ -2109,6 +2169,8 @@ sv:
         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_credit_html: '%{united_kingdom}: Innehåller Ordnance Survey
+          data &copy; Crown copyright and database right 2010-2023.'
         contributors_gb_united_kingdom: Storbritannien
         contributors_2_html: |-
           För ytterligare information om dessa och andra källor som har använts
@@ -2157,14 +2219,10 @@ sv:
         för den här funktionen.
     export:
       title: Exportera
-      area_to_export: Område att exportera
       manually_select: Välj ett annat område manuellt
-      format_to_export: Format för export
-      osm_xml_data: OpenStreetMap XML-data
-      map_image: Kartbild (visar vanliga lager)
-      embeddable_html: Inbäddad HTML
       licence: Licens
       licence_details_html: OpenStreetMap-data licensieras under %{odbl_link} (ODbL).
+      odbl: Open Data Commons Open Database License
       too_large:
         advice: 'Om ovanstående export misslyckas, vänligen överväg att använda en
           av de källor som anges nedan:'
@@ -2184,17 +2242,6 @@ sv:
         other:
           title: Andra källor
           description: Ytterligare källor anges på OpenStreetMaps wiki
-      options: Alternativ
-      format: Format
-      scale: Skala
-      max: max
-      image_size: Bildstorlek
-      zoom: Zooma
-      add_marker: Lägg till markör på kartan
-      latitude: 'Lat:'
-      longitude: 'Lon:'
-      output: Utdata
-      paste_html: Klistra in HTML för att bädda in på webbplats
       export_button: Exportera
     fixthemap:
       title: Rapportera ett problem / Fixa kartan
@@ -2230,17 +2277,14 @@ sv:
         url: https://wiki.openstreetmap.org/wiki/Sv:Beginners%27_guide
         title: Guide för nybörjare
         description: Guide för nybörjare som underhålls av gemenskapen.
-      help:
-        title: Hjälpforum
-        description: Ställ en fråga eller kolla upp svar på OpenStreetMaps sida med
-          svar på ofta förekommande frågor.
+      community:
+        title: Hjälp- och gemenskapsforum
+        description: En gemensam plats för att söka hjälp och föra konversationer
+          om OpenStreetMap.
       mailing_lists:
         title: E-postlistor
         description: Ställ en fråga eller diskutera intressanta saker på ett brett
           utbud av lokala eller regionala e-postlistor.
-      community:
-        title: Gemenskapsforum
-        description: En delad plats för konversationer om OpenStreetMap.
       irc:
         title: IRC
         description: Interaktiv chatt på flera olika språk rörande mängder av ämnen.
@@ -2294,67 +2338,83 @@ sv:
           primary: Primär väg (riksväg)
           secondary: Sekundär väg (större länsväg)
           unclassified: Oklassificerad väg
+          pedestrian: Gågata
           track: Traktorväg
           bridleway: Ridstig
           cycleway: Cykelväg
           cycleway_national: Nationell cykelväg
           cycleway_regional: Regional cykelväg
           cycleway_local: Lokal cykelväg
+          cycleway_mtb: Mountainbike-led
           footway: Gångväg
           rail: Järnväg
+          train: Tåg
           subway: Tunnelbana
-          tram:
-          - Snabbspårväg
-          - spårväg
-          cable:
-          - Linbana
-          - stollift
-          runway:
-          - Landningsbana
-          - taxibana
-          apron:
-          - Flygplatsplatta
-          - terminal
+          ferry: Färja
+          light_rail: Snabbspårväg
+          tram: Spårvagn
+          trolleybus: Trådbuss
+          bus: Buss
+          cable_car: Linbana
+          chair_lift: Stollift
+          runway: Landningsbana
+          taxiway: Taxibana
+          apron: Flygplatsplatta
           admin: Administrativ gräns
+          capital: Huvudstad
+          city: Stad
+          orchard: Fruktträdgård
+          vineyard: Vingård
           forest: Kulturskog
           wood: Naturskog
+          farmland: Jordbruksmark
+          grass: Gräs
+          meadow: Äng
+          bare_rock: Klippa
+          sand: Sand
           golf: Golfbana
           park: Park
+          common: Allmänning
+          built_up: Bebyggt område
           resident: Bostadsområde
-          common:
-          - Allmänning
-          - äng
-          - trädgård
           retail: Område för Detaljhandel
           industrial: Industriellt område
           commercial: Kommersiellt område
           heathland: Hed
-          lake:
-          - Sjö
-          - vattenmagasin
+          scrubland: Buskskog
+          lake: Sjö
+          reservoir: vattenmagasin
+          intermittent_water: Intermittent vattenkropp
+          glacier: Glaciär
+          reef: Rev
+          wetland: Våtmark
           farm: Bondgård
           brownfield: Förfallen industritomt
           cemetery: Begravningsplats
           allotments: Koloniträdgårdar
-          pitch: Bollplan
+          pitch: Idrottsplan
           centre: Idrottsanläggning
+          beach: Strand
           reserve: Naturreservat
           military: Militärområde
-          school:
-          - Skola
-          - universitet
+          school: Skola
+          university: Universitet
+          hospital: Sjukhus
           building: Viktig byggnad
           station: Järnvägsstation
-          summit:
-          - Höjd
-          - topp
+          summit: Höjd
+          peak: Topp
           tunnel: Streckade kanter = tunnel
           bridge: Svarta kanter = bro
           private: Privat tillgång
           destination: Förbjuden genomfart
           construction: Vägar under konstruktion
+          bus_stop: Busshållplats
+          stop: Hållplats
           bicycle_shop: Cykelaffär
+          bicycle_rental: Cykeluthyrning
           bicycle_parking: Cykelparkering
+          bicycle_parking_small: Liten cykelparkering
           toilets: Toaletter
     welcome:
       title: Välkommen!
@@ -2388,6 +2448,7 @@ sv:
         editor: redigerare
         node: nod
         way: sträcka
+        tag: tagg
       rules:
         title: Regler!
         para_1_html: |-
@@ -2398,14 +2459,15 @@ sv:
         imports: Importer
         automated_edits: Automatiserade redigeringar
       start_mapping: Börja kartlägga
+      continue_authorization: Fortsätt auktorisering
       add_a_note:
         title: Ingen tid att redigera? Lägg till en kommentar!
         para_1: Om du bara vill ha ett litet problem fixat och inte har tid att registrera
           dig så är det lätt att lämna en kartanteckning.
         para_2_html: |-
-          Gå till %{map_link} och tryck på anteckningsikonen: %{note_icon}.
-          En markör, som du kan dra omkring, kommer att läggas till på kartan.
-          Lägg till ett meddelande och spara. Någon annan kommer att undersöka frågan.
+          Gå bara till %{map_link} och klicka på anteckningsikonen: %{note_icon}.
+          Detta lägger till en markör på kartan som du kan flytta genom att dra.
+          Lägg till ditt meddelande, klicka sedan på spara och annat kartläggare kommer att undersöka.
         the_map: kartan
     communities:
       title: Gemenskaper
@@ -2552,6 +2614,7 @@ sv:
       oauth1_settings: OAuth 1-inställningar
       oauth2_applications: OAuth 2-applikationer
       oauth2_authorizations: OAuth 2-auktoriseringar
+      muted_users: Tystade användare
   oauth:
     authorize:
       title: Auktorisera tillgång till ditt konto
@@ -2590,11 +2653,13 @@ sv:
       read_gpx: Läs privata GPS-spår
       write_gpx: Ladda upp GPS-spår
       write_notes: Ändra anteckningar
+      write_redactions: Omarbeta kartdata
       read_email: Läs användarens e-postadress
       skip_authorization: Godkänn applikation automatiskt
   oauth_clients:
     new:
       title: Registrera en ny applikation
+      disabled: Registrering av OAuth 1-applikationer har inaktiverats
     edit:
       title: Redigera ditt tillägg
     show:
@@ -2678,6 +2743,7 @@ sv:
       title: Mina auktoriserade applikationer
       application: Applikation
       permissions: Behörigheter
+      last_authorized: Sista auktoriserade
       no_applications_html: Du har ännu inte auktoriserad några %{oauth2}-applikationer.
     application:
       revoke: Återkalla åtkomst
@@ -2748,13 +2814,13 @@ sv:
     no_such_user:
       title: Finns ingen sådan användare
       heading: Användaren %{user} finns inte
-      body: Det finns ingen användare med namnet %{user}. Kontrollera stavningen,
-        eller så kanske länken är trasig.
+      body: Tyvärr, det finns ingen användare med namnet %{user}. Kontrollera din
+        stavning, eller så kanske länken du klickade på är fel.
       deleted: raderad
     show:
       my diary: Min dagbok
       my edits: Mina redigeringar
-      my traces: Mina GPS-spår
+      my traces: Mina spår
       my notes: Mina kartanteckningar
       my messages: Mina meddelanden
       my profile: Min profil
@@ -2764,11 +2830,13 @@ sv:
       my_dashboard: Min kontrollpanel
       blocks on me: Blockeringar av mig
       blocks by me: Blockeringar lagda av mig
+      create_mute: Tysta denna användare
+      destroy_mute: Sluta tysta användaren
       edit_profile: Redigera profil
       send message: Skicka meddelande
       diary: Dagbok
       edits: Redigeringar
-      traces: GPS-spår
+      traces: Spår
       notes: Kartanteckningar
       remove as friend: Ta bort vän
       add as friend: Lägg till vän
@@ -2777,7 +2845,6 @@ sv:
       ct status: 'Användarvillkor:'
       ct undecided: Ej bestämda
       ct declined: Avböjda
-      latest edit: 'Senaste redigering (%{ago}):'
       email address: 'E-post:'
       created from: 'Skapad från:'
       status: 'Status:'
@@ -2785,14 +2852,18 @@ sv:
       role:
         administrator: Den här användaren är en administratör
         moderator: Den här användaren är en moderator
+        importer: Denna användare är en importör
         grant:
           administrator: Tilldela administratörsrättigheter
           moderator: Tilldela moderatorrättigheter
+          importer: Ge importåtkomst
         revoke:
           administrator: Återkalla administratörsrättigheter
           moderator: Återkalla moderatorrättigheter
+          importer: Återkalla importåtkomst
       block_history: Aktiva blockeringar
       moderator_history: Utdelade blockeringar
+      revoke_all_blocks: Återkalla alla blockeringar
       comments: Kommentarer
       create_block: Blockera denna användare
       activate_user: Aktivera denna användare
@@ -2816,7 +2887,7 @@ sv:
       summary_no_ip_html: '%{name} skapad den %{date}'
       confirm: Bekräfta valda användare
       hide: Dölj valda användare
-      empty: Inga användare hittades
+      empty: Inga motsvarande användare hittades
     suspended:
       title: Kontot avstängt
       heading: Kontot avstängt
@@ -2830,7 +2901,7 @@ sv:
       invalid_credentials: Ogiltiga autentiseringsuppgifter
       no_authorization_code: Ingen behörighetskod
       unknown_signature_algorithm: Okänd signaturalgoritm
-      invalid_scope: Ogiltiga omfattning
+      invalid_scope: Ogiltig omfattning
       unknown_error: Autentisering misslyckades
     auth_association:
       heading: Ditt ID är inte associerat med ett OpenStreetMap-konto ännu.
@@ -2858,9 +2929,9 @@ sv:
         både användare och roll är korrekta.
     revoke:
       title: Bekräfta återkallning av roll
-      heading: Bekräfta återkallning av roll
-      are_you_sure: Är du säker på att du vill avlägsna rollen "%{role}" från användaren
-        "%{name}"?
+      heading: Bekräfta återkallande av roll
+      are_you_sure: Är du säker på att du vill återkalla rollen `%{role}' från användaren
+        `%{name}'?
       confirm: Bekräfta
       fail: Kunde inte återkalla rollen "%{role}" från användaren "%{name}". Kontrollera
         att både användaren och rollen är korrekta.
@@ -2875,13 +2946,12 @@ sv:
     new:
       title: Skapa blockering på %{name}
       heading_html: Skapa blockering på %{name}
-      period: Hur lång tid, från och med nu, användaren ska vara blockerad från API.
+      period: Hur lång tid, från och med nu, användaren ska vara blockerad från API:t.
       back: Visa alla blockeringar
     edit:
       title: Redigera blockering på %{name}
       heading_html: Redigera blockering på %{name}
-      period: Hur lång tid, från och med nu, som användaren ska vara blockerad från
-        API.
+      period: Hur lång tid, från och med nu, användaren ska vara blockerad från API:t.
       show: Visa denna blockering
       back: Visa alla blockeringar
     filter:
@@ -2900,11 +2970,21 @@ sv:
     revoke:
       title: Upphäv blockering av %{block_on}
       heading_html: Upphäv blockering på %{block_on} av %{block_by}
-      time_future: Denna blockering kommer att avslutas inom %{time}.
-      past: Detta block avslutades %{time} och kan inte upphävas nu.
+      time_future_html: Denna blockering kommer att avslutas inom %{time}.
+      past_html: Detta block avslutades %{time} och kan inte upphävas nu.
       confirm: Är du säker på att du vill återkalla denna blockering?
       revoke: Upphäv!
       flash: Denna blockering har upphävts.
+    revoke_all:
+      title: Upphäv alla blockeringar av %{block_on}
+      heading_html: Upphäver alla blockeringar av %{block_on}
+      empty: '%{name} har inga aktiva blockeringar.'
+      confirm: Är du säker på att du vill upphäva %{active_blocks}?
+      active_blocks:
+        one: '%{count} aktiv blockering'
+        other: '%{count} aktiva blockeringar'
+      revoke: Upphäv!
+      flash: Alla aktiva blockningar har upphävts.
     helper:
       time_future_html: Slutar om %{time}.
       until_login: Aktiv till dess användaren loggar in.
@@ -2963,6 +3043,30 @@ sv:
       showing_page: Sida %{page}
       next: Nästa »
       previous: « Föregående
+  user_mutes:
+    index:
+      title: Tystade användare
+      my_muted_users: Mina tystade användare
+      you_have_muted_n_users:
+        one: Du har tystat %{count} användare
+        other: Du har tystat {count} användare
+      user_mute_explainer: Meddelanden från tystade användare flyttas till en separat
+        inkorg och du kommer inte att få e-postaviseringar.
+      user_mute_admins_and_moderators: Du kan tysta administratörer och moderatorer
+        men deras meddelanden kommer inte att stängas av.
+      table:
+        thead:
+          muted_user: Tystad användare
+          actions: Åtgärder
+        tbody:
+          unmute: Ljud på
+          send_message: Skicka meddelande
+    create:
+      notice: Du tystade %{name}.
+      error: '%{name} kunde inte tystas. %{full_message}.'
+    destroy:
+      notice: Du av-tystade %{name}.
+      error: Det gick inte att av-tysta användaren. Var god försök igen.
   notes:
     index:
       title: Anteckningar skapade eller kommenterade av %{user}
@@ -2999,6 +3103,7 @@ sv:
       reactivate: Återaktivera
       comment_and_resolve: Kommentera och Avklara
       comment: Kommentera
+      log_in_to_comment: Logga in för att kommentera denna anteckning
       report_link_html: Om denna anteckning innehåller känslig information som måste
         tas bort kan du %{link}.
       other_problems_resolve: För alla andra problem med anteckningen, lös det själv
@@ -3056,11 +3161,9 @@ sv:
           other: Du är inom %{count} fot av denna punkt
       base:
         standard: Standard
-        cyclosm: CyclOSM
         cycle_map: Cykelkarta
         transport_map: Transportkarta
         hot: Humanitärt
-        opnvkarte: ÖPNVKarte
       layers:
         header: Kartskikt
         notes: Kartanteckningar
@@ -3071,9 +3174,12 @@ sv:
       openstreetmap_contributors: OpenStreetMap-bidragsgivare
       make_a_donation: Gör en donation
       website_and_api_terms: Webbplats och API-villkor
+      cyclosm_credit: Brickstil av %{cyclosm_link} värd av %{osm_france_link}
       osm_france: OpenStreetMap Frankrike
+      thunderforest_credit: Brickor satt till förfogande av %{thunderforest_link}
       andy_allan: Andy Allan
-      memomaps: MeMoMaps
+      tracestrack_credit: Brickor satt till förfogande av %{tracestrack_link}
+      hotosm_credit: Brickstil av %{hotosm_link} värd av %{osm_france_link}
       hotosm_name: Humanitärt OpenStreetMap-team
     site:
       edit_tooltip: Redigera kartan
@@ -3084,6 +3190,7 @@ sv:
       map_data_zoom_in_tooltip: Zooma in för att se kartdata
       queryfeature_tooltip: Undersök kartobjekt
       queryfeature_disabled_tooltip: Zooma in för att undersöka kartobjekt
+      embed_html_disabled: HTML-inbäddning är inte tillgänglig för det här kartlagret
     changesets:
       show:
         comment: Kommentera
@@ -3125,14 +3232,14 @@ sv:
         offramp_right_with_name: Ta rampen till höger in på %{name}
         offramp_right_with_directions: Ta rampen åt höger mot %{directions}
         offramp_right_with_name_directions: Ta rampen åt höger till %{name}, mot %{directions}
-        onramp_right_without_exit: Sväng vänster på rampen till %{name}
+        onramp_right_without_exit: Sväng höger på rampen in på %{name}
         onramp_right_with_directions: Sväng höger till rampen mot %{directions}
         onramp_right_with_name_directions: Sväng höger på rampen till %{name}, mot
           %{directions}
         onramp_right_without_directions: Sväng höger till rampen
         onramp_right: Sväng höger upp på rampen
         endofroad_right_without_exit: Vid slutet av vägen, sväng höger in på %{name}
-        merge_right_without_exit: Sväng rakt in på %{name}
+        merge_right_without_exit: Gå smman rakt in på %{name}
         fork_right_without_exit: Vid vägskälet sväng höger in på %{name}
         turn_right_without_exit: Högersväng in på %{name}
         sharp_right_without_exit: Skarp högersväng in på %{name}
@@ -3140,9 +3247,9 @@ sv:
         sharp_left_without_exit: Skarp vänstersväng in på %{name}
         turn_left_without_exit: Vänstersväng in på %{name}
         offramp_left: Ta rampen till vänster
-        offramp_left_with_exit: Ta utfarten %{exit} åt vänster
-        offramp_left_with_exit_name: Ta utfarten %{exit} åt vänster till %{name}
-        offramp_left_with_exit_directions: Ta utfarten %{exit} åt vänster mot %{directions}
+        offramp_left_with_exit: Ta avfart %{exit} till vänster
+        offramp_left_with_exit_name: Ta avfart %{exit} till vänster in på %{name}
+        offramp_left_with_exit_directions: Ta avfart %{exit} till vänster mot %{directions}
         offramp_left_with_exit_name_directions: Ta utfarten %{exit} åt vänster till
           %{name}, mot %{directions}
         offramp_left_with_name: Ta rampen till vänster in på %{name}
@@ -3153,10 +3260,10 @@ sv:
         onramp_left_with_directions: Sväng vänster till rampen mot %{directions}
         onramp_left_with_name_directions: Sväng vänster på rampen till %{name}, mot
           %{directions}
-        onramp_left_without_directions: Sväng vänster till rampen
+        onramp_left_without_directions: Sväng vänster in på rampen
         onramp_left: Sväng vänster till rampen
         endofroad_left_without_exit: Vid slutet av vägen, sväng vänster in på %{name}
-        merge_left_without_exit: Sväng vänster in på %{name}
+        merge_left_without_exit: Gå samman vänster till %{name}
         fork_left_without_exit: Vid vägskälet sväng vänster in på %{name}
         slight_left_without_exit: Svag vänstersväng in på %{name}
         via_point_without_exit: (via punkt)
@@ -3171,7 +3278,7 @@ sv:
         roundabout_with_exit: Vid rondellen, ta avfart %{exit} mot %{name}
         roundabout_with_exit_ordinal: Vid rondellen, ta avfart %{exit} mot %{name}
         exit_roundabout: Lämna rondellen mot %{name}
-        unnamed: namnlös
+        unnamed: icke namngiven väg
         courtesy: Vägbeskrivning med tillstånd av %{link}
         exit_counts:
           first: 1:a
@@ -3204,29 +3311,29 @@ sv:
       heading: Redigera redaktering
       title: Redigera redaktering
     index:
-      empty: Inga redakteringar att visa.
-      heading: Lista över redakteringar
-      title: Lista över redakteringar
+      empty: Inga maskeringar att visa.
+      heading: Lista över maskeringar
+      title: Lista över maskeringar
     new:
-      heading: Ange information för ny redaktering
-      title: Skapa ny redaktering
+      heading: Ange information för ny maskering
+      title: Skapa ny maskering
     show:
       description: 'Beskrivning:'
-      heading: Visa redaktering "%{title}"
-      title: Visa redaktering
+      heading: Visa maskering "%{title}"
+      title: Visa maskering
       user: 'Skapad av:'
-      edit: Redigera denna redaktering
-      destroy: Ta bort denna redaktering
+      edit: Redigera denna maskeiring
+      destroy: Ta bort denna maskering
       confirm: Är du säker?
     create:
-      flash: Redaktering skapad.
+      flash: Maskering skapad.
     update:
       flash: Ändringarna sparade.
     destroy:
-      not_empty: Redakteringen är inte tom. Avredaktera alla versioner som tillhör
-        denna redaktering innan den förstörs.
-      flash: Redaktering förstörd.
-      error: Det uppstod ett fel när redakteringen skulle förstöras.
+      not_empty: Maskeringen är inte tom. Avmaskera alla versioner som tillhör denna
+        maskering innan den förstörs.
+      flash: Maskeringen förstörd.
+      error: Det uppstod ett fel när maskeringen skulle förstöras.
   validations:
     leading_whitespace: har ett inledande mellanslag
     trailing_whitespace: har ett avslutande mellanslag
index aae14e5db26c876b02ce836159495508b7cf0e12..e34397786e3538e9cee306e3a5a3b24e12bb8a3f 100644 (file)
@@ -3,6 +3,7 @@
 # Export driver: phpyaml
 # Author: Aswn
 # Author: ElangoRamanujam
+# Author: Fahimrazick
 # Author: Gurulenin
 # Author: Karthi.dr
 # Author: Krishnaprasaths
@@ -39,8 +40,8 @@ ta:
         create: பதிவுசெய்
         update: புதுப்பி
       redaction:
-        create: à®ªà®\9fிதà¯\8dதிரà¯\81தà¯\8dததà¯\8dதà¯\88 à®\89à®°à¯\81வாà®\95à¯\8dà®\95வà¯\81à®®à¯\8d
-        update: à®ªà®\9fிதிரà¯\81தà¯\8dததà¯\8dதà¯\88à®\9aà¯\8d à®\9aà¯\87மிà®\95à¯\8dà®\95வà¯\81à®®à¯\8d
+        create: à®ªà®\9fிதà¯\8dதிரà¯\81தà¯\8dததà¯\8dதà¯\88 à®\86à®\95à¯\8dà®\95à¯\81
+        update: à®ªà®\9fிதà¯\8dதிரà¯\81தà¯\8dததà¯\8dதà¯\88à®\9aà¯\8d à®\9aà¯\87மி
       trace:
         create: பதிவேற்று
         update: மாற்றங்களை சேமி
@@ -52,6 +53,9 @@ ta:
       messages:
         invalid_email_address: செல்லுபடியாகும் மின்னஞ்சல் முகவரியாகத் தெரியவில்லை
         email_address_not_routable: திசைதிருப்பக்கூடியது அல்ல
+      models:
+        user_mute:
+          is_already_muted: ஏற்கனவே மௌனிக்கப்பட்டுள்ளார்
     models:
       acl: அனுமதிக் கட்டுப்பாட்டுப் பட்டியல்
       changeset: மாற்றங்கள்
@@ -82,7 +86,7 @@ ta:
       tracepoint: சுவடு புள்ளி
       tracetag: சுவடு இணைப்பு
       user: பயனர்
-      user_preference: à®ªà®¯à®©à®°à¯\8d à®µà®¿à®°à¯\81பà¯\8dபதà¯\8dதà¯\87à®°à¯\8dவà¯\81
+      user_preference: à®ªà®¯à®©à®°à¯\8d à®µà®¿à®°à¯\81பà¯\8dபமà¯\8d
       user_token: பயனர் அடையாளம்
       way: வழி
       way_node: வழி முனையம்
@@ -93,7 +97,7 @@ ta:
         url: முதன்மை பயன்பாட்டு URL (தேவை)
         callback_url: திரும்ப அழைக்கும் URL
         support_url: URL ஐ ஆதரிக்கவும்
-        allow_read_prefs: அவர்களின் பயனர் விருப்பங்களைப் படிக்கவும்
+        allow_read_prefs: அவர்களின் பயனர் விருப்பங்களை வாசி
         allow_write_prefs: அவர்களின் பயனர் விருப்பங்களை மாற்றவும்
         allow_write_diary: நாட்குறிப்பு உள்ளீடுகள், கருத்துகள் மற்றும் நண்பர்களை உருவாக்குங்கள்
         allow_write_api: வரைபடத்தை மாற்றவும்
@@ -187,9 +191,6 @@ ta:
       belongs_to: ஆசிரியர்
       changesetxml: மாற்றத்தொடுப்பு XML
       osmchangexml: osmChange XML
-      feed:
-        title: 'மாற்றங்கள்: %{id}'
-        title_comment: மாற்றங்கள் %{id}-%{comment}
       discussion: உரையாடல்
     relation:
       members: உறுப்பினர்கள்
@@ -247,10 +248,14 @@ ta:
     index:
       title: மாற்றங்கள்
       load_more: மேலும் படிக்க
+      feed:
+        title: 'மாற்றங்கள்: %{id}'
+        title_comment: மாற்றங்கள் %{id}-%{comment}
   dashboards:
     contact:
       km away: '%{count}கிமீ தாண்டி'
       m away: '%{count}மீ தாண்டி'
+      latest_edit_html: 'தற்போதைய  திருத்தம் %{ago}:'
     popup:
       your location: உங்களது இருப்பிடம்
       friend: நண்பர்
@@ -591,17 +596,20 @@ ta:
   messages:
     inbox:
       title: உள்பெட்டி
+    messages_table:
       from: 'அனுப்புநர்:'
       subject: பொருள்
       date: நாள்
+      actions: செயல்கள்
     message_summary:
       unread_button: வாசிக்கப்படாததாக என குறியிடு
       read_button: வாசித்ததாக குறியிடு
-      reply_button: à®ªà®¤à®¿à®²à¯\8d à®\85ளி
+      reply_button: பதிலளி
       destroy_button: நீக்கு
+      unmute_button: வருமஞ்சலுக்கு நகர்த்து
     new:
-      title: à®¤à®\95வலà¯\8d à®\85னà¯\81பà¯\8dபà¯\81
-      send_message_to_html: '%{name} à®\95à¯\8dà®\95à¯\81 à®ªà¯\81திய à®¤à®\95வலà¯\8d அனுப்பு'
+      title: தகவலனுப்பு
+      send_message_to_html: '%{name} à®\8eனà¯\8dபவரà¯\81à®\95à¯\8dà®\95à¯\81 à®\92à®°à¯\81 à®ªà¯\81திய à®¤à®\95வலà¯\88 அனுப்பு'
       back_to_inbox: உள்பெட்டிக்கு திரும்பவும்
     create:
       message_sent: செய்தி அனுப்பப்பட்டுவிட்டது
@@ -610,27 +618,36 @@ ta:
       heading: அப்படியொரு தகவல் இல்லை
     outbox:
       title: அனுப்பியவை
-      subject: பொருள்
-      date: நாள்
+      actions: செயல்கள்
+    muted:
+      title: மௌனித்த தகவல்கள்
+      messages:
+        one: '%{count} மௌனித்த தகவல்'
+        other: உமக்கு %{count} மௌனித்த தகவல்கள் உள்ளன
     show:
       title: தகவலை வாசிக்கவும்
-      reply_button: à®ªà®¤à®¿à®²à¯\8d à®\85ளி
+      reply_button: பதிலளி
       unread_button: வாசிக்கப்படாததாக  குறியிடு
-      destroy_button: நீக்கு
+      destroy_button: நீக்கு
     sent_message_summary:
       destroy_button: நீக்கு
+    heading:
+      muted_messages: மௌனித்த தகவல்கள்
+    unmute:
+      notice: தகவல் வருமஞ்சலுக்கு நகர்த்தப்பட்டுள்ளது
     destroy:
       destroyed: தகவல் நீக்கப்பட்டது
   passwords:
-    lost_password:
+    new:
       title: காணப்படாத கடவுச்சொல்
       heading: கடவுச்சொல் மறந்துவிட்டதா?
       email address: 'மின்னஞ்சல் முகவரி:'
       new password button: கடவுச்சொல்லை மீட்டமை
-    reset_password:
+    edit:
       title: கடவுச்சொல்லை மீட்டமை
       heading: ' %{user}க்கு கடவுச்சொல் மீட்டமை'
       reset: கடவுச்சொல்லை மீட்டமை
+    update:
       flash changed: உங்கள் கடவுச்சொல் மாற்றப்பட்டது.
   profiles:
     edit:
@@ -669,19 +686,12 @@ ta:
     export:
       title: ஏற்றுமதி செய்
       licence: உரிமம்
-      options: விருப்பத் தேர்வுகள்
-      format: வடிவமைப்பு
-      scale: அளவுவீதம்
-      max: அதிகபட்சம்
-      image_size: பட அளவு
-      zoom: பெரிதாக்கு
-      output: வெளியீடு
       export_button: ஏற்றுமதி செய்
     sidebar:
       search_results: தேடல் முடிவுகள்
       close: மூடு
     search:
-      search: à®¤à¯\87à®\9fலà¯\8d
+      search: à®¤à¯\87à®\9fà¯\81
       submit_text: செல்
     key:
       table:
@@ -689,28 +699,37 @@ ta:
           primary: முதன்மையான சாலை
           secondary: இரண்டாம் நிலை சாலை
           unclassified: வகைப்படுத்தாத சாலை
+          cycleway_mtb: மலையீருருளிப் பாதை
           rail: இரயில்வே
+          capital: தலைநகரம்
+          city: நகரம்
+          vineyard: திராட்சைத் தோட்டம்
           forest: காடு
           wood: விறகு
+          farmland: பண்ணை நிலம்
+          meadow: புல்வெளி
+          bare_rock: வெற்றுப் பாறை
+          sand: மணல்
           park: பூங்கா
-          common:
-          - பொதுவான
+          common: பொதுவான
+          built_up: கட்டடப் பகுதி
           industrial: தொழிற்சாலை பகுதி
           commercial: வணிக பகுதி
-          lake:
-          - ஏரி
-          - நீர்த்தேக்கம்
+          scrubland: புதர் நிலம்
+          lake: ஏரி
+          reservoir: நீர்நிலை
+          glacier: பனிப்பாறை
+          wetland: ஈரநிலம்
           farm: பண்ணை
           centre: விளையாட்டு மையம்
           military: ராணுவ பகுதி
-          school:
-          - பள்ளி
-          - பல்கலைக்கழகம்
+          school: பள்ளி
+          university: பல்கலைக்கழகம்
+          hospital: மருத்துவமனை
           building: குறிப்பிடத்தக்க கட்டிடம்
           station: தொடர்வண்டி நிலையம்
-          summit:
-          - உச்சி மாநாடு
-          - உயரமான இடம்
+          summit: உச்சி மாநாடு
+          peak: உச்சி
           private: தனியார் அனுமதி
           construction: சாலைகளில்  கட்டுமானப் பணிகள் நடந்து வருகின்றன.
           toilets: கழிவறைகள்
@@ -739,7 +758,7 @@ ta:
       tags: 'குறிச்சொற்கள்:'
       none: ஏதுமில்லை
       edit_trace: இந்த சுவடை திருத்து
-      delete_trace: à®\87நà¯\8dத à®\9aà¯\81வà®\9fà¯\88 à®¨à¯\80à®\95à¯\8dà®\95வà¯\81à®®à¯\8d
+      delete_trace: à®\87à®\9aà¯\8dà®\9aà¯\81à®\9aà¯\81வà®\9fà¯\8dà®\9fà¯\88 à®¨à¯\80à®\95à¯\8dà®\95à¯\81
       trace_not_found: சுவடு காணப்படவில்லை!
     trace:
       more: மேலும்
@@ -752,6 +771,9 @@ ta:
       in: உள்
     index:
       upload_trace: சுவடை பதிவேற்றவும்
+  application:
+    settings_menu:
+      muted_users: மௌனித்த பயனர்கள்
   oauth_clients:
     show:
       edit: தொகுப்பு விவரங்கள்
@@ -774,13 +796,14 @@ ta:
       my diary: எனது நாட்குறிப்பேடு
       my edits: என் திருத்தங்கள்
       my settings: என் அமைப்புகள்
+      create_mute: இப்பயனரை மௌனி
+      destroy_mute: இப்பயனரை ஓசையாக்கு
       diary: நாட்குறிப்பேடு
       edits: தொகுப்புகள்
       add as friend: நண்பராக சேர்
       ct status: 'பங்களிப்பாளர் விதிமுறைகள்:'
       ct undecided: முடிவு செய்யப்படாத
       ct declined: நிராகரிக்கப்பட்டது
-      latest edit: 'தற்போதைய  திருத்தம் %{ago}:'
       email address: 'மின்னஞ்சல் முகவரி:'
       status: 'நிலை:'
       role:
@@ -800,7 +823,7 @@ ta:
       confirm_user: இந்த பயனரை உறுதிசெய்
       hide_user: இந்த பயனரை மறை
       unhide_user: இந்த பயனரை மறைத்ததை நீக்கு
-      delete_user: à®\87பà¯\8dபயனரà¯\88 à®¨à¯\80à®\95à¯\8dà®\95வà¯\81à®®à¯\8d
+      delete_user: à®\87பà¯\8dபயனரà¯\88 à®¨à¯\80à®\95à¯\8dà®\95à¯\81
       confirm: உறுதிசெய்
     index:
       title: பயனர்கள்
@@ -814,22 +837,42 @@ ta:
   user_blocks:
     show:
       status: நிலை
-      show: à®\95ாணà¯\8dபி
+      show: à®\95ாà®\9fà¯\8dà®\9fà¯\81
       edit: தொகு
       revoke: திரும்பபெறு!
       confirm: உறுதியாகவா?
       reason: 'தடைக்கான காரணம்:'
     block:
-      show: à®\95ாணà¯\8dபி
+      show: à®\95ாà®\9fà¯\8dà®\9fà¯\81
       edit: தொகு
       revoke: திரும்பபெறு!
     blocks:
       display_name: தடைசெய்யப்பட்ட பயனர்
       creator_name: உருவாக்கியவர்
       status: நிலை
+  user_mutes:
+    index:
+      title: மௌனித்த பயனர்கள்
+      my_muted_users: எனது மௌனிக்கப்பட்ட பயனர்கள்
+      you_have_muted_n_users:
+        one: நீர் %{count} பயனரை மௌனித்துள்ளீர்
+        other: நீர் %{count} பயனர்களை மௌனித்துள்ளீர்
+      table:
+        thead:
+          muted_user: மௌனித்த பயனர்
+          actions: செயல்கள்
+        tbody:
+          unmute: ஓசையாக்கு
+          send_message: தகவலனுப்பு
+    create:
+      notice: நீர் %{name} என்பவரை மௌனித்தீர்.
+      error: '%{name} என்பவரை மௌனிக்க முடியவில்லை. %{full_message}.'
+    destroy:
+      notice: நீர் %{name} என்பவரை ஓசையாக்கினீர்.
   notes:
     show:
       description: விளக்கம்
+      log_in_to_comment: இக்குறிப்புக்குக் கருத்துரை வழங்கப் புகுபதிக
     new:
       title: புதுக் குறிப்பு
   redactions:
index fc7874b99b4f6692f1a694525b3f1c68e3df729e..e440515d65e12250d3d5d1151bd01225e4b8c439 100644 (file)
@@ -331,12 +331,8 @@ te:
       way_paginated: దారులు (%{count} లో %{x}-%{y})
       relation: సంబంధాలు (%{count})
       relation_paginated: '%{count} లో %{x}-%{y} యొక్క సంబంధాలు'
-      comment: వ్యాఖ్యలు (%{count})
       changesetxml: మార్పులసమితి XML
       osmchangexml: osmChange XML
-      feed:
-        title: మార్పులసమితి %{id}
-        title_comment: మార్పులసమితి %{id} - %{comment}
       join_discussion: చర్చలో పాల్గొనేందుకు లాగినవండి
       discussion: చర్చ
       still_open: మార్పులసమితి ఇంకా తెరిచే ఉంది - దాన్ని మూసివేయగానే చర్చ తెరుచుకుంటుంది.
@@ -439,6 +435,9 @@ te:
       no_more_area: ఈ ప్రాంతంలో మార్పులసమితులు మరి లేవు.
       no_more_user: ఈ వాడుకరి మార్పులసమితులు ఇక లేవు.
       load_more: మరిన్ని చూపించు
+      feed:
+        title: మార్పులసమితి %{id}
+        title_comment: మార్పులసమితి %{id} - %{comment}
     timeout:
       sorry: సారీ, మీరడిగిన మార్పులసమితుల జాబితాను తేవడంలో చాలా సమయం పట్టింది.
   changeset_comments:
@@ -456,6 +455,7 @@ te:
     contact:
       km away: '%{count}కిమీ దూరంలో'
       m away: '%{count}మీ దూరంలో'
+      latest_edit_html: 'చివరి మార్పు (%{ago}):'
     popup:
       your location: మీ ప్రాంతం
       nearby mapper: సమీపం లోని మ్యాపరు
@@ -1373,9 +1373,9 @@ te:
         resolved: పరిష్కరించినవి
     show:
       title: '%{status} అంశం #%{issue_id}'
-      report_created_at: '%{datetime} న మొదటిసారి ఫిర్యాదు చేసారు'
-      last_resolved_at: '%{datetime} న చివరిగా పరిష్కరించారు'
-      last_updated_at: చివరిగా %{displayname} గారు %{datetime} కు తాజాకరించారు
+      report_created_at_html: '%{datetime} న మొదటిసారి ఫిర్యాదు చేసారు'
+      last_resolved_at_html: '%{datetime} న చివరిగా పరిష్కరించారు'
+      last_updated_at_html: చివరిగా %{displayname} గారు %{datetime} కు తాజాకరించారు
       resolve: పరిష్కరించు
       ignore: పట్టించుకోవద్దు
       reopen: మళ్ళీ తెరువు
@@ -1640,8 +1640,6 @@ te:
   messages:
     inbox:
       title: ఇన్‌బాక్సు
-      my_inbox: నా ఇన్‌బాక్స్
-      my_outbox: నా ఔట్‌బాక్సు
       messages: మీకు %{new_messages}, %{old_messages} ఉన్నాయి
       new_messages:
         one: '%{count} కొత్త సందేశం'
@@ -1649,12 +1647,14 @@ te:
       old_messages:
         one: '%{count} పాత సందేశం'
         other: '%{count} పాత సందేశాలు'
-      from: నుండి
-      subject: విషయం
-      date: తేదీ
       no_messages_yet_html: మీకింకా సందేశాలేమీ లేవు. %{people_mapping_nearby_link}
         ఎవరినైనా ఎందుకు సంప్రదించకూడదూ?
       people_mapping_nearby: సమీపంలో మ్యాపింగు చేస్తున్నవారు
+    messages_table:
+      from: నుండి
+      to: కు
+      subject: విషయం
+      date: తేదీ
     message_summary:
       unread_button: చదవనట్లుగా గుర్తుపెట్టు
       read_button: చదివినట్లుగా గుర్తుపెట్టు
@@ -1674,14 +1674,9 @@ te:
       body: సారీ, ఆ ఐడీతో సందేశమేమీ లేదు.
     outbox:
       title: ఔట్‌బాక్సు
-      my_inbox: నా ఇన్‌బాక్సు
-      my_outbox: నా ఔట్‌బాక్సు
       messages:
         one: మీకు %{count} పంపిన సందేశం ఉంది
         other: మీకు %{count} పంపిన సందేశాలు ఉన్నాయి
-      to: కు
-      subject: విషయం
-      date: తేదీ
       no_sent_messages_html: మీకింకా పంపిన సందేశాలు లేవు. %{people_mapping_nearby_link}
         ఎవరినైనా ఎందుకు సంప్రదించకూడదూ?
       people_mapping_nearby: సమీపంలో మ్యాపింగు చేస్తున్నవారు
@@ -1698,28 +1693,33 @@ te:
         పంపలేదు, ఆ వాడుకరికి రాలేదు. సరైన వాడుకరిగా లాగినై చదవండి.
     sent_message_summary:
       destroy_button: తొలగించు
+    heading:
+      my_inbox: నా ఇన్‌బాక్స్
+      my_outbox: నా ఔట్‌బాక్సు
     mark:
       as_read: సందేశాన్ని చదివినట్లుగా గుర్తుపెట్టాం
       as_unread: సందేశాన్ని చదవనట్లుగా గుర్తుపెట్టాం
     destroy:
       destroyed: సందేశాన్ని తొలగించాం
   passwords:
-    lost_password:
+    new:
       title: సంకేతపదం పోయింది
       heading: సంకేతపదం మర్చిపోయారా?
       email address: 'ఈమెయిల్ చిరునామా:'
       new password button: సంకేతపదాన్ని మార్చు
       help_text: నమోదైనపుడు మీరిచ్చిన ఈమెయిలు చిరునామాను ఇవ్వండి. సంకేతపదాన్ని మార్చుకునే
         లింకును ఆ చిరునామాకు పంపిస్తాం.
+    create:
       notice email on way: అయ్యో.. పోయిందా :-( పోన్లెండి, దాన్ని మార్చుకునేందుకు ఒక
         ఈమెయిలు వచ్చేస్తోంది.
       notice email cannot find: క్షమించండి, ఆ ఈమెయిలు చిరునామా దొరకలేదు.
-    reset_password:
+    edit:
       title: సంకేతపదం మార్పు
       heading: '%{user} సంకేతపదాన్ని మార్చు'
       reset: సంకేతపదాన్ని మార్చు
-      flash changed: మీ సంకేతపదాన్ని మార్చాం.
       flash token bad: ఆ టోకెను కనబడలేదు, ఓసారి URL సరిచూస్తారా?
+    update:
+      flash changed: మీ సంకేతపదాన్ని మార్చాం.
   preferences:
     show:
       title: నా అభీష్టాలు
@@ -1762,7 +1762,6 @@ te:
       heading: ప్రవేశం
       email or username: 'ఈమెయిల్ చిరునామా లేదా వాడుకరిపేరు:'
       password: 'సంకేతపదం:'
-      openid_html: '%{logo} OpenID:'
       remember: నన్ను గుర్తుంచుకో
       lost password link: మీ సంకేతపదం పోయిందా?
       login_button: ప్రవేశించు
@@ -1893,12 +1892,7 @@ te:
         అది అవసరం.
     export:
       title: ఎగుమతి
-      area_to_export: ఎగిమతి చెయ్యాల్సిన ప్రాంతం
       manually_select: వేరే ప్రాంతాన్ని మానవికంగా ఎంచుకోండి
-      format_to_export: ఎగిమతి చెయ్యాల్సిన ఆకృతి
-      osm_xml_data: OpenStreetMap XML డేటా
-      map_image: మ్యాపు బొమ్మ (ప్రామాణిక పొరను చూపిస్తుంది)
-      embeddable_html: ఇముడ్చగలిగే HTML
       licence: లైసెన్సు
       too_large:
         advice: 'పై ఎగుమతి విఫలమైతే, కింది జాబితా లోంచి ఒక మూలాన్ని వాడండి:'
@@ -1915,17 +1909,6 @@ te:
           title: ఇతర మూలాలు
           description: Additional sources listed on the OpenStreetMap వికీలోని జాబితాలో
             ఉన్న అదనపు మూలాలు
-      options: ఎంపికలు
-      format: ఫార్మాటు
-      scale: కొలబద్ద
-      max: గరిష్టం
-      image_size: బొమ్మ పరిమాణం
-      zoom: పెద్దది
-      add_marker: మ్యాపుకు ఒక మార్కరును చేర్చండి
-      latitude: 'అక్షాం:'
-      longitude: 'రేఖాం:'
-      output: ఔట్‌పుట్
-      paste_html: వెబ్‌సైటులో ఇమిడ్చే HTML ను అతికించండి
       export_button: ఎగుమతించు
     fixthemap:
       title: సమస్యను నివేదించండి / మ్యాపును సరిచెయ్యండి
@@ -1950,10 +1933,6 @@ te:
       beginners_guide:
         title: కొత్తవారికి మార్గదర్శిని
         description: కొత్తవారి కోసం సముదాయం నిర్వహించే మార్గదర్శిని.
-      help:
-        title: సహాయ వేదిక
-        description: OpenStreetMap వారి ప్రశ్న-జవాబుల సైట్లో మీ ప్రశ్నలు అడగండి, లేదా
-          సమాధానాల కోసం చూడండి.
       mailing_lists:
         title: మెయిలింగు జాబితాలు
       irc:
@@ -2002,33 +1981,23 @@ te:
           footway: కాల్దారి
           rail: రైలుమార్గం
           subway: కిందారి
-          tram:
-          - లైట్ రైల్
-          - ట్రాము
-          cable:
-          - కేబుల్ కారు
-          - చెయిర్ లిఫ్ట్
-          runway:
-          - విమానాశ్రయం రన్‌వే
-          - టాక్సీ వే
-          apron:
-          - విమానాశ్రయం ఏప్రాన్
-          - టర్మినల్
+          cable_car: కేబుల్ కారు
+          chair_lift: చెయిర్ లిఫ్ట్
+          runway: విమానాశ్రయం రన్‌వే
+          taxiway: టాక్సీ వే
+          apron: విమానాశ్రయం ఏప్రాన్
           admin: పరిపాలనా సరిహద్దు
           forest: అడవి
           wood: కలప
           golf: గోల్ఫ్ కోర్సు
           park: పార్కు
+          common: పచ్చికబయలు
           resident: నివాస ప్రాంతం
-          common:
-          - పచ్చికబయలు
-          - పచ్చికబయలు
           retail: రిటెయిల్ ప్రదేశం
           industrial: పారిశ్రామిక ప్రదేశం
           commercial: వాణిజ్య ప్రదేశం
-          lake:
-          - సరస్సు
-          - జలాశయం
+          lake: సరస్సు
+          reservoir: జలాశయం
           farm: పొలాలు
           brownfield: బ్రౌన్‌ఫీల్డ్ స్థలం
           cemetery: స్మశానం
@@ -2036,13 +2005,11 @@ te:
           centre: క్రీడా కేంద్రం
           reserve: ప్రకృతి సంరక్షణ కేంద్రం
           military: మిలిటరీ ప్రదేశం
-          school:
-          - పాఠశాల
-          - విశ్వవిద్యాలయం
+          school: పాఠశాల
+          university: విశ్వవిద్యాలయం
           building: ప్రముఖ కట్టడము
           station: రైల్వే స్టేషన్
-          summit:
-            1: శిఖరం
+          peak: శిఖరం
           bridge: Black casing = వంతెన
           construction: నిర్మాణంలో ఉన్న రహదార్లు
           bicycle_shop: సైకిలు దుకాణం
@@ -2257,7 +2224,6 @@ te:
       ct status: 'తోడ్పాటు నియమాలు:'
       ct undecided: నిర్ణయించుకోలేదు
       ct declined: తిరస్కరించారు
-      latest edit: 'చివరి మార్పు (%{ago}):'
       email address: 'ఈమెయిలు చిరునామా:'
       status: 'స్థితి:'
       spam score: 'స్పామ్ స్కోరు:'
@@ -2365,8 +2331,8 @@ te:
     revoke:
       title: '%{block_on} పై ఉన్న నిరోధాన్ని ఎత్తేస్తున్నారు.'
       heading_html: '%{block_on} పై %{block_by} విధించిన నిరోధాన్ని ఎత్తేస్తున్నారు.'
-      time_future: '%{time} కు నిరోధం ముగుస్తుంది.'
-      past: '%{time} కు నిరోధం ముగిసిపోయింది. ఇప్పుడు దాన్ని ఎత్తివేయలేరు.'
+      time_future_html: '%{time} కు నిరోధం ముగుస్తుంది.'
+      past_html: '%{time} కు నిరోధం ముగిసిపోయింది. ఇప్పుడు దాన్ని ఎత్తివేయలేరు.'
       confirm: మీరు నిజంగానే ఈ నిరోధాన్ని ఎత్తివేయాలనుకుంటున్నారా?
       revoke: ఎత్తివేయండి!
       flash: నిరోధాన్ని ఎత్తివేసారు.
@@ -2493,11 +2459,9 @@ te:
           other: మీరు ఈ బిందువు నుండి %{count} అడుగుల దూరం లోపే ఉన్నారు
       base:
         standard: ప్రామాణికం
-        cyclosm: CyclOSM
         cycle_map: సైకిలు మ్యాపు
         transport_map: రవాణా పటం
         hot: మానవత్వ
-        opnvkarte: ÖPNVKarte
       layers:
         header: మ్యాపు పొరలు
         notes: పటపు గమనికలు
index 64e1da4e93ae70558252e10c9dbf2ad1e0b6d493..e2e19e3a6462c60d7a85ac6f93678bfae9fc664b 100644 (file)
@@ -5,6 +5,7 @@
 # Author: Ariesanywhere
 # Author: B20180
 # Author: Bebiezaza
+# Author: Ekminarin
 # Author: Just Sayori
 # Author: Karit
 # Author: Korrawit
@@ -129,7 +130,7 @@ th:
         description: คำอธิบาย
         gpx_file: 'อัปโหลดแฟ้ม GPX:'
         visibility: 'สถานะการแสดง:'
-        tagstring: 'ป้ายกำกับ:'
+        tagstring: ป้ายระบุ
       message:
         sender: ผู้ส่ง
         title: หัวเรื่อง
@@ -208,7 +209,6 @@ th:
   auth:
     providers:
       none: ไม่มี
-      openid: OpenID
       google: Google
       facebook: Facebook
       github: GitHub
@@ -304,14 +304,10 @@ th:
       way_paginated: เส้นทางที่ (%{x}-%{y} จาก %{count})
       relation: ความสัมพันธ์ (%{count})
       relation_paginated: ความสัมพันธ์ (%{x}-%{y} จาก %{count})
-      comment: ความคิดเห็น (%{count})
       hidden_comment_by_html: ความคิดเห็นที่ซ่อนอยู่จาก %{user} %{time_ago}
       comment_by_html: ความคิดเห็นจาก %{user} %{time_ago}
       changesetxml: ชุดการเปลี่ยนแปลง XML
       osmchangexml: เอ็กซ์เอ็มแอลของ osmChange
-      feed:
-        title: ชุดการเปลี่ยนแปลง %{id}
-        title_comment: ชุดการเปลี่ยนแปลง %{id} - %{comment}
       join_discussion: เข้าสู่ระบบเพื่อเข้าร่วมการอภิปราย
       discussion: การอภิปราย
       still_open: ชุดการเปลี่ยนแปลงกำลังเปิดอยู่ การอภิปรายจะเริ่มได้หลังจากปิดชุดการเปลี่ยนแปลงแล้ว
@@ -372,7 +368,7 @@ th:
       load_data: กำลังโหลดข้อมูล
       loading: กำลังโหลด...
     tag_details:
-      tags: à¸\9bà¹\89ายà¸\81ำà¸\81ัà¸\9a
+      tags: à¸\9bà¹\89ายระà¸\9aุ
       wiki_link:
         key: หน้าคำอธิบายวิกิาสำหรับป้ายระบุ %{key}
         tag: หน้าคำอธิบายวิกิาสำหรับป้ายระบุ %{key}=%{value}
@@ -413,6 +409,9 @@ th:
       no_more_area: ไม่พบชุดการเปลี่ยนแปลงอีกในพื้นที่นี้
       no_more_user: ไม่พบชุดการเปลี่ยนแปลงอีกโดยผู้ใช้คนนี้
       load_more: แสดงเพิ่มขึ้น
+      feed:
+        title: ชุดการเปลี่ยนแปลง %{id}
+        title_comment: ชุดการเปลี่ยนแปลง %{id} - %{comment}
     timeout:
       sorry: ขออภัย รายการชุดการเปลี่ยนแปลงที่ท่านร้องขอใช้เวลานานเกินสมควรในการสืบค้น
   changeset_comments:
@@ -430,6 +429,7 @@ th:
     contact:
       km away: ห่างออกไป %{count}km
       m away: ห่างออกไป %{count}m
+      latest_edit_html: 'การแก้ไขล่าสุด (%{ago}):'
     popup:
       your location: ตำแหน่งของคุณ
       nearby mapper: คนทำแผนที่ ที่อยู่ใกล้เคียง
@@ -1139,9 +1139,9 @@ th:
         zero: ไม่มีรายงาน
         one: 1 รายงาน
         other: '%{count} รายงาน'
-      report_created_at: รายงานครั้งแรกเมื่อ %{datetime}
-      last_resolved_at: ปิดเรื่องล่าสุดเมื่อ %{datetime}
-      last_updated_at: ปรับปรุงล่าสุดเมื่อ %{datetime} โดย %{displayname}
+      report_created_at_html: รายงานครั้งแรกเมื่อ %{datetime}
+      last_resolved_at_html: ปิดเรื่องล่าสุดเมื่อ %{datetime}
+      last_updated_at_html: ปรับปรุงล่าสุดเมื่อ %{datetime} โดย %{displayname}
       resolve: ปิดเรื่อง
       ignore: ละเว้น
       reopen: เปิดใหม่
@@ -1183,23 +1183,23 @@ th:
           spam_label: รายการบันทึกนี้เป็น/มีสแปม
           offensive_label: รายการบันทึกนี้หยาบคาย/ก้าวร้าว
           threat_label: บันทึกนี้มีใจความข่มขู่คุกคาม
-          other_label: อื่นๆ
+          other_label: อื่น 
         diary_comment:
           spam_label: ความคิดเห็นบันทึกนี้เป็น/มีสแปม
           offensive_label: ความคิดเห็นบันทึกนี้หยาบคาย/ก้าวร้าว
           threat_label: ความคิดเห็นบันทึกนี้มีใจความข่มขู่คุกคาม
-          other_label: อื่นๆ
+          other_label: อื่น 
         user:
           spam_label: โปรไฟล์ผู้ใช้นี้เป็น/มีสแปม
           offensive_label: โปรไฟล์ผู้ใช้นี้หยาบคาย/ก้าวร้าว
           threat_label: หน้าของผู้ใช้คนนี้มีใจความข่มขู่คุกคาม
           vandal_label: ผู้ใช้คนนี้มือบอน/มีพฤติกรรมแก้ไขก่อกวนบนแผนที่
-          other_label: อื่นๆ
+          other_label: อื่น 
         note:
           spam_label: หมายเหตุนี้เป็นสแปม
           personal_label: หมายเหตุนี้มีข้อมูลส่วนบุคคล
           abusive_label: หมายเหตุนี้ใช้ถ้อยคำหยาบคายหรือส่งเสริมความรุนแรง
-          other_label: อื่นๆ
+          other_label: อื่น 
     create:
       successful_report: ทำการแจ้งปัญหาเสร็จสิ้นเรียบร้อย
       provide_details: กรุณาระบุรายละเอียด
@@ -1356,8 +1356,6 @@ th:
   messages:
     inbox:
       title: จดหมายรับ
-      my_inbox: จดหมายรับส่วนตัว
-      my_outbox: กล่องจดหมายขาออกส่วนตัว
       messages: ท่านมี %{new_messages} และ %{old_messages}
       new_messages:
         one: ข้อความใหม่ %{count} ข้อความ
@@ -1365,11 +1363,13 @@ th:
       old_messages:
         one: ข้อความเก่า %{count} ข้อความ
         other: ข้อความเก่า %{count} ข้อความ
+      no_messages_yet_html: ท่านยังไม่มีข้อความใด ๆ ทำไมไม่ลองติดต่อกับ%{people_mapping_nearby_link}บ้าง?
+      people_mapping_nearby: ผู้คนที่กำลังทำแผนที่ที่อยู่ใกล้เคียง
+    messages_table:
       from: จาก
+      to: ถึง
       subject: เรื่อง
       date: วันที่
-      no_messages_yet_html: ท่านยังไม่มีข้อความใด ๆ ทำไมไม่ลองติดต่อกับ%{people_mapping_nearby_link}บ้าง?
-      people_mapping_nearby: ผู้คนที่กำลังทำแผนที่ที่อยู่ใกล้เคียง
     message_summary:
       unread_button: ทำเครื่องหมายว่ายังไม่ได้อ่าน
       read_button: ทำเครื่องหมายว่าอ่านแล้ว
@@ -1388,14 +1388,9 @@ th:
       body: ขออภัย ไม่พบข้อความที่กำกับด้วยรหัสดังกล่าว
     outbox:
       title: จดหมายออก
-      my_inbox: กล่องจดหมายขาเข้าส่วนตัว
-      my_outbox: กล่องจดหมายขาออกส่วนตัว
       messages:
         one: ท่านมีข้อความส่งแล้ว %{count} ฉบับ
         other: ท่านมีข้อความส่งแล้ว %{count} ฉบับ
-      to: ถึง
-      subject: หัวเรื่อง
-      date: วันที่
       no_sent_messages_html: ท่านยังไม่มีข้อความใด ๆ ทำไมไม่ลองติดต่อกับ%{people_mapping_nearby_link}บ้าง?
       people_mapping_nearby: ผู้คนที่กำลังทำแผนที่ที่อยู่ใกล้เคียง
     reply:
@@ -1411,22 +1406,27 @@ th:
         โปรดเข้าระบบใหม่โดยใช้ชื่อผู้ใช้นั้นเพื่อตอบกลับ
     sent_message_summary:
       destroy_button: ลบ
+    heading:
+      my_inbox: จดหมายรับส่วนตัว
+      my_outbox: กล่องจดหมายขาออกส่วนตัว
     mark:
       as_read: ข้อความถูกทำเครื่องหมายว่าอ่านแล้ว
       as_unread: ข้อความถูกทำเครื่องหมายว่ายังไม่ได้อ่าน
     destroy:
       destroyed: ข้อความถูกลบแล้ว
   passwords:
-    lost_password:
+    new:
       title: ตั้งรหัสผ่านใหม่
       heading: ลืมรหัสผ่านหรือ?
       email address: 'ที่อยู่อีเมล:'
       new password button: ตั้งรหัสผ่านใหม่
+    create:
       notice email cannot find: ขออภัย, ไม่พบที่อยู่อีเมลที่ระบุ
-    reset_password:
+    edit:
       title: ตั้งรหัสผ่านใหม่
       heading: 'ตั้วรหัสผ่านใหม่สำหรับ: %{user}'
       reset: ตั้งรหัสผ่านใหม่
+    update:
       flash changed: เปลี่ยนรหัสผ่านของคุณแล้วเรียบร้อย
   profiles:
     edit:
@@ -1449,7 +1449,6 @@ th:
       heading: ลงชื่อเข้าใช้
       email or username: 'อีเมลหรือชื่อผู้ใช้:'
       password: 'รหัสผ่าน:'
-      openid_html: 'โอเพนไอดีของ %{logo}:'
       remember: จดจำฉันไว้ในระบบ
       lost password link: ลืมรหัสผ่านหรือ?
       login_button: ลงชื่อเข้าใช้
@@ -1557,12 +1556,7 @@ th:
       no_iframe_support: เบราว์เซอร์ของท่านไม่รองรับการใช้งานเฟรมภายในหน้า HTML จึงไม่สามารถใช้ส่วนประกอบนี้ได้
     export:
       title: ส่งออก
-      area_to_export: พื้นที่ที่จะส่งออก
       manually_select: เลือกพื้นที่อื่นด้วยตนเอง
-      format_to_export: รูปแบบที่จะส่งออก
-      osm_xml_data: ข้อมูล XML ของ OpenStreetMap
-      map_image: ภาพแผนที่ (แสดงชั้นภาพมาตรฐาน)
-      embeddable_html: HTML ฝังตัวได้
       licence: สัญญาอนุญาต
       too_large:
         advice: 'ถ้าการส่งออกข้างต้นล้มเหลว โปรดพิจารณาใช้แหล่งข้อมูลตามที่ระบุด้านล่างนี้:'
@@ -1580,17 +1574,6 @@ th:
         other:
           title: แหล่งข้อมูลอื่น
           description: แหล่งข้อมูลอื่นตามที่ระบุไว้ใน OpenStreetMap wiki
-      options: ตัวเลือก
-      format: รูปแบบ
-      scale: มาตราส่วน
-      max: ขนาดสูงสุด
-      image_size: ขนาดภาพ
-      zoom: ย่อ-ขยาย
-      add_marker: เพิ่มเครื่องหมายลงในแผนที่
-      latitude: 'ละติจูด:'
-      longitude: 'ลองจิจูด:'
-      output: การแสดงผล
-      paste_html: วาง HTML สำหรับนำไปใช้ในเว็บไซต์
       export_button: ส่งออก
     fixthemap:
       title: รายงานปัญหา/แก้ไขข้อผิดพลาดในแผนที่
@@ -1646,34 +1629,24 @@ th:
           footway: ทางเดินเท้า
           rail: ทางรถไฟ
           subway: รถไฟใต้ดิน
-          tram:
-          - รถไฟเบา
-          - รถราง
-          cable:
-          - รถกระเช้า
-          - รถกระเช้าเปลือย
-          runway:
-          - ทางวิ่งสนามบิน
-          - ทางขับเครื่องบิน
-          apron:
-          - โรงซ่อมบำรุงเครื่องบิน
-          - อาคารผู้โดยสาร
+          cable_car: รถกระเช้า
+          chair_lift: รถกระเช้าเปลือย
+          runway: ทางวิ่งสนามบิน
+          taxiway: ทางขับเครื่องบิน
+          apron: โรงซ่อมบำรุงเครื่องบิน
           admin: ขอบเขตการปกครอง
           forest: ป่า
           wood: ไม้
           golf: สนามกอล์ฟ
           park: สวน
+          common: ที่ส่วนกลาง
           resident: เขตที่พักอาศัย
-          common:
-          - ที่ส่วนกลาง
-          - ทุ่งหญ้า
           retail: พื้นที่พาณิชยกรรม
           industrial: พื้นที่อุตสาหกรรม
           commercial: พื้นที่พาณิชยกรรม
           heathland: ทุ่งไม้พุ่ม
-          lake:
-          - ทะเลสาบ
-          - อ่างเก็บน้ำ
+          lake: ทะเลสาบ
+          reservoir: อ่างเก็บน้ำ
           farm: ไร่นา
           brownfield: พื้นที่อุตสาหกรรมเดิม
           cemetery: สุสาน
@@ -1682,14 +1655,12 @@ th:
           centre: ศูนย์กีฬา
           reserve: พื้นที่สงวนธรรมชาติ
           military: เขตทหาร
-          school:
-          - โรงเรียน
-          - มหาวิทยาลัย
+          school: โรงเรียน
+          university: มหาวิทยาลัย
           building: อาคารสำคัญ
           station: สถานีรถไฟ
-          summit:
-          - ยอดเขา
-          - ยอดเขา
+          summit: ยอดเขา
+          peak: ยอดเขา
           tunnel: เส้นประ = อุโมงค์
           bridge: เส้นทึบ = สะพาน
           private: พื้นที่ส่วนบุคคล
@@ -1734,7 +1705,7 @@ th:
       cancel: ยกเลิก
       visibility_help: นี่หมายความว่าอะไร?
     trace_optionals:
-      tags: à¸\9bà¹\89ายà¸\81ำà¸\81ัà¸\9a
+      tags: à¸\9bà¹\89ายระà¸\9aุ
     show:
       title: แสดงรอยทางชื่อ %{name}
       heading: แสดงรอยทางชื่อ %{name}
@@ -1748,7 +1719,7 @@ th:
       edit: แก้ไข
       owner: 'เจ้าของ:'
       description: 'คำอธิบาย:'
-      tags: 'à¸\9bà¹\89ายà¸\81ำà¸\81ัà¸\9a:'
+      tags: 'à¸\9bà¹\89ายระà¸\9aุ:'
       none: ไม่มี
       edit_trace: แก้ไขรอยทางนี้
       delete_trace: ลบรอยทางนี้
@@ -1920,7 +1891,6 @@ th:
       ct status: 'เงื่อนไขผู้ร่วมสร้างสรรค์:'
       ct undecided: ยังไม่ตัดสินใจ
       ct declined: ไม่ยอมรับ
-      latest edit: 'การแก้ไขล่าสุด (%{ago}):'
       email address: 'ที่อยู่อีเมล:'
       created from: 'สร้างจาก:'
       status: 'สถานะ:'
@@ -2016,7 +1986,7 @@ th:
     revoke:
       title: ยกเลิกการระงับใช้งานของ %{block_on}
       heading_html: เพิกถอนการระงับผู้ใช้ %{block_on} ซึ่งสั่งโดยผู้ใช้ %{block_by}
-      past: การระงับนี้ได้สิ้นสุดไปเมื่อ %{time} แล้ว การยกเลิกจึงไม่มีผล
+      past_html: การระงับนี้ได้สิ้นสุดไปเมื่อ %{time} แล้ว การยกเลิกจึงไม่มีผล
       confirm: แน่ใจหรือว่าต้องการจะยกเิลิกการระงับนี้?
       flash: ได้ยกเลิกการระงับนี้แล้ว
     helper:
index 78226dcaf98924a841b0bda19bd51691e263af57..c1d1f810db7b8b4c3557e72e2e599b8bdefcf36f 100644 (file)
@@ -199,7 +199,6 @@ tl:
   auth:
     providers:
       none: Wala
-      openid: OpenID
       google: Google
       facebook: Facebook
       github: GitHub
@@ -295,12 +294,8 @@ tl:
       way_paginated: Mga daan (%{x}-%{y} ng %{count})
       relation: Mga kaugnayan (%{count})
       relation_paginated: Mga kaugnayan (%{x}-%{y} ng %{count})
-      comment: Mga puna (%{count})
       changesetxml: XML ng pangkat ng pagbabago
       osmchangexml: XML ng osmChange
-      feed:
-        title: '%{id} ng pangkat ng pagbabago'
-        title_comment: '%{id} ng angkat ng pagbabago - %{comment}'
       join_discussion: Lumagda para sumali sa talakayan
       discussion: Talakayan
       still_open: Bukas pa rin ang pangkat ng pagbabago - magbubukas ang talakayan
@@ -405,6 +400,9 @@ tl:
       no_more_area: Wala nang mga pangkat ng pagbabago sa lugar na ito.
       no_more_user: Wala nang mga pangkat ng pagbabago mula sa tagagamit na ito.
       load_more: Magkarga pa
+      feed:
+        title: '%{id} ng pangkat ng pagbabago'
+        title_comment: '%{id} ng angkat ng pagbabago - %{comment}'
     timeout:
       sorry: Paumanhin, ang talaan ng mga pangkat ng pagbabagong hiniling mo ay naging
         napakatagal bago nakuhang muli.
@@ -418,6 +416,7 @@ tl:
     contact:
       km away: '%{count}km ang layo'
       m away: '%{count}m ang layo'
+      latest_edit_html: 'Pinakahuling pagbabago (%{ago}):'
     popup:
       your location: Kinalalagyan mo
       nearby mapper: Malapit na tagapagmapa
@@ -1133,8 +1132,8 @@ tl:
       reports:
         one: 1 ulat
         other: '%{count} mga ulat'
-      report_created_at: Unang naiulat noong %{datetime}
-      last_resolved_at: Huling nalutas noong %{datetime}
+      report_created_at_html: Unang naiulat noong %{datetime}
+      last_resolved_at_html: Huling nalutas noong %{datetime}
       resolve: Lutasin
       ignore: Huwag pansinin
       reopen: Muling Buksan
@@ -1361,8 +1360,6 @@ tl:
   messages:
     inbox:
       title: Kahon ng pumapasok
-      my_inbox: Kahong-tanggapan Ko
-      my_outbox: Kahong-labasan Ko
       messages: Mayroong kang %{new_messages} at %{old_messages}
       new_messages:
         one: '%{count} bagong mensahe'
@@ -1370,12 +1367,14 @@ tl:
       old_messages:
         one: '%{count} lumang mensahe'
         other: '%{count} lumang mga mensahe'
-      from: Mula sa
-      subject: Paksa
-      date: Petsa
       no_messages_yet_html: Wala ka pang mga mensahe. Bakit hindi makipag-ugnayan
         sa ilang mga %{people_mapping_nearby_link}?
       people_mapping_nearby: mga taong kalapit na nagmamapa
+    messages_table:
+      from: Mula sa
+      to: Para kay
+      subject: Paksa
+      date: Petsa
     message_summary:
       unread_button: Tatakan bilang hindi pa nababasa
       read_button: Tatakan bilang nabasa na
@@ -1395,14 +1394,9 @@ tl:
       body: Paumanhin walang mensahe na may ganyang ID.
     outbox:
       title: Kahong-labasan
-      my_inbox: Kahong-tanggapan Ko
-      my_outbox: Kahong-labasan Ko
       messages:
         one: Mayroon kang %{count} ipinadalang mensahe
         other: Mayroon kang %{count} ipinadalang mga mensahe
-      to: Para kay
-      subject: Paksa
-      date: Petsa
       no_sent_messages_html: Wala ka pang ipinadadalang mga mensahe. Bakit hindi makipag-ugnayan
         sa ilang mga %{people_mapping_nearby_link}?
       people_mapping_nearby: mga taong kalapit na nagmamapa
@@ -1421,13 +1415,16 @@ tl:
         bilang ang tamang tagagamit upang mabasa ito.
     sent_message_summary:
       destroy_button: Burahin
+    heading:
+      my_inbox: Kahong-tanggapan Ko
+      my_outbox: Kahong-labasan Ko
     mark:
       as_read: Minarkahan ang mensahe bilang nabasa na
       as_unread: Minarkahan ang mensahe bilang hindi pa nababasa
     destroy:
       destroyed: Binura ang mensahe
   passwords:
-    lost_password:
+    new:
       title: Naiwalang password
       heading: Nakalimutang Password?
       email address: 'Tirahan ng e-liham:'
@@ -1435,15 +1432,17 @@ tl:
       help_text: Ipasok ang tirahan ng e-liham na ginamit mo upang magpatala, ipapadala
         namin ang isang kawing papunta rito na magagamit mo upang muling maitakda
         mo ang iyong password.
+    create:
       notice email on way: Ikinalulungkot na naiwala mo iyan :-( ngunit darating na
         ang isang e-liham upang maitakda mong muli iyan kaagad.
       notice email cannot find: Hindi matagpuan ang ganyang tirahan ng e-liham, paumanhin.
-    reset_password:
+    edit:
       title: Muling itakda ang password
       heading: Muling itakda ang Hudyat para kay %{user}
       reset: Muling Itakda ang Password
-      flash changed: Napalitan na ang hudyat mo.
       flash token bad: Hindi natagpuan ang ganyang kahalip, suriin kaya ang URL?
+    update:
+      flash changed: Napalitan na ang hudyat mo.
   preferences:
     show:
       preferred_languages: Nais na mga Wika
@@ -1474,7 +1473,6 @@ tl:
       heading: Lumagda
       email or username: 'Tirahan ng E-liham o Pangalan ng Tagagamit:'
       password: 'Password:'
-      openid_html: '%{logo} OpenID:'
       remember: Tandaan ako
       lost password link: Nawala ang password mo?
       login_button: Lumagda
@@ -1601,12 +1599,7 @@ tl:
         ng HTML, na kailangan para sa tampok na ito.
     export:
       title: Iluwas
-      area_to_export: Pook na Iluluwas
       manually_select: Kinakamay na pumili ng ibang lugar
-      format_to_export: Anyong Iluluwas
-      osm_xml_data: Dato ng XML ng OpenStreetMap
-      map_image: Larawan ng Mapa (nagpapakita ng patong na saligan)
-      embeddable_html: Maibabaong HTML
       licence: Lisensiya
       too_large:
         body: Masyadong malaki ang lugar na ito upang mailuwas bilang Dato ng XML
@@ -1621,17 +1614,6 @@ tl:
           title: Iba pang mga Pinagmulan
           description: Karagdagang mga mapagkukunan na nakalista sa OpenStreetMap
             Wiki
-      options: Mga mapagpipilian
-      format: Anyo
-      scale: Sukat
-      max: pinakamataas
-      image_size: Sukat ng Larawan
-      zoom: Lapitan
-      add_marker: Magdagdag ng isang pananda sa mapa
-      latitude: 'Latitud:'
-      longitude: 'Longhitud:'
-      output: Kinalabasan
-      paste_html: Idikit ang HTML na ibabaon sa websayt
       export_button: Iluwas
     fixthemap:
       title: Mag-ulat ng problema/ Ayusin ang mapa
@@ -1687,35 +1669,24 @@ tl:
           footway: Lakaran ng tao
           rail: Daambakal
           subway: Daanang pang-ilalim
-          tram:
-          - Banayad na riles
-          - trambya
-          cable:
-          - Kotse ng kable
-          - upuang inaangat
-          runway:
-          - Rampa ng Paliparan
-          - daanan ng taksi
-          apron:
-          - Tapis ng paliparan
-          - terminal
+          cable_car: Kotse ng kable
+          chair_lift: upuang inaangat
+          runway: Rampa ng Paliparan
+          taxiway: daanan ng taksi
+          apron: Tapis ng paliparan
           admin: Hangganang pampangangasiwa
           forest: Gubat
           wood: Kahoy
           golf: Kurso ng golp
           park: Liwasan
+          common: Karaniwan
           resident: Pook na panuluyan
-          common:
-          - Karaniwan
-          - kaparangan
-          - halamanan
           retail: Lugar na tingian
           industrial: Pook na pang-industriya
           commercial: Pook na pangkalakalan
           heathland: Lupain ng halamang erika
-          lake:
-          - Lawa
-          - tinggalan ng tubig
+          lake: Lawa
+          reservoir: tinggalan ng tubig
           farm: Bukid
           brownfield: Pook ng kayumangging bukirin
           cemetery: Libingan
@@ -1724,14 +1695,12 @@ tl:
           centre: Lunduyang pampalakasan
           reserve: Lupaing laan sa kalikasan
           military: Pook ng militar
-          school:
-          - Paaralan
-          - pamantasan
+          school: Paaralan
+          university: pamantasan
           building: Makabuluhang gusali
           station: Himpilan ng daambakal
-          summit:
-          - Taluktok
-          - tugatog
+          summit: Taluktok
+          peak: tugatog
           tunnel: Ginitlingang pambalot = lagusan
           bridge: Itim na pambalot = tulay
           private: Pribadong pagpunta
@@ -2006,7 +1975,6 @@ tl:
       ct status: 'Mga tuntunin sa taga-ambag:'
       ct undecided: Walang kapasyahan
       ct declined: Tumanggi
-      latest edit: 'Pinakahuling pagbabago (%{ago}):'
       email address: 'Tirahan ng e-liham:'
       created from: 'Nilikha magmula sa:'
       status: 'Katayuan:'
@@ -2105,8 +2073,8 @@ tl:
     revoke:
       title: Binabawi ang paghadlang sa %{block_on}
       heading_html: Binabawi ang paghadlang sa %{block_on} ni %{block_by}
-      time_future: Ang hadlang na ito ay magwawakas sa ganap na %{time}.
-      past: Ang hadlang na ito ay nagwakas noong %{time} at hindi na ngayon mababawi.
+      time_future_html: Ang hadlang na ito ay magwawakas sa ganap na %{time}.
+      past_html: Ang hadlang na ito ay nagwakas noong %{time} at hindi na ngayon mababawi.
       confirm: Nakatitiyak ka bang nais mong bawiin ang hadlang na ito?
       revoke: Bawiin!
       flash: Nabawi na ang hadlang na ito.
@@ -2225,10 +2193,8 @@ tl:
         title: Ipakita ang Aking Lokasyon
       base:
         standard: Pamantayan
-        cyclosm: CyclOSM
         cycle_map: Mapa ng Pagbibisikleta
         transport_map: Mapa ng Transportasyon
-        opnvkarte: ÖPNVKarte (mapa ng pampublikong sasakyan)
       layers:
         data: Dato ng Mapa
         gps: Pangmadlang mga Bakas ng GPS
index 581b4e347be37bb2d39a0086394a0273985ffaef..31b5d78537a2309760ac1c7dcbe4f00bb1affdac 100644 (file)
@@ -9,6 +9,7 @@
 # Author: Archaeodontosaurus
 # Author: Asma
 # Author: BaRaN6161 TURK
+# Author: Bulut
 # Author: Captantrips
 # Author: Cobija
 # Author: Emperyan
@@ -91,6 +92,10 @@ tr:
       messages:
         invalid_email_address: geçerli bir e-posta adresi gibi görünmüyor
         email_address_not_routable: yönlendirilebilir değil
+        display_name_is_user_n: n, sizin kullanıcı kimliğiniz olmadıkça user_n olamaz
+      models:
+        user_mute:
+          is_already_muted: zaten sessize alındı
     models:
       acl: Erişim Kontrol Listesi
       changeset: Değişiklik Kaydı
@@ -102,7 +107,7 @@ tr:
       issue: Sorun
       language: Dil
       message: Mesaj
-      node: Nokta
+      node: Düğüm
       node_tag: Düğüm Etiketi
       old_node: Eski Nokta
       old_node_tag: Eski Nokta Etiketi
@@ -144,7 +149,7 @@ tr:
       diary_entry:
         user: Kullanıcı
         title: Konu
-        body: Gövde
+        body: Mesaj
         latitude: Enlem
         longitude: Boylam
         language_code: Dil
@@ -193,7 +198,7 @@ tr:
         languages: Tercih Edilen Diller
         preferred_editor: Tercih Edilen Düzenleyici
         pass_crypt: Parola
-        pass_crypt_confirmation: Parolayı Onayla
+        pass_crypt_confirmation: Parola Onayı
     help:
       doorkeeper/application:
         confidential: Uygulama, kullanıcı gizliliğini güvenilir yerlerde kullanacaktır
@@ -249,6 +254,9 @@ tr:
       x_years:
         one: '%{count} yıl önce'
         other: '%{count} yıl önce'
+  printable_name:
+    version: v%{version}
+    current_and_old_links_html: '%{current_link}, %{old_link}'
   editor:
     default: Varsayılan (şu anda %{name})
     id:
@@ -260,7 +268,6 @@ tr:
   auth:
     providers:
       none: Hiçbiri
-      openid: OpenID
       google: Google
       facebook: Facebook
       microsoft: Microsoft
@@ -312,6 +319,8 @@ tr:
           gizlenecektir.
         retain_changeset_discussions: Varsa, değişiklik seti tartışmalarınız korunacaktır.
         retain_email: E-posta adresiniz saklanacaktır.
+        recent_editing_html: Yakın zamanda düzenleme yaptığınız için hesabınız şu
+          anda silinemez. Silme işlemi %{time} tarihinde mümkün olacak.
         confirm_delete: Emin misiniz?
         cancel: İptal
   accounts:
@@ -361,7 +370,7 @@ tr:
     destroy:
       success: Hesap Silindi.
   browse:
-    created: Oluşturuldu
+    created: Oluşturulma
     closed: Kapandı
     created_ago_html: '%{time_ago} oluşturuldu'
     closed_ago_html: '%{time_ago} kapatıldı'
@@ -393,14 +402,10 @@ tr:
       way_paginated: Yol (%{x}-%{y} - toplam %{count})
       relation: İlişkiler (%{count})
       relation_paginated: İlişkiler (%{x}-%{y} - toplam %{count})
-      comment: Yorumlar (%{count})
       hidden_comment_by_html: '%{user} tarafından %{time_ago} yapılan gizli yorum'
       comment_by_html: '%{user} tarafından %{time_ago} yapılan yorum'
       changesetxml: ' XML değişiklik kaydı'
       osmchangexml: osmChange XML
-      feed:
-        title: Değişiklik kaydı %{id}
-        title_comment: Değişiklik takımı %{id} - %{comment}
       join_discussion: Tartışmaya katılmak için lütfen giriş yapın
       discussion: Tartışma
       still_open: Değişiklik kaydı hâlâ açık - tartışma, değişiklik serisi kapatıldığında
@@ -482,6 +487,15 @@ tr:
       introduction: Yakındaki özellikleri bulmak için haritaya tıklayın.
       nearby: Yakındaki özellikler
       enclosing: Kapsayan özellikler
+  old_nodes:
+    not_found:
+      sorry: 'Üzgünüz, #%{id} düğümünün %{version} sürümü bulunamadı.'
+  old_ways:
+    not_found:
+      sorry: 'Üzgünüz, #%{id} yolunun %{version} sürümü bulunamadı.'
+  old_relations:
+    not_found:
+      sorry: 'Üzgünüz, #%{id} ilişkisinin %{version} sürümü bulunamadı.'
   changesets:
     changeset_paging_nav:
       showing_page: '%{page}. sayfa'
@@ -510,6 +524,9 @@ tr:
       no_more_area: Bu alanda daha fazla değişiklik kaydı bulunmuyor.
       no_more_user: Bu kullanıcı tarafından daha fazla değişiklik kaydı yok.
       load_more: Daha fazla yükle
+      feed:
+        title: Değişiklik kaydı %{id}
+        title_comment: Değişiklik takımı %{id} - %{comment}
     timeout:
       sorry: Üzgünüz, değişiklik kayıtlarının listelenmesi fazla sürdü.
   changeset_comments:
@@ -530,9 +547,10 @@ tr:
     contact:
       km away: '%{count} km uzak'
       m away: '%{count} metre yakın'
+      latest_edit_html: 'Son değişiklik (%{ago}):'
     popup:
       your location: Konumum
-      nearby mapper: Komşu haritacı
+      nearby mapper: Yakındaki haritacı
       friend: Arkadaş
     show:
       title: Gösterge Panelim
@@ -557,7 +575,7 @@ tr:
       title: Kullanıcı Günlükleri
       title_friends: Arkadaşların günlükleri
       title_nearby: Yakındaki kullanıcıların günlükleri
-      user_title: '%{user} kullanıcısının günlüğü'
+      user_title: '%{user} Kullanıcısının Günlüğü'
       in_language_title: '%{language} dillindeki günlük girdiler'
       new: Yeni Günlük Girdisi
       new_title: Kullanıcı günlüğümde yeni bir girdi oluştur
@@ -570,8 +588,9 @@ tr:
       title: Günlük Girdisini Düzenle
       marker_text: Günlük girdisinin konumu
     show:
-      title: '%{user} kullanıcısının günlüğü | %{title}'
-      user_title: '%{user} kullanıcısının günlüğü'
+      title: '%{user} Kullanıcısının Günlüğü | %{title}'
+      user_title: '%{user} Kullanıcısının Günlüğü'
+      discussion: Tartışma
       leave_a_comment: Yorum yap
       login_to_leave_a_comment_html: Yorum yazmak için %{login_link}
       login: Oturum Aç
@@ -619,14 +638,20 @@ tr:
         description: OpenStreetMap kullanıcıların en son günlük girdileri
     comments:
       title: '%{user} tarafından yapılan günlük yorumları'
-      heading: '%{user} kullanıcısının günlük yorumları'
+      heading: '%{user} Kullanıcısının Günlük Yorumları'
       subheading_html: '%{user} tarafından yapılan günlük yorumları'
       no_comments: Günlük yorumu yok
-      post: Gönder
+      post: Gönderi
       when: Tarih
       comment: Yorum
       newer_comments: Daha Yeni Yorumlar
       older_comments: Daha Eski Yorumlar
+    subscribe:
+      heading: Aşağıdaki günlük girdisi tartışmasına abone olmak ister misiniz?
+      button: Tartışmaya abone ol
+    unsubscribe:
+      heading: Aşağıdaki günlük girdisi tartışmasının aboneliği iptal edilsin mi?
+      button: Tartışma aboneliğinden çık
   doorkeeper:
     errors:
       messages:
@@ -682,14 +707,14 @@ tr:
     make_friend:
       heading: '%{user}, arkadaş olarak eklensin mi?'
       button: Arkadaş olarak ekle
-      success: '%{name} arkadaş listesine eklendi!'
+      success: '%{name}, arkadaş listesine eklendi!'
       failed: Üzgünüz, %{name} arkadaş olarak eklenemedi.
       already_a_friend: '%{name} ile zaten arkadaşsın.'
       limit_exceeded: Son zamanlarda çok sayıda kullanıcıyla arkadaş oldunuz. Lütfen
         daha fazla arkadaş olmaya çalışmadan önce bir süre bekleyin.
     remove_friend:
       heading: '%{user}, arkadaşlıktan çıkarılsın mı?'
-      button: ArkadaÅ\9flıktan Ã§ıkar
+      button: ArkadaÅ\9flıktan Ã\87ıkar
       success: '%{name}, arkadaş listesinden çıkarıldı.'
       not_a_friend: '%{name}, arkadaşın değil.'
   geocoder:
@@ -1507,9 +1532,9 @@ tr:
         one: '%{count} rapor'
         other: '%{count} rapor'
       no_reports: Rapor yok
-      report_created_at: İlk defa %{datetime} tarihinde bildirildi
-      last_resolved_at: En son %{datetime} tarihinde çözümlendi
-      last_updated_at: Son güncelleme %{displayname} tarafından %{datetime} tarihinde
+      report_created_at_html: İlk defa %{datetime} tarihinde bildirildi
+      last_resolved_at_html: En son %{datetime} tarihinde çözümlendi
+      last_updated_at_html: Son güncelleme %{displayname} tarafından %{datetime} tarihinde
         yapıldı
       resolve: Çözümle
       ignore: Yoksay
@@ -1585,7 +1610,7 @@ tr:
     start_mapping: Haritacılığa Başla
     edit: Düzenle
     history: Geçmiş
-    export: Dışa aktar
+    export: Dışa Aktar
     issues: Sorunlar
     data: Veri
     export_data: Verinin Dışalımı
@@ -1604,7 +1629,7 @@ tr:
     partners_ucl: UCL
     partners_fastly: Fastly
     partners_bytemark: Bytemark Hosting
-    partners_partners: işbirlikçiler
+    partners_partners: iş birlikçiler
     tou: Kullanım Şartları
     osm_offline: OpenStreetMap veritabanı bakım çalışmaları yürütüldüğü için veritabanı
       şu anda çevrimdışıdır.
@@ -1635,6 +1660,9 @@ tr:
         yorum yapabilir veya yazara %{replyurl} adresinden mesaj gönderebilirsiniz.
       footer_html: Ayrıca yorumu %{readurl} adresinden okuyabilir ve %{commenturl}
         adresinden yorum yapabilir veya yazara %{replyurl} adresinden mesaj gönderebilirsiniz.
+      footer_unsubscribe: '%{unsubscribeurl} sayfasında tartışma aboneliğinden çıkabilirsiniz.'
+      footer_unsubscribe_html: '%{unsubscribeurl} sayfasında tartışma aboneliğinden
+        çıkabilirsiniz.'
     message_notification:
       subject: '[OpenStreetMap] %{message_title}'
       hi: Merhaba %{to_user},
@@ -1656,7 +1684,7 @@ tr:
       befriend_them_html: '%{befriendurl} üzerinden arkadaş olarak da ekleyebilirsiniz.'
     gpx_description:
       description_with_tags_html: '%{trace_description} açıklamasına ve şu etiketlere
-        sahip %{trace_name} GPX dosyanız gibi görünüyor: %{tags}'
+        sahip %{trace_name} GPX dosyanıza benziyor: %{tags}'
       description_with_no_tags_html: '%{trace_description} açıklamasına sahip ve etiket
         içermeyen %{trace_name} GPX dosyanız gibi görünüyor'
     gpx_failure:
@@ -1670,6 +1698,8 @@ tr:
       loaded:
         one: olası %{count} puan üzerinden %{trace_points} ile başarıyla yüklendi.
         other: olası %{count} puan üzerinden %{trace_points} ile başarıyla yüklendi.
+      all_your_traces_html: Başarıyla yüklediğiniz tüm GPX izlerinizi %{url} adresinde
+        bulabilirsiniz.
       subject: '[OpenStreetMap] GPX dosyası başarıyla alındı'
     signup_confirm:
       subject: '[OpenStreetMap]''e hoş geldin'
@@ -1795,8 +1825,6 @@ tr:
   messages:
     inbox:
       title: Gelen kutusu
-      my_inbox: Gelen kutusu
-      my_outbox: Giden Kutum
       messages: '%{new_messages} ve %{old_messages}'
       new_messages:
         one: '%{count} yeni mesaj'
@@ -1804,17 +1832,21 @@ tr:
       old_messages:
         one: '%{count} eski mesaj'
         other: '%{count} eski mesaj'
-      from: Gönderen
-      subject: Konu
-      date: Tarih
       no_messages_yet_html: 'Henüz mesajınız yok. Yakındaki insanlarla iletişime geçmeye
         ne dersiniz? Deneyin: %{people_mapping_nearby_link}'
       people_mapping_nearby: yakın çevredeki haritacılar
+    messages_table:
+      from: Gönderen
+      to: Alıcı
+      subject: Konu
+      date: Tarih
+      actions: Eylemler
     message_summary:
       unread_button: Okunmadı olarak işaretle
       read_button: Okundu olarak işaretle
       reply_button: Yanıtla
       destroy_button: Sil
+      unmute_button: Gelen Kutusuna Taşı
     new:
       title: Mesaj gönder
       send_message_to_html: '%{name} kullanıcısına yeni bir mesaj gönder'
@@ -1829,17 +1861,18 @@ tr:
       body: Üzgünüz, bu kimlik ile bir mesaj yok.
     outbox:
       title: Giden kutusu
-      my_inbox: Gelen Kutum
-      my_outbox: Giden Kutum
+      actions: Eylemler
       messages:
         one: '%{count} mesaj gönderdiniz'
         other: ' %{count} mesaj gönderdiniz'
-      to: Alıcı
-      subject: Konu
-      date: Tarih
       no_sent_messages_html: 'Henüz kimseye mesaj göndermediniz. Yakındaki insanlarla
         iletişime geçmeye ne dersiniz? Deneyin: %{people_mapping_nearby_link}'
       people_mapping_nearby: yakın çevredeki haritacılar
+    muted:
+      title: Sessize Alınan Mesajlar
+      messages:
+        one: '%{count} sessize alınan mesaj'
+        other: '%{count} sessize alınan mesajınız var'
     reply:
       wrong_user: '`%{user}'' olarak oturum açtınız fakat yanıtlamasını istediğiniz
         mesaj kullanıcıya gönderilmedi. Yanıtlamak için lütfen doğru kullanıcı olarak
@@ -1855,26 +1888,36 @@ tr:
         giriş yapın.'
     sent_message_summary:
       destroy_button: Sil
+    heading:
+      my_inbox: Gelen kutusu
+      my_outbox: Giden Kutum
+      muted_messages: Sessize alınan mesajlar
     mark:
       as_read: Mesaj okundu olarak işaretlendi
       as_unread: Mesaj okunmadı olarak işaretlendi
+    unmute:
+      notice: Mesaj, gelen kutusuna taşındı
+      error: Mesaj, gelen kutusuna taşınamadı.
     destroy:
       destroyed: Mesaj silindi
   passwords:
-    lost_password:
+    new:
       title: Kayıp parola
       heading: Parolanızı mı Unuttunuz?
-      email address: 'E-posta Adresi:'
+      email address: E-posta Adresi
       new password button: Parolayı sıfırla
       help_text: Kaydolmak için kullandığınız e-posta adresini girin, şifrenizi sıfırlamak
         için kullanabileceğiniz bir bağlantı yollayacağız.
+    create:
       notice email on way: Maalesef şifrenizi kaybettiniz :-( Ancak yeni bir e-posta
         yolda böylece şifreniziyakında sıfırlayabilirsiniz.
       notice email cannot find: 'Üzgünüz: bu e-posta adresi bulunamadı.'
-    reset_password:
+    edit:
       title: Parolayı sıfırla
       heading: '%{user} İçin Parolayı Sıfırlayın'
       reset: Parolayı Sıfırla
+      flash token bad: Bu simgeyi bulamadıysanız belki de bağlantıyı kontrol etmelisiniz?
+    update:
       flash changed: Parolanız değiştirildi.
       flash token bad: Bu simgeyi bulamadıysanız belki de bağlantıyı kontrol etmelisiniz?
   preferences:
@@ -1919,17 +1962,16 @@ tr:
       failure: Profil güncellenemedi.
   sessions:
     new:
-      title: Oturum aç
-      heading: Oturum aç
-      email or username: 'E-posta Adresi veya Kullanıcı Adı:'
-      password: 'Parola:'
-      openid_html: '%{logo} OpenID:'
+      title: Oturum Aç
+      heading: Oturum Aç
+      email or username: E-posta Adresi veya Kullanıcı Adı
+      password: Parola
       remember: Beni hatırla
       lost password link: Parolanı mı unuttun?
-      login_button: Oturum aç
+      login_button: Oturum Aç
       register now: Şimdi kaydol
       with external: 'Alternatif olarak bir üçüncü parti uygulaması kullanarak oturum
-        aç:'
+        açın:'
       no account: Hesabın yok mu?
       auth failure: Üzgünüz, bu giriş ile oturum açılamadı.
       openid_logo_alt: OpenID ile giriş
@@ -1982,6 +2024,7 @@ tr:
       image: Resim
       alt: Alt metin
       url: URL
+      codeblock: Kod bloğu
     richtext_field:
       edit: Düzenle
       preview: Önizleme
@@ -2032,7 +2075,7 @@ tr:
       legal_2_2_html: OpenStreetMap, büyüteç logosu ve Harita Durumu %{registered_trademarks_link}
         sayılmaktadır.
       legal_2_2_registered_trademarks: OSMF'nin tescilli ticari markaları
-      partners_title: İşbirlikçiler
+      partners_title: İş birlikçiler
     copyright:
       foreign:
         title: Bu çeviri hakkında
@@ -2041,7 +2084,7 @@ tr:
           bölümü önceliklidir.
         english_link: İngilizce orijinali
       native:
-        title: Sayfa hakkında
+        title: Bu sayfa hakkında
         html: Telif hakkı sayfasının İngilizce sürümünü görüntülüyorsunuz. Bu sayfanın
           %{native_link} sayfasına geri gidebilir ya da telif hakkı ve %{mapping_link}
           hakkında bilgi edinmek için sayfada kalabilirsiniz.
@@ -2218,13 +2261,8 @@ tr:
       no_iframe_support: Bu özelliği görüntülemek için gerekli olan HTML iframe tarayıcınız
         desteklemiyor.
     export:
-      title: Dışa aktar
-      area_to_export: Çıkartılacak alan
+      title: Dışa Aktar
       manually_select: Fare kullanarak farklı bir alan seç
-      format_to_export: Çıkartma biçimi
-      osm_xml_data: OpenStreetMap XML Veri
-      map_image: Harita (varsayılan katmanı gösterir)
-      embeddable_html: Gömülebilir HTML
       licence: Lisans
       licence_details_html: OpenStreetMap verileri, %{odbl_link} (ODbL) altında lisanslanmıştır.
       odbl: Open Data Commons Açık Veritabanı Lisansı
@@ -2248,18 +2286,7 @@ tr:
         other:
           title: Diğer Kaynaklar
           description: OpenStreetMap vikisinde listelenen ek kaynaklar
-      options: Seçenekler
-      format: Biçim
-      scale: Ölçek
-      max: maks.
-      image_size: Resim Boyutu
-      zoom: Yakınlaştır
-      add_marker: Haritaya bir işaret ekle
-      latitude: 'Enlem:'
-      longitude: 'Boylam:'
-      output: Çıktı
-      paste_html: Yukarıdaki HTML kodu kopyalayıp websitesinde yapıştırabilir
-      export_button: Dışa aktar
+      export_button: Dışa Aktar
     fixthemap:
       title: Sorun bildir / Haritayı onar
       how_to_help:
@@ -2295,17 +2322,14 @@ tr:
         url: https://wiki.openstreetmap.org/wiki/Tr:Beginners%27_guide
         title: Yeni Başlayanlar Kılavuzu
         description: Topluluk, yeni başlayanlar için rehberlik yapmaktadır.
-      help:
-        title: Yardım Forumu
-        description: Bir soru sor veya OpenStreetMap'in soru-ve-cevap sitesinde yanıtları
-          ara.
+      community:
+        title: Yardım & Topluluk Forumu
+        description: Yardım istemek ve OpenStreetMap hakkında sohbet etmek için ortak
+          bir yer.
       mailing_lists:
         title: E-Posta Listeleri
         description: Oldukça geniş yerel veya bölgesel e-posta listelerinde soru sorabilir
           veya ilginç konuları tartışabilirsiniz.
-      community:
-        title: Topluluk forumu
-        description: OpenStreetMap hakkında sohbet ortamı
       irc:
         title: IRC
         description: Birçok dilde ve birçok konuda interaktif sohbet.
@@ -2359,67 +2383,83 @@ tr:
           primary: Devlet Yolu
           secondary: İl yolu
           unclassified: Sınıflandırılmamış yol
+          pedestrian: Yaya yolu
           track: Toprak yolu
           bridleway: Binici yolu
           cycleway: Bisiklet yolu
           cycleway_national: Ulusal Bisiklet Yolu
           cycleway_regional: Bölgesel Bisiklet Yolu
           cycleway_local: Yerel Bisiklet Yolu
+          cycleway_mtb: Dağ bisikleti rotası
           footway: Yaya yolu
           rail: Demiryolu
+          train: Tren
           subway: Metro
-          tram:
-          - Dar raylı demiryolu
-          - tramvay
-          cable:
-          - Teleferik
-          - gondol
-          runway:
-          - Uçuş pisti
-          - Uçak pisti
-          apron:
-          - Havaalanı apronu
-          - terminal
+          ferry: Feribot
+          light_rail: Hafif raylı
+          tram: Tramvay
+          trolleybus: Troleybüs
+          bus: Otobüs
+          cable_car: Teleferik
+          chair_lift: Telesiyej
+          runway: Uçuş pisti
+          taxiway: Taksi yolu
+          apron: Havaalanı apronu
           admin: İdari sınırı
+          capital: Başkent
+          city: Şehir
+          orchard: Meyve bahçesi
+          vineyard: Üzüm bağı
           forest: Orman
-          wood: Orman
+          wood: Koru
+          farmland: Tarım arazisi
+          grass: Çimen
+          meadow: Çayır
+          bare_rock: Çıplak kaya
+          sand: Kum
           golf: Golf sahası
           park: Park
+          common: Çimen
+          built_up: İnşa alanı
           resident: Yerleşim bölgesi
-          common:
-          - Çimen
-          - mera
-          - bahçe
           retail: Alışveriş merkezi
           industrial: Sanayi alanı
           commercial: Ticari ve hizmet alanı
           heathland: Fundalık
-          lake:
-          - Göl
-          - rezervuar
+          scrubland: Çalılık
+          lake: Göl
+          reservoir: Rezervuar
+          intermittent_water: Aralıklı su birikintisi
+          glacier: Buzul
+          reef: Resif
+          wetland: Sulak alan
           farm: Çiftlik
           brownfield: Çıplak arazi
           cemetery: Mezarlık
           allotments: Bostan
           pitch: Spor sahası
           centre: Spor merkezi
+          beach: Plaj
           reserve: Doğa koruma alanı
           military: Askeri bölge
-          school:
-          - Okul
-          - Üniversite
+          school: Okul
+          university: Üniversite
+          hospital: Hastane
           building: Önemli yapı
           station: Gar
-          summit:
-          - Zirve
-          - Dağ
+          summit: Zirve
+          peak: Zirve
           tunnel: çizgili kenar = tünel
           bridge: Siyah kenar = köprü
           private: Özel giriş
           destination: Hedef noktası
           construction: yapım aşamasındaki yollar
+          bus_stop: Otobüs durağı
+          stop: Durak
           bicycle_shop: Bisikletçi
+          bicycle_rental: Bisiklet kiralama
           bicycle_parking: Bisiklet parkı
+          bicycle_parking_small: Küçük bisiklet parkı
           toilets: Tuvaletler
     welcome:
       title: Hoş geldiniz!
@@ -2461,6 +2501,7 @@ tr:
         imports: Aktarımlar
         automated_edits: Otomatik Düzenlemeler
       start_mapping: Haritacılığa Başla
+      continue_authorization: Yetkilendirmeye Devam Et
       add_a_note:
         title: Düzenlemek için vaktin yok mu? O zaman bir not ekle!
         para_1: |-
@@ -2512,9 +2553,9 @@ tr:
       help_url: https://wiki.openstreetmap.org/wiki/Tr:Upload
     create:
       upload_trace: GPS İzi Gönder
-      trace_uploaded: GPX dosya yüklendi ve veritabanına eklemek için bekliyor. Bu
-        işlem genellikle yarım saat içinde gerçekleşir ve tamamlandığında sana bir
-        e-posta gönderiliyor.
+      trace_uploaded: GPX dosyanız yüklendi ve veritabanına eklenmeyi bekliyor. Bu
+        işlem genellikle yarım saat içinde gerçekleşir ve tamamlandığında size bir
+        e-posta gönderilir.
       upload_failed: Üzgünüz, GPX yüklemesi başarısız oldu. Bir yönetici hatayla ilgili
         bilgilendirildi. Lütfen tekrar deneyin
       traces_waiting:
@@ -2622,6 +2663,7 @@ tr:
       oauth1_settings: OAuth 1 ayarları
       oauth2_applications: OAuth 2 uygulamaları
       oauth2_authorizations: OAuth 2 yetkilendirmeleri
+      muted_users: Sessize Alınan Kullanıcılar
   oauth:
     authorize:
       title: Hesabınıza erişimi yetkilendirin
@@ -2658,11 +2700,13 @@ tr:
       read_gpx: Özel GPS izlerini oku
       write_gpx: GPS izlerini yükle
       write_notes: Notları değiştir
+      write_redactions: Harita verilerini düzelt
       read_email: Kullanıcı e-posta adresini oku
       skip_authorization: Başvuruyu otomatik onayla
   oauth_clients:
     new:
       title: Yeni bir uygulama kaydedin
+      disabled: OAuth 1 uygulamalarının kaydı devre dışı bırakıldı
     edit:
       title: Uygulamanızı düzenleyin
     show:
@@ -2746,6 +2790,7 @@ tr:
       title: Yetkili uygulamalarım
       application: Uygulama
       permissions: İzinler
+      last_authorized: Son Yetkili
       no_applications_html: Henüz hiçbir %{oauth2} uygulamasını yetkilendirmediniz.
     application:
       revoke: Erişimi İptal Et
@@ -2760,16 +2805,16 @@ tr:
       support: destek
       about:
         header: Ücretsiz ve düzenlenebilir
-        paragraph_1: Diğer haritaların aksine, OpenStreetMap tamamen sizin gibi kullanıcılar
-          tarafından oluşturulmuş ve herkesin düzeltmesi, güncellemesi, indirmesi
-          ve kullanması ücretsizdir.
+        paragraph_1: Diğer haritaların aksine tamamen sizler tarafından oluşturulan
+          OpenStreetMap'i herkesin düzeltmesi, güncellemesi, indirmesi ve kullanması
+          ücretsizdir.
         paragraph_2: Katkıda bulunmaya başlamak için kaydolun. Hesabınızı onaylamak
           için bir e-posta göndereceğiz.
       display name description: Herkes tarafından görünecek bir kullanıcı adı. Bu
         adı istediğiniz zaman ayarlar bölümünde değiştirebilirsiniz.
       external auth: 'Üçüncü Taraf Kimlik Doğrulaması:'
       use external auth: 'Alternatif olarak bir üçüncü parti uygulaması kullanarak
-        oturum aç:'
+        oturum açın:'
       auth no password: Üçüncü taraf kimlik doğrulamasında bir parola gerekli değildir,
         ancak bazı ek araçlar veya sunucu için yine de bir parola gerekebilir.
       continue: Kaydol
@@ -2834,20 +2879,21 @@ tr:
       my_dashboard: Gösterge Panelim
       blocks on me: Engellendiklerim
       blocks by me: Engellediklerim
+      create_mute: Bu Kullanıcıyı Sessize Al
+      destroy_mute: Bu Kullanıcının Sesini Aç
       edit_profile: Profili Düzenle
       send message: Mesaj Gönder
       diary: Günlük
       edits: Düzenlemeler
-      traces: İzleri
+      traces: İzler
       notes: Harita Notları
-      remove as friend: ArkadaÅ\9flıktan Ã§ıkar
+      remove as friend: ArkadaÅ\9flıktan Ã\87ıkar
       add as friend: Arkadaş Olarak Ekle
       mapper since: 'Haritacılığa başlama tarihi:'
       uid: 'Kullanıcı kimliği:'
       ct status: 'Katılımcının şartları:'
       ct undecided: Kararsız
       ct declined: Reddetti
-      latest edit: 'Son değişiklik (%{ago}):'
       email address: 'E-posta adresi:'
       created from: 'Kullanıldı yazılım:'
       status: 'Durum:'
@@ -2855,14 +2901,18 @@ tr:
       role:
         administrator: Bu kullanıcı, bir yöneticidir.
         moderator: Bu kullanıcı, bir moderatördür.
+        importer: Bu kullanıcı bir içe aktarıcıdır
         grant:
           administrator: Yönetici erişim hakkı
           moderator: Moderatör erişim izni
+          importer: İçe aktarım erişim izni ver
         revoke:
           administrator: Yönetici erişimini iptal etme
           moderator: Moderatör erişimini iptal etme
+          importer: İçe aktarıcı erişimini iptal et
       block_history: Etkin Engellemeler
       moderator_history: Verilen Engellemeler
+      revoke_all_blocks: Tüm engellemeleri iptal et
       comments: Yorumlar
       create_block: Bu kullanıcıyı engelle
       activate_user: Bu Kullanıcıyı Etkinleştir
@@ -2873,7 +2923,7 @@ tr:
       unhide_user: Bu Kullanıcıyı Göster
       delete_user: Bu Kullanıcıyı Sil
       confirm: Onayla
-      report: Bu kullanıcıyı rapor et
+      report: Bu Kullanıcıyı Bildir
     go_public:
       flash success: Tüm düzenlemeleriniz şimdi herkese açık ve siz de düzenleme yetkisine
         sahipsiniz.
@@ -2968,11 +3018,21 @@ tr:
       title: '%{block_on} engellerini iptal etme'
       heading_html: '%{block_by} tarafından yapılan %{block_on} engellerini iptal
         etme'
-      time_future: Engellenme %{time} içerisinde bitecek.
-      past: Bu engelleme %{time} bitmiş ve artık iptal edilemez.
+      time_future_html: Engellenme %{time} içerisinde bitecek.
+      past_html: Bu engelleme %{time} bitmiş ve artık iptal edilemez.
       confirm: Bu engeli kaldırmak istediğine emin misin?
       revoke: İptal!
       flash: Bu engelleme iptal edildi.
+    revoke_all:
+      title: '%{block_on} tarihindeki tüm engellemeler iptal ediliyor'
+      heading_html: '%{block_on} tarihindeki tüm engellemeler iptal ediliyor'
+      empty: '%{name} kullanıcısının herhangi aktif bir engeli yok.'
+      confirm: '%{active_blocks} iptal etmek istediğinizden emin misiniz?'
+      active_blocks:
+        one: '%{count} aktif engel'
+        other: '%{count} aktif engel'
+      revoke: İptal!
+      flash: Tüm aktif engellemeler iptal edildi.
     helper:
       time_future_html: '%{time} içinde bitecek.'
       until_login: Kullanıcı giriş yapana kadar aktif.
@@ -3006,14 +3066,14 @@ tr:
     show:
       title: '%{block_on} kişisi %{block_by} tarafından engellendi'
       heading_html: '%{block_on} kişisi %{block_by} tarafından engellendi'
-      created: 'Oluşturuldu:'
+      created: 'Oluşturulma:'
       duration: 'Süre:'
       status: 'Durum:'
       show: Göster
       edit: Düzenle
       revoke: İptal!
       confirm: Emin misiniz?
-      reason: 'Engelleme sebebi:'
+      reason: 'Engellenme sebebi:'
       back: Tüm engellemeleri göster
       revoker: 'Geri alan:'
       needs_view: Engel kaldırılmadan önce kullanıcının giriş yapması gerekiyor.
@@ -3023,19 +3083,43 @@ tr:
       edit: Düzenle
       revoke: İptal!
     blocks:
-      display_name: Engellenmiş kullanıcı
+      display_name: Engellenen Kullanıcı
       creator_name: Oluşturan
-      reason: Engelleme sebebi
+      reason: Engellenme sebebi
       status: Durum
       revoker_name: İptal eden
       showing_page: '%{page}. sayfa'
       next: Sonraki »
       previous: « Önceki
+  user_mutes:
+    index:
+      title: Sessize Alınan Kullanıcılar
+      my_muted_users: Sessize alınan kullanıcılarım
+      you_have_muted_n_users:
+        one: '%{count} kullanıcıyı sessize aldınız'
+        other: '%{count} kullanıcıyı sessize aldınız'
+      user_mute_explainer: Sessize alınan kullanıcıların mesajları ayrı bir gelen
+        kutusuna taşınır ve e-posta bildirimleri almazsınız.
+      user_mute_admins_and_moderators: Yöneticileri ve moderatörleri sessize alabilirsiniz
+        ancak mesajları sessize alınmayacaktır.
+      table:
+        thead:
+          muted_user: Sessize Alınan Kullanıcı
+          actions: Eylemler
+        tbody:
+          unmute: Sesi Aç
+          send_message: Mesaj gönder
+    create:
+      notice: '%{name} kullanıcısını sessize aldınız.'
+      error: '%{name} sessize alınamadı. %{full_message}.'
+    destroy:
+      notice: '%{name} kullanıcısının sesini açtınız.'
+      error: Kullanıcının sesi açılamadı. Lütfen tekrar deneyin.
   notes:
     index:
       title: '%{user} tarafından gönderilen veya yorumlanan notlar'
-      heading: '%{user} kullanıcıya ait notlar'
-      subheading_html: '%{user} tarafından %{submitted}} veya %{commented} notlar'
+      heading: '%{user} Kullanıcısının Notları'
+      subheading_html: '%{user} tarafından %{submitted} veya %{commented} notlar'
       subheading_submitted: gönderilen
       subheading_commented: yorumlanan
       no_notes: Not yok
@@ -3069,6 +3153,7 @@ tr:
       reactivate: Yeniden etkinleştir
       comment_and_resolve: Yorum ve Çözüm
       comment: Yorum
+      log_in_to_comment: Bu nota yorum yapmak için giriş yapın
       report_link_html: Bu not, kaldırılması gereken hassas bilgiler içeriyorsa %{link}
         bağlantısına tıklayınız.
       other_problems_resolve: Notla ilgili diğer tüm sorunlar için lütfen bir yorum
@@ -3126,12 +3211,10 @@ tr:
           other: Bu noktanın %{count} adım içindesiniz
       base:
         standard: Standart
-        cyclosm: CyclOSM
         cycle_map: Bisiklet Haritası
         transport_map: Ulaşım Haritası
         tracestracktop_topo: Tracestrack Topo
         hot: İnsancıl
-        opnvkarte: ÖPNVKarte
       layers:
         header: Harita Katmanları
         notes: Harita Notları
@@ -3147,8 +3230,6 @@ tr:
       osm_france: OpenStreetMap Fransa
       thunderforest_credit: Döşemeler, %{thunderforest_link} katkılarıyla
       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
       hotosm_credit: '%{osm_france_link} tarafından barındırılan %{hotosm_link} döşeme
         tarzı'
@@ -3162,6 +3243,7 @@ tr:
       map_data_zoom_in_tooltip: Harita verileri görmek için yakınlaştır
       queryfeature_tooltip: Özellikleri göster
       queryfeature_disabled_tooltip: Özellikler görmek için yakınlaştır
+      embed_html_disabled: Bu harita katmanı için HTML yerleştirme kullanılamıyor
     changesets:
       show:
         comment: Yorum
@@ -3174,14 +3256,14 @@ tr:
     directions:
       ascend: Yükselt
       engines:
-        fossgis_osrm_bike: Bisiklet (OSRM)
-        fossgis_osrm_car: Araba (OSRM)
+        fossgis_osrm_bike: Bisikletle (OSRM)
+        fossgis_osrm_car: Arabayla (OSRM)
         fossgis_osrm_foot: Yürüyerek (OSRM)
         graphhopper_bicycle: Bisikletle (GraphHopper)
         graphhopper_car: Arabayla (GraphHopper)
         graphhopper_foot: Yürüyerek (GraphHopper)
-        fossgis_valhalla_bicycle: Bisiklet (Valhalla)
-        fossgis_valhalla_car: Araba (Valhalla)
+        fossgis_valhalla_bicycle: Bisikletle (Valhalla)
+        fossgis_valhalla_car: Arabayla (Valhalla)
         fossgis_valhalla_foot: Yürüyerek (Valhalla)
       descend: İniş
       directions: İstikametler
index f153a7d96c3f5fb2a0797ce613660bafadf1d8ec..074631aa5ae09d45d3a6897fa6c0d7a484f895f2 100644 (file)
@@ -215,7 +215,6 @@ tt:
   auth:
     providers:
       none: Юк
-      openid: OpenID
       google: Google
       facebook: Facebook
       github: GitHub
@@ -348,14 +347,10 @@ tt:
       way_paginated: Сызыклар (%{count} сызыктан %{x}-%{y})
       relation: Мөнәсәбәтләр (%{count})
       relation_paginated: Мөнәсәбәтләр (%{count} мөнәсәбәттән %{x}-%{y})
-      comment: Шәрехләр (%{count})
       hidden_comment_by_html: '%{user} исемле кулланучыдан яшерен шәрех %{time_ago}'
       comment_by_html: '%{user} исемле кулланучыдан шәрех %{time_ago}'
       changesetxml: Үзгәртүләр өеменең XMLы
       osmchangexml: osmChange XML
-      feed:
-        title: '%{id} үзгәртүләр өеме'
-        title_comment: '%{id} үзгәртүләр өеме  -  %{comment}'
       join_discussion: Бәхәстә катнашу өчен хисапъязмагызга керегез
       discussion: Фикер алышу
       still_open: Үзгәртүләр өеме әлегә ачык. Ул ябылгач бәхәскә шунда ук керергә
@@ -429,7 +424,12 @@ tt:
     index:
       title: Үзгәрешләр пакетлары
       load_more: Күбрәк төяү
+      feed:
+        title: '%{id} үзгәртүләр өеме'
+        title_comment: '%{id} үзгәртүләр өеме  -  %{comment}'
   dashboards:
+    contact:
+      latest_edit_html: 'Соңгы төзәтмә (%{ago}):'
     popup:
       friend: Дус
     show:
@@ -830,6 +830,7 @@ tt:
         other: '%{count} яңа хәбәрегез'
       old_messages:
         other: '%{count} иске хәбәрегез'
+    messages_table:
       from: 'Кемнән:'
       subject: Тема
       date: Вакыт
@@ -838,7 +839,7 @@ tt:
     new:
       title: Хәбәр җибәрү
   passwords:
-    lost_password:
+    new:
       email address: 'Электрон почта адресы:'
   profiles:
     edit:
@@ -860,17 +861,6 @@ tt:
       too_large:
         planet:
           title: OSM планетасы
-      options: Көйләнмәләр
-      format: Формат
-      scale: Масштаб
-      max: макс.
-      image_size: Сурәт зурлыгы
-      zoom: Якынайтырга
-      add_marker: Харитада маркер куярга
-      latitude: 'Киңлек:'
-      longitude: 'Озынлык:'
-      output: Нәтиҗә
-      paste_html: Сайт эченә салу өчен HTML-код
       export_button: Чыгару
     sidebar:
       search_results: Эзләү нәтиҗәләре
@@ -890,34 +880,24 @@ tt:
           cycleway: Әйләнаяк юлы
           rail: Тимер юл
           subway: Метро
-          tram:
-          - Җиңел рельслы т/ю транспорты
-          - трамвай
-          cable:
-          - Канат юлы
-          apron:
-            1: терминал
+          cable_car: Канат юлы
           admin: Административ чик
           forest: Урман
           wood: Агачлык
           park: Парк
           resident: Торак районы
-          common:
-            1: болын
           industrial: Сәнәгый район
           heathland: Буш җир
-          lake:
-          - Күл
-          - сусаклагыч
+          lake: Күл
+          reservoir: сусаклагыч
           farm: Ферма
           cemetery: Зират
           pitch: Спорт мәйданчыгы
           centre: Спорт үзәге
           reserve: Тыюлык
           military: Хәрби зона
-          school:
-          - Мәктәп
-          - университет
+          school: Мәктәп
+          university: университет
           station: Тимер юл станциясе
           toilets: Бәдрәф
   traces:
@@ -941,7 +921,6 @@ tt:
       send message: Хәбәр җибәрү
       diary: Көндәлек
       edits: Төзәтмәләр
-      latest edit: 'Соңгы төзәтмә (%{ago}):'
       email address: 'Электрон почта адресы:'
       status: 'Халәт:'
       confirm: Раслау
index 992ff3dee97e8011ac23d7f3675bfb0a32284be7..4fe97ebead8af9db9147aa284bfbf89da228bd0c 100644 (file)
@@ -44,6 +44,7 @@
 # Author: Vlad5250
 # Author: Ypryima
 # Author: Yurkoy
+# Author: Ǝlʞıɯ
 # Author: Ата
 # Author: Драгун
 # Author: Пан Хаунд
@@ -86,6 +87,9 @@ uk:
       messages:
         invalid_email_address: не схоже на коректну адресу електронної пошти
         email_address_not_routable: недоступний
+      models:
+        user_mute:
+          is_already_muted: вже стишено
     models:
       acl: Список контролю доступу
       changeset: Набір змін
@@ -281,7 +285,6 @@ uk:
   auth:
     providers:
       none: Немає
-      openid: OpenID
       google: Google
       facebook: Facebook
       microsoft: Microsoft
@@ -337,6 +340,8 @@ uk:
         retain_changeset_discussions: Обговорення наборів змін, якщо такі є, будуть
           збережені.
         retain_email: Адреса вашої електронної пошти буде збережена.
+        recent_editing_html: Оскільки ви нещодавно вносили зміни, ваш обліковий запис
+          наразі не можна видалити. Видалення буде можливе через %{time}.
         confirm_delete: Ви впевнені?
         cancel: Скасувати
   accounts:
@@ -423,14 +428,10 @@ uk:
       way_paginated: Лінії (%{x}-%{y} із %{count})
       relation: Зв’язки (%{count})
       relation_paginated: Зв’язки (%{x}-%{y} із %{count})
-      comment: Коментарі (%{count})
       hidden_comment_by_html: Прихований коментар від %{user} %{time_ago}
       comment_by_html: Коментар від %{user} %{time_ago}
       changesetxml: XML опис набору змін
       osmchangexml: osmChange XML
-      feed:
-        title: Набір змін %{id}
-        title_comment: Набір змін %{id} — %{comment}
       join_discussion: Увійдіть в систему, щоб приєднатися до обговорення
       discussion: Обговорення
       still_open: Набір змін досі відкритий — обговорення буде відкрито, як тільки
@@ -546,6 +547,9 @@ uk:
       no_more_area: Наборів змін на цій ділянці більше немає.
       no_more_user: Наборів змін від цього мапера більше немає.
       load_more: Завантажити ще
+      feed:
+        title: Набір змін %{id}
+        title_comment: Набір змін %{id} — %{comment}
     timeout:
       sorry: На жаль, перелік наборів змін, який ви запросили, потребує забагато часу
         для завантаження.
@@ -565,6 +569,7 @@ uk:
     contact:
       km away: '%{count} км від вас'
       m away: '%{count} м від вас'
+      latest_edit_html: 'Останнє редагування (%{ago}):'
     popup:
       your location: Ваше місце розташування
       nearby mapper: Мапери поруч з вами
@@ -1017,7 +1022,7 @@ uk:
           track: Путівець
           traffic_mirror: Дорожнє дзеркало
           traffic_signals: Світлофор
-          trailhead: Ð¢Ñ\80ейлÑ\85ед
+          trailhead: Ð\9fоÑ\87аÑ\82ок Ð¼Ð°Ñ\80Ñ\88Ñ\80Ñ\83Ñ\82Ñ\83
           trunk: Шосе
           trunk_link: З’їзд з/на шосе
           turning_circle: Місце для розвороту
@@ -1051,7 +1056,7 @@ uk:
           railway: Історична залізниця
           roman_road: Римська дорога
           ruins: Руїни
-          rune_stone: Рунний камінь
+          rune_stone: Рунічний камінь
           stone: Камінь
           tomb: Гробниця
           tower: Вежа
@@ -1424,7 +1429,7 @@ uk:
           photo: Фотомагазин
           seafood: Морепродукти
           second_hand: Комісійний магазин
-          sewing: Ð¨Ð²ÐµÐ¹Ð½Ð¸Ð¹ Ñ\86еÑ\85
+          sewing: Ð¨Ð²ÐµÐ¹Ð½Ðµ Ð¿Ñ\80иладдÑ\8f
           shoes: Взуття
           sports: Спортивні товари
           stationery: Канцтовари
@@ -1546,9 +1551,9 @@ uk:
         many: '%{count} скарг'
         other: ""
       no_reports: Скарг немає
-      report_created_at: Вперше повідомлено %{datetime}
-      last_resolved_at: В останнє розв'язано %{datetime}
-      last_updated_at: В останнє оновлено %{datetime}, %{displayname}
+      report_created_at_html: Вперше повідомлено %{datetime}
+      last_resolved_at_html: Востаннє розв'язано %{datetime}
+      last_updated_at_html: В останнє оновлено %{datetime}, %{displayname}
       resolve: Розв'язати
       ignore: Ігнорувати
       reopen: Повторно відкрити
@@ -1576,7 +1581,7 @@ uk:
   issue_comments:
     create:
       comment_created: Коментар створено
-      issue_reassigned: Ваш коментар створено, а питання перепризначено
+      issue_reassigned: Ваш коментар створено та перепризначено звернення
   reports:
     new:
       title_html: Скарга %{link}
@@ -1829,8 +1834,6 @@ uk:
   messages:
     inbox:
       title: Вхідні
-      my_inbox: Вхідні
-      my_outbox: Вихідні
       messages: У вас %{new_messages} і %{old_messages}
       new_messages:
         one: '%{count} нове повідомлення'
@@ -1842,17 +1845,21 @@ uk:
         few: '%{count} старих повідомлення'
         many: '%{count} старих повідомлень'
         other: ""
-      from: Від
-      subject: Тема
-      date: Дата
       no_messages_yet_html: У вас ще немає повідомлень. Чому б не поспілкуватись з
         кимось із %{people_mapping_nearby_link}?
       people_mapping_nearby: мапери поблизу вас
+    messages_table:
+      from: Від
+      to: Кому
+      subject: Тема
+      date: Дата
+      actions: Дії
     message_summary:
       unread_button: Позначити як непрочитане
       read_button: Позначити як прочитане
       reply_button: Відповісти
       destroy_button: Вилучити
+      unmute_button: Перемістити до "Вхідних".
     new:
       title: Надіслати повідомлення
       send_message_to_html: Надіслати нове повідомлення до %{name}
@@ -1867,19 +1874,22 @@ uk:
       body: Вибачте, але повідомлення з цим ідентифікатором не існує.
     outbox:
       title: Вихідні
-      my_inbox: Вхідні
-      my_outbox: Вихідні
+      actions: Дії
       messages:
         one: У вас %{count} надіслане повідомлення
         few: У вас %{count} надісланих повідомлення
         many: У вас %{count} надісланих повідомлень
         other: ""
-      to: Кому
-      subject: Тема
-      date: Дата
       no_sent_messages_html: У вас немає надісланих повідомлень. Чому б не поспілкуватись
         з кимось із %{people_mapping_nearby_link}?
       people_mapping_nearby: маперів поблизу вас
+    muted:
+      title: Стишені повідомлення
+      messages:
+        one: Ви маєте %{count} стишене повідомлення
+        few: Ви маєте %{count} стишені повідомлення
+        many: Ви маєте %{count} стишених повідомлень
+        other: ""
     reply:
       wrong_user: Ви увійшли як „%{user}“, але повідомлення, на яке ви хочете відповісти,
         було надіслане не вам. Будь ласка, увійдіть до відповідного облікового запису,
@@ -1895,28 +1905,38 @@ uk:
         облікового запису, щоб прочитати його.
     sent_message_summary:
       destroy_button: Вилучити
+    heading:
+      my_inbox: Вхідні
+      my_outbox: Вихідні
+      muted_messages: Стишені повідомлення
     mark:
       as_read: Повідомлення позначене як прочитане
       as_unread: Повідомлення позначене як непрочитане
+    unmute:
+      notice: Повідомлення переміщено до "Вхідних".
+      error: Не вдалося перемістити повідомлення до "Вхідних".
     destroy:
       destroyed: Повідомлення вилучено
   passwords:
-    lost_password:
+    new:
       title: Відновлення пароля
       heading: Забули пароль?
       email address: 'Адреса ел. пошти:'
       new password button: Вишліть мені новий пароль
       help_text: Введіть адресу вашої електронної пошти, яку ви використовували для
         реєстрації, і ми надішлемо інструкції, як можна відновити ваш пароль.
+    create:
       notice email on way: Шкода, що ви втратили пароль :-( але нічого, скоро прийде
         лист і ви зможете перевстановити свій пароль.
       notice email cannot find: На жаль, така адреса не зареєстрована.
-    reset_password:
+    edit:
       title: Скидання пароля
       heading: Скидання пароля для %{user}
       reset: Скидання пароля
-      flash changed: Ваш пароль було змінено.
       flash token bad: Неможливо знайти такий код підтвердження, перевірте посилання.
+    update:
+      flash changed: Ваш пароль було змінено.
+      flash token bad: Неможливо знайти такий токен, перевірте посилання.
   preferences:
     show:
       title: Вподобання
@@ -1963,7 +1983,6 @@ uk:
       heading: Ласкаво просимо
       email or username: 'Ел. пошта або прізвисько:'
       password: 'Пароль:'
-      openid_html: '%{logo} OpenID:'
       remember: Запам’ятати мене
       lost password link: Забули пароль?
       login_button: Увійти
@@ -2021,6 +2040,7 @@ uk:
       image: Зображення
       alt: Alt текст
       url: URL
+      codeblock: Блок коду
     richtext_field:
       edit: Редагувати
       preview: Попередній перегляд
@@ -2158,6 +2178,11 @@ uk:
           природних ресурсів Канади), та StatCan (Відділ Географії, Статистичне відомство
           Канади).'
         contributors_ca_canada: Канада
+        contributors_cz_credit_html: '%{czechia}: Містить дані з Державної адміністрації
+          землеустрою та геодезії, що розповсюджуються на умовах %{cc_licence_link}'
+        contributors_cz_czechia: Чехія
+        contributors_cz_cc_licence: Creative Commons Attribution 4.0 International
+          licence (CC BY 4.0)
         contributors_fi_credit_html: |-
           %{finland}: Містить дані з топографічної бази даних
           Національної служби землеустрою Фінляндії
@@ -2247,12 +2272,7 @@ uk:
         функції.
     export:
       title: Експорт
-      area_to_export: Ділянка для експорту
       manually_select: Виділіть іншу ділянку
-      format_to_export: Формат експорту
-      osm_xml_data: Дані OpenStreetMap XML
-      map_image: Зображення мапи (показує стандартний шар)
-      embeddable_html: Вбудований HTML
       licence: Ліцензія
       licence_details_html: Дані OpenStreetMap ліцензуються на умовах Ліцензії %{odbl_link}
         (ODbL).
@@ -2276,17 +2296,6 @@ uk:
         other:
           title: Інші джерела
           description: Додаткові джерела перераховані у вікі OpenStreetMap
-      options: Опції
-      format: 'Формат:'
-      scale: Масштаб
-      max: макс.
-      image_size: 'Розмір зображення:'
-      zoom: Збільшити
-      add_marker: Додати маркер на мапу
-      latitude: 'Шир.:'
-      longitude: 'Довг.:'
-      output: Результат
-      paste_html: HTML-код для вбудовування до сайту
       export_button: Експортувати
     fixthemap:
       title: Повідомити про проблему / Виправити мапу
@@ -2322,17 +2331,13 @@ uk:
         url: http://wiki.openstreetmap.org/wiki/Uk:Beginners%27_guide
         title: Посібник новачка
         description: Посібник для новачків від спільноти.
-      help:
-        title: Попросити про допомогу
-        description: Поставте запитання або знайдіть відповіді на сайті питань-відповідей
-          OpenStreetMap.
+      community:
+        title: Форум спільноти
+        description: Місце де можна поспілкуватись про OpenStreetMap.
       mailing_lists:
         title: Списки розсилки
         description: Поставте запитання або обговоріть цікаві речі у широкому виборі
           тематичних або регіональних списків розсилки.
-      community:
-        title: Форум спільноти
-        description: Місце де можна поспілкуватись про OpenStreetMap.
       irc:
         title: IRC
         description: Інтерактивний чат багатьма мовами на різні теми.
@@ -2385,44 +2390,56 @@ uk:
           primary: Головна дорога
           secondary: Другорядна дорога
           unclassified: Дорога без класифікації
+          pedestrian: Пішохідна доріжка
           track: Путівець
           bridleway: Дорога для їзди кіньми
           cycleway: Велодоріжка
           cycleway_national: Національні велошляхи
           cycleway_regional: Регіональні велошляхи
           cycleway_local: Місцеві велошляхи
+          cycleway_mtb: Маршрут для гірських велосипедів
           footway: Пішохідна доріжка
           rail: Залізниця
+          train: Поїзд
           subway: Лінія метро
-          tram:
-          - Швидкісний трамвай
-          - трамвай
-          cable:
-          - Канатна дорога
-          - крісельний підйомник
-          runway:
-          - Злітно-посадкова смуга аеропорту
-          - руліжна доріжка
-          apron:
-          - Перон аеропорту
-          - термінал
+          ferry: Паром
+          light_rail: Швидкісний трамвай
+          tram: Трамвай
+          trolleybus: Тролейбус
+          bus: Автобус
+          cable_car: Канатна дорога
+          chair_lift: Крісельний підйомник
+          runway: Злітно-посадкова смуга аеропорту
+          taxiway: Руліжна доріжка
+          apron: Перон аеропорту
           admin: Адміністративна межа
+          capital: Столиця
+          city: Місто
+          orchard: Сад
+          vineyard: Виноградник
           forest: Ліс
           wood: Дерева
+          farmland: Поле
+          grass: Трава
+          meadow: Левада
+          bare_rock: Голі скелі
+          sand: Пісок
           golf: Поле для гольфу
           park: Парк
+          common: Суспільні землі
+          built_up: Забудована територія
           resident: Жила зона
-          common:
-          - Суспільні землі
-          - левада
-          - сад
           retail: Торговельний район
           industrial: Промисловий район
           commercial: Бізнесова зона
           heathland: Пустище
-          lake:
-          - Озеро
-          - водосховище
+          scrubland: Чагарник
+          lake: Озеро
+          reservoir: Водосховище
+          intermittent_water: Водойма, що пересихає
+          glacier: Льодовик
+          reef: Риф
+          wetland: Заболочені землі
           farm: Ферма
           brownfield: Покинута зона
           cemetery: Кладовище
@@ -2431,19 +2448,20 @@ uk:
           centre: Спортивний центр
           reserve: Заповідник
           military: Військова зона
-          school:
-          - Школа
-          - університет
+          school: Школа
+          university: Університет
+          hospital: Лікарня
           building: Значна споруда
           station: Залізнична станція
-          summit:
-          - Вершина
-          - пік
+          summit: Вершина
+          peak: Пік
           tunnel: Тунель (пунктиром)
           bridge: Міст (жирна лінія)
           private: Приватний доступ
           destination: Цільовий доступ
           construction: Будівництво дороги
+          bus_stop: Автобусна зупинка
+          stop: Зупинка
           bicycle_shop: Веломагазин
           bicycle_parking: Велопарковка
           toilets: Туалети
@@ -2488,6 +2506,7 @@ uk:
         imports: імпортів
         automated_edits: автоматизованих змін
       start_mapping: Розпочати мапити
+      continue_authorization: Продовжити авторизацію
       add_a_note:
         title: Немаєте часу, щоб виправити мапу? Додайте нотатку!
         para_1: Якщо потрібно внести дрібне уточнення, заради якого немає потреби
@@ -2658,6 +2677,7 @@ uk:
       oauth1_settings: налаштування OAuth 1
       oauth2_applications: застосунки OAuth 2
       oauth2_authorizations: авторизації OAuth 2
+      muted_users: Стишені учасники
   oauth:
     authorize:
       title: Авторизувати доступ до облікового запису
@@ -2696,6 +2716,7 @@ uk:
       read_gpx: Отримувати приватні GPS-треки
       write_gpx: Завантажувати GPS-треки
       write_notes: Змінювати нотатки
+      write_redactions: Виконувати очищення даних
       read_email: Отримувати адресу е-пошти
       skip_authorization: Автоматичне схвалення заявки
   oauth_clients:
@@ -2872,6 +2893,8 @@ uk:
       my_dashboard: Інфо панель
       blocks on me: Мої блокування
       blocks by me: Заблоковано мною
+      create_mute: Стишити цього учасника
+      destroy_mute: Зняти стишення з цього учасника
       edit_profile: Редагувати профіль
       send message: Надіслати повідомлення
       diary: Щоденник
@@ -2880,12 +2903,11 @@ uk:
       notes: Нотатки
       remove as friend: Вилучити зі списку друзів
       add as friend: Додати до списку друзів
-      mapper since: 'Ð\97аÑ\80еÑ\94Ñ\81Ñ\82Ñ\80ований:'
+      mapper since: 'Ð\9eблÑ\96ковий Ð·Ð°Ð¿Ð¸Ñ\81 Ñ\81Ñ\82воÑ\80ено:'
       uid: 'id учасника:'
       ct status: 'Умови співпраці:'
       ct undecided: Не визначились
       ct declined: Відхилили
-      latest edit: 'Останнє редагування (%{ago}):'
       email address: 'Адреса електронної пошти:'
       created from: 'Створено з:'
       status: 'Статус:'
@@ -2893,12 +2915,15 @@ uk:
       role:
         administrator: Цей учасник є адміністратором
         moderator: Цей учасник є модератором
+        importer: Цей користувач виконує імпорт
         grant:
           administrator: Надати права адміністратора
           moderator: Надати права модератора
+          importer: Надати дозвіл на імпорт
         revoke:
           administrator: Відкликати права адміністратора
           moderator: Відкликати права модератора
+          importer: Відкликати доступ на імпорт
       block_history: Активні блокування
       moderator_history: Створені блокування
       comments: Коментарі
@@ -2921,8 +2946,8 @@ uk:
       showing:
         one: Сторінка %{page} (%{first_item} з %{items})
         other: Сторінка %{page} (%{first_item}-%{last_item} з %{items})
-      summary_html: '%{name} Ð·Ð°Ñ\80еÑ\94Ñ\81Ñ\82Ñ\80ований Ð· %{ip_address},  %{date}'
-      summary_no_ip_html: '%{name} Ð·Ð°Ñ\80еÑ\94Ñ\81Ñ\82Ñ\80ований %{date}'
+      summary_html: '%{name} Ð·Ð°Ñ\80еÑ\94Ñ\81Ñ\82Ñ\80овано Ð· %{ip_address}, %{date}'
+      summary_no_ip_html: '%{name} Ð·Ð°Ñ\80еÑ\94Ñ\81Ñ\82Ñ\80овано %{date}'
       confirm: Підтвердити вибір учасників
       hide: Сховати вибраних учасників
       empty: Не знайдено учасників відповідно до критеріїв пошуку
@@ -3006,8 +3031,8 @@ uk:
     revoke:
       title: Зняти блокування з %{block_on}
       heading_html: Зняття блокування з %{block_on}, яке наклав %{block_by}
-      time_future: Це блокування закінчиться в %{time}.
-      past: Це блокування закінчилося %{time} тому і вже не може бути скасовано.
+      time_future_html: Це блокування закінчиться в %{time}.
+      past_html: Це блокування закінчилося %{time} тому і вже не може бути скасовано.
       confirm: Ви впевнені, що бажаєте зняти це блокування?
       revoke: Зняти блокування!
       flash: Це блокування було знято.
@@ -3079,6 +3104,32 @@ uk:
       showing_page: Сторінка %{page}
       next: Наступна →
       previous: ← Попередня
+  user_mutes:
+    index:
+      title: Стишені учасники
+      my_muted_users: Стишені учасники
+      you_have_muted_n_users:
+        one: У вас %{count} стишений учасник
+        few: У вас %{count} стишених учасників
+        many: У вас %{count} стишених учасників
+        other: ""
+      user_mute_explainer: Повідомлення стишених учасників було перемішено в окрему
+        теку. Ви не будете отримувати сповіщення про них на пошту.
+      user_mute_admins_and_moderators: Ви можете стишити Адміністраторів та Модераторів,
+        але повідомлення від них не будуть стишеними.
+      table:
+        thead:
+          muted_user: Стишені учасники
+          actions: Дії
+        tbody:
+          unmute: Розблокувати
+          send_message: Надіслати повідомлення
+    create:
+      notice: Ви стишили %{name}.
+      error: '%{name} не може бути стишеним. %{full_message}.'
+    destroy:
+      notice: Ви розблокували %{name}.
+      error: Не вдалося розблокувати учасника. Будь ласка, спробуйте ще раз.
   notes:
     index:
       title: Нотатки створені чи прокоментовані %{user}
@@ -3115,6 +3166,7 @@ uk:
       reactivate: Поновити
       comment_and_resolve: Прокоментувати та Опрацювати
       comment: Коментар
+      log_in_to_comment: Увійдіть, щоб прокоментувати цю нотатку
       report_link_html: Якщо ця нотатка містить конфіденційну інформацію, яку потрібно
         видалити, ви можете %{link}.
       other_problems_resolve: Всі інші проблеми з нотаткою вирішуйте самостійно в
@@ -3182,7 +3234,6 @@ uk:
         transport_map: Мапа Транспорту
         tracestracktop_topo: Tracestrack Топо
         hot: Humanitarian‎
-        opnvkarte: ÖPNVKarte
       layers:
         header: Шари мапи
         notes: Нотатки
@@ -3197,8 +3248,6 @@ uk:
       osm_france: OpenStreetMap France
       thunderforest_credit: Тайли %{thunderforest_link}
       andy_allan: Енді Аллан
-      opnvkarte_credit: Тайли %{memomaps_link}
-      memomaps: MeMoMaps
       tracestrack_credit: Тайли надаються %{tracestrack_link}
       hotosm_credit: Тайли %{hotosm_link} з %{osm_france_link}
       hotosm_name: Humanitarian OpenStreetMap Team
@@ -3211,6 +3260,7 @@ uk:
       map_data_zoom_in_tooltip: Збільшить, щоб побачити дані мапи
       queryfeature_tooltip: Отримати об’єкти
       queryfeature_disabled_tooltip: Наблизитись для отримання об’єктів
+      embed_html_disabled: Вбудовування HTML недоступне для цього шару мапи
     changesets:
       show:
         comment: Коментар
index 4144a3f018e3d549fd23e32a19de58fc521d5400..82df5b4fec5f3876da164810f57e668a53daac67 100644 (file)
@@ -4,6 +4,7 @@
 # Author: A Retired User
 # Author: Anewplayer
 # Author: Dinhxuanduyet
+# Author: Doraemonluonbentoi
 # Author: Flyplanevn27
 # Author: Ioe2015
 # Author: JohnsonLee01
@@ -218,7 +219,6 @@ vi:
   auth:
     providers:
       none: Không có
-      openid: OpenID
       google: Google
       facebook: Facebook
       github: GitHub
@@ -342,14 +342,10 @@ vi:
       way_paginated: Các lối (%{x}–%{y} trên %{count})
       relation: Các quan hệ (%{count})
       relation_paginated: Các quan hệ (%{x}–%{y} trên %{count})
-      comment: Bình luận (%{count})
       hidden_comment_by_html: Nhận xét ẩn của %{user} từ %{time_ago}
       comment_by_html: Nhận xét của %{user} từ %{time_ago}
       changesetxml: Bộ thay đổi XML
       osmchangexml: osmChange XML
-      feed:
-        title: Bộ thay đổi %{id}
-        title_comment: Bộ thay đổi %{id} – %{comment}
       join_discussion: Đăng nhập để tham gia thảo luận
       discussion: Thảo luận
       still_open: Bộ thay đổi đang mở – có thể thảo luận sau khi bộ thay đổi được
@@ -457,6 +453,9 @@ vi:
       no_more_area: Không có thêm bộ thay đổi trong khu vực này.
       no_more_user: Không có thêm bộ thay đổi bởi người dùng này.
       load_more: Tải thêm
+      feed:
+        title: Bộ thay đổi %{id}
+        title_comment: Bộ thay đổi %{id} – %{comment}
     timeout:
       sorry: Rất tiếc, việc lấy danh sách bộ thay đổi tốn quá nhiều thì giờ.
   changeset_comments:
@@ -475,6 +474,7 @@ vi:
     contact:
       km away: cách %{count} km
       m away: cách %{count} m
+      latest_edit_html: 'Sửa đổi gần đây nhất (%{ago}):'
     popup:
       your location: Vị trí của bạn
       nearby mapper: Người vẽ bản đồ ở gần
@@ -531,7 +531,6 @@ vi:
       comment_link: Nhận xét về mục này
       reply_link: Nhắn tin cho tác giả
       comment_count:
-        zero: Chưa có bình luận
         other: '%{count} bình luận'
       edit_link: Sửa đổi mục này
       hide_link: Ẩn mục này
@@ -597,6 +596,10 @@ vi:
       success: '%{name} đã được xóa khỏi danh sách bạn của bạn.'
       not_a_friend: '%{name} đã không phải người bạn.'
   geocoder:
+    search:
+      title:
+        results_from_html: Kết quả từ %{results_link}
+        latlon: Nội bộ
     search_osm_nominatim:
       prefix:
         aerialway:
@@ -1317,12 +1320,10 @@ vi:
     show:
       title: 'Vấn đề %{status} #%{issue_id}'
       reports:
-        zero: Không có báo cáo
-        one: 1 báo cáo
         other: '%{count} báo cáo'
-      report_created_at: Báo cáo lần đầu tiên vào %{datetime}
-      last_resolved_at: Giải quyết lần cuối cùng vào %{datetime}
-      last_updated_at: Cập nhật lần cuối cùng vào %{datetime} bởi %{displayname}
+      report_created_at_html: Báo cáo lần đầu tiên vào %{datetime}
+      last_resolved_at_html: Giải quyết lần cuối cùng vào %{datetime}
+      last_updated_at_html: Cập nhật lần cuối cùng vào %{datetime} bởi %{displayname}
       resolve: Giải quyết
       ignore: Bỏ qua
       reopen: Mở lại
@@ -1600,16 +1601,17 @@ vi:
   messages:
     inbox:
       title: Hộp thư
-      my_inbox: Hộp thư đến
-      my_outbox: Hộp thư gửi
       messages: Bạn có %{new_messages} và %{old_messages}
       new_messages: '%{count} thư mới'
       old_messages: '%{count} thư cũ'
+      no_messages_yet_html: Bạn chưa nhận thư nào. Hãy thử liên lạc với %{people_mapping_nearby_link}?
+      people_mapping_nearby: những người ở gần
+    messages_table:
       from: Từ
+      to: Tới
       subject: Tiêu đề
       date: Ngày
-      no_messages_yet_html: Bạn chưa nhận thư nào. Hãy thử liên lạc với %{people_mapping_nearby_link}?
-      people_mapping_nearby: những người ở gần
+      actions: Tác vụ
     message_summary:
       unread_button: Đánh dấu là chưa đọc
       read_button: Đánh dấu là đã đọc
@@ -1629,12 +1631,8 @@ vi:
       body: Rất tiếc, không có thư nào với ID đó.
     outbox:
       title: Hộp thư đã gửi
-      my_inbox: Hộp thư đến
-      my_outbox: Hộp thử gửi
+      actions: Tác vụ
       messages: Bạn có %{count} thư đã gửi
-      to: Tới
-      subject: Tiêu đề
-      date: Ngày
       no_sent_messages_html: Bạn chưa gửi thư cho người nào. Hãy thử liên lạc với
         %{people_mapping_nearby_link}?
       people_mapping_nearby: những người ở gần
@@ -1653,28 +1651,33 @@ vi:
         xác để đọc nó.
     sent_message_summary:
       destroy_button: Xóa
+    heading:
+      my_inbox: Hộp thư đến
+      my_outbox: Hộp thư gửi
     mark:
       as_read: Thư đã đọc
       as_unread: Thư chưa đọc
     destroy:
       destroyed: Đã xóa thư
   passwords:
-    lost_password:
+    new:
       title: Quên mất mật khẩu
       heading: Quên mất Mật khẩu?
-      email address: 'Địa chỉ Thư điện tử:'
+      email address: Địa chỉ Thư điện tử
       new password button: Đặt lại mật khẩu
       help_text: Nhập địa chỉ thư điện tử mà bạn đã dùng để mở tài khoản, rồi chúng
         tôi sẽ gửi liên kết cho địa chỉ đó để cho bạn đặt lại mật khẩu.
+    create:
       notice email on way: Đáng tiếc là bạn quên nó. :-( May là thư điện tử sắp tới
         để bạn đặt nó lại.
       notice email cannot find: Rất tiếc, không tìm thấy địa chỉ thư điện tử.
-    reset_password:
+    edit:
       title: Đặt lại mật khẩu
       heading: Đặt lại Mật khẩu của %{user}
       reset: Đặt lại Mật khẩu
-      flash changed: Mật khẩu của bạn đã được thay đổi.
       flash token bad: Không tìm thấy dấu hiệu đó. Có lẽ kiểm tra URL?
+    update:
+      flash changed: Mật khẩu của bạn đã được thay đổi.
   preferences:
     show:
       title: Tùy chỉnh
@@ -1710,6 +1713,9 @@ vi:
       no home location: Bạn chưa định vị trí nhà.
       update home location on click: Cập nhật vị trí nhà khi tôi nhấn chuột vào bản
         đồ?
+      show: Hiện
+      delete: Xóa
+      undelete: Phục hồi
     update:
       success: Đã cập nhật hồ sơ.
       failure: Không thể cập nhật hồ sơ.
@@ -1717,9 +1723,8 @@ vi:
     new:
       title: Đăng nhập
       heading: Đăng nhập
-      email or username: 'Địa chỉ Thư điện tử hoặc Tên người dùng:'
-      password: 'Mật khẩu:'
-      openid_html: '%{logo} OpenID:'
+      email or username: Địa chỉ Thư điện tử hoặc Tên người dùng
+      password: Mật khẩu
       remember: Nhớ tôi
       lost password link: Quên mất Mật khẩu?
       login_button: Đăng nhập
@@ -1764,6 +1769,7 @@ vi:
       support: nhóm hỗ trợ
   shared:
     markdown_help:
+      heading_html: Được phân tích dưới dạng %{kramdown_link}
       headings: Đề mục
       heading: Đề mục
       subheading: Đề mục con
@@ -1776,6 +1782,7 @@ vi:
       image: Hình ảnh
       alt: Văn bản thay thế
       url: URL
+      codeblock: Đoạn mã
     richtext_field:
       edit: Sửa đổi
       preview: Xem trước
@@ -1810,8 +1817,19 @@ vi:
       open_data_open_data: dữ liệu mở
       open_data_copyright_license: trang Bản quyền và Giấy phép
       legal_title: Pháp luật
+      legal_1_1_html: |-
+        Trang này và nhiều dịch vụ có liên quan do
+        %{openstreetmap_foundation_link} (OSMF) hoạt động thay mặt cho cộng đồng. Việc sử dụng tất cả các dịch vụ do OSMF hoạt động phải tuân theo %{terms_of_use_link}, %{aup_link}, và %{privacy_policy_link} của chúng tôi.
+      legal_1_1_openstreetmap_foundation: Quỹ OpenStreetMap
       legal_1_1_terms_of_use: Điều khoản Sử dụng
+      legal_1_1_aup: Quy định Sử dụng Đàng hoàng
+      legal_1_1_privacy_policy: Quy định về Quyền riêng tư
+      legal_2_1_html: |-
+        Xin vui lòng %{contact_the_osmf_link}
+        nếu có thắc mắc về giấy phép, bản quyền, hoặc vấn đề pháp lý khác.
       legal_2_1_contact_the_osmf: liên lạc với Quỹ OSM
+      legal_2_2_html: OpenStreetMap, biểu trưng kính lúp, và State of the Map là %{registered_trademarks_link}.
+      legal_2_2_registered_trademarks: nhãn hiệu đăng ký của OSMF
       partners_title: Nhà bảo trợ
     copyright:
       foreign:
@@ -1827,42 +1845,104 @@ vi:
         mapping_link: bắt đầu vẽ bản đồ
       legal_babble:
         title_html: Bản quyền và Giấy phép
+        introduction_1_html: |-
+          OpenStreetMap%{registered_trademark_link} là %{open_data} được %{osm_foundation_link} (OSMF) phát hành theo
+          %{odc_odbl_link} (ODbL).
         introduction_1_open_data: dữ liệu mở
+        introduction_1_odc_odbl: Giấy phép Cơ sở dữ liệu Mở của Open Data Commons
         introduction_1_osm_foundation: Quỹ OpenStreetMap
+        introduction_2_html: Bạn được tự do sao chép, phân phối, truyền, và tạo ra
+          các tác phẩm phái sinh từ các dữ liệu của chúng ta, miễn là bạn ghi công
+          OpenStreetMap và những người đóng góp vào nó. Nếu bạn sửa đổi hoặc tạo sản
+          phẩm dựa trên các dữ liệu của chúng tôi, bạn chỉ được phép phân phối kết
+          quả theo cùng giấy phép. %{legal_code_link} đầy đủ giải thích các quyền
+          và trách nhiệm của bạn.
+        introduction_2_legal_code: Mã pháp lý
+        introduction_3_html: Tài liệu của chúng tôi được phát hành theo giấy phép
+          %{creative_commons_link} (CC BY-SA 2.0).
         introduction_3_creative_commons: Creative Commons Ghi công–Chia sẻ tương tự
           2.0
         credit_title_html: Cách ghi công OpenStreetMap
         credit_1_html: 'Khi nào bạn sử dụng dữ liệu OpenStreetMap, bạn cần phải tuân
           tho hai quy tắc sau:'
-        credit_4_1_this_copyright_page: trang bản quyền
+        credit_2_1: Ghi công OpenStreetMap bằng cách hiển thị lời thông báo bản quyền
+          của chúng tôi.
+        credit_2_2: Làm rõ rằng dữ liệu được phát hành theo Giấy phép Cơ sở dữ liệu
+          Mở.
+        credit_3_html: "Việc hiển thị lời thông báo bản quyền có yêu cầu tùy theo
+          cách sử dụng dữ liệu của chúng tôi, ví dụ tùy bạn tạo ra bản đồ tương tác
+          trên mạng, bản đồ in ấn, hoặc hình ảnh tĩnh. Có chi tiết đầy đủ về các quy
+          tắc trong \n%{attribution_guidelines_link}."
+        credit_3_attribution_guidelines: Hướng dẫn ghi công
+        credit_4_1_html: "Để ghi rõ ràng rằng dữ liệu được phát hành theo Giấy phép
+          Cơ sở dữ liệu Mở, bạn có thể đặt liên kết đến \n%{this_copyright_page_link}.\nThay
+          thế, bạn có thể ghi tên giấy phép và đặt liên kết trực tiếp đến văn bản
+          giấy phép; bạn cần phải ghi công theo kiểu này nếu phân phối OSM dưới dạng
+          dữ liệu. Đối với các phương tiện không có khả năng liên kết (chẳng hạn tác
+          phẩm in ấn), gợi ý bạn chỉ dẫn đọc giả tới openstreetmap.org (thí dụ bằng
+          cách thay thế “OpenStreetMap” bằng địa chỉ đầy đủ) và tới opendatacommons.org.\nTrong
+          ví dụ này, lời ghi công xuất hiện ở góc bản đồ."
+        credit_4_1_this_copyright_page: trang bản quyền này
         attribution_example:
           alt: Ví dụ ghi công OpenStreetMap trên một trang Web
           title: Ví dụ ghi công
         more_title_html: Tìm hiểu thêm
+        more_1_1_html: Đọc thêm về cách sử dụng dữ liệu của chúng tôi và cách ghi
+          công chúng tôi tại %{osmf_licence_page_link}.
         more_1_1_osmf_licence_page: trang Giấy phép của Quỹ OSM
+        more_2_1_html: Mặc dù OpenStreetMap là dữ liệu mở, nhưng chúng tôi không thể
+          cung cấp một API bản đồ miễn phí để bên thứ ba sử dụng. Xem %{api_usage_policy_link},
+          %{tile_usage_policy_link}, và %{nominatim_usage_policy_link} của chúng tôi.
+        more_2_1_api_usage_policy: Quy định Sử dụng API
+        more_2_1_tile_usage_policy: Quy định Sử dụng Mảnh bản đồ
+        more_2_1_nominatim_usage_policy: Quy định Sử dụng Nominatim
         contributors_title_html: Những người đóng góp vào đây
         contributors_intro_html: 'Dự án này nhờ công sức đóng góp của hàng ngàn cá
           nhân và cũng bao gồm các dữ liệu có giấy phép mở từ các cơ quan khảo sát
           quốc gia và những nguồn gốc khác, chẳng hạn:'
+        contributors_at_credit_html: |-
+          %{austria}: Chứa dữ liệu từ %{stadt_wien_link} (theo %{cc_by_link}), %{land_vorarlberg_link}
+          và Bang Tirol (theo %{cc_by_at_with_amendments_link}).
         contributors_at_austria: Áo
         contributors_at_stadt_wien: Thành phố Viên
         contributors_at_cc_by: CC BY
         contributors_at_land_vorarlberg: Bang Vorarlberg
         contributors_at_cc_by_at_with_amendments: CC BY AT sửa đổi
+        contributors_au_credit_html: |-
+          %{australia}: Bao gồm hoặc được phát triển dùng các Biên giới Hành chính &copy; %{geoscape_australia_link}
+          được Thịnh vượng chung Úc cấp phép theo %{cc_licence_link}.
         contributors_au_australia: Úc
+        contributors_au_geoscape_australia: Geoscape Úc
         contributors_au_cc_licence: giấy phép Creative Commons Ghi công 4.0 Quốc tế
           (CC BY 4.0)
+        contributors_ca_credit_html: '%{canada}: Bao gồm dữ liệu từ GeoBase®, GeoGratis
+          (© Bộ Tài nguyên Canada), CanVec (© Bộ Tài nguyên Canada), và StatCan (Sở
+          Địa lý, Statistics Canada).'
         contributors_ca_canada: Canada
+        contributors_cz_czechia: Séc
+        contributors_cz_cc_licence: giấy phép Creative Commons Ghi công 4.0 Quốc tế
+          (CC BY 4.0)
         contributors_fi_finland: Phần Lan
+        contributors_fi_nlsfi_license: Giấy phép NLSFI
         contributors_fr_france: Pháp
+        contributors_nl_credit_html: '%{netherlands}: Chứa dữ liệu &copy; AND, 2007
+          (%{and_link})'
         contributors_nl_netherlands: Hà Lan
+        contributors_nz_credit_html: |-
+          %{new_zealand}: Chứa dữ liệu bắt nguồn từ %{linz_data_service_link}
+          và được cấp phép để tái sử dụng theo %{cc_by_link}.
         contributors_nz_new_zealand: New Zealand
+        contributors_nz_linz_data_service: Dịch vụ Dữ liệu LINZ
         contributors_nz_cc_by: CC BY 4.0
+        contributors_rs_serbia: Serbia
         contributors_si_slovenia: Slovenia
         contributors_es_spain: Tây Ban Nha
         contributors_es_cc_by: CC BY 4.0
         contributors_za_south_africa: Nam Phi
+        contributors_gb_credit_html: '%{united_kingdom}: Bao gồm dữ liệu Ordnance
+          Survey © bản quyền bản quyền Hoàng gia và quyền cơ sở dữ liệu 2010–2023.'
         contributors_gb_united_kingdom: Vương quốc Anh
+        contributors_2_contributors_page: Trang Người đóng góp
         contributors_footer_2_html: '  Việc bao gồm dữ liệu trong OpenStreetMap không
           ngụ ý rằng nhà cung cấp dữ liệu đầu tiên ủng hộ OpenStreetMap, biện hộ sự
           chính xác của nó, hoặc nhận trách nhiệm pháp lý nào.'
@@ -1871,6 +1951,10 @@ vi:
           bổ sung dữ liệu từ những nguồn có bản quyền (chẳng hạn Bản đồ Google hoặc
           các bản đồ trên giấy) trước khi các nhà giữ bản quyền cho phép rõ ràng.
         trademarks_title: Nhãn hiệu
+        trademarks_1_1_html: |-
+          OpenStreetMap, biểu trưng kính lúp, và State of the Map là các nhãn hiệu do Quỹ OpenStreetMap đăng ký. Nếu bạn có thắc mắc về việc sử dụng các nhãn hiệu, xin vui lòng xem
+          %{trademark_policy_link} của chúng tôi.
+        trademarks_1_1_trademark_policy: Quy định Nhãn hiệu
     index:
       js_1: Hoặc trình duyệt của bạn không hỗ trợ JavaScript, hoặc bạn đã tắt JavaScript.
       js_2: OpenStreetMap sử dụng JavaScript cho chức năng bản đồ trơn.
@@ -1893,13 +1977,11 @@ vi:
         trong HTML.
     export:
       title: Xuất
-      area_to_export: Vùng để Xuất
       manually_select: Chọn vùng khác thủ công
-      format_to_export: Định dạng Xuất
-      osm_xml_data: Dữ liệu OpenStreetMap XML
-      map_image: Hình Bản đồ (Lớp Chuẩn)
-      embeddable_html: HTML để Nhúng
       licence: Giấy phép
+      licence_details_html: Dữ liệu OpenStreetMap được phát hành theo %{odbl_link}
+        (ODbL).
+      odbl: Giấy phép Cơ sở dữ liệu Mở của Open Data Commons
       too_large:
         advice: 'Nếu việc xuất dữ liệu ở trên bị thất bại, hãy nghĩ đến việc sử dụng
           một trong những nguồn bên dưới:'
@@ -1920,17 +2002,6 @@ vi:
         other:
           title: Nguồn Khác
           description: Những nguồn khác được liệt kê trên wiki OpenStreetMap
-      options: Tùy chọn
-      format: 'Định dạng:'
-      scale: Tỷ lệ
-      max: tối đa
-      image_size: Hình có Kích cỡ
-      zoom: Thu phóng
-      add_marker: Đánh dấu vào bản đồ
-      latitude: 'Vĩ độ:'
-      longitude: 'Kinh độ:'
-      output: Đầu ra
-      paste_html: Dán HTML để nhúng vào trang Web
       export_button: Xuất
     fixthemap:
       title: Báo lỗi / Sửa bản đồ
@@ -1942,6 +2013,11 @@ vi:
             chúng tôi, chẳng hạn thiếu con đường hoặc địa chỉ của bạn, cách xử lý
             tốt nhất là tham gia cộng đồng OpenStreetMap để thêm hoặc sửa dữ liệu
             lấy.
+        add_a_note:
+          instructions_1_html: Chỉ việc bấm %{note_icon} hoặc hình này trên bản đồ.
+            Đinh ghim sẽ được thả trên bản đồ. Kéo ghim vào đúng vị trí, ghi lời miêu
+            tả vấn đề, và bấm “Thêm Ghi chú”. Cộng đồng sẽ cố gắng sửa theo ý của
+            bạn.
       other_concerns:
         title: Vấn đề khác
         copyright: trang bản quyền
@@ -1958,17 +2034,13 @@ vi:
         url: https://wiki.openstreetmap.org/wiki/Vi:Beginners%27_guide
         title: Hướng dẫn Bắt đầu
         description: Hướng dẫn bắt đầu do cộng đồng biên tập.
-      help:
-        title: Diễn đàn Trợ giúp
-        description: Hỏi hang hoặc tìm kiếm các câu trả lời tại trung tâm hỏi đáp
-          của OpenStreetMap.
+      community:
+        title: Diễn đàn trợ giúp & cộng đồng
+        description: Trang nhận trợ giúp và thảo luận chung về OpenStreetMap.
       mailing_lists:
         title: Danh sách thư
         description: Hỏi han hoặc thảo luận về các chuyện quan trọng trên nhiều danh
           sách thư được sắp xếp theo chủ đề hoặc khu vực.
-      community:
-        title: Diễn đàn cộng đồng
-        description: Trang thảo luận chung về OpenStreetMap.
       irc:
         title: IRC
         description: Trò chuyện tương tác trong nhiều ngôn ngữ về nhiều chủ đề.
@@ -1988,8 +2060,15 @@ vi:
       removed: Bạn đã đặt trình vẽ OpenStreetMap mặc định là Potlatch. Vì Adobe Flash
         Player không còn được hỗ trợ, Potlatch không còn hoạt động trong trình duyệt
         Web.
+      desktop_application_html: Bạn vẫn có thể sử dụng Potlatch bằng cách %{download_link}.
+      download: tải về ứng dụng dành cho macOS và Windows
+      id_editor_html: Thay thế, bạn có thể đổi trình vẽ mặc định thành iD, trình vẽ
+        này vẫn còn hoạt động trong trình duyệt Web của bạn giống như Potlatch trước
+        đây. %{change_preferences_link}.
+      change_preferences: Thay đổi tùy chọn của bạn tại đây
     any_questions:
       title: Có thắc mắc?
+      get_help_here: Nhận trợ giúp tại đây
     sidebar:
       search_results: Kết quả Tìm kiếm
       close: Đóng
@@ -2012,66 +2091,76 @@ vi:
           primary: Đường chính
           secondary: Đường lớn
           unclassified: Đường không phân loại
+          pedestrian: Đường dành cho người đi bộ
           track: Đường mòn
           bridleway: Đường cưỡi ngựa
           cycleway: Đường xe đạp
           cycleway_national: Quốc lộ xe đạp
           cycleway_regional: Xa lộ xe đạp
           cycleway_local: Đường xe đạp địa phương
+          cycleway_mtb: Tuyến đường xe đạp leo núi
           footway: Đường đi bộ
           rail: Đường sắt
+          train: Xe lửa
           subway: Đường ngầm
-          tram:
-          - Đường sắt nhẹ
-          - xe điện
-          cable:
-          - Đường xe cáp
-          - ghế cáp treo
-          runway:
-          - Đường băng
-          - đường băng
-          apron:
-          - Sân đậu máy bay
-          - nhà ga hành khách
+          ferry: Phà
+          light_rail: Đường sắt nhẹ
+          tram: Xe điện
+          bus: Xe buýt
+          cable_car: Đường xe cáp
+          chair_lift: Ghế cáp treo
+          runway: Đường băng
+          taxiway: Đường băng
+          apron: Sân đậu máy bay
           admin: Biên giới hành chính
+          capital: Thủ đô
+          city: Thành phố
+          orchard: Vườn cây
+          vineyard: Vườn nho
           forest: Rừng trồng cây
           wood: Rừng
+          farmland: Trại
+          grass: Cỏ
+          meadow: Đồng cỏ
+          sand: Cát
           golf: Sân golf
           park: Công viên
+          common: Đất công
           resident: Khu vực nhà ở
-          common:
-          - Đất công
-          - bãi cỏ
-          - vườn
           retail: Khu vực buôn bán
           industrial: Khu vực công nghiệp
           commercial: Khu vực thương mại
           heathland: Vùng cây bụi
-          lake:
-          - Hồ
-          - hồ chứa nước
+          lake: Hồ
+          reservoir: Hồ chứa nước
+          glacier: Sông băng
+          reef: Rạn san hô
+          wetland: Đầm lầy
           farm: Ruộng
           brownfield: Cánh đồng nâu
           cemetery: Nghĩa địa
           allotments: Khu vườn gia đình
           pitch: Sân cỏ
           centre: Trung tâm thể thao
+          beach: Bãi biển
           reserve: Khu bảo tồn thiên niên
           military: Khu vực quân sự
-          school:
-          - Trường học
-          - đại học
+          school: Trường học
+          university: Đại học
+          hospital: Bệnh viện
           building: Kiến trúc quan trọng
           station: Nhà ga
-          summit:
-          - Đỉnh núi
-          - đồi
+          summit: Đỉnh núi
+          peak: Đỉnh
           tunnel: Đường đứt nét = đường hầm
           bridge: Đường rắn = cầu
           private: Đường riêng
           destination: Chỉ giao thông địa phương
           construction: Đường đang xây
+          bus_stop: Điểm dừng xe buýt
+          stop: Điểm dừng lại
           bicycle_shop: Tiệm xe đạp
+          bicycle_rental: Cho thuê xe đạp
           bicycle_parking: Chỗ đậu xe đạp
           toilets: Vệ sinh
     welcome:
@@ -2082,14 +2171,31 @@ vi:
         góp.
       whats_on_the_map:
         title: Mục đích của Bản đồ
+        on_the_map_html: OpenStreetMap là bản đồ chứa bất cứ những gì %{real_and_current}
+          – nó chứa biết bao tòa nhà, con đường, cửa hàng, cơ sở hạ tầng, cây cối…
+          đủ mọi thứ. Mời bạn bổ sung bất cứ những gì thu hút sự quan tâm của bạn.
+        real_and_current: hiện tại có thật
+        off_the_map_html: Nó %{doesnt} chứa các ý kiến như bài đánh giá, những gì
+          không hoặc không còn tồn tại, hoặc thông tin từ các nguồn giữ bản quyền.
+          Bạn phải xin phép của nhà giữ bản quyền mới được sao chép từ bản đồ giấy
+          hay bản đồ trực tuyến khác.
+        doesnt: không
       basic_terms:
         title: Thuật ngữ Cơ bản
         paragraph_1: 'Đây là những thuật ngữ thường gặp khi sử dụng và đóng góp vào
           OpenStreetMap:'
-        editor: trình vẽ
-        node: nốt
-        way: lối
-        tag: thẻ
+        an_editor_html: '%{editor} là một ứng dụng hoặc trang Web cho phép sửa đổi
+          bản đồ.'
+        a_node_html: '%{node} là một địa điểm trên bản đồ, thí dụ một nhà hàng hoặc
+          một cái cây.'
+        a_way_html: '%{way} là một đường kẻ hoặc vùng, thí dụ con đường, dòng nước,
+          hồ nước, hoặc tòa nhà.'
+        a_tag_html: '%{tag} là một chi tiết về một nốt hoặc lối, thí dụ tên của một
+          nhà hàng hoặc tốc độ tối đa của một con đường.'
+        editor: Trình vẽ
+        node: Nốt
+        way: Lối
+        tag: Thẻ
       rules:
         title: Quy định!
       start_mapping: Bắt đầu Đóng góp
@@ -2097,6 +2203,9 @@ vi:
         title: Không có Thì giờ Sửa đổi? Thêm một Ghi chú!
         para_1: Nếu bạn chỉ muốn sửa một chi tiết nhỏ và không có thì giờ tập sửa
           đổi, bạn có thể thêm một ghi chú dễ dàng.
+        para_2_html: 'Chỉ việc %{map_link} và bấm hình ghi chú: %{note_icon}. Đinh
+          ghim sẽ được thả trên bản đồ. Kéo ghim vào đúng vị trí, ghi lời miêu tả
+          vấn đề, và bấm “Thêm Ghi chú”. Cộng đồng sẽ cố gắng sửa theo ý của bạn.'
         the_map: bản đồ
     communities:
       title: Cộng đồng
@@ -2114,7 +2223,11 @@ vi:
           địa phương:'
       other_groups:
         title: Các Nhóm Khác
-        communities_wiki: trang wiki về cộng đồng
+        other_groups_html: Một nhóm cộng đồng không nhất thiết phải được công nhận
+          là chi nhánh địa phương để ủng hộ dự án OpenStreetMap. Thực ra nhiều nhóm
+          rất thành công tuy chỉ là cuộc họp mặt thoải mái. Ai có thể tổ chức một
+          nhóm cộng đồng bình thường như thế. Để biết thêm chi tiết, xem %{communities_wiki_link}.
+        communities_wiki: trang wiki về nhóm người dùng
   traces:
     visibility:
       private: Bí mật (chỉ hiển thị các điểm vô danh không có thứ tự)
@@ -2263,6 +2376,7 @@ vi:
     permissions:
       missing: Bạn chưa cấp phép cho ứng dụng sử dụng chức năng này
     scopes:
+      openid: Đăng nhập qua OpenStreetMap
       read_prefs: Đọc tùy chọn người dùng
       write_prefs: Thay đổi tùy chọn người dùng
       write_diary: Tạo mục nhật ký, bình luận, và kết bạn
@@ -2372,6 +2486,11 @@ vi:
       support: hỗ trợ
       about:
         header: Tự do sử dụng và sửa đổi
+        paragraph_1: Không giống như với các bản đồ kia, OpenStreetMap được xây dựng
+          hoàn toàn nhờ những người như bạn, và mọi người có thể tự do sửa chữa, cập
+          nhật, tải về, và sử dụng miễn phí.
+        paragraph_2: Hãy mở tài khoản để bắt đầu đóng góp. Chúng tôi sẽ gửi thư điện
+          tử cho bạn để xác nhận tài khoản của bạn.
       display name description: Tên người dùng của bạn được hiển thị công khai. Bạn
         có thể thay đổi tên này về sau trong tùy chọn.
       external auth: 'Xác minh qua Dịch vụ Bên thứ ba:'
@@ -2380,6 +2499,11 @@ vi:
         khẩu, nhưng một số công cụ hoặc máy chủ khác có thể vẫn yêu cầu mật khẩu.
       continue: Mở tài khoản
       terms accepted: Cám ơn bạn đã chấp nhận các điều khoản đóng góp mới!
+      email_confirmation_help_html: Địa chỉ thư điện tử không được hiển thị công khai,
+        xem thêm thông tin trong %{privacy_policy_link} của chúng tôi.
+      privacy_policy: quy định về quyền riêng tư
+      privacy_policy_title: Quy định về quyền riêng tư của OSMF, bao gồm phần về địa
+        chỉ thư điện tử
     terms:
       title: Điều khoản
       heading: Điều khoản
@@ -2397,6 +2521,9 @@ vi:
         thuộc về phạm vi công cộng
       consider_pd_why: đây là gì?
       consider_pd_why_url: https://wiki.osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why_would_I_want_my_contributions_to_be_public_domain?uselang=vi
+      guidance_info_html: 'Thông tin giúp hiểu các thuật ngữ này: a %{readable_summary_link}
+        và một số %{informal_translations_link}'
+      readable_summary: bản tóm tắt dễ đọc
       informal_translations: bản dịch không chính thức
       continue: Tiếp tục
       declined: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined?uselang=vi
@@ -2441,10 +2568,10 @@ vi:
       remove as friend: Hủy Kết Bạn
       add as friend: Kết Bạn
       mapper since: 'Tham gia:'
+      uid: 'Số người dùng:'
       ct status: 'Điều khoản đóng góp:'
       ct undecided: Chưa quyết định
       ct declined: Từ chối
-      latest edit: 'Sửa đổi gần đây nhất (%{ago}):'
       email address: 'Địa chỉ thư điện tử:'
       created from: 'Địa chỉ IP khi mở:'
       status: 'Trạng thái:'
@@ -2565,8 +2692,8 @@ vi:
     revoke:
       title: Bỏ cấm %{block_on}
       heading_html: Bỏ tác vụ cấm %{block_on} bởi %{block_by}
-      time_future: Tác vụ cấm này sẽ hết hạn cách đây %{time}.
-      past: Tác vụ cấm này đã hết hạn %{time} nên không bỏ được.
+      time_future_html: Tác vụ cấm này sẽ hết hạn cách đây %{time}.
+      past_html: Tác vụ cấm này đã hết hạn %{time} nên không bỏ được.
       confirm: Bạn có chắc muốn bỏ cấm người này?
       revoke: Bỏ cấm!
       flash: Đã bỏ cấm.
@@ -2627,7 +2754,9 @@ vi:
     index:
       title: Các ghi chú do %{user} lưu hoặc bình luận
       heading: Ghi chú của %{user}
-      subheading_html: Các ghi chú do %{user} lưu hoặc bình luận
+      subheading_html: Các ghi chú do %{user} %{submitted} hoặc %{commented}
+      subheading_submitted: lưu
+      subheading_commented: bình luận
       no_notes: Không có ghi chú
       id: Mã số
       creator: Người tạo
@@ -2640,6 +2769,15 @@ vi:
       open_title: 'Ghi chú chưa giải quyết #%{note_name}'
       closed_title: 'Ghi chú đã giải quyết #%{note_name}'
       hidden_title: 'Ghi chú ẩn #%{note_name}'
+      event_opened_by_html: Được %{user} tạo %{time_ago}
+      event_opened_by_anonymous_html: Được người vô danh tạo %{time_ago}
+      event_commented_by_html: Nhận xét của %{user} từ %{time_ago}
+      event_commented_by_anonymous_html: Nhận xét của người vô danh %{time_ago}
+      event_closed_by_html: Được %{user} giải quyết %{time_ago}
+      event_closed_by_anonymous_html: Được người vô danh giải quyết %{time_ago}
+      event_reopened_by_html: Được %{user} mở lại %{time_ago}
+      event_reopened_by_anonymous_html: Được người vô danh mở lại %{time_ago}
+      event_hidden_by_html: Được %{user} ẩn %{time_ago}
       report: báo cáo ghi chú này
       anonymous_warning: Ghi chú này có bình luận của người dùng vô danh đóng góp;
         các bình luận này cần được xác nhận lại.
@@ -2648,6 +2786,7 @@ vi:
       reactivate: Mở lại
       comment_and_resolve: Bình luận & Giải quyết
       comment: Bình luận
+      log_in_to_comment: Đăng nhập để nhận xét về ghi chú này
       report_link_html: Nếu ghi chú này chứa thông tin nhạy cảm có thể cần xóa, bạn
         có thể %{link}.
       other_problems_resolve: Còn nếu ghi chú có vấn đề khác, xin vui lòng giải quyết
@@ -2704,11 +2843,10 @@ vi:
           other: Bạn đang cách địa điểm này trong vòng %{count} bộ
       base:
         standard: Chuẩn
-        cyclosm: CyclOSM
         cycle_map: Bản đồ Xe đạp
         transport_map: Bản đồ Giao thông
+        tracestracktop_topo: Tracestrack Địa hình
         hot: Nhân đạo Chủ nghĩa
-        opnvkarte: ÖPNVKarte
       layers:
         header: Lớp Bản đồ
         notes: Ghi chú Bản đồ
@@ -2716,6 +2854,18 @@ vi:
         gps: Tuyến đường GPS Công khai
         overlays: Bật lớp phủ để gỡ lỗi trên bản đồ
         title: Lớp
+      openstreetmap_contributors: Người đóng góp vào OpenStreetMap
+      make_a_donation: Quyên góp
+      website_and_api_terms: Điều khoản trang và API
+      cyclosm_credit: Kiểu mảnh bản đồ do %{cyclosm_link} cung cấp và %{osm_france_link}
+        lưu trữ
+      osm_france: OpenStreetMap Pháp
+      thunderforest_credit: Mảnh bản đồ do %{thunderforest_link} cung cấp
+      andy_allan: Andy Allan
+      tracestrack_credit: Mảnh bản đồ do %{tracestrack_link} cung cấp
+      hotosm_credit: Kiểu mảnh bản đồ do %{hotosm_link} cung cấp và %{osm_france_link}
+        lưu trữ
+      hotosm_name: Tổ chức Nhân đạo OpenStreetMap
     site:
       edit_tooltip: Sửa đổi bản đồ
       edit_disabled_tooltip: Phóng to để sửa đổi bản đồ
@@ -2725,6 +2875,7 @@ vi:
       map_data_zoom_in_tooltip: Phóng to để xem dữ liệu bản đồ
       queryfeature_tooltip: Thăm dò yếu tố
       queryfeature_disabled_tooltip: Phóng to để thăm dò yếu tố
+      embed_html_disabled: Chức năng nhúng HTML không có sẵn đối với lớp bản đồ này
     changesets:
       show:
         comment: Bình luận
index 86c4e27bcba0b8970a62132b7c7c0dc4351a3348..47efe981f34b9a7fe0e278eb1bb71dea255b328c 100644 (file)
@@ -206,7 +206,6 @@ xmf:
   auth:
     providers:
       none: აკა ვარი
-      openid: OpenID
       google: Google
       facebook: Facebook
       github: GitHub
@@ -302,12 +301,8 @@ xmf:
       way_paginated: ღოზეფი (%{x}-%{y} %{count}-შე)
       relation: ურთიართობეფი (%{count})
       relation_paginated: ურთიართობეფი (%{x}-%{y} %{count}-შე)
-      comment: კომენტარეფი (%{count})
       changesetxml: თირუეფიშ პაკეტიშ XML
       osmchangexml: osmChange XML
-      feed:
-        title: თირუეფიშ პაკეტი %{id}
-        title_comment: თირუეფიშ პაკეტი %{id} - %{comment}
       join_discussion: გემშართით სისტემაშა, თიშენ ნამჷ-და, სხუნუას ქაკათათინ
       discussion: სხუნუა
       still_open: თირუეფიშ პაკეტი დიო ღილე რე. სხუნუა ხემიოჭირინაფუ იჸი, მუჭო თირუეფიშ
@@ -414,6 +409,9 @@ xmf:
       no_more_area: თე ტერიტორიას თირუეფიშ პაკეტეფქ ვეგორუ.
       no_more_user: თე მახვარებუშ თირუეფიშ პაკეტეფქ ვეგორუ.
       load_more: უმოსიშ გჷმოხარგუა
+      feed:
+        title: თირუეფიშ პაკეტი %{id}
+        title_comment: თირუეფიშ პაკეტი %{id} - %{comment}
     timeout:
       sorry: სანარღოთ, თირუეფიშ პაკეტეფიშ ერკებული, ნამუთ თქვა მითხითჷნ, ძალამ დიდი
         ბორჯი ოკო გიშაღალარო.
index 99bb6c4901d2a97d9d0582cb7a5062f144191442..db03f5a884ccc4d2fcf9d5866efea6130118a884 100644 (file)
@@ -1,6 +1,7 @@
 # Messages for Yoruba (Yorùbá)
 # Exported from translatewiki.net
 # Export driver: phpyaml
+# Author: BigDareLibrary
 # Author: Demmy
 ---
 yo:
@@ -33,6 +34,7 @@ yo:
     form:
       use_map_link: Lo map
     show:
+      discussion: Ijiroro
       login: wole
   layouts:
     home: ibùdó
@@ -44,10 +46,10 @@ yo:
     show:
       title: Ka message
   passwords:
-    lost_password:
+    new:
       title: lost password
       new password button: Fi ọ̀rọ̀ìpamọ́ tuntun ránsẹ́ sí mi
-    reset_password:
+    edit:
       title: ìtúntò ọ̀rọ̀ìpamọ́
   sessions:
     new:
index 51425604ef43c207963f4edda49dc3dd19af8c82..2fe9875a2eee428c72f1fde8fc0bebd03ea14be7 100644 (file)
@@ -8,12 +8,14 @@
 # Author: Amire80
 # Author: Anakmalaysia
 # Author: Angrydog001
+# Author: Anterdc99
 # Author: Assoc
 # Author: Boyuan Yang
 # Author: C933103
 # Author: David S. Hwang
 # Author: Deathkon
 # Author: Dimension
+# Author: Dream Star.cn
 # Author: Duolaimi
 # Author: FakeGreenHand
 # Author: Fanjiayi
@@ -109,8 +111,8 @@ zh-CN:
         create: 注册
         update: 更新
       redaction:
-        create: 创建修订
-        update: 保存修订
+        create: 创建隐删
+        update: 保存隐删
       trace:
         create: 上传
         update: 保存更改
@@ -122,6 +124,10 @@ zh-CN:
       messages:
         invalid_email_address: 似乎不是有效的电子邮件地址
         email_address_not_routable: 不可路由
+        display_name_is_user_n: 不能为“user_n”,除非“n”是您的用户ID
+      models:
+        user_mute:
+          is_already_muted: 已忽视
     models:
       acl: 访问控制列表
       changeset: 变更集
@@ -275,8 +281,6 @@ zh-CN:
       x_years:
         one: '%{count}年前'
         other: '%{count}年前'
-  printable_name:
-    with_version: '%{id},版本 %{version}'
   editor:
     default: 默认(目前为 %{name})
     id:
@@ -334,6 +338,7 @@ zh-CN:
         retain_notes: 您的地图注记与注记中的评论,如果有,将被保留,但不可见。
         retain_changeset_discussions: 您在变更集下的讨论,如果有,将被保留。
         retain_email: 您的电子邮件地址将被保留。
+        recent_editing_html: 因为您最近有做出编辑,目前无法删除您的账号。%{time} 后才可删除。
         confirm_delete: 您确定吗?
         cancel: 取消
   accounts:
@@ -405,14 +410,10 @@ zh-CN:
       way_paginated: 路径 (%{x}-%{y},共 %{count})
       relation: 关系 (%{count})
       relation_paginated: 关系 (%{x}-%{y},共 %{count})
-      comment: 评论(%{count})
       hidden_comment_by_html: '%{user} 于 %{time_ago} 的隐藏评论'
       comment_by_html: '%{user} 于 %{time_ago} 的评论'
       changesetxml: 变更集 XML
       osmchangexml: osmChange XML
-      feed:
-        title: 变更集 %{id}
-        title_comment: 变更集 %{id} - %{comment}
       join_discussion: 登录以加入讨论
       discussion: 讨论
       still_open: 变更集依然开放——一旦变更集关闭讨论将开放。
@@ -462,8 +463,8 @@ zh-CN:
         changeset: 变更集
         note: 注记
     redacted:
-      redaction: 删改 %{id}
-      message_html: 该%{type}版本 %{version} 无法显示,因为其已被删改。详情请见%{redaction_link}。
+      redaction: 隐删 %{id}
+      message_html: 该%{type}版本 %{version} 无法显示,因为其已被隐删。详情请见%{redaction_link}。
       type:
         node: 节点
         way: 路径
@@ -488,6 +489,15 @@ zh-CN:
       introduction: 点击地图以查找附近要素。
       nearby: 附近要素
       enclosing: 封闭要素
+  old_nodes:
+    not_found:
+      sorry: '抱歉,无法找到节点 #%{id} 的版本 %{version}。'
+  old_ways:
+    not_found:
+      sorry: '抱歉,无法找到路径 #%{id} 的版本 %{version}。'
+  old_relations:
+    not_found:
+      sorry: '抱歉,无法找到关系 #%{id} 的版本 %{version}。'
   changesets:
     changeset_paging_nav:
       showing_page: 第 %{page} 页
@@ -516,6 +526,9 @@ zh-CN:
       no_more_area: 该区域内没有更多变更集。
       no_more_user: 该用户无更多变更集。
       load_more: 加载更多
+      feed:
+        title: 变更集 %{id}
+        title_comment: 变更集 %{id} - %{comment}
     timeout:
       sorry: 抱歉,您所请求的变更集列表检索时间过长。
   changeset_comments:
@@ -533,6 +546,7 @@ zh-CN:
     contact:
       km away: '%{count}千米外'
       m away: '%{count}米外'
+      latest_edit_html: '%{ago}的最后编辑:'
     popup:
       your location: 您的位置
       nearby mapper: 附近绘图者
@@ -574,6 +588,7 @@ zh-CN:
     show:
       title: '%{user} 的日记 | %{title}'
       user_title: '%{user}的日记'
+      discussion: 讨论
       leave_a_comment: 留下评论
       login_to_leave_a_comment_html: '%{login_link}以留下评论'
       login: 登录
@@ -1497,9 +1512,9 @@ zh-CN:
         one: '%{count}个举报'
         other: '%{count}个举报'
       no_reports: 没有报告
-      report_created_at: 首次报告于%{datetime}
-      last_resolved_at: 上次解决于%{datetime}
-      last_updated_at: 上次由%{displayname}于%{datetime}更新
+      report_created_at_html: 首次报告于%{datetime}
+      last_resolved_at_html: 上次解决于%{datetime}
+      last_updated_at_html: 上次由%{displayname}于%{datetime}更新
       resolve: 解决
       ignore: 忽略
       reopen: 重新开放
@@ -1533,7 +1548,7 @@ zh-CN:
       title_html: 举报%{link}
       missing_params: 不能创建新的举报
       disclaimer:
-        intro: 在发送您的举报至网站版主前,请确保:
+        intro: 在发送您的举报至网站仲裁员前,请确保:
         not_just_mistake: 您确信这个问题不只是失误
         unable_to_fix: 您无法自行修复问题,或通过您的伙伴社群成员帮助下修复
         resolve_with_user: 您已尝试与有关用户解决问题
@@ -1641,6 +1656,7 @@ zh-CN:
     gpx_success:
       hi: 您好,%{to_user}:
       loaded: 已成功加载%{count}个可能轨迹点中的%{trace_points}个。
+      all_your_traces_html: 您可以在 %{url} 找到所有您成功上传的 GPX 轨迹。
       subject: '[OpenStreetMap] GPX 导入成功'
     signup_confirm:
       subject: '[OpenStreetMap] 欢迎加入 OpenStreetMap'
@@ -1728,21 +1744,23 @@ zh-CN:
   messages:
     inbox:
       title: 收件箱
-      my_inbox: 我的收件箱
-      my_outbox: 我的发件箱
       messages: 您有 %{new_messages}和 %{old_messages}
       new_messages: '%{count} 条新消息'
       old_messages: '%{count} 条旧消息'
+      no_messages_yet_html: 您还没有消息,何不联系一些%{people_mapping_nearby_link}?
+      people_mapping_nearby: 在附近绘制地图的人
+    messages_table:
       from: 发件人
+      to: 收件人
       subject: 标题
       date: 日期
-      no_messages_yet_html: 您还没有消息,何不联系一些%{people_mapping_nearby_link}?
-      people_mapping_nearby: 在附近绘制地图的人
+      actions: 操作
     message_summary:
       unread_button: 标记为未读
       read_button: 标记为已读
       reply_button: 回复
       destroy_button: 删除
+      unmute_button: 移至收件箱
     new:
       title: 发消息
       send_message_to_html: 发送新信息给%{name}
@@ -1756,20 +1774,21 @@ zh-CN:
       body: 对不起,没有具有该 id 的消息。
     outbox:
       title: 发件箱
-      my_inbox: 我的收件箱
-      my_outbox: 我的发件箱
+      actions: 操作
       messages:
         one: 您有 %{count} 条已发送信息
         other: 您有 %{count} 条已发送信息
-      to: 收件人
-      subject: 标题
-      date: 日期
       no_sent_messages_html: 您尚未发送信息。何不联系一些%{people_mapping_nearby_link}?
       people_mapping_nearby: 在附近绘制地图的人
+    muted:
+      title: 已忽视消息
+      messages:
+        one: 1 条忽视消息
+        other: 您有 %{count} 条忽视消息
     reply:
       wrong_user: 您已经以 '%{user}' 的身份登录,但是您想要回复的消息并非寄给这个用户。请以正确的用户身份登录以回复这个消息。
     show:
-      title: 阅读
+      title: 阅读
       reply_button: 回复
       unread_button: 标记为未读
       destroy_button: 删除
@@ -1777,24 +1796,34 @@ zh-CN:
       wrong_user: 您已经以 '%{user}' 的身份登录,但是您想要阅读的消息并非寄给这个用户。请以正确的用户身份登录以阅读这个消息。
     sent_message_summary:
       destroy_button: 删除
+    heading:
+      my_inbox: 我的收件箱
+      my_outbox: 我的发件箱
+      muted_messages: 已忽视消息
     mark:
       as_read: 标记消息为已读
       as_unread: 标记消息为未读
+    unmute:
+      notice: 消息已移至收件箱
+      error: 无法将消息移至收件箱。
     destroy:
       destroyed: 消息已删除
   passwords:
-    lost_password:
+    new:
       title: 忘记密码
       heading: 忘记密码?
-      email address: 电子邮件地址
+      email address: 电子邮件地址
       new password button: 重置密码
       help_text: 输入您的电子邮件地址来注册,我们会寄出链接给它,这样您就可以用它来重置密码。
+    create:
       notice email on way: 很遗憾您遗失了密码:-(不过一封电子邮件已经发往您的邮箱,您很快就可以重置密码了。
       notice email cannot find: 对不起,无法找到邮箱。
-    reset_password:
+    edit:
       title: 重置密码
       heading: 重置%{user}的密码
       reset: 重置密码
+      flash token bad: 未找到标记,建议检查 URL?
+    update:
       flash changed: 您的密码已经更改。
       flash token bad: 未找到标记,建议检查 URL?
   preferences:
@@ -1840,9 +1869,8 @@ zh-CN:
     new:
       title: 登录
       heading: 登录
-      email or username: 电子邮件地址或用户名:
-      password: 密码:
-      openid_html: '%{logo}OpenID:'
+      email or username: 电子邮件地址或用户名
+      password: 密码
       remember: 记住我
       lost password link: 忘记密码?
       login_button: 登录
@@ -1899,6 +1927,7 @@ zh-CN:
       image: 图像
       alt: 替代文本
       url: URL
+      codeblock: 代码块
     richtext_field:
       edit: 编辑
       preview: 预览
@@ -1956,8 +1985,8 @@ zh-CN:
         introduction_1_osm_foundation: OpenStreetMap 基金会
         introduction_2_html: 只要你表明来源为OpenStreetMap及其贡献者,你就可以自由地复制、分发、传送和改编我们的数据。如果你想转换或者以我们的数据为基础进行创作,你只能采用相同的许可协议发表你的作品。完整的%{legal_code_link}阐明了你的权利和义务。
         introduction_2_legal_code: 法律条款
-        introduction_3_html: 我们的文档根据 %{creative_commons_link} 许可 (CC BY-SA 2.0) 获得许可。
-        introduction_3_creative_commons: Creative Commons Attribution-ShareAlike 2.0
+        introduction_3_html: 我们的文档根据 %{creative_commons_link} 许可协议(CC BY-SA 2.0)获得许可。
+        introduction_3_creative_commons: 知识共享署名-相同方式共享 2.0
         credit_title_html: 如何表明作者是 OpenStreetMap
         credit_1_html: 当您使用 OpenStreetMap 的数据,您会被要求遵循两件事:
         credit_2_1: 通过显示我们的版权声明为 OpenStreetMap 提供署名。
@@ -1995,12 +2024,13 @@ zh-CN:
            行政边界合并或开发,由澳大利亚联邦根据 %{cc_licence_link} 许可。
         contributors_au_australia: 澳大利亚
         contributors_au_geoscape_australia: Geoscape Australia
-        contributors_au_cc_licence: Creative Commons Attribution 4.0 International
-          licence (CC BY 4.0)
+        contributors_au_cc_licence: 知识共享署名-相同方式共享 4.0 国际许可协议(CC BY 4.0)
         contributors_ca_credit_html: '%{canada}:含有来自GeoBase&reg;,GeoGratis(&copy;
           加拿大自然资源部),CanVec(&copy; 加拿大自然资源部)和StatCan(加拿大统计局地理处)的数据。'
         contributors_ca_canada: 加拿大
-        contributors_cz_cc_licence: 知识共享署名-相同方式共享4.0国际(CC BY 4.0)
+        contributors_cz_credit_html: '%{czechia}:含有来自国家土地测量与地籍管理局依据%{cc_licence_link}许可的数据'
+        contributors_cz_czechia: 捷克
+        contributors_cz_cc_licence: 知识共享署名-相同方式共享 4.0 国际许可协议(CC BY 4.0)
         contributors_fi_credit_html: |-
           %{finland}:包含来自芬兰地形数据库的
           国家土地调查
@@ -2075,12 +2105,7 @@ zh-CN:
       no_iframe_support: 您的浏览器不支持 HTML 嵌入式框架,这是此功能所需要的。
     export:
       title: 导出
-      area_to_export: 要导出的区域
       manually_select: 手动选择不同的区域
-      format_to_export: 要导出的格式
-      osm_xml_data: OpenStreetMap XML 数据
-      map_image: 地图图像 (显示标准图层)
-      embeddable_html: 可嵌入HTML
       licence: 许可协议
       licence_details_html: OpenStreetMap 数据以 %{odbl_link} (ODbL) 许可。
       odbl: 开放数据共享开放数据库许可协议
@@ -2099,17 +2124,6 @@ zh-CN:
         other:
           title: 其他来源
           description: OpenStreetMap wiki 上列出的其他来源
-      options: 选项
-      format: 格式
-      scale: 比例
-      max: 最大
-      image_size: 图像尺寸
-      zoom: 缩放
-      add_marker: 添加标记至地图
-      latitude: 纬度:
-      longitude: 经度:
-      output: 输出
-      paste_html: 粘贴可嵌入网站的 HTML
       export_button: 导出
     fixthemap:
       title: 报告问题/修正地图
@@ -2139,15 +2153,12 @@ zh-CN:
         url: https://wiki.openstreetmap.org/wiki/Zh-hans:Beginners%27_guide
         title: 新手指南
         description: 社群维护的新手指南。
-      help:
-        title: 帮助论坛
-        description: 在OpenStreetMap的问答网站提问或查找回答
+      community:
+        title: 帮助和社区论坛
+        description: 用于寻求帮助和讨论 OpenStreetMap 的共享场所
       mailing_lists:
         title: 邮件列表
         description: 询问问题或在广泛或局部的邮件列表中讨论有趣事件
-      community:
-        title: 社区论坛
-        description: 用于讨论 OpenStreetMap 的共享场所。
       irc:
         title: IRC
         description: 在很多不同的语言和在很多话题间交互聊天。
@@ -2194,67 +2205,83 @@ zh-CN:
           primary: 一级道路
           secondary: 二级道路
           unclassified: 无等级道路
+          pedestrian: 人行道
           track: 小路
           bridleway: 马道
           cycleway: 自行车道
           cycleway_national: 国家自行车道
           cycleway_regional: 地区自行车道
           cycleway_local: 本地自行车道
+          cycleway_mtb: 山地自行车路线
           footway: 步道
           rail: 铁路
+          train: 火车
           subway: 地铁
-          tram:
-          - 轻轨
-          - 电车
-          cable:
-          - 缆车
-          - 吊椅缆车
-          runway:
-          - 机场跑道
-          - 滑行道
-          apron:
-          - 机场停机坪
-          - 航站楼
+          ferry: 渡船
+          light_rail: 轻轨
+          tram: 有轨电车
+          trolleybus: 无轨电车
+          bus: 公共汽车
+          cable_car: 缆车
+          chair_lift: 吊椅缆车
+          runway: 机场跑道
+          taxiway: 滑行道
+          apron: 机场停机坪
           admin: 行政区边界
+          capital: 首都
+          city: 城市
+          orchard: 果园
+          vineyard: 葡萄园
           forest: 森林
-          wood: 林
+          wood: 树林
+          farmland: 农田
+          grass: 草坪
+          meadow: 草甸
+          bare_rock: 裸岩
+          sand: 沙地
           golf: 高尔夫球场
           park: 公园
+          common: 公地
+          built_up: 建成区
           resident: 居住区
-          common:
-          - 公地
-          - 草甸
-          - 花园
           retail: 零售区
           industrial: 工业区
           commercial: 商业区
           heathland: 荒原
-          lake:
-          - 湖
-          - 水库
+          scrubland: 灌木丛林地
+          lake: 湖
+          reservoir: 水库
+          intermittent_water: 间歇性水体
+          glacier: 冰川
+          reef: 礁
+          wetland: 湿地
           farm: 农场
           brownfield: 棕地
           cemetery: 坟场
           allotments: 小块园地
           pitch: 体育场
           centre: 体育馆
+          beach: 海滩
           reserve: 自然保护区
           military: 军事区
-          school:
-          - 学校
-          - 大学
+          school: 学校
+          university: 大学
+          hospital: 医院
           building: 特殊建筑物
           station: 火车站
-          summit:
-          - 山峰
-          - 高峰
+          summit: 山峰
+          peak: 山峰
           tunnel: 双虚线=隧道
           bridge: 双实线=桥
-          private: 私人
-          destination: 目的地进入权
+          private: 私人通行
+          destination: 目的地通行
           construction: 在建道路
+          bus_stop: 公共汽车站
+          stop: 停车站
           bicycle_shop: 自行车店
+          bicycle_rental: 自行车租赁
           bicycle_parking: 自行车停车场
+          bicycle_parking_small: 小型自行车停车场
           toilets: 厕所
     welcome:
       title: 欢迎!
@@ -2285,6 +2312,7 @@ zh-CN:
         imports: 导入
         automated_edits: 自动化编辑
       start_mapping: 开始绘制地图
+      continue_authorization: 继续授权
       add_a_note:
         title: 没有时间编辑?添加注记!
         para_1: 如果您这是想做一些微小改动而没有时间登录来学习如何编辑,那添加注记是非常容易的。
@@ -2417,6 +2445,7 @@ zh-CN:
       oauth1_settings: OAuth 1设置
       oauth2_applications: OAuth 2应用程序
       oauth2_authorizations: OAuth 2授权
+      muted_users: 已忽视用户
   oauth:
     authorize:
       title: 授权访问您的账户
@@ -2451,11 +2480,13 @@ zh-CN:
       read_gpx: 读取私人GPS轨迹
       write_gpx: 上传GPS轨迹
       write_notes: 修改备注
+      write_redactions: 隐删地图数据
       read_email: 查看用户邮箱地址
       skip_authorization: 自动核准应用
   oauth_clients:
     new:
       title: 注册新应用程序
+      disabled: OAuth 1 应用程序的注册已被禁用
     edit:
       title: 编辑您的应用程序
     show:
@@ -2533,6 +2564,7 @@ zh-CN:
       title: 我的已授权应用程序
       application: 应用程序
       permissions: 权限
+      last_authorized: 最后授权
       no_applications_html: 您还没有授权任何%{oauth2}应用程序。
     application:
       revoke: 撤销访问权限
@@ -2599,6 +2631,8 @@ zh-CN:
       my_dashboard: 我的综合面板
       blocks on me: 我的封禁
       blocks by me: 被我封禁
+      create_mute: 忽视此用户
+      destroy_mute: 取消弱化此用户
       edit_profile: 编辑个人资料
       send message: 发送消息
       diary: 日记
@@ -2612,22 +2646,25 @@ zh-CN:
       ct status: 贡献者条款:
       ct undecided: 未决定
       ct declined: 已拒绝
-      latest edit: '%{ago}的最后编辑:'
       email address: 电子邮件地址:
       created from: 创建于:
       status: 状态:
       spam score: 垃圾邮件评分:
       role:
         administrator: 此用户是管理员
-        moderator: 此用户是版主
+        moderator: 此用户是仲裁员
+        importer: 此用户是导入者
         grant:
           administrator: 授予管理员权限
-          moderator: 授予管理员权限
+          moderator: 授予仲裁员权限
+          importer: 授予导入者权限
         revoke:
           administrator: 撤销管理员权限
-          moderator: 撤销管理员权限
+          moderator: 撤销仲裁员权限
+          importer: 撤销导入者权限
       block_history: 激活的封禁
       moderator_history: 执行封禁者
+      revoke_all_blocks: 撤销所有封禁
       comments: 评论
       create_block: 封禁此用户
       activate_user: 启用此用户
@@ -2689,8 +2726,8 @@ zh-CN:
       fail: 无法吊销用户 '%{name}' 角色 '%{role}'。请检查用户和角色是否都正确。
   user_blocks:
     model:
-      non_moderator_update: 必须为管理员才能创建或更新一个封禁。
-      non_moderator_revoke: 必须为管理员才能撤消块
+      non_moderator_update: 必须为仲裁员才能创建或更新一个封禁。
+      non_moderator_revoke: 必须为仲裁员才能撤消封禁
     not_found:
       sorry: 对不起,未找到 ID 为 %{id} 的用户封禁。
       back: 返回索引
@@ -2711,7 +2748,7 @@ zh-CN:
     create:
       flash: 已建立对用户 %{name} 的封禁
     update:
-      only_creator_can_edit: 只有执行封禁的管理员能编辑它
+      only_creator_can_edit: 只有执行此封禁的仲裁员才能编辑
       success: 封禁已更新。
     index:
       title: 用户的封禁
@@ -2720,11 +2757,21 @@ zh-CN:
     revoke:
       title: 正在撤销对 %{block_on} 的封禁
       heading_html: 正在撤销 %{block_by} 对 %{block_on} 的封禁
-      time_future: 此封禁将于 %{time} 结束。
-      past: 此封禁已在%{time}结束,现在不能撤销。
+      time_future_html: 此封禁将于 %{time} 结束。
+      past_html: 此封禁已在%{time}结束,现在不能撤销。
       confirm: 您确定要撤销该封禁?
       revoke: 撤销!
       flash: 该封禁已经被撤销。
+    revoke_all:
+      title: 正在撤销对%{block_on}的所有封禁
+      heading_html: 正在撤销对%{block_on}的所有封禁
+      empty: '%{name}没有生效的封禁。'
+      confirm: 您确定要撤销%{active_blocks}吗?
+      active_blocks:
+        one: '%{count} 个生效的封禁'
+        other: '%{count} 个生效的封禁'
+      revoke: 撤销!
+      flash: 已撤销所有生效的封禁。
     helper:
       time_future_html: 结束于 %{time}。
       until_login: 用户登录时激活。
@@ -2782,6 +2829,28 @@ zh-CN:
       showing_page: 第 %{page} 页
       next: 下一页 »
       previous: « 上一页
+  user_mutes:
+    index:
+      title: 已忽视用户
+      my_muted_users: 我已忽视的用户
+      you_have_muted_n_users:
+        one: 您已忽视 1 名用户
+        other: 您已忽视 %{count} 名用户
+      user_mute_explainer: 已忽视用户的消息会被移至单独的收件箱,您不会收到电子邮件通知。
+      user_mute_admins_and_moderators: 您可以忽视管理员和仲裁员,但仍会收到他们的消息通知。
+      table:
+        thead:
+          muted_user: 已忽视用户
+          actions: 操作
+        tbody:
+          unmute: 取消弱化
+          send_message: 发送消息
+    create:
+      notice: 您已忽视 %{name}。
+      error: 无法忽视 %{name}。%{full_message}。
+    destroy:
+      notice: 您取消弱化了%{name}。
+      error: 无法取消弱化用户。请再试一次。
   notes:
     index:
       title: '%{user} 提交或评论的注记'
@@ -2817,6 +2886,7 @@ zh-CN:
       reactivate: 重启
       comment_and_resolve: 评论与解决
       comment: 评论
+      log_in_to_comment: 登录以评论此注记
       report_link_html: 如果此注记包含需要被删除的敏感信息,您可以%{link}。
       other_problems_resolve: 对于注记的所有其他问题,请通过评论自行解决。
       other_problems_resolved: 对于所有其他问题,解决就足够了。
@@ -2873,7 +2943,6 @@ zh-CN:
         transport_map: 交通运输地图
         tracestracktop_topo: 地形地貌地图
         hot: 人道救援地图
-        opnvkarte: 公共交通地图
       layers:
         header: 地图图层
         notes: 地图注记
@@ -2888,8 +2957,6 @@ zh-CN:
       osm_france: OpenStreetMap 法国
       thunderforest_credit: '%{thunderforest_link}提供的图块'
       andy_allan: Andy Allan
-      opnvkarte_credit: '%{memomaps_link}提供的图块'
-      memomaps: MeMoMaps
       tracestrack_credit: '%{tracestrack_link}提供的图块'
       tracestrack: 踪迹地图
       hotosm_credit: 由%{osm_france_link}托管的%{hotosm_link}图块风格
@@ -2903,6 +2970,7 @@ zh-CN:
       map_data_zoom_in_tooltip: 放大地图以查看数据
       queryfeature_tooltip: 查询特征
       queryfeature_disabled_tooltip: 放大以查询特征
+      embed_html_disabled: HTML 嵌入不适用于此地图图层
     changesets:
       show:
         comment: 评论
@@ -3014,31 +3082,31 @@ zh-CN:
       centre_map: 将此处置于地图中间
   redactions:
     edit:
-      heading: 编辑修订
-      title: 编辑修订
+      heading: 编辑隐删
+      title: 编辑隐删
     index:
-      empty: 无删改可显示。
-      heading: 修订列表
-      title: 修订列表
+      empty: 无隐删可显示。
+      heading: 隐删列表
+      title: 隐删列表
     new:
-      heading: 请输入新修订的信息
-      title: 创建新修订
+      heading: 请输入新隐删的信息
+      title: 创建新隐删
     show:
       description: 描述:
-      heading: 显示修订“%{title}”
-      title: 显示修订
+      heading: 显示隐删“%{title}”
+      title: 显示隐删
       user: 创建者:
-      edit: 编辑该修订
-      destroy: 删除该修订
+      edit: 编辑该隐删
+      destroy: 删除该隐删
       confirm: 您确定吗?
     create:
-      flash: 修订已创建。
+      flash: 隐删已创建。
     update:
       flash: 更改已保存。
     destroy:
-      not_empty: 修订非空。请在销毁该修订前清除所有属于它的版本。
-      flash: 修订已销毁。
-      error: 销毁该修订时出错。
+      not_empty: 隐删非空。请在销毁该隐删前清除所有属于它的版本。
+      flash: 隐删已销毁。
+      error: 销毁该隐删时出错。
   validations:
     leading_whitespace: 有前导空格
     trailing_whitespace: 有尾随空格
index 5662aa6f8d5cca7888895c7158ff5f02a812b777..e7bcfe94977a7527cb2ca6ae4891b724f11c90e2 100644 (file)
@@ -207,7 +207,6 @@ zh-HK:
   auth:
     providers:
       none: 無
-      openid: OpenID
       google: Google
       facebook: Facebook
       github: GitHub
@@ -291,8 +290,6 @@ zh-HK:
       belongs_to: 製作者
       changesetxml: 變更集XML
       osmchangexml: osmChange格式XML
-      feed:
-        title: 變更集 %{id}
     relation_member:
       type:
         node: 節點
@@ -342,6 +339,8 @@ zh-HK:
       no_more_area: 此區域沒有更多變更集。
       no_more_user: 此用戶沒有更多變更集。
       load_more: 載入更多
+      feed:
+        title: 變更集 %{id}
   dashboards:
     show:
       nearby users: 其他附近的用戶
@@ -1078,16 +1077,17 @@ zh-HK:
     outbox:
       title: 寄件匣
   passwords:
-    lost_password:
+    new:
       title: 忘記密碼
       heading: 忘記密碼?
       email address: 電郵地址:
       new password button: 重設密碼
       help_text: 輸入您註冊時用的電郵地址,我們會將可用於重設密碼的連結發送至該地址。
-    reset_password:
+    edit:
       title: 重設密碼
       heading: 重設%{user}的密碼
       reset: 重設密碼
+    update:
       flash changed: 您的密碼已經變更。
   sessions:
     new:
@@ -1105,23 +1105,11 @@ zh-HK:
       no_iframe_support: 閣下的瀏覽器並未支援此功能所必需的HTML iframes。
     export:
       title: 匯出
-      area_to_export: 要匯出的範圍
       manually_select: 手動選擇另一範圍
-      format_to_export: 匯出格式
-      map_image: 地圖影像 (顯示標準圖層)
-      embeddable_html: 可內嵌的HTML
       licence: 授權
-      options: 選項
-      format: 格式
-      scale: 比例
-      max: 最大
-      latitude: 緯度:
-      longitude: 經度:
     help:
       beginners_guide:
         description: 由社群編修的新手指南。
-      help:
-        description: 在OpenStreetMap的問答網站上提問或搜尋答案。
       mailing_lists:
         description: 在有着各式各樣主題或地域分類的郵件列表中發問或討論有趣的事。
       irc:
@@ -1139,14 +1127,8 @@ zh-HK:
           motorway: 高速公路
           rail: 鐵路
           subway: 地鐵
-          tram:
-          - 輕便鐵路
-          - 電車
-          runway:
-          - 機場跑道
-          apron:
-          - 機場停機坪
-          - 客運大樓
+          runway: 機場跑道
+          apron: 機場停機坪
           admin: 行政邊界
           forest: 森林
           golf: 哥爾夫球場
@@ -1154,18 +1136,16 @@ zh-HK:
           resident: 住宅區
           industrial: 工業區
           commercial: 商業區
-          lake:
-          - 湖泊
-          - 水庫
+          lake: 湖泊
+          reservoir: 水庫
           brownfield: 棕地
           cemetery: 墓地
           pitch: 運動場
           centre: 運動中心
           reserve: 自然保護區
           military: 軍事區
-          school:
-          - 學校
-          - 大學
+          school: 學校
+          university: 大學
           station: 火車站
           bicycle_shop: 單車店
           bicycle_parking: 單車停泊處
@@ -1259,7 +1239,6 @@ zh-HK:
         cycle_map: 單車地圖
         transport_map: 交通地圖
         hot: 人道地圖
-        opnvkarte: ÖPNVKarte
       layers:
         header: 地圖圖層
         notes: 地圖註記
index 4ac56ff3b627681fcfd36a8276028c54dcf43e33..a6b6d366a465ee3c2b60b9ba43214568e54c0fbf 100644 (file)
@@ -87,6 +87,10 @@ zh-TW:
       messages:
         invalid_email_address: 似乎不是有效的電子郵件信箱地址。
         email_address_not_routable: 不可繞送
+        display_name_is_user_n: 不能是「user_n」除非「n」是您的使用者 ID
+      models:
+        user_mute:
+          is_already_muted: 已忽視
     models:
       acl: 存取控制清單
       changeset: 變更集
@@ -240,8 +244,6 @@ zh-TW:
       x_years:
         one: '%{count} 年前'
         other: '%{count} 年前'
-  printable_name:
-    with_version: '%{id},版本%{version}'
   editor:
     default: 預設 (目前為 %{name})
     id:
@@ -253,7 +255,6 @@ zh-TW:
   auth:
     providers:
       none: 無
-      openid: OpenID
       google: Google
       facebook: 臉書
       microsoft: 微軟
@@ -298,6 +299,7 @@ zh-TW:
         retain_notes: 若有您的地圖註記與註記評論內容,這將會繼續保留;不過會隱藏起來。
         retain_changeset_discussions: 若有您的變更集討論,這將會繼續保留。
         retain_email: 您的電子郵件地址將會繼續保留。
+        recent_editing_html: 因為您最近有作過編輯,目前無法刪除您的帳號。在 %{time} 後才可刪除。
         confirm_delete: 您確定嗎?
         cancel: 取消
   accounts:
@@ -370,14 +372,10 @@ zh-TW:
       way_paginated: 路線 (%{count} 的 %{x}-%{y})
       relation: 關聯 (%{count})
       relation_paginated: 關聯 (%{count} 的 %{x}-%{y})
-      comment: 評論 (%{count})
       hidden_comment_by_html: '%{user}%{time_ago}隱藏評論'
       comment_by_html: 來自%{user}%{time_ago}的評論
       changesetxml: 變更集 XML
       osmchangexml: osmChange 格式 XML
-      feed:
-        title: 變更集 %{id}
-        title_comment: 變更集 %{id} - %{comment}
       join_discussion: 登入以參加討論
       discussion: 討論
       still_open: 變更集仍為開啟 - 討論要在變更集關閉後才會開啟。
@@ -455,6 +453,15 @@ zh-TW:
       introduction: 點選地圖以尋找附近的圖徵
       nearby: 附近圖徵
       enclosing: 區域內圖徵
+  old_nodes:
+    not_found:
+      sorry: '很抱歉,無法找到版本 %{version} 的節點 #%{id}。'
+  old_ways:
+    not_found:
+      sorry: 很抱歉,找不到版本 %{version} 的路徑 %{id}。
+  old_relations:
+    not_found:
+      sorry: '很抱歉,找不到版本 %{version} 的關聯 #%{id}。'
   changesets:
     changeset_paging_nav:
       showing_page: 第 %{page} 頁
@@ -483,6 +490,9 @@ zh-TW:
       no_more_area: 此區域沒有更多變更集。
       no_more_user: 此使用者沒有更多變更集。
       load_more: 載入更多
+      feed:
+        title: 變更集 %{id}
+        title_comment: 變更集 %{id} - %{comment}
     timeout:
       sorry: 很抱歉,您請求的變更集清單過長無法讀取。
   changeset_comments:
@@ -500,6 +510,7 @@ zh-TW:
     contact:
       km away: '%{count} 公里遠'
       m away: '%{count} 公尺遠'
+      latest_edit_html: 上次編輯於%{ago}:
     popup:
       your location: 您的位置
       nearby mapper: 附近的製圖者
@@ -541,6 +552,7 @@ zh-TW:
     show:
       title: '%{user} 的日記|%{title}'
       user_title: '%{user} 的日記'
+      discussion: 討論
       leave_a_comment: 留下評論
       login_to_leave_a_comment_html: '%{login_link}來留下評論'
       login: 登入
@@ -919,7 +931,7 @@ zh-TW:
           motorway_link: 高速公路聯絡道
           passing_place: 避車彎
           path: 小徑
-          pedestrian: 行人路
+          pedestrian: 人行道
           platform: 月台
           primary: 一級道路
           primary_link: 一級道路聯絡道
@@ -1464,9 +1476,9 @@ zh-TW:
         one: '%{count} 份回報'
         other: '%{count} 份回報'
       no_reports: 沒有回報
-      report_created_at: 首次回報是在 %{datetime}
-      last_resolved_at: 最後回報是在 %{datetime}
-      last_updated_at: 最後更新是由 %{displayname} 在 %{datetime}
+      report_created_at_html: 首次回報是在 %{datetime}
+      last_resolved_at_html: 最後回報是在 %{datetime}
+      last_updated_at_html: 最後更新是由 %{displayname} 在 %{datetime}
       resolve: 解決
       ignore: 忽略
       reopen: 重新開啟
@@ -1551,7 +1563,7 @@ zh-TW:
     user_diaries: 日記
     user_diaries_tooltip: 檢視日記
     edit_with: 以 %{editor} 編輯
-    tag_line: 自由的 Wiki 世界地圖
+    tag_line: 自由的 wiki 世界地圖
     intro_header: 歡迎來到 OpenStreetMap!
     intro_text: OpenStreetMap 是一幅世界地圖,由像您這樣的人們所建立,在開放授權下可以自由使用。
     intro_2_create_account: 建立使用者帳號
@@ -1612,6 +1624,7 @@ zh-TW:
       loaded:
         one: 成功載入 %{count} 個可能軌跡點中的 %{trace_points} 個。
         other: 成功載入 %{count} 個可能軌跡點中的 %{trace_points} 個。
+      all_your_traces_html: 您可以在 %{url} 找到所有您上傳成功的 GPX 軌跡。
       subject: '[OpenStreetMap] GPX 匯入成功'
     signup_confirm:
       subject: '[OpenStreetMap] 歡迎加入 OpenStreetMap'
@@ -1691,7 +1704,7 @@ zh-TW:
       press confirm button: 按下確認按鈕以確認您的新電子郵件地址。
       button: 確認
       success: 已確認您變更的電子郵件地址!
-      failure: 電子郵件地址已使用此密鑰確認過。
+      failure: 電子郵件地址已使用此權杖確認過。
       unknown_token: 確認碼已經過期或不存在。
     resend_success_flash:
       confirmation_sent: 我們已發送新的確認通知到 %{email},一旦您確認您的帳號後,就能取得製圖。
@@ -1699,8 +1712,6 @@ zh-TW:
   messages:
     inbox:
       title: 收件匣
-      my_inbox: 我的收件匣
-      my_outbox: 我的寄件匣
       messages: 您有 %{new_messages} 及 %{old_messages}。
       new_messages:
         one: '%{count} 項新訊息'
@@ -1708,16 +1719,20 @@ zh-TW:
       old_messages:
         one: '%{count} 項舊訊息'
         other: '%{count} 項舊訊息'
+      no_messages_yet_html: 您還沒有訊息。何不跟一些 %{people_mapping_nearby_link} 接觸看看?
+      people_mapping_nearby: 在附近製圖的人
+    messages_table:
       from: 寄件者
+      to: 收件者
       subject: 主旨
       date: 日期
-      no_messages_yet_html: 您還沒有訊息。何不跟一些 %{people_mapping_nearby_link} 接觸看看?
-      people_mapping_nearby: 在附近製圖的人
+      actions: 操作
     message_summary:
       unread_button: 標記為未讀
       read_button: 標記為已讀
       reply_button: 回覆
       destroy_button: 刪除
+      unmute_button: 移至收件匣
     new:
       title: 寄出訊息
       send_message_to_html: 寄出新訊息給 %{name}
@@ -1731,16 +1746,17 @@ zh-TW:
       body: 抱歉,並沒有這個 id 的訊息。
     outbox:
       title: 寄件匣
-      my_inbox: 我的收件匣
-      my_outbox: 我的寄件匣
+      actions: 操作
       messages:
         one: 您有 %{count} 項已寄訊息
         other: 您有 %{count} 項已寄訊息
-      to: 收件者
-      subject: 主旨
-      date: 日期
       no_sent_messages_html: 您還沒有已寄訊息。何不跟一些 %{people_mapping_nearby_link} 接觸看看?
       people_mapping_nearby: 附近製作地圖的使用者
+    muted:
+      title: 已忽視訊息
+      messages:
+        one: 1 條忽視訊息
+        other: 您有 %{count} 條忽視訊息
     reply:
       wrong_user: 您已經以 "%{user}" 的身份登入,但是您想要回覆的訊息並非寄給這個使用者。請以正確的使用者身份登入以回覆這個訊息。
     show:
@@ -1752,26 +1768,36 @@ zh-TW:
       wrong_user: 您已經以 "%{user}" 的身份登入,但是您想要閱讀的訊息並非寄給那個使用者。請以正確的使用者身份登入以閱讀它。
     sent_message_summary:
       destroy_button: 刪除
+    heading:
+      my_inbox: 我的收件匣
+      my_outbox: 我的寄件匣
+      muted_messages: 已忽視訊息
     mark:
       as_read: 訊息標記為已讀
       as_unread: 訊息標記為未讀
+    unmute:
+      notice: 訊息已移至收件匣
+      error: 無法將訊息移至收件匣。
     destroy:
       destroyed: 訊息已刪除
   passwords:
-    lost_password:
+    new:
       title: 遺失密碼
       heading: 忘記密碼?
-      email address: 電子郵件地址
+      email address: 電子郵件地址
       new password button: 重設密碼
       help_text: 輸入您的電子郵件地址來註冊,我們會將連結送至該地址,而您可以用它來重設密碼。
+    create:
       notice email on way: 很遺憾您忘了它 :-( 不過讓您可以重設它的電子郵件已經寄出,您待會便可重設。
       notice email cannot find: 很抱歉,找不到該電子郵件地址。
-    reset_password:
+    edit:
       title: 重設密碼
       heading: 重設 %{user} 的密碼
       reset: 重設密碼
+      flash token bad: 找不到該權杖,可能要檢查一下 URL?
+    update:
       flash changed: 您的密碼已經變更。
-      flash token bad: 找不到該密鑰,可能要檢查一下 URL?
+      flash token bad: 找不到該權杖,可能要檢查一下 URL?
   preferences:
     show:
       title: 我的偏好設定
@@ -1815,9 +1841,8 @@ zh-TW:
     new:
       title: 登入
       heading: 登入
-      email or username: 電子郵件地址或使用者名稱:
-      password: 密碼:
-      openid_html: '%{logo} OpenID:'
+      email or username: 電子郵件地址或使用者名稱
+      password: 密碼
       remember: 記住我
       lost password link: 忘記您的密碼?
       login_button: 登入
@@ -1874,6 +1899,7 @@ zh-TW:
       image: 圖片
       alt: 替代文字
       url: 網址
+      codeblock: 代碼區塊
     richtext_field:
       edit: 編輯
       preview: 預覽
@@ -2046,12 +2072,7 @@ zh-TW:
       no_iframe_support: 您的瀏覽器不支援 HTML 嵌入式框架,這是這項功能所必要的。
     export:
       title: 匯出
-      area_to_export: 要匯出的區域
       manually_select: 手動選擇不同的區域
-      format_to_export: 要匯出的格式
-      osm_xml_data: OpenStreetMap XML 資料
-      map_image: 地圖影像 (顯示標準圖層)
-      embeddable_html: 內嵌式 HTML
       licence: 授權
       licence_details_html: 開放街圖資料是以 %{odbl_link} (開放資料庫授權, Open Database License)
         來授權
@@ -2071,17 +2092,6 @@ zh-TW:
         other:
           title: 其他來源
           description: OpenStreetMap wiki 上列出的其他來源
-      options: 選項
-      format: 格式
-      scale: 比例
-      max: 最大
-      image_size: 圖片大小
-      zoom: 縮放
-      add_marker: 在地圖加上標記
-      latitude: 緯度:
-      longitude: 經度:
-      output: 輸出
-      paste_html: 貼上 HTML 以於網站內嵌
       export_button: 匯出
     fixthemap:
       title: 回報問題/改進地圖
@@ -2111,15 +2121,12 @@ zh-TW:
         url: https://wiki.openstreetmap.org/wiki/Zh-hant:Beginners%27_guide
         title: 新手指南
         description: 社群維護的新手指南
-      help:
-        title: å\8d\94å\8a©論壇
-        description: å\9c¨é\96\8bæ\94¾è¡\97å\9c\96ç\9a\84å\95\8fç­\94網ç«\99æ\8f\90å\87ºå\95\8fé¡\8cæ\88\96æ\90\9cå°\8bç­\94æ¡\88
+      community:
+        title: å¹«å\8a©è\88\87社群論壇
+        description: å°\8bæ±\82幫å\8a©è\88\87è¨\8eè«\96æ\9c\89é\97\9c OpenStreetMap ç\9a\84å\88\86享場æ\89\80
       mailing_lists:
         title: 郵件論壇
         description: 在不同主題或是地區的郵件論壇問問題或是討論有趣的事物。
-      community:
-        title: 社群論壇
-        description: 討論有關 OpenStreetMap 的分享場所。
       irc:
         title: IRC
         description: 使用各種不同語言在各種主題聊天互動。
@@ -2167,67 +2174,83 @@ zh-TW:
           primary: 一級道路
           secondary: 二級道路
           unclassified: 無編制道路
+          pedestrian: 人行道
           track: 產業道路
           bridleway: 馬道
           cycleway: 自行車道
           cycleway_national: 國家自行車道
           cycleway_regional: 區域自行車道
           cycleway_local: 地區自行車道
+          cycleway_mtb: 登山車路徑
           footway: 步道
           rail: 鐵路
+          train: 列車
           subway: 地下鐵
-          tram:
-          - 輕軌
-          - 電車軌道
-          cable:
-          - 大型纜車
-          - 升降吊椅
-          runway:
-          - 機場跑道
-          - 滑行道
-          apron:
-          - 機場停機坪
-          - 航廈
+          ferry: 渡輪
+          light_rail: 輕軌
+          tram: 路面電車
+          trolleybus: 無軌電車
+          bus: 公車
+          cable_car: 大型纜車
+          chair_lift: 升降吊椅
+          runway: 機場跑道
+          taxiway: 滑行道
+          apron: 機場停機坪
           admin: 行政區邊界
+          capital: 首都
+          city: 城市
+          orchard: 果園
+          vineyard: 葡萄園
           forest: 森林
-          wood: 樹木
+          wood: 森林
+          farmland: 農地
+          grass: 草坪
+          meadow: 牧草地
+          bare_rock: 裸岩
+          sand: 沙地
           golf: 高爾夫球場
           park: 公園
+          common: 共有地
+          built_up: 組成面積
           resident: 住宅區
-          common:
-          - 共有地
-          - 野草地
-          - 花園
           retail: 商店區
           industrial: 工業區
           commercial: 商業區
           heathland: 石楠荒地
-          lake:
-          - 湖泊
-          - 水庫
+          scrubland: 灌木叢林地
+          lake: 湖泊
+          reservoir: 水庫
+          intermittent_water: 間歇性水體
+          glacier: 冰河
+          reef: 礁
+          wetland: 濕地
           farm: 農田
           brownfield: 低污染再利用地
           cemetery: 公墓
           allotments: 社區農園
           pitch: 運動場
           centre: 運動中心
+          beach: 海灘
           reserve: 自然保護區
           military: 軍事區
-          school:
-          - 學校
-          - 大學
+          school: 學校;大學
+          university: 大學
+          hospital: 醫院
           building: 重要建築
           station: 鐵路車站
-          summit:
-          - 頂峰
-          - 山峰
+          summit: 頂峰
+          peak: 山峰
           tunnel: 虛線邊框 = 隧道
           bridge: 黑線邊框 = 橋樑
           private: 私人進出
           destination: 目的地進出
           construction: 建造中道路
+          bus_stop: 公車站
+          stop: 停車站
           bicycle_shop: 自行車店
+          bicycle_rental: 自行車出租
           bicycle_parking: 自行車停車場
+          bicycle_parking_small: 小型自行車停車場
           toilets: 廁所
     welcome:
       title: 歡迎!
@@ -2262,6 +2285,7 @@ zh-TW:
         imports: 匯入
         automated_edits: 自動化編輯
       start_mapping: 開始製圖
+      continue_authorization: 繼續授權
       add_a_note:
         title: 沒有時間編輯嗎?可加入註記!
         para_1: 如果你只想做一些微小改動,而沒有時間登入來學習如何編輯,那麼加入一項註記還是非常容易的。
@@ -2398,6 +2422,7 @@ zh-TW:
       oauth1_settings: OAuth 1 設定
       oauth2_applications: OAuth 2 應用程式
       oauth2_authorizations: OAuth 2 授權
+      muted_users: 已忽視使用者
   oauth:
     authorize:
       title: 授權使用您的帳號
@@ -2432,11 +2457,13 @@ zh-TW:
       read_gpx: 讀取私人 GPS 軌跡
       write_gpx: 上傳 GPS 軌跡
       write_notes: 修改註記
+      write_redactions: 編寫地圖資料
       read_email: 讀取使用者電子郵件位址
       skip_authorization: 自動核准申請
   oauth_clients:
     new:
       title: 註冊新的應用程式
+      disabled: 已停用 OAuth 1 應用程式的註冊
     edit:
       title: 編輯您的應用程式
     show:
@@ -2454,7 +2481,7 @@ zh-TW:
     index:
       title: 我的 OAuth 詳細資料
       my_tokens: 我授權的應用程式
-      list_tokens: 下列密鑰已核發給您名下的應用程式:
+      list_tokens: 下列權杖已核發給您名下的應用程式:
       application: 應用程式名稱
       issued_at: 已發於
       revoke: 撤銷!
@@ -2515,6 +2542,7 @@ zh-TW:
       title: 我的已授權應用程式
       application: 應用程式
       permissions: 權限
+      last_authorized: 最後授權
       no_applications_html: 您未授權任何 %{oauth2} 應用程式。
     application:
       revoke: 撤銷存取權限
@@ -2562,7 +2590,7 @@ zh-TW:
         rest_of_world: 世界其他地區
     terms_declined_flash:
       terms_declined_html: 我們很遺憾你已決定不接受新的貢獻者條款。有關詳細資訊,請參閱 %{terms_declined_link}。
-      terms_declined_link: 此 Wiki 頁面
+      terms_declined_link: 此 wiki 頁面
     no_such_user:
       title: 沒有這個使用者
       heading: 使用者 %{user} 不存在
@@ -2581,6 +2609,8 @@ zh-TW:
       my_dashboard: 我的功能面板
       blocks on me: 對我的封鎖
       blocks by me: 我所設的封鎖
+      create_mute: 忽視這名使用者
+      destroy_mute: 取消忽視這名使用者
       edit_profile: 編輯個人資料
       send message: 傳送訊息
       diary: 日記
@@ -2594,7 +2624,6 @@ zh-TW:
       ct status: 貢獻者條款:
       ct undecided: 未決定
       ct declined: 已拒絕
-      latest edit: 上次編輯於%{ago}:
       email address: 電子郵件地址:
       created from: 建立於:
       status: 狀態:
@@ -2602,14 +2631,18 @@ zh-TW:
       role:
         administrator: 這個使用者是一個管理員
         moderator: 這個使用者是一個仲裁員
+        importer: 此名使用者是匯入者
         grant:
           administrator: 授予管理員權限
           moderator: 授予仲裁員權限
+          importer: 授予匯入權限
         revoke:
           administrator: 撤銷管理員權限
           moderator: 撤銷仲裁員權限
+          importer: 撤銷匯入權限
       block_history: 已封鎖
       moderator_history: 給予封鎖
+      revoke_all_blocks: 撤銷所有封鎖
       comments: 評論
       create_block: 封鎖這位使用者
       activate_user: 解除這位使用者的封鎖狀態
@@ -2702,11 +2735,21 @@ zh-TW:
     revoke:
       title: 正在撤銷對 %{block_on} 的封鎖
       heading_html: 正在撤銷 %{block_by} 對 %{block_on} 的封鎖
-      time_future: 這項封鎖將於 %{time} 結束。
-      past: 這項封鎖已在%{time}結束,現在不能撤銷。
+      time_future_html: 這項封鎖將於 %{time} 結束。
+      past_html: 這項封鎖已在%{time}結束,現在不能撤銷。
       confirm: 你確定要撤銷這項封鎖?
       revoke: 撤銷!
       flash: 這項封鎖已被撤銷。
+    revoke_all:
+      title: 正在撤銷對%{block_on}的封鎖
+      heading_html: 正在撤銷對%{block_on}的所有封鎖
+      empty: '%{name}沒有生效的封鎖。'
+      confirm: 您確定要撤銷%{active_blocks}嗎?
+      active_blocks:
+        one: '%{count} 個生效封鎖'
+        other: '%{count} 個生效封鎖'
+      revoke: 撤銷!
+      flash: 已撤銷所有生效封鎖。
     helper:
       time_future_html: 於 %{time} 結束。
       until_login: 生效直至這個使用者登入為止。
@@ -2764,6 +2807,28 @@ zh-TW:
       showing_page: 第 %{page} 頁
       next: 下一頁 »
       previous: « 上一頁
+  user_mutes:
+    index:
+      title: 已忽視使用者
+      my_muted_users: 我忽視的使用者
+      you_have_muted_n_users:
+        one: 您已忽視 1 名使用者
+        other: 您已忽視 %{count} 名使用者
+      user_mute_explainer: 已忽視使用者的訊息會移至單獨的收件匣中,您將不會收到電子郵件通知。
+      user_mute_admins_and_moderators: 您可以忽視管理員和仲裁員,但仍會收到他們的訊息通知。
+      table:
+        thead:
+          muted_user: 已忽視使用者
+          actions: 操作
+        tbody:
+          unmute: 取消忽視
+          send_message: 寄送訊息
+    create:
+      notice: 您已忽視%{name}。
+      error: 無法忽視%{name}。%{full_message}。
+    destroy:
+      notice: 您取消了忽視%{name}。
+      error: 無法忽視使用者。請再試一次。
   notes:
     index:
       title: 由 %{user} 送出或評論的註記
@@ -2799,6 +2864,7 @@ zh-TW:
       reactivate: 重新開啟
       comment_and_resolve: 評論並解決
       comment: 評論
+      log_in_to_comment: 登入來評論此註記
       report_link_html: 如果此註記含有需要移除的敏感資訊,您可以%{link}。
       other_problems_resolve: 對於註記的所有其他問題,您可以依據評論內容來自行處理。
       other_problems_resolved: 對於其他類型回報,解決已經足夠了。
@@ -2850,12 +2916,10 @@ zh-TW:
           other: 您距離此地點在 %{count} 英尺內
       base:
         standard: 標準
-        cyclosm: CyclOSM
         cycle_map: 自行車地圖
         transport_map: 交通運輸地圖
         tracestracktop_topo: 蹤跡地圖地形
         hot: 人道救援
-        opnvkarte: 公共交通地圖
       layers:
         header: 地圖圖層
         notes: 地圖註記
@@ -2870,8 +2934,6 @@ zh-TW:
       osm_france: OpenStreetMap 法國
       thunderforest_credit: '%{thunderforest_link} 提供的圖磚'
       andy_allan: Andy Allan
-      opnvkarte_credit: '%{memomaps_link} 提供的圖磚'
-      memomaps: MeMoMaps
       tracestrack_credit: '%{tracestrack_link} 提供的圖磚'
       tracestrack: 蹤跡地圖
       hotosm_credit: 由 %{osm_france_link} 代管的 %{hotosm_link} 所提供圖磚樣式
@@ -2885,6 +2947,7 @@ zh-TW:
       map_data_zoom_in_tooltip: 放大以查看地圖圖資
       queryfeature_tooltip: 查詢圖徵
       queryfeature_disabled_tooltip: 放大地圖以查询圖徵
+      embed_html_disabled: HTML 內嵌對此地圖圖層不可用
     changesets:
       show:
         comment: 評論
diff --git a/config/openlayers.cfg b/config/openlayers.cfg
deleted file mode 100644 (file)
index 6f6b778..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-[first]
-
-[last]
-
-[include]
-OpenLayers/Map.js
-OpenLayers/Control/ArgParser.js
-OpenLayers/Control/Attribution.js
-OpenLayers/Control/DragFeature.js
-OpenLayers/Control/DrawFeature.js
-OpenLayers/Control/LayerSwitcher.js
-OpenLayers/Control/Navigation.js
-OpenLayers/Control/PanZoomBar.js
-OpenLayers/Control/Zoom.js
-OpenLayers/Control/PinchZoom.js
-OpenLayers/Control/ScaleLine.js
-OpenLayers/Control/SelectFeature.js
-OpenLayers/Control/TransformFeature.js
-OpenLayers/Layer.js
-OpenLayers/Layer/GML.js
-OpenLayers/Layer/Markers.js
-OpenLayers/Layer/SphericalMercator.js
-OpenLayers/Layer/OSM.js
-OpenLayers/Layer/Vector.js
-OpenLayers/Tile.js
-OpenLayers/Tile/Image.js
-OpenLayers/Feature/Vector.js
-OpenLayers/Strategy/Fixed.js
-OpenLayers/Strategy/BBOX.js
-OpenLayers/Protocol/HTTP.js
-OpenLayers/Format/QueryStringFilter.js
-OpenLayers/Format/GeoJSON.js
-OpenLayers/Format/OSM.js
-OpenLayers/Geometry/Point.js
-OpenLayers/Geometry/LinearRing.js
-OpenLayers/Handler/Point.js
-OpenLayers/Handler/RegularPolygon.js
-OpenLayers/Protocol/HTTP.js
-OpenLayers/Renderer.js
-OpenLayers/Renderer/Canvas.js
-OpenLayers/Renderer/SVG.js
-OpenLayers/Renderer/VML.js
-OpenLayers/Rule.js
-OpenLayers/Icon.js
-OpenLayers/Marker.js
-OpenLayers/Popup/FramedCloud.js
-OpenLayers/Projection.js
-OpenLayers/Console.js
-OpenLayers/Lang.js
-OpenLayers/Lang/ar.js
-OpenLayers/Lang/be-tarask.js
-OpenLayers/Lang/bg.js
-OpenLayers/Lang/br.js
-OpenLayers/Lang/ca.js
-OpenLayers/Lang/cs-CZ.js
-OpenLayers/Lang/da-DK.js
-OpenLayers/Lang/de.js
-OpenLayers/Lang/el.js
-OpenLayers/Lang/en-CA.js
-OpenLayers/Lang/en.js
-OpenLayers/Lang/es.js
-OpenLayers/Lang/fi.js
-OpenLayers/Lang/fr.js
-OpenLayers/Lang/fur.js
-OpenLayers/Lang/gl.js
-OpenLayers/Lang/gsw.js
-OpenLayers/Lang/hr.js
-OpenLayers/Lang/hsb.js
-OpenLayers/Lang/hu.js
-OpenLayers/Lang/ia.js
-OpenLayers/Lang/id.js
-OpenLayers/Lang/io.js
-OpenLayers/Lang/is.js
-OpenLayers/Lang/it.js
-OpenLayers/Lang/ja.js
-OpenLayers/Lang/km.js
-OpenLayers/Lang/ksh.js
-OpenLayers/Lang/lt.js
-OpenLayers/Lang/nb.js
-OpenLayers/Lang/nds.js
-OpenLayers/Lang/nl.js
-OpenLayers/Lang/nn.js
-OpenLayers/Lang/oc.js
-OpenLayers/Lang/pl.js
-OpenLayers/Lang/pt-BR.js
-OpenLayers/Lang/pt.js
-OpenLayers/Lang/ru.js
-OpenLayers/Lang/sk.js
-OpenLayers/Lang/sv-SE.js
-OpenLayers/Lang/te.js
-OpenLayers/Lang/vi.js
-OpenLayers/Lang/zh-CN.js
-OpenLayers/Lang/zh-TW.js
-
-[exclude]
index 43c43a793461242e12541da86ce4531ae43fd7c0..af5730d21ddfd2ce02ee550f5e7bc2f0294d03ac 100644 (file)
@@ -21,8 +21,8 @@ OpenStreetMap::Application.routes.draw do
     post "changeset/:id/upload" => "api/changesets#upload", :as => :changeset_upload, :id => /\d+/
     get "changeset/:id/download" => "api/changesets#download", :as => :changeset_download, :id => /\d+/
     get "changeset/:id" => "api/changesets#show", :as => :changeset_show, :id => /\d+/
-    post "changeset/:id/subscribe" => "api/changesets#subscribe", :as => :changeset_subscribe, :id => /\d+/
-    post "changeset/:id/unsubscribe" => "api/changesets#unsubscribe", :as => :changeset_unsubscribe, :id => /\d+/
+    post "changeset/:id/subscribe" => "api/changesets#subscribe", :as => :api_changeset_subscribe, :id => /\d+/
+    post "changeset/:id/unsubscribe" => "api/changesets#unsubscribe", :as => :api_changeset_unsubscribe, :id => /\d+/
     put "changeset/:id" => "api/changesets#update", :id => /\d+/
     put "changeset/:id/close" => "api/changesets#close", :as => :changeset_close, :id => /\d+/
     get "changesets" => "api/changesets#query"
@@ -111,10 +111,13 @@ OpenStreetMap::Application.routes.draw do
   # Data browsing
   get "/way/:id" => "browse#way", :id => /\d+/, :as => :way
   get "/way/:id/history" => "browse#way_history", :id => /\d+/, :as => :way_history
+  resources :old_ways, :path => "/way/:id/history", :id => /\d+/, :version => /\d+/, :param => :version, :only => :show
   get "/node/:id" => "browse#node", :id => /\d+/, :as => :node
   get "/node/:id/history" => "browse#node_history", :id => /\d+/, :as => :node_history
+  resources :old_nodes, :path => "/node/:id/history", :id => /\d+/, :version => /\d+/, :param => :version, :only => :show
   get "/relation/:id" => "browse#relation", :id => /\d+/, :as => :relation
   get "/relation/:id/history" => "browse#relation_history", :id => /\d+/, :as => :relation_history
+  resources :old_relations, :path => "/relation/:id/history", :id => /\d+/, :version => /\d+/, :param => :version, :only => :show
   get "/changeset/:id" => "browse#changeset", :as => :changeset, :id => /\d+/
   get "/changeset/:id/comments/feed" => "changeset_comments#index", :as => :changeset_comments_feed, :id => /\d*/, :defaults => { :format => "rss" }
   resources :notes, :path => "note", :only => [:show, :new]
@@ -124,6 +127,8 @@ OpenStreetMap::Application.routes.draw do
   get "/user/:display_name/notes" => "notes#index", :as => :user_notes
   get "/history/friends" => "changesets#index", :friends => true, :as => "friend_changesets", :defaults => { :format => :html }
   get "/history/nearby" => "changesets#index", :nearby => true, :as => "nearby_changesets", :defaults => { :format => :html }
+  match "/changeset/:id/subscribe" => "changesets#subscribe", :via => [:get, :post], :as => "changeset_subscribe"
+  match "/changeset/:id/unsubscribe" => "changesets#unsubscribe", :via => [:get, :post], :as => "changeset_unsubscribe"
 
   get "/browse/way/:id",                :to => redirect(:path => "/way/%{id}")
   get "/browse/way/:id/history",        :to => redirect(:path => "/way/%{id}/history")
@@ -172,8 +177,12 @@ OpenStreetMap::Application.routes.draw do
   match "/user/confirm" => "confirmations#confirm", :via => [:get, :post]
   match "/user/confirm-email" => "confirmations#confirm_email", :via => [:get, :post]
   post "/user/go_public" => "users#go_public"
-  match "/user/reset-password" => "passwords#reset_password", :via => [:get, :post], :as => :user_reset_password
-  match "/user/forgot-password" => "passwords#lost_password", :via => [:get, :post], :as => :user_forgot_password
+  scope :user, :as => "user" do
+    get "forgot-password" => "passwords#new"
+    post "forgot-password" => "passwords#create"
+    get "reset-password" => "passwords#edit"
+    post "reset-password" => "passwords#update"
+  end
   get "/user/suspended" => "users#suspended"
 
   get "/index.html", :to => redirect(:path => "/")
@@ -237,8 +246,8 @@ OpenStreetMap::Application.routes.draw do
   post "/user/:display_name/diary/:id/unhide" => "diary_entries#unhide", :id => /\d+/, :as => :unhide_diary_entry
   post "/user/:display_name/diary/:id/hidecomment/:comment" => "diary_entries#hidecomment", :id => /\d+/, :comment => /\d+/, :as => :hide_diary_comment
   post "/user/:display_name/diary/:id/unhidecomment/:comment" => "diary_entries#unhidecomment", :id => /\d+/, :comment => /\d+/, :as => :unhide_diary_comment
-  post "/user/:display_name/diary/:id/subscribe" => "diary_entries#subscribe", :as => :diary_entry_subscribe, :id => /\d+/
-  post "/user/:display_name/diary/:id/unsubscribe" => "diary_entries#unsubscribe", :as => :diary_entry_unsubscribe, :id => /\d+/
+  match "/user/:display_name/diary/:id/subscribe" => "diary_entries#subscribe", :via => [:get, :post], :as => :diary_entry_subscribe, :id => /\d+/
+  match "/user/:display_name/diary/:id/unsubscribe" => "diary_entries#unsubscribe", :via => [:get, :post], :as => :diary_entry_unsubscribe, :id => /\d+/
 
   # user pages
   resources :users, :path => "user", :param => :display_name, :only => [:show, :destroy]
@@ -278,9 +287,12 @@ OpenStreetMap::Application.routes.draw do
   # messages
   resources :messages, :only => [:create, :show, :destroy] do
     post :mark
+    patch :unmute
+
     match :reply, :via => [:get, :post]
     collection do
       get :inbox
+      get :muted
       get :outbox
     end
   end
@@ -289,6 +301,12 @@ OpenStreetMap::Application.routes.draw do
   get "/message/new/:display_name" => "messages#new", :as => "new_message"
   get "/message/read/:message_id", :to => redirect(:path => "/messages/%{message_id}")
 
+  # muting users
+  scope "/user/:display_name" do
+    resource :user_mute, :only => [:create, :destroy], :path => "mute"
+  end
+  resources :user_mutes, :only => [:index]
+
   # oauth admin pages (i.e: for setting up new clients, etc...)
   scope "/user/:display_name" do
     resources :oauth_clients
@@ -308,6 +326,7 @@ OpenStreetMap::Application.routes.draw do
   get "/blocks/new/:display_name" => "user_blocks#new", :as => "new_user_block"
   resources :user_blocks
   match "/blocks/:id/revoke" => "user_blocks#revoke", :via => [:get, :post], :as => "revoke_user_block"
+  match "/user/:display_name/blocks/revoke_all" => "user_blocks#revoke_all", :via => [:get, :post], :as => "revoke_all_user_blocks"
 
   # issues and reports
   resources :issues do
index 87c467c88301b11970ea43e365134f58f153bb0a..c057be978a841485174d6714ea3499744011fd2e 100644 (file)
@@ -45,6 +45,8 @@ default_note_query_limit: 100
 max_note_query_limit: 10000
 # Maximum value of open issues counter for moderators, anything equal or greater to this value "n" is shown as "n+"
 max_issues_count: 99
+# Maximum number of points in a GPX trace
+max_trace_size: 1000000
 # Zoom level to use for postcode results from the geocoder
 postcode_zoom: 15
 # Timeout for API calls in seconds
@@ -53,6 +55,8 @@ api_timeout: 300
 web_timeout: 30
 # Periods (in hours) which are allowed for user blocks
 user_block_periods: [0, 1, 3, 6, 12, 24, 48, 96, 168, 336, 731, 4383, 8766, 87660]
+# Account deletion cooldown period (in hours) since last changeset close; null to disable, 0 to make sure there aren't any open changesets when the deletion happens
+user_account_deletion_delay: null
 # Rate limit for message sending
 max_messages_per_hour: 60
 # Rate limit for friending
@@ -95,6 +99,7 @@ attachments_dir: ":rails_root/public/attachments"
 basic_auth_support: true
 # Enable legacy OAuth 1.0 support
 oauth_10_support: true
+oauth_10_registration: true
 # URL of Nominatim instance to use for geocoding
 nominatim_url: "https://nominatim.openstreetmap.org/"
 # Default editor
index 0cfa74cd70738ca851244a4830bf2b7bb0ed63fe..fe5aa5d897341348905eb8b349ad8bd601016107 100644 (file)
@@ -20,8 +20,8 @@ trace_file_storage: "test"
 trace_image_storage: "test"
 trace_icon_storage: "test"
 # Lower some rate limits for testing
-max_changeset_comments_per_hour: 30
-moderator_changeset_comments_per_hour: 60
+max_changeset_comments_per_hour: 10
+moderator_changeset_comments_per_hour: 15
 # Private key for signing id_tokens
 doorkeeper_signing_key: |
   -----BEGIN PRIVATE KEY-----
index 09b0ae3b07c90f9869e04a418fb66897575ffbbb..5cac1074051770992b7ede7a6c9f35f6e92f65ac 100644 (file)
@@ -21,7 +21,7 @@ class MergeAclAddressAndMask < ActiveRecord::Migration[4.2]
       prefix = 0
 
       while netmask != "0.0.0.0"
-        netmask = netmask << 1
+        netmask <<= 1
         prefix += 1
       end
 
diff --git a/db/migrate/20231010201451_create_user_mutes.rb b/db/migrate/20231010201451_create_user_mutes.rb
new file mode 100644 (file)
index 0000000..8cb6ff8
--- /dev/null
@@ -0,0 +1,15 @@
+class CreateUserMutes < ActiveRecord::Migration[7.0]
+  def change
+    create_table :user_mutes do |t|
+      t.references :owner, :null => false, :index => false
+      t.references :subject, :null => false, :index => false
+
+      t.timestamps
+
+      t.foreign_key :users, :column => :owner_id
+      t.foreign_key :users, :column => :subject_id
+
+      t.index [:owner_id, :subject_id], :unique => true
+    end
+  end
+end
diff --git a/db/migrate/20231010203028_add_muted_flag_to_messages.rb b/db/migrate/20231010203028_add_muted_flag_to_messages.rb
new file mode 100644 (file)
index 0000000..e517aea
--- /dev/null
@@ -0,0 +1,5 @@
+class AddMutedFlagToMessages < ActiveRecord::Migration[7.0]
+  def change
+    add_column :messages, :muted, :boolean, :default => false, :null => false
+  end
+end
diff --git a/db/migrate/20231117170422_add_closed_at_index_to_changesets.rb b/db/migrate/20231117170422_add_closed_at_index_to_changesets.rb
new file mode 100644 (file)
index 0000000..e9d7e62
--- /dev/null
@@ -0,0 +1,7 @@
+class AddClosedAtIndexToChangesets < ActiveRecord::Migration[7.1]
+  disable_ddl_transaction!
+
+  def change
+    add_index :changesets, [:user_id, :closed_at], :algorithm => :concurrently
+  end
+end
diff --git a/db/migrate/20231206141457_alter_sequences_bigint.rb b/db/migrate/20231206141457_alter_sequences_bigint.rb
new file mode 100644 (file)
index 0000000..9920fc8
--- /dev/null
@@ -0,0 +1,17 @@
+class AlterSequencesBigint < ActiveRecord::Migration[7.1]
+  def up
+    safety_assured do
+      execute "ALTER SEQUENCE oauth_nonces_id_seq AS bigint"
+      execute "ALTER SEQUENCE notes_id_seq AS bigint"
+      execute "ALTER SEQUENCE note_comments_id_seq AS bigint"
+    end
+  end
+
+  def down
+    safety_assured do
+      execute "ALTER SEQUENCE oauth_nonces_id_seq AS integer"
+      execute "ALTER SEQUENCE notes_id_seq AS integer"
+      execute "ALTER SEQUENCE note_comments_id_seq AS integer"
+    end
+  end
+end
diff --git a/db/migrate/20231213182102_add_canonical_user_index.rb b/db/migrate/20231213182102_add_canonical_user_index.rb
new file mode 100644 (file)
index 0000000..905fb32
--- /dev/null
@@ -0,0 +1,7 @@
+class AddCanonicalUserIndex < ActiveRecord::Migration[7.1]
+  disable_ddl_transaction!
+
+  def change
+    add_index :users, "LOWER(NORMALIZE(display_name, NFKC))", :name => "users_display_name_canonical_idx", :algorithm => :concurrently
+  end
+end
diff --git a/db/migrate/20240117185445_drop_lowercase_user_index.rb b/db/migrate/20240117185445_drop_lowercase_user_index.rb
new file mode 100644 (file)
index 0000000..82bd5ec
--- /dev/null
@@ -0,0 +1,5 @@
+class DropLowercaseUserIndex < ActiveRecord::Migration[7.1]
+  def change
+    remove_index :users, "LOWER(display_name)", :name => "users_display_name_lower_idx"
+  end
+end
index 56e778523f7a7597d3a26670cc0dae97187a57e7..4998bc694a139be2e9b477e5f12137f499f6a713 100644 (file)
@@ -16,6 +16,13 @@ SET row_security = off;
 CREATE EXTENSION IF NOT EXISTS btree_gist WITH SCHEMA public;
 
 
+--
+-- Name: EXTENSION btree_gist; Type: COMMENT; Schema: -; Owner: -
+--
+
+COMMENT ON EXTENSION btree_gist IS 'support for indexing common datatypes in GiST';
+
+
 --
 -- Name: format_enum; Type: TYPE; Schema: public; Owner: -
 --
@@ -944,7 +951,8 @@ CREATE TABLE public.messages (
     to_user_id bigint NOT NULL,
     to_user_visible boolean DEFAULT true NOT NULL,
     from_user_visible boolean DEFAULT true NOT NULL,
-    body_format public.format_enum DEFAULT 'markdown'::public.format_enum NOT NULL
+    body_format public.format_enum DEFAULT 'markdown'::public.format_enum NOT NULL,
+    muted boolean DEFAULT false NOT NULL
 );
 
 
@@ -1017,7 +1025,6 @@ CREATE TABLE public.note_comments (
 --
 
 CREATE SEQUENCE public.note_comments_id_seq
-    AS integer
     START WITH 1
     INCREMENT BY 1
     NO MINVALUE
@@ -1053,7 +1060,6 @@ CREATE TABLE public.notes (
 --
 
 CREATE SEQUENCE public.notes_id_seq
-    AS integer
     START WITH 1
     INCREMENT BY 1
     NO MINVALUE
@@ -1199,7 +1205,6 @@ CREATE TABLE public.oauth_nonces (
 --
 
 CREATE SEQUENCE public.oauth_nonces_id_seq
-    AS integer
     START WITH 1
     INCREMENT BY 1
     NO MINVALUE
@@ -1450,6 +1455,38 @@ CREATE SEQUENCE public.user_blocks_id_seq
 ALTER SEQUENCE public.user_blocks_id_seq OWNED BY public.user_blocks.id;
 
 
+--
+-- Name: user_mutes; Type: TABLE; Schema: public; Owner: -
+--
+
+CREATE TABLE public.user_mutes (
+    id bigint NOT NULL,
+    owner_id bigint NOT NULL,
+    subject_id bigint NOT NULL,
+    created_at timestamp(6) without time zone NOT NULL,
+    updated_at timestamp(6) without time zone NOT NULL
+);
+
+
+--
+-- Name: user_mutes_id_seq; Type: SEQUENCE; Schema: public; Owner: -
+--
+
+CREATE SEQUENCE public.user_mutes_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    NO MAXVALUE
+    CACHE 1;
+
+
+--
+-- Name: user_mutes_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
+--
+
+ALTER SEQUENCE public.user_mutes_id_seq OWNED BY public.user_mutes.id;
+
+
 --
 -- Name: user_preferences; Type: TABLE; Schema: public; Owner: -
 --
@@ -1831,6 +1868,13 @@ ALTER TABLE ONLY public.reports ALTER COLUMN id SET DEFAULT nextval('public.repo
 ALTER TABLE ONLY public.user_blocks ALTER COLUMN id SET DEFAULT nextval('public.user_blocks_id_seq'::regclass);
 
 
+--
+-- Name: user_mutes id; Type: DEFAULT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY public.user_mutes ALTER COLUMN id SET DEFAULT nextval('public.user_mutes_id_seq'::regclass);
+
+
 --
 -- Name: user_roles id; Type: DEFAULT; Schema: public; Owner: -
 --
@@ -2212,6 +2256,14 @@ ALTER TABLE ONLY public.user_blocks
     ADD CONSTRAINT user_blocks_pkey PRIMARY KEY (id);
 
 
+--
+-- Name: user_mutes user_mutes_pkey; Type: CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY public.user_mutes
+    ADD CONSTRAINT user_mutes_pkey PRIMARY KEY (id);
+
+
 --
 -- Name: user_preferences user_preferences_pkey; Type: CONSTRAINT; Schema: public; Owner: -
 --
@@ -2499,6 +2551,13 @@ CREATE INDEX index_changeset_comments_on_changeset_id_and_created_at ON public.c
 CREATE INDEX index_changeset_comments_on_created_at ON public.changeset_comments USING btree (created_at);
 
 
+--
+-- Name: index_changesets_on_user_id_and_closed_at; Type: INDEX; Schema: public; Owner: -
+--
+
+CREATE INDEX index_changesets_on_user_id_and_closed_at ON public.changesets USING btree (user_id, closed_at);
+
+
 --
 -- Name: index_changesets_subscribers_on_changeset_id; Type: INDEX; Schema: public; Owner: -
 --
@@ -2723,6 +2782,13 @@ CREATE INDEX index_reports_on_user_id ON public.reports USING btree (user_id);
 CREATE INDEX index_user_blocks_on_user_id ON public.user_blocks USING btree (user_id);
 
 
+--
+-- Name: index_user_mutes_on_owner_id_and_subject_id; Type: INDEX; Schema: public; Owner: -
+--
+
+CREATE UNIQUE INDEX index_user_mutes_on_owner_id_and_subject_id ON public.user_mutes USING btree (owner_id, subject_id);
+
+
 --
 -- Name: messages_from_user_id_idx; Type: INDEX; Schema: public; Owner: -
 --
@@ -2857,17 +2923,17 @@ CREATE UNIQUE INDEX users_auth_idx ON public.users USING btree (auth_provider, a
 
 
 --
--- Name: users_display_name_idx; Type: INDEX; Schema: public; Owner: -
+-- Name: users_display_name_canonical_idx; Type: INDEX; Schema: public; Owner: -
 --
 
-CREATE UNIQUE INDEX users_display_name_idx ON public.users USING btree (display_name);
+CREATE INDEX users_display_name_canonical_idx ON public.users USING btree (lower(NORMALIZE(display_name, NFKC)));
 
 
 --
--- Name: users_display_name_lower_idx; Type: INDEX; Schema: public; Owner: -
+-- Name: users_display_name_idx; Type: INDEX; Schema: public; Owner: -
 --
 
-CREATE INDEX users_display_name_lower_idx ON public.users USING btree (lower((display_name)::text));
+CREATE UNIQUE INDEX users_display_name_idx ON public.users USING btree (display_name);
 
 
 --
@@ -3096,6 +3162,14 @@ ALTER TABLE ONLY public.oauth_access_grants
     ADD CONSTRAINT fk_rails_330c32d8d9 FOREIGN KEY (resource_owner_id) REFERENCES public.users(id) NOT VALID;
 
 
+--
+-- Name: user_mutes fk_rails_591dad3359; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY public.user_mutes
+    ADD CONSTRAINT fk_rails_591dad3359 FOREIGN KEY (owner_id) REFERENCES public.users(id);
+
+
 --
 -- Name: oauth_access_tokens fk_rails_732cb83ab7; Type: FK CONSTRAINT; Schema: public; Owner: -
 --
@@ -3144,6 +3218,14 @@ ALTER TABLE ONLY public.oauth_applications
     ADD CONSTRAINT fk_rails_cc886e315a FOREIGN KEY (owner_id) REFERENCES public.users(id) NOT VALID;
 
 
+--
+-- Name: user_mutes fk_rails_e9dd4fb6c3; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY public.user_mutes
+    ADD CONSTRAINT fk_rails_e9dd4fb6c3 FOREIGN KEY (subject_id) REFERENCES public.users(id);
+
+
 --
 -- Name: oauth_access_tokens fk_rails_ee63f25419; Type: FK CONSTRAINT; Schema: public; Owner: -
 --
@@ -3499,8 +3581,14 @@ INSERT INTO "schema_migrations" (version) VALUES
 ('23'),
 ('22'),
 ('21'),
+('20240117185445'),
+('20231213182102'),
+('20231206141457'),
+('20231117170422'),
 ('20231101222146'),
 ('20231029151516'),
+('20231010203028'),
+('20231010201451'),
 ('20231010194809'),
 ('20231007141103'),
 ('20230830115220'),
index 274ece7d9a3160e6eba8f194fcbe6eb7956bffbc..3e1cb9afa6d9cf6da4ca51d80255576c3f25f309 100644 (file)
@@ -6,8 +6,9 @@ module GPX
 
     attr_reader :possible_points, :actual_points, :tracksegs
 
-    def initialize(file)
+    def initialize(file, options = {})
       @file = file
+      @maximum_points = options[:maximum_points] || Float::INFINITY
     end
 
     def parse_file(reader)
@@ -19,6 +20,7 @@ module GPX
           if reader.name == "trkpt"
             point = TrkPt.new(@tracksegs, reader["lat"].to_f, reader["lon"].to_f)
             @possible_points += 1
+            raise FileTooBigError if @possible_points > @maximum_points
           elsif reader.name == "ele" && point
             point.altitude = reader.read_string.to_f
           elsif reader.name == "time" && point
@@ -172,4 +174,10 @@ module GPX
         longitude >= -180 && longitude <= 180
     end
   end
+
+  class FileTooBigError < RuntimeError
+    def initialise
+      super("GPX File contains too many points")
+    end
+  end
 end
index 0456c08732a927eb1c944f74b5ccc969f9971ce4..88db38eb4bf914b8331655e134cbdf70b243c4ee 100644 (file)
@@ -1,7 +1,8 @@
 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
+  MODERATOR_SCOPES = %w[write_redactions].freeze
+  OAUTH2_SCOPES = %w[write_redactions openid].freeze
 
   class Scope
     attr_reader :name
index 905f3ac97459e4890d5270d59f1d76ef110c5746..65eab6907a00ff6008299f28d7d2beb8b674d78c 100644 (file)
@@ -8,7 +8,7 @@ module OSM
   # The base class for API Errors.
   class APIError < RuntimeError
     def initialize(message = "Generic API Error")
-      super message
+      super(message)
     end
 
     def status
@@ -19,7 +19,7 @@ module OSM
   # Raised when access is denied.
   class APIAccessDenied < APIError
     def initialize
-      super "Access denied"
+      super("Access denied")
     end
 
     def status
@@ -30,7 +30,7 @@ module OSM
   # Raised when an API object is not found.
   class APINotFoundError < APIError
     def initialize
-      super "Object not found"
+      super("Object not found")
     end
 
     def status
@@ -41,7 +41,7 @@ module OSM
   # Raised when a precondition to an API action fails sanity check.
   class APIPreconditionFailedError < APIError
     def initialize(message = "")
-      super "Precondition failed: #{message}"
+      super("Precondition failed: #{message}")
     end
 
     def status
@@ -55,7 +55,7 @@ module OSM
       @object = object
       @object_id = object_id
 
-      super "The #{object} with the id #{object_id} has already been deleted"
+      super("The #{object} with the id #{object_id} has already been deleted")
     end
 
     attr_reader :object, :object_id
@@ -68,7 +68,7 @@ module OSM
   # Raised when the user logged in isn't the same as the changeset
   class APIUserChangesetMismatchError < APIError
     def initialize
-      super "The user doesn't own that changeset"
+      super("The user doesn't own that changeset")
     end
 
     def status
@@ -81,7 +81,7 @@ module OSM
     def initialize(changeset)
       @changeset = changeset
 
-      super "The changeset #{changeset.id} was closed at #{changeset.closed_at}"
+      super("The changeset #{changeset.id} was closed at #{changeset.closed_at}")
     end
 
     attr_reader :changeset
@@ -96,7 +96,7 @@ module OSM
     def initialize(changeset)
       @changeset = changeset
 
-      super "The changeset #{changeset.id} is not yet closed."
+      super("The changeset #{changeset.id} is not yet closed.")
     end
 
     attr_reader :changeset
@@ -111,7 +111,7 @@ module OSM
     def initialize(changeset)
       @changeset = changeset
 
-      super "You are already subscribed to changeset #{changeset.id}."
+      super("You are already subscribed to changeset #{changeset.id}.")
     end
 
     attr_reader :changeset
@@ -126,7 +126,7 @@ module OSM
     def initialize(changeset)
       @changeset = changeset
 
-      super "You are not subscribed to changeset #{changeset.id}."
+      super("You are not subscribed to changeset #{changeset.id}.")
     end
 
     attr_reader :changeset
@@ -139,7 +139,7 @@ module OSM
   # Raised when a change is expecting a changeset, but the changeset doesn't exist
   class APIChangesetMissingError < APIError
     def initialize
-      super "You need to supply a changeset to be able to make a change"
+      super("You need to supply a changeset to be able to make a change")
     end
 
     def status
@@ -151,7 +151,7 @@ module OSM
   # the changeset ID that the diff was uploaded to.
   class APIChangesetMismatchError < APIError
     def initialize(provided, allowed)
-      super "Changeset mismatch: Provided #{provided} but only #{allowed} is allowed"
+      super("Changeset mismatch: Provided #{provided} but only #{allowed} is allowed")
     end
 
     def status
@@ -163,7 +163,7 @@ module OSM
   # modify, or delete
   class APIChangesetActionInvalid < APIError
     def initialize(provided)
-      super "Unknown action #{provided}, choices are create, modify, delete"
+      super("Unknown action #{provided}, choices are create, modify, delete")
     end
 
     def status
@@ -175,7 +175,7 @@ module OSM
   # they should.
   class APIBadXMLError < APIError
     def initialize(model, xml, message = "")
-      super "Cannot parse valid #{model} from xml string #{xml}. #{message}"
+      super("Cannot parse valid #{model} from xml string #{xml}. #{message}")
     end
 
     def status
@@ -191,7 +191,7 @@ module OSM
       @provided = provided
       @latest = latest
 
-      super "Version mismatch: Provided #{provided}, server had: #{latest} of #{type} #{id}"
+      super("Version mismatch: Provided #{provided}, server had: #{latest} of #{type} #{id}")
     end
 
     attr_reader :provided, :latest, :id, :type
@@ -209,7 +209,7 @@ module OSM
       @id = id
       @tag_key = tag_key
 
-      super "Element #{type}/#{id} has duplicate tags with key #{tag_key}"
+      super("Element #{type}/#{id} has duplicate tags with key #{tag_key}")
     end
 
     attr_reader :type, :id, :tag_key
@@ -223,7 +223,7 @@ module OSM
   # This prevents ways from being to long and difficult to work with
   class APITooManyWayNodesError < APIError
     def initialize(id, provided, max)
-      super "You tried to add #{provided} nodes to way #{id}, however only #{max} are allowed"
+      super("You tried to add #{provided} nodes to way #{id}, however only #{max} are allowed")
 
       @id = id
       @provided = provided
@@ -241,7 +241,7 @@ module OSM
   # This prevents relations from being too complex and difficult to work with
   class APITooManyRelationMembersError < APIError
     def initialize(id, provided, max)
-      super "You tried to add #{provided} members to relation #{id}, however only #{max} are allowed"
+      super("You tried to add #{provided} members to relation #{id}, however only #{max} are allowed")
 
       @id = id
       @provided = provided
@@ -275,7 +275,7 @@ module OSM
   # raised when an API call is made using a method not supported on that URI
   class APIBadMethodError < APIError
     def initialize(supported_method)
-      super "Only method #{supported_method} is supported on this URI"
+      super("Only method #{supported_method} is supported on this URI")
     end
 
     def status
@@ -287,7 +287,7 @@ module OSM
   # raised when an API call takes too long
   class APITimeoutError < APIError
     def initialize
-      super "Request timed out"
+      super("Request timed out")
     end
 
     def status
@@ -300,7 +300,7 @@ module OSM
   # an element - only historical versions can be redacted.
   class APICannotRedactError < APIError
     def initialize
-      super "Cannot redact current version of element, only historical versions may be redacted."
+      super("Cannot redact current version of element, only historical versions may be redacted.")
     end
 
     def status
@@ -313,7 +313,7 @@ module OSM
     def initialize(note)
       @note = note
 
-      super "The note #{note.id} was closed at #{note.closed_at}"
+      super("The note #{note.id} was closed at #{note.closed_at}")
     end
 
     attr_reader :note
@@ -328,7 +328,7 @@ module OSM
     def initialize(note)
       @note = note
 
-      super "The note #{note.id} is already open"
+      super("The note #{note.id} is already open")
     end
 
     attr_reader :note
@@ -343,7 +343,7 @@ module OSM
     def initialize(key)
       @key = key
 
-      super "Duplicate preferences with key #{key}"
+      super("Duplicate preferences with key #{key}")
     end
 
     attr_reader :key
@@ -356,7 +356,7 @@ module OSM
   # Raised when a rate limit is exceeded
   class APIRateLimitExceeded < APIError
     def initialize
-      super "Rate limit exceeded"
+      super("Rate limit exceeded")
     end
 
     def status
@@ -502,15 +502,8 @@ module OSM
   end
 
   # Construct a random token of a given length
-  def self.make_token(length = 30)
-    chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
-    token = ""
-
-    length.times do
-      token += chars[(rand * chars.length).to_i].chr
-    end
-
-    token
+  def self.make_token(length = 24)
+    SecureRandom.urlsafe_base64(length)
   end
 
   # Return an SQL fragment to select a given area of the globe
index 28d755b24d4a40e74934d50600258764234d5803..81de3ef587402b35eeff71727e49b85da903da81 100755 (executable)
@@ -33,6 +33,6 @@ mail = Mail.new($stdin.read
 message = Message.from_mail(mail, from, to)
 message.save!
 
-UserMailer.message_notification(message).deliver
+UserMailer.message_notification(message).deliver if message.notify_recipient?
 
 exit 0
index 24b8f64e8f309c5a9b5496e3303fac066231a4f9..18ba81431c0a310eba5c96d15c8da2ec88aa560e 100644 (file)
@@ -1,13 +1,5 @@
 /^$/d
 /^--/d
-/^CREATE EXTENSION IF NOT EXISTS plpgsql /d
-/^COMMENT ON EXTENSION plpgsql /d
-/^COMMENT ON EXTENSION btree_gist /d
 /^SET default_with_oids /d
 /^SET default_table_access_method /d
 /^SET idle_in_transaction_session_timeout /d
-/^    AS integer$/d
-
-s/ IMMUTABLE / /
-
-s/ timestamp(6) / timestamp /
index 7734ce996f7f095dffc871c2b01d80cfc9aa3ce8..8ddc54561c52b93b7110fc75681b471810f8ac1d 100644 (file)
@@ -9,11 +9,11 @@ class GuestApiAbilityTest < ApiAbilityTest
   test "note permissions for a guest" do
     ability = ApiAbility.new nil
 
-    [:index, :create, :comment, :feed, :show, :search].each do |action|
+    [:index, :create, :feed, :show, :search].each do |action|
       assert ability.can?(action, Note), "should be able to #{action} Notes"
     end
 
-    [:close, :reopen, :destroy].each do |action|
+    [:comment, :close, :reopen, :destroy].each do |action|
       assert ability.cannot?(action, Note), "should not be able to #{action} Notes"
     end
   end
index f6546a550d6cb4ade8238ba75bda6364752e6e60..ef8f0e371feb924e35651e227fe47dbaf279f572 100644 (file)
@@ -10,4 +10,35 @@ class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
   driven_by :selenium, :using => :headless_firefox do |options|
     options.add_preference("intl.accept_languages", "en")
   end
+
+  def before_setup
+    super
+    osm_website_app = create(:oauth_application, :name => "OpenStreetMap Web Site", :scopes => "write_api write_notes")
+    Settings.oauth_application = osm_website_app.uid
+  end
+
+  def after_teardown
+    Settings.reload!
+    super
+  end
+
+  private
+
+  def sign_in_as(user)
+    visit login_path
+    within "form", :text => "Email Address or Username" do
+      fill_in "username", :with => user.email
+      fill_in "password", :with => "test"
+      click_on "Login"
+    end
+  end
+
+  def sign_out
+    visit logout_path
+    click_on "Logout", :match => :first
+  end
+
+  def within_sidebar(&block)
+    within "#sidebar_content", &block
+  end
 end
index 7546c3797ee6f2939834dd1d9a0fc1b68587f6ba..131292f412d90f286b8798b81b84bde1015b2be4 100644 (file)
@@ -152,4 +152,23 @@ class AccountsControllerTest < ActionDispatch::IntegrationTest
     # Make sure we have a button to "go public"
     assert_select "form.button_to[action='/user/go_public']", true
   end
+
+  def test_destroy_allowed
+    user = create(:user)
+    session_for(user)
+
+    delete account_path
+    assert_response :redirect
+  end
+
+  def test_destroy_not_allowed
+    with_user_account_deletion_delay(24) do
+      user = create(:user)
+      create(:changeset, :user => user, :created_at => Time.now.utc)
+      session_for(user)
+
+      delete account_path
+      assert_response :bad_request
+    end
+  end
 end
index 8efa37d875aeeaf727a3cc61ed3892d99a0e1116..3278b2101f2c477b65915cdc9a6a1cf864cdf6b4 100644 (file)
@@ -2370,14 +2370,14 @@ module Api
       changeset = create(:changeset, :closed)
 
       assert_difference "changeset.subscribers.count", 1 do
-        post changeset_subscribe_path(changeset), :headers => auth_header
+        post api_changeset_subscribe_path(changeset), :headers => auth_header
       end
       assert_response :success
 
       # not closed changeset
       changeset = create(:changeset)
       assert_difference "changeset.subscribers.count", 1 do
-        post changeset_subscribe_path(changeset), :headers => auth_header
+        post api_changeset_subscribe_path(changeset), :headers => auth_header
       end
       assert_response :success
     end
@@ -2390,7 +2390,7 @@ module Api
       # unauthorized
       changeset = create(:changeset, :closed)
       assert_no_difference "changeset.subscribers.count" do
-        post changeset_subscribe_path(changeset)
+        post api_changeset_subscribe_path(changeset)
       end
       assert_response :unauthorized
 
@@ -2398,7 +2398,7 @@ module Api
 
       # bad changeset id
       assert_no_difference "changeset.subscribers.count" do
-        post changeset_subscribe_path(:id => 999111), :headers => auth_header
+        post api_changeset_subscribe_path(:id => 999111), :headers => auth_header
       end
       assert_response :not_found
 
@@ -2406,7 +2406,7 @@ module Api
       changeset = create(:changeset, :closed)
       changeset.subscribers.push(user)
       assert_no_difference "changeset.subscribers.count" do
-        post changeset_subscribe_path(changeset), :headers => auth_header
+        post api_changeset_subscribe_path(changeset), :headers => auth_header
       end
       assert_response :conflict
     end
@@ -2420,7 +2420,7 @@ module Api
       changeset.subscribers.push(user)
 
       assert_difference "changeset.subscribers.count", -1 do
-        post changeset_unsubscribe_path(changeset), :headers => auth_header
+        post api_changeset_unsubscribe_path(changeset), :headers => auth_header
       end
       assert_response :success
 
@@ -2429,7 +2429,7 @@ module Api
       changeset.subscribers.push(user)
 
       assert_difference "changeset.subscribers.count", -1 do
-        post changeset_unsubscribe_path(changeset), :headers => auth_header
+        post api_changeset_unsubscribe_path(changeset), :headers => auth_header
       end
       assert_response :success
     end
@@ -2440,7 +2440,7 @@ module Api
       # unauthorized
       changeset = create(:changeset, :closed)
       assert_no_difference "changeset.subscribers.count" do
-        post changeset_unsubscribe_path(changeset)
+        post api_changeset_unsubscribe_path(changeset)
       end
       assert_response :unauthorized
 
@@ -2448,14 +2448,14 @@ module Api
 
       # bad changeset id
       assert_no_difference "changeset.subscribers.count" do
-        post changeset_unsubscribe_path(:id => 999111), :headers => auth_header
+        post api_changeset_unsubscribe_path(:id => 999111), :headers => auth_header
       end
       assert_response :not_found
 
       # trying to unsubscribe when not subscribed
       changeset = create(:changeset, :closed)
       assert_no_difference "changeset.subscribers.count" do
-        post changeset_unsubscribe_path(changeset), :headers => auth_header
+        post api_changeset_unsubscribe_path(changeset), :headers => auth_header
       end
       assert_response :not_found
     end
index 874ac3ccda1a65d474e9a1f6cd12312177a43967..303bcea91fc5abbb32df2e03d8890a6eb58870a6 100644 (file)
@@ -345,7 +345,7 @@ module Api
       end
       assert_response :gone
 
-      closed_note_with_comment = create(:note_with_comments, :status => "closed", :closed_at => Time.now.utc)
+      closed_note_with_comment = create(:note_with_comments, :closed)
 
       assert_no_difference "NoteComment.count" do
         post comment_api_note_path(:id => closed_note_with_comment, :text => "This is an additional comment"), :headers => auth_header
@@ -406,14 +406,14 @@ module Api
       post close_api_note_path(:id => hidden_note_with_comment), :headers => auth_header
       assert_response :gone
 
-      closed_note_with_comment = create(:note_with_comments, :status => "closed", :closed_at => Time.now.utc)
+      closed_note_with_comment = create(:note_with_comments, :closed)
 
       post close_api_note_path(:id => closed_note_with_comment), :headers => auth_header
       assert_response :conflict
     end
 
     def test_reopen_success
-      closed_note_with_comment = create(:note_with_comments, :status => "closed", :closed_at => Time.now.utc)
+      closed_note_with_comment = create(:note_with_comments, :closed)
       user = create(:user)
 
       post reopen_api_note_path(:id => closed_note_with_comment, :text => "This is a reopen comment", :format => "json")
@@ -428,7 +428,7 @@ module Api
       assert_equal "Feature", js["type"]
       assert_equal closed_note_with_comment.id, js["properties"]["id"]
       assert_equal "open", js["properties"]["status"]
-      assert_equal 2, js["properties"]["comments"].count
+      assert_equal 3, js["properties"]["comments"].count
       assert_equal "reopened", js["properties"]["comments"].last["action"]
       assert_equal "This is a reopen comment", js["properties"]["comments"].last["text"]
       assert_equal user.display_name, js["properties"]["comments"].last["user"]
@@ -440,7 +440,7 @@ module Api
       assert_equal "Feature", js["type"]
       assert_equal closed_note_with_comment.id, js["properties"]["id"]
       assert_equal "open", js["properties"]["status"]
-      assert_equal 2, js["properties"]["comments"].count
+      assert_equal 3, js["properties"]["comments"].count
       assert_equal "reopened", js["properties"]["comments"].last["action"]
       assert_equal "This is a reopen comment", js["properties"]["comments"].last["text"]
       assert_equal user.display_name, js["properties"]["comments"].last["user"]
@@ -752,8 +752,8 @@ module Api
     end
 
     def test_index_closed
-      create(:note_with_comments, :status => "closed", :closed_at => Time.now.utc - 5.days)
-      create(:note_with_comments, :status => "closed", :closed_at => Time.now.utc - 100.days)
+      create(:note_with_comments, :closed, :closed_at => Time.now.utc - 5.days)
+      create(:note_with_comments, :closed, :closed_at => Time.now.utc - 100.days)
       create(:note_with_comments, :status => "hidden")
       create(:note_with_comments)
 
index a87f3025860729ecd1f035b1f6a16d58287bc9d0..737f11c7317b697406e954500e32339a89bd5067 100644 (file)
@@ -238,6 +238,43 @@ module Api
       assert_response :bad_request, "shouldn't be OK to redact current version as moderator."
     end
 
+    def test_redact_node_by_regular_with_read_prefs_scope
+      auth_header = create_bearer_auth_header(create(:user), %w[read_prefs])
+      do_redact_redactable_node(auth_header)
+      assert_response :forbidden, "should need to be moderator to redact."
+    end
+
+    def test_redact_node_by_regular_with_write_api_scope
+      auth_header = create_bearer_auth_header(create(:user), %w[write_api])
+      do_redact_redactable_node(auth_header)
+      assert_response :forbidden, "should need to be moderator to redact."
+    end
+
+    def test_redact_node_by_regular_with_write_redactions_scope
+      auth_header = create_bearer_auth_header(create(:user), %w[write_redactions])
+      do_redact_redactable_node(auth_header)
+      assert_response :forbidden, "should need to be moderator to redact."
+    end
+
+    def test_redact_node_by_moderator_with_read_prefs_scope
+      auth_header = create_bearer_auth_header(create(:moderator_user), %w[read_prefs])
+      do_redact_redactable_node(auth_header)
+      assert_response :forbidden, "should need to have write_redactions scope to redact."
+    end
+
+    def test_redact_node_by_moderator_with_write_api_scope
+      auth_header = create_bearer_auth_header(create(:moderator_user), %w[write_api])
+      do_redact_redactable_node(auth_header)
+      assert_response :success, "should be OK to redact old version as moderator with write_api scope."
+      # assert_response :forbidden, "should need to have write_redactions scope to redact."
+    end
+
+    def test_redact_node_by_moderator_with_write_redactions_scope
+      auth_header = create_bearer_auth_header(create(:moderator_user), %w[write_redactions])
+      do_redact_redactable_node(auth_header)
+      assert_response :success, "should be OK to redact old version as moderator with write_redactions scope."
+    end
+
     ##
     # test that redacted nodes aren't visible, regardless of
     # authorisation except as moderator...
@@ -395,6 +432,19 @@ module Api
 
     private
 
+    def create_bearer_auth_header(user, scopes)
+      token = create(:oauth_access_token,
+                     :resource_owner_id => user.id,
+                     :scopes => scopes)
+      bearer_authorization_header(token.token)
+    end
+
+    def do_redact_redactable_node(headers = {})
+      node = create(:node, :with_history, :version => 4)
+      node_v3 = node.old_nodes.find_by(:version => 3)
+      do_redact_node(node_v3, create(:redaction), headers)
+    end
+
     def do_redact_node(node, redaction, headers = {})
       get node_version_path(:id => node.node_id, :version => node.version), :headers => headers
       assert_response :success, "should be able to get version #{node.version} of node #{node.node_id}."
index d51665b03c70b59d6c11a8676675471699f94fb0..ea26e5cb795c60bfa523f411fb458b4c2dfc0037 100644 (file)
@@ -77,6 +77,43 @@ module Api
       assert_response :bad_request, "shouldn't be OK to redact current version as moderator."
     end
 
+    def test_redact_relation_by_regular_with_read_prefs_scope
+      auth_header = create_bearer_auth_header(create(:user), %w[read_prefs])
+      do_redact_redactable_relation(auth_header)
+      assert_response :forbidden, "should need to be moderator to redact."
+    end
+
+    def test_redact_relation_by_regular_with_write_api_scope
+      auth_header = create_bearer_auth_header(create(:user), %w[write_api])
+      do_redact_redactable_relation(auth_header)
+      assert_response :forbidden, "should need to be moderator to redact."
+    end
+
+    def test_redact_relation_by_regular_with_write_redactions_scope
+      auth_header = create_bearer_auth_header(create(:user), %w[write_redactions])
+      do_redact_redactable_relation(auth_header)
+      assert_response :forbidden, "should need to be moderator to redact."
+    end
+
+    def test_redact_relation_by_moderator_with_read_prefs_scope
+      auth_header = create_bearer_auth_header(create(:moderator_user), %w[read_prefs])
+      do_redact_redactable_relation(auth_header)
+      assert_response :forbidden, "should need to have write_redactions scope to redact."
+    end
+
+    def test_redact_relation_by_moderator_with_write_api_scope
+      auth_header = create_bearer_auth_header(create(:moderator_user), %w[write_api])
+      do_redact_redactable_relation(auth_header)
+      assert_response :success, "should be OK to redact old version as moderator with write_api scope."
+      # assert_response :forbidden, "should need to have write_redactions scope to redact."
+    end
+
+    def test_redact_relation_by_moderator_with_write_redactions_scope
+      auth_header = create_bearer_auth_header(create(:moderator_user), %w[write_redactions])
+      do_redact_redactable_relation(auth_header)
+      assert_response :success, "should be OK to redact old version as moderator with write_redactions scope."
+    end
+
     ##
     # test that redacted relations aren't visible, regardless of
     # authorisation except as moderator...
@@ -278,6 +315,19 @@ module Api
       end
     end
 
+    def create_bearer_auth_header(user, scopes)
+      token = create(:oauth_access_token,
+                     :resource_owner_id => user.id,
+                     :scopes => scopes)
+      bearer_authorization_header(token.token)
+    end
+
+    def do_redact_redactable_relation(headers = {})
+      relation = create(:relation, :with_history, :version => 4)
+      relation_v3 = relation.old_relations.find_by(:version => 3)
+      do_redact_relation(relation_v3, create(:redaction), headers)
+    end
+
     def do_redact_relation(relation, redaction, headers = {})
       get relation_version_path(:id => relation.relation_id, :version => relation.version)
       assert_response :success, "should be able to get version #{relation.version} of relation #{relation.relation_id}."
index 6c4eb16a12dc772a9a3f7cf13ed899475fb61263..4c225fb3347febcaecb710b8913a0686d3065f86 100644 (file)
@@ -118,6 +118,43 @@ module Api
       assert_response :bad_request, "shouldn't be OK to redact current version as moderator."
     end
 
+    def test_redact_way_by_regular_with_read_prefs_scope
+      auth_header = create_bearer_auth_header(create(:user), %w[read_prefs])
+      do_redact_redactable_way(auth_header)
+      assert_response :forbidden, "should need to be moderator to redact."
+    end
+
+    def test_redact_way_by_regular_with_write_api_scope
+      auth_header = create_bearer_auth_header(create(:user), %w[write_api])
+      do_redact_redactable_way(auth_header)
+      assert_response :forbidden, "should need to be moderator to redact."
+    end
+
+    def test_redact_way_by_regular_with_write_redactions_scope
+      auth_header = create_bearer_auth_header(create(:user), %w[write_redactions])
+      do_redact_redactable_way(auth_header)
+      assert_response :forbidden, "should need to be moderator to redact."
+    end
+
+    def test_redact_way_by_moderator_with_read_prefs_scope
+      auth_header = create_bearer_auth_header(create(:moderator_user), %w[read_prefs])
+      do_redact_redactable_way(auth_header)
+      assert_response :forbidden, "should need to have write_redactions scope to redact."
+    end
+
+    def test_redact_way_by_moderator_with_write_api_scope
+      auth_header = create_bearer_auth_header(create(:moderator_user), %w[write_api])
+      do_redact_redactable_way(auth_header)
+      assert_response :success, "should be OK to redact old version as moderator with write_api scope."
+      # assert_response :forbidden, "should need to have write_redactions scope to redact."
+    end
+
+    def test_redact_way_by_moderator_with_write_redactions_scope
+      auth_header = create_bearer_auth_header(create(:moderator_user), %w[write_redactions])
+      do_redact_redactable_way(auth_header)
+      assert_response :success, "should be OK to redact old version as moderator with write_redactions scope."
+    end
+
     ##
     # test that redacted ways aren't visible, regardless of
     # authorisation except as moderator...
@@ -318,6 +355,19 @@ module Api
       end
     end
 
+    def create_bearer_auth_header(user, scopes)
+      token = create(:oauth_access_token,
+                     :resource_owner_id => user.id,
+                     :scopes => scopes)
+      bearer_authorization_header(token.token)
+    end
+
+    def do_redact_redactable_way(headers = {})
+      way = create(:way, :with_history, :version => 4)
+      way_v3 = way.old_ways.find_by(:version => 3)
+      do_redact_way(way_v3, create(:redaction), headers)
+    end
+
     def do_redact_way(way, redaction, headers = {})
       get way_version_path(:id => way.way_id, :version => way.version)
       assert_response :success, "should be able to get version #{way.version} of way #{way.way_id}."
index 674a318ed9173fd6e9a0cf0df149c1075d316fb9..2bb743636ce9d5f5845d0922ddf8a65c5eecf06a 100644 (file)
@@ -39,35 +39,93 @@ class BrowseControllerTest < ActionDispatch::IntegrationTest
   end
 
   def test_read_relation
-    browse_check :relation_path, create(:relation).id, "browse/feature"
+    relation = create(:relation)
+    browse_check :relation_path, relation.id, "browse/feature"
+    assert_select "h4", /^Version/ do
+      assert_select "a[href='#{old_relation_path relation, 1}']", :text => "1", :count => 1
+    end
+    assert_select ".secondary-actions a[href='#{api_relation_path relation}']", :count => 1
+    assert_select ".secondary-actions a[href='#{relation_history_path relation}']", :count => 1
+    assert_select ".secondary-actions a[href='#{old_relation_path relation, 1}']", :count => 0
+  end
+
+  def test_multiple_version_relation_links
+    relation = create(:relation, :with_history, :version => 2)
+    browse_check :relation_path, relation.id, "browse/feature"
+    assert_select ".secondary-actions a[href='#{relation_history_path relation}']", :count => 1
+    assert_select ".secondary-actions a[href='#{old_relation_path relation, 1}']", :count => 1
+    assert_select ".secondary-actions a[href='#{old_relation_path relation, 2}']", :count => 1
   end
 
   def test_read_relation_history
-    browse_check :relation_history_path, create(:relation, :with_history).id, "browse/history"
+    relation = create(:relation, :with_history)
+    browse_check :relation_history_path, relation.id, "browse/history"
+    assert_select "h4", /^Version/ do
+      assert_select "a[href='#{old_relation_path relation, 1}']", :text => "1", :count => 1
+    end
   end
 
   def test_read_way
-    browse_check :way_path, create(:way).id, "browse/feature"
+    way = create(:way)
+    browse_check :way_path, way.id, "browse/feature"
+    assert_select "h4", /^Version/ do
+      assert_select "a[href='#{old_way_path way, 1}']", :text => "1", :count => 1
+    end
+    assert_select ".secondary-actions a[href='#{api_way_path way}']", :count => 1
+    assert_select ".secondary-actions a[href='#{way_history_path way}']", :count => 1
+    assert_select ".secondary-actions a[href='#{old_way_path way, 1}']", :count => 0
+  end
+
+  def test_multiple_version_way_links
+    way = create(:way, :with_history, :version => 2)
+    browse_check :way_path, way.id, "browse/feature"
+    assert_select ".secondary-actions a[href='#{way_history_path way}']", :count => 1
+    assert_select ".secondary-actions a[href='#{old_way_path way, 1}']", :count => 1
+    assert_select ".secondary-actions a[href='#{old_way_path way, 2}']", :count => 1
   end
 
   def test_read_way_history
-    browse_check :way_history_path, create(:way, :with_history).id, "browse/history"
+    way = create(:way, :with_history)
+    browse_check :way_history_path, way.id, "browse/history"
+    assert_select "h4", /^Version/ do
+      assert_select "a[href='#{old_way_path way, 1}']", :text => "1", :count => 1
+    end
   end
 
   def test_read_node
     node = create(:node)
     browse_check :node_path, node.id, "browse/feature"
-    assert_select "a[href='#{api_node_path node}']", :count => 1
+    assert_select "h4", /^Version/ do
+      assert_select "a[href='#{old_node_path node, 1}']", :text => "1", :count => 1
+    end
+    assert_select ".secondary-actions a[href='#{api_node_path node}']", :count => 1
+    assert_select ".secondary-actions a[href='#{node_history_path node}']", :count => 1
+    assert_select ".secondary-actions a[href='#{old_node_path node, 1}']", :count => 0
+  end
+
+  def test_multiple_version_node_links
+    node = create(:node, :with_history, :version => 2)
+    browse_check :node_path, node.id, "browse/feature"
+    assert_select ".secondary-actions a[href='#{node_history_path node}']", :count => 1
+    assert_select ".secondary-actions a[href='#{old_node_path node, 1}']", :count => 1
+    assert_select ".secondary-actions a[href='#{old_node_path node, 2}']", :count => 1
   end
 
   def test_read_deleted_node
     node = create(:node, :visible => false)
     browse_check :node_path, node.id, "browse/feature"
+    assert_select "h4", /^Version/ do
+      assert_select "a[href='#{old_node_path node, 1}']", :text => "1", :count => 1
+    end
     assert_select "a[href='#{api_node_path node}']", :count => 0
   end
 
   def test_read_node_history
-    browse_check :node_history_path, create(:node, :with_history).id, "browse/history"
+    node = create(:node, :with_history)
+    browse_check :node_history_path, node.id, "browse/history"
+    assert_select "h4", /^Version/ do
+      assert_select "a[href='#{old_node_path node, 1}']", :text => "1", :count => 1
+    end
   end
 
   def test_read_changeset
@@ -84,18 +142,13 @@ class BrowseControllerTest < ActionDispatch::IntegrationTest
     browse_check :changeset_path, changeset.id, "browse/changeset"
   end
 
-  def test_read_changeset_hidden_comments
+  def test_read_changeset_element_links
     changeset = create(:changeset)
-    create_list(:changeset_comment, 3, :changeset => changeset)
-    create(:changeset_comment, :visible => false, :changeset => changeset)
-
-    browse_check :changeset_path, changeset.id, "browse/changeset"
-    assert_select "div.changeset-comments ul li", :count => 3
-
-    session_for(create(:moderator_user))
+    node = create(:node, :with_history, :changeset => changeset)
 
     browse_check :changeset_path, changeset.id, "browse/changeset"
-    assert_select "div.changeset-comments ul li", :count => 4
+    assert_dom "a[href='#{node_path node}']", :count => 1
+    assert_dom "a[href='#{old_node_path node, 1}']", :count => 1
   end
 
   ##
index 79fd7a571e5f7b919d85b796d5baa879588c2663..a0747a0cdd16dea2df9e65f931e759e69dcd8040 100644 (file)
@@ -28,6 +28,22 @@ class ChangesetsControllerTest < ActionDispatch::IntegrationTest
       { :path => "/history/feed", :method => :get },
       { :controller => "changesets", :action => "feed", :format => :atom }
     )
+    assert_routing(
+      { :path => "/changeset/1/subscribe", :method => :get },
+      { :controller => "changesets", :action => "subscribe", :id => "1" }
+    )
+    assert_routing(
+      { :path => "/changeset/1/subscribe", :method => :post },
+      { :controller => "changesets", :action => "subscribe", :id => "1" }
+    )
+    assert_routing(
+      { :path => "/changeset/1/unsubscribe", :method => :get },
+      { :controller => "changesets", :action => "unsubscribe", :id => "1" }
+    )
+    assert_routing(
+      { :path => "/changeset/1/unsubscribe", :method => :post },
+      { :controller => "changesets", :action => "unsubscribe", :id => "1" }
+    )
   end
 
   ##
@@ -243,6 +259,7 @@ class ChangesetsControllerTest < ActionDispatch::IntegrationTest
     create(:changeset_tag, :changeset => changeset)
     create(:changeset_tag, :changeset => changeset, :k => "website", :v => "http://example.com/")
     closed_changeset = create(:changeset, :closed, :num_changes => 1)
+    create(:changeset_tag, :changeset => closed_changeset, :k => "website", :v => "https://osm.org/")
     _empty_changeset = create(:changeset, :num_changes => 0)
 
     get history_feed_path(:format => :atom)
@@ -250,7 +267,21 @@ class ChangesetsControllerTest < ActionDispatch::IntegrationTest
     assert_template "index"
     assert_equal "application/atom+xml", response.media_type
 
-    check_feed_result([changeset, closed_changeset])
+    check_feed_result([closed_changeset, changeset])
+  end
+
+  ##
+  # This should correctly escape XML special characters in the comment
+  def test_feed_with_comment_tag
+    changeset = create(:changeset, :num_changes => 1)
+    create(:changeset_tag, :changeset => changeset, :k => "comment", :v => "tested<changeset>comment")
+
+    get history_feed_path(:format => :atom)
+    assert_response :success
+    assert_template "index"
+    assert_equal "application/atom+xml", response.media_type
+
+    check_feed_result([changeset])
   end
 
   ##
@@ -268,7 +299,7 @@ class ChangesetsControllerTest < ActionDispatch::IntegrationTest
     assert_template "index"
     assert_equal "application/atom+xml", response.media_type
 
-    check_feed_result([changeset, closed_changeset])
+    check_feed_result([closed_changeset, changeset])
   end
 
   ##
@@ -286,7 +317,7 @@ class ChangesetsControllerTest < ActionDispatch::IntegrationTest
     assert_template "index"
     assert_equal "application/atom+xml", response.media_type
 
-    check_feed_result(changesets)
+    check_feed_result(changesets.reverse)
   end
 
   ##
@@ -304,6 +335,123 @@ class ChangesetsControllerTest < ActionDispatch::IntegrationTest
     assert_redirected_to :action => :feed
   end
 
+  def test_subscribe_page
+    user = create(:user)
+    other_user = create(:user)
+    changeset = create(:changeset, :user => user)
+    path = changeset_subscribe_path(changeset)
+
+    get path
+    assert_response :redirect
+    assert_redirected_to login_path(:referer => path)
+
+    session_for(other_user)
+    get path
+    assert_response :success
+    assert_dom ".content-body" do
+      assert_dom "a[href='#{changeset_path(changeset)}']", :text => "Changeset #{changeset.id}"
+      assert_dom "a[href='#{user_path(user)}']", :text => user.display_name
+    end
+  end
+
+  def test_subscribe_success
+    user = create(:user)
+    other_user = create(:user)
+    changeset = create(:changeset, :user => user)
+
+    session_for(other_user)
+    assert_difference "changeset.subscribers.count", 1 do
+      post changeset_subscribe_path(changeset)
+    end
+    assert_response :redirect
+    assert_redirected_to changeset_path(changeset)
+    assert changeset.reload.subscribed?(other_user)
+  end
+
+  def test_subscribe_fail
+    user = create(:user)
+    other_user = create(:user)
+
+    changeset = create(:changeset, :user => user)
+
+    # not signed in
+    assert_no_difference "changeset.subscribers.count" do
+      post changeset_subscribe_path(changeset)
+    end
+    assert_response :forbidden
+
+    session_for(other_user)
+
+    # bad diary id
+    post changeset_subscribe_path(999111)
+    assert_response :not_found
+
+    # trying to subscribe when already subscribed
+    post changeset_subscribe_path(changeset)
+    assert_no_difference "changeset.subscribers.count" do
+      post changeset_subscribe_path(changeset)
+    end
+  end
+
+  def test_unsubscribe_page
+    user = create(:user)
+    other_user = create(:user)
+    changeset = create(:changeset, :user => user)
+    path = changeset_unsubscribe_path(changeset)
+
+    get path
+    assert_response :redirect
+    assert_redirected_to login_path(:referer => path)
+
+    session_for(other_user)
+    get path
+    assert_response :success
+    assert_dom ".content-body" do
+      assert_dom "a[href='#{changeset_path(changeset)}']", :text => "Changeset #{changeset.id}"
+      assert_dom "a[href='#{user_path(user)}']", :text => user.display_name
+    end
+  end
+
+  def test_unsubscribe_success
+    user = create(:user)
+    other_user = create(:user)
+
+    changeset = create(:changeset, :user => user)
+    changeset.subscribers.push(other_user)
+
+    session_for(other_user)
+    assert_difference "changeset.subscribers.count", -1 do
+      post changeset_unsubscribe_path(changeset)
+    end
+    assert_response :redirect
+    assert_redirected_to changeset_path(changeset)
+    assert_not changeset.reload.subscribed?(other_user)
+  end
+
+  def test_unsubscribe_fail
+    user = create(:user)
+    other_user = create(:user)
+
+    changeset = create(:changeset, :user => user)
+
+    # not signed in
+    assert_no_difference "changeset.subscribers.count" do
+      post changeset_unsubscribe_path(changeset)
+    end
+    assert_response :forbidden
+
+    session_for(other_user)
+
+    # bad diary id
+    post changeset_unsubscribe_path(999111)
+    assert_response :not_found
+
+    # trying to unsubscribe when not subscribed
+    assert_no_difference "changeset.subscribers.count" do
+      post changeset_unsubscribe_path(changeset)
+    end
+  end
+
   private
 
   ##
@@ -325,15 +473,26 @@ class ChangesetsControllerTest < ActionDispatch::IntegrationTest
 
     assert_select "feed", :count => [changesets.size, 1].min do
       assert_select "> title", :count => 1, :text => /^Changesets/
-      assert_select "> entry", :count => changesets.size
-
-      changesets.each do |changeset|
-        assert_select "> entry > id", changeset_url(:id => changeset.id)
+      assert_select "> entry", :count => changesets.size do |entries|
+        entries.zip(changesets) do |entry, changeset|
+          assert_select entry, "> id", :text => changeset_url(:id => changeset.id)
+
+          changeset_comment = changeset.tags["comment"]
+          if changeset_comment
+            assert_select entry, "> title", :count => 1, :text => "Changeset #{changeset.id} - #{changeset_comment}"
+          else
+            assert_select entry, "> title", :count => 1, :text => "Changeset #{changeset.id}"
+          end
 
-        assert_select "> entry > content > xhtml|div > xhtml|table" do
-          assert_select "> xhtml|tr > xhtml|td > xhtml|table" do
-            changeset.tags.each do |key, _|
-              assert_select "> xhtml|tr > xhtml|td", :text => /^#{key} = /
+          assert_select entry, "> content > xhtml|div > xhtml|table" do
+            if changeset.tags.empty?
+              assert_select "> xhtml|tr > xhtml|td > xhtml|table", :count => 0
+            else
+              assert_select "> xhtml|tr > xhtml|td > xhtml|table", :count => 1 do
+                changeset.tags.each_key do |key|
+                  assert_select "> xhtml|tr > xhtml|td", :text => /^#{key} = /
+                end
+              end
             end
           end
         end
index 083619962febddfaffc971af3285adb9daf39e0b..82580dc680e39a62e74edad30366b27d74b2308f 100644 (file)
@@ -39,7 +39,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
     user = build(:user, :pending)
     post user_new_path, :params => { :user => user.attributes }
     post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
-    confirm_string = User.find_by(:email => user.email).tokens.create.token
+    confirm_string = User.find_by(:email => user.email).generate_token_for(:new_user)
 
     get user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
     assert_response :success
@@ -51,7 +51,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
     stub_gravatar_request(user.email)
     post user_new_path, :params => { :user => user.attributes }
     post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
-    confirm_string = User.find_by(:email => user.email).tokens.create.token
+    confirm_string = User.find_by(:email => user.email).generate_token_for(:new_user)
 
     # Get the confirmation page
     get user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
@@ -73,7 +73,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
     stub_gravatar_request(user.email)
     post user_new_path, :params => { :user => user.attributes }
     post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
-    confirm_string = User.find_by(:email => user.email).tokens.create.token
+    confirm_string = User.find_by(:email => user.email).generate_token_for(:new_user)
 
     post logout_path
 
@@ -87,7 +87,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
     stub_gravatar_request(user.email)
     post user_new_path, :params => { :user => user.attributes }
     post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
-    confirm_string = User.find_by(:email => user.email).tokens.create.token
+    confirm_string = User.find_by(:email => user.email).generate_token_for(:new_user)
 
     post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
     assert_redirected_to welcome_path
@@ -98,7 +98,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
     stub_gravatar_request(user.email)
     post user_new_path, :params => { :user => user.attributes }
     post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
-    confirm_string = User.find_by(:email => user.email).tokens.create.token
+    confirm_string = User.find_by(:email => user.email).generate_token_for(:new_user)
 
     post logout_path
     session_for(create(:user))
@@ -113,11 +113,11 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
     stub_gravatar_request(user.email)
     post user_new_path, :params => { :user => user.attributes }
     post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
-    confirm_string = User.find_by(:email => user.email).tokens.create(:referer => new_diary_entry_path).token
+    confirm_string = User.find_by(:email => user.email).generate_token_for(:new_user)
 
     post logout_path
 
-    post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
+    post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string, :referer => new_diary_entry_path }
     assert_redirected_to login_path(:referer => new_diary_entry_path)
     assert_match(/Confirmed your account/, flash[:notice])
   end
@@ -127,9 +127,9 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
     stub_gravatar_request(user.email)
     post user_new_path, :params => { :user => user.attributes }
     post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
-    confirm_string = User.find_by(:email => user.email).tokens.create(:referer => new_diary_entry_path).token
+    confirm_string = User.find_by(:email => user.email).generate_token_for(:new_user)
 
-    post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
+    post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string, :referer => new_diary_entry_path }
     assert_redirected_to new_diary_entry_path
   end
 
@@ -138,12 +138,12 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
     stub_gravatar_request(user.email)
     post user_new_path, :params => { :user => user.attributes }
     post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
-    confirm_string = User.find_by(:email => user.email).tokens.create(:referer => new_diary_entry_path).token
+    confirm_string = User.find_by(:email => user.email).generate_token_for(:new_user)
 
     post logout_path
     session_for(create(:user))
 
-    post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
+    post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string, :referer => new_diary_entry_path }
     assert_redirected_to login_path(:referer => new_diary_entry_path)
     assert_match(/Confirmed your account/, flash[:notice])
   end
@@ -153,9 +153,11 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
     stub_gravatar_request(user.email)
     post user_new_path, :params => { :user => user.attributes }
     post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
-    confirm_string = User.find_by(:email => user.email).tokens.create(:expiry => 1.day.ago).token
+    confirm_string = User.find_by(:email => user.email).generate_token_for(:new_user)
 
-    post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
+    travel 2.weeks do
+      post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
+    end
     assert_redirected_to :action => "confirm"
     assert_match(/confirmation code has expired/, flash[:error])
   end
@@ -165,15 +167,15 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
     stub_gravatar_request(user.email)
     post user_new_path, :params => { :user => user.attributes }
     post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
-    confirm_string = User.find_by(:email => user.email).tokens.create(:referer => new_diary_entry_path).token
+    confirm_string = User.find_by(:email => user.email).generate_token_for(:new_user)
 
-    post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
+    post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string, :referer => new_diary_entry_path }
     assert_redirected_to new_diary_entry_path
 
     post logout_path
 
-    confirm_string = User.find_by(:email => user.email).tokens.create(:referer => new_diary_entry_path).token
-    post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
+    confirm_string = User.find_by(:email => user.email).generate_token_for(:new_user)
+    post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string, :referer => new_diary_entry_path }
     assert_redirected_to login_path
     assert_match(/already been confirmed/, flash[:error])
   end
@@ -183,7 +185,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
     stub_gravatar_request(user.email)
     post user_new_path, :params => { :user => user.attributes }
     post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
-    confirm_string = User.find_by(:email => user.email).tokens.create.token
+    confirm_string = User.find_by(:email => user.email).generate_token_for(:new_user)
 
     User.find_by(:display_name => user.display_name).hide!
 
@@ -269,7 +271,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
 
   def test_confirm_email_get
     user = create(:user)
-    confirm_string = user.tokens.create.token
+    confirm_string = user.generate_token_for(:new_email)
 
     get user_confirm_email_path, :params => { :confirm_string => confirm_string }
     assert_response :success
@@ -279,7 +281,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
   def test_confirm_email_success
     user = create(:user, :new_email => "test-new@example.com")
     stub_gravatar_request(user.new_email)
-    confirm_string = user.tokens.create.token
+    confirm_string = user.generate_token_for(:new_email)
 
     post user_confirm_email_path, :params => { :confirm_string => confirm_string }
     assert_response :redirect
@@ -289,7 +291,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
 
   def test_confirm_email_already_confirmed
     user = create(:user)
-    confirm_string = user.tokens.create.token
+    confirm_string = user.generate_token_for(:new_email)
 
     post user_confirm_email_path, :params => { :confirm_string => confirm_string }
     assert_response :redirect
@@ -312,7 +314,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
     # switch to email that has a gravatar
     user = create(:user, :new_email => "test-new@example.com")
     stub_gravatar_request(user.new_email, 200)
-    confirm_string = user.tokens.create.token
+    confirm_string = user.generate_token_for(:new_email)
     # precondition gravatar should be turned off
     assert_not user.image_use_gravatar
     post user_confirm_email_path, :params => { :confirm_string => confirm_string }
@@ -327,7 +329,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
     # switch to email without a gravatar
     user = create(:user, :new_email => "test-new@example.com", :image_use_gravatar => true)
     stub_gravatar_request(user.new_email, 404)
-    confirm_string = user.tokens.create.token
+    confirm_string = user.generate_token_for(:new_email)
     # precondition gravatar should be turned on
     assert user.image_use_gravatar
     post user_confirm_email_path, :params => { :confirm_string => confirm_string }
index b474468789d342a5e3a71df904518dd22ad14e79..e7d812b3e7fa8fabae7d9fe8151834eb601caeb3 100644 (file)
@@ -98,10 +98,18 @@ class DiaryEntriesControllerTest < ActionDispatch::IntegrationTest
       { :path => "/user/username/diary/1/unhidecomment/2", :method => :post },
       { :controller => "diary_entries", :action => "unhidecomment", :display_name => "username", :id => "1", :comment => "2" }
     )
+    assert_routing(
+      { :path => "/user/username/diary/1/subscribe", :method => :get },
+      { :controller => "diary_entries", :action => "subscribe", :display_name => "username", :id => "1" }
+    )
     assert_routing(
       { :path => "/user/username/diary/1/subscribe", :method => :post },
       { :controller => "diary_entries", :action => "subscribe", :display_name => "username", :id => "1" }
     )
+    assert_routing(
+      { :path => "/user/username/diary/1/unsubscribe", :method => :get },
+      { :controller => "diary_entries", :action => "unsubscribe", :display_name => "username", :id => "1" }
+    )
     assert_routing(
       { :path => "/user/username/diary/1/unsubscribe", :method => :post },
       { :controller => "diary_entries", :action => "unsubscribe", :display_name => "username", :id => "1" }
@@ -677,7 +685,7 @@ class DiaryEntriesControllerTest < ActionDispatch::IntegrationTest
     get diary_rss_path
     assert_select "rss>channel>item", :count => 2
 
-    with_diary_feed_delay(6) do
+    with_settings(:diary_feed_delay => 6) do
       get diary_rss_path
       assert_select "rss>channel>item", :count => 1
     end
@@ -916,6 +924,25 @@ class DiaryEntriesControllerTest < ActionDispatch::IntegrationTest
     assert_response :not_found
   end
 
+  def test_subscribe_page
+    user = create(:user)
+    other_user = create(:user)
+    diary_entry = create(:diary_entry, :user => user)
+    path = diary_entry_subscribe_path(:id => diary_entry, :display_name => user.display_name)
+
+    get path
+    assert_response :redirect
+    assert_redirected_to login_path(:referer => path)
+
+    session_for(other_user)
+    get path
+    assert_response :success
+    assert_dom ".content-body" do
+      assert_dom "a[href='#{diary_entry_path(:id => diary_entry, :display_name => user.display_name)}']", :text => diary_entry.title
+      assert_dom "a[href='#{user_path(user)}']", :text => user.display_name
+    end
+  end
+
   def test_subscribe_success
     user = create(:user)
     other_user = create(:user)
@@ -953,6 +980,25 @@ class DiaryEntriesControllerTest < ActionDispatch::IntegrationTest
     end
   end
 
+  def test_unsubscribe_page
+    user = create(:user)
+    other_user = create(:user)
+    diary_entry = create(:diary_entry, :user => user)
+    path = diary_entry_unsubscribe_path(:id => diary_entry, :display_name => user.display_name)
+
+    get path
+    assert_response :redirect
+    assert_redirected_to login_path(:referer => path)
+
+    session_for(other_user)
+    get path
+    assert_response :success
+    assert_dom ".content-body" do
+      assert_dom "a[href='#{diary_entry_path(:id => diary_entry, :display_name => user.display_name)}']", :text => diary_entry.title
+      assert_dom "a[href='#{user_path(user)}']", :text => user.display_name
+    end
+  end
+
   def test_unsubscribe_success
     user = create(:user)
     other_user = create(:user)
@@ -1003,13 +1049,4 @@ class DiaryEntriesControllerTest < ActionDispatch::IntegrationTest
       assert_select "a[href=?]", "/user/#{ERB::Util.u(entry.user.display_name)}/diary/#{entry.id}"
     end
   end
-
-  def with_diary_feed_delay(value)
-    diary_feed_delay = Settings.diary_feed_delay
-    Settings.diary_feed_delay = value
-
-    yield
-
-    Settings.diary_feed_delay = diary_feed_delay
-  end
 end
index ca17401fdce4567bb008657278fd514a64750f42..fcfc8da5e30cfb2fcf30bafac9a1e7094e3c965f 100644 (file)
@@ -214,7 +214,7 @@ class MessagesControllerTest < ActionDispatch::IntegrationTest
     # Check that sending a message fails when the message limit is hit
     assert_no_difference "ActionMailer::Base.deliveries.size" do
       assert_no_difference "Message.count" do
-        with_message_limit(0) do
+        with_settings(:max_messages_per_hour => 0) do
           perform_enqueued_jobs do
             post messages_path(:display_name => recipient_user.display_name,
                                :message => { :title => "Test Message", :body => "Test message body" })
@@ -472,15 +472,4 @@ class MessagesControllerTest < ActionDispatch::IntegrationTest
     assert_response :not_found
     assert_template "no_such_message"
   end
-
-  private
-
-  def with_message_limit(value)
-    max_messages_per_hour = Settings.max_messages_per_hour
-    Settings.max_messages_per_hour = value
-
-    yield
-
-    Settings.max_messages_per_hour = max_messages_per_hour
-  end
 end
index 5cffbd702f8ebcfbf4b8eabe09094462e5ca1b0a..b2f14a127ea163d29f0d7bb2a5c7534027872db9 100644 (file)
@@ -144,9 +144,7 @@ class NotesControllerTest < ActionDispatch::IntegrationTest
 
   def test_read_closed_note
     user = create(:user)
-    closed_note = create(:note_with_comments, :status => "closed", :closed_at => Time.now.utc, :comments_count => 2) do |note|
-      create(:note_comment, :event => "closed", :note => note, :author => user)
-    end
+    closed_note = create(:note_with_comments, :closed, :closed_by => user, :comments_count => 2)
 
     browse_check :note_path, closed_note.id, "notes/show"
     assert_select "div.note-comments ul li", :count => 2
index 19bc7980828ea5f5cb785686b83cda3d89721574..43fbe4df495a3db150889ccdd0215e884c1bc865 100644 (file)
@@ -77,7 +77,7 @@ class Oauth2AuthorizationsControllerTest < ActionDispatch::IntegrationTest
                                  :redirect_uri => "https://bad.example.com/",
                                  :response_type => "code",
                                  :scope => "write_api")
-    assert_response :success
+    assert_response :bad_request
     assert_template "oauth2_authorizations/error"
     assert_select "p", "The requested redirect uri is malformed or doesn't match client redirect URI."
   end
@@ -91,7 +91,7 @@ class Oauth2AuthorizationsControllerTest < ActionDispatch::IntegrationTest
                                  :redirect_uri => application.redirect_uri,
                                  :response_type => "code",
                                  :scope => "bad_scope")
-    assert_response :success
+    assert_response :bad_request
     assert_template "oauth2_authorizations/error"
     assert_select "p", "The requested scope is invalid, unknown, or malformed."
 
@@ -99,7 +99,7 @@ class Oauth2AuthorizationsControllerTest < ActionDispatch::IntegrationTest
                                  :redirect_uri => application.redirect_uri,
                                  :response_type => "code",
                                  :scope => "write_prefs")
-    assert_response :success
+    assert_response :bad_request
     assert_template "oauth2_authorizations/error"
     assert_select "p", "The requested scope is invalid, unknown, or malformed."
   end
index fb651ff3c8f5b6ffd68c3ef86dfbc74658ee2085..f106b4af6f1eff6de8d674f5f535c9f7ae857eff 100644 (file)
@@ -74,6 +74,22 @@ class OauthClientsControllerTest < ActionDispatch::IntegrationTest
     end
   end
 
+  def test_new_disabled
+    user = create(:user)
+
+    with_settings(:oauth_10_registration => false) do
+      get new_oauth_client_path(:display_name => user.display_name)
+      assert_response :redirect
+      assert_redirected_to login_path(:referer => new_oauth_client_path(:display_name => user.display_name))
+
+      session_for(user)
+
+      get new_oauth_client_path(:display_name => user.display_name)
+      assert_response :redirect
+      assert_redirected_to oauth_clients_path(:display_name => user.display_name)
+    end
+  end
+
   def test_create
     user = create(:user)
 
diff --git a/test/controllers/old_nodes_controller_test.rb b/test/controllers/old_nodes_controller_test.rb
new file mode 100644 (file)
index 0000000..3f2958b
--- /dev/null
@@ -0,0 +1,72 @@
+require "test_helper"
+
+class OldNodesControllerTest < ActionDispatch::IntegrationTest
+  def test_routes
+    assert_routing(
+      { :path => "/node/1/history/2", :method => :get },
+      { :controller => "old_nodes", :action => "show", :id => "1", :version => "2" }
+    )
+  end
+
+  def test_visible_with_one_version
+    node = create(:node, :with_history)
+    get old_node_path(node, 1)
+    assert_response :success
+    assert_template "old_nodes/show"
+    assert_template :layout => "map"
+    assert_select "h4", /^Version/ do
+      assert_select "a[href='#{old_node_path node, 1}']", :count => 0
+    end
+    assert_select ".secondary-actions a[href='#{node_version_path node, 1}']", :count => 1
+    assert_select ".secondary-actions a[href='#{node_path node}']", :count => 1
+    assert_select ".secondary-actions a[href='#{node_history_path node}']", :count => 1
+  end
+
+  def test_visible_with_two_versions
+    node = create(:node, :with_history, :version => 2)
+    get old_node_path(node, 1)
+    assert_response :success
+    assert_template "old_nodes/show"
+    assert_template :layout => "map"
+    assert_select "h4", /^Version/ do
+      assert_select "a[href='#{old_node_path node, 1}']", :count => 0
+    end
+    assert_select ".secondary-actions a[href='#{node_version_path node, 1}']", :count => 1
+    assert_select ".secondary-actions a[href='#{node_path node}']", :count => 1
+    assert_select ".secondary-actions a[href='#{node_history_path node}']", :count => 1
+    assert_select ".secondary-actions a[href='#{old_node_path node, 2}']", :count => 1
+
+    get old_node_path(node, 2)
+    assert_response :success
+    assert_template "old_nodes/show"
+    assert_template :layout => "map"
+    assert_select "h4", /^Version/ do
+      assert_select "a[href='#{old_node_path node, 2}']", :count => 0
+    end
+    assert_select ".secondary-actions a[href='#{node_version_path node, 2}']", :count => 1
+    assert_select ".secondary-actions a[href='#{node_path node}']", :count => 1
+    assert_select ".secondary-actions a[href='#{node_history_path node}']", :count => 1
+    assert_select ".secondary-actions a[href='#{old_node_path node, 1}']", :count => 1
+  end
+
+  def test_redacted
+    node = create(:node, :with_history, :deleted, :version => 2)
+    node_v1 = node.old_nodes.find_by(:version => 1)
+    node_v1.redact!(create(:redaction))
+    get old_node_path(node, 1)
+    assert_response :success
+    assert_template "old_nodes/show"
+    assert_template :layout => "map"
+    assert_select ".secondary-actions a[href='#{node_path node}']", :count => 1
+    assert_select ".secondary-actions a[href='#{old_node_path node, 1}']", :count => 0
+    assert_select ".secondary-actions a[href='#{node_version_path node, 1}']", :count => 0
+  end
+
+  def test_not_found
+    get old_node_path(0, 0)
+    assert_response :not_found
+    assert_template "old_nodes/not_found"
+    assert_template :layout => "map"
+    assert_select "#sidebar_content", /node #0 version 0 could not be found/
+  end
+end
diff --git a/test/controllers/old_relations_controller_test.rb b/test/controllers/old_relations_controller_test.rb
new file mode 100644 (file)
index 0000000..311e595
--- /dev/null
@@ -0,0 +1,81 @@
+require "test_helper"
+
+class OldRelationsControllerTest < ActionDispatch::IntegrationTest
+  def test_routes
+    assert_routing(
+      { :path => "/relation/1/history/2", :method => :get },
+      { :controller => "old_relations", :action => "show", :id => "1", :version => "2" }
+    )
+  end
+
+  def test_visible_with_one_version
+    relation = create(:relation, :with_history)
+    get old_relation_path(relation, 1)
+    assert_response :success
+    assert_template "old_relations/show"
+    assert_template :layout => "map"
+    assert_select "h4", /^Version/ do
+      assert_select "a[href='#{old_relation_path relation, 1}']", :count => 0
+    end
+    assert_select ".secondary-actions a[href='#{relation_version_path relation, 1}']", :count => 1
+    assert_select ".secondary-actions a[href='#{relation_path relation}']", :count => 1
+    assert_select ".secondary-actions a[href='#{relation_history_path relation}']", :count => 1
+  end
+
+  def test_visible_with_two_versions
+    relation = create(:relation, :with_history, :version => 2)
+    get old_relation_path(relation, 1)
+    assert_response :success
+    assert_template "old_relations/show"
+    assert_template :layout => "map"
+    assert_select "h4", /^Version/ do
+      assert_select "a[href='#{old_relation_path relation, 1}']", :count => 0
+    end
+    assert_select ".secondary-actions a[href='#{relation_version_path relation, 1}']", :count => 1
+    assert_select ".secondary-actions a[href='#{relation_path relation}']", :count => 1
+    assert_select ".secondary-actions a[href='#{relation_history_path relation}']", :count => 1
+    assert_select ".secondary-actions a[href='#{old_relation_path relation, 2}']", :count => 1
+
+    get old_relation_path(relation, 2)
+    assert_response :success
+    assert_template "old_relations/show"
+    assert_template :layout => "map"
+    assert_select "h4", /^Version/ do
+      assert_select "a[href='#{old_relation_path relation, 2}']", :count => 0
+    end
+    assert_select ".secondary-actions a[href='#{relation_version_path relation, 2}']", :count => 1
+    assert_select ".secondary-actions a[href='#{relation_path relation}']", :count => 1
+    assert_select ".secondary-actions a[href='#{relation_history_path relation}']", :count => 1
+    assert_select ".secondary-actions a[href='#{old_relation_path relation, 1}']", :count => 1
+  end
+
+  def test_visible_with_members
+    relation = create(:relation, :with_history)
+    create(:old_relation_member, :old_relation => relation.old_relations.first)
+    get old_relation_path(relation, 1)
+    assert_response :success
+    assert_template "old_relations/show"
+    assert_template :layout => "map"
+  end
+
+  def test_redacted
+    relation = create(:relation, :with_history, :deleted, :version => 2)
+    relation_v1 = relation.old_relations.find_by(:version => 1)
+    relation_v1.redact!(create(:redaction))
+    get old_relation_path(relation, 1)
+    assert_response :success
+    assert_template "old_relations/show"
+    assert_template :layout => "map"
+    assert_select ".secondary-actions a[href='#{relation_path relation}']", :count => 1
+    assert_select ".secondary-actions a[href='#{old_relation_path relation, 1}']", :count => 0
+    assert_select ".secondary-actions a[href='#{relation_version_path relation, 1}']", :count => 0
+  end
+
+  def test_not_found
+    get old_relation_path(0, 0)
+    assert_response :not_found
+    assert_template "old_relations/not_found"
+    assert_template :layout => "map"
+    assert_select "#sidebar_content", /relation #0 version 0 could not be found/
+  end
+end
diff --git a/test/controllers/old_ways_controller_test.rb b/test/controllers/old_ways_controller_test.rb
new file mode 100644 (file)
index 0000000..d428605
--- /dev/null
@@ -0,0 +1,86 @@
+require "test_helper"
+
+class OldWaysControllerTest < ActionDispatch::IntegrationTest
+  def test_routes
+    assert_routing(
+      { :path => "/way/1/history/2", :method => :get },
+      { :controller => "old_ways", :action => "show", :id => "1", :version => "2" }
+    )
+  end
+
+  def test_visible_with_one_version
+    way = create(:way, :with_history)
+    get old_way_path(way, 1)
+    assert_response :success
+    assert_template "old_ways/show"
+    assert_template :layout => "map"
+    assert_select "h4", /^Version/ do
+      assert_select "a[href='#{old_way_path way, 1}']", :count => 0
+    end
+    assert_select ".secondary-actions a[href='#{way_version_path way, 1}']", :count => 1
+    assert_select ".secondary-actions a[href='#{way_path way}']", :count => 1
+    assert_select ".secondary-actions a[href='#{way_history_path way}']", :count => 1
+  end
+
+  def test_visible_with_two_versions
+    way = create(:way, :with_history, :version => 2)
+    get old_way_path(way, 1)
+    assert_response :success
+    assert_template "old_ways/show"
+    assert_template :layout => "map"
+    assert_select "h4", /^Version/ do
+      assert_select "a[href='#{old_way_path way, 1}']", :count => 0
+    end
+    assert_select ".secondary-actions a[href='#{way_version_path way, 1}']", :count => 1
+    assert_select ".secondary-actions a[href='#{way_path way}']", :count => 1
+    assert_select ".secondary-actions a[href='#{way_history_path way}']", :count => 1
+    assert_select ".secondary-actions a[href='#{old_way_path way, 2}']", :count => 1
+
+    get old_way_path(way, 2)
+    assert_response :success
+    assert_template "old_ways/show"
+    assert_template :layout => "map"
+    assert_select "h4", /^Version/ do
+      assert_select "a[href='#{old_way_path way, 2}']", :count => 0
+    end
+    assert_select ".secondary-actions a[href='#{way_version_path way, 2}']", :count => 1
+    assert_select ".secondary-actions a[href='#{way_path way}']", :count => 1
+    assert_select ".secondary-actions a[href='#{way_history_path way}']", :count => 1
+    assert_select ".secondary-actions a[href='#{old_way_path way, 1}']", :count => 1
+  end
+
+  def test_visible_with_shared_nodes
+    node = create(:node, :with_history)
+    way = create(:way, :with_history)
+    create(:way_node, :way => way, :node => node)
+    create(:old_way_node, :old_way => way.old_ways.first, :node => node)
+    sharing_way = create(:way, :with_history)
+    create(:way_node, :way => sharing_way, :node => node)
+    create(:old_way_node, :old_way => sharing_way.old_ways.first, :node => node)
+    get old_way_path(way, 1)
+    assert_response :success
+    assert_template "old_ways/show"
+    assert_template :layout => "map"
+  end
+
+  def test_redacted
+    way = create(:way, :with_history, :deleted, :version => 2)
+    way_v1 = way.old_ways.find_by(:version => 1)
+    way_v1.redact!(create(:redaction))
+    get old_way_path(way, 1)
+    assert_response :success
+    assert_template "old_ways/show"
+    assert_template :layout => "map"
+    assert_select ".secondary-actions a[href='#{way_path way}']", :count => 1
+    assert_select ".secondary-actions a[href='#{old_way_path way, 1}']", :count => 0
+    assert_select ".secondary-actions a[href='#{way_version_path way, 1}']", :count => 0
+  end
+
+  def test_not_found
+    get old_way_path(0, 0)
+    assert_response :not_found
+    assert_template "old_ways/not_found"
+    assert_template :layout => "map"
+    assert_select "#sidebar_content", /way #0 version 0 could not be found/
+  end
+end
index 0a3a32c521cc6f5746d75ff6dcb25c97f5fd66b8..25cfdd4e5068c87c6022533fc6c8bb4b45a0ce3a 100644 (file)
@@ -6,19 +6,19 @@ class PasswordsControllerTest < ActionDispatch::IntegrationTest
   def test_routes
     assert_routing(
       { :path => "/user/forgot-password", :method => :get },
-      { :controller => "passwords", :action => "lost_password" }
+      { :controller => "passwords", :action => "new" }
     )
     assert_routing(
       { :path => "/user/forgot-password", :method => :post },
-      { :controller => "passwords", :action => "lost_password" }
+      { :controller => "passwords", :action => "create" }
     )
     assert_routing(
       { :path => "/user/reset-password", :method => :get },
-      { :controller => "passwords", :action => "reset_password" }
+      { :controller => "passwords", :action => "edit" }
     )
     assert_routing(
       { :path => "/user/reset-password", :method => :post },
-      { :controller => "passwords", :action => "reset_password" }
+      { :controller => "passwords", :action => "update" }
     )
   end
 
@@ -26,7 +26,7 @@ class PasswordsControllerTest < ActionDispatch::IntegrationTest
     # Test fetching the lost password page
     get user_forgot_password_path
     assert_response :success
-    assert_template :lost_password
+    assert_template :new
     assert_select "div#notice", false
 
     # Test resetting using the address as recorded for a user that has an
@@ -41,7 +41,7 @@ class PasswordsControllerTest < ActionDispatch::IntegrationTest
       end
     end
     assert_response :success
-    assert_template :lost_password
+    assert_template :new
 
     # Resetting with POST should work
     assert_difference "ActionMailer::Base.deliveries.size", 1 do
@@ -80,7 +80,7 @@ class PasswordsControllerTest < ActionDispatch::IntegrationTest
       end
     end
     assert_response :success
-    assert_template :lost_password
+    assert_template :new
     assert_select ".alert.alert-danger", /^Could not find that email address/
 
     # Test resetting using the address as recorded for a user that has an
@@ -124,24 +124,24 @@ class PasswordsControllerTest < ActionDispatch::IntegrationTest
     # Test a request with a bogus token
     get user_reset_password_path, :params => { :token => "made_up_token" }
     assert_response :redirect
-    assert_redirected_to :action => :lost_password
+    assert_redirected_to :action => :new
 
     # Create a valid token for a user
-    token = user.tokens.create
+    token = user.generate_token_for(:password_reset)
 
     # Test a request with a valid token
-    get user_reset_password_path, :params => { :token => token.token }
+    get user_reset_password_path, :params => { :token => token }
     assert_response :success
-    assert_template :reset_password
+    assert_template :edit
 
     # Test that errors are reported for erroneous submissions
-    post user_reset_password_path, :params => { :token => token.token, :user => { :pass_crypt => "new_password", :pass_crypt_confirmation => "different_password" } }
+    post user_reset_password_path, :params => { :token => token, :user => { :pass_crypt => "new_password", :pass_crypt_confirmation => "different_password" } }
     assert_response :success
-    assert_template :reset_password
+    assert_template :edit
     assert_select "div.invalid-feedback"
 
     # Test setting a new password
-    post user_reset_password_path, :params => { :token => token.token, :user => { :pass_crypt => "new_password", :pass_crypt_confirmation => "new_password" } }
+    post user_reset_password_path, :params => { :token => token, :user => { :pass_crypt => "new_password", :pass_crypt_confirmation => "new_password" } }
     assert_response :redirect
     assert_redirected_to root_path
     assert_equal user.id, session[:user]
index a94a9a158c282bb791eb4670c308936693536650..71d6de184f0f53f6cf4d4bbe1aed1153732021ef 100644 (file)
@@ -48,6 +48,14 @@ class SessionsControllerTest < ActionDispatch::IntegrationTest
     post login_path, :params => { :username => user.display_name, :password => "test" }
     assert_response :redirect
     assert_redirected_to root_path
+
+    post login_path, :params => { :username => " #{user.display_name}", :password => "test" }
+    assert_response :redirect
+    assert_redirected_to root_path
+
+    post login_path, :params => { :username => "#{user.display_name} ", :password => "test" }
+    assert_response :redirect
+    assert_redirected_to root_path
   end
 
   def test_logout_without_referer
@@ -80,10 +88,7 @@ class SessionsControllerTest < ActionDispatch::IntegrationTest
     user = build(:user, :pending)
     post user_new_path, :params => { :user => user.attributes }
     post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
-
-    assert_difference "User.find_by(:email => user.email).tokens.count", -1 do
-      post logout_path
-    end
+    post logout_path
     assert_response :redirect
     assert_redirected_to root_path
   end
index 27022c973748deaa3b0f9937d728824b5532ca16..0877fa39e400f0b809178e96fe7cdfd832986465 100644 (file)
@@ -54,6 +54,14 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest
       { :path => "/user/username/blocks_by", :method => :get },
       { :controller => "user_blocks", :action => "blocks_by", :display_name => "username" }
     )
+    assert_routing(
+      { :path => "/user/username/blocks/revoke_all", :method => :get },
+      { :controller => "user_blocks", :action => "revoke_all", :display_name => "username" }
+    )
+    assert_routing(
+      { :path => "/user/username/blocks/revoke_all", :method => :post },
+      { :controller => "user_blocks", :action => "revoke_all", :display_name => "username" }
+    )
   end
 
   ##
@@ -261,6 +269,21 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest
     assert_select "h1", "The user non_existent_user does not exist"
   end
 
+  ##
+  # test the duration of a created block
+  def test_create_duration
+    target_user = create(:user)
+    moderator_user = create(:moderator_user)
+
+    session_for(moderator_user)
+    post user_blocks_path(:display_name => target_user.display_name,
+                          :user_block_period => "336",
+                          :user_block => { :needs_view => false, :reason => "Vandalism" })
+
+    block = UserBlock.order(:id).last
+    assert_equal 1209600, block.ends_at - block.created_at
+  end
+
   ##
   # test the update action
   def test_update
@@ -371,6 +394,84 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest
     assert_select "p", "Sorry, the user block with ID 99999 could not be found."
   end
 
+  ##
+  # test the revoke all page
+  def test_revoke_all_page
+    blocked_user = create(:user)
+    create(:user_block, :user => blocked_user)
+
+    # Asking for the revoke all blocks page with a bogus user name should fail
+    get user_blocks_on_path(:display_name => "non_existent_user")
+    assert_response :not_found
+
+    # Check that the revoke all blocks page requires us to login
+    get revoke_all_user_blocks_path(blocked_user)
+    assert_redirected_to login_path(:referer => revoke_all_user_blocks_path(blocked_user))
+
+    # Login as a normal user
+    session_for(create(:user))
+
+    # Check that normal users can't load the revoke all blocks page
+    get revoke_all_user_blocks_path(blocked_user)
+    assert_response :redirect
+    assert_redirected_to :controller => "errors", :action => "forbidden"
+
+    # Login as a moderator
+    session_for(create(:moderator_user))
+
+    # Check that the revoke all blocks page loads for moderators
+    get revoke_all_user_blocks_path(blocked_user)
+    assert_response :success
+  end
+
+  ##
+  # test the revoke all action
+  def test_revoke_all_action
+    blocked_user = create(:user)
+    active_block1 = create(:user_block, :user => blocked_user)
+    active_block2 = create(:user_block, :user => blocked_user)
+    expired_block1 = create(:user_block, :expired, :user => blocked_user)
+    blocks = [active_block1, active_block2, expired_block1]
+    moderator_user = create(:moderator_user)
+
+    assert_predicate active_block1, :active?
+    assert_predicate active_block2, :active?
+    assert_not_predicate expired_block1, :active?
+
+    # Login as a normal user
+    session_for(create(:user))
+
+    # Check that normal users can't load the block revoke page
+    get revoke_all_user_blocks_path(:blocked_user)
+    assert_response :redirect
+    assert_redirected_to :controller => "errors", :action => "forbidden"
+
+    # Login as a moderator
+    session_for(moderator_user)
+
+    # Check that revoking blocks using GET should fail
+    get revoke_all_user_blocks_path(blocked_user, :confirm => true)
+    assert_response :success
+    assert_template "revoke_all"
+
+    blocks.each(&:reload)
+    assert_predicate active_block1, :active?
+    assert_predicate active_block2, :active?
+    assert_not_predicate expired_block1, :active?
+
+    # Check that revoking blocks works using POST
+    post revoke_all_user_blocks_path(blocked_user, :confirm => true)
+    assert_redirected_to user_blocks_on_path(blocked_user)
+
+    blocks.each(&:reload)
+    assert_not_predicate active_block1, :active?
+    assert_not_predicate active_block2, :active?
+    assert_not_predicate expired_block1, :active?
+    assert_equal moderator_user, active_block1.revoker
+    assert_equal moderator_user, active_block2.revoker
+    assert_not_equal moderator_user, expired_block1.revoker
+  end
+
   ##
   # test the blocks_on action
   def test_blocks_on
diff --git a/test/controllers/user_mutes_controller_test.rb b/test/controllers/user_mutes_controller_test.rb
new file mode 100644 (file)
index 0000000..cc22faa
--- /dev/null
@@ -0,0 +1,60 @@
+require "test_helper"
+
+class UserMutesControllerTest < ActionDispatch::IntegrationTest
+  def test_routes
+    assert_routing(
+      { :path => "/user/username/mute", :method => :post },
+      { :controller => "user_mutes", :action => "create", :display_name => "username" }
+    )
+    assert_routing(
+      { :path => "/user/username/mute", :method => :delete },
+      { :controller => "user_mutes", :action => "destroy", :display_name => "username" }
+    )
+    assert_routing(
+      { :path => "/user_mutes", :method => :get },
+      { :controller => "user_mutes", :action => "index" }
+    )
+  end
+
+  def test_index
+    user = create(:user)
+    user.mutes.create(:subject => create(:user))
+    session_for(user)
+
+    get user_mutes_path
+    assert_match "You have muted 1 User", @response.body
+  end
+
+  def test_create
+    user = create(:user)
+    session_for(user)
+
+    assert_equal 0, user.muted_users.count
+    subject = create(:user, :display_name => "Bob")
+    post user_mute_path(subject)
+    assert_match "You muted Bob", flash[:notice]
+
+    assert_equal 1, user.muted_users.count
+    assert_equal subject, user.muted_users.first
+
+    post user_mute_path(subject)
+    assert_match "Bob could not be muted. Is already muted", flash[:error]
+    assert_equal 1, user.muted_users.count
+  end
+
+  def test_destroy
+    user = create(:user)
+    session_for(user)
+
+    subject = create(:user, :display_name => "Bob")
+    user.mutes.create(:subject => subject)
+    assert_equal 1, user.muted_users.count
+
+    delete user_mute_path(subject)
+    assert_match "You unmuted Bob", flash[:notice]
+    assert_equal 0, user.muted_users.count
+
+    delete user_mute_path(subject)
+    assert_response :not_found
+  end
+end
index 402129d326e19908ba57feaf74c5f18a48acf9db..a530a6f858a0751623708a34681ec91e23d62e2a 100644 (file)
@@ -312,15 +312,13 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
 
     assert_difference "User.count", 1 do
       assert_difference "ActionMailer::Base.deliveries.size", 1 do
-        perform_enqueued_jobs do
-          post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
-        end
+        post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
+        assert_enqueued_with :job => ActionMailer::MailDeliveryJob,
+                             :args => proc { |args| args[3][:args][2] == welcome_path(:editor => "id", :zoom => 1, :lat => 2, :lon => 3) }
+        perform_enqueued_jobs
       end
     end
 
-    assert_equal welcome_path(:editor => "id", :zoom => 1, :lat => 2, :lon => 3),
-                 User.find_by(:email => user.email).tokens.order("id DESC").first.referer
-
     ActionMailer::Base.deliveries.clear
   end
 
index 4f8ee5437fc8a86bcb1897ebbe03b4722da3e78a..906c4dea9fada803fc6e15fe9718c7100ac949d9 100644 (file)
@@ -14,5 +14,9 @@ FactoryBot.define do
     trait :read do
       message_read { true }
     end
+
+    trait :muted do
+      muted { true }
+    end
   end
 end
index 77b4245aa5b037fdf5eb491d565e63f2017d93d0..ab7d5df5677cf87f6f277bbf76c22cec1386a0a7 100644 (file)
@@ -4,6 +4,19 @@ FactoryBot.define do
     longitude { 1 * GeoRecord::SCALE }
     # tile { QuadTile.tile_for_point(1,1) }
 
+    trait :closed do
+      transient do
+        closed_by { nil }
+      end
+
+      status { "closed" }
+      closed_at { Time.now.utc }
+
+      after(:create) do |note, context|
+        create(:note_comment, :author => context.closed_by, :body => "Closing comment", :event => "closed", :note => note)
+      end
+    end
+
     factory :note_with_comments do
       transient do
         comments_count { 1 }
diff --git a/test/factories/user_mute.rb b/test/factories/user_mute.rb
new file mode 100644 (file)
index 0000000..4beaf3a
--- /dev/null
@@ -0,0 +1,6 @@
+FactoryBot.define do
+  factory :user_mute do
+    owner :factory => :user
+    subject :factory => :user
+  end
+end
index 8a4653b2527cb151b2c72dc3a8d52a6288e6e5b8..c255cc76627761a17333d59db8bad1195d5db65d 100644 (file)
@@ -2,6 +2,6 @@ require "test_helper"
 
 class AssetHelperTest < ActionView::TestCase
   def test_assets
-    assert assets("iD").is_a?(Hash)
+    assert_kind_of Hash, assets("iD")
   end
 end
index a20e1703d4be41028f6dfbea8d4d30919ff368ee..4cf0ab69ad3aab53863c4c2872ffda8a45a03073 100644 (file)
@@ -4,7 +4,7 @@ class BrowseHelperTest < ActionView::TestCase
   include ERB::Util
   include ApplicationHelper
 
-  def test_printable_name
+  def test_printable_element_name
     node = create(:node, :with_history, :version => 2)
     node_v1 = node.old_nodes.find_by(:version => 1)
     node_v2 = node.old_nodes.find_by(:version => 2)
@@ -19,46 +19,54 @@ class BrowseHelperTest < ActionView::TestCase
 
     deleted_node = create(:node, :deleted)
 
-    assert_dom_equal deleted_node.id.to_s, printable_name(deleted_node)
-    assert_dom_equal "<bdi>Test Node</bdi> (<bdi>#{node.id}</bdi>)", printable_name(node)
-    assert_dom_equal "<bdi>Test Node</bdi> (<bdi>#{node.id}</bdi>)", printable_name(node_v2)
-    assert_dom_equal node.id.to_s, printable_name(node_v1)
-    assert_dom_equal "<bdi>Test Node</bdi> (<bdi>#{node.id}, v2</bdi>)", printable_name(node_v2, :version => true)
-    assert_dom_equal "#{node.id}, v1", printable_name(node_v1, :version => true)
-    assert_dom_equal "<bdi>3.1415926</bdi> (<bdi>#{node_with_ref_without_name.id}</bdi>)", printable_name(node_with_ref_without_name)
+    assert_dom_equal deleted_node.id.to_s, printable_element_name(deleted_node)
+    assert_dom_equal "<bdi>Test Node</bdi> (<bdi>#{node.id}</bdi>)", printable_element_name(node)
+    assert_dom_equal "<bdi>Test Node</bdi> (<bdi>#{node.id}</bdi>)", printable_element_name(node_v2)
+    assert_dom_equal node.id.to_s, printable_element_name(node_v1)
+    assert_dom_equal "<bdi>3.1415926</bdi> (<bdi>#{node_with_ref_without_name.id}</bdi>)", printable_element_name(node_with_ref_without_name)
 
     I18n.with_locale "pt" do
-      assert_dom_equal deleted_node.id.to_s, printable_name(deleted_node)
-      assert_dom_equal "<bdi>Nó teste</bdi> (<bdi>#{node.id}</bdi>)", printable_name(node)
-      assert_dom_equal "<bdi>Nó teste</bdi> (<bdi>#{node.id}</bdi>)", printable_name(node_v2)
-      assert_dom_equal node.id.to_s, printable_name(node_v1)
-      assert_dom_equal "<bdi>Nó teste</bdi> (<bdi>#{node.id}, v2</bdi>)", printable_name(node_v2, :version => true)
-      assert_dom_equal "#{node.id}, v1", printable_name(node_v1, :version => true)
-      assert_dom_equal "<bdi>3.1415926</bdi> (<bdi>#{node_with_ref_without_name.id}</bdi>)", printable_name(node_with_ref_without_name)
+      assert_dom_equal deleted_node.id.to_s, printable_element_name(deleted_node)
+      assert_dom_equal "<bdi>Nó teste</bdi> (<bdi>#{node.id}</bdi>)", printable_element_name(node)
+      assert_dom_equal "<bdi>Nó teste</bdi> (<bdi>#{node.id}</bdi>)", printable_element_name(node_v2)
+      assert_dom_equal node.id.to_s, printable_element_name(node_v1)
+      assert_dom_equal "<bdi>3.1415926</bdi> (<bdi>#{node_with_ref_without_name.id}</bdi>)", printable_element_name(node_with_ref_without_name)
     end
 
     I18n.with_locale "pt-BR" do
-      assert_dom_equal deleted_node.id.to_s, printable_name(deleted_node)
-      assert_dom_equal "<bdi>Nó teste</bdi> (<bdi>#{node.id}</bdi>)", printable_name(node)
-      assert_dom_equal "<bdi>Nó teste</bdi> (<bdi>#{node.id}</bdi>)", printable_name(node_v2)
-      assert_dom_equal node.id.to_s, printable_name(node_v1)
-      assert_dom_equal "<bdi>Nó teste</bdi> (<bdi>#{node.id}, v2</bdi>)", printable_name(node_v2, :version => true)
-      assert_dom_equal "#{node.id}, v1", printable_name(node_v1, :version => true)
-      assert_dom_equal "<bdi>3.1415926</bdi> (<bdi>#{node_with_ref_without_name.id}</bdi>)", printable_name(node_with_ref_without_name)
+      assert_dom_equal deleted_node.id.to_s, printable_element_name(deleted_node)
+      assert_dom_equal "<bdi>Nó teste</bdi> (<bdi>#{node.id}</bdi>)", printable_element_name(node)
+      assert_dom_equal "<bdi>Nó teste</bdi> (<bdi>#{node.id}</bdi>)", printable_element_name(node_v2)
+      assert_dom_equal node.id.to_s, printable_element_name(node_v1)
+      assert_dom_equal "<bdi>3.1415926</bdi> (<bdi>#{node_with_ref_without_name.id}</bdi>)", printable_element_name(node_with_ref_without_name)
     end
 
     I18n.with_locale "de" do
-      assert_dom_equal deleted_node.id.to_s, printable_name(deleted_node)
-      assert_dom_equal "<bdi>Test Node</bdi> (<bdi>#{node.id}</bdi>)", printable_name(node)
-      assert_dom_equal "<bdi>Test Node</bdi> (<bdi>#{node.id}</bdi>)", printable_name(node_v2)
-      assert_dom_equal node.id.to_s, printable_name(node_v1)
-      assert_dom_equal "<bdi>Test Node</bdi> (<bdi>#{node.id}, v2</bdi>)", printable_name(node_v2, :version => true)
-      assert_dom_equal "#{node.id}, v1", printable_name(node_v1, :version => true)
-      assert_dom_equal "<bdi>3.1415926</bdi> (<bdi>#{node_with_ref_without_name.id}</bdi>)", printable_name(node_with_ref_without_name)
+      assert_dom_equal deleted_node.id.to_s, printable_element_name(deleted_node)
+      assert_dom_equal "<bdi>Test Node</bdi> (<bdi>#{node.id}</bdi>)", printable_element_name(node)
+      assert_dom_equal "<bdi>Test Node</bdi> (<bdi>#{node.id}</bdi>)", printable_element_name(node_v2)
+      assert_dom_equal node.id.to_s, printable_element_name(node_v1)
+      assert_dom_equal "<bdi>3.1415926</bdi> (<bdi>#{node_with_ref_without_name.id}</bdi>)", printable_element_name(node_with_ref_without_name)
     end
   end
 
-  def test_link_class
+  def test_element_strikethrough
+    node = create(:node, :with_history, :version => 2)
+    node_v1 = node.old_nodes.find_by(:version => 1)
+    node_v2 = node.old_nodes.find_by(:version => 2)
+    node_v1.redact!(create(:redaction))
+
+    normal_output = element_strikethrough(node_v2) { "test" }
+    assert_equal "test", normal_output
+
+    redacted_output = element_strikethrough(node_v1) { "test" }
+    assert_equal "<s>test</s>", redacted_output
+
+    deleted_output = element_strikethrough(create(:node, :deleted)) { "test" }
+    assert_equal "<s>test</s>", deleted_output
+  end
+
+  def test_element_class
     node = create(:node, :with_history, :version => 2)
     node_v1 = node.old_nodes.find_by(:version => 1)
     node_v2 = node.old_nodes.find_by(:version => 2)
@@ -68,15 +76,15 @@ class BrowseHelperTest < ActionView::TestCase
     add_old_tags_selection(node_v2)
     add_old_tags_selection(node_v1)
 
-    assert_equal "node", link_class("node", create(:node))
-    assert_equal "node deleted", link_class("node", create(:node, :deleted))
+    assert_equal "node", element_class("node", create(:node))
+    assert_equal "node", element_class("node", create(:node, :deleted))
 
-    assert_equal "node building yes shop gift tourism museum", link_class("node", node)
-    assert_equal "node building yes shop gift tourism museum", link_class("node", node_v2)
-    assert_equal "node deleted", link_class("node", node_v1)
+    assert_equal "node building yes shop gift tourism museum", element_class("node", node)
+    assert_equal "node building yes shop gift tourism museum", element_class("node", node_v2)
+    assert_equal "node", element_class("node", node_v1)
   end
 
-  def test_link_title
+  def test_element_title
     node = create(:node, :with_history, :version => 2)
     node_v1 = node.old_nodes.find_by(:version => 1)
     node_v2 = node.old_nodes.find_by(:version => 2)
@@ -86,12 +94,12 @@ class BrowseHelperTest < ActionView::TestCase
     add_old_tags_selection(node_v2)
     add_old_tags_selection(node_v1)
 
-    assert_equal "", link_title(create(:node))
-    assert_equal "", link_title(create(:node, :deleted))
+    assert_equal "", element_title(create(:node))
+    assert_equal "", element_title(create(:node, :deleted))
 
-    assert_equal "building=yes, shop=gift, and tourism=museum", link_title(node)
-    assert_equal "building=yes, shop=gift, and tourism=museum", link_title(node_v2)
-    assert_equal "", link_title(node_v1)
+    assert_equal "building=yes, shop=gift, and tourism=museum", element_title(node)
+    assert_equal "building=yes, shop=gift, and tourism=museum", element_title(node_v2)
+    assert_equal "", element_title(node_v1)
   end
 
   def test_icon_tags
index 0af0d931018ee7c25928f80ad4ac6f025cb0cb1a..f47c215c0e48dc14b2041ebe406d721901f0a0be 100644 (file)
@@ -22,6 +22,12 @@ class BrowseTagsHelperTest < ActionView::TestCase
     html = format_value("unknown", "unknown")
     assert_dom_equal "unknown", html
 
+    html = format_value("unknown", "abc;def")
+    assert_dom_equal "abc;def", html
+
+    html = format_value("unknown", "foo;")
+    assert_dom_equal "foo;", html
+
     html = format_value("addr:street", "Rue de l'Amigo")
     assert_dom_equal "Rue de l&#39;Amigo", html
 
@@ -48,7 +54,9 @@ class BrowseTagsHelperTest < ActionView::TestCase
     assert_dom_equal "<a title=\"The File:Test.jpg item on Wikimedia Commons\" href=\"//commons.wikimedia.org/wiki/File:Test.jpg?uselang=en\">File:Test.jpg</a>", html
 
     html = format_value("colour", "#f00")
-    assert_dom_equal %(<span class="colour-preview-box float-end m-1 border border-dark border-opacity-10" data-colour="#f00" title="Colour #f00 preview"></span>#f00), html
+    dom = Rails::Dom::Testing.html_document_fragment.parse html
+    assert_select dom, "svg>rect>@fill", "#f00"
+    assert_match(/#f00$/, html)
 
     html = format_value("email", "foo@example.com")
     assert_dom_equal "<a title=\"Email foo@example.com\" href=\"mailto:foo@example.com\">foo@example.com</a>", html
@@ -132,6 +140,11 @@ class BrowseTagsHelperTest < ActionView::TestCase
     assert_equal "//www.wikidata.org/entity/Q24?uselang=en", links[0][:url]
     assert_equal "Q24", links[0][:title]
 
+    # This verified buried is working
+    links = wikidata_links("buried:wikidata", "Q24")
+    assert_equal "//www.wikidata.org/entity/Q24?uselang=en", links[0][:url]
+    assert_equal "Q24", links[0][:title]
+
     links = wikidata_links("species:wikidata", "Q26899")
     assert_equal "//www.wikidata.org/entity/Q26899?uselang=en", links[0][:url]
     assert_equal "Q26899", links[0][:title]
diff --git a/test/helpers/svg_helper_test.rb b/test/helpers/svg_helper_test.rb
new file mode 100644 (file)
index 0000000..25a9e45
--- /dev/null
@@ -0,0 +1,113 @@
+require "test_helper"
+
+class SvgHelperTest < ActionView::TestCase
+  def test_key_fill
+    svg = key_svg_tag("width" => 60, "height" => 40, "fill" => "green")
+    expected = <<~HTML.gsub(/\n\s*/, "")
+      <svg width="60" height="40">
+        <rect width="100%" height="100%" fill="green" />
+      </svg>
+    HTML
+    assert_dom_equal expected, svg
+  end
+
+  def test_key_border
+    svg = key_svg_tag("width" => 60, "height" => 40, "border" => "red")
+    expected = <<~HTML.gsub(/\n\s*/, "")
+      <svg width="60" height="40">
+        <rect x="0.5" y="0.5" width="59" height="39" fill="none" stroke="red" />
+      </svg>
+    HTML
+    assert_dom_equal expected, svg
+  end
+
+  def test_key_border_width
+    svg = key_svg_tag("width" => 60, "height" => 40, "border" => "red", "border-width" => 3)
+    expected = <<~HTML.gsub(/\n\s*/, "")
+      <svg width="60" height="40">
+        <rect x="1.5" y="1.5" width="57" height="37" fill="none" stroke="red" stroke-width="3" />
+      </svg>
+    HTML
+    assert_dom_equal expected, svg
+  end
+
+  def test_key_border_with_integer_coords
+    svg = key_svg_tag("width" => 60, "height" => 40, "border" => "red", "border-width" => 2)
+    expected = <<~HTML.gsub(/\n\s*/, "")
+      <svg width="60" height="40">
+        <rect x="1" y="1" width="58" height="38" fill="none" stroke="red" stroke-width="2" />
+      </svg>
+    HTML
+    assert_dom_equal expected, svg
+  end
+
+  def test_key_border_fractional_width
+    svg = key_svg_tag("width" => 60, "height" => 40, "border" => "red", "border-width" => 1.5)
+    expected = <<~HTML.gsub(/\n\s*/, "")
+      <svg width="60" height="40">
+        <rect x="0.75" y="0.75" width="58.5" height="38.5" fill="none" stroke="red" stroke-width="1.5" />
+      </svg>
+    HTML
+    assert_dom_equal expected, svg
+  end
+
+  def test_key_line
+    svg = key_svg_tag("width" => 80, "height" => 15, "line" => "blue")
+    expected = <<~HTML.gsub(/\n\s*/, "")
+      <svg width="80" height="15">
+        <path d="M0,7.5 H80" stroke="blue" />
+      </svg>
+    HTML
+    assert_dom_equal expected, svg
+  end
+
+  def test_key_line_width
+    svg = key_svg_tag("width" => 80, "height" => 15, "line" => "blue", "line-width" => 3)
+    expected = <<~HTML.gsub(/\n\s*/, "")
+      <svg width="80" height="15">
+        <path d="M0,7.5 H80" stroke="blue" stroke-width="3" />
+      </svg>
+    HTML
+    assert_dom_equal expected, svg
+  end
+
+  def test_key_line_with_integer_coords
+    svg = key_svg_tag("width" => 80, "height" => 20, "line" => "blue")
+    expected = <<~HTML.gsub(/\n\s*/, "")
+      <svg width="80" height="20">
+        <path d="M0,10 H80" stroke="blue" />
+      </svg>
+    HTML
+    assert_dom_equal expected, svg
+  end
+
+  def test_key_casing
+    svg = key_svg_tag("width" => 80, "height" => 20, "casing" => "yellow")
+    expected = <<~HTML.gsub(/\n\s*/, "")
+      <svg width="80" height="20">
+        <path d="M0,0.5 H80 M0,19.5 H80" stroke="yellow" />
+      </svg>
+    HTML
+    assert_dom_equal expected, svg
+  end
+
+  def test_key_casing_width
+    svg = key_svg_tag("width" => 80, "height" => 20, "casing" => "yellow", "casing-width" => 5)
+    expected = <<~HTML.gsub(/\n\s*/, "")
+      <svg width="80" height="20">
+        <path d="M0,2.5 H80 M0,17.5 H80" stroke="yellow" stroke-width="5" />
+      </svg>
+    HTML
+    assert_dom_equal expected, svg
+  end
+
+  def test_key_casing_with_integer_coords
+    svg = key_svg_tag("width" => 80, "height" => 20, "casing" => "yellow", "casing-width" => 2)
+    expected = <<~HTML.gsub(/\n\s*/, "")
+      <svg width="80" height="20">
+        <path d="M0,1 H80 M0,19 H80" stroke="yellow" stroke-width="2" />
+      </svg>
+    HTML
+    assert_dom_equal expected, svg
+  end
+end
diff --git a/test/integration/user_changeset_comments_test.rb b/test/integration/user_changeset_comments_test.rb
deleted file mode 100644 (file)
index 2b95094..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-require "test_helper"
-
-class UserChangesetCommentsTest < ActionDispatch::IntegrationTest
-  # Test 'log in to comment' message for nonlogged in user
-  def test_log_in_message
-    changeset = create(:changeset, :closed)
-
-    get "/changeset/#{changeset.id}"
-    assert_response :success
-
-    assert_select "div#content" do
-      assert_select "div#sidebar" do
-        assert_select "div#sidebar_content" do
-          assert_select "div" do
-            assert_select "p.notice" do
-              assert_select "a[href='/login?referer=%2Fchangeset%2F#{changeset.id}']", :text => I18n.t("browse.changeset.join_discussion"), :count => 1
-            end
-          end
-        end
-      end
-    end
-  end
-
-  # Test if the form is shown
-  def test_displaying_form
-    user = create(:user)
-    changeset = create(:changeset, :closed)
-
-    get "/login"
-    follow_redirect!
-    # We should now be at the login page
-    assert_response :success
-    assert_template "sessions/new"
-    # We can now login
-    post "/login", :params => { "username" => user.email, "password" => "test" }
-    assert_response :redirect
-
-    get "/changeset/#{changeset.id}"
-
-    assert_response :success
-    assert_template "browse/changeset"
-
-    assert_select "div#content" do
-      assert_select "div#sidebar" do
-        assert_select "div#sidebar_content" do
-          assert_select "div" do
-            assert_select "form[action='#']" do
-              assert_select "textarea[name=text]"
-            end
-          end
-        end
-      end
-    end
-  end
-end
index 2baa6f776eebee21113fde8d9e4acb0c641e4c02..59efeaabbf7e439adc3c2db98d511dffd7dd0d1f 100644 (file)
@@ -18,149 +18,152 @@ class UserCreationTest < ActionDispatch::IntegrationTest
   end
 
   def test_create_user_form
-    I18n.with_locale "en" do
-      I18n.available_locales.each do |locale|
-        reset!
-        get "/user/new", :headers => { "HTTP_ACCEPT_LANGUAGE" => locale.to_s }
-        follow_redirect!
-        assert_response :success
-        assert_template "users/new"
-      end
-    end
+    get "/user/new"
+    follow_redirect!
+    assert_response :success
+    assert_template "users/new"
   end
 
   def test_user_create_submit_duplicate_email
-    I18n.with_locale "en" do
-      Locale.available.each do |locale|
-        dup_email = create(:user).email
-        display_name = "#{locale}_new_tester"
-        assert_difference("User.count", 0) do
-          assert_difference("ActionMailer::Base.deliveries.size", 0) do
-            perform_enqueued_jobs do
-              post "/user/new",
-                   :params => { :user => { :email => dup_email,
-                                           :email_confirmation => dup_email,
-                                           :display_name => display_name,
-                                           :pass_crypt => "testtest",
-                                           :pass_crypt_confirmation => "testtest" } },
-                   :headers => { "HTTP_ACCEPT_LANGUAGE" => locale.to_s }
-            end
-          end
+    dup_email = create(:user).email
+    display_name = "new_tester"
+    assert_difference("User.count", 0) do
+      assert_difference("ActionMailer::Base.deliveries.size", 0) do
+        perform_enqueued_jobs do
+          post "/user/new",
+               :params => { :user => { :email => dup_email,
+                                       :email_confirmation => dup_email,
+                                       :display_name => display_name,
+                                       :pass_crypt => "testtest",
+                                       :pass_crypt_confirmation => "testtest" } }
         end
-        assert_response :success
-        assert_template "users/new"
-        assert_equal locale.to_s, response.headers["Content-Language"]
-        assert_select "form"
-        assert_select "form > div > input.is-invalid#user_email"
-        assert_no_missing_translations
       end
     end
+    assert_response :success
+    assert_template "users/new"
+    assert_select "form"
+    assert_select "form > div > input.is-invalid#user_email"
   end
 
   def test_user_create_submit_duplicate_username
-    I18n.with_locale "en" do
-      I18n.available_locales.each do |locale|
-        dup_display_name = create(:user).display_name
-        email = "#{locale}_new_tester"
-        assert_difference("User.count", 0) do
-          assert_difference("ActionMailer::Base.deliveries.size", 0) do
-            perform_enqueued_jobs do
-              post "/user/new",
-                   :params => { :user => { :email => email,
-                                           :email_confirmation => email,
-                                           :display_name => dup_display_name,
-                                           :pass_crypt => "testtest",
-                                           :pass_crypt_confirmation => "testtest" } },
-                   :headers => { "HTTP_ACCEPT_LANGUAGE" => locale.to_s }
-            end
-          end
+    dup_display_name = create(:user).display_name
+    email = "new_tester"
+    assert_difference("User.count", 0) do
+      assert_difference("ActionMailer::Base.deliveries.size", 0) do
+        perform_enqueued_jobs do
+          post "/user/new",
+               :params => { :user => { :email => email,
+                                       :email_confirmation => email,
+                                       :display_name => dup_display_name,
+                                       :pass_crypt => "testtest",
+                                       :pass_crypt_confirmation => "testtest" } }
         end
-        assert_response :success
-        assert_template "users/new"
-        assert_select "form > div > input.is-invalid#user_display_name"
-        assert_no_missing_translations
       end
     end
+    assert_response :success
+    assert_template "users/new"
+    assert_select "form > div > input.is-invalid#user_display_name"
+  end
+
+  def test_user_create_submit_mismatched_passwords
+    email = "newtester@osm.org"
+    display_name = "new_tester"
+    assert_difference("User.count", 0) do
+      assert_difference("ActionMailer::Base.deliveries.size", 0) do
+        perform_enqueued_jobs do
+          post "/user/new",
+               :params => { :user => { :email => email,
+                                       :email_confirmation => email,
+                                       :display_name => display_name,
+                                       :pass_crypt => "testtest",
+                                       :pass_crypt_confirmation => "blahblah" } }
+        end
+      end
+    end
+    assert_response :success
+    assert_template "users/new"
+    assert_select "form > div > input.is-invalid#user_pass_crypt_confirmation"
   end
 
   def test_user_create_success
-    I18n.with_locale "en" do
-      I18n.available_locales.each do |locale|
-        new_email = "#{locale}newtester@osm.org"
-        display_name = "#{locale}_new_tester"
-
-        assert_difference("User.count", 0) do
-          assert_difference("ActionMailer::Base.deliveries.size", 0) do
-            perform_enqueued_jobs do
-              post "/user/new",
-                   :params => { :user => { :email => new_email,
-                                           :email_confirmation => new_email,
-                                           :display_name => display_name,
-                                           :pass_crypt => "testtest",
-                                           :pass_crypt_confirmation => "testtest" } }
-            end
-          end
+    new_email = "newtester@osm.org"
+    display_name = "new_tester"
+
+    assert_difference("User.count", 0) do
+      assert_difference("ActionMailer::Base.deliveries.size", 0) do
+        perform_enqueued_jobs do
+          post "/user/new",
+               :params => { :user => { :email => new_email,
+                                       :email_confirmation => new_email,
+                                       :display_name => display_name,
+                                       :pass_crypt => "testtest",
+                                       :pass_crypt_confirmation => "testtest" } }
         end
+      end
+    end
+
+    assert_redirected_to "/user/terms"
 
-        assert_redirected_to "/user/terms"
-
-        assert_difference("User.count") do
-          assert_difference("ActionMailer::Base.deliveries.size", 1) do
-            perform_enqueued_jobs do
-              post "/user/save",
-                   :headers => { "HTTP_ACCEPT_LANGUAGE" => locale.to_s },
-                   :params => { :read_ct => 1, :read_tou => 1 }
-              follow_redirect!
-            end
-          end
+    assert_difference("User.count") do
+      assert_difference("ActionMailer::Base.deliveries.size", 1) do
+        perform_enqueued_jobs do
+          post "/user/save",
+               :params => { :read_ct => 1, :read_tou => 1 }
+          follow_redirect!
         end
+      end
+    end
 
-        # Check the e-mail
-        register_email = ActionMailer::Base.deliveries.first
+    assert_response :success
+    assert_template "confirmations/confirm"
 
-        assert_equal register_email.to.first, new_email
-        # Check that the confirm account url is correct
-        assert_match(/#{@url}/, register_email.body.to_s)
+    user = User.find_by(:email => "newtester@osm.org")
+    assert_not_nil user
+    assert_not_predicate user, :active?
 
-        # Check the page
-        assert_response :success
-        assert_template "confirmations/confirm"
+    register_email = ActionMailer::Base.deliveries.first
+    assert_equal register_email.to.first, new_email
+    found_confirmation_url = register_email.parts.first.parts.first.to_s =~ %r{\shttp://test.host(/\S+)\s}
+    assert found_confirmation_url
+    confirmation_url = Regexp.last_match(1)
+    ActionMailer::Base.deliveries.clear
 
-        ActionMailer::Base.deliveries.clear
-      end
-    end
+    post confirmation_url
+
+    assert_response :redirect
+    assert_redirected_to welcome_path
+
+    user.reload
+    assert_predicate user, :active?
+
+    assert_equal user, User.authenticate(:username => new_email, :password => "testtest")
   end
 
   def test_user_create_no_tou_failure
-    I18n.with_locale "en" do
-      I18n.available_locales.each do |locale|
-        new_email = "#{locale}newtester@osm.org"
-        display_name = "#{locale}_new_tester"
-
-        assert_difference("User.count", 0) do
-          assert_difference("ActionMailer::Base.deliveries.size", 0) do
-            perform_enqueued_jobs do
-              post "/user/new",
-                   :params => { :user => { :email => new_email,
-                                           :email_confirmation => new_email,
-                                           :display_name => display_name,
-                                           :pass_crypt => "testtest",
-                                           :pass_crypt_confirmation => "testtest" } }
-            end
-          end
-        end
-
-        assert_redirected_to "/user/terms"
+    new_email = "#newtester@osm.org"
+    display_name = "new_tester"
 
+    assert_difference("User.count", 0) do
+      assert_difference("ActionMailer::Base.deliveries.size", 0) do
         perform_enqueued_jobs do
-          post "/user/save",
-               :headers => { "HTTP_ACCEPT_LANGUAGE" => locale.to_s }
-          assert_redirected_to "/user/terms"
+          post "/user/new",
+               :params => { :user => { :email => new_email,
+                                       :email_confirmation => new_email,
+                                       :display_name => display_name,
+                                       :pass_crypt => "testtest",
+                                       :pass_crypt_confirmation => "testtest" } }
         end
-
-        ActionMailer::Base.deliveries.clear
       end
     end
+
+    assert_redirected_to "/user/terms"
+
+    perform_enqueued_jobs do
+      post "/user/save"
+      assert_redirected_to "/user/terms"
+    end
+
+    ActionMailer::Base.deliveries.clear
   end
 
   # Check that the user can successfully recover their password
@@ -206,11 +209,11 @@ class UserCreationTest < ActionDispatch::IntegrationTest
 
     assert_equal register_email.to.first, new_email
     # Check that the confirm account url is correct
-    confirm_regex = Regexp.new("/user/redirect_tester/confirm\\?confirm_string=([a-zA-Z0-9]*)")
+    confirm_regex = Regexp.new("confirm_string=([a-zA-Z0-9%_-]*)")
     email_text_parts(register_email).each do |part|
       assert_match confirm_regex, part.body.to_s
     end
-    confirm_string = email_text_parts(register_email).first.body.match(confirm_regex)[1]
+    confirm_string = CGI.unescape(email_text_parts(register_email).first.body.match(confirm_regex)[1])
 
     # Check the page
     assert_response :success
@@ -219,11 +222,11 @@ class UserCreationTest < ActionDispatch::IntegrationTest
     ActionMailer::Base.deliveries.clear
 
     # Go to the confirmation page
-    get "/user/#{display_name}/confirm", :params => { :confirm_string => confirm_string }
+    get "/user/#{display_name}/confirm", :params => { :referer => "/welcome", :confirm_string => confirm_string }
     assert_response :success
     assert_template "confirmations/confirm"
 
-    post "/user/#{display_name}/confirm", :params => { :confirm_string => confirm_string }
+    post "/user/#{display_name}/confirm", :params => { :referer => "/welcome", :confirm_string => confirm_string }
     assert_response :redirect
     follow_redirect!
     assert_response :success
@@ -359,11 +362,11 @@ class UserCreationTest < ActionDispatch::IntegrationTest
 
     assert_equal register_email.to.first, new_email
     # Check that the confirm account url is correct
-    confirm_regex = Regexp.new("/user/redirect_tester_openid/confirm\\?confirm_string=([a-zA-Z0-9]*)")
+    confirm_regex = Regexp.new("confirm_string=([a-zA-Z0-9%_-]*)")
     email_text_parts(register_email).each do |part|
       assert_match confirm_regex, part.body.to_s
     end
-    confirm_string = email_text_parts(register_email).first.body.match(confirm_regex)[1]
+    confirm_string = CGI.unescape(email_text_parts(register_email).first.body.match(confirm_regex)[1])
 
     # Check the page
     assert_response :success
@@ -372,11 +375,11 @@ class UserCreationTest < ActionDispatch::IntegrationTest
     ActionMailer::Base.deliveries.clear
 
     # Go to the confirmation page
-    get "/user/#{display_name}/confirm", :params => { :confirm_string => confirm_string }
+    get "/user/#{display_name}/confirm", :params => { :referer => "/welcome", :confirm_string => confirm_string }
     assert_response :success
     assert_template "confirmations/confirm"
 
-    post "/user/#{display_name}/confirm", :params => { :confirm_string => confirm_string }
+    post "/user/#{display_name}/confirm", :params => { :referer => "/welcome", :confirm_string => confirm_string }
     assert_response :redirect
     follow_redirect!
     assert_response :success
@@ -513,11 +516,11 @@ class UserCreationTest < ActionDispatch::IntegrationTest
 
     assert_equal register_email.to.first, new_email
     # Check that the confirm account url is correct
-    confirm_regex = Regexp.new("/user/redirect_tester_google/confirm\\?confirm_string=([a-zA-Z0-9]*)")
+    confirm_regex = Regexp.new("confirm_string=([a-zA-Z0-9%_-]*)")
     email_text_parts(register_email).each do |part|
       assert_match confirm_regex, part.body.to_s
     end
-    confirm_string = email_text_parts(register_email).first.body.match(confirm_regex)[1]
+    confirm_string = CGI.unescape(email_text_parts(register_email).first.body.match(confirm_regex)[1])
 
     # Check the page
     assert_response :success
@@ -526,11 +529,11 @@ class UserCreationTest < ActionDispatch::IntegrationTest
     ActionMailer::Base.deliveries.clear
 
     # Go to the confirmation page
-    get "/user/#{display_name}/confirm", :params => { :confirm_string => confirm_string }
+    get "/user/#{display_name}/confirm", :params => { :referer => "/welcome", :confirm_string => confirm_string }
     assert_response :success
     assert_template "confirmations/confirm"
 
-    post "/user/#{display_name}/confirm", :params => { :confirm_string => confirm_string }
+    post "/user/#{display_name}/confirm", :params => { :referer => "/welcome", :confirm_string => confirm_string }
     assert_response :redirect
     follow_redirect!
     assert_response :success
@@ -665,11 +668,11 @@ class UserCreationTest < ActionDispatch::IntegrationTest
 
     assert_equal register_email.to.first, new_email
     # Check that the confirm account url is correct
-    confirm_regex = Regexp.new("/user/redirect_tester_facebook/confirm\\?confirm_string=([a-zA-Z0-9]*)")
+    confirm_regex = Regexp.new("confirm_string=([a-zA-Z0-9%_-]*)")
     email_text_parts(register_email).each do |part|
       assert_match confirm_regex, part.body.to_s
     end
-    confirm_string = email_text_parts(register_email).first.body.match(confirm_regex)[1]
+    confirm_string = CGI.unescape(email_text_parts(register_email).first.body.match(confirm_regex)[1])
 
     # Check the page
     assert_response :success
@@ -678,11 +681,11 @@ class UserCreationTest < ActionDispatch::IntegrationTest
     ActionMailer::Base.deliveries.clear
 
     # Go to the confirmation page
-    get "/user/#{display_name}/confirm", :params => { :confirm_string => confirm_string }
+    get "/user/#{display_name}/confirm", :params => { :referer => "/welcome", :confirm_string => confirm_string }
     assert_response :success
     assert_template "confirmations/confirm"
 
-    post "/user/#{display_name}/confirm", :params => { :confirm_string => confirm_string }
+    post "/user/#{display_name}/confirm", :params => { :referer => "/welcome", :confirm_string => confirm_string }
     assert_response :redirect
     follow_redirect!
     assert_response :success
@@ -817,11 +820,11 @@ class UserCreationTest < ActionDispatch::IntegrationTest
 
     assert_equal register_email.to.first, new_email
     # Check that the confirm account url is correct
-    confirm_regex = Regexp.new("/user/redirect_tester_microsoft/confirm\\?confirm_string=([a-zA-Z0-9]*)")
+    confirm_regex = Regexp.new("confirm_string=([a-zA-Z0-9%_-]*)")
     email_text_parts(register_email).each do |part|
       assert_match confirm_regex, part.body.to_s
     end
-    confirm_string = email_text_parts(register_email).first.body.match(confirm_regex)[1]
+    confirm_string = CGI.unescape(email_text_parts(register_email).first.body.match(confirm_regex)[1])
 
     # Check the page
     assert_response :success
@@ -830,11 +833,11 @@ class UserCreationTest < ActionDispatch::IntegrationTest
     ActionMailer::Base.deliveries.clear
 
     # Go to the confirmation page
-    get "/user/#{display_name}/confirm", :params => { :confirm_string => confirm_string }
+    get "/user/#{display_name}/confirm", :params => { :referer => "/welcome", :confirm_string => confirm_string }
     assert_response :success
     assert_template "confirmations/confirm"
 
-    post "/user/#{display_name}/confirm", :params => { :confirm_string => confirm_string }
+    post "/user/#{display_name}/confirm", :params => { :referer => "/welcome", :confirm_string => confirm_string }
     assert_response :redirect
     follow_redirect!
     assert_response :success
@@ -849,7 +852,7 @@ class UserCreationTest < ActionDispatch::IntegrationTest
     OmniAuth.config.add_mock(:github, :uid => "123454321", :info => { "email" => new_email })
 
     assert_difference("User.count") do
-      assert_difference("ActionMailer::Base.deliveries.size", 1) do
+      assert_no_difference("ActionMailer::Base.deliveries.size") do
         perform_enqueued_jobs do
           post "/user/new",
                :params => { :user => { :email => new_email,
@@ -877,7 +880,7 @@ class UserCreationTest < ActionDispatch::IntegrationTest
                             :read_ct => 1,
                             :read_tou => 1 }
           assert_response :redirect
-          assert_redirected_to :controller => :confirmations, :action => :confirm, :display_name => display_name
+          assert_redirected_to welcome_path
           follow_redirect!
         end
       end
@@ -885,7 +888,7 @@ class UserCreationTest < ActionDispatch::IntegrationTest
 
     # Check the page
     assert_response :success
-    assert_template "confirmations/confirm"
+    assert_template "site/welcome"
 
     ActionMailer::Base.deliveries.clear
   end
@@ -971,11 +974,11 @@ class UserCreationTest < ActionDispatch::IntegrationTest
 
     assert_equal register_email.to.first, new_email
     # Check that the confirm account url is correct
-    confirm_regex = Regexp.new("/user/redirect_tester_github/confirm\\?confirm_string=([a-zA-Z0-9]*)")
+    confirm_regex = Regexp.new("confirm_string=([a-zA-Z0-9%_-]*)")
     email_text_parts(register_email).each do |part|
       assert_match confirm_regex, part.body.to_s
     end
-    confirm_string = email_text_parts(register_email).first.body.match(confirm_regex)[1]
+    confirm_string = CGI.unescape(email_text_parts(register_email).first.body.match(confirm_regex)[1])
 
     # Check the page
     assert_response :success
@@ -984,11 +987,11 @@ class UserCreationTest < ActionDispatch::IntegrationTest
     ActionMailer::Base.deliveries.clear
 
     # Go to the confirmation page
-    get "/user/#{display_name}/confirm", :params => { :confirm_string => confirm_string }
+    get "/user/#{display_name}/confirm", :params => { :referer => "/welcome", :confirm_string => confirm_string }
     assert_response :success
     assert_template "confirmations/confirm"
 
-    post "/user/#{display_name}/confirm", :params => { :confirm_string => confirm_string }
+    post "/user/#{display_name}/confirm", :params => { :referer => "/welcome", :confirm_string => confirm_string }
     assert_response :redirect
     follow_redirect!
     assert_response :success
@@ -1003,7 +1006,7 @@ class UserCreationTest < ActionDispatch::IntegrationTest
     OmniAuth.config.add_mock(:wikipedia, :uid => "123454321", :info => { "email" => new_email })
 
     assert_difference("User.count") do
-      assert_difference("ActionMailer::Base.deliveries.size", 1) do
+      assert_no_difference("ActionMailer::Base.deliveries.size") do
         perform_enqueued_jobs do
           post "/user/new",
                :params => { :user => { :email => new_email,
@@ -1031,7 +1034,7 @@ class UserCreationTest < ActionDispatch::IntegrationTest
                             :read_ct => 1,
                             :read_tou => 1 }
           assert_response :redirect
-          assert_redirected_to :controller => :confirmations, :action => :confirm, :display_name => display_name
+          assert_redirected_to welcome_path
           follow_redirect!
         end
       end
@@ -1039,7 +1042,7 @@ class UserCreationTest < ActionDispatch::IntegrationTest
 
     # Check the page
     assert_response :success
-    assert_template "confirmations/confirm"
+    assert_template "site/welcome"
 
     ActionMailer::Base.deliveries.clear
   end
@@ -1125,11 +1128,11 @@ class UserCreationTest < ActionDispatch::IntegrationTest
 
     assert_equal register_email.to.first, new_email
     # Check that the confirm account url is correct
-    confirm_regex = Regexp.new("/user/redirect_tester_wikipedia/confirm\\?confirm_string=([a-zA-Z0-9]*)")
+    confirm_regex = Regexp.new("confirm_string=([a-zA-Z0-9%_-]*)")
     email_text_parts(register_email).each do |part|
       assert_match confirm_regex, part.body.to_s
     end
-    confirm_string = email_text_parts(register_email).first.body.match(confirm_regex)[1]
+    confirm_string = CGI.unescape(email_text_parts(register_email).first.body.match(confirm_regex)[1])
 
     # Check the page
     assert_response :success
@@ -1138,11 +1141,11 @@ class UserCreationTest < ActionDispatch::IntegrationTest
     ActionMailer::Base.deliveries.clear
 
     # Go to the confirmation page
-    get "/user/#{display_name}/confirm", :params => { :confirm_string => confirm_string }
+    get "/user/#{display_name}/confirm", :params => { :referer => "/welcome", :confirm_string => confirm_string }
     assert_response :success
     assert_template "confirmations/confirm"
 
-    post "/user/#{display_name}/confirm", :params => { :confirm_string => confirm_string }
+    post "/user/#{display_name}/confirm", :params => { :referer => "/welcome", :confirm_string => confirm_string }
     assert_response :redirect
     follow_redirect!
     assert_response :success
index d176e0fa78208e794e315191fa280cba4a4dd935..9143fcd81c5d1f3dd110ca59fd0d2cf5c4f40c13 100644 (file)
@@ -222,7 +222,7 @@ class BoundingBoxTest < ActiveSupport::TestCase
   end
 
   def test_complete
-    assert_not @bbox_from_nils.complete?, "should contain a nil"
+    assert_not_predicate @bbox_from_nils, :complete?, "should contain a nil"
     assert_predicate @bbox_from_string, :complete?, "should not contain a nil"
   end
 
index a25e4887c9bd00a11f51d178d7a8f859b35baee1..fe94cbdd3604e1de39d2b8505891d7fcd51a3cdb 100644 (file)
@@ -2,7 +2,7 @@ require "test_helper"
 
 class I18nTest < ActiveSupport::TestCase
   I18n.available_locales.each do |locale|
-    define_method("test_#{locale.to_s.underscore}".to_sym) do
+    test locale.to_s do
       without_i18n_exceptions do
         # plural_keys = plural_keys(locale)
 
@@ -42,7 +42,7 @@ class I18nTest < ActiveSupport::TestCase
 
             assert_includes value, :other, "#{key}.other plural key missing"
           else
-            assert value.is_a?(String), "#{key} is not a string"
+            assert_kind_of String, value, "#{key} is not a string"
 
             value.scan(/%\{(\w+)\}/) do
               assert_includes variables, Regexp.last_match(1), "#{key} uses unknown interpolation variable #{Regexp.last_match(1)}"
@@ -57,7 +57,7 @@ class I18nTest < ActiveSupport::TestCase
 
   Rails.root.glob("config/locales/*.yml").each do |filename|
     lang = File.basename(filename, ".yml")
-    define_method("test_#{lang}_for_raw_html".to_sym) do
+    test "#{lang} for raw html" do
       yml = YAML.load_file(filename)
       assert_nothing_raised do
         check_values_for_raw_html(yml)
index 537bb9d0ddf60ec4220007d56d3c6986f524be7b..998e97330059c4ab4cd41a019851131cda35893d 100644 (file)
@@ -15,7 +15,34 @@ class UserMailerTest < ActionMailer::TestCase
     end
     email = UserMailer.gpx_success(trace, 100)
 
-    assert_match(/one two three/, email.html_part.body.to_s)
+    assert_match("<em>one</em>, <em>two</em>, <em>three</em>", email.html_part.body.to_s)
+  end
+
+  def test_gpx_success_all_traces_link
+    trace = create(:trace)
+    email = UserMailer.gpx_success(trace, 100)
+    body = Rails::Dom::Testing.html_document_fragment.parse(email.html_part.body)
+
+    url = Rails.application.routes.url_helpers.url_for(:controller => "traces", :action => "mine", :host => Settings.server_url, :protocol => Settings.server_protocol)
+    assert_select body, "a[href='#{url}']"
+  end
+
+  def test_gpx_success_trace_link
+    trace = create(:trace)
+    email = UserMailer.gpx_success(trace, 100)
+    body = Rails::Dom::Testing.html_document_fragment.parse(email.html_part.body)
+
+    url = Rails.application.routes.url_helpers.show_trace_url(trace.user, trace, :host => Settings.server_url, :protocol => Settings.server_protocol)
+    assert_select body, "a[href='#{url}']", :text => trace.name
+  end
+
+  def test_gpx_failure_no_trace_link
+    trace = create(:trace)
+    email = UserMailer.gpx_failure(trace, "some error")
+    body = Rails::Dom::Testing.html_document_fragment.parse(email.html_part.body)
+
+    url = Rails.application.routes.url_helpers.show_trace_url(trace.user, trace, :host => Settings.server_url, :protocol => Settings.server_protocol)
+    assert_select body, "a[href='#{url}']", :count => 0
   end
 
   def test_html_encoding
@@ -26,4 +53,19 @@ class UserMailerTest < ActionMailer::TestCase
     assert_match("Jack & Jill <br>", email.text_part.body.to_s)
     assert_match("Jack &amp; Jill &lt;br&gt;", email.html_part.body.to_s)
   end
+
+  def test_diary_comment_notification
+    create(:language, :code => "en")
+    user = create(:user)
+    other_user = create(:user)
+    diary_entry = create(:diary_entry, :user => user)
+    diary_comment = create(:diary_comment, :diary_entry => diary_entry)
+    email = UserMailer.diary_comment_notification(diary_comment, other_user)
+    body = Rails::Dom::Testing.html_document_fragment.parse(email.html_part.body)
+
+    url = Rails.application.routes.url_helpers.diary_entry_url(user, diary_entry, :host => Settings.server_url, :protocol => Settings.server_protocol)
+    unsubscribe_url = Rails.application.routes.url_helpers.diary_entry_unsubscribe_url(user, diary_entry, :host => Settings.server_url, :protocol => Settings.server_protocol)
+    assert_select body, "a[href^='#{url}']"
+    assert_select body, "a[href='#{unsubscribe_url}']", :count => 1
+  end
 end
index 88d1c0e7d028f4b3675139f24766a0a36828ec6a..6bd87729c120db814529bcab02e42497734c1357 100644 (file)
@@ -5,7 +5,7 @@ class AclTest < ActiveSupport::TestCase
     acl = create(:acl)
     assert_predicate acl, :valid?
     acl.k = nil
-    assert_not acl.valid?
+    assert_not_predicate acl, :valid?
   end
 
   def test_no_account_creation_by_subnet
@@ -27,4 +27,40 @@ class AclTest < ActiveSupport::TestCase
     create(:acl, :mx => "mail.example.com", :k => "no_account_creation")
     assert Acl.no_account_creation("192.168.1.1", :mx => "mail.example.com")
   end
+
+  def test_allow_account_creation_by_subnet
+    assert_not Acl.allow_account_creation("192.168.1.1")
+    create(:acl, :address => "192.168.0.0/16", :k => "allow_account_creation")
+    assert Acl.allow_account_creation("192.168.1.1")
+  end
+
+  def test_allow_account_creation_by_domain
+    assert_not Acl.allow_account_creation("192.168.1.1", :domain => "example.com")
+    assert_not Acl.allow_account_creation("192.168.1.1", :domain => "test.example.com")
+    create(:acl, :domain => "example.com", :k => "allow_account_creation")
+    assert Acl.allow_account_creation("192.168.1.1", :domain => "example.com")
+    assert Acl.allow_account_creation("192.168.1.1", :domain => "test.example.com")
+  end
+
+  def test_allow_account_creation_by_mx
+    assert_not Acl.allow_account_creation("192.168.1.1", :mx => "mail.example.com")
+    create(:acl, :mx => "mail.example.com", :k => "allow_account_creation")
+    assert Acl.allow_account_creation("192.168.1.1", :mx => "mail.example.com")
+  end
+
+  def test_no_note_comment_by_domain
+    assert_not Acl.no_note_comment("192.168.1.1", "example.com")
+    assert_not Acl.no_note_comment("192.168.1.1", "test.example.com")
+    create(:acl, :domain => "example.com", :k => "no_note_comment")
+    assert Acl.no_note_comment("192.168.1.1", "example.com")
+    assert Acl.no_note_comment("192.168.1.1", "test.example.com")
+  end
+
+  def test_no_trace_download_by_domain
+    assert_not Acl.no_trace_download("192.168.1.1", "example.com")
+    assert_not Acl.no_trace_download("192.168.1.1", "test.example.com")
+    create(:acl, :domain => "example.com", :k => "no_trace_download")
+    assert Acl.no_trace_download("192.168.1.1", "example.com")
+    assert Acl.no_trace_download("192.168.1.1", "test.example.com")
+  end
 end
index 2139c8d39a9bc9f7145303b8508ec1081321b2ed..991bf555dd8544fb79fe879a1f23e727533b0bc0 100644 (file)
@@ -6,27 +6,27 @@ class ChangesetCommentTest < ActiveSupport::TestCase
     comment = create(:changeset_comment)
 
     comment.author = nil
-    assert_not comment.valid?
+    assert_not_predicate comment, :valid?
 
     comment.author_id = 999111
-    assert_not comment.valid?
+    assert_not_predicate comment, :valid?
   end
 
   def test_does_not_accept_invalid_changeset
     comment = create(:changeset_comment)
 
     comment.changeset = nil
-    assert_not comment.valid?
+    assert_not_predicate comment, :valid?
 
     comment.changeset_id = 999111
-    assert_not comment.valid?
+    assert_not_predicate comment, :valid?
   end
 
   def test_does_not_accept_empty_visible
     comment = create(:changeset_comment)
 
     comment.visible = nil
-    assert_not comment.valid?
+    assert_not_predicate comment, :valid?
   end
 
   def test_comments_of_changeset_count
@@ -50,7 +50,7 @@ class ChangesetCommentTest < ActiveSupport::TestCase
     bad.each do |body|
       changeset_comment = create(:changeset_comment)
       changeset_comment.body = body
-      assert_not changeset_comment.valid?, "#{body} is valid when it shouldn't be"
+      assert_not_predicate changeset_comment, :valid?, "#{body} is valid when it shouldn't be"
     end
   end
 end
index 5832b8a706523674aeb96cc6ca21d8e770a9dcc8..81b280790d3b428cc9bb15afa3a64eacb5e77a09 100644 (file)
@@ -20,21 +20,21 @@ class ChangesetTagTest < ActiveSupport::TestCase
   def test_length_key_invalid
     tag = create(:changeset_tag)
     tag.k = "k" * 256
-    assert_not tag.valid?, "Key should be too long"
+    assert_not_predicate tag, :valid?, "Key should be too long"
     assert_predicate tag.errors[:k], :any?
   end
 
   def test_length_value_invalid
     tag = create(:changeset_tag)
     tag.v = "v" * 256
-    assert_not tag.valid?, "Value should be too long"
+    assert_not_predicate tag, :valid?, "Value should be too long"
     assert_predicate tag.errors[:v], :any?
   end
 
   def test_orphaned_tag_invalid
     tag = create(:changeset_tag)
     tag.changeset = nil
-    assert_not tag.valid?, "Orphaned tag should be invalid"
+    assert_not_predicate tag, :valid?, "Orphaned tag should be invalid"
     assert_predicate tag.errors[:changeset], :any?
   end
 
@@ -42,7 +42,7 @@ class ChangesetTagTest < ActiveSupport::TestCase
     existing = create(:changeset_tag)
     tag = build(:changeset_tag, :changeset => existing.changeset, :k => existing.k, :v => existing.v)
     assert_predicate tag, :new_record?
-    assert_not tag.valid?
+    assert_not_predicate tag, :valid?
     assert_raise(ActiveRecord::RecordInvalid) { tag.save! }
     assert_predicate tag, :new_record?
   end
index 3be9a52e636fc8ba9d58d64c5022226a673f480f..affa773d19294f91fee7dcd4c2a4d5e8f8188fca 100644 (file)
@@ -71,4 +71,17 @@ class ChangesetTest < ActiveSupport::TestCase
       Changeset.from_xml(xml, :create => true)
     end
   end
+
+  def test_subscription
+    changeset = create(:changeset)
+    user = create(:user)
+
+    assert_not changeset.subscribed?(user)
+
+    changeset.subscribe(user)
+    assert changeset.subscribed?(user)
+
+    changeset.unsubscribe(changeset.subscribers.first)
+    assert_not changeset.subscribed?(user)
+  end
 end
index c3f1df23c23c996da989ddaaaf7dba90c9fb31ac..9dc5ab5fc4c9b7258e29ddabe1275c76aa466e55 100644 (file)
@@ -14,7 +14,7 @@ class ClientApplicationTest < ActiveSupport::TestCase
     bad.each do |url|
       app = build(:client_application)
       app.url = url
-      assert_not app.valid?, "#{url} is valid when it shouldn't be"
+      assert_not_predicate app, :valid?, "#{url} is valid when it shouldn't be"
     end
   end
 
@@ -31,7 +31,7 @@ class ClientApplicationTest < ActiveSupport::TestCase
     bad.each do |url|
       app = build(:client_application)
       app.support_url = url
-      assert_not app.valid?, "#{url} is valid when it shouldn't be"
+      assert_not_predicate app, :valid?, "#{url} is valid when it shouldn't be"
     end
   end
 
@@ -48,7 +48,7 @@ class ClientApplicationTest < ActiveSupport::TestCase
     bad.each do |url|
       app = build(:client_application)
       app.callback_url = url
-      assert_not app.valid?, "#{url} is valid when it shouldn't be"
+      assert_not_predicate app, :valid?, "#{url} is valid when it shouldn't be"
     end
   end
 end
index f166282c1dcbf1bad0aec59d1eafd40f34b2f31b..b2a868a93f7d62e94576f7abee33155165a1d2af 100644 (file)
@@ -6,7 +6,7 @@ class IssueTest < ActiveSupport::TestCase
 
     assert_predicate issue, :valid?
     issue.assigned_role = "bogus"
-    assert_not issue.valid?
+    assert_not_predicate issue, :valid?
   end
 
   def test_reported_user
index 5ba558907a0f68f22ce32123e33c13c70997bfef..f777d8e1965a53d7348e52bfda21cbb9f349b931 100644 (file)
@@ -6,6 +6,11 @@ class LanguageTest < ActiveSupport::TestCase
     assert_equal "Slovenian (slovenščina)", Language.find("sl").name
   end
 
+  def test_same_native_name
+    create(:language, :code => "af", :english_name => "Afrikaans", :native_name => "Afrikaans")
+    assert_equal "Afrikaans", Language.find("af").name
+  end
+
   def test_load
     assert_equal 0, Language.count
     assert_raise ActiveRecord::RecordNotFound do
index 97afad56e17f80c72ec2f71add8c9f03146fb4c3..1bc15cba3f30cc82aa9c9f014ce3de95bea7c593 100644 (file)
@@ -5,7 +5,7 @@ class MessageTest < ActiveSupport::TestCase
 
   def test_check_empty_message_fails
     message = build(:message, :title => nil, :body => nil, :sent_on => nil)
-    assert_not message.valid?
+    assert_not_predicate message, :valid?
     assert_predicate message.errors[:title], :any?
     assert_predicate message.errors[:body], :any?
     assert_predicate message.errors[:sent_on], :any?
@@ -23,7 +23,7 @@ class MessageTest < ActiveSupport::TestCase
     message = create(:message, :unread)
     message.sender = nil
     message.recipient = nil
-    assert_not message.valid?
+    assert_not_predicate message, :valid?
 
     assert_raise(ActiveRecord::RecordNotFound) { User.find(0) }
     message.from_user_id = 0
@@ -175,6 +175,26 @@ class MessageTest < ActiveSupport::TestCase
     assert_equal "text", message.body_format
   end
 
+  def test_notify_recipient
+    message = create(:message)
+    assert_not_predicate message, :muted?
+    assert_predicate message, :notify_recipient?
+  end
+
+  def test_notify_recipient_for_muted_messages
+    message = create(:message, :muted)
+    assert_predicate message, :muted?
+    assert_not_predicate message, :notify_recipient?
+  end
+
+  def test_unmuting_a_muted_message
+    message = create(:message, :muted)
+    assert_predicate message, :muted?
+
+    message.unmute
+    assert_not_predicate message, :muted?
+  end
+
   private
 
   def make_message(char, count)
index d927b5fea202edc7d9f945c40fa13bc2bdacbb0f..5788bcca5223cd36989911ff5bdf4b73b85a2ec0 100644 (file)
@@ -20,21 +20,21 @@ class NodeTagTest < ActiveSupport::TestCase
   def test_length_key_invalid
     tag = create(:node_tag)
     tag.k = "k" * 256
-    assert_not tag.valid?, "Key should be too long"
+    assert_not_predicate tag, :valid?, "Key should be too long"
     assert_predicate tag.errors[:k], :any?
   end
 
   def test_length_value_invalid
     tag = create(:node_tag)
     tag.v = "v" * 256
-    assert_not tag.valid?, "Value should be too long"
+    assert_not_predicate tag, :valid?, "Value should be too long"
     assert_predicate tag.errors[:v], :any?
   end
 
   def test_orphaned_node_tag_invalid
     tag = create(:node_tag)
     tag.node = nil
-    assert_not tag.valid?, "Orphaned tag should be invalid"
+    assert_not_predicate tag, :valid?, "Orphaned tag should be invalid"
     assert_predicate tag.errors[:node], :any?
   end
 
@@ -42,7 +42,7 @@ class NodeTagTest < ActiveSupport::TestCase
     existing = create(:node_tag)
     tag = build(:node_tag, :node => existing.node, :k => existing.k, :v => existing.v)
     assert_predicate tag, :new_record?
-    assert_not tag.valid?
+    assert_not_predicate tag, :valid?
     assert_raise(ActiveRecord::RecordInvalid) { tag.save! }
     assert_predicate tag, :new_record?
   end
index f4dd645ee21a9392d8e13f6f557e6142aac07e9e..615586e56a7ede40221ace2997df96f409409254 100644 (file)
@@ -14,7 +14,7 @@ class NoteCommentTest < ActiveSupport::TestCase
     bad.each do |event|
       note_comment = create(:note_comment)
       note_comment.event = event
-      assert_not note_comment.valid?, "#{event} is valid when it shouldn't be"
+      assert_not_predicate note_comment, :valid?, "#{event} is valid when it shouldn't be"
     end
   end
 
@@ -33,7 +33,7 @@ class NoteCommentTest < ActiveSupport::TestCase
     bad.each do |body|
       note_comment = create(:note_comment)
       note_comment.body = body
-      assert_not note_comment.valid?, "#{body} is valid when it shouldn't be"
+      assert_not_predicate note_comment, :valid?, "#{body} is valid when it shouldn't be"
     end
   end
 end
index 8d5a557cd4dfbbe9b8ffb043fe6047aec7f3049c..34b16c19d5e113a197ee4ff8ba7b4b29ff600256 100644 (file)
@@ -14,7 +14,7 @@ class NoteTest < ActiveSupport::TestCase
     bad.each do |status|
       note = create(:note)
       note.status = status
-      assert_not note.valid?, "#{status} is valid when it shouldn't be"
+      assert_not_predicate note, :valid?, "#{status} is valid when it shouldn't be"
     end
   end
 
@@ -28,7 +28,7 @@ class NoteTest < ActiveSupport::TestCase
   end
 
   def test_reopen
-    note = create(:note, :status => "closed", :closed_at => Time.now.utc)
+    note = create(:note, :closed)
     assert_equal "closed", note.status
     assert_not_nil note.closed_at
     note.reopen
@@ -38,13 +38,13 @@ class NoteTest < ActiveSupport::TestCase
 
   def test_visible?
     assert_predicate create(:note, :status => "open"), :visible?
-    assert_predicate create(:note, :status => "closed"), :visible?
-    assert_not create(:note, :status => "hidden").visible?
+    assert_predicate create(:note, :closed), :visible?
+    assert_not_predicate create(:note, :status => "hidden"), :visible?
   end
 
   def test_closed?
-    assert_predicate create(:note, :status => "closed", :closed_at => Time.now.utc), :closed?
-    assert_not create(:note, :status => "open", :closed_at => nil).closed?
+    assert_predicate create(:note, :closed), :closed?
+    assert_not_predicate create(:note, :status => "open", :closed_at => nil), :closed?
   end
 
   def test_author
index 28f2c34a17343cee7aace42f4a1c6c89cea45f1e..73dd6258f255341bb0c298c689797ec9f91afb0e 100644 (file)
@@ -5,7 +5,7 @@ class OauthTokenTest < ActiveSupport::TestCase
   # check that after calling invalidate! on a token, it is invalid.
   def test_token_invalidation
     tok = OauthToken.new
-    assert_not tok.invalidated?, "Token should be created valid."
+    assert_not_predicate tok, :invalidated?, "Token should be created valid."
     tok.invalidate!
     assert_predicate tok, :invalidated?, "Token should now be invalid."
   end
@@ -14,10 +14,10 @@ class OauthTokenTest < ActiveSupport::TestCase
   # check that an authorized token is authorised and can be invalidated
   def test_token_authorisation
     tok = RequestToken.create(:client_application => create(:client_application))
-    assert_not tok.authorized?, "Token should be created unauthorised."
+    assert_not_predicate tok, :authorized?, "Token should be created unauthorised."
     tok.authorize!(create(:user))
     assert_predicate tok, :authorized?, "Token should now be authorised."
     tok.invalidate!
-    assert_not tok.authorized?, "Token should now be invalid."
+    assert_not_predicate tok, :authorized?, "Token should now be invalid."
   end
 end
index 40c91c82d54a9624f882cf1739623c4ca7a9d3ff..be7502c3424f83efc4197fe3c3b85399416afd55 100644 (file)
@@ -20,21 +20,21 @@ class OldNodeTagTest < ActiveSupport::TestCase
   def test_length_key_invalid
     tag = create(:old_node_tag)
     tag.k = "k" * 256
-    assert_not tag.valid?
+    assert_not_predicate tag, :valid?
     assert_predicate tag.errors[:k], :any?
   end
 
   def test_length_value_invalid
     tag = create(:old_node_tag)
     tag.v = "v" * 256
-    assert_not tag.valid?, "Value should be too long"
+    assert_not_predicate tag, :valid?, "Value should be too long"
     assert_predicate tag.errors[:v], :any?
   end
 
   def test_orphaned_tag_invalid
     tag = create(:old_node_tag)
     tag.old_node = nil
-    assert_not tag.valid?, "Orphaned tag should be invalid"
+    assert_not_predicate tag, :valid?, "Orphaned tag should be invalid"
     assert_predicate tag.errors[:old_node], :any?
   end
 
@@ -42,7 +42,7 @@ class OldNodeTagTest < ActiveSupport::TestCase
     existing = create(:old_node_tag)
     tag = build(:old_node_tag, :old_node => existing.old_node, :version => existing.version, :k => existing.k, :v => existing.v)
     assert_predicate tag, :new_record?
-    assert_not tag.valid?
+    assert_not_predicate tag, :valid?
     assert_raise(ActiveRecord::RecordInvalid) { tag.save! }
     assert_predicate tag, :new_record?
   end
index d920f91da197370f8225ece0c43b8778d222ff84..d31d0e64ed05c46dd700ce80b681229beb87b80b 100644 (file)
@@ -20,21 +20,21 @@ class OldRelationTagTest < ActiveSupport::TestCase
   def test_length_key_invalid
     tag = create(:old_relation_tag)
     tag.k = "k" * 256
-    assert_not tag.valid?, "Key should be too long"
+    assert_not_predicate tag, :valid?, "Key should be too long"
     assert_predicate tag.errors[:k], :any?
   end
 
   def test_length_value_invalid
     tag = create(:old_relation_tag)
     tag.v = "v" * 256
-    assert_not tag.valid?, "Value should be too long"
+    assert_not_predicate tag, :valid?, "Value should be too long"
     assert_predicate tag.errors[:v], :any?
   end
 
   def test_orphaned_tag_invalid
     tag = create(:old_relation_tag)
     tag.old_relation = nil
-    assert_not tag.valid?, "Orphaned tag should be invalid"
+    assert_not_predicate tag, :valid?, "Orphaned tag should be invalid"
     assert_predicate tag.errors[:old_relation], :any?
   end
 
@@ -42,7 +42,7 @@ class OldRelationTagTest < ActiveSupport::TestCase
     existing = create(:old_relation_tag)
     tag = build(:old_relation_tag, :old_relation => existing.old_relation, :version => existing.version, :k => existing.k, :v => existing.v)
     assert_predicate tag, :new_record?
-    assert_not tag.valid?
+    assert_not_predicate tag, :valid?
     assert_raise(ActiveRecord::RecordInvalid) { tag.save! }
     assert_predicate tag, :new_record?
   end
index 793962438dc57d49336b208b69af994ec3b8912d..62211ed24f176c99e9c9c55be34ed4071f024ea1 100644 (file)
@@ -20,21 +20,21 @@ class OldWayTagTest < ActiveSupport::TestCase
   def test_length_key_invalid
     tag = create(:old_way_tag)
     tag.k = "k" * 256
-    assert_not tag.valid?, "Key should be too long"
+    assert_not_predicate tag, :valid?, "Key should be too long"
     assert_predicate tag.errors[:k], :any?
   end
 
   def test_length_value_invalid
     tag = create(:old_way_tag)
     tag.v = "v" * 256
-    assert_not tag.valid?, "Value should be too long"
+    assert_not_predicate tag, :valid?, "Value should be too long"
     assert_predicate tag.errors[:v], :any?
   end
 
   def test_orphaned_tag_invalid
     tag = create(:old_way_tag)
     tag.old_way = nil
-    assert_not tag.valid?, "Orphaned tag should be invalid"
+    assert_not_predicate tag, :valid?, "Orphaned tag should be invalid"
     assert_predicate tag.errors[:old_way], :any?
   end
 
@@ -46,7 +46,7 @@ class OldWayTagTest < ActiveSupport::TestCase
     tag.k = existing.k
     tag.v = existing.v
     assert_predicate tag, :new_record?
-    assert_not tag.valid?
+    assert_not_predicate tag, :valid?
     assert_raise(ActiveRecord::RecordInvalid) { tag.save! }
     assert_predicate tag, :new_record?
   end
index 06159cb5d79540280f3a62d53fed1b1b0d74da9c..00133f1f48a70c14bde549f89699359f81805f47 100644 (file)
@@ -4,7 +4,7 @@ class RedactionTest < ActiveSupport::TestCase
   def test_cannot_redact_current
     n = create(:node)
     r = create(:redaction)
-    assert_not(n.redacted?, "Expected node to not be redacted already.")
+    assert_not_predicate(n, :redacted?, "Expected node to not be redacted already.")
     assert_raise(OSM::APICannotRedactError) do
       n.redact!(r)
     end
@@ -14,7 +14,7 @@ class RedactionTest < ActiveSupport::TestCase
     node = create(:node, :with_history)
     node_v1 = node.old_nodes.find_by(:version => 1)
     r = create(:redaction)
-    assert_not(node_v1.redacted?, "Expected node to not be redacted already.")
+    assert_not_predicate(node_v1, :redacted?, "Expected node to not be redacted already.")
     assert_raise(OSM::APICannotRedactError) do
       node_v1.redact!(r)
     end
@@ -26,11 +26,11 @@ class RedactionTest < ActiveSupport::TestCase
     node_v2 = node.old_nodes.find_by(:version => 2)
     r = create(:redaction)
 
-    assert_not(node_v1.redacted?, "Expected node to not be redacted already.")
+    assert_not_predicate(node_v1, :redacted?, "Expected node to not be redacted already.")
     assert_nothing_raised do
       node_v1.redact!(r)
     end
     assert_predicate(node_v1, :redacted?, "Expected node version 1 to be redacted after redact! call.")
-    assert_not(node_v2.redacted?, "Expected node version 2 to not be redacted after redact! call.")
+    assert_not_predicate(node_v2, :redacted?, "Expected node version 2 to not be redacted after redact! call.")
   end
 end
index a82cea457f104c211cb974bc0f83bec3ae3afdf4..7535c342ddbb4e2d586e12c01d29d5c6f1564e94 100644 (file)
@@ -9,7 +9,7 @@ class RelationMemberTest < ActiveSupport::TestCase
     node = create(:node)
     invalid.each do |r|
       member = build(:relation_member, :relation => relation, :member => node, :member_role => r)
-      assert_not member.valid?, "'#{r}' should not be valid"
+      assert_not_predicate member, :valid?, "'#{r}' should not be valid"
       assert_predicate member.errors[:member_role], :any?
     end
   end
@@ -18,7 +18,7 @@ class RelationMemberTest < ActiveSupport::TestCase
     relation = create(:relation)
     node = create(:node)
     member = build(:relation_member, :relation => relation, :member => node, :member_role => "r" * 256)
-    assert_not member.valid?, "Role should be too long"
+    assert_not_predicate member, :valid?, "Role should be too long"
     assert_predicate member.errors[:member_role], :any?
   end
 end
index 69a491890101b0f8e5122198066f11300e2230e6..2e5e1503cd1ec1fef078b7e034e8e289da0179b2 100644 (file)
@@ -20,21 +20,21 @@ class RelationTagTest < ActiveSupport::TestCase
   def test_length_key_invalid
     tag = create(:relation_tag)
     tag.k = "k" * 256
-    assert_not tag.valid?, "Key should be too long"
+    assert_not_predicate tag, :valid?, "Key should be too long"
     assert_predicate tag.errors[:k], :any?
   end
 
   def test_length_value_invalid
     tag = create(:relation_tag)
     tag.v = "v" * 256
-    assert_not tag.valid?, "Value should be too long"
+    assert_not_predicate tag, :valid?, "Value should be too long"
     assert_predicate tag.errors[:v], :any?
   end
 
   def test_orphaned_tag_invalid
     tag = create(:relation_tag)
     tag.relation = nil
-    assert_not tag.valid?, "Orphaned tag should be invalid"
+    assert_not_predicate tag, :valid?, "Orphaned tag should be invalid"
     assert_predicate tag.errors[:relation], :any?
   end
 
@@ -42,7 +42,7 @@ class RelationTagTest < ActiveSupport::TestCase
     existing = create(:relation_tag)
     tag = build(:relation_tag, :relation => existing.relation, :k => existing.k, :v => existing.v)
     assert_predicate tag, :new_record?
-    assert_not tag.valid?
+    assert_not_predicate tag, :valid?
     assert_raise(ActiveRecord::RecordInvalid) { tag.save! }
     assert_predicate tag, :new_record?
   end
index 193126df14408e69a0ec3666eab10b8c2d4b5165..575813ad532131ea90e45fe032c2087d4b862258 100644 (file)
@@ -235,22 +235,19 @@ class RelationTest < ActiveSupport::TestCase
   # the maximum number of members in a relation.
   def test_max_members_per_relation_limit
     # Speed up unit test by using a small relation member limit
-    default_limit = Settings.max_number_of_relation_members
-    Settings.max_number_of_relation_members = 20
-
-    user = create(:user)
-    changeset = create(:changeset, :user => user)
-    relation = create(:relation, :changeset => changeset)
-    node = create(:node, :longitude => 116, :latitude => 39)
-    # Create relation which exceeds the relation member limit by one
-    0.upto(Settings.max_number_of_relation_members) do |i|
-      create(:relation_member, :relation => relation, :member_type => "Node", :member_id => node.id, :sequence_id => i)
-    end
+    with_settings(:max_number_of_relation_members => 20) do
+      user = create(:user)
+      changeset = create(:changeset, :user => user)
+      relation = create(:relation, :changeset => changeset)
+      node = create(:node, :longitude => 116, :latitude => 39)
+      # Create relation which exceeds the relation member limit by one
+      0.upto(Settings.max_number_of_relation_members) do |i|
+        create(:relation_member, :relation => relation, :member_type => "Node", :member_id => node.id, :sequence_id => i)
+      end
 
-    assert_raise OSM::APITooManyRelationMembersError do
-      relation.create_with_history user
+      assert_raise OSM::APITooManyRelationMembersError do
+        relation.create_with_history user
+      end
     end
-
-    Settings.max_number_of_relation_members = default_limit
   end
 end
index 64ccf501d924f09f00f1e1a2c9d218e783e880ef..7b3b973b0ce9dc61347885a44722ca66a7cddc7d 100644 (file)
@@ -6,7 +6,7 @@ class ReportTest < ActiveSupport::TestCase
 
     assert_predicate report, :valid?
     report.issue = nil
-    assert_not report.valid?
+    assert_not_predicate report, :valid?
   end
 
   def test_user_required
@@ -14,7 +14,7 @@ class ReportTest < ActiveSupport::TestCase
 
     assert_predicate report, :valid?
     report.user = nil
-    assert_not report.valid?
+    assert_not_predicate report, :valid?
   end
 
   def test_details_required
@@ -22,7 +22,7 @@ class ReportTest < ActiveSupport::TestCase
 
     assert_predicate report, :valid?
     report.details = ""
-    assert_not report.valid?
+    assert_not_predicate report, :valid?
   end
 
   def test_category_required
@@ -30,7 +30,7 @@ class ReportTest < ActiveSupport::TestCase
 
     assert_predicate report, :valid?
     report.category = ""
-    assert_not report.valid?
+    assert_not_predicate report, :valid?
   end
 
   def test_details
index 4f17b725605c2274729c8ea7a7fc5230cc867a27..65d17d44272b07ba60369604fff52d3872816851 100644 (file)
@@ -5,6 +5,6 @@ class RequestTokenTest < ActiveSupport::TestCase
     assert_predicate RequestToken.new, :oob?
     assert_predicate RequestToken.new(:callback_url => "oob"), :oob?
     assert_predicate RequestToken.new(:callback_url => "OOB"), :oob?
-    assert_not RequestToken.new(:callback_url => "http://test.host/").oob?
+    assert_not_predicate RequestToken.new(:callback_url => "http://test.host/"), :oob?
   end
 end
index af219db435f47800575217639b4b2b3bc32fa37d..f95ebe4c320bd3dafa90de6d4ecb9cfb2633be1b 100644 (file)
@@ -108,26 +108,26 @@ class TraceTest < ActiveSupport::TestCase
 
   def test_public?
     assert_predicate build(:trace, :visibility => "public"), :public?
-    assert_not build(:trace, :visibility => "private").public?
-    assert_not build(:trace, :visibility => "trackable").public?
+    assert_not_predicate build(:trace, :visibility => "private"), :public?
+    assert_not_predicate build(:trace, :visibility => "trackable"), :public?
     assert_predicate build(:trace, :visibility => "identifiable"), :public?
     assert_predicate build(:trace, :deleted, :visibility => "public"), :public?
   end
 
   def test_trackable?
-    assert_not build(:trace, :visibility => "public").trackable?
-    assert_not build(:trace, :visibility => "private").trackable?
+    assert_not_predicate build(:trace, :visibility => "public"), :trackable?
+    assert_not_predicate build(:trace, :visibility => "private"), :trackable?
     assert_predicate build(:trace, :visibility => "trackable"), :trackable?
     assert_predicate build(:trace, :visibility => "identifiable"), :trackable?
-    assert_not build(:trace, :deleted, :visibility => "public").trackable?
+    assert_not_predicate build(:trace, :deleted, :visibility => "public"), :trackable?
   end
 
   def test_identifiable?
-    assert_not build(:trace, :visibility => "public").identifiable?
-    assert_not build(:trace, :visibility => "private").identifiable?
-    assert_not build(:trace, :visibility => "trackable").identifiable?
+    assert_not_predicate build(:trace, :visibility => "public"), :identifiable?
+    assert_not_predicate build(:trace, :visibility => "private"), :identifiable?
+    assert_not_predicate build(:trace, :visibility => "trackable"), :identifiable?
     assert_predicate build(:trace, :visibility => "identifiable"), :identifiable?
-    assert_not build(:trace, :deleted, :visibility => "public").identifiable?
+    assert_not_predicate build(:trace, :deleted, :visibility => "public"), :identifiable?
   end
 
   def test_mime_type
@@ -208,7 +208,7 @@ class TraceTest < ActiveSupport::TestCase
   def test_import_creates_icon
     trace = create(:trace, :inserted => false, :fixture => "a")
 
-    assert_not trace.icon.attached?
+    assert_not_predicate trace.icon, :attached?
 
     trace.import
 
@@ -218,7 +218,7 @@ class TraceTest < ActiveSupport::TestCase
   def test_import_creates_large_picture
     trace = create(:trace, :inserted => false, :fixture => "a")
 
-    assert_not trace.image.attached?
+    assert_not_predicate trace.image, :attached?
 
     trace.import
 
@@ -289,6 +289,18 @@ class TraceTest < ActiveSupport::TestCase
     assert_equal 2, trace.size
   end
 
+  def test_import_enforces_limit
+    trace = create(:trace, :inserted => false, :fixture => "f")
+
+    with_settings(:max_trace_size => 1) do
+      assert_raise GPX::FileTooBigError do
+        trace.import
+      end
+    end
+
+    assert_not trace.inserted
+  end
+
   private
 
   def check_query(query, traces)
index 115b8ec9b21935421a44ff6321970e35c7fa59d0..3d836a2e7a4f12b4ddf9441c3da6c7f10d65bed7 100644 (file)
@@ -5,6 +5,6 @@ class TracepointTest < ActiveSupport::TestCase
     tracepoint = create(:tracepoint)
     assert_predicate tracepoint, :valid?
     tracepoint.timestamp = nil
-    assert_not tracepoint.valid?
+    assert_not_predicate tracepoint, :valid?
   end
 end
diff --git a/test/models/user_mute_test.rb b/test/models/user_mute_test.rb
new file mode 100644 (file)
index 0000000..ccc6811
--- /dev/null
@@ -0,0 +1,24 @@
+require "test_helper"
+
+class UserMuteTest < ActiveSupport::TestCase
+  def test_messages_by_muted_users_are_muted
+    user = create(:user)
+    muted_user = create(:user)
+    create(:user_mute, :owner => user, :subject => muted_user)
+
+    message = create(:message, :sender => muted_user, :recipient => user)
+    assert_predicate message, :muted?
+  end
+
+  def test_messages_by_admins_or_moderators_are_never_muted
+    user = create(:user)
+
+    [create(:administrator_user), create(:moderator_user)].each do |admin_or_moderator|
+      create(:user_mute, :owner => user, :subject => admin_or_moderator)
+
+      message = create(:message, :sender => admin_or_moderator, :recipient => user)
+
+      assert_not_predicate message, :muted?
+    end
+  end
+end
index 3df38aa6fe75796ca1bc8e38c88f83a3a4542b46..ee91777c787813292f87c2e95fd8b3003973b040 100644 (file)
@@ -36,7 +36,7 @@ class UserPreferenceTest < ActiveSupport::TestCase
       up.user = create(:user)
       up.k = key * i
       up.v = val * i
-      assert_not up.valid?
+      assert_not_predicate up, :valid?
       assert_raise(ActiveRecord::RecordInvalid) { up.save! }
     end
   end
index a4ed07e09eac0079a610f8e03762b0b89aeda105..92e7d419c33c50f7ec91d1899581793ffd72508a 100644 (file)
@@ -10,7 +10,7 @@ class UserTest < ActiveSupport::TestCase
                         :home_lat => nil,
                         :home_lon => nil,
                         :home_zoom => nil)
-    assert_not user.valid?
+    assert_not_predicate user, :valid?
     assert_predicate user.errors[:email], :any?
     assert_predicate user.errors[:pass_crypt], :any?
     assert_predicate user.errors[:display_name], :any?
@@ -27,10 +27,13 @@ class UserTest < ActiveSupport::TestCase
   end
 
   def test_unique_display_name
-    existing_user = create(:user)
-    new_user = build(:user, :display_name => existing_user.display_name)
-    assert_not new_user.save
-    assert_includes new_user.errors[:display_name], "has already been taken"
+    create(:user, :display_name => "H\u{e9}nryIV")
+
+    %W[H\u{e9}nryIV he\u{301}nryiv H\u{c9}nry\u2163 he\u{301}nry\u2173].each do |name|
+      new_user = build(:user, :display_name => name)
+      assert_not new_user.save
+      assert_includes new_user.errors[:display_name], "has already been taken"
+    end
   end
 
   def test_email_valid
@@ -57,11 +60,23 @@ class UserTest < ActiveSupport::TestCase
     user.display_name = "123"
     assert_predicate user, :valid?, "should allow 3 char name name"
     user.display_name = "12"
-    assert_not user.valid?, "should not allow 2 char name"
+    assert_not_predicate user, :valid?, "should not allow 2 char name"
     user.display_name = ""
-    assert_not user.valid?, "should not allow blank/0 char name"
+    assert_not_predicate user, :valid?, "should not allow blank/0 char name"
     user.display_name = nil
-    assert_not user.valid?, "should not allow nil value"
+    assert_not_predicate user, :valid?, "should not allow nil value"
+  end
+
+  def test_display_name_width
+    user = build(:user)
+    user.display_name = "123"
+    assert_predicate user, :valid?, "should allow 3 column name name"
+    user.display_name = "12"
+    assert_not_predicate user, :valid?, "should not allow 2 column name"
+    user.display_name = "1\u{200B}2"
+    assert_not_predicate user, :valid?, "should not allow 2 column name"
+    user.display_name = "\u{200B}\u{200B}\u{200B}"
+    assert_not_predicate user, :valid?, "should not allow 0 column name"
   end
 
   def test_display_name_valid
@@ -87,10 +102,40 @@ class UserTest < ActiveSupport::TestCase
     bad.each do |display_name|
       user = build(:user)
       user.display_name = display_name
-      assert_not user.valid?, "#{display_name} is valid when it shouldn't be"
+      assert_not_predicate user, :valid?, "#{display_name} is valid when it shouldn't be"
     end
   end
 
+  def test_display_name_user_id_new
+    existing_user = create(:user)
+    user = build(:user)
+
+    user.display_name = "user_#{existing_user.id}"
+    assert_not user.valid?, "user_<id> name is valid for existing user id when it shouldn't be"
+
+    user.display_name = "user_#{existing_user.id + 1}"
+    assert_not user.valid?, "user_<id> name is valid for new user id when it shouldn't be"
+  end
+
+  def test_display_name_user_id_rename
+    existing_user = create(:user)
+    user = create(:user)
+
+    user.display_name = "user_#{existing_user.id}"
+    assert_not user.valid?, "user_<id> name is valid for existing user id when it shouldn't be"
+
+    user.display_name = "user_#{user.id}"
+    assert_predicate user, :valid?, "user_<id> name is invalid for own id, when it should be"
+  end
+
+  def test_display_name_user_id_unchanged_is_valid
+    user = build(:user, :display_name => "user_0")
+    user.save(:validate => false)
+    user.reload
+
+    assert_predicate user, :valid?, "user_0 display_name is invalid but it hasn't been changed"
+  end
+
   def test_friends_with
     alice = create(:user, :active)
     bob = create(:user, :active)
@@ -217,25 +262,25 @@ class UserTest < ActiveSupport::TestCase
     assert_predicate build(:user, :pending), :visible?
     assert_predicate build(:user, :active), :visible?
     assert_predicate build(:user, :confirmed), :visible?
-    assert_not build(:user, :suspended).visible?
-    assert_not build(:user, :deleted).visible?
+    assert_not_predicate build(:user, :suspended), :visible?
+    assert_not_predicate build(:user, :deleted), :visible?
   end
 
   def test_active?
-    assert_not build(:user, :pending).active?
+    assert_not_predicate build(:user, :pending), :active?
     assert_predicate build(:user, :active), :active?
     assert_predicate build(:user, :confirmed), :active?
-    assert_not build(:user, :suspended).active?
-    assert_not build(:user, :deleted).active?
+    assert_not_predicate build(:user, :suspended), :active?
+    assert_not_predicate build(:user, :deleted), :active?
   end
 
   def test_moderator?
-    assert_not create(:user).moderator?
+    assert_not_predicate create(:user), :moderator?
     assert_predicate create(:moderator_user), :moderator?
   end
 
   def test_administrator?
-    assert_not create(:user).administrator?
+    assert_not_predicate create(:user), :administrator?
     assert_predicate create(:administrator_user), :administrator?
   end
 
@@ -253,10 +298,10 @@ class UserTest < ActiveSupport::TestCase
     assert_predicate user.description, :blank?
     assert_nil user.home_lat
     assert_nil user.home_lon
-    assert_not user.avatar.attached?
+    assert_not_predicate user.avatar, :attached?
     assert_equal "deleted", user.status
-    assert_not user.visible?
-    assert_not user.active?
+    assert_not_predicate user, :visible?
+    assert_not_predicate user, :active?
   end
 
   def test_soft_destroy_revokes_oauth1_tokens
@@ -282,4 +327,62 @@ class UserTest < ActiveSupport::TestCase
     oauth_access_token.reload
     assert_predicate oauth_access_token, :revoked?
   end
+
+  def test_deletion_allowed_when_no_changesets
+    with_user_account_deletion_delay(10000) do
+      user = create(:user)
+      assert_predicate user, :deletion_allowed?
+    end
+  end
+
+  def test_deletion_allowed_without_delay
+    with_user_account_deletion_delay(nil) do
+      user = create(:user)
+      create(:changeset, :user => user)
+      user.reload
+      assert_predicate user, :deletion_allowed?
+    end
+  end
+
+  def test_deletion_allowed_past_delay
+    with_user_account_deletion_delay(10) do
+      user = create(:user)
+      create(:changeset, :user => user, :created_at => Time.now.utc - 12.hours, :closed_at => Time.now.utc - 10.hours)
+      user.reload
+      assert_predicate user, :deletion_allowed?
+    end
+  end
+
+  def test_deletion_allowed_during_delay
+    with_user_account_deletion_delay(10) do
+      user = create(:user)
+      create(:changeset, :user => user, :created_at => Time.now.utc - 11.hours, :closed_at => Time.now.utc - 9.hours)
+      user.reload
+      assert_not_predicate user, :deletion_allowed?
+      assert_equal Time.now.utc + 1.hour, user.deletion_allowed_at
+    end
+  end
+
+  def test_deletion_allowed_past_zero_delay
+    with_user_account_deletion_delay(0) do
+      user = create(:user)
+      create(:changeset, :user => user, :created_at => Time.now.utc, :closed_at => Time.now.utc + 1.hour)
+      travel 90.minutes do
+        user.reload
+        assert_predicate user, :deletion_allowed?
+      end
+    end
+  end
+
+  def test_deletion_allowed_during_zero_delay
+    with_user_account_deletion_delay(0) do
+      user = create(:user)
+      create(:changeset, :user => user, :created_at => Time.now.utc, :closed_at => Time.now.utc + 1.hour)
+      travel 30.minutes do
+        user.reload
+        assert_not_predicate user, :deletion_allowed?
+        assert_equal Time.now.utc + 30.minutes, user.deletion_allowed_at
+      end
+    end
+  end
 end
index 64aacc63b532660bb7278721addc0f8c9fc6001b..3b0d207c9f5825edf5ab5bc69a7e777ee9486720 100644 (file)
@@ -20,21 +20,21 @@ class WayTagTest < ActiveSupport::TestCase
   def test_length_key_invalid
     tag = create(:way_tag)
     tag.k = "k" * 256
-    assert_not tag.valid?, "Key should be too long"
+    assert_not_predicate tag, :valid?, "Key should be too long"
     assert_predicate tag.errors[:k], :any?
   end
 
   def test_length_value_invalid
     tag = create(:way_tag)
     tag.v = "v" * 256
-    assert_not tag.valid?, "Value should be too long"
+    assert_not_predicate tag, :valid?, "Value should be too long"
     assert_predicate tag.errors[:v], :any?
   end
 
   def test_orphaned_tag_invalid
     tag = create(:way_tag)
     tag.way = nil
-    assert_not tag.valid?, "Orphaned tag should be invalid"
+    assert_not_predicate tag, :valid?, "Orphaned tag should be invalid"
     assert_predicate tag.errors[:way], :any?
   end
 
@@ -45,7 +45,7 @@ class WayTagTest < ActiveSupport::TestCase
     tag.k = existing.k
     tag.v = existing.v
     assert_predicate tag, :new_record?
-    assert_not tag.valid?
+    assert_not_predicate tag, :valid?
     assert_raise(ActiveRecord::RecordInvalid) { tag.save! }
     assert_predicate tag, :new_record?
   end
index 87e981c6426500443bcbf6811cef581f8ffce9b1..ca5ef7fe8bc37578973782fed115478e2037d73c 100644 (file)
@@ -9,9 +9,9 @@ class AccountDeletionTest < ApplicationSystemTestCase
   test "the status is deleted and the personal data removed" do
     visit edit_account_path
 
-    click_link "Delete Account..."
+    click_on "Delete Account..."
     accept_confirm do
-      click_link "Delete Account"
+      click_on "Delete Account"
     end
 
     assert_current_path root_path
@@ -23,9 +23,9 @@ class AccountDeletionTest < ApplicationSystemTestCase
   test "the user is signed out after deletion" do
     visit edit_account_path
 
-    click_link "Delete Account..."
+    click_on "Delete Account..."
     accept_confirm do
-      click_link "Delete Account"
+      click_on "Delete Account"
     end
 
     assert_content "Log In"
@@ -34,11 +34,66 @@ class AccountDeletionTest < ApplicationSystemTestCase
   test "the user is shown a confirmation flash message" do
     visit edit_account_path
 
-    click_link "Delete Account..."
+    click_on "Delete Account..."
     accept_confirm do
-      click_link "Delete Account"
+      click_on "Delete Account"
     end
 
     assert_content "Account Deleted"
   end
+
+  test "can delete with any delay setting value if the user has no changesets" do
+    with_user_account_deletion_delay(10000) do
+      travel 1.hour do
+        visit edit_account_path
+
+        click_on "Delete Account..."
+
+        assert_no_content "cannot currently be deleted"
+      end
+    end
+  end
+
+  test "can delete with delay disabled" do
+    with_user_account_deletion_delay(nil) do
+      create(:changeset, :user => @user)
+
+      travel 1.hour do
+        visit edit_account_path
+
+        click_on "Delete Account..."
+
+        assert_no_content "cannot currently be deleted"
+      end
+    end
+  end
+
+  test "can delete when last changeset is old enough" do
+    with_user_account_deletion_delay(10) do
+      create(:changeset, :user => @user, :created_at => Time.now.utc, :closed_at => Time.now.utc + 1.hour)
+
+      travel 12.hours do
+        visit edit_account_path
+
+        click_on "Delete Account..."
+
+        assert_no_content "cannot currently be deleted"
+      end
+    end
+  end
+
+  test "can't delete when last changeset isn't old enough" do
+    with_user_account_deletion_delay(10) do
+      create(:changeset, :user => @user, :created_at => Time.now.utc, :closed_at => Time.now.utc + 1.hour)
+
+      travel 10.hours do
+        visit edit_account_path
+
+        click_on "Delete Account..."
+
+        assert_content "cannot currently be deleted"
+        assert_content "in about 1 hour"
+      end
+    end
+  end
 end
diff --git a/test/system/changeset_comments_test.rb b/test/system/changeset_comments_test.rb
new file mode 100644 (file)
index 0000000..b12aab5
--- /dev/null
@@ -0,0 +1,162 @@
+require "application_system_test_case"
+
+class ChangesetCommentsTest < ApplicationSystemTestCase
+  test "open changeset has a still open notice" do
+    changeset = create(:changeset)
+    sign_in_as(create(:user))
+    visit changeset_path(changeset)
+
+    within_sidebar do
+      assert_no_button "Comment"
+      assert_text "Changeset still open"
+    end
+  end
+
+  test "changeset has a login notice" do
+    changeset = create(:changeset, :closed)
+    visit changeset_path(changeset)
+
+    within_sidebar do
+      assert_no_button "Subscribe"
+      assert_no_button "Comment"
+      assert_link "Log in to join the discussion", :href => login_path(:referer => changeset_path(changeset))
+    end
+  end
+
+  test "can add a comment to a changeset" do
+    changeset = create(:changeset, :closed)
+    user = create(:user)
+    sign_in_as(user)
+    visit changeset_path(changeset)
+
+    within_sidebar do
+      assert_no_content "Comment from #{user.display_name}"
+      assert_no_content "Some newly added changeset comment"
+      assert_button "Comment", :disabled => true
+
+      fill_in "text", :with => "Some newly added changeset comment"
+
+      assert_button "Comment", :disabled => false
+
+      click_on "Comment"
+
+      assert_content "Comment from #{user.display_name}"
+      assert_content "Some newly added changeset comment"
+    end
+  end
+
+  test "regular users can't hide comments" do
+    changeset = create(:changeset, :closed)
+    create(:changeset_comment, :changeset => changeset, :body => "Unwanted comment")
+    sign_in_as(create(:user))
+    visit changeset_path(changeset)
+
+    within_sidebar do
+      assert_text "Unwanted comment"
+      assert_no_button "hide"
+    end
+  end
+
+  test "moderators can hide comments" do
+    changeset = create(:changeset, :closed)
+    create(:changeset_comment, :changeset => changeset, :body => "Unwanted comment")
+
+    visit changeset_path(changeset)
+
+    within_sidebar do
+      assert_text "Unwanted comment"
+    end
+
+    sign_in_as(create(:moderator_user))
+    visit changeset_path(changeset)
+
+    within_sidebar do
+      assert_text "Unwanted comment"
+      assert_button "hide", :exact => true
+      assert_no_button "unhide", :exact => true
+
+      click_on "hide", :exact => true
+
+      assert_text "Unwanted comment"
+      assert_no_button "hide", :exact => true
+      assert_button "unhide", :exact => true
+    end
+
+    sign_out
+    visit changeset_path(changeset)
+
+    within_sidebar do
+      assert_no_text "Unwanted comment"
+    end
+  end
+
+  test "moderators can unhide comments" do
+    changeset = create(:changeset, :closed)
+    create(:changeset_comment, :changeset => changeset, :body => "Wanted comment", :visible => false)
+
+    visit changeset_path(changeset)
+
+    within_sidebar do
+      assert_no_text "Wanted comment"
+    end
+
+    sign_in_as(create(:moderator_user))
+    visit changeset_path(changeset)
+
+    within_sidebar do
+      assert_text "Wanted comment"
+      assert_no_button "hide", :exact => true
+      assert_button "unhide", :exact => true
+
+      click_on "unhide", :exact => true
+
+      assert_text "Wanted comment"
+      assert_button "hide", :exact => true
+      assert_no_button "unhide", :exact => true
+    end
+
+    sign_out
+    visit changeset_path(changeset)
+
+    within_sidebar do
+      assert_text "Wanted comment"
+    end
+  end
+
+  test "can subscribe" do
+    changeset = create(:changeset, :closed)
+    user = create(:user)
+    sign_in_as(user)
+    visit changeset_path(changeset)
+
+    within_sidebar do
+      assert_button "Subscribe"
+      assert_no_button "Unsubscribe"
+
+      click_on "Subscribe"
+
+      assert_no_button "Subscribe"
+      assert_button "Unsubscribe"
+    end
+  end
+
+  test "can't subscribe when blocked" do
+    changeset = create(:changeset, :closed)
+    user = create(:user)
+    sign_in_as(user)
+    visit changeset_path(changeset)
+    create(:user_block, :user => user)
+
+    within_sidebar do
+      assert_no_text "Your access to the API has been blocked"
+      assert_button "Subscribe"
+      assert_no_button "Unsubscribe"
+
+      click_on "Subscribe"
+
+      assert_text "Your access to the API has been blocked"
+      assert_button "Subscribe"
+      assert_no_button "Unsubscribe"
+    end
+  end
+end
index f615a6321d55caee39e93079f6c5da1102e53e39..31b9ed7bb10204350f87c93288b25bcf0c279bce 100644 (file)
@@ -5,16 +5,18 @@ class ConfirmationResendSystemTest < ApplicationSystemTestCase
     @user = build(:user)
     visit user_new_path
 
-    fill_in "Email", :with => @user.email
-    fill_in "Email Confirmation", :with => @user.email
-    fill_in "Display Name", :with => @user.display_name
-    fill_in "Password", :with => "testtest"
-    fill_in "Confirm Password", :with => "testtest"
-    click_button "Sign Up"
+    within ".new_user" do
+      fill_in "Email", :with => @user.email
+      fill_in "Email Confirmation", :with => @user.email
+      fill_in "Display Name", :with => @user.display_name
+      fill_in "Password", :with => "testtest"
+      fill_in "Confirm Password", :with => "testtest"
+      click_on "Sign Up"
+    end
 
     check "I have read and agree to the above contributor terms"
     check "I have read and agree to the Terms of Use"
-    click_button "Continue"
+    click_on "Continue"
   end
 
   test "flash message should not contain raw html" do
index 554b89a6db05a3ec2b3353acfe69d9b78c088cf9..ba091c538465d8dcf6ac7471665d49516b7f925a 100644 (file)
@@ -3,6 +3,9 @@ require "application_system_test_case"
 class DiaryEntrySystemTest < ApplicationSystemTestCase
   def setup
     create(:language, :code => "en")
+    create(:language, :code => "pt", :english_name => "Portuguese", :native_name => "Português")
+    create(:language, :code => "pt-BR", :english_name => "Brazilian Portuguese", :native_name => "Português do Brasil")
+    create(:language, :code => "ru", :english_name => "Russian", :native_name => "Русский")
     @diary_entry = create(:diary_entry)
   end
 
@@ -10,7 +13,7 @@ class DiaryEntrySystemTest < ApplicationSystemTestCase
     sign_in_as(create(:user))
     visit diary_entries_path
 
-    click_link "Send a message to the author"
+    click_on "Send a message to the author"
 
     assert_content "Send a new message"
     assert_equal "Re: #{@diary_entry.title}", page.find_field("Subject").value
@@ -61,4 +64,14 @@ class DiaryEntrySystemTest < ApplicationSystemTestCase
 
     assert_content @deleted_comment.body
   end
+
+  test "should have links to preferred languages" do
+    sign_in_as(create(:user, :languages => %w[en-US pt-BR]))
+    visit diary_entries_path
+
+    assert_link "Diary Entries in English", :href => "/diary/en"
+    assert_link "Diary Entries in Brazilian Portuguese", :href => "/diary/pt-BR"
+    assert_link "Diary Entries in Portuguese", :href => "/diary/pt"
+    assert_no_link "Diary Entries in Russian"
+  end
 end
index a40306e3c7b1a5064770d8bdbd345eff47750672..b9b989c075132a9604d01c911dc2017f2613538f 100644 (file)
@@ -80,21 +80,21 @@ class IssuesTest < ApplicationSystemTestCase
     # No issues against the user
     visit issues_path
     fill_in "search_by_user", :with => good_user.display_name
-    click_button "Search"
+    click_on "Search"
     assert_no_content I18n.t("issues.index.user_not_found")
     assert_content I18n.t("issues.index.issues_not_found")
 
     # User doesn't exist
     visit issues_path
     fill_in "search_by_user", :with => "Nonexistent User"
-    click_button "Search"
+    click_on "Search"
     assert_content I18n.t("issues.index.user_not_found")
     assert_content I18n.t("issues.index.issues_not_found")
 
     # Find Issue against bad_user
     visit issues_path
     fill_in "search_by_user", :with => bad_user.display_name
-    click_button "Search"
+    click_on "Search"
     assert_no_content I18n.t("issues.index.user_not_found")
     assert_no_content I18n.t("issues.index.issues_not_found")
   end
@@ -106,7 +106,7 @@ class IssuesTest < ApplicationSystemTestCase
     visit issue_path(issue)
 
     fill_in :issue_comment_body, :with => "test comment"
-    click_button "Add Comment"
+    click_on "Add Comment"
     assert_content I18n.t("issue_comments.create.comment_created")
     assert_content "test comment"
 
@@ -123,7 +123,7 @@ class IssuesTest < ApplicationSystemTestCase
 
     fill_in :issue_comment_body, :with => "reassigning to moderators"
     check :reassign
-    click_button "Add Comment"
+    click_on "Add Comment"
 
     assert_content "and the issue was reassigned"
     assert_current_path issues_path(:status => "open")
@@ -140,7 +140,7 @@ class IssuesTest < ApplicationSystemTestCase
 
     fill_in :issue_comment_body, :with => "reassigning to moderators"
     check :reassign
-    click_button "Add Comment"
+    click_on "Add Comment"
 
     assert_content "and the issue was reassigned"
     assert_current_path issue_path(issue)
diff --git a/test/system/messages_test.rb b/test/system/messages_test.rb
new file mode 100644 (file)
index 0000000..dea0d22
--- /dev/null
@@ -0,0 +1,41 @@
+require "application_system_test_case"
+
+class MessagesTest < ApplicationSystemTestCase
+  def test_delete_received_message
+    user = create(:user)
+    create(:message, :recipient => user)
+    sign_in_as(user)
+
+    visit inbox_messages_path
+    assert_text "You have 1 new message and 0 old messages"
+
+    click_on "Delete"
+    assert_text "You have 0 new messages and 0 old messages"
+  end
+
+  def test_delete_sent_message
+    user = create(:user)
+    create(:message, :sender => user)
+    sign_in_as(user)
+
+    visit outbox_messages_path
+    assert_text "You have 1 sent message"
+
+    click_on "Delete"
+    assert_text "You have 0 sent messages"
+  end
+
+  def test_delete_muted_message
+    user = create(:user)
+    muted_user = create(:user)
+    create(:user_mute, :owner => user, :subject => muted_user)
+    create(:message, :sender => muted_user, :recipient => user)
+    sign_in_as(user)
+
+    visit muted_messages_path
+    assert_text "1 muted message"
+
+    click_on "Delete"
+    assert_text "0 muted messages"
+  end
+end
index 23f3fc98eecb636f54a0389d925d9a9b0f9d3384..7c830cc373c5d4955f42888216a52b1c5e672942 100644 (file)
 require "application_system_test_case"
 
 class NoteCommentsTest < ApplicationSystemTestCase
-  def test_action_text
+  test "open note has login notice" do
     note = create(:note_with_comments)
-    sign_in_as(create(:user))
     visit note_path(note)
 
-    assert_button "Resolve"
-    assert_button "Comment", :disabled => true
+    within_sidebar do
+      assert_no_button "Resolve"
+      assert_no_button "Comment"
+      assert_link "Log in to comment on this note", :href => login_path(:referer => note_path(note))
+    end
+  end
+
+  test "closed note has no login notice" do
+    note = create(:note_with_comments, :closed)
+    visit note_path(note)
+
+    within_sidebar do
+      assert_no_button "Reactivate"
+      assert_no_link "Log in to comment on this note"
+    end
+  end
+
+  def test_add_comment
+    note = create(:note_with_comments)
+    user = create(:user)
+    sign_in_as(user)
+    visit note_path(note)
+
+    within_sidebar do
+      assert_no_content "Comment from #{user.display_name}"
+      assert_no_content "Some newly added note comment"
+      assert_button "Resolve"
+      assert_button "Comment", :disabled => true
+
+      fill_in "text", :with => "Some newly added note comment"
+
+      assert_button "Comment & Resolve"
+      assert_button "Comment", :disabled => false
+
+      click_on "Comment"
+
+      assert_content "Comment from #{user.display_name}"
+      assert_content "Some newly added note comment"
+    end
+  end
+
+  test "can't add a comment when blocked" do
+    note = create(:note_with_comments)
+    user = create(:user)
+    sign_in_as(user)
+    visit note_path(note)
+    block = create(:user_block, :user => user)
+
+    within_sidebar do
+      fill_in "text", :with => "Comment that won't be added while blocked"
+
+      assert_no_text "Comment from #{user.display_name}"
+      assert_no_text "Comment that won't be added while blocked"
+      assert_no_text "Your access to the API has been blocked"
+      assert_button "Comment & Resolve", :disabled => false
+      assert_button "Comment", :disabled => false
+
+      click_on "Comment"
+
+      assert_no_text "Comment from #{user.display_name}"
+      assert_no_text "Comment that won't be added while blocked"
+      assert_text "Your access to the API has been blocked"
+      assert_button "Comment & Resolve", :disabled => false
+      assert_button "Comment", :disabled => false
+
+      block.revoke! block.creator
+
+      click_on "Comment"
+
+      assert_text "Comment from #{user.display_name}"
+      assert_text "Comment that won't be added while blocked"
+      assert_no_text "Your access to the API has been blocked"
+    end
+  end
+
+  test "can't resolve a note when blocked" do
+    note = create(:note_with_comments)
+    user = create(:user)
+    sign_in_as(user)
+    visit note_path(note)
+    create(:user_block, :user => user)
+
+    within_sidebar do
+      assert_text "Unresolved note"
+      assert_no_text "Resolved note"
+      assert_no_text "Your access to the API has been blocked"
+      assert_button "Resolve", :disabled => false
+      assert_button "Comment", :disabled => true
+
+      click_on "Resolve"
+
+      assert_text "Unresolved note"
+      assert_no_text "Resolved note"
+      assert_text "Your access to the API has been blocked"
+      assert_button "Resolve", :disabled => false
+      assert_button "Comment", :disabled => true
+    end
+  end
+
+  test "can't reactivate a note when blocked" do
+    note = create(:note_with_comments, :closed)
+    user = create(:user)
+    sign_in_as(user)
+    visit note_path(note)
+    create(:user_block, :user => user)
+
+    within_sidebar do
+      assert_no_text "Unresolved note"
+      assert_text "Resolved note"
+      assert_no_text "Your access to the API has been blocked"
+      assert_button "Reactivate", :disabled => false
 
-    fill_in "text", :with => "Some text"
+      click_on "Reactivate"
 
-    assert_button "Comment & Resolve"
-    assert_button "Comment"
+      assert_no_text "Unresolved note"
+      assert_text "Resolved note"
+      assert_text "Your access to the API has been blocked"
+      assert_button "Reactivate", :disabled => false
+    end
   end
 end
diff --git a/test/system/oauth2_test.rb b/test/system/oauth2_test.rb
new file mode 100644 (file)
index 0000000..0b9213a
--- /dev/null
@@ -0,0 +1,16 @@
+require "application_system_test_case"
+
+class Oauth2Test < ApplicationSystemTestCase
+  def test_authorized_applications
+    sign_in_as(create(:user))
+    visit oauth_authorized_applications_path
+
+    assert_text "OpenStreetMap Web Site"
+
+    accept_alert do
+      click_on "Revoke Access"
+    end
+
+    assert_text "You have not yet authorized any OAuth 2 applications."
+  end
+end
index b071b1f73842663839dd9ad81c670d6d333fa1dd..59a7209f5b4d3728fbb8f3049e4db4a03f0326f4 100644 (file)
@@ -5,7 +5,7 @@ class PreferencesTest < ApplicationSystemTestCase
     sign_in_as(create(:user))
 
     visit edit_preferences_path
-    click_button "Update Preferences"
+    click_on "Update Preferences"
 
     assert_content "Preferences updated"
   end
@@ -15,7 +15,7 @@ class PreferencesTest < ApplicationSystemTestCase
 
     visit edit_preferences_path
     fill_in "Preferred Languages", :with => "fr"
-    click_button "Update Preferences"
+    click_on "Update Preferences"
 
     assert_content "Préférences mises à jour"
   end
index 15ef1ad3c5177f8ff0e01cf8d689395dc08bb8a4..3504ab061fdeb5c4270036efa49807b1a9c9427f 100644 (file)
@@ -19,14 +19,14 @@ class ReportDiaryCommentTest < ApplicationSystemTestCase
     visit diary_entry_path(@diary_entry.user.display_name, @diary_entry)
     assert_content @diary_entry.title
 
-    click_link I18n.t("diary_entries.diary_comment.report")
+    click_on I18n.t("diary_entries.diary_comment.report")
     assert_content "Report"
     assert_content I18n.t("reports.new.disclaimer.intro")
 
     choose I18n.t("reports.new.categories.diary_comment.spam_label")
     fill_in "report_details", :with => "This comment is spam"
     assert_difference "Issue.count", 1 do
-      click_button "Create Report"
+      click_on "Create Report"
     end
 
     assert_content "Your report has been registered successfully"
index d4e49b714ffd32b9e2d4077926863eae7fc41efc..dde06cffc31ddeee05e20cbcf75ccb1218bc6996 100644 (file)
@@ -18,14 +18,14 @@ class ReportDiaryEntryTest < ApplicationSystemTestCase
     visit diary_entry_path(@diary_entry.user.display_name, @diary_entry)
     assert_content @diary_entry.title
 
-    click_link I18n.t("diary_entries.diary_entry.report")
+    click_on I18n.t("diary_entries.diary_entry.report")
     assert_content "Report"
     assert_content I18n.t("reports.new.disclaimer.intro")
 
     choose I18n.t("reports.new.categories.diary_entry.spam_label")
     fill_in "report_details", :with => "This is advertising"
     assert_difference "Issue.count", 1 do
-      click_button "Create Report"
+      click_on "Create Report"
     end
 
     assert_content "Your report has been registered successfully"
@@ -42,18 +42,18 @@ class ReportDiaryEntryTest < ApplicationSystemTestCase
     visit diary_entry_path(@diary_entry.user.display_name, @diary_entry)
     assert_content @diary_entry.title
 
-    click_link I18n.t("diary_entries.diary_entry.report")
+    click_on I18n.t("diary_entries.diary_entry.report")
     assert_content "Report"
     assert_content I18n.t("reports.new.disclaimer.intro")
 
     choose I18n.t("reports.new.categories.diary_entry.spam_label")
     fill_in "report_details", :with => "This is advertising"
     assert_no_difference "Issue.count" do
-      click_button "Create Report"
+      click_on "Create Report"
     end
 
     issue.reload
-    assert_not issue.resolved?
+    assert_not_predicate issue, :resolved?
     assert_predicate issue, :open?
   end
 
index b7e1bfc9eaebd4c7252e383871d31b9cd28a6e40..79894eb897d4a514e3ebb94b5a89a680a1bcedf5 100644 (file)
@@ -14,14 +14,14 @@ class ReportNoteTest < ApplicationSystemTestCase
     sign_in_as(create(:user))
     visit note_path(note)
 
-    click_link I18n.t("notes.show.report")
+    click_on I18n.t("notes.show.report")
     assert_content "Report"
     assert_content I18n.t("reports.new.disclaimer.intro")
 
     choose I18n.t("reports.new.categories.note.spam_label")
     fill_in "report_details", :with => "This is spam"
     assert_difference "Issue.count", 1 do
-      click_button "Create Report"
+      click_on "Create Report"
     end
 
     assert_content "Your report has been registered successfully"
@@ -35,14 +35,14 @@ class ReportNoteTest < ApplicationSystemTestCase
     sign_in_as(create(:user))
     visit note_path(note)
 
-    click_link I18n.t("notes.show.report")
+    click_on I18n.t("notes.show.report")
     assert_content "Report"
     assert_content I18n.t("reports.new.disclaimer.intro")
 
     choose I18n.t("reports.new.categories.note.spam_label")
     fill_in "report_details", :with => "This is spam"
     assert_difference "Issue.count", 1 do
-      click_button "Create Report"
+      click_on "Create Report"
     end
 
     assert_content "Your report has been registered successfully"
index 9a0abe9ea2e5920a78cc8e87f706f661f328c207..7a9e800c8c0da99ebf7351d6a863d9c8cec8ba7a 100644 (file)
@@ -14,14 +14,14 @@ class ReportUserTest < ApplicationSystemTestCase
     sign_in_as(create(:user))
     visit user_path(user)
 
-    click_link I18n.t("users.show.report")
+    click_on I18n.t("users.show.report")
     assert_content "Report"
     assert_content I18n.t("reports.new.disclaimer.intro")
 
     choose I18n.t("reports.new.categories.user.vandal_label")
     fill_in "report_details", :with => "This user is a vandal"
     assert_difference "Issue.count", 1 do
-      click_button "Create Report"
+      click_on "Create Report"
     end
 
     assert_content "Your report has been registered successfully"
@@ -35,14 +35,14 @@ class ReportUserTest < ApplicationSystemTestCase
     sign_in_as(create(:user))
     visit user_path(user)
 
-    click_link I18n.t("users.show.report")
+    click_on I18n.t("users.show.report")
     assert_content "Report"
     assert_content I18n.t("reports.new.disclaimer.intro")
 
     choose I18n.t("reports.new.categories.user.vandal_label")
     fill_in "report_details", :with => "This user is a vandal"
     assert_difference "Issue.count", 1 do
-      click_button "Create Report"
+      click_on "Create Report"
     end
 
     assert_content "Your report has been registered successfully"
@@ -52,14 +52,14 @@ class ReportUserTest < ApplicationSystemTestCase
 
     visit user_path(user)
 
-    click_link I18n.t("users.show.report")
+    click_on I18n.t("users.show.report")
     assert_content "Report"
     assert_content I18n.t("reports.new.disclaimer.intro")
 
     choose I18n.t("reports.new.categories.user.spam_label")
     fill_in "report_details", :with => "This user is a spammer"
     assert_no_difference "Issue.count" do
-      click_button "Create Report"
+      click_on "Create Report"
     end
 
     assert_content "Your report has been registered successfully"
diff --git a/test/system/user_blocks_test.rb b/test/system/user_blocks_test.rb
new file mode 100644 (file)
index 0000000..f710f74
--- /dev/null
@@ -0,0 +1,71 @@
+require "application_system_test_case"
+
+class ReportNoteTest < ApplicationSystemTestCase
+  test "revoke all link is absent for anonymous users when viewed user has active blocks" do
+    blocked_user = create(:user)
+    create(:user_block, :user => blocked_user)
+
+    visit user_path(blocked_user)
+    assert_no_link "Revoke all blocks"
+  end
+
+  test "revoke all link is absent for regular users when viewed user has active blocks" do
+    blocked_user = create(:user)
+    create(:user_block, :user => blocked_user)
+    sign_in_as(create(:user))
+
+    visit user_path(blocked_user)
+    assert_no_link "Revoke all blocks"
+  end
+
+  test "revoke all link is absent for moderators when viewed user has no active blocks" do
+    blocked_user = create(:user)
+    create(:user_block, :expired, :user => blocked_user)
+    sign_in_as(create(:moderator_user))
+
+    visit user_path(blocked_user)
+    assert_no_link "Revoke all blocks"
+  end
+
+  test "revoke all page has no controls when viewed user has no active blocks" do
+    blocked_user = create(:user)
+    sign_in_as(create(:moderator_user))
+
+    visit revoke_all_user_blocks_path(blocked_user)
+    assert_title "Revoking all blocks on #{blocked_user.display_name}"
+    assert_text "Revoking all blocks on #{blocked_user.display_name}"
+    assert_no_button "Revoke!"
+  end
+
+  test "revoke all link is present and working for moderators when viewed user has one active block" do
+    blocked_user = create(:user)
+    create(:user_block, :user => blocked_user)
+    sign_in_as(create(:moderator_user))
+
+    visit user_path(blocked_user)
+    assert_link "Revoke all blocks"
+
+    click_on "Revoke all blocks"
+    assert_title "Revoking all blocks on #{blocked_user.display_name}"
+    assert_text "Revoking all blocks on #{blocked_user.display_name}"
+    assert_unchecked_field "Are you sure you wish to revoke 1 active block?"
+    assert_button "Revoke!"
+  end
+
+  test "revoke all link is present and working for moderators when viewed user has multiple active blocks" do
+    blocked_user = create(:user)
+    create(:user_block, :user => blocked_user)
+    create(:user_block, :user => blocked_user)
+    create(:user_block, :expired, :user => blocked_user)
+    sign_in_as(create(:moderator_user))
+
+    visit user_path(blocked_user)
+    assert_link "Revoke all blocks"
+
+    click_on "Revoke all blocks"
+    assert_title "Revoking all blocks on #{blocked_user.display_name}"
+    assert_text "Revoking all blocks on #{blocked_user.display_name}"
+    assert_unchecked_field "Are you sure you wish to revoke 2 active blocks?"
+    assert_button "Revoke!"
+  end
+end
index fc27b7c1884ed606823f660d9c2ec73f5059bfa5..2f5331711eaa40daa8a331aac883eeed7572af87 100644 (file)
@@ -6,8 +6,8 @@ class UserLogoutTest < ApplicationSystemTestCase
     sign_in_as(user)
     assert_no_content "Log In"
 
-    click_button user.display_name
-    click_link "Log Out"
+    click_on user.display_name
+    click_on "Log Out"
     assert_content "Log In"
   end
 
@@ -17,8 +17,8 @@ class UserLogoutTest < ApplicationSystemTestCase
     visit traces_path
     assert_no_content "Log In"
 
-    click_button user.display_name
-    click_link "Log Out"
+    click_on user.display_name
+    click_on "Log Out"
     assert_content "Log In"
     assert_content "Public GPS Traces"
   end
@@ -30,7 +30,7 @@ class UserLogoutTest < ApplicationSystemTestCase
     visit logout_path
     assert_content "Logout from OpenStreetMap"
 
-    click_button "Logout"
+    click_on "Logout"
     assert_content "Log In"
   end
 
@@ -41,7 +41,7 @@ class UserLogoutTest < ApplicationSystemTestCase
     visit logout_path(:referer => "/traces")
     assert_content "Logout from OpenStreetMap"
 
-    click_button "Logout"
+    click_on "Logout"
     assert_content "Log In"
     assert_content "Public GPS Traces"
   end
diff --git a/test/system/user_muting_test.rb b/test/system/user_muting_test.rb
new file mode 100644 (file)
index 0000000..e70005e
--- /dev/null
@@ -0,0 +1,44 @@
+require "application_system_test_case"
+
+class UserMutingTest < ApplicationSystemTestCase
+  # NB: loads helpers to verify mailer-related behaviour e.g. via assert_no_emails
+  include ActionMailer::TestHelper
+
+  test "users can mute and unmute other users" do
+    user = create(:user)
+    other_user = create(:user)
+    sign_in_as(user)
+
+    visit user_path(other_user)
+    click_on "Mute this User"
+    assert_content "You muted #{other_user.display_name}"
+
+    visit edit_account_path
+    assert_content "Muted Users"
+    click_on "Muted Users"
+    assert_content "You have muted 1 User"
+    click_on "Unmute"
+
+    assert_content "You unmuted #{other_user.display_name}"
+    refute_content "Muted Users"
+    assert_current_path edit_account_path
+  end
+
+  test "messages sent by muted users are set `muted` and do not cause notification emails" do
+    user = create(:user)
+    muted_user = create(:user)
+    create(:user_mute, :owner => user, :subject => muted_user)
+    sign_in_as(muted_user)
+
+    visit new_message_path(user)
+    fill_in "Subject", :with => "Hey Hey"
+    fill_in "Body", :with => "some message"
+
+    assert_no_emails do
+      click_on "Send"
+    end
+
+    message = Message.find_by(:sender => muted_user, :recipient => user)
+    assert_predicate message, :muted?
+  end
+end
index 88899d7105b2fc2b74a896c7291a017c7f080701..e97046800738edf107ce30c586873f96d6e958b1 100644 (file)
@@ -4,7 +4,7 @@ class UserSignupTest < ApplicationSystemTestCase
   test "Sign up from login page" do
     visit login_path
 
-    click_link "Register now"
+    click_on "Register now"
 
     assert_content "Confirm Password"
   end
@@ -13,16 +13,19 @@ class UserSignupTest < ApplicationSystemTestCase
     user = build(:user)
 
     visit root_path
-    click_link "Sign Up"
-    fill_in "Email", :with => user.email
-    fill_in "Email Confirmation", :with => user.email
-    fill_in "Display Name", :with => user.display_name
-    fill_in "Password", :with => "testtest"
-    fill_in "Confirm Password", :with => "testtest"
-    click_button "Sign Up"
+    click_on "Sign Up"
+
+    within ".new_user" do
+      fill_in "Email", :with => user.email
+      fill_in "Email Confirmation", :with => user.email
+      fill_in "Display Name", :with => user.display_name
+      fill_in "Password", :with => "testtest"
+      fill_in "Confirm Password", :with => "testtest"
+      click_on "Sign Up"
+    end
 
     assert_content "Contributor terms"
-    click_button "Cancel"
+    click_on "Cancel"
 
     assert_current_path "https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined"
   end
index e4cca1eab5bba38a97fefb866aeb4a0b626a3ca3..30b923732414805ffa98ec08f7c3e409cd24596d 100644 (file)
@@ -10,7 +10,7 @@ class UserStatusChangeTest < ApplicationSystemTestCase
     user = create(:user, :suspended)
     visit user_path(user)
     accept_confirm do
-      click_link "Unsuspend"
+      click_on "Unsuspend"
     end
 
     assert_no_content "Unsuspend"
@@ -22,7 +22,7 @@ class UserStatusChangeTest < ApplicationSystemTestCase
     user = create(:user, :suspended)
     visit user_path(user)
     accept_confirm do
-      click_link "Confirm"
+      click_on "Confirm"
     end
 
     assert_no_content "Unsuspend"
index 539daaa30933c5e9c8fb3fd3aac278d6cca3cba8..349d0a5bf742c4c97faf980f6055118a4ea10dad 100644 (file)
@@ -13,7 +13,7 @@ class ViewCommunitiesTest < ApplicationSystemTestCase
 
     visit edit_preferences_path
     fill_in "Preferred Languages", :with => "fr"
-    click_button "Update Preferences"
+    click_on "Update Preferences"
 
     visit "/communities"
     assert_link "OpenStreetMap États-Unis", :href => "https://www.openstreetmap.us/"
index 68749c0f70f595e00b322b21acee0215b7d46b51..60edf6e0c25a56caabe8a2bbb193b10d304fd86f 100644 (file)
@@ -32,6 +32,7 @@ ENV["RAILS_ENV"] = "test"
 require_relative "../config/environment"
 require "rails/test_help"
 require "webmock/minitest"
+require "minitest/focus" unless ENV["CI"]
 
 WebMock.disable_net_connect!(:allow_localhost => true)
 
@@ -241,13 +242,6 @@ module ActiveSupport
       end
     end
 
-    def sign_in_as(user)
-      visit login_path
-      fill_in "username", :with => user.email
-      fill_in "password", :with => "test"
-      click_button "Login", :match => :first
-    end
-
     def session_for(user)
       get login_path
       post login_path, :params => { :username => user.display_name, :password => "test" }
@@ -371,5 +365,23 @@ module ActiveSupport
         el << tag_el
       end
     end
+
+    def with_settings(settings)
+      saved_settings = Settings.to_hash.slice(*settings.keys)
+
+      Settings.merge!(settings)
+
+      yield
+    ensure
+      Settings.merge!(saved_settings)
+    end
+
+    def with_user_account_deletion_delay(value, &block)
+      freeze_time
+
+      with_settings(:user_account_deletion_delay => value, &block)
+    ensure
+      unfreeze_time
+    end
   end
 end
index 341ca4d77f417515853ff7566c9a992231515265..4c8be21e5acd264bf8c6f367a80ed218061b3643 100644 (file)
@@ -36,7 +36,7 @@ class CharactersValidatorTest < ActiveSupport::TestCase
 
     invalid.each do |v|
       c.chars = v
-      assert_not c.valid?, "'#{v}' should not be valid"
+      assert_not_predicate c, :valid?, "'#{v}' should not be valid"
     end
   end
 
@@ -60,7 +60,7 @@ class CharactersValidatorTest < ActiveSupport::TestCase
 
     invalid.each do |v|
       c.chars = v
-      assert_not c.valid?, "'#{v}' should not be valid"
+      assert_not_predicate c, :valid?, "'#{v}' should not be valid"
     end
   end
 end
index 2607d9f2359b2a966fc42e1763b0caab1fb9d92d..1cb325df30b6c9982eb575f26d90f5b627a60a30 100644 (file)
@@ -22,7 +22,7 @@ class WhitespaceValidatorTest < ActiveSupport::TestCase
 
     strings.each do |v|
       validator.string = v
-      assert_not validator.valid?, "'#{v}' should not be valid"
+      assert_not_predicate validator, :valid?, "'#{v}' should not be valid"
     end
   end
 
@@ -44,7 +44,7 @@ class WhitespaceValidatorTest < ActiveSupport::TestCase
 
     strings.each do |v|
       validator.string = v
-      assert_not validator.valid?, "'#{v}' should not be valid"
+      assert_not_predicate validator, :valid?, "'#{v}' should not be valid"
     end
   end
 
index b1d4b6451c54e0e251e54a6674e491753fac23e1..e84af42fd6c711ae6d48214adc2e641ad5ae1ea2 100644 (file)
--- a/yarn.lock
+++ b/yarn.lock
   resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.6.2.tgz#1816b5f6948029c5eaacb0703b850ee0cb37d8f8"
   integrity sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==
 
-"@eslint/eslintrc@^2.1.3":
-  version "2.1.3"
-  resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.3.tgz#797470a75fe0fbd5a53350ee715e85e87baff22d"
-  integrity sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==
+"@eslint/eslintrc@^2.1.4":
+  version "2.1.4"
+  resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad"
+  integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==
   dependencies:
     ajv "^6.12.4"
     debug "^4.3.2"
     minimatch "^3.1.2"
     strip-json-comments "^3.1.1"
 
-"@eslint/js@8.53.0":
-  version "8.53.0"
-  resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.53.0.tgz#bea56f2ed2b5baea164348ff4d5a879f6f81f20d"
-  integrity sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==
+"@eslint/js@8.57.0":
+  version "8.57.0"
+  resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f"
+  integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==
 
-"@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==
+"@humanwhocodes/config-array@^0.11.14":
+  version "0.11.14"
+  resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b"
+  integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==
   dependencies:
-    "@humanwhocodes/object-schema" "^2.0.1"
-    debug "^4.1.1"
+    "@humanwhocodes/object-schema" "^2.0.2"
+    debug "^4.3.1"
     minimatch "^3.0.5"
 
 "@humanwhocodes/module-importer@^1.0.1":
   resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
   integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
 
-"@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==
+"@humanwhocodes/object-schema@^2.0.2":
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917"
+  integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==
 
 "@nodelib/fs.scandir@2.1.5":
   version "2.1.5"
@@ -186,7 +186,7 @@ cross-spawn@^7.0.2:
     shebang-command "^2.0.0"
     which "^2.0.1"
 
-debug@^4.1.1, debug@^4.3.2:
+debug@^4.3.1, debug@^4.3.2:
   version "4.3.4"
   resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
   integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
@@ -229,15 +229,15 @@ 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.53.0"
-  resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.53.0.tgz#14f2c8244298fcae1f46945459577413ba2697ce"
-  integrity sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==
+  version "8.57.0"
+  resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668"
+  integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==
   dependencies:
     "@eslint-community/eslint-utils" "^4.2.0"
     "@eslint-community/regexpp" "^4.6.1"
-    "@eslint/eslintrc" "^2.1.3"
-    "@eslint/js" "8.53.0"
-    "@humanwhocodes/config-array" "^0.11.13"
+    "@eslint/eslintrc" "^2.1.4"
+    "@eslint/js" "8.57.0"
+    "@humanwhocodes/config-array" "^0.11.14"
     "@humanwhocodes/module-importer" "^1.0.1"
     "@nodelib/fs.walk" "^1.2.8"
     "@ungap/structured-clone" "^1.2.0"
@@ -574,9 +574,9 @@ optionator@^0.9.3:
     type-check "^0.4.0"
 
 osm-community-index@^5.2.0:
-  version "5.6.0"
-  resolved "https://registry.yarnpkg.com/osm-community-index/-/osm-community-index-5.6.0.tgz#b2361fce7ded723844b0ed68d47bddfc4a8cb240"
-  integrity sha512-C5AqEWidBIgKeaJKQwuPWvDqSzm9CpZgDbHDi+k4+ZCHBazRQjnl7TpWVv2/fQWMqsJL3I5qzh19rXBTWMWL1A==
+  version "5.6.1"
+  resolved "https://registry.yarnpkg.com/osm-community-index/-/osm-community-index-5.6.1.tgz#5be72c700145e94c57f2006e6f767a0e49d93870"
+  integrity sha512-eMi5mDwwLkt3tbZtD60+aMj4kIa3smlQanxb3OcvJa2pv6w5uVCLbyCem0j8cTqAO3A+C7HD4T7dFUyt2WCYaQ==
   dependencies:
     diacritics "^1.3.0"